diff options
author | Yaowu Xu <yaowu@google.com> | 2011-08-04 16:30:27 -0700 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2011-11-03 21:48:08 -0700 |
commit | 2bbde25003f5f67e2d60449712521890cadf7774 (patch) | |
tree | 92a4a46f45e813f2ea3c8f3a5e3625c8deb94c2f /vp8/encoder/onyx_if.c | |
parent | a10a268e58ffd4366f6dbddd5f26600d688714c9 (diff) | |
download | libvpx-2bbde25003f5f67e2d60449712521890cadf7774.tar libvpx-2bbde25003f5f67e2d60449712521890cadf7774.tar.gz libvpx-2bbde25003f5f67e2d60449712521890cadf7774.tar.bz2 libvpx-2bbde25003f5f67e2d60449712521890cadf7774.zip |
make uv intra mode coding adaptive to Y mode
This commit tries to do UV intra mode coding adaptive to Y intra mode.
Entropy context is defined as conditional PDF of uv intra mode given
the Y mode. All constants are normalized with 256 to be fit in 8 bits.
This provides further coding efficiency beyond the quantizer adaptive
y intra mode coding. Consistent gains were observed on all clips and
all bit rates for HD all key encoding tests.
To test, configure with
--enable-experimental --enable-uvintra
Change-Id: I2d78d73f143127f063e19bd0bac3b68c418d756a
Diffstat (limited to 'vp8/encoder/onyx_if.c')
-rw-r--r-- | vp8/encoder/onyx_if.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 98933c19c..a6ad0c705 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -147,6 +147,7 @@ extern INT64 Sectionbits[500]; extern int y_modes[VP8_YMODES] ; extern int i8x8_modes[VP8_I8X8_MODES]; extern int uv_modes[VP8_UV_MODES] ; +extern int uv_modes_y[VP8_YMODES][VP8_UV_MODES]; extern int b_modes[10] ; extern int inter_y_modes[10] ; extern int inter_uv_modes[4] ; @@ -2476,6 +2477,15 @@ void vp8_remove_compressor(VP8_PTR *ptr) fprintf(f, "Y: %8d, %8d, %8d, %8d, %8d\n", y_modes[0], y_modes[1], y_modes[2], y_modes[3], y_modes[4]); #endif fprintf(f, "UV:%8d, %8d, %8d, %8d\n", uv_modes[0], uv_modes[1], uv_modes[2], uv_modes[3]); + fprintf(f, "Y-UV:\n"); + { + int i; + for(i=0;i<VP8_YMODES;i++) + { + fprintf(f, "%2d:%8d, %8d, %8d, %8d\n",i,uv_modes_y[i][0], + uv_modes_y[i][1], uv_modes_y[i][2], uv_modes_y[i][3]); + } + } fprintf(f, "B: "); { int i; |