[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