Results 1 to 4 of 4

Thread: Steganography for universal recompression of lossy formats

  1. #1
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,134
    Thanks
    179
    Thanked 921 Times in 469 Posts

    Steganography for universal recompression of lossy formats

    What I call "universal recompression" is the precomp-like type, where
    we get the extracted original data on output, which we can subsequently
    compress with anything we like, thus universal.

    But atm recompression of this kind was only implemented for deflate,
    and is generally considered impossible for lossy formats (jpeg,mp3) -
    for example, we can expand a jpeg to .bmp and losslessly reencode it back,
    but then lossless compression of .bmp would produce much larger results
    than original jpeg.
    And if we'd try to implement an ex-jpeg .bmp compressor... well, we'd
    end up with a normal jpeg recompressor, not a universal one.

    But now I've got an alternative idea - we can actually use the "empty"
    (quantized away) space in that .bmp for storage of something useful,
    ie basically steganography.

    Now, with such an approach it would be impossible to recompress a
    single jpeg, but when there're many, we would be able to "overlap" them,
    like http://en.wikipedia.org/wiki/Matryoshka_doll
    But its easier to explain if there's simply some other data besides jpegs,
    then it would work like this:
    - the recompressor takes a .jpg and produces a .bmp and a quantization map
    (value intervals for the pixels)
    - a steganography coder fills up the "gaps" in the .bmp by that map with
    some other (already compressed) data
    - now we can compress the .bmp with a lossless coder, and there won't
    be any redundancy due to image model not understanding jpeg quantization -
    instead we'd get "noise", but natural images already have noise anyway,
    and image coders should be able to handle noise much better than unknown
    complex dependencies.
    And for decoding:
    - the recompressor takes a .bmp and produces a .jpg and a quantization map
    - steganography coder decodes the payload from the .bmp using the map

  2. The Following User Says Thank You to Shelwien For This Useful Post:

    RamiroCruzo (3rd June 2017)

  3. #2
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,134
    Thanks
    179
    Thanked 921 Times in 469 Posts
    Ok, here's a simpler example. Suppose that we have

    1. A grayscale .tga which we want to compress
    2. A .tga to .bmp converter which adds redundancy
    (because a grayscale .bmp always has a fixed palette, while .tga doesn't)
    3. A .bmp compressor which also encodes the palette as if it wasn't constant.

    Now the question is, how to improve the compression in this scheme?
    Well, the .bmp palette is not relevant, but it has to be there, because its a part of bmp format.
    Then, let's put 1k of some other data in there - then the bmp compressor would encode
    the relevant data as a palette, instead of the fixed one with gray levels, and we'd
    save some bytes in the end.

    So, my idea with jpg and bmp is basically the same, but the redundant space
    in the .bmp is not spatially localized like the palette, and we're applying steganography
    to make use of it. But otherwise its the same.

  4. #3
    Member
    Join Date
    Sep 2008
    Location
    France
    Posts
    856
    Thanks
    447
    Thanked 254 Times in 103 Posts
    I believe your idea of hiding a message from within a zip parsing method is both more generic and more original.

    Hiding a message within an image is already popular, and even though the proposed method is more complex to decode, it still requires to send an image. This is already suspicious (well, obviously not a small image, but very large ones or lot of small ones are).

    By contrast, zip content can be anything.
    There are many many situations in which sending (or storing) a several megabytes zip file can look legitimous and harmless. This gives some opportunity.

  5. #4
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,134
    Thanks
    179
    Thanked 921 Times in 469 Posts
    No, this is about a completely different application of steganography.
    The point here is to implement recompression of lossy formats (jpeg in particular) in precomp style -
    produce a bmp + metainfo from jpeg, then compress bmp with a lossless bmp compressor.
    Normally that won't make any sense, because losslessly compressed bmp would be larger than original jpeg.
    But here I'm suggesting a workaround - to fill up the bmp with other data, so that bmp<->jpg+payload
    conversion would become lossless.

Similar Threads

  1. reflate - a new universal deflate recompressor
    By Shelwien in forum Data Compression
    Replies: 119
    Last Post: 28th March 2018, 22:52
  2. Format priority for recompression
    By Shelwien in forum Data Compression
    Replies: 22
    Last Post: 12th March 2011, 00:35
  3. recommended formats for game data and partial updates
    By willvarfar in forum Data Compression
    Replies: 14
    Last Post: 23rd November 2010, 19:26
  4. Dealing with container formats
    By subwolf in forum Data Compression
    Replies: 16
    Last Post: 2nd September 2009, 22:14
  5. Universal Archive Format
    By Bulat Ziganshin in forum Data Compression
    Replies: 1
    Last Post: 9th July 2008, 00:54

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •