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-----