Video2NAND – Abusing video codecs for great computational power

52 points
1/21/1970
3 days ago
by firer

Comments


pseudosavant

Cool that you can make a NAND gate like this, but I was more hoping for something that showed how to practically (ab)use a video encoder for "great computational power" to do something real. Not just how to make a NAND gate with one.

7 hours ago

tverbeure

I was hoping for some variant of the FORCEDENTRY iPhone Messages exploit, which built an entire CPU with the PDF fax blitting operations.

7 hours ago

pseudosavant

Fair enough. Maybe not that far, but perhaps do a little one thing with these NAND gates they theorized? My issue may even be more with the HN title than the blog post, because the post never suggests anything like using a video codec for "great computational power".

6 hours ago

thenthenthen

I tried looking it up but failed to find any technical write ups of how this was done, do you have any links maybe? Super interesting to read.

5 hours ago

nomel

Looks like VP8 has a max resolution of 16383x16383 pixels. Looks like minimum block size is 4x4 pixels, so 4096x4096 blocks, with maybe 7x7 blocks per gate, including some wiring, so maybe something like 500x500 logic gates?

I don't think we'll be running Doom, but you could definitely make a little CPU, with programs!

5 hours ago

moralestapia

Funny this is how people initially started re-shaping some computational problems to resemble graphic pipelines and get "great computational power"; back when it was called GP(General Purpose-)GPU computing.

2 hours ago

arjvik

Sadly doesn't look turing complete (yet) :(

6 hours ago

mrheosuper

if you can make a nand gate, you can make any other logic gate, thus turing complete

5 hours ago

phire

I think you also need some form of intermediate storage to be Turing complete.

Not that this example doesn't have intermediate storage... But I suspect you could create or discover a mechanism that is expressive enough to implement any chain of logic gates, but is incapable of expressing storage (can't even use the gates to implement a latch)

I'm also a little dubious of granting the "Truing complete" label to something that can't conditionally terminate (at minimum)

Maybe you can trick a video codec into looping forever without new key frames (in which case it can never terminate), but most likely this would need to be implemented unrolled, so always terminates after a fixed number of iterations.

3 hours ago