Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © 2015 Intel Corporation
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the
  6.  * "Software"), to deal in the Software without restriction, including
  7.  * without limitation the rights to use, copy, modify, merge, publish,
  8.  * distribute, sub license, and/or sell copies of the Software, and to
  9.  * permit persons to whom the Software is furnished to do so, subject to
  10.  * the following conditions:
  11.  *
  12.  * The above copyright notice and this permission notice (including the
  13.  * next paragraph) shall be included in all copies or substantial portions
  14.  * of the Software.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  17.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  18.  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  19.  * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
  20.  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  21.  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  22.  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  23.  *
  24.  */
  25. /*
  26.  * This file defines some vp9 probability tables, and
  27.  * they are ported from libvpx (https://github.com/webmproject/libvpx/).
  28.  * The original copyright and licence statement as below.
  29.  */
  30.  
  31. /*
  32.  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
  33.  *
  34.  *  Use of this source code is governed by a BSD-style license
  35.  *  that can be found in the LICENSE file in the root of the source
  36.  *  tree. An additional intellectual property rights grant can be found
  37.  *  in the file PATENTS.  All contributing project authors may
  38.  *  be found in the AUTHORS file in the root of the source tree.
  39.  */
  40.  
  41. #ifndef VP9_PROBS_H
  42. #define VP9_PROBS_H
  43.  
  44. #define TX_SIZE_CONTEXTS 2
  45. #define TX_SIZES 4
  46. #define PLANE_TYPES 2
  47. #define SKIP_CONTEXTS 3
  48. #define INTER_MODE_CONTEXTS 7
  49. #define INTER_MODES 4
  50. #define SWITCHABLE_FILTERS 3
  51. #define SWITCHABLE_FILTER_CONTEXTS (SWITCHABLE_FILTERS + 1)
  52. #define MAX_SEGMENTS 8
  53. #define PREDICTION_PROBS 3
  54. #define SEG_TREE_PROBS (MAX_SEGMENTS-1)
  55. #define MV_JOINTS 4
  56. #define INTRA_INTER_CONTEXTS 4
  57. #define COMP_INTER_CONTEXTS 5
  58. #define REF_CONTEXTS 5
  59. #define BLOCK_SIZE_GROUPS 4
  60. #define INTRA_MODES 10
  61. #define PARTITION_PLOFFSET   4  // number of probability models per block size
  62. #define PARTITION_CONTEXTS (4 * PARTITION_PLOFFSET)
  63. #define PARTITION_TYPES 4
  64. #define REF_TYPES 2  // intra=0, inter=1
  65. #define COEF_BANDS 6
  66. #define COEFF_CONTEXTS 6
  67. #define UNCONSTRAINED_NODES         3
  68. #define MV_CLASSES 11
  69. #define CLASS0_BITS    1  /* bits at integer precision for class 0 */
  70. #define CLASS0_SIZE    (1 << CLASS0_BITS)
  71. #define MV_OFFSET_BITS (MV_CLASSES + CLASS0_BITS - 2)
  72. #define MV_MAX_BITS    (MV_CLASSES + CLASS0_BITS + 2)
  73. #define MV_FP_SIZE 4
  74. #define FRAME_CONTEXTS_LOG2 2
  75. #define FRAME_CONTEXTS (1 << FRAME_CONTEXTS_LOG2)
  76.  
  77. #define COEFF_PROB_SIZE 132
  78. #define COEFF_PROB_NUM 3
  79.  
  80. #define TX_PROBS_IDX 0
  81. #define COEFF_PROBS_IDX 64
  82. #define INTRA_PROBS_IDX 1603
  83. #define SEG_PROBS_IDX 2010
  84.  
  85. typedef uint8_t vp9_prob;
  86.  
  87. #define vpx_memset  memset
  88. #define vpx_memcpy  memcpy
  89.  
  90. #define vp9_zero(dest) memset(&dest, 0, sizeof(dest))
  91.  
  92. #define vp9_copy(dest, src) {            \
  93.     assert(sizeof(dest) == sizeof(src)); \
  94.     vpx_memcpy(dest, src, sizeof(src));  \
  95. }
  96.  
  97. struct tx_probs {
  98.   vp9_prob p8x8[TX_SIZE_CONTEXTS][TX_SIZES - 3];
  99.   vp9_prob p16x16[TX_SIZE_CONTEXTS][TX_SIZES - 2];
  100.   vp9_prob p32x32[TX_SIZE_CONTEXTS][TX_SIZES - 1];
  101. };
  102.  
  103. struct tx_counts {
  104.   unsigned int p32x32[TX_SIZE_CONTEXTS][TX_SIZES];
  105.   unsigned int p16x16[TX_SIZE_CONTEXTS][TX_SIZES - 1];
  106.   unsigned int p8x8[TX_SIZE_CONTEXTS][TX_SIZES - 2];
  107.   unsigned int tx_totals[TX_SIZES];
  108. };
  109.  
  110. typedef struct {
  111.   vp9_prob sign;
  112.   vp9_prob classes[MV_CLASSES - 1];
  113.   vp9_prob class0[CLASS0_SIZE - 1];
  114.   vp9_prob bits[MV_OFFSET_BITS];
  115. } nmv_component;
  116.  
  117. //Modified the nmv_context from libvpx to suit our HW needs
  118. typedef struct {
  119.   vp9_prob joints[MV_JOINTS-1];
  120.   nmv_component comps[2];
  121.   vp9_prob class0_fp0[CLASS0_SIZE][MV_FP_SIZE - 1];
  122.   vp9_prob fp0[MV_FP_SIZE - 1];
  123.   vp9_prob class0_fp1[CLASS0_SIZE][MV_FP_SIZE - 1];
  124.   vp9_prob fp1[MV_FP_SIZE - 1];
  125.   vp9_prob class0_hp[2];
  126.   vp9_prob hp[2];
  127. } nmv_context;
  128.  
  129. //Modified the FRAME_CONTEXT from libvpx to suit our HW needs
  130. typedef struct frame_contexts {
  131.   struct tx_probs tx_probs;
  132.   vp9_prob dummy1[52];
  133.   vp9_prob coeff_probs4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM];
  134.   vp9_prob coeff_probs8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM];
  135.   vp9_prob coeff_probs16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM];
  136.   vp9_prob coeff_probs32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM];
  137.   vp9_prob dummy2[16];
  138.   vp9_prob skip_probs[SKIP_CONTEXTS];
  139.   vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1];
  140.   vp9_prob switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
  141.                                  [SWITCHABLE_FILTERS - 1];
  142.   vp9_prob intra_inter_prob[INTRA_INTER_CONTEXTS];
  143.   vp9_prob comp_inter_prob[COMP_INTER_CONTEXTS];
  144.   vp9_prob single_ref_prob[REF_CONTEXTS][2];
  145.   vp9_prob comp_ref_prob[REF_CONTEXTS];
  146.   vp9_prob y_mode_prob[BLOCK_SIZE_GROUPS][INTRA_MODES - 1];
  147.   vp9_prob partition_prob[PARTITION_CONTEXTS][PARTITION_TYPES - 1];
  148.   nmv_context nmvc;
  149.   vp9_prob dummy3[47];
  150.   vp9_prob uv_mode_prob[INTRA_MODES][INTRA_MODES - 1];
  151.   vp9_prob seg_tree_probs[SEG_TREE_PROBS];
  152.   vp9_prob seg_pred_probs[PREDICTION_PROBS];
  153.   vp9_prob dummy4[28];
  154.   int initialized;
  155. } FRAME_CONTEXT;
  156.  
  157.  
  158. static const struct tx_probs default_tx_probs = {
  159.     { { 100 },
  160.     { 66  } },
  161.  
  162.     { { 20, 152 },
  163.     { 15, 101 } },
  164.  
  165.     { { 3, 136, 37 },
  166.     { 5, 52,  13 } },
  167. };
  168.  
  169. static const vp9_prob default_skip_probs[SKIP_CONTEXTS] = {
  170.   192, 128, 64
  171. };
  172.  
  173. static const vp9_prob default_inter_mode_probs[INTER_MODE_CONTEXTS]
  174.                                               [INTER_MODES - 1] = {
  175.   {2,       173,   34},  // 0 = both zero mv
  176.   {7,       145,   85},  // 1 = one zero mv + one a predicted mv
  177.   {7,       166,   63},  // 2 = two predicted mvs
  178.   {7,       94,    66},  // 3 = one predicted/zero and one new mv
  179.   {8,       64,    46},  // 4 = two new mvs
  180.   {17,      81,    31},  // 5 = one intra neighbour + x
  181.   {25,      29,    30},  // 6 = two intra neighbours
  182. };
  183.  
  184. static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = {
  185.     { 235, 162, },
  186.     { 36, 255, },
  187.     { 34, 3, },
  188.     { 149, 144, },
  189. };
  190.  
  191. static const vp9_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
  192.   9, 102, 187, 225
  193. };
  194.  
  195. static const vp9_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
  196.   239, 183, 119,  96,  41
  197. };
  198.  
  199. static const vp9_prob default_single_ref_p[REF_CONTEXTS][2] = {
  200.   {  33,  16 },
  201.   {  77,  74 },
  202.   { 142, 142 },
  203.   { 172, 170 },
  204.   { 238, 247 }
  205. };
  206.  
  207. static const vp9_prob default_comp_ref_p[REF_CONTEXTS] = {
  208.   50, 126, 123, 221, 226
  209. };
  210.  
  211. const vp9_prob vp9_kf_uv_mode_prob[INTRA_MODES][INTRA_MODES - 1] = {
  212.   { 144,  11,  54, 157, 195, 130,  46,  58, 108 },  // y = dc
  213.   { 118,  15, 123, 148, 131, 101,  44,  93, 131 },  // y = v
  214.   { 113,  12,  23, 188, 226, 142,  26,  32, 125 },  // y = h
  215.   { 120,  11,  50, 123, 163, 135,  64,  77, 103 },  // y = d45
  216.   { 113,   9,  36, 155, 111, 157,  32,  44, 161 },  // y = d135
  217.   { 116,   9,  55, 176,  76,  96,  37,  61, 149 },  // y = d117
  218.   { 115,   9,  28, 141, 161, 167,  21,  25, 193 },  // y = d153
  219.   { 120,  12,  32, 145, 195, 142,  32,  38,  86 },  // y = d207
  220.   { 116,  12,  64, 120, 140, 125,  49, 115, 121 },  // y = d63
  221.   { 102,  19,  66, 162, 182, 122,  35,  59, 128 }   // y = tm
  222. };
  223.  
  224. static const vp9_prob default_if_y_probs[BLOCK_SIZE_GROUPS][INTRA_MODES - 1] = {
  225.   {  65,  32,  18, 144, 162, 194,  41,  51,  98 },  // block_size < 8x8
  226.   { 132,  68,  18, 165, 217, 196,  45,  40,  78 },  // block_size < 16x16
  227.   { 173,  80,  19, 176, 240, 193,  64,  35,  46 },  // block_size < 32x32
  228.   { 221, 135,  38, 194, 248, 121,  96,  85,  29 }   // block_size >= 32x32
  229. };
  230.  
  231. static const vp9_prob default_if_uv_probs[INTRA_MODES][INTRA_MODES - 1] = {
  232.   { 120,   7,  76, 176, 208, 126,  28,  54, 103 },  // y = dc
  233.   {  48,  12, 154, 155, 139,  90,  34, 117, 119 },  // y = v
  234.   {  67,   6,  25, 204, 243, 158,  13,  21,  96 },  // y = h
  235.   {  97,   5,  44, 131, 176, 139,  48,  68,  97 },  // y = d45
  236.   {  83,   5,  42, 156, 111, 152,  26,  49, 152 },  // y = d135
  237.   {  80,   5,  58, 178,  74,  83,  33,  62, 145 },  // y = d117
  238.   {  86,   5,  32, 154, 192, 168,  14,  22, 163 },  // y = d153
  239.   {  85,   5,  32, 156, 216, 148,  19,  29,  73 },  // y = d207
  240.   {  77,   7,  64, 116, 132, 122,  37, 126, 120 },  // y = d63
  241.   { 101,  21, 107, 181, 192, 103,  19,  67, 125 }   // y = tm
  242. };
  243.  
  244. static const vp9_prob default_seg_tree_probs[SEG_TREE_PROBS] = {
  245.     255, 255, 255, 255, 255, 255, 255
  246. };
  247.  
  248. static const vp9_prob default_seg_pred_probs[PREDICTION_PROBS] = {
  249.     255, 255, 255
  250. };
  251.  
  252. const vp9_prob vp9_kf_partition_probs[PARTITION_CONTEXTS]
  253.                                      [PARTITION_TYPES - 1] = {
  254.   // 8x8 -> 4x4
  255.   { 158,  97,  94 },  // a/l both not split
  256.   {  93,  24,  99 },  // a split, l not split
  257.   {  85, 119,  44 },  // l split, a not split
  258.   {  62,  59,  67 },  // a/l both split
  259.   // 16x16 -> 8x8
  260.   { 149,  53,  53 },  // a/l both not split
  261.   {  94,  20,  48 },  // a split, l not split
  262.   {  83,  53,  24 },  // l split, a not split
  263.   {  52,  18,  18 },  // a/l both split
  264.   // 32x32 -> 16x16
  265.   { 150,  40,  39 },  // a/l both not split
  266.   {  78,  12,  26 },  // a split, l not split
  267.   {  67,  33,  11 },  // l split, a not split
  268.   {  24,   7,   5 },  // a/l both split
  269.   // 64x64 -> 32x32
  270.   { 174,  35,  49 },  // a/l both not split
  271.   {  68,  11,  27 },  // a split, l not split
  272.   {  57,  15,   9 },  // l split, a not split
  273.   {  12,   3,   3 },  // a/l both split
  274. };
  275.  
  276. static const vp9_prob default_partition_probs[PARTITION_CONTEXTS]
  277.                                              [PARTITION_TYPES - 1] = {
  278.   // 8x8 -> 4x4
  279.   { 199, 122, 141 },  // a/l both not split
  280.   { 147,  63, 159 },  // a split, l not split
  281.   { 148, 133, 118 },  // l split, a not split
  282.   { 121, 104, 114 },  // a/l both split
  283.   // 16x16 -> 8x8
  284.   { 174,  73,  87 },  // a/l both not split
  285.   {  92,  41,  83 },  // a split, l not split
  286.   {  82,  99,  50 },  // l split, a not split
  287.   {  53,  39,  39 },  // a/l both split
  288.   // 32x32 -> 16x16
  289.   { 177,  58,  59 },  // a/l both not split
  290.   {  68,  26,  63 },  // a split, l not split
  291.   {  52,  79,  25 },  // l split, a not split
  292.   {  17,  14,  12 },  // a/l both split
  293.   // 64x64 -> 32x32
  294.   { 222,  34,  30 },  // a/l both not split
  295.   {  72,  16,  44 },  // a split, l not split
  296.   {  58,  32,  12 },  // l split, a not split
  297.   {  10,   7,   6 },  // a/l both split
  298. };
  299.  
  300. //Rearranged the values for better usage
  301. static const nmv_context default_nmv_context = {
  302.   {32, 64, 96},
  303.   {
  304.     { // Vertical component
  305.       128,                                                  // sign
  306.       {224, 144, 192, 168, 192, 176, 192, 198, 198, 245},   // class
  307.       {216},                                                // class0
  308.       {136, 140, 148, 160, 176, 192, 224, 234, 234, 240},   // bits
  309.     },
  310.     { // Horizontal component
  311.       128,                                                  // sign
  312.       {216, 128, 176, 160, 176, 176, 192, 198, 198, 208},   // class
  313.       {208},                                                // class0
  314.       {136, 140, 148, 160, 176, 192, 224, 234, 234, 240},   // bits
  315.     }
  316.   },
  317.   {{128, 128, 64}, {96, 112, 64}},                      // class0_fp0
  318.   {64, 96, 64},                                         // fp0
  319.   {{128, 128, 64}, {96, 112, 64}},                      // class0_fp1
  320.   {64, 96, 64},                                         // fp1
  321.   {160, 128},                                           // class0_hp bit
  322.   {160, 128}                                            // hp
  323.  
  324. };
  325.  
  326. //Rearranged the coeff probs for better usage
  327. static const vp9_prob default_coef_probs_4x4[COEFF_PROB_SIZE][COEFF_PROB_NUM] = {
  328.     // Y plane - Intra
  329.     // Band 0
  330.     { 195,  29, 183 }, {  84,  49, 136 }, {   8,  42,  71 },
  331.     // Band 1
  332.     {  31, 107, 169 }, {  35,  99, 159 }, {  17,  82, 140 },
  333.     {   8,  66, 114 }, {   2,  44,  76 }, {   1,  19,  32 },
  334.     // Band 2
  335.     {  40, 132, 201 }, {  29, 114, 187 }, {  13,  91, 157 },
  336.     {   7,  75, 127 }, {   3,  58,  95 }, {   1,  28,  47 },
  337.     // Band 3
  338.     {  69, 142, 221 }, {  42, 122, 201 }, {  15,  91, 159 },
  339.     {   6,  67, 121 }, {   1,  42,  77 }, {   1,  17,  31 },
  340.     // Band 4
  341.     { 102, 148, 228 }, {  67, 117, 204 }, {  17,  82, 154 },
  342.     {   6,  59, 114 }, {   2,  39,  75 }, {   1,  15,  29 },
  343.     // Band 5
  344.     { 156,  57, 233 }, { 119,  57, 212 }, {  58,  48, 163 },
  345.     {  29,  40, 124 }, {  12,  30,  81 }, {   3,  12,  31 },
  346.  
  347.     // Y plane - Inter
  348.     // Band 0
  349.     { 191, 107, 226 }, { 124, 117, 204 }, {  25,  99, 155 },
  350.     // Band 1
  351.     {  29, 148, 210 }, {  37, 126, 194 }, {   8,  93, 157 },
  352.     {   2,  68, 118 }, {   1,  39,  69 }, {   1,  17,  33 },
  353.     // Band 2
  354.     {  41, 151, 213 }, {  27, 123, 193 }, {   3,  82, 144 },
  355.     {   1,  58, 105 }, {   1,  32,  60 }, {   1,  13,  26 },
  356.     // Band 3
  357.     {  59, 159, 220 }, {  23, 126, 198 }, {   4,  88, 151 },
  358.     {   1,  66, 114 }, {   1,  38,  71 }, {   1,  18,  34 },
  359.     // Band 4
  360.     { 114, 136, 232 }, {  51, 114, 207 }, {  11,  83, 155 },
  361.     {   3,  56, 105 }, {   1,  33,  65 }, {   1,  17,  34 },
  362.     // Band 5
  363.     { 149,  65, 234 }, { 121,  57, 215 }, {  61,  49, 166 },
  364.     {  28,  36, 114 }, {  12,  25,  76 }, {   3,  16,  42 },
  365.  
  366.     // UV plane - Intra
  367.     // Band 0
  368.     { 214,  49, 220 }, { 132,  63, 188 }, {  42,  65, 137 },
  369.     // Band 1
  370.     {  85, 137, 221 }, { 104, 131, 216 }, {  49, 111, 192 },
  371.     {  21,  87, 155 }, {   2,  49,  87 }, {   1,  16,  28 },
  372.     // Band 2
  373.     {  89, 163, 230 }, {  90, 137, 220 }, {  29, 100, 183 },
  374.     {  10,  70, 135 }, {   2,  42,  81 }, {   1,  17,  33 },
  375.     // Band 3
  376.     { 108, 167, 237 }, {  55, 133, 222 }, {  15,  97, 179 },
  377.     {   4,  72, 135 }, {   1,  45,  85 }, {   1,  19,  38 },
  378.     // Band 4
  379.     { 124, 146, 240 }, {  66, 124, 224 }, {  17,  88, 175 },
  380.     {   4,  58, 122 }, {   1,  36,  75 }, {   1,  18,  37 },
  381.     //  Band 5
  382.     { 141,  79, 241 }, { 126,  70, 227 }, {  66,  58, 182 },
  383.     {  30,  44, 136 }, {  12,  34,  96 }, {   2,  20,  47 },
  384.  
  385.     // UV plane - Inter
  386.     // Band 0
  387.     { 229,  99, 249 }, { 143, 111, 235 }, {  46, 109, 192 },
  388.     // Band 1
  389.     {  82, 158, 236 }, {  94, 146, 224 }, {  25, 117, 191 },
  390.     {   9,  87, 149 }, {   3,  56,  99 }, {   1,  33,  57 },
  391.     // Band 2
  392.     {  83, 167, 237 }, {  68, 145, 222 }, {  10, 103, 177 },
  393.     {   2,  72, 131 }, {   1,  41,  79 }, {   1,  20,  39 },
  394.     // Band 3
  395.     {  99, 167, 239 }, {  47, 141, 224 }, {  10, 104, 178 },
  396.     {   2,  73, 133 }, {   1,  44,  85 }, {   1,  22,  47 },
  397.     // Band 4
  398.     { 127, 145, 243 }, {  71, 129, 228 }, {  17,  93, 177 },
  399.     {   3,  61, 124 }, {   1,  41,  84 }, {   1,  21,  52 },
  400.     // Band 5
  401.     { 157,  78, 244 }, { 140,  72, 231 }, {  69,  58, 184 },
  402.     {  31,  44, 137 }, {  14,  38, 105 }, {   8,  23,  61 }
  403. };
  404.  
  405. static const vp9_prob default_coef_probs_8x8[COEFF_PROB_SIZE][COEFF_PROB_NUM] = {
  406.     // Y plane - Intra
  407.     // Band 0
  408.     { 125,  34, 187 }, {  52,  41, 133 }, {   6,  31,  56 },
  409.     // Band 1
  410.     {  37, 109, 153 }, {  51, 102, 147 }, {  23,  87, 128 },
  411.     {   8,  67, 101 }, {   1,  41,  63 }, {   1,  19,  29 },
  412.     // Band 2
  413.     {  31, 154, 185 }, {  17, 127, 175 }, {   6,  96, 145 },
  414.     {   2,  73, 114 }, {   1,  51,  82 }, {   1,  28,  45 },
  415.     // Band 3
  416.     {  23, 163, 200 }, {  10, 131, 185 }, {   2,  93, 148 },
  417.     {   1,  67, 111 }, {   1,  41,  69 }, {   1,  14,  24 },
  418.     // Band 4
  419.     {  29, 176, 217 }, {  12, 145, 201 }, {   3, 101, 156 },
  420.     {   1,  69, 111 }, {   1,  39,  63 }, {   1,  14,  23 },
  421.     // Band 5
  422.     {  57, 192, 233 }, {  25, 154, 215 }, {   6, 109, 167 },
  423.     {   3,  78, 118 }, {   1,  48,  69 }, {   1,  21,  29 },
  424.  
  425.     // Y plane - Inter
  426.     // Band 0
  427.     { 202, 105, 245 }, { 108, 106, 216 }, {  18,  90, 144 },
  428.     // Band 1
  429.     {  33, 172, 219 }, {  64, 149, 206 }, {  14, 117, 177 },
  430.     {   5,  90, 141 }, {   2,  61,  95 }, {   1,  37,  57 },
  431.     // Band 2
  432.     {  33, 179, 220 }, {  11, 140, 198 }, {   1,  89, 148 },
  433.     {   1,  60, 104 }, {   1,  33,  57 }, {   1,  12,  21 },
  434.     // Band 3
  435.     {  30, 181, 221 }, {   8, 141, 198 }, {   1,  87, 145 },
  436.     {   1,  58, 100 }, {   1,  31,  55 }, {   1,  12,  20 },
  437.     // Band 4
  438.     {  32, 186, 224 }, {   7, 142, 198 }, {   1,  86, 143 },
  439.     {   1,  58, 100 }, {   1,  31,  55 }, {   1,  12,  22 },
  440.     // Band 5
  441.     {  57, 192, 227 }, {  20, 143, 204 }, {   3,  96, 154 },
  442.     {   1,  68, 112 }, {   1,  42,  69 }, {   1,  19,  32 },
  443.  
  444.     // UV plane - Intra
  445.     // Band 0
  446.     { 212,  35, 215 }, { 113,  47, 169 }, {  29,  48, 105 },
  447.     // Band 1
  448.     {  74, 129, 203 }, { 106, 120, 203 }, {  49, 107, 178 },
  449.     {  19,  84, 144 }, {   4,  50,  84 }, {   1,  15,  25 },
  450.     // Band 2
  451.     {  71, 172, 217 }, {  44, 141, 209 }, {  15, 102, 173 },
  452.     {   6,  76, 133 }, {   2,  51,  89 }, {   1,  24,  42 },
  453.     // Band 3
  454.     {  64, 185, 231 }, {  31, 148, 216 }, {   8, 103, 175 },
  455.     {   3,  74, 131 }, {   1,  46,  81 }, {   1,  18,  30 },
  456.     // Band 4
  457.     {  65, 196, 235 }, {  25, 157, 221 }, {   5, 105, 174 },
  458.     {   1,  67, 120 }, {   1,  38,  69 }, {   1,  15,  30 },
  459.     // Band 5
  460.     {  65, 204, 238 }, {  30, 156, 224 }, {   7, 107, 177 },
  461.     {   2,  70, 124 }, {   1,  42,  73 }, {   1,  18,  34 },
  462.  
  463.     // UV Plane - Inter
  464.     // Band 0
  465.     { 225,  86, 251 }, { 144, 104, 235 }, {  42,  99, 181 },
  466.     // Band 1
  467.     {  85, 175, 239 }, { 112, 165, 229 }, {  29, 136, 200 },
  468.     {  12, 103, 162 }, {   6,  77, 123 }, {   2,  53,  84 },
  469.     // Band 2
  470.     {  75, 183, 239 }, {  30, 155, 221 }, {   3, 106, 171 },
  471.     {   1,  74, 128 }, {   1,  44,  76 }, {   1,  17,  28 },
  472.     // Band 3
  473.     {  73, 185, 240 }, {  27, 159, 222 }, {   2, 107, 172 },
  474.     {   1,  75, 127 }, {   1,  42,  73 }, {   1,  17,  29 },
  475.     // Band 4
  476.     {  62, 190, 238 }, {  21, 159, 222 }, {   2, 107, 172 },
  477.     {   1,  72, 122 }, {   1,  40,  71 }, {   1,  18,  32 },
  478.     // Band 5
  479.     {  61, 199, 240 }, {  27, 161, 226 }, {   4, 113, 180 },
  480.     {   1,  76, 129 }, {   1,  46,  80 }, {   1,  23,  41 }
  481. };
  482.  
  483. static const vp9_prob default_coef_probs_16x16[COEFF_PROB_SIZE][COEFF_PROB_NUM] = {
  484.     // Y plane - Intra
  485.     // Band 0
  486.     {   7,  27, 153 }, {   5,  30,  95 }, {   1,  16,  30 },
  487.     // Band 1
  488.     {  50,  75, 127 }, {  57,  75, 124 }, {  27,  67, 108 },
  489.     {  10,  54,  86 }, {   1,  33,  52 }, {   1,  12,  18 },
  490.     // Band 2
  491.     {  43, 125, 151 }, {  26, 108, 148 }, {   7,  83, 122 },
  492.     {   2,  59,  89 }, {   1,  38,  60 }, {   1,  17,  27 },
  493.     // Band 3
  494.     {  23, 144, 163 }, {  13, 112, 154 }, {   2,  75, 117 },
  495.     {   1,  50,  81 }, {   1,  31,  51 }, {   1,  14,  23 },
  496.     // Band 4
  497.     {  18, 162, 185 }, {   6, 123, 171 }, {   1,  78, 125 },
  498.     {   1,  51,  86 }, {   1,  31,  54 }, {   1,  14,  23 },
  499.     // Band 5
  500.     {  15, 199, 227 }, {   3, 150, 204 }, {   1,  91, 146 },
  501.     {   1,  55,  95 }, {   1,  30,  53 }, {   1,  11,  20 },
  502.  
  503.     // Y plane - Inter
  504.     // Band 0
  505.     {  19,  55, 240 }, {  19,  59, 196 }, {   3,  52, 105 },
  506.     // Band 1
  507.     {  41, 166, 207 }, { 104, 153, 199 }, {  31, 123, 181 },
  508.     {  14, 101, 152 }, {   5,  72, 106 }, {   1,  36,  52 },
  509.     // Band 2
  510.     {  35, 176, 211 }, {  12, 131, 190 }, {   2,  88, 144 },
  511.     {   1,  60, 101 }, {   1,  36,  60 }, {   1,  16,  28 },
  512.     // Band 3
  513.     {  28, 183, 213 }, {   8, 134, 191 }, {   1,  86, 142 },
  514.     {   1,  56,  96 }, {   1,  30,  53 }, {   1,  12,  20 },
  515.     // Band 4
  516.     {  20, 190, 215 }, {   4, 135, 192 }, {   1,  84, 139 },
  517.     {   1,  53,  91 }, {   1,  28,  49 }, {   1,  11,  20 },
  518.     // Band 5
  519.     {  13, 196, 216 }, {   2, 137, 192 }, {   1,  86, 143 },
  520.     {   1,  57,  99 }, {   1,  32,  56 }, {   1,  13,  24 },
  521.  
  522.     // UV plane - Intra
  523.     // Band 0
  524.     { 211,  29, 217 }, {  96,  47, 156 }, {  22,  43,  87 },
  525.     // Band 1
  526.     {  78, 120, 193 }, { 111, 116, 186 }, {  46, 102, 164 },
  527.     {  15,  80, 128 }, {   2,  49,  76 }, {   1,  18,  28 },
  528.     // Band 2
  529.     {  71, 161, 203 }, {  42, 132, 192 }, {  10,  98, 150 },
  530.     {   3,  69, 109 }, {   1,  44,  70 }, {   1,  18,  29 },
  531.     // Band 3
  532.     {  57, 186, 211 }, {  30, 140, 196 }, {   4,  93, 146 },
  533.     {   1,  62, 102 }, {   1,  38,  65 }, {   1,  16,  27 },
  534.     // Band 4
  535.     {  47, 199, 217 }, {  14, 145, 196 }, {   1,  88, 142 },
  536.     {   1,  57,  98 }, {   1,  36,  62 }, {   1,  15,  26 },
  537.     // Band 5
  538.     {  26, 219, 229 }, {   5, 155, 207 }, {   1,  94, 151 },
  539.     {   1,  60, 104 }, {   1,  36,  62 }, {   1,  16,  28 },
  540.  
  541.     // UV plane - Inter
  542.     // Band 0
  543.     { 233,  29, 248 }, { 146,  47, 220 }, {  43,  52, 140 },
  544.     // Band 1
  545.     { 100, 163, 232 }, { 179, 161, 222 }, {  63, 142, 204 },
  546.     {  37, 113, 174 }, {  26,  89, 137 }, {  18,  68,  97 },
  547.     // Band 2
  548.     {  85, 181, 230 }, {  32, 146, 209 }, {   7, 100, 164 },
  549.     {   3,  71, 121 }, {   1,  45,  77 }, {   1,  18,  30 },
  550.     // Band 3
  551.     {  65, 187, 230 }, {  20, 148, 207 }, {   2,  97, 159 },
  552.     {   1,  68, 116 }, {   1,  40,  70 }, {   1,  14,  29 },
  553.     // Band 4
  554.     {  40, 194, 227 }, {   8, 147, 204 }, {   1,  94, 155 },
  555.     {   1,  65, 112 }, {   1,  39,  66 }, {   1,  14,  26 },
  556.     // Band 5
  557.     {  16, 208, 228 }, {   3, 151, 207 }, {   1,  98, 160 },
  558.     {   1,  67, 117 }, {   1,  41,  74 }, {   1,  17,  31 }
  559. };
  560.  
  561. static const vp9_prob default_coef_probs_32x32[COEFF_PROB_SIZE][COEFF_PROB_NUM] = {
  562.     // Y plane - Intra
  563.     // Band 0
  564.     {  17,  38, 140 }, {   7,  34,  80 }, {   1,  17,  29 },
  565.     // Band 1
  566.     {  37,  75, 128 }, {  41,  76, 128 }, {  26,  66, 116 },
  567.     {  12,  52,  94 }, {   2,  32,  55 }, {   1,  10,  16 },
  568.     // Band 2
  569.     {  50, 127, 154 }, {  37, 109, 152 }, {  16,  82, 121 },
  570.     {   5,  59,  85 }, {   1,  35,  54 }, {   1,  13,  20 },
  571.     //Band 3
  572.     {  40, 142, 167 }, {  17, 110, 157 }, {   2,  71, 112 },
  573.     {   1,  44,  72 }, {   1,  27,  45 }, {   1,  11,  17 },
  574.     // Band 4
  575.     {  30, 175, 188 }, {   9, 124, 169 }, {   1,  74, 116 },
  576.     {   1,  48,  78 }, {   1,  30,  49 }, {   1,  11,  18 },
  577.     // Band 5
  578.     {  10, 222, 223 }, {   2, 150, 194 }, {   1,  83, 128 },
  579.     {   1,  48,  79 }, {   1,  27,  45 }, {   1,  11,  17 },
  580.  
  581.     // Y plane - Inter
  582.     // Band 0
  583.     {  36,  41, 235 }, {  29,  36, 193 }, {  10,  27, 111 },
  584.     // Band 1
  585.     {  85, 165, 222 }, { 177, 162, 215 }, { 110, 135, 195 },
  586.     {  57, 113, 168 }, {  23,  83, 120 }, {  10,  49,  61 },
  587.     // Band 2
  588.     {  85, 190, 223 }, {  36, 139, 200 }, {   5,  90, 146 },
  589.     {   1,  60, 103 }, {   1,  38,  65 }, {   1,  18,  30 },
  590.     // Band 3
  591.     {  72, 202, 223 }, {  23, 141, 199 }, {   2,  86, 140 },
  592.     {   1,  56,  97 }, {   1,  36,  61 }, {   1,  16,  27 },
  593.     // Band 4
  594.     {  55, 218, 225 }, {  13, 145, 200 }, {   1,  86, 141 },
  595.     {   1,  57,  99 }, {   1,  35,  61 }, {   1,  13,  22 },
  596.     // Band 5
  597.     {  15, 235, 212 }, {   1, 132, 184 }, {   1,  84, 139 },
  598.     {   1,  57,  97 }, {   1,  34,  56 }, {   1,  14,  23 },
  599.  
  600.     // UV plane - Intra
  601.     // Band 0
  602.     { 181,  21, 201 }, {  61,  37, 123 }, {  10,  38,  71 },
  603.     // Band 1
  604.     {  47, 106, 172 }, {  95, 104, 173 }, {  42,  93, 159 },
  605.     {  18,  77, 131 }, {   4,  50,  81 }, {   1,  17,  23 },
  606.     // Band 2
  607.     {  62, 147, 199 }, {  44, 130, 189 }, {  28, 102, 154 },
  608.     {  18,  75, 115 }, {   2,  44,  65 }, {   1,  12,  19 },
  609.     // Band 3
  610.     {  55, 153, 210 }, {  24, 130, 194 }, {   3,  93, 146 },
  611.     {   1,  61,  97 }, {   1,  31,  50 }, {   1,  10,  16 },
  612.     // Band 4
  613.     {  49, 186, 223 }, {  17, 148, 204 }, {   1,  96, 142 },
  614.     {   1,  53,  83 }, {   1,  26,  44 }, {   1,  11,  17 },
  615.     // Band 5
  616.     {  13, 217, 212 }, {   2, 136, 180 }, {   1,  78, 124 },
  617.     {   1,  50,  83 }, {   1,  29,  49 }, {   1,  14,  23 },
  618.  
  619.     // UV plane - Inter
  620.     // Band 0
  621.     { 197,  13, 247 }, {  82,  17, 222 }, {  25,  17, 162 },
  622.     // Band 1
  623.     { 126, 186, 247 }, { 234, 191, 243 }, { 176, 177, 234 },
  624.     { 104, 158, 220 }, {  66, 128, 186 }, {  55,  90, 137 },
  625.     // Band 2
  626.     { 111, 197, 242 }, {  46, 158, 219 }, {   9, 104, 171 },
  627.     {   2,  65, 125 }, {   1,  44,  80 }, {   1,  17,  91 },
  628.     // Band 3
  629.     { 104, 208, 245 }, {  39, 168, 224 }, {   3, 109, 162 },
  630.     {   1,  79, 124 }, {   1,  50, 102 }, {   1,  43, 102 },
  631.     // Band 4
  632.     {  84, 220, 246 }, {  31, 177, 231 }, {   2, 115, 180 },
  633.     {   1,  79, 134 }, {   1,  55,  77 }, {   1,  60,  79 },
  634.     // Band 5
  635.     {  43, 243, 240 }, {   8, 180, 217 }, {   1, 115, 166 },
  636.     {   1,  84, 121 }, {   1,  51,  67 }, {   1,  16,   6 }
  637.  
  638. };
  639.  
  640. #endif /*VP9_PROBS_H */
  641.