[daala] OT: working on a video codec, maybe interesting.

BGB cr88192 at gmail.com
Mon Sep 8 20:16:57 PDT 2014


sorry if this is OT.

well, this isn't particularly relevant either to Daala, or to any other 
mainstream codecs, but for my own uses I have developed a custom codec. 
I sort of wanted to bring it to attention of Xiph in the off-chance it 
might be relevant to anyone.


its use-case primarily focuses on low-overhead decoding to compressed 
texture formats (DXTn, BC6H, BC7, ...).

thus far I have gotten reasonably good speeds at this (informal test):
if multiple threads are used, in benchmark cases, up to an equivalent of 
around (on a 3.4GHz AMD K10):
around 2.9 Gpix/sec to DXT1 and 1.7 Gpix/sec to BC7;
around 190 Mpix/sec for a single-threaded decoder to RGBA, and 680 
Mpix/sec for a multithreaded-decoder to RGBA.

it is around 70 Mpix/sec for a single-threaded "fast" encoder (the one 
used for screen-capture), although the offline/batch encoder is 
significantly slower.

the implementation is plain C, and consists primarily of integer and 
fixed-point code.


part of its purpose was/is for low-overhead decoding of multiple 
parallel streams for use in soft-real-time applications (namely games), 
though the basic design has also been used successfully for real-time 
screen-capture and similar (seems to work fairly acceptably at this).


it also does support an alpha channel, HDR, (theoretically) supports 
layers and extended-component images (such as video-streams with depth, 
normal-map, specular, ... information).

it isn't really particularly competitive with conventional codecs in 
their core areas (it isn't particularly great in terms of minimizing 
bitrate, nor is it entirely "visually lossless", but these aren't a 
particularly high priority for what it is used for).


some info about the basic format used:
http://cr88192.mooo.com:8080/wiki/index.php/BTIC1C

granted, the design is fairly crude, but it seems to work pretty good 
for what it does.


as-noted, it is basically a VQ codec, but aiming to improve image 
quality and compression a bit relative to older-style VQ codecs (though 
the core design does derive from Apple Video / RPZA, but is 
significantly extended).

(up-to-date code can be made available if anyone wants it, but a lot of 
it is pretty bulky and nasty-looking...).

or such...



More information about the daala mailing list