RANT : Movie Formats : Zerro Below

All opinions on this site are those of the author alone.
No warranty of any kind is provided.   All information herein is provided as is without any warranty of any kind.

ASM
FUN
RANTS
WORK
CODE

Movie File / Stream Format:

This is a bit ironic as I do not usually have any interest in watching, making, or editing video in any way. Though this is still one of those areas that definitely seem to be going in a counter productive direction.

There were a number of good movie formats that did not take very much processing time to render, and could provide compression on the order of between 20:1 to 50:1. Most of these formats did not impose any limits on the resolution of the video, and could produce just as good of quality video as modern codecs. The difference is that modern codecs take a lot of processing power to decompress and render the video, something that is not the case with the older formats.

The frustration being mentioned here is that modern formats for Video files and streams are taking more processing power, out of proportion to the the benefit of increased compression. It is not worth a 10% improvement in compression if you need a computer 10 times more powerful to use it, which is about the rate that things are going. If you need that much processing power to render video then you are being very wasteful, and not thinking very much about the spaceship earth on which you live as you are upgrading your Computer hardware more than once per decade (regardless of kind of computer (smartphone, tablet, laptop, Desktop, etc)).

I feel that those that are good with those things should be attempting to improve the compression rates using the same processing power as the older protocols for the same resolution of video. Using the Acorn moving blocks format on RISC OS, it is possible for a ARM 7500 at 40MHz CPU in an A7000 to cleanly render 720x480 (480p as it is now known) without any drop frames, it may be possible to go higher resolution on that system, that is just the highest I have tried. Or using the QuickTime 2.0 / 1.0 Codecs (Cinepak and QucikTime Animation) it is possible to display the same 720x480 video on a PowerPC 604 at 100MHz without any drop frames (slowest PowerPC Macintosh I could test on). In both examples given this is with full sound, and full multitasking with other CPU intense tasks running, also in both cases I am certain the systems could do a lot higher resolution video, though I had not anything higher resolution to try (and in both cases the monitors being used only go to 1280x1024 pixel resolutions).

I have read the arguments of why the old codecs are not improved on, though the arguments do not hold water. Yes it is true that QuickTime 1.x and 2.0 standard codec was optimized for 8bpp video, so what, with careful use of pallet it will look just as good in most cases as 15bpp and it can be used to treat the 24bpp video frame as 3 8bpp video frames. There are not any good arguments for not improving these codecs while keeping the performance ability on equal HW, this goes for the Apple, the Cu-SeeMe, and the Acorn video codecs (most of the others of the same time were behind the curve a bit).

... RANT TO BE CONTINUED ... As I learn enough about the details of these codecs to be able to implement some example code to aid in showing what could be, I will be updating this rant.




Other notes:

Besides just the methods of compression and encoding used, there is also the fact that a large majority of movies do not need the high resolution at which they are produced. It is common place to see a video on video sharing sites that is available in 720p or 1080p that would be just as clear in 360p, or sometimes even in 240p. So part of the issue is being wasteful when there is zero benefit in such.

If a movie is just as clear and provides all the needed detail at a given resolution do not provide it in a higher resolution, that is just wasteful without benefit. Not only are you wasting your processor time to encode the higher resolution, if you are putting it on a streaming video server you are wasting bandwidth for everyone, wasting storage space on your system and the host server, wasting the bandwidth of those watching the video, and wasting a lot of power in the extra processing power needed to decode and render the movie.

The space and bandwidth issues are true even with more efficient formats. The processing issue can be reduced by using more efficient video formats, which combined with lower resolution (keep it to what is needed), will reduce the overall processing time a lot (multiply the couple of watt hours times the number of people that may potentially view it and you have a lot of wasted power).

It is also so that some codecs are most efficient with 8bpp color, and many of these are very efficient overall. Reduce the color depth to 8bpp and give them a try, if you setup the pallet conversion correctly it is likely that you will end up with results that are quite good for a lot of videos, where the extra color depth does not add any value. This will save space / size, bandwidth, and processing time. It is likely that more than half of the videos out there would be just as good in 8bpp given the correct pallet conversion algorithm.

Further chose carefully the frame rate you use. Full motion video can often look good at as low as 12.5 frames per second (depending on how much motion and how fast the motion is), assuming that it is going to be displayed on a 60Hz, 90Hz, or 120Hz monitor (common choices) you can use 15fps, 20fps, or 30fps depending on the amount of fast motion, try the lowest first you may be surprised at how well it comes out. The choices cover many common cases, obviously if someone is using 44Hz or 72Hz it may not be quite as smooth, live with it that will be an issue no matter what rate you chose.




Why cover this topic?

It is true that I am not into movie watching or other things related to this in general, that said I am aware of the usefulness of this technology for others and I am as interested in making life easier for others as I am in my own projects. So when I see something that can so obviously go in a better direction than it is it is worth the time to research, rant, research some more, rant some more, provide some example code, rant some more, and hopefully point someone in a better direction.

Of course there is the fact that I enjoy figuring out solutions to problems, this is part of who I am. One day a person I knew could not get the JPG pictures out of a stored mode zip file (no compression) do to corruption, so I looked up the container format for JPG files, and wrote a quick and dirty utility to copy out the JPG files. This is about the same level of challenge, just a bit more in depth for this one, in the example case the challenge was getting it done in under 1 hour, in this case the challenge is getting all the correct information and hopefully having someone see it that can do more with it than I can.




This site hosted by NEOCITIES
THIS SITE BEST VIEWED IN YOUR FAVORITE BROWSER
© 2022 David Cagle