0

Recently I played with simple steganography techniques and made a program that can encode an image into the lowest 4 bits of a carrier image. Although 50% of the information/detail from both pictures was lost, it wasn't that noticeable. Couldn't this be used in computer graphics?

To be more specific, is there some process in computer graphics, where it would make sense to lose 50% detail and save 50% of space (memory/storage) but still keep, lets say, ~80% of the visible detail?

What I thought so far about was storing mipmaps in the original picture or maybe a normal map on top of the original. Sadly I don't know that much about computer graphics, and it may be that I am missing something or that it doesn't work like that.

Any ideas or feedback would be greatly appreciated!

Spaceork
  • 17
  • 1
  • Most image file formats use lossy compression, so you would lose most of your LSB data when you saved the file. – Paul R Feb 26 '17 at 14:46
  • Generally you do not want to use more than 1-2 lower bits in images (assuming 8-bits). You can use PNG (as in my answer [here](https://stackoverflow.com/questions/29322395/steganography-in-image/29324525#29324525)). PNG also allow for 16-bit grayscale data which will allow you to use more bits –  Feb 26 '17 at 16:34
  • Based on your comment to Malcolm's answer, I think your question would be more accurate as *"can LSB steganography be used as an image compression protocol?"*. But I'm still not sure what you're trying to achieve with this question. Your comment asks some questions which could be borderline opinion-based. Then in your question body you seem to suggest a compression idea anyway. – Reti43 Feb 27 '17 at 21:24
  • @Reti43 Basically yes, I am interested in knowing whether LSB steganography could be used (in a bind) as a substitution for image compression. But my knowledge in this area isn't complete enough, so I asked more experienced users if it makes sense, or if it is useless - because then I won't lose unnecessary time on my ideas. – Spaceork Feb 28 '17 at 17:00

1 Answers1

0

Yes, it's easy enough. Choose a lossless format like PNG, then you simply set the low bit of the rgb channels to the data you wish to hide. (Don't set alpha because a lot of alphas of 1 or 0, or 255 / 254 is a dead giveaway).

You will need a PNG codec. There's one on the Baby X recource compiler site

https://github.com/MalcolmMcLean/babyxrc

Malcolm McLean
  • 6,258
  • 1
  • 17
  • 18
  • Thank you for taking time to answer me, but I wasn't really looking to hide data, my question is more general: Could you possibly use LSB image hiding to save space/data/speed up some process during the usual workings of computer graphics? I mean if you can put 2 images together (4 highest bit of one image will replace 4 lowest bit of the second image), you save on storage/memory, but you keep **most** of the visible detail. Can't it be useful somehow? Or am I missing something? Is it useless? – Spaceork Feb 26 '17 at 19:29