summaryrefslogtreecommitdiff
path: root/vp8/encoder/onyx_if.c
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2011-08-04 16:30:27 -0700
committerYaowu Xu <yaowu@google.com>2011-11-03 21:48:08 -0700
commit2bbde25003f5f67e2d60449712521890cadf7774 (patch)
tree92a4a46f45e813f2ea3c8f3a5e3625c8deb94c2f /vp8/encoder/onyx_if.c
parenta10a268e58ffd4366f6dbddd5f26600d688714c9 (diff)
downloadlibvpx-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.c10
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;