[theora-dev] idct8x8 C version in libtheora1.1 release

tterribe tterribe at email.unc.edu
Tue May 18 14:58:32 PDT 2010

On Tue, 18 May 2010 09:41:36 -0700, chandramouli narayanan
<nc.n.mouli at gmail.com> wrote:
> When using the IDCT routines, the C version [ lib/idct.c:
> oc_idct8x8_c(ogg_int16_t _y[64],int _last_zzi)] in libtheora 1.1.1, the
> decoded image is garbled. Is it functionally equivalent to the MMX
> optimized
> version [lib/x86/mmxidct.c: oc_idct8x8_mmx(ogg_int16_t _y[64],int
> _last_zzi)] ?
> I used some of the Theora video files from here:
> http://wiki.xiph.org/index.php/List_of_Theora_videos for testing with
> firefox browser. For testing purposes, I called the C version of IDCT
> routine instead of the MMX optimized version. Is there any documentation
> the IDCT algorithm used in Theora library?

I downloaded a fresh copy of the 1.1.1 tarball from
http://svn.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 on x86-32, ran
./configure --disable-asm and make, and used player_example to view
http://serv2.internautas.tv/videos/ogg/20100518_1.ogg, and didn't see any
garbling of the image. I also confirmed that it was, in fact, calling
oc_idct8x8_c(), and checked that dump_video produces the correct md5sum for
some of my personal test videos.

The exact iDCT algorithm is thouroughly documented in Section 7.9.3 of the
Theora specification: http://www.theora.org/doc/Theora.pdf

More information about the theora-dev mailing list