top | item 27430648

(no title)

gabesk | 4 years ago

Kindred souls. About three years ago, I did the same, but with NTSC. In my case I actually built a digitization board that sampled the signal from a composite cable and dumped the raw samples over USB using the Cypress EZ-USB2 chip. I didn't want to "cheat" with a chip that did the synchronization etc. :)

I never really finished it, but I threw a little bit of it on GitHub: https://github.com/gabesk/tv_python is the prototyping version (the raw data is a picture of Lena on a Raspberry Pi composite output).

Also as an aside, if anyone ever wants an example of how to stream data from an isochronous endpoint on Windows, this took me way to long to figure out: https://github.com/gabesk/tv/blob/master/actual_implementati... (see usb_reading_thread routine) as well as this blog post: https://gabesk.blogspot.com/2018/08/streaming-from-isochrono... (that version does real-time black and white, but I never finished real-time color as my laptop at the time couldn't handle it with my poorly optimized decoding routines).

You all have inspired me to finish this properly and publish it. Maybe even as a top level post on HN.

discuss

order

anyfoo|4 years ago

Nice. I do know the feeling of "not wanting to cheat" by using existing solutions, where's the fun in that...

My PAL decoder is in Matlab, and so slow that it's mostly useless (because not realtime), but convenient for trying things out with the data, since you're already in Matlab... but the real goal was the eventually reached PAL generator anyway. That even found a practical use as well.

I think you should publish!

By the way, if you ever feel the itch to go back to it, try adding PAL support. It's NTSC with a few fun twists, nothing mind-bending though. The most "advanced" part of it is the delay line (which in practice will just be a line of memory).