Move zig-zagging from quantization into the fDCT.
authorTim Terriberry <tterribe@xiph.org>
Tue, 7 Dec 2010 10:28:07 +0000 (10:28 +0000)
committerTim Terriberry <tterribe@xiph.org>
Tue, 7 Dec 2010 10:28:07 +0000 (10:28 +0000)
commit8a8fa360a732db497cc2aeb6a74093a18671472b
tree455987e0f3fc527cfc1a110137aa4da5dc7ed5b4
parent72d688a222802538501f4eb786b386b1fa2e0069
Move zig-zagging from quantization into the fDCT.

This removes one of the transposes from the fDCT, and avoids several zig-zag
 lookups during tokenization.
This change also makes the encoder iDCT clear the input buffer like the
 decoder, which can be re-used for the next block, avoiding the need for a
 memcpy or memset in the tokenizer.
This gives a 1.3% speed-up at the default speed-level (1), and a 3.1% speed-up
 at speed-level 2 (for 480p, on x86-64).

svn path=/trunk/theora/; revision=17728
20 files changed:
lib/Makefile.am
lib/analyze.c
lib/arm/armidct.s
lib/c64x/c64xidct.c
lib/encint.h
lib/enquant.c
lib/fdct.c
lib/idct.c
lib/tokenize.c
lib/x86/mmxfdct.c
lib/x86/mmxidct.c
lib/x86/sse2fdct.c
lib/x86/sse2idct.c
lib/x86/x86enc.c
lib/x86/x86enc.h
lib/x86/x86enquant.c
lib/x86/x86zigzag.h [new file with mode: 0644]
lib/x86_vc/mmxfdct.c
lib/x86_vc/mmxidct.c
lib/x86_vc/x86zigzag.h [new file with mode: 0644]