Awesome Internets Vid

Discussion of challenges you have already solved
Post Reply
User avatar
Hippo
Posts: 339
Joined: Sat Feb 01, 2014 12:05 am
Location: Praha 5

Awesome Internets Vid

Post by Hippo »

Uff, a lot of work to get all the garbage away. Fortunately it was BMP where changing some bytes does not make a problem ... After several corrections my BMP was 9 hex digits shorter than should be ... filling with 0's made it readable.

I have converted the video to lot of JPG's than joining 16 images to one png (converting to BW using G), ... than I have manually selected pictures where there was just one digit used and I put 10 of each kind into its directory. Than I unioned these pictures to make pattern for the digit.
Than I have converted the sequence of jpg images to 16 bit masks per picture ... representing possible digits. Most of the masks contained just one bit set, several had no bit set or two.
(Saved to the file for further experiments).

Last step was filtering zero masks and two bit masks and wrong one bit masks out and guessing char lengts of longer intervals. I made some heuristic ignoring short constant mask intervals. And guessed the length by (frames+16)/33.
User avatar
yes-man
Posts: 32
Joined: Fri Jan 30, 2009 5:14 pm

Yes, uffff...

Post by yes-man »

This one took quite a while, agreed.

So realizing I'm looking at a (half)byte stream of a BMP file was the easy part.

What helped A LOT was at least doing the header by hand, to get file dimensions and such.
Shotcut produced 365.475 JPG files which matched the 5624 byte file size, given in the header.
The number of JPGs per character was odd though... 32.49244310099573

So, stepping through all frames, calculating the current char with the given numbers and ignoring the first and last 8 from every set, I gray-scaled, inverted and added them up, ignoring minor values.
The intermediate result was pretty good. Although, from time to time it seemed like characters where overflowing into each other.

Then, the same. Picking 'good' examples for every single char and calculating a diff for all of them, then picking the best.

I went with it. The result was a very color-disturbed images, missing the target size by just one single byte. The final output was barely readable and took 3-4 guesses after using color filters and such... and A LOT OF SQUINTING.
Post Reply