Merges several experiments
The following five experiments are merged: newentropy newupdate adaptive_entropy (also includes a couple of parameter changes that improves results a little in common/entropymode.c and encoder/modecosts.c that were not merged from the internal branch) newintramodes expanded_coef_context Change-Id: I8a142a831786ee9dc936f22be1d42a8bced7d270
This commit is contained in:
parent
10a492847f
commit
9984a155d6
4
configure
vendored
4
configure
vendored
@ -220,12 +220,8 @@ EXPERIMENT_LIST="
|
||||
high_precision_mv
|
||||
sixteenth_subpel_uv
|
||||
comp_intra_pred
|
||||
newentropy
|
||||
newupdate
|
||||
superblocks
|
||||
expanded_coef_context
|
||||
newintramodes
|
||||
adaptive_entropy
|
||||
pred_filter
|
||||
lossless
|
||||
hybridtransform
|
||||
|
@ -34,9 +34,7 @@ void vpx_log(const char *format, ...);
|
||||
#define MB_FEATURE_TREE_PROBS 3
|
||||
#define PREDICTION_PROBS 3
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
#define MBSKIP_CONTEXTS 3
|
||||
#endif
|
||||
|
||||
#define MAX_MB_SEGMENTS 4
|
||||
|
||||
@ -82,14 +80,12 @@ typedef enum {
|
||||
DC_PRED, /* average of above and left pixels */
|
||||
V_PRED, /* vertical prediction */
|
||||
H_PRED, /* horizontal prediction */
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
D45_PRED, /* Directional 45 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
D135_PRED, /* Directional 135 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
D117_PRED, /* Directional 112 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
D153_PRED, /* Directional 157 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
D27_PRED, /* Directional 22 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
D63_PRED, /* Directional 67 deg prediction [anti-clockwise from 0 deg hor] */
|
||||
#endif
|
||||
TM_PRED, /* Truemotion prediction */
|
||||
I8X8_PRED, /* 8x8 based prediction, each 8x8 has its own prediction mode */
|
||||
B_PRED, /* block based prediction, each block has its own prediction mode */
|
||||
|
@ -22,89 +22,57 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
|
||||
/* Coeff Band ( 0 )*/
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 1 )*/
|
||||
{ 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
|
||||
{ 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
|
||||
{ 90, 116, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
|
||||
#else
|
||||
{ 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 2 )*/
|
||||
{ 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
|
||||
{ 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
|
||||
{ 64, 128, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
|
||||
#else
|
||||
{ 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 3 )*/
|
||||
{ 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
|
||||
{ 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
|
||||
{ 64, 100, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 4 )*/
|
||||
{ 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
|
||||
{ 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
|
||||
{ 28, 110, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
|
||||
#else
|
||||
{ 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 5 )*/
|
||||
{ 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
|
||||
{ 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
|
||||
{ 90, 90, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 6 )*/
|
||||
{ 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
|
||||
{ 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
|
||||
{ 64, 120, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 7 )*/
|
||||
{ 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -113,89 +81,57 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
|
||||
/* Coeff Band ( 0 )*/
|
||||
{ 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62 },
|
||||
{ 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
|
||||
{ 48, 32, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
|
||||
#else
|
||||
{ 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 1 )*/
|
||||
{ 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
|
||||
{ 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
|
||||
{ 66, 90, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
|
||||
#else
|
||||
{ 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 2 )*/
|
||||
{ 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
|
||||
{ 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
|
||||
{ 18, 80, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
|
||||
#else
|
||||
{ 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 3 )*/
|
||||
{ 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
|
||||
{ 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
|
||||
{ 36, 120, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
|
||||
#else
|
||||
{ 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 4 )*/
|
||||
{ 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
|
||||
{ 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
|
||||
{ 18, 90, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
|
||||
#else
|
||||
{ 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 5 )*/
|
||||
{ 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
|
||||
{ 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
|
||||
{ 28, 70, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
|
||||
#else
|
||||
{ 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 6 )*/
|
||||
{ 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
|
||||
{ 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
|
||||
{ 40, 90, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
|
||||
#else
|
||||
{ 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 7 )*/
|
||||
{ 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
|
||||
{ 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
|
||||
{ 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -204,89 +140,57 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
|
||||
/* Coeff Band ( 0 )*/
|
||||
{ 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
|
||||
{ 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
|
||||
{ 64, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
|
||||
#else
|
||||
{ 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 1 )*/
|
||||
{ 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
|
||||
{ 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
|
||||
{ 140, 70, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
|
||||
#else
|
||||
{ 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 2 )*/
|
||||
{ 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
|
||||
{ 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
|
||||
{ 60, 40, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
|
||||
#else
|
||||
{ 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 3 )*/
|
||||
{ 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
{ 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
{ 132, 118, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 4 )*/
|
||||
{ 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
{ 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 5 )*/
|
||||
{ 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 6 )*/
|
||||
{ 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
{ 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 48, 85, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 7 )*/
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -295,93 +199,60 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
|
||||
/* Coeff Band ( 0 )*/
|
||||
{ 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
|
||||
{ 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 63, 48, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
|
||||
{ 54, 40, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
|
||||
#else
|
||||
{ 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 1 )*/
|
||||
{ 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
|
||||
{ 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 44, 84, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
|
||||
{ 32, 70, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
|
||||
#else
|
||||
{ 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 2 )*/
|
||||
{ 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
|
||||
{ 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
|
||||
{ 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
|
||||
#else
|
||||
{ 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 3 )*/
|
||||
{ 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
|
||||
{ 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
|
||||
{ 26, 104, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
|
||||
#else
|
||||
{ 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 4 )*/
|
||||
{ 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
|
||||
{ 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
|
||||
{ 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
|
||||
#else
|
||||
{ 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 5 )*/
|
||||
{ 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
|
||||
{ 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
|
||||
{ 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
|
||||
#else
|
||||
{ 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 6 )*/
|
||||
{ 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
|
||||
{ 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
|
||||
{ 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
|
||||
#else
|
||||
{ 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
|
||||
#endif
|
||||
},
|
||||
{
|
||||
/* Coeff Band ( 7 )*/
|
||||
{ 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
{ 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#else
|
||||
{ 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
|
||||
#endif
|
||||
}
|
||||
}
|
||||
};
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
static const vp8_prob
|
||||
vp8_default_coef_probs_8x8[BLOCK_TYPES_8X8]
|
||||
[COEF_BANDS]
|
||||
@ -564,164 +435,3 @@ vp8_default_coef_probs_8x8[BLOCK_TYPES_8X8]
|
||||
}
|
||||
}
|
||||
};
|
||||
#else
|
||||
static const vp8_prob
|
||||
vp8_default_coef_probs_8x8[BLOCK_TYPES_8X8]
|
||||
[COEF_BANDS]
|
||||
[PREV_COEF_CONTEXTS]
|
||||
[ENTROPY_NODES] = {
|
||||
{
|
||||
/* block Type 0 */
|
||||
{
|
||||
/* Coeff Band 0 */
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 1 */
|
||||
{ 60, 140, 195, 255, 212, 214, 234, 244, 249, 252, 253},
|
||||
{ 75, 221, 231, 255, 203, 255, 255, 255, 255, 255, 255},
|
||||
{ 9, 212, 196, 251, 197, 207, 255, 185, 220, 237, 246}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 2 */
|
||||
{ 1, 227, 226, 255, 215, 215, 235, 245, 250, 252, 253},
|
||||
{ 5, 163, 209, 255, 212, 212, 255, 255, 255, 255, 255},
|
||||
{ 1, 133, 203, 255, 210, 220, 255, 255, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 3 */
|
||||
{ 1, 226, 225, 255, 228, 237, 246, 250, 252, 253, 254},
|
||||
{ 6, 163, 208, 255, 224, 234, 255, 255, 255, 255, 255},
|
||||
{ 1, 122, 196, 253, 212, 248, 255, 255, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 4 */
|
||||
{ 1, 222, 198, 254, 193, 216, 255, 242, 248, 251, 253},
|
||||
{ 7, 140, 163, 251, 195, 211, 255, 238, 246, 250, 252},
|
||||
{ 1, 91, 152, 249, 181, 197, 255, 239, 247, 251, 253}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 5 */
|
||||
{ 1, 226, 218, 255, 216, 242, 255, 255, 255, 255, 255},
|
||||
{ 6, 154, 191, 255, 218, 240, 255, 255, 255, 255, 255},
|
||||
{ 1, 111, 184, 255, 210, 225, 255, 255, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 6 */
|
||||
{ 1, 221, 217, 255, 208, 217, 255, 255, 255, 255, 255},
|
||||
{ 11, 155, 189, 254, 203, 211, 255, 249, 252, 253, 254},
|
||||
{ 1, 110, 171, 252, 191, 204, 255, 237, 246, 250, 252}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 7 */
|
||||
{ 1, 207, 235, 255, 232, 241, 248, 251, 253, 254, 254},
|
||||
{ 58, 161, 216, 255, 230, 235, 255, 255, 255, 255, 255},
|
||||
{ 8, 133, 204, 255, 219, 231, 255, 255, 255, 255, 255}
|
||||
}
|
||||
},
|
||||
{
|
||||
/* block Type 1 */
|
||||
{
|
||||
/* Coeff Band 0 */
|
||||
{ 134, 152, 233, 224, 234, 52, 255, 166, 210, 232, 243},
|
||||
{ 97, 132, 185, 234, 186, 189, 197, 171, 255, 212, 233},
|
||||
{ 84, 110, 185, 237, 182, 182, 145, 145, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 1 */
|
||||
{ 1, 124, 213, 247, 192, 212, 255, 255, 255, 255, 255},
|
||||
{ 88, 111, 178, 254, 189, 211, 255, 255, 255, 255, 255},
|
||||
{ 12, 59, 129, 236, 150, 179, 239, 195, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 2 */
|
||||
{ 1, 102, 225, 255, 210, 240, 247, 251, 253, 254, 254},
|
||||
{ 110, 78, 195, 254, 200, 191, 255, 255, 255, 255, 255},
|
||||
{ 37, 63, 177, 255, 194, 195, 225, 240, 247, 251, 253}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 3 */
|
||||
{ 1, 1, 229, 255, 202, 224, 239, 247, 251, 253, 254},
|
||||
{ 150, 1, 192, 255, 206, 226, 240, 247, 251, 253, 254},
|
||||
{ 75, 1, 138, 255, 172, 228, 241, 248, 251, 253, 254}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 4 */
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 5 */
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 6 */
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 7 */
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254},
|
||||
{ 128, 191, 223, 239, 247, 251, 253, 254, 254, 254, 254}
|
||||
}
|
||||
},
|
||||
{
|
||||
/* block Type 2 */
|
||||
{
|
||||
/* Coeff Band 0 */
|
||||
{ 11, 181, 226, 199, 183, 255, 255, 255, 255, 255, 255},
|
||||
{ 2, 147, 185, 248, 163, 180, 255, 236, 245, 250, 252},
|
||||
{ 1, 123, 157, 238, 154, 176, 255, 226, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 1 */
|
||||
{ 1, 150, 191, 246, 174, 188, 255, 235, 245, 250, 252},
|
||||
{ 1, 125, 166, 245, 165, 185, 255, 234, 244, 249, 252},
|
||||
{ 1, 79, 125, 240, 148, 179, 255, 234, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 2 */
|
||||
{ 1, 146, 184, 242, 167, 183, 255, 231, 243, 249, 252},
|
||||
{ 1, 119, 160, 239, 156, 178, 255, 231, 255, 255, 255},
|
||||
{ 1, 75, 115, 234, 142, 173, 255, 225, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 3 */
|
||||
{ 1, 150, 189, 244, 169, 183, 255, 234, 244, 249, 252},
|
||||
{ 1, 123, 162, 243, 161, 180, 255, 233, 244, 249, 252},
|
||||
{ 1, 76, 120, 238, 148, 178, 255, 230, 255, 255, 255}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 4 */
|
||||
{ 1, 163, 202, 252, 188, 204, 255, 249, 252, 253, 254},
|
||||
{ 1, 136, 180, 251, 181, 201, 255, 247, 251, 253, 254},
|
||||
{ 1, 92, 146, 249, 170, 197, 255, 246, 250, 252, 253}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 5 */
|
||||
{ 1, 156, 195, 249, 179, 193, 255, 242, 248, 251, 253},
|
||||
{ 1, 128, 169, 248, 171, 192, 255, 242, 248, 251, 253},
|
||||
{ 1, 84, 132, 245, 158, 187, 255, 240, 247, 251, 253}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 6 */
|
||||
{ 1, 172, 209, 251, 192, 201, 255, 243, 249, 252, 253},
|
||||
{ 1, 143, 185, 250, 184, 199, 255, 242, 248, 251, 253},
|
||||
{ 1, 95, 147, 247, 168, 190, 255, 240, 247, 251, 253}
|
||||
},
|
||||
{
|
||||
/* Coeff Band 7 */
|
||||
{ 1, 178, 229, 255, 218, 223, 255, 255, 255, 255, 255},
|
||||
{ 36, 155, 210, 255, 212, 221, 255, 255, 255, 255, 255},
|
||||
{ 6, 117, 180, 254, 199, 216, 255, 252, 253, 254, 254}
|
||||
}
|
||||
}
|
||||
};
|
||||
#endif
|
@ -47,17 +47,13 @@ DECLARE_ALIGNED(16, const unsigned char, vp8_norm[256]) = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
DECLARE_ALIGNED(16, cuchar, vp8_coef_bands[16]) =
|
||||
{ 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7};
|
||||
DECLARE_ALIGNED(16, cuchar, vp8_coef_bands[16]) = {
|
||||
0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7
|
||||
};
|
||||
|
||||
DECLARE_ALIGNED(16, cuchar, vp8_prev_token_class[MAX_ENTROPY_TOKENS]) =
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
{ 0, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0};
|
||||
#else
|
||||
{
|
||||
0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0
|
||||
};
|
||||
#endif
|
||||
DECLARE_ALIGNED(16, cuchar, vp8_prev_token_class[MAX_ENTROPY_TOKENS]) = {
|
||||
0, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0
|
||||
};
|
||||
|
||||
DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]) = {
|
||||
0, 1, 4, 8,
|
||||
@ -181,10 +177,6 @@ vp8_extra_bit_struct vp8_extra_bits[12] = {
|
||||
{ 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
const vp8_prob updprobs[4] = {128, 136, 120, 112};
|
||||
#endif
|
||||
|
||||
#include "default_coef_probs.h"
|
||||
|
||||
void vp8_default_coef_probs(VP8_COMMON *pc) {
|
||||
@ -201,8 +193,6 @@ void vp8_coef_tree_initialize() {
|
||||
vp8_tokens_from_tree(vp8_coef_encodings, vp8_coef_tree);
|
||||
}
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
|
||||
// #define COEF_COUNT_TESTING
|
||||
|
||||
#define COEF_COUNT_SAT 24
|
||||
@ -274,10 +264,8 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
|
||||
for (i = 0; i < BLOCK_TYPES; ++i)
|
||||
for (j = 0; j < COEF_BANDS; ++j)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
vp8_tree_probs_from_distribution(
|
||||
MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
|
||||
coef_probs, branch_ct, cm->fc.coef_counts [i][j][k],
|
||||
@ -298,10 +286,8 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
|
||||
for (i = 0; i < BLOCK_TYPES_8X8; ++i)
|
||||
for (j = 0; j < COEF_BANDS; ++j)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
vp8_tree_probs_from_distribution(
|
||||
MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
|
||||
coef_probs, branch_ct, cm->fc.coef_counts_8x8 [i][j][k],
|
||||
@ -319,4 +305,3 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -89,17 +89,11 @@ extern DECLARE_ALIGNED(64, const unsigned char, vp8_coef_bands_8x8[64]);
|
||||
distinct bands). */
|
||||
|
||||
/*# define DC_TOKEN_CONTEXTS 3*/ /* 00, 0!0, !0!0 */
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
#define PREV_COEF_CONTEXTS 4
|
||||
#else
|
||||
#define PREV_COEF_CONTEXTS 3
|
||||
#endif
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
#define SUBEXP_PARAM 4 /* Subexponential code parameter */
|
||||
#define MODULUS_PARAM 13 /* Modulus parameter */
|
||||
#define COEFUPDATETYPE 1 /* coef update type to use (1/2/3) */
|
||||
#endif
|
||||
|
||||
|
||||
extern DECLARE_ALIGNED(16, const unsigned char, vp8_prev_token_class[MAX_ENTROPY_TOKENS]);
|
||||
@ -118,7 +112,5 @@ extern DECLARE_ALIGNED(64, const int, vp8_default_zig_zag1d_8x8[64]);
|
||||
extern short vp8_default_zig_zag_mask_8x8[64];// int64_t
|
||||
void vp8_coef_tree_initialize(void);
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
void vp8_adapt_coef_probs(struct VP8Common *);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
|
||||
const unsigned int kf_y_mode_cts[8][VP8_YMODES] = {
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
/* DC V H D45 135 117 153 D27 D63 TM i8x8 BPRED */
|
||||
{12, 6, 5, 5, 5, 5, 5, 5, 5, 2, 22, 200},
|
||||
{25, 13, 13, 7, 7, 7, 7, 7, 7, 6, 27, 160},
|
||||
@ -27,30 +26,14 @@ const unsigned int kf_y_mode_cts[8][VP8_YMODES] = {
|
||||
{68, 33, 35, 8, 8, 8, 8, 8, 8, 17, 20, 68},
|
||||
{78, 38, 38, 8, 8, 8, 8, 8, 8, 19, 16, 52},
|
||||
{89, 42, 42, 8, 8, 8, 8, 8, 8, 21, 12, 34},
|
||||
#else
|
||||
{17, 6, 5, 2, 22, 203},
|
||||
{27, 13, 13, 6, 27, 170},
|
||||
{35, 17, 18, 9, 26, 152},
|
||||
{45, 22, 24, 12, 27, 126},
|
||||
{58, 26, 29, 13, 26, 104},
|
||||
{73, 33, 36, 17, 20, 78},
|
||||
{88, 38, 39, 19, 16, 57},
|
||||
{99, 42, 43, 21, 12, 39},
|
||||
#endif
|
||||
};
|
||||
|
||||
static const unsigned int y_mode_cts [VP8_YMODES] =
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
static const unsigned int y_mode_cts [VP8_YMODES] = {
|
||||
/* DC V H D45 135 117 153 D27 D63 TM i8x8 BPRED */
|
||||
{98, 19, 15, 14, 14, 14, 14, 12, 12, 13, 16, 70};
|
||||
#else
|
||||
{
|
||||
106, 25, 21, 13, 16, 74
|
||||
};
|
||||
#endif
|
||||
98, 19, 15, 14, 14, 14, 14, 12, 12, 13, 16, 70
|
||||
};
|
||||
|
||||
static const unsigned int uv_mode_cts [VP8_YMODES] [VP8_UV_MODES] = {
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
/* DC V H D45 135 117 153 D27 D63 TM */
|
||||
{ 200, 15, 15, 10, 10, 10, 10, 10, 10, 6}, /* DC */
|
||||
{ 130, 75, 10, 10, 10, 10, 10, 10, 10, 6}, /* V */
|
||||
@ -64,28 +47,14 @@ static const unsigned int uv_mode_cts [VP8_YMODES] [VP8_UV_MODES] = {
|
||||
{ 160, 30, 30, 10, 10, 10, 10, 10, 10, 16}, /* TM */
|
||||
{ 132, 46, 40, 10, 10, 10, 10, 10, 10, 18}, /* i8x8 - never used */
|
||||
{ 150, 35, 41, 10, 10, 10, 10, 10, 10, 10}, /* BPRED */
|
||||
#else
|
||||
{ 210, 20, 20, 6},
|
||||
{ 180, 60, 10, 6},
|
||||
{ 150, 20, 80, 6},
|
||||
{ 170, 35, 35, 16},
|
||||
{ 142, 51, 45, 18}, /* never used */
|
||||
{ 160, 40, 46, 10},
|
||||
#endif
|
||||
};
|
||||
|
||||
static const unsigned int i8x8_mode_cts [VP8_I8X8_MODES] =
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
static const unsigned int i8x8_mode_cts [VP8_I8X8_MODES] = {
|
||||
/* DC V H D45 135 117 153 D27 D63 TM */
|
||||
{73, 49, 61, 30, 30, 30, 30, 30, 30, 13};
|
||||
#else
|
||||
{
|
||||
93, 69, 81, 13
|
||||
};
|
||||
#endif
|
||||
73, 49, 61, 30, 30, 30, 30, 30, 30, 13
|
||||
};
|
||||
|
||||
static const unsigned int kf_uv_mode_cts [VP8_YMODES] [VP8_UV_MODES] = {
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
// DC V H D45 135 117 153 D27 D63 TM
|
||||
{ 160, 24, 24, 20, 20, 20, 20, 20, 20, 8}, /* DC */
|
||||
{ 102, 64, 30, 20, 20, 20, 20, 20, 20, 10}, /* V */
|
||||
@ -99,14 +68,6 @@ static const unsigned int kf_uv_mode_cts [VP8_YMODES] [VP8_UV_MODES] = {
|
||||
{ 132, 36, 30, 20, 20, 20, 20, 20, 20, 18}, /* TM */
|
||||
{ 122, 41, 35, 20, 20, 20, 20, 20, 20, 18}, /* i8x8 - never used */
|
||||
{ 122, 41, 35, 20, 20, 20, 20, 20, 20, 18}, /* BPRED */
|
||||
#else
|
||||
{ 180, 34, 34, 8},
|
||||
{ 132, 74, 40, 10},
|
||||
{ 132, 40, 74, 10},
|
||||
{ 152, 46, 40, 18},
|
||||
{ 142, 51, 45, 18}, /* never used */
|
||||
{ 142, 51, 45, 18},
|
||||
#endif
|
||||
};
|
||||
|
||||
static const unsigned int bmode_cts[VP8_BINTRAMODES] = {
|
||||
@ -201,7 +162,6 @@ const vp8_tree_index vp8_bmode_tree[VP8_BINTRAMODES * 2 - 2] = /* INTRAMODECONTE
|
||||
-B_HD_PRED, -B_HU_PRED /* 8 = HD_NODE */
|
||||
};
|
||||
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
/* Again, these trees use the same probability indices as their
|
||||
explicitly-programmed predecessors. */
|
||||
const vp8_tree_index vp8_ymode_tree[VP8_YMODES * 2 - 2] = {
|
||||
@ -256,39 +216,6 @@ const vp8_tree_index vp8_uv_mode_tree[VP8_UV_MODES * 2 - 2] = {
|
||||
-H_PRED, -TM_PRED
|
||||
};
|
||||
|
||||
#else /* CONFIG_NEWINTRAMODES */
|
||||
|
||||
/* Again, these trees use the same probability indices as their
|
||||
explicitly-programmed predecessors. */
|
||||
const vp8_tree_index vp8_ymode_tree[10] = {
|
||||
-DC_PRED, 2,
|
||||
4, 6,
|
||||
-V_PRED, -H_PRED,
|
||||
-TM_PRED, 8,
|
||||
-B_PRED, -I8X8_PRED
|
||||
};
|
||||
|
||||
const vp8_tree_index vp8_kf_ymode_tree[10] = {
|
||||
-B_PRED, 2,
|
||||
4, 6,
|
||||
-DC_PRED, -V_PRED,
|
||||
-H_PRED, 8,
|
||||
-TM_PRED, -I8X8_PRED
|
||||
};
|
||||
|
||||
const vp8_tree_index vp8_i8x8_mode_tree[6] = {
|
||||
-DC_PRED, 2,
|
||||
-V_PRED, 4,
|
||||
-H_PRED, -TM_PRED
|
||||
};
|
||||
const vp8_tree_index vp8_uv_mode_tree[6] = {
|
||||
-DC_PRED, 2,
|
||||
-V_PRED, 4,
|
||||
-H_PRED, -TM_PRED
|
||||
};
|
||||
|
||||
#endif /* CONFIG_NEWINTRAMODES */
|
||||
|
||||
const vp8_tree_index vp8_mbsplit_tree[6] = {
|
||||
-3, 2,
|
||||
-2, 4,
|
||||
@ -457,7 +384,7 @@ void vp8_accum_mv_refs(VP8_COMMON *pc,
|
||||
}
|
||||
|
||||
#define MVREF_COUNT_SAT 20
|
||||
#define MVREF_MAX_UPDATE_FACTOR 128
|
||||
#define MVREF_MAX_UPDATE_FACTOR 144
|
||||
void vp8_update_mode_context(VP8_COMMON *pc) {
|
||||
int i, j;
|
||||
int (*mv_ref_ct)[4][2];
|
||||
@ -475,7 +402,6 @@ void vp8_update_mode_context(VP8_COMMON *pc) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
int this_prob;
|
||||
int count = mv_ref_ct[j][i][0] + mv_ref_ct[j][i][1];
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
int factor;
|
||||
{
|
||||
this_prob = count > 0 ? 256 * mv_ref_ct[j][i][0] / count : 128;
|
||||
@ -486,14 +412,6 @@ void vp8_update_mode_context(VP8_COMMON *pc) {
|
||||
this_prob = this_prob ? (this_prob < 255 ? this_prob : 255) : 1;
|
||||
mode_context[j][i] = this_prob;
|
||||
}
|
||||
#else
|
||||
/* preventing rare occurances from skewing the probs */
|
||||
if (count >= 4) {
|
||||
this_prob = 256 * mv_ref_ct[j][i][0] / count;
|
||||
this_prob = this_prob ? (this_prob < 255 ? this_prob : 255) : 1;
|
||||
mode_context[j][i] = this_prob;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -529,10 +447,9 @@ void print_mv_ref_cts(VP8_COMMON *pc) {
|
||||
}
|
||||
}
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
// #define MODE_COUNT_TESTING
|
||||
#define MODE_COUNT_SAT 16
|
||||
#define MODE_MAX_UPDATE_FACTOR 128
|
||||
#define MODE_COUNT_SAT 20
|
||||
#define MODE_MAX_UPDATE_FACTOR 144
|
||||
void vp8_adapt_mode_probs(VP8_COMMON *cm) {
|
||||
int i, t, count, factor;
|
||||
unsigned int branch_ct[32][2];
|
||||
@ -671,4 +588,3 @@ void vp8_adapt_mode_probs(VP8_COMMON *cm) {
|
||||
else cm->fc.mbsplit_prob[t] = prob;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -66,7 +66,5 @@ extern void vp8_accum_mv_refs(VP8_COMMON *pc,
|
||||
void vp8_default_bmode_probs(vp8_prob dest [VP8_BINTRAMODES - 1]);
|
||||
void vp8_kf_default_bmode_probs(vp8_prob dest [VP8_BINTRAMODES] [VP8_BINTRAMODES] [VP8_BINTRAMODES - 1]);
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
void vp8_adapt_mode_probs(struct VP8Common *);
|
||||
#endif
|
||||
#endif
|
||||
|
@ -278,7 +278,6 @@ void vp8_entropy_mv_init() {
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
// #define MV_COUNT_TESTING
|
||||
#define MV_COUNT_SAT 16
|
||||
#define MV_MAX_UPDATE_FACTOR 128
|
||||
@ -412,4 +411,3 @@ void vp8_adapt_mv_probs(VP8_COMMON *cm) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif /* CONFIG_ADAPTIVE_ENTROPY */
|
||||
|
@ -132,14 +132,12 @@ static void lf_init_lut(loop_filter_info_n *lfi) {
|
||||
}
|
||||
|
||||
lfi->mode_lf_lut[DC_PRED] = 1;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
lfi->mode_lf_lut[D45_PRED] = 1;
|
||||
lfi->mode_lf_lut[D135_PRED] = 1;
|
||||
lfi->mode_lf_lut[D117_PRED] = 1;
|
||||
lfi->mode_lf_lut[D153_PRED] = 1;
|
||||
lfi->mode_lf_lut[D27_PRED] = 1;
|
||||
lfi->mode_lf_lut[D63_PRED] = 1;
|
||||
#endif
|
||||
lfi->mode_lf_lut[V_PRED] = 1;
|
||||
lfi->mode_lf_lut[H_PRED] = 1;
|
||||
lfi->mode_lf_lut[TM_PRED] = 1;
|
||||
|
@ -55,7 +55,6 @@ typedef struct frame_contexts {
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
MV_CONTEXT_HP mvc_hp[2];
|
||||
#endif
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
MV_CONTEXT pre_mvc[2];
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
MV_CONTEXT_HP pre_mvc_hp[2];
|
||||
@ -83,7 +82,6 @@ typedef struct frame_contexts {
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
unsigned int MVcount_hp [2] [MVvals_hp];
|
||||
#endif
|
||||
#endif /* CONFIG_ADAPTIVE_ENTROPY */
|
||||
int mode_context[6][4];
|
||||
int mode_context_a[6][4];
|
||||
int vp8_mode_contexts[6][4];
|
||||
@ -249,9 +247,7 @@ typedef struct VP8Common {
|
||||
|
||||
vp8_prob prob_comppred[COMP_PRED_CONTEXTS];
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8_prob mbskip_pred_probs[MBSKIP_CONTEXTS];
|
||||
#endif
|
||||
|
||||
FRAME_CONTEXT lfc_a; /* last alt ref entropy */
|
||||
FRAME_CONTEXT lfc; /* last frame entropy */
|
||||
|
@ -31,14 +31,12 @@ static const unsigned char MB_PREDICTION_MODE_colors[MB_MODE_COUNT][3] = {
|
||||
{ RGB_TO_YUV(0x98FB98) }, /* PaleGreen */
|
||||
{ RGB_TO_YUV(0x00FF00) }, /* Green */
|
||||
{ RGB_TO_YUV(0xADFF2F) }, /* GreenYellow */
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
{ RGB_TO_YUV(0x8F0000) }, /* Dark Red */
|
||||
{ RGB_TO_YUV(0x008F8F) }, /* Dark Cyan */
|
||||
{ RGB_TO_YUV(0x008F8F) }, /* Dark Cyan */
|
||||
{ RGB_TO_YUV(0x008F8F) }, /* Dark Cyan */
|
||||
{ RGB_TO_YUV(0x8F0000) }, /* Dark Red */
|
||||
{ RGB_TO_YUV(0x8F0000) }, /* Dark Red */
|
||||
#endif
|
||||
{ RGB_TO_YUV(0x228B22) }, /* ForestGreen */
|
||||
{ RGB_TO_YUV(0x006400) }, /* DarkGreen */
|
||||
{ RGB_TO_YUV(0x98F5FF) }, /* Cadet Blue */
|
||||
|
@ -57,12 +57,10 @@ unsigned char get_pred_context(VP8_COMMON *const cm,
|
||||
|
||||
break;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
case PRED_MBSKIP:
|
||||
pred_context = (m - 1)->mbmi.mb_skip_coeff +
|
||||
(m - cm->mode_info_stride)->mbmi.mb_skip_coeff;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
// TODO *** add error trap code.
|
||||
@ -100,11 +98,9 @@ vp8_prob get_pred_prob(VP8_COMMON *const cm,
|
||||
pred_probability = cm->prob_comppred[pred_context];
|
||||
break;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
case PRED_MBSKIP:
|
||||
pred_probability = cm->mbskip_pred_probs[pred_context];
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
// TODO *** add error trap code.
|
||||
@ -130,11 +126,9 @@ unsigned char get_pred_flag(MACROBLOCKD *const xd,
|
||||
pred_flag = xd->mode_info_context->mbmi.ref_predicted;
|
||||
break;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
case PRED_MBSKIP:
|
||||
pred_flag = xd->mode_info_context->mbmi.mb_skip_coeff;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
// TODO *** add error trap code.
|
||||
@ -159,11 +153,9 @@ void set_pred_flag(MACROBLOCKD *const xd,
|
||||
xd->mode_info_context->mbmi.ref_predicted = pred_flag;
|
||||
break;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
case PRED_MBSKIP:
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = pred_flag;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
// TODO *** add error trap code.
|
||||
|
@ -21,10 +21,7 @@ typedef enum {
|
||||
PRED_SEG_ID = 0, // Segment identifier
|
||||
PRED_REF = 1,
|
||||
PRED_COMP = 2,
|
||||
#if CONFIG_NEWENTROPY
|
||||
PRED_MBSKIP = 3,
|
||||
#endif
|
||||
|
||||
} PRED_ID;
|
||||
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
||||
* vp8_build_intra_predictors_mbuv_s(MACROBLOCKD *x).
|
||||
*/
|
||||
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
void d27_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
unsigned char *yabove_row, unsigned char *yleft_col) {
|
||||
int r, c, h, w, v;
|
||||
@ -196,7 +195,6 @@ void d153_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
ypred_ptr += y_stride;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_NEWINTRAMODES */
|
||||
|
||||
void vp8_recon_intra_mbuv(const vp8_recon_rtcd_vtable_t *rtcd, MACROBLOCKD *x) {
|
||||
int i;
|
||||
@ -293,7 +291,6 @@ void vp8_build_intra_predictors_mby_internal(MACROBLOCKD *x, unsigned char *ypre
|
||||
|
||||
}
|
||||
break;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
case D45_PRED: {
|
||||
d45_predictor(ypred_ptr, y_stride, 16, yabove_row, yleft_col);
|
||||
}
|
||||
@ -318,7 +315,6 @@ void vp8_build_intra_predictors_mby_internal(MACROBLOCKD *x, unsigned char *ypre
|
||||
d63_predictor(ypred_ptr, y_stride, 16, yabove_row, yleft_col);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#if CONIFG_I8X8
|
||||
case I8X8_PRED:
|
||||
#endif
|
||||
@ -475,7 +471,6 @@ void vp8_build_intra_predictors_mbuv_internal(MACROBLOCKD *x,
|
||||
|
||||
}
|
||||
break;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
case D45_PRED: {
|
||||
d45_predictor(upred_ptr, uv_stride, 8, uabove_row, uleft_col);
|
||||
d45_predictor(vpred_ptr, uv_stride, 8, vabove_row, vleft_col);
|
||||
@ -506,7 +501,6 @@ void vp8_build_intra_predictors_mbuv_internal(MACROBLOCKD *x,
|
||||
d63_predictor(vpred_ptr, uv_stride, 8, vabove_row, vleft_col);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case B_PRED:
|
||||
case NEARESTMV:
|
||||
case NEARMV:
|
||||
@ -617,7 +611,6 @@ void vp8_intra8x8_predict(BLOCKD *x,
|
||||
}
|
||||
}
|
||||
break;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
case D45_PRED: {
|
||||
d45_predictor(predictor, 16, 8, yabove_row, yleft_col);
|
||||
}
|
||||
@ -642,7 +635,6 @@ void vp8_intra8x8_predict(BLOCKD *x,
|
||||
d63_predictor(predictor, 16, 8, yabove_row, yleft_col);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -732,7 +724,6 @@ void vp8_intra_uv4x4_predict(BLOCKD *x,
|
||||
}
|
||||
}
|
||||
break;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
case D45_PRED: {
|
||||
d45_predictor(predictor, 8, 4, above_row, left_col);
|
||||
}
|
||||
@ -757,7 +748,6 @@ void vp8_intra_uv4x4_predict(BLOCKD *x,
|
||||
d63_predictor(predictor, 8, 4, above_row, left_col);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
#define __INC_RECONINTRA_H
|
||||
|
||||
#include "blockd.h"
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
void d45_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
unsigned char *yabove_row, unsigned char *yleft_col);
|
||||
void d135_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
@ -26,7 +25,6 @@ void d27_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
unsigned char *yabove_row, unsigned char *yleft_col);
|
||||
void d64_predictor(unsigned char *ypred_ptr, int y_stride, int n,
|
||||
unsigned char *yabove_row, unsigned char *yleft_col);
|
||||
#endif /* CONFIG_NEWINTRAMODES */
|
||||
|
||||
extern void init_intra_left_above_pixels(MACROBLOCKD *x);
|
||||
|
||||
|
@ -81,12 +81,13 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
|
||||
rtcd->recon.recon2 = vp8_recon2b_sse2;
|
||||
rtcd->recon.recon4 = vp8_recon4b_sse2;
|
||||
rtcd->recon.copy16x16 = vp8_copy_mem16x16_sse2;
|
||||
#if CONFIG_NEWINTRAMODES == 0
|
||||
|
||||
/* these are disable because of unsupported diagonal pred modes
|
||||
rtcd->recon.build_intra_predictors_mbuv =
|
||||
vp8_build_intra_predictors_mbuv_sse2;
|
||||
rtcd->recon.build_intra_predictors_mbuv_s =
|
||||
vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
#endif
|
||||
*/
|
||||
|
||||
// rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_sse2;
|
||||
|
||||
@ -129,12 +130,12 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
|
||||
rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_ssse3;
|
||||
#endif
|
||||
|
||||
#if CONFIG_NEWINTRAMODES == 0
|
||||
/* these are disable because of unsupported diagonal pred modes
|
||||
rtcd->recon.build_intra_predictors_mbuv =
|
||||
vp8_build_intra_predictors_mbuv_ssse3;
|
||||
rtcd->recon.build_intra_predictors_mbuv_s =
|
||||
vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
#endif
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -50,7 +50,6 @@ void vp8dx_bool_decoder_fill(BOOL_DECODER *br) {
|
||||
}
|
||||
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
static int get_unsigned_bits(unsigned num_values) {
|
||||
int cat = 0;
|
||||
if ((num_values--) <= 1) return 0;
|
||||
@ -99,4 +98,3 @@ int vp8_decode_term_subexp(BOOL_DECODER *br, int k, int num_syms) {
|
||||
}
|
||||
return word;
|
||||
}
|
||||
#endif
|
||||
|
@ -41,11 +41,9 @@ int vp8dx_start_decode(BOOL_DECODER *br,
|
||||
|
||||
void vp8dx_bool_decoder_fill(BOOL_DECODER *br);
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
int vp8_decode_uniform(BOOL_DECODER *br, int n);
|
||||
int vp8_decode_term_subexp(BOOL_DECODER *br, int k, int num_syms);
|
||||
int inv_recenter_nonneg(int v, int m);
|
||||
#endif
|
||||
|
||||
/*The refill loop is used in several places, so define it in a macro to make
|
||||
sure they're all consistent.
|
||||
|
@ -97,12 +97,8 @@ static void vp8_kfread_modes(VP8D_COMP *pbi,
|
||||
m->mbmi.segment_id, SEG_LVL_EOB) ||
|
||||
(get_segdata(&pbi->mb,
|
||||
m->mbmi.segment_id, SEG_LVL_EOB) != 0))) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
MACROBLOCKD *const xd = & pbi->mb;
|
||||
m->mbmi.mb_skip_coeff = vp8_read(bc, get_pred_prob(cm, xd, PRED_MBSKIP));
|
||||
#else
|
||||
m->mbmi.mb_skip_coeff = vp8_read(bc, pbi->prob_skip_false);
|
||||
#endif
|
||||
} else {
|
||||
if (segfeature_active(&pbi->mb,
|
||||
m->mbmi.segment_id, SEG_LVL_EOB) &&
|
||||
@ -442,19 +438,11 @@ static void mb_mode_mv_init(VP8D_COMP *pbi) {
|
||||
MACROBLOCKD *const xd = & pbi->mb;
|
||||
#endif
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
vpx_memset(cm->mbskip_pred_probs, 0, sizeof(cm->mbskip_pred_probs));
|
||||
#else
|
||||
pbi->prob_skip_false = 0;
|
||||
#endif
|
||||
if (pbi->common.mb_no_coeff_skip) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
cm->mbskip_pred_probs[k] = (vp8_prob)vp8_read_literal(bc, 8);
|
||||
#else
|
||||
pbi->prob_skip_false = (vp8_prob)vp8_read_literal(bc, 8);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (cm->frame_type != KEY_FRAME) {
|
||||
@ -600,11 +588,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
(get_segdata(xd, mbmi->segment_id, SEG_LVL_EOB) != 0))) {
|
||||
// Read the macroblock coeff skip flag if this feature is in use,
|
||||
// else default to 0
|
||||
#if CONFIG_NEWENTROPY
|
||||
mbmi->mb_skip_coeff = vp8_read(bc, get_pred_prob(cm, xd, PRED_MBSKIP));
|
||||
#else
|
||||
mbmi->mb_skip_coeff = vp8_read(bc, pbi->prob_skip_false);
|
||||
#endif
|
||||
} else {
|
||||
if (segfeature_active(xd,
|
||||
mbmi->segment_id, SEG_LVL_EOB) &&
|
||||
@ -680,9 +664,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
vp8_treed_read(bc, vp8_mbsplit_tree, cm->fc.mbsplit_prob);
|
||||
const int num_p = vp8_mbsplit_count [s];
|
||||
int j = 0;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.mbsplit_counts[s]++;
|
||||
#endif
|
||||
|
||||
mbmi->need_to_clamp_mvs = 0;
|
||||
do { /* for each subset j */
|
||||
@ -702,27 +684,21 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
}
|
||||
mv_contz = vp8_mv_cont(&leftmv, &abovemv);
|
||||
blockmode = sub_mv_ref(bc, cm->fc.sub_mv_ref_prob [mv_contz]);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.sub_mv_ref_counts[mv_contz][blockmode - LEFT4X4]++;
|
||||
#endif
|
||||
|
||||
switch (blockmode) {
|
||||
case NEW4X4:
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
if (xd->allow_high_precision_mv) {
|
||||
read_mv_hp(bc, &blockmv.as_mv, (const MV_CONTEXT_HP *) mvc_hp);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount_hp[0][mv_max_hp + (blockmv.as_mv.row)]++;
|
||||
cm->fc.MVcount_hp[1][mv_max_hp + (blockmv.as_mv.col)]++;
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
read_mv(bc, &blockmv.as_mv, (const MV_CONTEXT *) mvc);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount[0][mv_max + (blockmv.as_mv.row >> 1)]++;
|
||||
cm->fc.MVcount[1][mv_max + (blockmv.as_mv.col >> 1)]++;
|
||||
#endif
|
||||
}
|
||||
blockmv.as_mv.row += best_mv.as_mv.row;
|
||||
blockmv.as_mv.col += best_mv.as_mv.col;
|
||||
@ -731,18 +707,14 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
if (xd->allow_high_precision_mv) {
|
||||
read_mv_hp(bc, &secondmv.as_mv, (const MV_CONTEXT_HP *) mvc_hp);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount_hp[0][mv_max_hp + (secondmv.as_mv.row)]++;
|
||||
cm->fc.MVcount_hp[1][mv_max_hp + (secondmv.as_mv.col)]++;
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
read_mv(bc, &secondmv.as_mv, (const MV_CONTEXT *) mvc);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount[0][mv_max + (secondmv.as_mv.row >> 1)]++;
|
||||
cm->fc.MVcount[1][mv_max + (secondmv.as_mv.col >> 1)]++;
|
||||
#endif
|
||||
}
|
||||
secondmv.as_mv.row += best_mv_second.as_mv.row;
|
||||
secondmv.as_mv.col += best_mv_second.as_mv.col;
|
||||
@ -851,18 +823,14 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
#if CONFIG_HIGH_PRECISION_MV
|
||||
if (xd->allow_high_precision_mv) {
|
||||
read_mv_hp(bc, &mv->as_mv, (const MV_CONTEXT_HP *) mvc_hp);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount_hp[0][mv_max_hp + (mv->as_mv.row)]++;
|
||||
cm->fc.MVcount_hp[1][mv_max_hp + (mv->as_mv.col)]++;
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
read_mv(bc, &mv->as_mv, (const MV_CONTEXT *) mvc);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount[0][mv_max + (mv->as_mv.row >> 1)]++;
|
||||
cm->fc.MVcount[1][mv_max + (mv->as_mv.col >> 1)]++;
|
||||
#endif
|
||||
}
|
||||
mv->as_mv.row += best_mv.as_mv.row;
|
||||
mv->as_mv.col += best_mv.as_mv.col;
|
||||
@ -882,18 +850,14 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
if (xd->allow_high_precision_mv) {
|
||||
read_mv_hp(bc, &mbmi->second_mv.as_mv,
|
||||
(const MV_CONTEXT_HP *) mvc_hp);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount_hp[0][mv_max_hp + (mbmi->second_mv.as_mv.row)]++;
|
||||
cm->fc.MVcount_hp[1][mv_max_hp + (mbmi->second_mv.as_mv.col)]++;
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
read_mv(bc, &mbmi->second_mv.as_mv, (const MV_CONTEXT *) mvc);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cm->fc.MVcount[0][mv_max + (mbmi->second_mv.as_mv.row >> 1)]++;
|
||||
cm->fc.MVcount[1][mv_max + (mbmi->second_mv.as_mv.col >> 1)]++;
|
||||
#endif
|
||||
}
|
||||
mbmi->second_mv.as_mv.row += best_mv_second.as_mv.row;
|
||||
mbmi->second_mv.as_mv.col += best_mv_second.as_mv.col;
|
||||
@ -920,9 +884,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
else {
|
||||
mbmi->mode = (MB_PREDICTION_MODE)
|
||||
vp8_read_ymode(bc, pbi->common.fc.ymode_prob);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
pbi->common.fc.ymode_counts[mbmi->mode]++;
|
||||
#endif
|
||||
}
|
||||
#if CONFIG_COMP_INTRA_PRED
|
||||
mbmi->second_mode = (MB_PREDICTION_MODE)(DC_PRED - 1);
|
||||
@ -936,9 +898,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
#endif
|
||||
do {
|
||||
mi->bmi[j].as_mode.first = (B_PREDICTION_MODE)vp8_read_bmode(bc, pbi->common.fc.bmode_prob);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
pbi->common.fc.bmode_counts[mi->bmi[j].as_mode.first]++;
|
||||
#endif
|
||||
#if CONFIG_COMP_INTRA_PRED
|
||||
if (use_comp_pred) {
|
||||
mi->bmi[j].as_mode.second = (B_PREDICTION_MODE)vp8_read_bmode(bc, pbi->common.fc.bmode_prob);
|
||||
@ -959,9 +919,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
mi->bmi[ib + 1].as_mode.first = mode8x8;
|
||||
mi->bmi[ib + 4].as_mode.first = mode8x8;
|
||||
mi->bmi[ib + 5].as_mode.first = mode8x8;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
pbi->common.fc.i8x8_mode_counts[mode8x8]++;
|
||||
#endif
|
||||
#if CONFIG_COMP_INTRA_PRED
|
||||
mi->bmi[ib + 0].as_mode.second = (MB_PREDICTION_MODE)(DC_PRED - 1);
|
||||
mi->bmi[ib + 1].as_mode.second = (MB_PREDICTION_MODE)(DC_PRED - 1);
|
||||
@ -972,9 +930,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
|
||||
} else {
|
||||
mbmi->uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc,
|
||||
pbi->common.fc.uv_mode_prob[mbmi->mode]);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
pbi->common.fc.uv_mode_counts[mbmi->mode][mbmi->uv_mode]++;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_COMP_INTRA_PRED
|
||||
|
@ -46,7 +46,6 @@ int dec_debug = 0;
|
||||
|
||||
#define COEFCOUNT_TESTING
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
|
||||
static int merge_index(int v, int n, int modulus) {
|
||||
int max1 = (n - 1 - modulus / 2) / modulus + 1;
|
||||
@ -79,7 +78,6 @@ static vp8_prob read_prob_diff_update(vp8_reader *const bc, int oldp) {
|
||||
int delp = vp8_decode_term_subexp(bc, SUBEXP_PARAM, 255);
|
||||
return (vp8_prob)inv_remap_prob(delp, oldp);
|
||||
}
|
||||
#endif
|
||||
|
||||
void vp8cx_init_de_quantizer(VP8D_COMP *pbi) {
|
||||
int i;
|
||||
@ -808,7 +806,6 @@ static void init_frame(VP8D_COMP *pbi) {
|
||||
|
||||
}
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
static void read_coef_probs3(VP8D_COMP *pbi) {
|
||||
const vp8_prob grpupd = 216;
|
||||
int i, j, k, l;
|
||||
@ -820,11 +817,9 @@ static void read_coef_probs3(VP8D_COMP *pbi) {
|
||||
// printf("Decoding %d\n", l);
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
{
|
||||
vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
|
||||
int u = vp8_read(bc, COEF_UPDATE_PROB);
|
||||
@ -840,11 +835,9 @@ static void read_coef_probs3(VP8D_COMP *pbi) {
|
||||
if (vp8_read(bc, grpupd)) {
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
{
|
||||
vp8_prob *const p = pc->fc.coef_probs_8x8 [i][j][k] + l;
|
||||
int u = vp8_read(bc, COEF_UPDATE_PROB_8X8);
|
||||
@ -867,11 +860,9 @@ static void read_coef_probs2(VP8D_COMP *pbi) {
|
||||
for (i = 0; i < BLOCK_TYPES; i++)
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
{
|
||||
vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
|
||||
int u = vp8_read(bc, COEF_UPDATE_PROB);
|
||||
@ -886,11 +877,9 @@ static void read_coef_probs2(VP8D_COMP *pbi) {
|
||||
for (i = 0; i < BLOCK_TYPES_8X8; i++)
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
{
|
||||
vp8_prob *const p = pc->fc.coef_probs_8x8 [i][j][k] + l;
|
||||
|
||||
@ -902,7 +891,6 @@ static void read_coef_probs2(VP8D_COMP *pbi) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void read_coef_probs(VP8D_COMP *pbi) {
|
||||
int i, j, k, l;
|
||||
@ -913,26 +901,16 @@ static void read_coef_probs(VP8D_COMP *pbi) {
|
||||
if (vp8_read_bit(bc)) {
|
||||
/* read coef probability tree */
|
||||
for (i = 0; i < BLOCK_TYPES; i++)
|
||||
#if CONFIG_NEWUPDATE
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
#else
|
||||
for (j = 0; j < COEF_BANDS; j++)
|
||||
#endif
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
for (l = 0; l < ENTROPY_NODES; l++) {
|
||||
vp8_prob *const p = pc->fc.coef_probs [i][j][k] + l;
|
||||
|
||||
if (vp8_read(bc, COEF_UPDATE_PROB)) {
|
||||
#if CONFIG_NEWUPDATE
|
||||
*p = read_prob_diff_update(bc, *p);
|
||||
#else
|
||||
*p = (vp8_prob)vp8_read_literal(bc, 8);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -942,27 +920,17 @@ static void read_coef_probs(VP8D_COMP *pbi) {
|
||||
if (pbi->common.txfm_mode == ALLOW_8X8 && vp8_read_bit(bc)) {
|
||||
// read coef probability tree
|
||||
for (i = 0; i < BLOCK_TYPES_8X8; i++)
|
||||
#if CONFIG_NEWUPDATE
|
||||
for (j = !i; j < COEF_BANDS; j++)
|
||||
#else
|
||||
for (j = 0; j < COEF_BANDS; j++)
|
||||
#endif
|
||||
for (k = 0; k < PREV_COEF_CONTEXTS; k++) {
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
for (l = 0; l < ENTROPY_NODES; l++) {
|
||||
|
||||
vp8_prob *const p = pc->fc.coef_probs_8x8 [i][j][k] + l;
|
||||
|
||||
if (vp8_read(bc, COEF_UPDATE_PROB_8X8)) {
|
||||
#if CONFIG_NEWUPDATE
|
||||
*p = read_prob_diff_update(bc, *p);
|
||||
#else
|
||||
*p = (vp8_prob)vp8_read_literal(bc, 8);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1352,7 +1320,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
|
||||
fclose(z);
|
||||
}
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_copy(pbi->common.fc.pre_coef_probs, pbi->common.fc.coef_probs);
|
||||
vp8_copy(pbi->common.fc.pre_coef_probs_8x8, pbi->common.fc.coef_probs_8x8);
|
||||
vp8_copy(pbi->common.fc.pre_ymode_prob, pbi->common.fc.ymode_prob);
|
||||
@ -1379,10 +1346,9 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
|
||||
#endif
|
||||
vp8_zero(pbi->common.fc.mv_ref_ct);
|
||||
vp8_zero(pbi->common.fc.mv_ref_ct_a);
|
||||
#endif /* CONFIG_ADAPTIVE_ENTROPY */
|
||||
#if CONFIG_NEWUPDATE && COEFUPDATETYPE == 2
|
||||
#if COEFUPDATETYPE == 2
|
||||
read_coef_probs2(pbi);
|
||||
#elif CONFIG_NEWUPDATE && COEFUPDATETYPE == 3
|
||||
#elif COEFUPDATETYPE == 3
|
||||
read_coef_probs3(pbi);
|
||||
#else
|
||||
read_coef_probs(pbi);
|
||||
@ -1410,11 +1376,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
|
||||
pc->mb_no_coeff_skip = (int)vp8_read_bit(bc);
|
||||
|
||||
vp8_decode_mode_mvs(pbi);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY == 0
|
||||
if (pc->frame_type != KEY_FRAME) {
|
||||
vp8_update_mode_context(&pbi->common);
|
||||
}
|
||||
#endif
|
||||
|
||||
vpx_memset(pc->above_context, 0, sizeof(ENTROPY_CONTEXT_PLANES) * pc->mb_cols);
|
||||
|
||||
@ -1443,14 +1404,12 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
|
||||
}
|
||||
|
||||
/* vpx_log("Decoder: Frame Decoded, Size Roughly:%d bytes \n",bc->pos+pbi->bc2.pos); */
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_adapt_coef_probs(pc);
|
||||
if (pc->frame_type != KEY_FRAME) {
|
||||
vp8_adapt_mode_probs(pc);
|
||||
vp8_adapt_mv_probs(pc);
|
||||
vp8_update_mode_context(&pbi->common);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If this was a kf or Gf note the Q used */
|
||||
if ((pc->frame_type == KEY_FRAME) ||
|
||||
|
@ -96,14 +96,9 @@ DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]);
|
||||
|
||||
// #define PREV_CONTEXT_INC(val) (2+((val)>2))
|
||||
// #define PREV_CONTEXT_INC(val) (vp8_prev_token_class[(val)])
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
#define PREV_CONTEXT_INC(val) (vp8_prev_token_class[(val)>10?10:(val)])
|
||||
#else
|
||||
#define PREV_CONTEXT_INC(val) (2)
|
||||
#endif
|
||||
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
int get_token(int v) {
|
||||
if (v < 0) v = -v;
|
||||
if (v == 0) return ZERO_TOKEN;
|
||||
@ -203,7 +198,6 @@ void static count_tokens_8x8(INT16 *qcoeff_ptr, int block, int type,
|
||||
fc->coef_counts_8x8[type][band][pt][DCT_EOB_TOKEN]++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static int vp8_get_signed(BOOL_DECODER *br, int value_to_sign) {
|
||||
@ -335,7 +329,6 @@ static int vp8_decode_coefs(VP8D_COMP *dx, const MACROBLOCKD *xd,
|
||||
val += CAT6_MIN_VAL;
|
||||
WRITE_COEF_CONTINUE(val);
|
||||
}
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
|
||||
if (block_type == TX_4X4)
|
||||
#if CONFIG_HYBRIDTRANSFORM
|
||||
@ -346,7 +339,6 @@ static int vp8_decode_coefs(VP8D_COMP *dx, const MACROBLOCKD *xd,
|
||||
|
||||
else
|
||||
count_tokens_8x8(qcoeff_ptr, i, type, a, l, c, seg_eob, fc);
|
||||
#endif
|
||||
return c;
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,6 @@ int count_mb_seg[4] = { 0, 0, 0, 0 };
|
||||
#define vp8_cost_upd ((int)(vp8_cost_one(upd) - vp8_cost_zero(upd)) >> 8)
|
||||
#define vp8_cost_upd256 ((int)(vp8_cost_one(upd) - vp8_cost_zero(upd)))
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
#define SEARCH_NEWP
|
||||
static int update_bits[255];
|
||||
|
||||
@ -96,7 +95,6 @@ static int prob_diff_update_cost(vp8_prob newp, vp8_prob oldp) {
|
||||
int delp = remap_prob(newp, oldp);
|
||||
return update_bits[delp] * 256;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void update_mode(
|
||||
vp8_writer *const w,
|
||||
@ -153,7 +151,6 @@ static void update_mbintra_mode_probs(VP8_COMP *cpi) {
|
||||
}
|
||||
|
||||
void update_skip_probs(VP8_COMP *cpi) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
VP8_COMMON *const pc = & cpi->common;
|
||||
int prob_skip_false[3] = {0, 0, 0};
|
||||
int k;
|
||||
@ -174,25 +171,6 @@ void update_skip_probs(VP8_COMP *cpi) {
|
||||
|
||||
pc->mbskip_pred_probs[k] = prob_skip_false[k];
|
||||
}
|
||||
|
||||
#else
|
||||
int prob_skip_false = 0;
|
||||
|
||||
if ((cpi->skip_false_count + cpi->skip_true_count)) {
|
||||
prob_skip_false = cpi->skip_false_count * 256 /
|
||||
(cpi->skip_false_count + cpi->skip_true_count);
|
||||
|
||||
if (prob_skip_false <= 1)
|
||||
prob_skip_false = 1;
|
||||
|
||||
if (prob_skip_false > 255)
|
||||
prob_skip_false = 255;
|
||||
} else
|
||||
prob_skip_false = 128;
|
||||
|
||||
cpi->prob_skip_false = prob_skip_false;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
// This function updates the reference frame prediction stats
|
||||
@ -282,7 +260,6 @@ static int prob_update_savings(const unsigned int *ct,
|
||||
return (old_b - new_b - update_b);
|
||||
}
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
static int prob_diff_update_savings(const unsigned int *ct,
|
||||
const vp8_prob oldp, const vp8_prob newp,
|
||||
const vp8_prob upd) {
|
||||
@ -316,7 +293,6 @@ static int prob_diff_update_savings_search(const unsigned int *ct,
|
||||
*bestp = bestnewp;
|
||||
return bestsavings;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void pack_tokens_c(vp8_writer *w, const TOKENEXTRA *p, int xcount) {
|
||||
const TOKENEXTRA *const stop = p + xcount;
|
||||
@ -716,16 +692,11 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi) {
|
||||
#endif
|
||||
|
||||
if (pc->mb_no_coeff_skip) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
|
||||
update_skip_probs(cpi);
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
vp8_write_literal(w, pc->mbskip_pred_probs[k], 8);
|
||||
#else
|
||||
update_skip_probs(cpi);
|
||||
vp8_write_literal(w, cpi->prob_skip_false, 8);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
@ -847,12 +818,8 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi) {
|
||||
if (pc->mb_no_coeff_skip &&
|
||||
(!segfeature_active(xd, segment_id, SEG_LVL_EOB) ||
|
||||
(get_segdata(xd, segment_id, SEG_LVL_EOB) != 0))) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8_encode_bool(w, mi->mb_skip_coeff,
|
||||
get_pred_prob(pc, xd, PRED_MBSKIP));
|
||||
#else
|
||||
vp8_encode_bool(w, mi->mb_skip_coeff, cpi->prob_skip_false);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Encode the reference frame.
|
||||
@ -994,9 +961,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi) {
|
||||
#endif
|
||||
|
||||
write_split(w, mi->partitioning, cpi->common.fc.mbsplit_prob);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cpi->mbsplit_count[mi->partitioning]++;
|
||||
#endif
|
||||
|
||||
do {
|
||||
B_PREDICTION_MODE blockmode;
|
||||
@ -1022,9 +987,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi) {
|
||||
|
||||
write_sub_mv_ref(w, blockmode,
|
||||
cpi->common.fc.sub_mv_ref_prob [mv_contz]);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
cpi->sub_mv_ref_count[mv_contz][blockmode - LEFT4X4]++;
|
||||
#endif
|
||||
if (blockmode == NEW4X4) {
|
||||
#ifdef ENTROPY_STATS
|
||||
active_section = 11;
|
||||
@ -1092,18 +1055,13 @@ static void write_kfmodes(VP8_COMP *cpi) {
|
||||
int i;
|
||||
int row, col;
|
||||
int mb_row, mb_col;
|
||||
#if CONFIG_NEWENTROPY
|
||||
int prob_skip_false[3] = {0, 0, 0};
|
||||
#else
|
||||
int prob_skip_false = 0;
|
||||
#endif
|
||||
int row_delta[4] = { 0, +1, 0, -1};
|
||||
int col_delta[4] = { +1, -1, +1, +1};
|
||||
|
||||
// printf("write_kfmodes\n");
|
||||
if (c->mb_no_coeff_skip) {
|
||||
// Divide by 0 check. 0 case possible with segment features
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k) {
|
||||
if ((cpi->skip_false_count[k] + cpi->skip_true_count[k])) {
|
||||
@ -1121,22 +1079,6 @@ static void write_kfmodes(VP8_COMP *cpi) {
|
||||
c->mbskip_pred_probs[k] = prob_skip_false[k];
|
||||
vp8_write_literal(bc, prob_skip_false[k], 8);
|
||||
}
|
||||
#else
|
||||
if ((cpi->skip_false_count + cpi->skip_true_count)) {
|
||||
prob_skip_false = cpi->skip_false_count * 256 /
|
||||
(cpi->skip_false_count + cpi->skip_true_count);
|
||||
|
||||
if (prob_skip_false <= 1)
|
||||
prob_skip_false = 1;
|
||||
|
||||
if (prob_skip_false > 255)
|
||||
prob_skip_false = 255;
|
||||
} else
|
||||
prob_skip_false = 255;
|
||||
|
||||
cpi->prob_skip_false = prob_skip_false;
|
||||
vp8_write_literal(bc, prob_skip_false, 8);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!c->kf_ymode_probs_update) {
|
||||
@ -1179,12 +1121,8 @@ static void write_kfmodes(VP8_COMP *cpi) {
|
||||
if (c->mb_no_coeff_skip &&
|
||||
(!segfeature_active(xd, segment_id, SEG_LVL_EOB) ||
|
||||
(get_segdata(xd, segment_id, SEG_LVL_EOB) != 0))) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8_encode_bool(bc, m->mbmi.mb_skip_coeff,
|
||||
get_pred_prob(c, xd, PRED_MBSKIP));
|
||||
#else
|
||||
vp8_encode_bool(bc, m->mbmi.mb_skip_coeff, prob_skip_false);
|
||||
#endif
|
||||
}
|
||||
kfwrite_ymode(bc, ym,
|
||||
c->kf_ymode_prob[c->kf_ymode_probs_index]);
|
||||
@ -1284,10 +1222,8 @@ void build_coeff_contexts(VP8_COMP *cpi) {
|
||||
#ifdef ENTROPY_STATS
|
||||
int t;
|
||||
#endif
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
vp8_tree_probs_from_distribution(
|
||||
MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
|
||||
cpi->frame_coef_probs [i][j][k],
|
||||
@ -1323,10 +1259,8 @@ void build_coeff_contexts(VP8_COMP *cpi) {
|
||||
#ifdef ENTROPY_STATS
|
||||
int t = 0; /* token/prob index */
|
||||
#endif
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
vp8_tree_probs_from_distribution(
|
||||
MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
|
||||
cpi->frame_coef_probs_8x8 [i][j][k],
|
||||
@ -1351,7 +1285,6 @@ void build_coeff_contexts(VP8_COMP *cpi) {
|
||||
|
||||
}
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
static void update_coef_probs3(VP8_COMP *cpi) {
|
||||
const vp8_prob grpupd = 216;
|
||||
int i, j, k, t;
|
||||
@ -1377,10 +1310,8 @@ static void update_coef_probs3(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB;
|
||||
int s;
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
@ -1414,10 +1345,8 @@ static void update_coef_probs3(VP8_COMP *cpi) {
|
||||
int s;
|
||||
int u = 0;
|
||||
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct [i][j][k][t], *Pold, &newp, upd);
|
||||
@ -1459,10 +1388,8 @@ static void update_coef_probs3(VP8_COMP *cpi) {
|
||||
int s;
|
||||
int u = 0;
|
||||
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct_8x8 [i][j][k][t],
|
||||
@ -1498,10 +1425,8 @@ static void update_coef_probs3(VP8_COMP *cpi) {
|
||||
int s;
|
||||
int u = 0;
|
||||
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct_8x8 [i][j][k][t],
|
||||
@ -1555,10 +1480,8 @@ static void update_coef_probs2(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB;
|
||||
int s;
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
@ -1593,10 +1516,8 @@ static void update_coef_probs2(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB;
|
||||
int s;
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct [i][j][k][t], *Pold, &newp, upd);
|
||||
@ -1635,10 +1556,8 @@ static void update_coef_probs2(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB_8X8;
|
||||
int s;
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct_8x8 [i][j][k][t],
|
||||
@ -1675,10 +1594,8 @@ static void update_coef_probs2(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB_8X8;
|
||||
int s;
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct_8x8 [i][j][k][t],
|
||||
@ -1707,7 +1624,6 @@ static void update_coef_probs2(VP8_COMP *cpi) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void update_coef_probs(VP8_COMP *cpi) {
|
||||
int i = 0;
|
||||
@ -1726,11 +1642,7 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
/* dry run to see if there is any udpate at all needed */
|
||||
savings = 0;
|
||||
do {
|
||||
#if CONFIG_NEWUPDATE
|
||||
int j = !i;
|
||||
#else
|
||||
int j = 0; /* token/prob index */
|
||||
#endif
|
||||
do {
|
||||
int k = 0;
|
||||
int prev_coef_savings[ENTROPY_NODES] = {0};
|
||||
@ -1742,11 +1654,9 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB;
|
||||
int s = prev_coef_savings[t];
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct [i][j][k][t],
|
||||
*Pold, &newp, upd);
|
||||
@ -1774,22 +1684,14 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
|
||||
// printf("Update %d %d, savings %d\n", update[0], update[1], savings);
|
||||
/* Is coef updated at all */
|
||||
#if CONFIG_NEWUPDATE
|
||||
if (update[1] == 0 || savings < 0)
|
||||
#else
|
||||
if (update[1] == 0)
|
||||
#endif
|
||||
{
|
||||
vp8_write_bit(w, 0);
|
||||
} else {
|
||||
vp8_write_bit(w, 1);
|
||||
i = 0;
|
||||
do {
|
||||
#if CONFIG_NEWUPDATE
|
||||
int j = !i;
|
||||
#else
|
||||
int j = 0; /* token/prob index */
|
||||
#endif
|
||||
do {
|
||||
int k = 0;
|
||||
int prev_coef_savings[ENTROPY_NODES] = {0};
|
||||
@ -1803,12 +1705,10 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
const vp8_prob upd = COEF_UPDATE_PROB;
|
||||
int s = prev_coef_savings[t];
|
||||
int u = 0;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
#if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(
|
||||
cpi->frame_branch_ct [i][j][k][t],
|
||||
*Pold, &newp, upd);
|
||||
@ -1830,11 +1730,7 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
#endif
|
||||
if (u) {
|
||||
/* send/use new probability */
|
||||
#if CONFIG_NEWUPDATE
|
||||
write_prob_diff_update(w, newp, *Pold);
|
||||
#else
|
||||
vp8_write_literal(w, newp, 8);
|
||||
#endif
|
||||
*Pold = newp;
|
||||
}
|
||||
} while (++t < ENTROPY_NODES);
|
||||
@ -1852,11 +1748,7 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
savings = 0;
|
||||
i = 0;
|
||||
do {
|
||||
#if CONFIG_NEWUPDATE
|
||||
int j = !i;
|
||||
#else
|
||||
int j = 0; /* token/prob index */
|
||||
#endif
|
||||
do {
|
||||
int k = 0;
|
||||
do {
|
||||
@ -1869,11 +1761,9 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
const vp8_prob oldp = *Pold;
|
||||
int s, u;
|
||||
const vp8_prob upd = COEF_UPDATE_PROB_8X8;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) || (i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(ct, oldp, &newp, upd);
|
||||
u = s > 0 && newp != oldp ? 1 : 0;
|
||||
if (u)
|
||||
@ -1893,22 +1783,14 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
} while (++j < COEF_BANDS);
|
||||
} while (++i < BLOCK_TYPES_8X8);
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
if (update[1] == 0 || savings < 0)
|
||||
#else
|
||||
if (update[1] == 0)
|
||||
#endif
|
||||
{
|
||||
vp8_write_bit(w, 0);
|
||||
} else {
|
||||
vp8_write_bit(w, 1);
|
||||
i = 0;
|
||||
do {
|
||||
#if CONFIG_NEWUPDATE
|
||||
int j = !i;
|
||||
#else
|
||||
int j = 0; /* token/prob index */
|
||||
#endif
|
||||
do {
|
||||
int k = 0;
|
||||
do {
|
||||
@ -1920,12 +1802,10 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
const vp8_prob oldp = *Pold;
|
||||
const vp8_prob upd = COEF_UPDATE_PROB_8X8;
|
||||
int s, u;
|
||||
#if CONFIG_EXPANDED_COEF_CONTEXT
|
||||
if (k >= 3 && ((i == 0 && j == 1) ||
|
||||
(i > 0 && j == 0)))
|
||||
continue;
|
||||
#endif
|
||||
#if CONFIG_NEWUPDATE && defined(SEARCH_NEWP)
|
||||
#if defined(SEARCH_NEWP)
|
||||
s = prob_diff_update_savings_search(ct, oldp, &newp, upd);
|
||||
u = s > 0 && newp != oldp ? 1 : 0;
|
||||
#else
|
||||
@ -1939,11 +1819,7 @@ static void update_coef_probs(VP8_COMP *cpi) {
|
||||
#endif
|
||||
if (u) {
|
||||
/* send/use new probability */
|
||||
#if CONFIG_NEWUPDATE
|
||||
write_prob_diff_update(w, newp, oldp);
|
||||
#else
|
||||
vp8_write_literal(w, newp, 8);
|
||||
#endif
|
||||
*Pold = newp;
|
||||
}
|
||||
} while (++t < MAX_ENTROPY_TOKENS - 1);
|
||||
@ -2034,9 +1910,7 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
Sectionbits[active_section = 1] += sizeof(VP8_HEADER) * 8 * 256;
|
||||
#endif
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
compute_update_table();
|
||||
#endif
|
||||
|
||||
// vp8_kf_default_bmode_probs() is called in vp8_setup_key_frame() once for each
|
||||
// K frame before encode frame. pc->kf_bmode_prob doesn't get changed anywhere
|
||||
@ -2351,7 +2225,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
|
||||
vp8_clear_system_state(); // __asm emms;
|
||||
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_copy(cpi->common.fc.pre_coef_probs, cpi->common.fc.coef_probs);
|
||||
vp8_copy(cpi->common.fc.pre_coef_probs_8x8, cpi->common.fc.coef_probs_8x8);
|
||||
vp8_copy(cpi->common.fc.pre_ymode_prob, cpi->common.fc.ymode_prob);
|
||||
@ -2368,10 +2241,9 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
vp8_zero(cpi->mbsplit_count);
|
||||
vp8_zero(cpi->common.fc.mv_ref_ct)
|
||||
vp8_zero(cpi->common.fc.mv_ref_ct_a)
|
||||
#endif
|
||||
#if CONFIG_NEWUPDATE && COEFUPDATETYPE == 2
|
||||
#if COEFUPDATETYPE == 2
|
||||
update_coef_probs2(cpi);
|
||||
#elif CONFIG_NEWUPDATE && COEFUPDATETYPE == 3
|
||||
#elif COEFUPDATETYPE == 3
|
||||
update_coef_probs3(cpi);
|
||||
#else
|
||||
update_coef_probs(cpi);
|
||||
@ -2393,9 +2265,7 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
|
||||
#endif
|
||||
} else {
|
||||
pack_inter_mode_mvs(cpi);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY == 0
|
||||
vp8_update_mode_context(&cpi->common);
|
||||
#endif
|
||||
|
||||
#ifdef ENTROPY_STATS
|
||||
active_section = 1;
|
||||
|
@ -65,7 +65,6 @@ void vp8_encode_value(BOOL_CODER *br, int data, int bits) {
|
||||
|
||||
}
|
||||
|
||||
#if CONFIG_NEWUPDATE
|
||||
int recenter_nonneg(int v, int m) {
|
||||
if (v > (m << 1)) return v;
|
||||
else if (v >= m) return ((v - m) << 1);
|
||||
@ -153,4 +152,3 @@ int vp8_count_term_subexp(int word, int k, int num_syms) {
|
||||
}
|
||||
return count;
|
||||
}
|
||||
#endif
|
||||
|
@ -40,13 +40,11 @@ extern void vp8_encode_value(BOOL_CODER *br, int data, int bits);
|
||||
extern void vp8_stop_encode(BOOL_CODER *bc);
|
||||
extern const unsigned int vp8_prob_cost[256];
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
extern void vp8_encode_uniform(BOOL_CODER *bc, int v, int n);
|
||||
extern void vp8_encode_term_subexp(BOOL_CODER *bc, int v, int k, int n);
|
||||
extern int vp8_count_uniform(int v, int n);
|
||||
extern int vp8_count_term_subexp(int v, int k, int n);
|
||||
extern int recenter_nonneg(int v, int m);
|
||||
#endif
|
||||
|
||||
DECLARE_ALIGNED(16, extern const unsigned char, vp8_norm[256]);
|
||||
|
||||
|
@ -411,14 +411,12 @@ static void update_state(VP8_COMP *cpi, MACROBLOCK *x, PICK_MODE_CONTEXT *ctx) {
|
||||
THR_DC /*DC_PRED*/,
|
||||
THR_V_PRED /*V_PRED*/,
|
||||
THR_H_PRED /*H_PRED*/,
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
THR_D45_PRED /*D45_PRED*/,
|
||||
THR_D135_PRED /*D135_PRED*/,
|
||||
THR_D117_PRED /*D117_PRED*/,
|
||||
THR_D153_PRED /*D153_PRED*/,
|
||||
THR_D27_PRED /*D27_PRED*/,
|
||||
THR_D63_PRED /*D63_PRED*/,
|
||||
#endif
|
||||
THR_TM /*TM_PRED*/,
|
||||
THR_I8X8_PRED /*I8X8_PRED*/,
|
||||
THR_B_PRED /*B_PRED*/,
|
||||
@ -1052,10 +1050,8 @@ void init_encode_frame_mb_context(VP8_COMP *cpi) {
|
||||
vp8_zero(cpi->y_uv_mode_count)
|
||||
vp8_zero(cpi->sub_mv_ref_count)
|
||||
vp8_zero(cpi->mbsplit_count)
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_zero(cpi->common.fc.mv_ref_ct)
|
||||
vp8_zero(cpi->common.fc.mv_ref_ct_a)
|
||||
#endif
|
||||
// vp8_zero(cpi->uv_mode_count)
|
||||
|
||||
x->mvc = cm->fc.mvc;
|
||||
@ -1169,13 +1165,8 @@ static void encode_frame_internal(VP8_COMP *cpi) {
|
||||
|
||||
cpi->prediction_error = 0;
|
||||
cpi->intra_error = 0;
|
||||
#if CONFIG_NEWENTROPY
|
||||
cpi->skip_true_count[0] = cpi->skip_true_count[1] = cpi->skip_true_count[2] = 0;
|
||||
cpi->skip_false_count[0] = cpi->skip_false_count[1] = cpi->skip_false_count[2] = 0;
|
||||
#else
|
||||
cpi->skip_true_count = 0;
|
||||
cpi->skip_false_count = 0;
|
||||
#endif
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
if (cm->current_video_frame == 0) {
|
||||
@ -1689,29 +1680,19 @@ void vp8cx_encode_inter_macroblock
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int mb_skip_context =
|
||||
cpi->common.mb_no_coeff_skip ?
|
||||
(x->e_mbd.mode_info_context - 1)->mbmi.mb_skip_coeff +
|
||||
(x->e_mbd.mode_info_context - cpi->common.mode_info_stride)->mbmi.mb_skip_coeff :
|
||||
0;
|
||||
#endif
|
||||
if (cpi->common.mb_no_coeff_skip) {
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = 1;
|
||||
#if CONFIG_NEWENTROPY
|
||||
cpi->skip_true_count[mb_skip_context]++;
|
||||
#else
|
||||
cpi->skip_true_count++;
|
||||
#endif
|
||||
vp8_fix_contexts(xd);
|
||||
} else {
|
||||
vp8_stuff_mb(cpi, xd, t);
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = 0;
|
||||
#if CONFIG_NEWENTROPY
|
||||
cpi->skip_false_count[mb_skip_context]++;
|
||||
#else
|
||||
cpi->skip_false_count++;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,13 +32,8 @@ void vp8_init_mode_costs(VP8_COMP *c) {
|
||||
|
||||
vp8_cost_tokens((int *)c->mb.inter_bmode_costs, x->fc.bmode_prob, T);
|
||||
}
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_cost_tokens((int *)c->mb.inter_bmode_costs,
|
||||
vp8_sub_mv_ref_prob, vp8_sub_mv_ref_tree);
|
||||
#else
|
||||
vp8_cost_tokens(c->mb.inter_bmode_costs,
|
||||
vp8_sub_mv_ref_prob, vp8_sub_mv_ref_tree);
|
||||
#endif
|
||||
x->fc.sub_mv_ref_prob[0], vp8_sub_mv_ref_tree);
|
||||
|
||||
vp8_cost_tokens(c->mb.mbmode_cost[1], x->fc.ymode_prob, vp8_ymode_tree);
|
||||
vp8_cost_tokens(c->mb.mbmode_cost[0],
|
||||
|
@ -173,11 +173,7 @@ extern void (*vp8_short_fdct8x4)(short *input, short *output, int pitch);
|
||||
|
||||
extern void vp8cx_init_quantizer(VP8_COMP *cpi);
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
int vp8cx_base_skip_false_prob[QINDEX_RANGE][3];
|
||||
#else
|
||||
int vp8cx_base_skip_false_prob[QINDEX_RANGE];
|
||||
#endif
|
||||
|
||||
// Tables relating active max Q to active min Q
|
||||
static int kf_low_motion_minq[QINDEX_RANGE];
|
||||
@ -265,7 +261,6 @@ void init_base_skip_probs() {
|
||||
skip_prob = 1;
|
||||
else if (skip_prob > 255)
|
||||
skip_prob = 255;
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8cx_base_skip_false_prob[i][1] = skip_prob;
|
||||
|
||||
skip_prob = t * 0.75;
|
||||
@ -281,9 +276,6 @@ void init_base_skip_probs() {
|
||||
else if (skip_prob > 255)
|
||||
skip_prob = 255;
|
||||
vp8cx_base_skip_false_prob[i][0] = skip_prob;
|
||||
#else
|
||||
vp8cx_base_skip_false_prob[i] = skip_prob;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
void update_base_skip_probs(VP8_COMP *cpi) {
|
||||
@ -293,41 +285,25 @@ void update_base_skip_probs(VP8_COMP *cpi) {
|
||||
update_skip_probs(cpi);
|
||||
|
||||
if (cm->refresh_alt_ref_frame) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
cpi->last_skip_false_probs[2][k] = cm->mbskip_pred_probs[k];
|
||||
#else
|
||||
cpi->last_skip_false_probs[2] = cpi->prob_skip_false;
|
||||
#endif
|
||||
cpi->last_skip_probs_q[2] = cm->base_qindex;
|
||||
} else if (cpi->common.refresh_golden_frame) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
cpi->last_skip_false_probs[1][k] = cm->mbskip_pred_probs[k];
|
||||
#else
|
||||
cpi->last_skip_false_probs[1] = cpi->prob_skip_false;
|
||||
#endif
|
||||
cpi->last_skip_probs_q[1] = cm->base_qindex;
|
||||
} else {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
cpi->last_skip_false_probs[0][k] = cm->mbskip_pred_probs[k];
|
||||
#else
|
||||
cpi->last_skip_false_probs[0] = cpi->prob_skip_false;
|
||||
#endif
|
||||
cpi->last_skip_probs_q[0] = cm->base_qindex;
|
||||
|
||||
// update the baseline table for the current q
|
||||
#if CONFIG_NEWENTROPY
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k)
|
||||
cpi->base_skip_false_prob[cm->base_qindex][k] =
|
||||
cm->mbskip_pred_probs[k];
|
||||
#else
|
||||
cpi->base_skip_false_prob[cm->base_qindex] = cpi->prob_skip_false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -755,14 +731,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
|
||||
|
||||
sf->thresh_mult[THR_V_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_H_PRED ] = 1000;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
sf->thresh_mult[THR_D45_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D135_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D117_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D153_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D27_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D63_PRED ] = 1000;
|
||||
#endif
|
||||
sf->thresh_mult[THR_B_PRED ] = 2000;
|
||||
sf->thresh_mult[THR_I8X8_PRED] = 2000;
|
||||
sf->thresh_mult[THR_TM ] = 1000;
|
||||
@ -810,14 +784,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
|
||||
sf->thresh_mult[THR_NEARMV_FILT ] = 0;
|
||||
sf->thresh_mult[THR_V_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_H_PRED ] = 1000;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
sf->thresh_mult[THR_D45_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D135_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D117_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D153_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D27_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D63_PRED ] = 1000;
|
||||
#endif
|
||||
sf->thresh_mult[THR_B_PRED ] = 2500;
|
||||
sf->thresh_mult[THR_I8X8_PRED] = 2500;
|
||||
sf->thresh_mult[THR_TM ] = 1000;
|
||||
@ -868,14 +840,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
|
||||
sf->thresh_mult[THR_NEARMV ] = 0;
|
||||
sf->thresh_mult[THR_V_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_H_PRED ] = 1000;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
sf->thresh_mult[THR_D45_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D135_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D117_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D153_PRED] = 1000;
|
||||
sf->thresh_mult[THR_D27_PRED ] = 1000;
|
||||
sf->thresh_mult[THR_D63_PRED ] = 1000;
|
||||
#endif
|
||||
sf->thresh_mult[THR_B_PRED ] = 2500;
|
||||
sf->thresh_mult[THR_I8X8_PRED] = 2500;
|
||||
sf->thresh_mult[THR_TM ] = 1000;
|
||||
@ -952,14 +922,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
|
||||
sf->thresh_mult[THR_TM ] = 1500;
|
||||
sf->thresh_mult[THR_V_PRED ] = 1500;
|
||||
sf->thresh_mult[THR_H_PRED ] = 1500;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
sf->thresh_mult[THR_D45_PRED ] = 1500;
|
||||
sf->thresh_mult[THR_D135_PRED] = 1500;
|
||||
sf->thresh_mult[THR_D117_PRED] = 1500;
|
||||
sf->thresh_mult[THR_D153_PRED] = 1500;
|
||||
sf->thresh_mult[THR_D27_PRED ] = 1500;
|
||||
sf->thresh_mult[THR_D63_PRED ] = 1500;
|
||||
#endif
|
||||
sf->thresh_mult[THR_B_PRED ] = 5000;
|
||||
sf->thresh_mult[THR_I8X8_PRED] = 5000;
|
||||
|
||||
@ -1029,14 +997,12 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
|
||||
sf->thresh_mult[THR_TM ] = 2000;
|
||||
sf->thresh_mult[THR_V_PRED ] = 2000;
|
||||
sf->thresh_mult[THR_H_PRED ] = 2000;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
sf->thresh_mult[THR_D45_PRED ] = 2000;
|
||||
sf->thresh_mult[THR_D135_PRED] = 2000;
|
||||
sf->thresh_mult[THR_D117_PRED] = 2000;
|
||||
sf->thresh_mult[THR_D153_PRED] = 2000;
|
||||
sf->thresh_mult[THR_D27_PRED ] = 2000;
|
||||
sf->thresh_mult[THR_D63_PRED ] = 2000;
|
||||
#endif
|
||||
sf->thresh_mult[THR_B_PRED ] = 7500;
|
||||
sf->thresh_mult[THR_I8X8_PRED] = 7500;
|
||||
|
||||
@ -3243,51 +3209,31 @@ static void encode_frame_to_data_rate
|
||||
|
||||
// setup skip prob for costing in mode/mv decision
|
||||
if (cpi->common.mb_no_coeff_skip) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; k++)
|
||||
cm->mbskip_pred_probs[k] = cpi->base_skip_false_prob[Q][k];
|
||||
#else
|
||||
cpi->prob_skip_false = cpi->base_skip_false_prob[Q];
|
||||
#endif
|
||||
|
||||
if (cm->frame_type != KEY_FRAME) {
|
||||
if (cpi->common.refresh_alt_ref_frame) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; k++) {
|
||||
if (cpi->last_skip_false_probs[2][k] != 0)
|
||||
cm->mbskip_pred_probs[k] = cpi->last_skip_false_probs[2][k];
|
||||
}
|
||||
#else
|
||||
if (cpi->last_skip_false_probs[2] != 0)
|
||||
cpi->prob_skip_false = cpi->last_skip_false_probs[2];
|
||||
#endif
|
||||
} else if (cpi->common.refresh_golden_frame) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; k++) {
|
||||
if (cpi->last_skip_false_probs[1][k] != 0)
|
||||
cm->mbskip_pred_probs[k] = cpi->last_skip_false_probs[1][k];
|
||||
}
|
||||
#else
|
||||
if (cpi->last_skip_false_probs[1] != 0)
|
||||
cpi->prob_skip_false = cpi->last_skip_false_probs[1];
|
||||
#endif
|
||||
} else {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; k++) {
|
||||
if (cpi->last_skip_false_probs[0][k] != 0)
|
||||
cm->mbskip_pred_probs[k] = cpi->last_skip_false_probs[0][k];
|
||||
}
|
||||
#else
|
||||
if (cpi->last_skip_false_probs[0] != 0)
|
||||
cpi->prob_skip_false = cpi->last_skip_false_probs[0];
|
||||
#endif
|
||||
}
|
||||
|
||||
// as this is for cost estimate, let's make sure it does not
|
||||
// get extreme either way
|
||||
#if CONFIG_NEWENTROPY
|
||||
{
|
||||
int k;
|
||||
for (k = 0; k < MBSKIP_CONTEXTS; ++k) {
|
||||
@ -3301,18 +3247,6 @@ static void encode_frame_to_data_rate
|
||||
cm->mbskip_pred_probs[k] = 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (cpi->prob_skip_false < 5)
|
||||
cpi->prob_skip_false = 5;
|
||||
|
||||
if (cpi->prob_skip_false > 250)
|
||||
cpi->prob_skip_false = 250;
|
||||
|
||||
if (cpi->is_src_frame_alt_ref)
|
||||
cpi->prob_skip_false = 1;
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -3648,7 +3582,6 @@ static void encode_frame_to_data_rate
|
||||
#endif
|
||||
|
||||
update_reference_frames(cm);
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
vp8_copy(cpi->common.fc.coef_counts, cpi->coef_counts);
|
||||
vp8_copy(cpi->common.fc.coef_counts_8x8, cpi->coef_counts_8x8);
|
||||
vp8_adapt_coef_probs(&cpi->common);
|
||||
@ -3668,7 +3601,6 @@ static void encode_frame_to_data_rate
|
||||
vp8_adapt_mv_probs(&cpi->common);
|
||||
vp8_update_mode_context(&cpi->common);
|
||||
}
|
||||
#endif /* CONFIG_ADAPTIVE_ENTROPY */
|
||||
|
||||
/* Move storing frame_type out of the above loop since it is also
|
||||
* needed in motion search besides loopfilter */
|
||||
|
@ -44,17 +44,9 @@
|
||||
#define ARF_DECAY_THRESH 12
|
||||
|
||||
#if CONFIG_PRED_FILTER
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
#define MAX_MODES 54
|
||||
#else
|
||||
#define MAX_MODES 48
|
||||
#endif
|
||||
#else // CONFIG_PRED_FILTER
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
#define MAX_MODES 42
|
||||
#else
|
||||
#define MAX_MODES 36
|
||||
#endif
|
||||
#endif // CONFIG_PRED_FILTER
|
||||
|
||||
#define MIN_THRESHMULT 32
|
||||
@ -195,14 +187,12 @@ typedef enum {
|
||||
|
||||
THR_V_PRED,
|
||||
THR_H_PRED,
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
THR_D45_PRED,
|
||||
THR_D135_PRED,
|
||||
THR_D117_PRED,
|
||||
THR_D153_PRED,
|
||||
THR_D27_PRED,
|
||||
THR_D63_PRED,
|
||||
#endif
|
||||
THR_TM,
|
||||
|
||||
THR_NEWMV,
|
||||
@ -259,14 +249,12 @@ typedef enum {
|
||||
|
||||
THR_V_PRED,
|
||||
THR_H_PRED,
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
THR_D45_PRED,
|
||||
THR_D135_PRED,
|
||||
THR_D117_PRED,
|
||||
THR_D153_PRED,
|
||||
THR_D27_PRED,
|
||||
THR_D63_PRED,
|
||||
#endif
|
||||
THR_TM,
|
||||
|
||||
THR_NEWMV,
|
||||
@ -585,12 +573,7 @@ typedef struct VP8_COMP {
|
||||
int vert_scale;
|
||||
int pass;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8_prob last_skip_false_probs[3][MBSKIP_CONTEXTS];
|
||||
#else
|
||||
vp8_prob prob_skip_false;
|
||||
vp8_prob last_skip_false_probs[3];
|
||||
#endif
|
||||
int last_skip_probs_q[3];
|
||||
|
||||
int recent_ref_frame_usage[MAX_REF_FRAMES];
|
||||
@ -606,13 +589,8 @@ typedef struct VP8_COMP {
|
||||
int inter_zz_count;
|
||||
int gf_bad_count;
|
||||
int gf_update_recommended;
|
||||
#if CONFIG_NEWENTROPY
|
||||
int skip_true_count[3];
|
||||
int skip_false_count[3];
|
||||
#else
|
||||
int skip_true_count;
|
||||
int skip_false_count;
|
||||
#endif
|
||||
int t4x4_count;
|
||||
int t8x8_count;
|
||||
|
||||
@ -636,11 +614,7 @@ typedef struct VP8_COMP {
|
||||
unsigned int time_pick_lpf;
|
||||
unsigned int time_encode_mb_row;
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
int base_skip_false_prob[QINDEX_RANGE][3];
|
||||
#else
|
||||
int base_skip_false_prob[QINDEX_RANGE];
|
||||
#endif
|
||||
|
||||
struct twopass_rc {
|
||||
unsigned int section_intra_rating;
|
||||
|
@ -112,14 +112,12 @@ const MODE_DEFINITION vp8_mode_order[MAX_MODES] = {
|
||||
|
||||
{V_PRED, INTRA_FRAME, 0, 0},
|
||||
{H_PRED, INTRA_FRAME, 0, 0},
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
{D45_PRED, INTRA_FRAME, 0, 0},
|
||||
{D135_PRED, INTRA_FRAME, 0, 0},
|
||||
{D117_PRED, INTRA_FRAME, 0, 0},
|
||||
{D153_PRED, INTRA_FRAME, 0, 0},
|
||||
{D27_PRED, INTRA_FRAME, 0, 0},
|
||||
{D63_PRED, INTRA_FRAME, 0, 0},
|
||||
#endif
|
||||
|
||||
{TM_PRED, INTRA_FRAME, 0, 0},
|
||||
|
||||
@ -177,14 +175,12 @@ const MODE_DEFINITION vp8_mode_order[MAX_MODES] = {
|
||||
|
||||
{V_PRED, INTRA_FRAME, 0},
|
||||
{H_PRED, INTRA_FRAME, 0},
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
{D45_PRED, INTRA_FRAME, 0},
|
||||
{D135_PRED, INTRA_FRAME, 0},
|
||||
{D117_PRED, INTRA_FRAME, 0},
|
||||
{D153_PRED, INTRA_FRAME, 0},
|
||||
{D27_PRED, INTRA_FRAME, 0},
|
||||
{D63_PRED, INTRA_FRAME, 0},
|
||||
#endif
|
||||
|
||||
{TM_PRED, INTRA_FRAME, 0},
|
||||
|
||||
@ -2406,14 +2402,12 @@ void rd_update_mvcount(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
- best_ref_mv->as_mv.row)]++;
|
||||
cpi->MVcount_hp[1][mv_max_hp + (x->partition_info->bmi[i].mv.as_mv.col
|
||||
- best_ref_mv->as_mv.col)]++;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
if (x->e_mbd.mode_info_context->mbmi.second_ref_frame) {
|
||||
cpi->MVcount_hp[0][mv_max_hp + (x->partition_info->bmi[i].second_mv.as_mv.row
|
||||
- second_best_ref_mv->as_mv.row)]++;
|
||||
cpi->MVcount_hp[1][mv_max_hp + (x->partition_info->bmi[i].second_mv.as_mv.col
|
||||
- second_best_ref_mv->as_mv.col)]++;
|
||||
}
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
@ -2421,14 +2415,12 @@ void rd_update_mvcount(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
- best_ref_mv->as_mv.row) >> 1)]++;
|
||||
cpi->MVcount[1][mv_max + ((x->partition_info->bmi[i].mv.as_mv.col
|
||||
- best_ref_mv->as_mv.col) >> 1)]++;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
if (x->e_mbd.mode_info_context->mbmi.second_ref_frame) {
|
||||
cpi->MVcount[0][mv_max + ((x->partition_info->bmi[i].second_mv.as_mv.row
|
||||
- second_best_ref_mv->as_mv.row) >> 1)]++;
|
||||
cpi->MVcount[1][mv_max + ((x->partition_info->bmi[i].second_mv.as_mv.col
|
||||
- second_best_ref_mv->as_mv.col) >> 1)]++;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2439,14 +2431,12 @@ void rd_update_mvcount(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
- best_ref_mv->as_mv.row)]++;
|
||||
cpi->MVcount_hp[1][mv_max_hp + (x->e_mbd.mode_info_context->mbmi.mv.as_mv.col
|
||||
- best_ref_mv->as_mv.col)]++;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
if (x->e_mbd.mode_info_context->mbmi.second_ref_frame) {
|
||||
cpi->MVcount_hp[0][mv_max_hp + (x->e_mbd.mode_info_context->mbmi.second_mv.as_mv.row
|
||||
- second_best_ref_mv->as_mv.row)]++;
|
||||
cpi->MVcount_hp[1][mv_max_hp + (x->e_mbd.mode_info_context->mbmi.second_mv.as_mv.col
|
||||
- second_best_ref_mv->as_mv.col)]++;
|
||||
}
|
||||
#endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
@ -2454,14 +2444,12 @@ void rd_update_mvcount(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
- best_ref_mv->as_mv.row) >> 1)]++;
|
||||
cpi->MVcount[1][mv_max + ((x->e_mbd.mode_info_context->mbmi.mv.as_mv.col
|
||||
- best_ref_mv->as_mv.col) >> 1)]++;
|
||||
#if CONFIG_ADAPTIVE_ENTROPY
|
||||
if (x->e_mbd.mode_info_context->mbmi.second_ref_frame) {
|
||||
cpi->MVcount[0][mv_max + ((x->e_mbd.mode_info_context->mbmi.second_mv.as_mv.row
|
||||
- second_best_ref_mv->as_mv.row) >> 1)]++;
|
||||
cpi->MVcount[1][mv_max + ((x->e_mbd.mode_info_context->mbmi.second_mv.as_mv.col
|
||||
- second_best_ref_mv->as_mv.col) >> 1)]++;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3004,14 +2992,12 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
|
||||
vp8_cost_bit(get_pred_prob(cm, xd, PRED_COMP), 0);
|
||||
}
|
||||
break;
|
||||
#if CONFIG_NEWINTRAMODES
|
||||
case D45_PRED:
|
||||
case D135_PRED:
|
||||
case D117_PRED:
|
||||
case D153_PRED:
|
||||
case D27_PRED:
|
||||
case D63_PRED:
|
||||
#endif
|
||||
case DC_PRED:
|
||||
case V_PRED:
|
||||
case H_PRED:
|
||||
@ -3479,7 +3465,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
|
||||
int prob_skip_cost;
|
||||
|
||||
// Cost the skip mb case
|
||||
#if CONFIG_NEWENTROPY
|
||||
vp8_prob skip_prob =
|
||||
get_pred_prob(cm, &x->e_mbd, PRED_MBSKIP);
|
||||
|
||||
@ -3488,24 +3473,12 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
|
||||
rate2 += prob_skip_cost;
|
||||
other_cost += prob_skip_cost;
|
||||
}
|
||||
#else
|
||||
if (cpi->prob_skip_false) {
|
||||
prob_skip_cost =
|
||||
vp8_cost_bit(cpi->prob_skip_false, 1);
|
||||
rate2 += prob_skip_cost;
|
||||
other_cost += prob_skip_cost;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
// Add in the cost of the no skip flag.
|
||||
else if (mb_skip_allowed) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
int prob_skip_cost = vp8_cost_bit(
|
||||
get_pred_prob(cm, &x->e_mbd, PRED_MBSKIP), 0);
|
||||
#else
|
||||
int prob_skip_cost = vp8_cost_bit(cpi->prob_skip_false, 0);
|
||||
#endif
|
||||
rate2 += prob_skip_cost;
|
||||
other_cost += prob_skip_cost;
|
||||
}
|
||||
|
@ -630,9 +630,7 @@ void vp8_tokenize_mb(VP8_COMP *cpi, MACROBLOCKD *x, TOKENEXTRA **t) {
|
||||
int has_y2_block;
|
||||
int b;
|
||||
int tx_type = x->mode_info_context->mbmi.txfm_size;
|
||||
#if CONFIG_NEWENTROPY
|
||||
int mb_skip_context = get_pred_context(&cpi->common, x, PRED_MBSKIP);
|
||||
#endif
|
||||
|
||||
// If the MB is going to be skipped because of a segment level flag
|
||||
// exclude this from the skip count stats used to calculate the
|
||||
@ -661,11 +659,7 @@ void vp8_tokenize_mb(VP8_COMP *cpi, MACROBLOCKD *x, TOKENEXTRA **t) {
|
||||
mb_is_skippable(x, has_y2_block));
|
||||
|
||||
if (x->mode_info_context->mbmi.mb_skip_coeff) {
|
||||
#if CONFIG_NEWENTROPY
|
||||
cpi->skip_true_count[mb_skip_context] += skip_inc;
|
||||
#else
|
||||
cpi->skip_true_count += skip_inc;
|
||||
#endif
|
||||
|
||||
if (!cpi->common.mb_no_coeff_skip) {
|
||||
if (tx_type == TX_8X8)
|
||||
@ -679,11 +673,7 @@ void vp8_tokenize_mb(VP8_COMP *cpi, MACROBLOCKD *x, TOKENEXTRA **t) {
|
||||
return;
|
||||
}
|
||||
|
||||
#if CONFIG_NEWENTROPY
|
||||
cpi->skip_false_count[mb_skip_context] += skip_inc;
|
||||
#else
|
||||
cpi->skip_false_count += skip_inc;
|
||||
#endif
|
||||
|
||||
plane_type = 3;
|
||||
if (has_y2_block) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user