[theora-dev] [OT] Just saying hi!

Christoph Lampert chl at math.uni-bonn.de
Wed Feb 26 10:51:38 PST 2003

On Wed, 26 Feb 2003, Mike Melanson wrote:

> On Wed, 26 Feb 2003, Christoph Lampert wrote:
> > I guess there is no documentation of the current status of Theora 
> > and it's basic (technical) concepts, is there? Because reading sources is
> > okay, but sometimes a few explanations make it much easier. 
> 	I'm working on a description for the VP3 decode system as I
> develop a fresh decoder implementation for the ffmpeg project
> (ffmpeg.sf.net). Here is what I can tell you about the decode process
> (from which you can make educated guesses about the encode process):

ffmpeg (and therefore automatically mplayer-) support could _really_
boost popularity... good idea!

<p>> * decoding a VP3 frame:
>   * decode frame header (keyframe, quantization level, version #)
>   * unpack superblock/macroblock/fragment encoding data
>   * unpack encoding mode information for encoded blocks
>   * unpack motion vectors
>   * unpack DC coefficients for all coded fragments
>   * unpack 1st AC coefficients for all coded fragments
>   * unpack 2nd AC coefficients for all coded fragments
>   *  ...
>   * unpack 63rd AC coefficients for all coded fragments

That seems to violate a big rule for fast routines: locallity!
You have to store all coefficients of all blocks before reconstruction can
start. Why was it chosen that way? 

>   * reconstruct frame, which entails:
>    * prediction for the DC coefficient
>    * calculating relevant motion vector, if applicable
>    * IDCT to obtain fragment or fragment diff
>    * apply diff to motion block, if applicable
> That's basically how decoding works. Note that I still haven't gotten
> heavy into the interframe coding process, so I might have some details
> confused on the motion prediction stuff.

I myself am most involved into motion estimation, so as final questions
before letting you get back to work: Is the general method for ME
similar to MPEG? I-frames (golden... I like that... ;-) , P-frames,
B-frames? Motion estimation is done blockwise? Is there support for
global motion? 

Thanks for explaining


Christoph H. Lampert, gruel at web.de 

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'theora-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Theora-dev mailing list