{{htmlmetatags>metatag-robots=()
metatag-title=(IAV: Isomorphic Audio Video)
metatag-keywords=(IAV,Commodore 64,Commodore VIC20,Atari,Commodore128,MIDRES Library,6502,6510,z80,video,codec)
metatag-description=(An isomorphic audio video codec, suitable for playing movies on 8-bit computer.)
metatag-media-og:image=(::midres-logo-fb.png)
metatag-og:title=(IAV: Isomorphic Audio Video)
metatag-og:description=(An isomorphic audio video codec, suitable for playing movies on 8-bit computer.)
}}
====== IAV: Isomorphic Audio Video format ======
**CURRENTLY "WORK IN PROGRESS"**
I am currently working on a future release of [[midres_library|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, [[https://github.com/spotlessmind1975/midres/blob/master/docs/targets.md|all those supported]] by the [[midres_library|MIDRES library]].
{{ :iav-diagrammi-diagramma_generale.png?nolink&600 |}}
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|MIDRES library]] support), and it will be available on [[https://github.com/spotlessmind1975/midres/blob/master/docs/targets.md|various retrocomputing platforms]]. The decoder will be available in a [[mt6502|multithreading fashion]], so it will be possible to execute other logic while the movie is decoding.
{{ ::iav_esempio_compressione.jpg?nolink&600 |}}
\adsense\
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 **[[:iav:gallery|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|MSC1 compression]]):
{{ youtube>5G5mjU-czW8?medium }}
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|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|MSC1 compressed format]]. Although I have carried out [[:benchmarks|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.**
===== POWERED BY =====
[[:midres_library|{{ :midres-logo.png?nolink&600 |}}]]