Let’s Get UltraMeta: Tweeting a Compressed QR
My success in compressing 1-bit black and white images (as Holly Golightly) through the Twitter data pipe got me thinking about 1-bit images in general use, and it’s not surprising that I thought of QR codes. QR codes are nothing but 1-bit bitmaps that can be interpreted by your smartphone through image analysis. I still don’t think they’re very useful, but that’s okay.
Most QRs are too large for the compression systems I’ve been using, but the URLs produced by the link-shortening utility on Twitter itself will just fit within the Twitter data packet. This post now has the shortlink http://t.co/Mwd0jCHy, which turns into this QR code:
This particular image is 216 x 216 pixels, but it can be easily reduced to 25 x 25 by resizing it and trimming the white borders:
25 x 25 1-bit pixels can be split into 5 groups of 5, which gives us 5-bit compression, or 32 encodings. I like to think of this as “duotridecimal” encoding, and I merely extend the hexidecimal encoding from 0-F to 0-V. It’s not as much compression as the 6-bit version I used on Audrey and Teddy, but it’s easier for the human operator to work with. Suitably encoded, the bitmap now looks like this:
Which turns into this Twitter stream:
OTLHT5JQV0UQFVI028OLVOIAPG83OGN8NVPN8QHUNB84JGAU7GG0000 5b1 25x25 QR
The encoded image is only 125 characters, which means I have 15 characters to indicate the encoding scheme! W00t! “5b1” would mean “5bit-encoded 1-bit B&W image”, “25×25” gives the final dimensions, and “QR” would indicate what the image is to be used for.
I find this highly amusing, and I’m quite entertained. ; )