]> git.sesse.net Git - x264/commit
Early termination for chroma encoding
authorFiona Glaser <fiona@x264.com>
Tue, 30 Jun 2009 22:20:32 +0000 (15:20 -0700)
committerFiona Glaser <fiona@x264.com>
Fri, 3 Jul 2009 03:31:40 +0000 (20:31 -0700)
commit205a032c22467c90c26d33ed9ab23d60461e57c1
tree12f18f40557c58e55d025d439e2e855c84222b50
parent8a96d510fd0aef8ccf73717754482c03c4063c0d
Early termination for chroma encoding
Faster chroma encoding by terminating early if heuristics indicate that the block will be DC-only.
This works because the vast majority of inter chroma blocks have no coefficients at all, and those that do are almost always DC-only.
Add two new helper DSP functions for this: dct_dc_8x8 and var2_8x8.  mmx/sse2/ssse3 versions of each.
Early termination is disabled at very low QPs due to it not being useful there.
Performance increase is ~1-2% without trellis, up to 5-6% with trellis=2.
Increase is greater with lower bitrates.
common/dct.c
common/dct.h
common/pixel.c
common/pixel.h
common/x86/dct-a.asm
common/x86/dct.h
common/x86/pixel-a.asm
common/x86/pixel.h
encoder/macroblock.c
tools/checkasm.c