[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