]> granicus.if.org Git - libvpx/commitdiff
Merge "New default tables" into experimental
authorRonald S. Bultje <rbultje@google.com>
Sun, 9 Jun 2013 00:39:50 +0000 (17:39 -0700)
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>
Sun, 9 Jun 2013 00:39:50 +0000 (17:39 -0700)
1  2 
vp9/common/vp9_entropymode.c

index 7ae527997429dde71c50fafddb6f3e8a33353b43,a409620035017a2dbffdd6b3f3108a65e03de6e9..ea71282c4041dff3f8e646a8303deafbbb5751e1
@@@ -142,75 -142,60 +142,75 @@@ static const vp9_prob default_comp_ref_
  };
  
  static const vp9_prob default_single_ref_p[REF_CONTEXTS][2] = {
-   { 30, 17 },
-   { 80, 66 },
-   { 142, 129 },
-   { 192, 178 },
-   { 235, 248 },
+   {  33,  16 },
+   {  77,  74 },
+   { 142, 142 },
+   { 172, 170 },
+   { 238, 247 }
  };
  
 -void tx_counts_to_branch_counts(unsigned int *tx_count_32x32p,
 -                                unsigned int *tx_count_16x16p,
 -                                unsigned int *tx_count_8x8p,
 -                                unsigned int (*ct)[2]) {
 -#if TX_SIZE_PROBS == 6
 -  ct[0][0] = tx_count_8x8p[TX_4X4];
 -  ct[0][1] = tx_count_8x8p[TX_8X8];
 -  ct[1][0] = tx_count_16x16p[TX_4X4];
 -  ct[1][1] = tx_count_16x16p[TX_8X8] + tx_count_16x16p[TX_16X16];
 -  ct[2][0] = tx_count_16x16p[TX_8X8];
 -  ct[2][1] = tx_count_16x16p[TX_16X16];
 -  ct[3][0] = tx_count_32x32p[TX_4X4];
 -  ct[3][1] = tx_count_32x32p[TX_8X8] + tx_count_32x32p[TX_16X16] +
 -             tx_count_32x32p[TX_32X32];
 -  ct[4][0] = tx_count_32x32p[TX_8X8];
 -  ct[4][1] = tx_count_32x32p[TX_16X16] + tx_count_32x32p[TX_32X32];
 -  ct[5][0] = tx_count_32x32p[TX_16X16];
 -  ct[5][1] = tx_count_32x32p[TX_32X32];
 +#if TX_SIZE_CONTEXTS == 2
 +const vp9_prob vp9_default_tx_probs_32x32p[TX_SIZE_CONTEXTS]
 +                                          [TX_SIZE_MAX_SB - 1] = {
 +  { 16, 32, 64, },
 +  { 16, 32, 64, },
 +};
 +const vp9_prob vp9_default_tx_probs_16x16p[TX_SIZE_CONTEXTS]
 +                                          [TX_SIZE_MAX_SB - 2] = {
 +  { 32, 64, },
 +  { 32, 64, },
 +};
 +const vp9_prob vp9_default_tx_probs_8x8p[TX_SIZE_CONTEXTS]
 +                                        [TX_SIZE_MAX_SB - 3] = {
 +  { 64, },
 +  { 64, },
 +};
  #else
 -  ct[0][0] = tx_count_32x32p[TX_4X4] +
 -             tx_count_16x16p[TX_4X4] +
 -             tx_count_8x8p[TX_4X4];
 -  ct[0][1] = tx_count_32x32p[TX_8X8] +
 -             tx_count_32x32p[TX_16X16] +
 -             tx_count_32x32p[TX_32X32] +
 -             tx_count_16x16p[TX_8X8] +
 -             tx_count_16x16p[TX_16X16] +
 -             tx_count_8x8p[TX_8X8];
 -  ct[1][0] = tx_count_32x32p[TX_8X8] +
 -             tx_count_16x16p[TX_8X8];
 -  ct[1][1] = tx_count_32x32p[TX_16X16] +
 -             tx_count_32x32p[TX_32X32] +
 -             tx_count_16x16p[TX_16X16];
 -  ct[2][0] = tx_count_32x32p[TX_16X16];
 -  ct[2][1] = tx_count_32x32p[TX_32X32];
 +const vp9_prob vp9_default_tx_probs_32x32p[TX_SIZE_CONTEXTS]
 +                                          [TX_SIZE_MAX_SB - 1] = {
 +  { 16, 32, 64, },
 +};
 +const vp9_prob vp9_default_tx_probs_16x16p[TX_SIZE_CONTEXTS]
 +                                          [TX_SIZE_MAX_SB - 2] = {
 +  { 32, 64, },
 +};
 +const vp9_prob vp9_default_tx_probs_8x8p[TX_SIZE_CONTEXTS]
 +                                        [TX_SIZE_MAX_SB - 3] = {
 +  { 64, },
 +};
  #endif
 +
 +void tx_counts_to_branch_counts_32x32(unsigned int *tx_count_32x32p,
 +                                      unsigned int (*ct_32x32p)[2]) {
 +  ct_32x32p[0][0] = tx_count_32x32p[TX_4X4];
 +  ct_32x32p[0][1] = tx_count_32x32p[TX_8X8] +
 +                    tx_count_32x32p[TX_16X16] +
 +                    tx_count_32x32p[TX_32X32];
 +  ct_32x32p[1][0] = tx_count_32x32p[TX_8X8];
 +  ct_32x32p[1][1] = tx_count_32x32p[TX_16X16] +
 +                    tx_count_32x32p[TX_32X32];
 +  ct_32x32p[2][0] = tx_count_32x32p[TX_16X16];
 +  ct_32x32p[2][1] = tx_count_32x32p[TX_32X32];
  }
  
 -#if TX_SIZE_PROBS == 6
 -const vp9_prob vp9_default_tx_probs[TX_SIZE_PROBS] = {
 -  96, 96, 96, 96, 96, 96
 -};
 -#else
 -const vp9_prob vp9_default_tx_probs[TX_SIZE_PROBS] = {
 -  96, 96, 96
 +void tx_counts_to_branch_counts_16x16(unsigned int *tx_count_16x16p,
 +                                      unsigned int (*ct_16x16p)[2]) {
 +  ct_16x16p[0][0] = tx_count_16x16p[TX_4X4];
 +  ct_16x16p[0][1] = tx_count_16x16p[TX_8X8] +
 +                    tx_count_16x16p[TX_16X16];
 +  ct_16x16p[1][0] = tx_count_16x16p[TX_8X8];
 +  ct_16x16p[1][1] = tx_count_16x16p[TX_16X16];
 +}
 +
 +void tx_counts_to_branch_counts_8x8(unsigned int *tx_count_8x8p,
 +                                    unsigned int (*ct_8x8p)[2]) {
 +  ct_8x8p[0][0] =   tx_count_8x8p[TX_4X4];
 +  ct_8x8p[0][1] =   tx_count_8x8p[TX_8X8];
 +}
 +
 +const vp9_prob vp9_default_mbskip_probs[MBSKIP_CONTEXTS] = {
 +  192, 128, 64
  };
 -#endif
  
  void vp9_init_mbmode_probs(VP9_COMMON *x) {
    vpx_memcpy(x->fc.uv_mode_prob, default_if_uv_probs,