Re: alghorithm of working encoder in libtheora

"Benjamin M. Schwartz" <[email protected]>
Newsgroups gmane.comp.multimedia.ogg.theora.general
Message-ID <[email protected]>
On 03/18/2011 01:44 PM, digital design wrote:
> Now i implement next stages of encoder^
> Block1:
> 1) RGB->YUV
> 2) DCT of 16X16 blocks (pixel format 4:2:0) 
> 3) zig-zag in eatch 8*8 block from previous step and push it to bufer memory.
> 
> i push 16X16 blocks to BLOCK1 using raster order (i'm right?)
> Now i'm confused - so much types of ordering. What i must do after DCT?
> What is order for pass blocks to Huffman block?

In Theora terminology, a 16x16 unit spanning all 3 color planes (8x8 in U
and V) is called a "macroblock".  To encode the contents of a macroblock,
you must separate out the different color planes, and form "superblocks"
in each color plane.  The DC coefficients of each block are then coded in
"raster order", while the AC coefficients are coded in "coded order".
These orders are described in sections 2.3 and 2.4 of the Theora bitstream
specification.

The ordering of coefficients is
Y plane DC coefficients in raster order (whole plane)
Y plane AC coefficient 1 in coded order (whole plane)
Y plane AC coefficient 2 in coded order ...
...
Same for U plane
Same for V plane

For future questions please use Reply-All so that more people can help you.

--Ben

_______________________________________________
theora mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/theora
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk2DvXoACgkQUJT6e6HFtqQLCwCfVWUaLVZCQ0KS39ue1P4qCURu
IF0AnA/kCFE2AswpT9Jb9S/efJnrnBtM
=PnXq
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.