Since I had nothing better to do during Christmas “vacation” (it is the first time I’m in Germany at this time of year so of course I had nothing better to do) I looked at various codecs, mostly from last century, and wrote some notes about more interesting ones. Here I’d like to give some information about the rest lest I forget it completely.
Affinity Video
—JPEG rip-off;Lsvx
—H.263 rip-off with possible raw frames;Morgan TVMJ
—I should’ve noticed “MJPEG” in the description sooner;VDOWave 2
—an unholy mix of H.263 and wavelets. It uses the coding scheme from H.263 (8×8 blocks, loop filter, halfpel motion compensation and even something suspiciously resembling OBMC) but blocks are coded as three 4×4 blocks that should be recombined using Haar transform into one 8×8 block. Plus there might be an additional enhancement layer for the whole frame based on the same wavelet as well.
And I should mention VSS Codec Light
. While it is hard to get through all those levels of C++ abstractions, looks like it has arithmetic coding with static models, 4×4/8×8/16×16 blocks, 8×8 DCT, and five different wavelets variants to boot. At least it’s not another JPEG or H.263 rip-off.
Overall it feels that back in those days you had mostly JPEG rip-offs, H.263 rip-offs and wavelet-based codecs. I tried to look at more of the latter but one of the codecs turned out to be an impenetrable mess of deeply nested calls that seem to add stuff to the lists to be processed later somehow and another codec demonstrated that Ghidra
disassembler has bugs in handling certain kinds of instructions involving FS
register IIRC. In result it thinks the instruction should be a byte or two longer than it really is. So unless this is fixed I can’t look at it. There are still plenty old codecs I’ve not looked at.
Why entries about obsolete (for obvious reasons) codecs?
What else? How many state of the art codecs do you know that do not have open specification? I’ve reverse engineered RealVideo 6 already.
Plus some of them contain original ideas that sometimes occur in newer codecs and marketed as something new.
Request: the XVD codec
Looks interesting indeed, I’ll take a look.