I've wanted to do this project for so long, but only just now got around to doing it. I still have many plans for it. Currently, it just plays back a thumbdrive from start to finish as picture data, but I could add a format that allows for subtitles and other metadata. We'll see how this project develops.

GitHub: https://github.thepinkhacker.com/ticevid

Looking good! Are you pondering any sort of compression/keyframes + incremental changes?
And it's booting through a thumb drive, too! Amazing.
KermMartian wrote:
Looking good! Are you pondering any sort of compression/keyframes + incremental changes?


With how bottlenecked I am by throughput, I think I'll have to in order to hit 24fps some day.

Are there any simple compression algorithms that either can decompress in place or are good enough to fit an entire frame elsewhere in ram?
After some short search for fast decompression algs for embedded systems, LZSS seems to be an option. The decompressor is implemented in portable C, and has been refactored over the years. Should be a nice little challenge to get this on the CE toolchain.
Man this makes me want to fix the USB throughput issues now - Good work!
NoahK wrote:
After some short search for fast decompression algs for embedded systems, LZSS seems to be an option.


Yeah this looks good. I'm gonna try and throw together a prototype encoder and decoder.
I really like this! It seems like you're transferring each frame one at a time? Perhaps you could add buffering using the available ram or even archive? Do you have a plan to handle the diagonal seam that often appears with higher refresh rates? Well done so far!
Have you seen this? I don't think it ever ended up on Cemetech, but I've used it a couple of times and it works well. 10-ish FPS is pretty dang good.
ThatOneGuy wrote:
Have you seen this? I don't think it ever ended up on Cemetech, but I've used it a couple of times and it works well. 10-ish FPS is pretty dang good.


I wasn't aware of this. This project does look cool, but I want to over come some of the limitations it faces. Like mine currently, it faces throughput issues and only runs at about 10fps while not being native resolution. Thanks for sharing this because I didn't know anyone had attempted this with color. To be fair, the last time I checked was over a year ago. Also, what is with TI video players and DreamWorks movies?

I'm currently developing a format that will allow for compressed frames with LZSS compression, that can be buffered and also include caption data. This will take a fair bit of time to get working, but I do believe it will get to at least 240p at 24fps.
Captions are top priority after getting 24fps video, in my opinion, and if you can pull it off (you've made it this far, I believe you can do it!), caption support will really set this apart.
Add in ACagliano's networking library for the CE and a good dose of insanity and boom, YouTube CE (jk)
jasper7474 wrote:
Captions are top priority after getting 24fps video, in my opinion, and if you can pull it off (you've made it this far, I believe you can do it!), caption support will really set this apart.
Add in ACagliano's networking library for the CE and a good dose of insanity and boom, YouTube CE (jk)


Captions seem very fusible since text data isn't anything compared to image data. I'm very excited to get this working. I just need to wait to the weekend for my to get any real work done.

Does anyone have a H264 or AV1 decoding library for the TI-84? This seems totally very possible and not way too complicated for a single threaded microprocessor. We gotta get YouTube working.
This is an AV1 decoder written in C, but targeting x86, ARM, and (in-progress) RISC-V processors. It might be possible to take the RISC-V code and re-work it to run on the eZ80, but I would highly recommend not doing so. Just use a simple compression (like LZSS) on each frame.
dav1d's decoder is absolutely INSANE, I followed the development years ago. It takes every trick of the silicon to eke out performance. Writing an av1 decoder for the ez80, I'm not even gonna think about that. Path decoding, interpolation, its a whole dark art, encoding/decoding
NoahK wrote:
This is an AV1 decoder written in C, but targeting x86, ARM, and (in-progress) RISC-V processors. It might be possible to take the RISC-V code and re-work it to run on the eZ80, but I would highly recommend not doing so. Just use a simple compression (like LZSS) on each frame.


I was being facetious. Yeah, I'm not going to do that. It's still funny to think about if that could work even at 1 frame per minute.
This is amazing so far! I wasn't expecting bee movie to show up lol
I quickly threw some Rust together to encode frames and I'm already seeing they are about 6 times smaller when using LZSS. I'm more of surprised that my program only takes about 30 seconds to generate 10 minutes of video.

There's still a lot of work I need to do. Firstly, I need to settle on which constants are best for the compression algorithm (honestly I have no idea and am just using the default ones). Also, I need to implement buffering. I'm gonna do some kind of chunk system. Each chunk will be a dynamic amount of video frames and or caption frames. Frames will have to fit within a chunk to allow for easy seeking of the data.
the bee movie is obligatory for any fine works of hacking such as this
Are you reading from the drive asynchronously? I really need to figure out the bandwidth limitations at some point though.
MateoConLechuga wrote:
Are you reading from the drive asynchronously? I really need to figure out the bandwidth limitations at some point though.


Currently, no. I do plan to switch it to that. Right now I'm just developing the ROM first.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement