Mar. 20th, 2008

xiphmont: (Default)
This is the 'executive summary' of the Thusnelda update I presented at RedHat this morning. The Full Monty can be found here. A short list of progress milestones since the original Thusnelda encoder proposal:

  1. Painfully detailed code review complete.
  2. Original VP3 SAD pre-analysis determined to be extraneous.
  3. The 64-pass-per-frame (no, I'm not kidding) DCT token packing loop replaced.
  4. Multi-step, multi-multi-multi-pass coding tightened up to a pass-and-a-half loop.
  5. New mode selection code based on theora-exp.
  6. New motion estimation and compensation code.
These last two bits, the new MV and new mode selection code, are the recent focus and not yet 100% complete. I previously blogged about the new debugging telemetry that allows MV and macroblock mode visualiztion that we'll see demonstrated below; the full presentation page has instructions on how to use the mplayer and/or gstreamer patches to enable debugging output.

The primary intent of the MV-specific work was to increase speed without impairing coding efficiency. This we've done to the tune of 1.5x improvement (Theora best case vs. Thusnelda) to 10x (Theora worst case vs. Thusnelda); additional planned work may yet double performace again.

Optimization of block type selection (mode select) was to increase coding efficiency. The new MV and mode selection code alone, compared directly to the algorithm used by mainline Theora, currently improves bitrate coding efficiency approximately 10%.


Above: example of mode selection in a frame of video from mainline Theora encode.


Mainline Theora as above, but directed to code all blocks and disable ZeroBin, such that the only differences we're comparing between mainline Theora and Thusnelda are the motion and mode code.


Above: example of mode selection in a frame of video from the Thusnelda encoder.

This is still brand new code, and we know of a few nasty bugs still in the new encoder-- just in case you should decide to play with the code and run into them. See the full page for the video including the above frames, including versions that include the debugging telemetry as part of the encoded video.

Profile

xiphmont: (Default)
xiphmont

Most Popular Tags