View Single Post
Old 11th March 2019, 07:48   #5  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
OK, here some image samples after shuffle and compress and then de-compress De-shuffle again.
Compressed @ CRF 21.5, Slow.

Looks a whole lot better than XOR-ing

4x4 shuffle block sizes [EDIT: Seems to have been de-saturated a bit]


Next two did AddBorders instead of crop, thats the grey border.
8x8


16x16


Shuffled @ 24x24 (I used Addborders instead of crop, I did not try compress).


Time for bed.

EDIT: Note original 22MB size was YouTube compressed, so would likely need to be compressed somewhat bigger anyways.

EDIT: Basic Addborders Shuffler
Code:
# Stack Overhead Subtitle Text, with optional FrameNumber shown.
Function TSub(clip c,string Tit,Bool "ShowFrameNo",Int "Col"){
    c.BlankClip(height=20,Color=Default(Col,0))
    (Default(ShowFrameNo,False))?ScriptClip("""Subtitle(String(current_frame,"%.f] """+Tit+""""))"""):Trim(0,-1).Subtitle(Tit)
    Return StackVertical(c).AudioDubEx(c)
}

/*

    ShuffleV(clip c, Int "Seed"=0 , Int "blkH"=8 , Bool "Interlaced"=False , Bool "Inverse"=False )                # Vertical   Shuffle
    ShuffleH(clip c, Int "Seed"=0 , Int "blkW"=8 , Bool "Inverse"=False )                                          # Horizontal Shuffle

*/

LoadPlugin(".\Shuffle.dll")
#LoadPlugin(".\Shuffle_x64.dll")

SECRET_KEY_H = 123456789
SECRET_KEY_W = 987654321
BlkH=8                  # Blks for Vertial Shuffle
BlkW=8                 # Blks for Horizontal Shuffle
INTERLACED=False        # Doubles minimum required ShuffleV BlkH, eg YV12 interlaced requires multiple of 4 when INTERLACED=True, else 2

AviSource("D:\Parade.avi")
#Crop(0,0,Width/8*8,Height/8*8)      # Can Crop or AddBorders to achieve required Width/Height BlkW/H


H=Height % BLKH
W=Width  % BLKW
(W!=0 || H!=0) ? AddBorders(0,0,BlkW-W,BlkH-H,$808080) : NOP


ConvertToYV12
#ConvertToYV16
#ConvertToYV24
#ConvertToYV411
#ConvertToY8

ORG=Last


ShuffleV(seed=SECRET_KEY_H,blkH=BLKH,Interlaced=INTERLACED)                 # Shuffle Vertical blocks
#Return Last
ShuffleH(seed=SECRET_KEY_W,blkW=BLKW)                                       # Shuffle Horizontal blocks
Return Last.TSub("Shuffled 24x24",true)
SHUFFLED=Last

ShuffleV(seed=SECRET_KEY_H,blkH=BLKH,Interlaced=INTERLACED,Inverse=True)    # Inverse: De-Shuffle V/H, Order does not matter
ShuffleH(seed=SECRET_KEY_W,blkW=BLKW,Inverse=True)
#Return Last

#SHUFFLED=SHUFFLED.TSub("Shuffled"+String(BlkH," BlkH=%.0f")+String(BlkW," BlkW=%.0f"),true)
#Last=Last.TSub("De-Shuffled")

StackHorizontal(SHUFFLED,Last)
#ConvertToRGB32
Basic Addborders De-Shuffler
Code:
# Stack Overhead Subtitle Text, with optional FrameNumber shown.
Function TSub(clip c,string Tit,Bool "ShowFrameNo",Int "Col"){
    c.BlankClip(height=20,Color=Default(Col,0))
    (Default(ShowFrameNo,False))?ScriptClip("""Subtitle(String(current_frame,"%.f] """+Tit+""""))"""):Trim(0,-1).Subtitle(Tit)
    Return StackVertical(c).AudioDubEx(c)
}

/*

    ShuffleV(clip c, Int "Seed"=0 , Int "blkH"=8 , Bool "Interlaced"=False , Bool "Inverse"=False )                # Vertical   Shuffle
    ShuffleH(clip c, Int "Seed"=0 , Int "blkW"=8 , Bool "Inverse"=False )                                          # Horizontal Shuffle

*/

LoadPlugin(".\Shuffle.dll")
#LoadPlugin(".\Shuffle_x64.dll")

SECRET_KEY_H = 123456789
SECRET_KEY_W = 987654321
BlkH=8                  # Blks for Vertial Shuffle
BlkW=8                  # Blks for Horizontal Shuffle
INTERLACED=False        # Doubles minimum required ShuffleV BlkH, eg YV12 interlaced requires multiple of 4 when INTERLACED=True, else 2

AviSource("D:\Parade.avi")
H=Height % BLKH
W=Width  % BLKW
(W!=0 || H!=0) ? AddBorders(0,0,BlkW-W,BlkH-H,$808080) : NOP
ORIG=Last
#Return Last
AviSource(".\8x8.avi")
#Return Last

ConvertToYV12
ORG=Last


ShuffleH(seed=SECRET_KEY_W,blkW=BLKW,Inverse=True)
ShuffleV(seed=SECRET_KEY_H,blkH=BLKH,Interlaced=INTERLACED,Inverse=True)    # Inverse: De-Shuffle V/H, Order does not matter
#Return Last

ORIG=ORIG.TSub("Original  mp4 size=22MB",true)
Last=Last.TSub("UnShuffled 8x8 mp4 size=153MB")

StackHorizontal(ORIG,Last)
#ConvertToRGB32
Really time for bed.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 13th March 2019 at 03:04.
StainlessS is offline   Reply With Quote