[x264-devel] commit: Massive overhaul of nnz/cbp calculation (Jason Garrett-Glaser )
git version control
git at videolan.org
Fri Jan 30 13:11:34 CET 2009
x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Fri Jan 30 03:40:54 2009 -0800| [4c171c3b1c803a173ace823275882b3c9a2ecd24] | committer: Jason Garrett-Glaser
Massive overhaul of nnz/cbp calculation
Modify quantization to also calculate array_non_zero.
PPC assembly changes by gpoirior.
New quant asm includes some small tweaks to quant and SSE4 versions using ptest for the array_non_zero.
Use this new feature of quant to merge nnz/cbp calculation directly with encoding and avoid many unnecessary calls to dequant/zigzag/decimate/etc.
Also add new i16x16 DC-only iDCT with asm.
Since intra encoding now directly calculates nnz, skip_intra now backs up nnz/cbp as well.
Output should be equivalent except when using p4x4+RDO because of a subtlety involving old nnz values lying around.
Performance increase in macroblock_encode: ~18% with dct-decimate, 30% without at CRF 25.
Overall performance increase 0-6% depending on encoding settings.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=4c171c3b1c803a173ace823275882b3c9a2ecd24
---
common/common.h | 4 +
common/dct.c | 18 ++
common/dct.h | 1 +
common/ppc/quant.c | 68 ++++----
common/ppc/quant.h | 8 +-
common/quant.c | 27 +++-
common/quant.h | 8 +-
common/x86/dct-a.asm | 99 +++++++++++
common/x86/dct.h | 3 +
common/x86/quant-a.asm | 98 ++++++++++-
common/x86/quant.h | 25 ++--
encoder/analyse.c | 14 ++
encoder/cabac.c | 13 +--
encoder/cavlc.c | 1 -
encoder/macroblock.c | 431 +++++++++++++++++++++++++-----------------------
encoder/macroblock.h | 6 +-
encoder/rdo.c | 25 ++-
tools/checkasm.c | 54 ++++---
18 files changed, 585 insertions(+), 318 deletions(-)
Diff: http://git.videolan.org/gitweb.cgi/x264.git/?a=commitdiff;h=4c171c3b1c803a173ace823275882b3c9a2ecd24
More information about the x264-devel
mailing list