There's a number of things you can do to reduce the size of a video. Firstly, by using fewer colors, you can decrease the amount of information required for each pixel. You can also use smaller dimensions and then scale the image up. I also imagine that the compression that is being used works well for video because each frame differs only slightly from the previous.
I appreciate you trying to lay out the frame...work.

Puns aside, this seems like an awesome project and look forward to seeing it come to fruition.
Jcsq6 wrote:
What the program size? How are you doing this without importing like 100 massive sprites? I thought that was impossible even with compression...


lossy compression is much more efficient than lossless compression in this scenario.
Plus it often uses less then 8 bits per pixel.
Plus it uses (I'm assuming) semi-modern video codecs.
Wow this is a really cool project! Like the comment says above, how big is the file size, and how is it not taking up the entire calculators memory? (or is it?).

Do you plan on making some audio library as well to get my anime tunes pumping along with my anime videos to create the full weeb vibe?

All jokes aside, it would be really cool to see a full on video player with sound on the calc. Maybe this thread will help, https://www.cemetech.net/forum/viewtopic.php?t=13924. Not sure, maybe I'll try this myself. Anyways, awesome project!
KnightsWhoSayNi wrote:
Wow this is a really cool project! Like the comment says above, how big is the file size, and how is it not taking up the entire calculators memory? (or is it?).

Do you plan on making some audio library as well to get my anime tunes pumping along with my anime videos to create the full weeb vibe?

All jokes aside, it would be really cool to see a full on video player with sound on the calc. Maybe this thread will help, https://www.cemetech.net/forum/viewtopic.php?t=13924. Not sure, maybe I'll try this myself. Anyways, awesome project!

It pretty much is taking all the calc's memory. Most of it. The one video I still have numbers on is the 4bpp adaptive colors one that's hidden behind a link on the prior page (and this one too!). It contains 2660 96x54px frames, uses a general purpose decompression scheme (ZX7) to unpack each segment, then renders each segment to the screen by a combination of copying an entire frame to the buffer and copying only changes between the current frame and the previous frame. The size of the video in question is about 2.2MB.

I don't plan on making any audio libraries. The sort of additional hardware you'd need would mean you might as well have a fully external audio player. Not that I hadn't entertained that idea a few times. Yay for super cheap MCUs
Made some changes that were indirectly prompted by a semi-related topic about a video player on the 83+SE. I'd decided to encode the video mentioned there pretty much to see if I could. As it turned out, the X2 scaling decoder choked on that video for reasons I probably wouldn't have ever figured out had I not heavily commented the source (thanks geekboy1011 for encouraging that).

The problem itself relates to the part of the decoder that fills in 8x8 blocks in the areas that has changed between frames and how a 4:3 video at a horizontal resolution of 144 approaches the limit of how many blocks I can have (252 of 256). Some of the math I did rounded that up to 256, and representing that as a bitfield, it should've calculated the offset between the table and the frame data to be 32. Instead, the upper bit got chopped off and I ended up with an offset of 0 which caused the decoder to interpret the stream as corrupted. The "solution" I came up with was to check to see if it rounded to 0 and manually set it to 32 if so.

I also made changes to the player's UI to improve readability by increasing vertical padding in the text elements. The source was also modified to make it far easier to make additional changes to the UI. Changes which may include adjusting spacing/padding further, adding additional lines, integrating titlebar changes, or rearranging entire sections.

So... screenies. Yeah. Let's do that.

Sonic CD Intro video, 144x108 2bpp gs (4 level grayscale), ~30fps. On-calc, uses slightly more than 1300 kbytes


CEVidium UI, now with two whole pixels of additional padding in the text elements!


NOTE: The music in the Sonic CD intro video is catchy. Is something wrong with me? Have I lost it? Did I ever have "it" to begin with? I can't stop listening to this.

EDIT Had a bit of time to rework the interface a bit, or more like I wanted something easy to do and I got real sick and tired of squinting at the screen and maybe I need a new pair of glasses with a new perscription but that's neither here nor now, so I modified it for improved readability and to add a frame count field. Source code is a little more readable and maintainable. Also forgot to mention that I've started putting binaries with the source in that place somewhere on github.

New and improved interface, now with extra wide label titles and something else
Looks awesome but I noticed most of the video conversion doesn't take advantage of being 2bpp with the majority being only 2 shades mostly?
  
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 2 of 2
» All times are GMT - 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