CURRENTLY “WORK IN PROGRESS”
I am currently working on a future release of MIDRES Library, in which it will be possible to play videos on the screen in “full motion” (converted from mp4, divx, avi, and so on). All thanks to a specific video format and an encoding/decoding algorithm that allows its use on various models of retrocomputers, all those supported by the MIDRES library.
The encoder will be written in PHP language (version 7) and it will be portable on any platform. The decoder will be written in standard C (with MIDRES library support), and it will be available on various retrocomputing platforms. The decoder will be available in a multithreading fashion, so it will be possible to execute other logic while the movie is decoding.
Next to the first version of the encoder (IAV1), oriented on low quality movies such as TV series recorded by broadcasting signal and which gives its best with “black and white” movies, a second version (IAV2) has been developed. This latter gives better results with (colored) good quality movies. A specialized “spin off” for anime (animations with well-contrasted colors), called XIAV2, has been made from this second version.
At the moment there are therefore 3 encoders available, which work in both black and white and color. On this page it is possible to consult a gallery of videos made with the various encoders.
This is an example of the quality of the XIAV2 encoder when played by a Commodore 64 (in this case we are using a colored PETSCII charset with MSC1 compression):
The movie from which this segment was taken is a MP4 encoded file. The original file is “transcoded” using the proprietary XIAV2 algorithm with colour detection in a stream of textual screens (40 columns by 25 lines). The character set used is the PETSCII one. The movie is then represented as “delta frames”, further compressed according to a proprietary algorithm (MSC1). At the end of the process, the file takes 709.442 bytes (about 710 KB).
The bandwidth required for rendering is approximately 5 KB/s for monochrome display and 7 KB/s for colored one. It includes both the data loading time and real-time decompression from the MSC1 compressed format. Although I have carried out some studies to verify the possibility of replacing RAM with a mass memory such as the disk drive, to obtain this bandwidth it is necessary to use a REU (RAM Expansion Unit) of 512 KB.
Come back frequently to find out the progress of the work.