Hi, A few questions: Is libtheora strictly backward compatible with VP3? Can I set it up to shove raw VP3 data through and trust it to decode the same way as On2's open source code did, loop filters and all? Also, is libtheora just supposed to be a C-based reference implementation? I was looking through the code and noticed a distinct lack of any kind of optimizations. Naive tree-based Huffman decoding; no SIMD (MMX/SSE2/AltiVec) optimizations. I read some murmurs about some MMX optimizations. I realize that there is a desire to make this lib cross-platform compatible. Are you looking for a solution along those lines? 2 solution sets: One for Intel ASM syntax, one for AT&T? NASM dependency? Looking for optimizations over and above On2's original source? Thanks... -- -Mike Melanson
to my understanding libtheora is supposed to be a C-based reference implementation, that should still be es optimized as possible in C as long as it stays cross-platform, Optimization for MMX/SSE/AltiVec is important to use theora. right now this takes place in the theora-mmx branch. current simd efforts, mostly encoder optimization: http://svn.xiph.org/branches/theora-mmx there is a patch focusing on the decoder here: http://kyoto.cool.ne.jp/vp3/developers/theora-a3-MMXd.zip // should go into theora-mmx branch. ruik just posted a decoder patch for derfs experimental theora branch <http://svn.xiph.org/experimental/derf/theora-exp/> patch: http://ssh.cz/~ruik/patch_theora regaring backward compatibility, there is a transcoder tool, that can be used to repackage vp3 avi files to ogg theora files http://svn.xiph.org/trunk/theora/win32/experimental/transcoder/ or http://svn.xiph.org/trunk/theora-tools/theora_transcoder/ j
Timothy B. Terriberry
2005-Mar-09 12:06 UTC
[Theora-dev] VP3 Compatibility and SIMD Optimizations
Let's try this with Reply-To-All... you'd think I'd've done this enough times to get it right by now. VP3 data cannot quite be fed to libtheora directly. Some small fixups need to be done to the frame header (you can look at the transcoder (http://svn.xiph.org/trunk/theora-tools/theora_transcoder/) for details of what needs to be done). The experimental decoder has more algorithmic optimizations than the current mainline. While I was in a meeting I see j^ has already summarized the current SIMD efforts in progress.