vpx/vp9
Deb Mukherjee 8d3d2b76f3 Tx size selection enhancements
(1) Refines the modeling function and uses that to add some speed
features. Specifically, intead of using a flag use_largest_txfm as
a speed feature, an enum tx_size_search_method is used, of which
two of the types are USE_FULL_RD and USE_LARGESTALL. Two other
new types are added:
USE_LARGESTINTRA (use largest only for intra)
USE_LARGESTINTRA_MODELINTER (use largest for intra, and model for
inter)

(2) Another change is that the framework for deciding transform type
is simplified to use a heuristic count based method rather than
an rd based method using txfm_cache. In practice the new method
is found to work just as well - with derf only -0.01 down.
The new method is more compatible with the new framework where
certain rd costs are based on full rd and certain others are
based on modeled rd or are not computed. In this patch the existing
rd based method is still kept for use in the USE_FULL_RD mode.
In the other modes, the count based method is used.
However the recommendation is to remove it eventually since the
benefit is limited, and will remove a lot of complications in
the code

(3) Finally a bug is fixed with the existing use_largest_txfm speed feature
that causes mismatches when the lossless mode and 4x4 WH transform is
forced.

Results on derf:
USE_FULL_RD: +0.03% (due to change in the tables), 0% encode time reduction
USE_LARGESTINTRA: -0.21%, 15% encode time reduction (this one is a
pretty good compromise)
USE_LARGESTINTRA_MODELINTER: -0.98%, 22% encode time reduction
(currently the benefit of modeling is limited for txfm size selection,
but keeping this enum as a placeholder) .
USE_LARGESTALL: -1.05%, 27% encode-time reduction (same as existing
use_largest_txfm speed feature).

Change-Id: I4d60a5f9ce78fbc90cddf2f97ed91d8bc0d4f936
2013-07-02 13:54:00 -07:00
..
common Tx size selection enhancements 2013-07-02 13:54:00 -07:00
decoder Merge "Make get_coef_context() branchless." 2013-07-02 11:48:15 -07:00
encoder Tx size selection enhancements 2013-07-02 13:54:00 -07:00
exports_dec support building vp8 and vp9 into a single lib 2012-11-15 10:46:17 -08:00
exports_enc support building vp8 and vp9 into a single lib 2012-11-15 10:46:17 -08:00
vp9_common.mk Merge "Removing unused implicit segmentation code." 2013-07-02 11:58:48 -07:00
vp9_cx_iface.c Using vp9 function prefix instead of vp8 inside vp9_cx_iface.c. 2013-05-22 18:04:08 -07:00
vp9_dx_iface.c Quick fix to stop vpxdec infinite loop 2013-06-12 13:46:47 -04:00
vp9_iface_common.h Align frame size to 8 instead of 16. 2013-06-07 17:20:50 -07:00
vp9cx.mk Merge "Quantize (64-bit only, for now) SSSE3 SIMD." 2013-07-01 15:58:57 -07:00
vp9dx.mk add Neon optimized add constant residual functions 2013-06-28 19:06:51 -07:00