#1
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7

    Embedding grayscale halftone pictures in QR Codes


    What is this 512x512 picture?



    Bad Quality Lena indeed, but the trick is that it's black&white - can be directly seen as length 512x512=32kB bit sequence.
    It occurs that making code "looking like Lena" reduces the capacity only to about 0.822, what is about 26kB in this case - the visual aspect costs only about 6kB.
    It has rather too high resolution for practical applications, but here are examples of lower resolution codes looking like a chosen black and white picture:



    for example the central noisy code contains 800*3/4=600 bytes - making it look like the picture costs only 200 bytes.
    Here is fresh paper about obtaining it (generalization of Kuznetsov and Tsybakov problem - for constrains known to the sender only): http://arxiv.org/abs/1211.1572

    Todays QR codes usually contain only address - nearly nobody uses them because its simpler and quicker just to google or store/remember it. The situation should change if they would look attractively and have much larger capacity - even just out of curiosity motivating to get closer to make a clear shot to find out what interesting contents it hides. Todays phones have about 8Mpixels, so a well designed QR codes could contain hundreds of kilobytes - a ring tone, an application, a wallpaper ... even a huge poster could by the way be a QR code - we could imagine a marketing campaign where you need to collect some of them to get a prize ...
    Todays QR codes are industrial standard - it's time to adjust them to everyday life ... increasing capacity and improving visual aspect is a natural direction of evolution.

    What do you think of replacing today QR codes with nicer looking and more visually descriptive ones?
    What other applications could you think of for this new steganography for which two colors is finally enough?
    Last edited by Jarek Duda; November 8th, 2012 at 06:11 AM.
  2. #2
  3. I <3 ASCII
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Aug 2003
    Posts
    2,400
    Rep Power
    1233
    It's an interesting concept, but as the picture gets larger I'd be worried about the capability of capturing the QR code. On my phone (an older model with a cheaper camera*) I often must be right over standard size QR codes, I might be able to read the 80x80 if I take the time to line it up, but reading the 160x160 would be near impossible.

    *I have a 3.2 MPx camera... but the lens is absolute crap. I have to get fairly close to allow the sensors make out the pixels through the lens distortions/cloudiness.

    -MBirchmeier
  4. #3
  5. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7
    Indeed good optics is required for large capacity - modern smartphones have about 8Mpixels, autofocus, flash - I think we should be able to reach hundreds of kilobytes with them?
    If one would be intrigued by a nice looking code and could expect some interesting content (large capacity required), he would get closer and took a clear shot with flash ...
  6. #4
  7. Code Monkey V. 0.9
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Mar 2005
    Location
    A Land Down Under
    Posts
    2,109
    Rep Power
    1990
    While it's an interesting idea, I think that it misses one key point. QR codes work because they look like QR codes. Embedding images like that has a lot less chance of working because your average person in the street will see an image like you've proposed and think "What a cr%^y picture..." not "Wow I'll see what my phone can make of that". If you can't look at it and instantly recognise that it's not meant to be a real image, you've lost 70-90% of your target market before you've even started.
  8. #5
  9. Devshed Beginner (1000 - 1499 posts)

    Join Date
    Jan 2004
    Location
    New Springfield, OH
    Posts
    1,231
    Rep Power
    1469
    I think Catacaustic is beginning to hit on a good point.

    There are two major problems with what's being suggested. While you can embed small graphics in QR codes and still have them work, you begin to run real risks. First off, QR codes have several layers of redundancy that serve to protect data integrity. You begin stripping that away by adding graphics. Second, QR codes are not necessarily meant to be used up close. They were meant for movie posters, cafe windows, bus stops, and other places you might be able to point a camera while passing by. As you increase the complexity of the QR code (especially its density), you begin to make it harder and harder to use as intended. So much so that something as simple as motion blur from a shaky hand will render your QR code all but useless to most people. It's an interesting concept, I'm just not so sure it's practical.
    Don't like me? Click it.

    Scripting problems? Windows questions? Ask the Windows Guru!

    Stay up to date with all of my latest content. Follow me on Twitter!

    Help us help you! Post your exact error message with these easy tips!
  10. #6
  11. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7
    Catacaustic, the "looking like a QR code" is not an issue here - it's not a problem e.g. to leave something characteristic, the problem is to make the rest looking as we want.
    Personally I don't think being obvious it's a QR code is generally required, just oppositely - e.g. seeing Lena-like code above would rather make you suspicious, come closer ... and this brought attention would increase motivation to scan.
    The current QR codes are enough to contain address ... increasing capacity would additionally bring many other purposes like marketing, e.g. information about an item in a museum, some small app useful for given place ...

    Nilpo, the error correction capabilities are indeed extremely important issue here and so I discuss it widely in the paper:
    1) Warn about using error correction capabilities to make QR code looking as we want - it's extremely inefficient (damaged ECC case) and usually disables further correction capabilities,
    2) Show how to combine both purposes to use them simultaneously and in nearly optimal way: error correction (redundancy bits) and "making it look as we want"/constrained coding (freedom bits),
    3) Replacing current Reed-Salomon archaic method with something modern and allowing for huge flexibility while performing correction - online adapting to analyzed damages like even medium folding ...
  12. #7
  13. Code Monkey V. 0.9
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Mar 2005
    Location
    A Land Down Under
    Posts
    2,109
    Rep Power
    1990
    Originally Posted by Jarek Duda
    the "looking like a QR code" is not an issue here
    Yes it is. It's a big issue.

    If something doesn't LOOk like a QR code, how would someone know to use it like a QR code?

    You have to remember... 99% of system design is about usability of the lowest common denominator. If the average person in the street can't see that an image is meant to be scanned, then they won't scan it, and you've lost that lead.

    So, here's my question to you. If someone doesn't know that it's a QR-type code that's meant to be scanned with a mobile device of some sort, what would you think that they'd do with it? Remember... They don't see it as a QR code or something to scan. They see it as a picture that's blurry. How would someone know what to do?
  14. #8
  15. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7
    Imagine 10 years ago you would seen a todays QR code ... of course it takes time to make people used to new technology, but I think just recognizing QR codes is the smallest problem here, especially you can do it gradually - start with commonly using simple pictures embedded in current codes (like here: http://research.swtch.com/qart ), then increase capacity/resolution leaving characteristic squares ... then if you spot a strange looking picture which turns out to be made of pixels, you know it's a QR code ... but also well hidden steganography sounds like fun - exercise for perceptiveness, appreciating details around through hunting with smartphone to find hidden information around ...
  16. #9
  17. Devshed Beginner (1000 - 1499 posts)

    Join Date
    Jan 2004
    Location
    New Springfield, OH
    Posts
    1,231
    Rep Power
    1469
    Originally Posted by Jarek Duda
    Imagine 10 years ago you would seen a todays QR code ... of course it takes time to make people used to new technology, but I think just recognizing QR codes is the smallest problem here
    True, but people still aren't used to them. In fact, most of the population here in the U.S. still have no clue what they are despite the fact they are all around.
    Originally Posted by Jarek Duda
    then if you spot a strange looking picture which turns out to be made of pixels, you know it's a QR code
    Very, very wrong. QR codes are the not only (and in fact not even the most popular) matrix barcode in common use.
    Don't like me? Click it.

    Scripting problems? Windows questions? Ask the Windows Guru!

    Stay up to date with all of my latest content. Follow me on Twitter!

    Help us help you! Post your exact error message with these easy tips!
  18. #10
  19. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7
    True, but people still aren't used to them. In fact, most of the population here in the U.S. still have no clue what they are despite the fact they are all around.
    Probably because they only contain e.g. address now - it is easier and simpler just to remember/google it - people have completely no need to familiar with them.
    The situation would changed if they could expect some interesting content hidden, but it requires much larger capacities ...
    Very, very wrong. QR codes are the not only (and in fact not even the most popular) matrix barcode in common use.
    As I practically haven't meet any others, while QR are appearing everywhere around (Poland), I have just assumed they completely dominated the field, but I see you might be right: http://en.wikipedia.org/wiki/Barcode
    Ok, we can replace QR codes of this discussion with just some picture resembling or hidden in pictures codes ...
  20. #11
  21. I <3 ASCII
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Aug 2003
    Posts
    2,400
    Rep Power
    1233
    I'm curious what would be the advantage to encoding the data to support an image, instead of just turning off certain sections of the qr code and embedding an image within those sections (related)

    -MBirchmeier
  22. #12
  23. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2007
    Posts
    44
    Rep Power
    7
    MBirchmeier, you could just place a picture around QR code ... the issue here is to make the random pixels to have some aesthetic/informational value, like some emerging picture from them ...

    Another issue is optimally using this informational channel - it is far nontrivial to do it really good what I discuss in the paper.
    For example "looking like Lena" above optimally costs only 18% rate reduction - so in your technique you could take e.g. central 18% of pixels to make a picture you want and the rest 82% would be just a noise...
    Last edited by Jarek Duda; November 9th, 2012 at 09:48 AM.

IMN logo majestic logo threadwatch logo seochat tools logo