• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/vp6data.h

Go to the documentation of this file.
00001 
00024 #ifndef AVCODEC_VP6DATA_H
00025 #define AVCODEC_VP6DATA_H
00026 
00027 #include "vp56data.h"
00028 
00029 static const uint8_t vp6_def_fdv_vector_model[2][8] = {
00030     { 247, 210, 135, 68, 138, 220, 239, 246 },
00031     { 244, 184, 201, 44, 173, 221, 239, 253 },
00032 };
00033 
00034 static const uint8_t vp6_def_pdv_vector_model[2][7] = {
00035     { 225, 146, 172, 147, 214,  39, 156 },
00036     { 204, 170, 119, 235, 140, 230, 228 },
00037 };
00038 
00039 static const uint8_t vp6_def_coeff_reorder[] = {
00040      0,  0,  1,  1,  1,  2,  2,  2,
00041      2,  2,  2,  3,  3,  4,  4,  4,
00042      5,  5,  5,  5,  6,  6,  7,  7,
00043      7,  7,  7,  8,  8,  9,  9,  9,
00044      9,  9,  9, 10, 10, 11, 11, 11,
00045     11, 11, 11, 12, 12, 12, 12, 12,
00046     12, 13, 13, 13, 13, 13, 14, 14,
00047     14, 14, 15, 15, 15, 15, 15, 15,
00048 };
00049 
00050 static const uint8_t vp6_def_runv_coeff_model[2][14] = {
00051     { 198, 197, 196, 146, 198, 204, 169, 142, 130, 136, 149, 149, 191, 249 },
00052     { 135, 201, 181, 154,  98, 117, 132, 126, 146, 169, 184, 240, 246, 254 },
00053 };
00054 
00055 static const uint8_t vp6_sig_dct_pct[2][2] = {
00056     { 237, 246 },
00057     { 231, 243 },
00058 };
00059 
00060 static const uint8_t vp6_pdv_pct[2][7] = {
00061     { 253, 253, 254, 254, 254, 254, 254 },
00062     { 245, 253, 254, 254, 254, 254, 254 },
00063 };
00064 
00065 static const uint8_t vp6_fdv_pct[2][8] = {
00066     { 254, 254, 254, 254, 254, 250, 250, 252 },
00067     { 254, 254, 254, 254, 254, 251, 251, 254 },
00068 };
00069 
00070 static const uint8_t vp6_dccv_pct[2][11] = {
00071     { 146, 255, 181, 207, 232, 243, 238, 251, 244, 250, 249 },
00072     { 179, 255, 214, 240, 250, 255, 244, 255, 255, 255, 255 },
00073 };
00074 
00075 static const uint8_t vp6_coeff_reorder_pct[] =  {
00076     255, 132, 132, 159, 153, 151, 161, 170,
00077     164, 162, 136, 110, 103, 114, 129, 118,
00078     124, 125, 132, 136, 114, 110, 142, 135,
00079     134, 123, 143, 126, 153, 183, 166, 161,
00080     171, 180, 179, 164, 203, 218, 225, 217,
00081     215, 206, 203, 217, 229, 241, 248, 243,
00082     253, 255, 253, 255, 255, 255, 255, 255,
00083     255, 255, 255, 255, 255, 255, 255, 255,
00084 };
00085 
00086 static const uint8_t vp6_runv_pct[2][14] = {
00087   { 219, 246, 238, 249, 232, 239, 249, 255, 248, 253, 239, 244, 241, 248 },
00088   { 198, 232, 251, 253, 219, 241, 253, 255, 248, 249, 244, 238, 251, 255 },
00089 };
00090 
00091 static const uint8_t vp6_ract_pct[3][2][6][11] = {
00092   { { { 227, 246, 230, 247, 244, 255, 255, 255, 255, 255, 255 },
00093       { 255, 255, 209, 231, 231, 249, 249, 253, 255, 255, 255 },
00094       { 255, 255, 225, 242, 241, 251, 253, 255, 255, 255, 255 },
00095       { 255, 255, 241, 253, 252, 255, 255, 255, 255, 255, 255 },
00096       { 255, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
00097       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
00098     { { 240, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
00099       { 255, 255, 240, 253, 255, 255, 255, 255, 255, 255, 255 },
00100       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00101       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00102       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00103       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
00104   { { { 206, 203, 227, 239, 247, 255, 253, 255, 255, 255, 255 },
00105       { 207, 199, 220, 236, 243, 252, 252, 255, 255, 255, 255 },
00106       { 212, 219, 230, 243, 244, 253, 252, 255, 255, 255, 255 },
00107       { 236, 237, 247, 252, 253, 255, 255, 255, 255, 255, 255 },
00108       { 240, 240, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
00109       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
00110     { { 230, 233, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
00111       { 238, 238, 250, 255, 255, 255, 255, 255, 255, 255, 255 },
00112       { 248, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00113       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00114       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00115       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
00116   { { { 225, 239, 227, 231, 244, 253, 243, 255, 255, 253, 255 },
00117       { 232, 234, 224, 228, 242, 249, 242, 252, 251, 251, 255 },
00118       { 235, 249, 238, 240, 251, 255, 249, 255, 253, 253, 255 },
00119       { 249, 253, 251, 250, 255, 255, 255, 255, 255, 255, 255 },
00120       { 251, 250, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
00121       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
00122     { { 243, 244, 250, 250, 255, 255, 255, 255, 255, 255, 255 },
00123       { 249, 248, 250, 253, 255, 255, 255, 255, 255, 255, 255 },
00124       { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00125       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00126       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
00127       { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } }
00128 };
00129 
00130 static const int vp6_dccv_lc[3][5][2] = {
00131   { { 122, 133 }, { 0, 1 }, { 78,  171 }, { 139, 117 }, { 168, 79 } },
00132   { { 133,  51 }, { 0, 1 }, { 169,  71 }, { 214,  44 }, { 210, 38 } },
00133   { { 142, -16 }, { 0, 1 }, { 221, -30 }, { 246,  -3 }, { 203, 17 } },
00134 };
00135 
00136 static const uint8_t vp6_coeff_groups[] = {
00137     0, 0, 1, 1, 1, 2, 2, 2,
00138     2, 2, 2, 3, 3, 3, 3, 3,
00139     3, 3, 3, 3, 3, 3, 4, 4,
00140     4, 4, 4, 4, 4, 4, 4, 4,
00141     4, 4, 4, 4, 4, 5, 5, 5,
00142     5, 5, 5, 5, 5, 5, 5, 5,
00143     5, 5, 5, 5, 5, 5, 5, 5,
00144     5, 5, 5, 5, 5, 5, 5, 5,
00145 };
00146 
00147 static const int16_t vp6_block_copy_filter[17][8][4] = {
00148   { {   0, 128,   0,   0  },  /* 0 */
00149     {  -3, 122,   9,   0  },
00150     {  -4, 109,  24,  -1  },
00151     {  -5,  91,  45,  -3  },
00152     {  -4,  68,  68,  -4  },
00153     {  -3,  45,  91,  -5  },
00154     {  -1,  24, 109,  -4  },
00155     {   0,   9, 122,  -3  } },
00156   { {   0, 128,   0,   0  },  /* 1 */
00157     {  -4, 124,   9,  -1  },
00158     {  -5, 110,  25,  -2  },
00159     {  -6,  91,  46,  -3  },
00160     {  -5,  69,  69,  -5  },
00161     {  -3,  46,  91,  -6  },
00162     {  -2,  25, 110,  -5  },
00163     {  -1,   9, 124,  -4  } },
00164   { {   0, 128,   0,   0  },  /* 2 */
00165     {  -4, 123,  10,  -1  },
00166     {  -6, 110,  26,  -2  },
00167     {  -7,  92,  47,  -4  },
00168     {  -6,  70,  70,  -6  },
00169     {  -4,  47,  92,  -7  },
00170     {  -2,  26, 110,  -6  },
00171     {  -1,  10, 123,  -4  } },
00172   { {   0, 128,   0,   0  },  /* 3 */
00173     {  -5, 124,  10,  -1  },
00174     {  -7, 110,  27,  -2  },
00175     {  -7,  91,  48,  -4  },
00176     {  -6,  70,  70,  -6  },
00177     {  -4,  48,  92,  -8  },
00178     {  -2,  27, 110,  -7  },
00179     {  -1,  10, 124,  -5  } },
00180   { {   0, 128,   0,   0  },  /* 4 */
00181     {  -6, 124,  11,  -1  },
00182     {  -8, 111,  28,  -3  },
00183     {  -8,  92,  49,  -5  },
00184     {  -7,  71,  71,  -7  },
00185     {  -5,  49,  92,  -8  },
00186     {  -3,  28, 111,  -8  },
00187     {  -1,  11, 124,  -6  } },
00188   { {  0,  128,   0,   0  },  /* 5 */
00189     {  -6, 123,  12,  -1  },
00190     {  -9, 111,  29,  -3  },
00191     {  -9,  93,  50,  -6  },
00192     {  -8,  72,  72,  -8  },
00193     {  -6,  50,  93,  -9  },
00194     {  -3,  29, 111,  -9  },
00195     {  -1,  12, 123,  -6  } },
00196   { {   0, 128,   0,   0  },  /* 6 */
00197     {  -7, 124,  12,  -1  },
00198     { -10, 111,  30,  -3  },
00199     { -10,  93,  51,  -6  },
00200     {  -9,  73,  73,  -9  },
00201     {  -6,  51,  93, -10  },
00202     {  -3,  30, 111, -10  },
00203     {  -1,  12, 124,  -7  } },
00204   { {   0, 128,   0,   0  },  /* 7 */
00205     {  -7, 123,  13,  -1  },
00206     { -11, 112,  31,  -4  },
00207     { -11,  94,  52,  -7  },
00208     { -10,  74,  74, -10  },
00209     {  -7,  52,  94, -11  },
00210     {  -4,  31, 112, -11  },
00211     {  -1,  13, 123,  -7  } },
00212   { {   0, 128,   0,  0  },  /* 8 */
00213     {  -8, 124,  13,  -1  },
00214     { -12, 112,  32,  -4  },
00215     { -12,  94,  53,  -7  },
00216     { -10,  74,  74, -10  },
00217     {  -7,  53,  94, -12  },
00218     {  -4,  32, 112, -12  },
00219     {  -1,  13, 124,  -8  } },
00220   { {   0, 128,   0,   0  },  /* 9 */
00221     {  -9, 124,  14,  -1  },
00222     { -13, 112,  33,  -4  },
00223     { -13,  95,  54,  -8  },
00224     { -11,  75,  75, -11  },
00225     {  -8,  54,  95, -13  },
00226     {  -4,  33, 112, -13  },
00227     {  -1,  14, 124,  -9  } },
00228   { {   0, 128,   0,   0  },  /* 10 */
00229     {  -9, 123,  15,  -1  },
00230     { -14, 113,  34,  -5  },
00231     { -14,  95,  55,  -8  },
00232     { -12,  76,  76, -12  },
00233     {  -8,  55,  95, -14  },
00234     {  -5,  34, 112, -13  },
00235     {  -1,  15, 123,  -9  } },
00236   { {   0, 128,   0,   0  },  /* 11 */
00237     { -10, 124,  15,  -1  },
00238     { -14, 113,  34,  -5  },
00239     { -15,  96,  56,  -9  },
00240     { -13,  77,  77, -13  },
00241     {  -9,  56,  96, -15  },
00242     {  -5,  34, 113, -14  },
00243     {  -1,  15, 124, -10  } },
00244   { {   0, 128,   0,   0  },  /* 12 */
00245     { -10, 123,  16,  -1  },
00246     { -15, 113,  35,  -5  },
00247     { -16,  98,  56, -10  },
00248     { -14,  78,  78, -14  },
00249     { -10,  56,  98, -16  },
00250     {  -5,  35, 113, -15  },
00251     {  -1,  16, 123, -10  } },
00252   { {   0, 128,   0,   0  },  /* 13 */
00253     { -11, 124,  17,  -2  },
00254     { -16, 113,  36,  -5  },
00255     { -17,  98,  57, -10  },
00256     { -14,  78,  78, -14  },
00257     { -10,  57,  98, -17  },
00258     {  -5,  36, 113, -16  },
00259     {  -2,  17, 124, -11  } },
00260   { {   0, 128,   0,   0  },  /* 14 */
00261     { -12, 125,  17,  -2  },
00262     { -17, 114,  37,  -6  },
00263     { -18,  99,  58, -11  },
00264     { -15,  79,  79, -15  },
00265     { -11,  58,  99, -18  },
00266     {  -6,  37, 114, -17  },
00267     {  -2,  17, 125, -12  } },
00268   { {   0, 128,   0,   0  },  /* 15 */
00269     { -12, 124,  18,  -2  },
00270     { -18, 114,  38,  -6  },
00271     { -19,  99,  59, -11  },
00272     { -16,  80,  80, -16  },
00273     { -11,  59,  99, -19  },
00274     {  -6,  38, 114, -18  },
00275     {  -2,  18, 124, -12  } },
00276   { {   0, 128,   0,   0  },  /* 16 */
00277     {  -4, 118,  16,  -2  },
00278     {  -7, 106,  34,  -5  },
00279     {  -8,  90,  53,  -7  },
00280     {  -8,  72,  72,  -8  },
00281     {  -7,  53,  90,  -8  },
00282     {  -5,  34, 106,  -7  },
00283     {  -2,  16, 118,  -4  } },
00284 };
00285 
00286 static const VP56Tree vp6_pcr_tree[] = {
00287     { 8, 0},
00288     { 4, 1},
00289     { 2, 2}, {-1}, {-2},
00290     { 2, 3}, {-3}, {-4},
00291     { 8, 4},
00292     { 4, 5},
00293     { 2, 6}, {-5}, {-6},
00294     { 2, 7}, {-7}, {-8},
00295              {-0},
00296 };
00297 
00298 static const uint8_t vp6_coord_div[] = { 4, 4, 4, 4, 8, 8 };
00299 
00300 static const uint8_t vp6_huff_coeff_map[] = {
00301     13, 14, 11, 0, 1, 15, 16, 18, 2, 17, 3, 4, 19, 20, 5, 6, 21, 22, 7, 8, 9, 10
00302 };
00303 
00304 static const uint8_t vp6_huff_run_map[] = {
00305     10, 13, 11, 12, 0, 1, 2, 3, 14, 8, 15, 16, 4, 5, 6, 7
00306 };
00307 
00308 #endif /* AVCODEC_VP6DATA_H */

Generated on Fri Sep 16 2011 17:17:46 for FFmpeg by  doxygen 1.7.1