00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00047
00048 #if !defined GETVLC_H
00049 #define GETVLC_H
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 typedef struct VLCtab_tag
00060 {
00061 char cVal, cLen;
00062 } VLCTAB;
00063
00064 typedef struct DCTtab_tag
00065 {
00066 char cRun, cLevel, cLen;
00067 } DCTTAB;
00068
00069
00070 const VLCTAB PMB_TAB0[8] = {
00071 {GENERAL_ERROR,0},
00072 {MACROBLOCK_MOTION_FORWARD,3},
00073 {MACROBLOCK_PATTERN,2}, {MACROBLOCK_PATTERN,2},
00074 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
00075 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
00076 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
00077 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1}
00078 };
00079
00080
00081 const VLCTAB PMB_TAB1[8] = {
00082 {GENERAL_ERROR,0},
00083 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
00084 {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5},
00085 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5},
00086 {MACROBLOCK_INTRA,5}, {MACROBLOCK_INTRA,5}
00087 };
00088
00089
00090 const VLCTAB BMB_TAB0[16] = {
00091 {GENERAL_ERROR,0},
00092 {GENERAL_ERROR,0},
00093 {MACROBLOCK_MOTION_FORWARD,4},
00094 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,4},
00095 {MACROBLOCK_MOTION_BACKWARD,3},
00096 {MACROBLOCK_MOTION_BACKWARD,3},
00097 {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
00098 {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
00099 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00100 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00101 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00102 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00103 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00104 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00105 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00106 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2}
00107 };
00108
00109
00110 const VLCTAB BMB_TAB1[8] = {
00111 {GENERAL_ERROR,0},
00112 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
00113 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6},
00114 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
00115 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
00116 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
00117 {MACROBLOCK_INTRA,5},
00118 {MACROBLOCK_INTRA,5}
00119 };
00120
00121
00122 const VLCTAB SP_IMB_TAB[16] = {
00123 {GENERAL_ERROR,0},
00124 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS,4},
00125 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,4},
00126 {MACROBLOCK_INTRA,4},
00127 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2},
00128 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2},
00129 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1},
00130 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1},
00131 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1},
00132 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1}, {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,1}
00133 };
00134
00135
00136 const VLCTAB SP_PMB_TAB0[16] =
00137 {
00138 {GENERAL_ERROR,0},
00139 {GENERAL_ERROR,0},
00140 {MACROBLOCK_MOTION_FORWARD,4},
00141 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD,4},
00142 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,3}, {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,3},
00143 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,3}, {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,3},
00144 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00145 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00146 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00147 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00148 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00149 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00150 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2},
00151 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,2}
00152 };
00153
00154
00155 const VLCTAB SP_PMB_TAB1[16] = {
00156 {GENERAL_ERROR,0},
00157 {GENERAL_ERROR,0},
00158 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,7},
00159 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS,7},
00160 {MACROBLOCK_PATTERN,7},
00161 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,7},
00162 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,7},
00163 {MACROBLOCK_INTRA,7},
00164 {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,6},
00165 {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,6},
00166 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,6},
00167 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,6},
00168 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG,6},
00169 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG,6},
00170 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_PATTERN,6},
00171 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_PATTERN,6}
00172 };
00173
00174
00175 const VLCTAB SP_BMB_TAB0[14] = {
00176 {MACROBLOCK_MOTION_FORWARD,4},
00177 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,4},
00178 {MACROBLOCK_MOTION_BACKWARD,3},
00179 {MACROBLOCK_MOTION_BACKWARD,3},
00180 {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
00181 {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
00182 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00183 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00184 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00185 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
00186 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00187 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00188 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
00189 {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2}
00190 };
00191
00192
00193 const VLCTAB SP_BMB_TAB1[12] = {
00194 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,7},
00195 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,7},
00196 {MACROBLOCK_INTRA,7},
00197 {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,7},
00198 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD,6},
00199 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD,6},
00200 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
00201 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
00202 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_BACKWARD,6},
00203 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_BACKWARD,6},
00204 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6},
00205 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6}
00206 };
00207
00208
00209 const VLCTAB SP_BMB_TAB2[8] = {
00210 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,8},
00211 {MACROBLOCK_QUANT|MACROBLOCK_INTRA,8},
00212 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,8},
00213 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,8},
00214 {SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG|MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,9},
00215 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_QUANT|MACROBLOCK_PATTERN,9},
00216 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS,9},
00217 {PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS|MACROBLOCK_PATTERN,9}
00218 };
00219
00220
00221 const VLCTAB SNRMB_TAB[8] = {
00222 {GENERAL_ERROR,0},
00223 {0,3},
00224 {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2},
00225 {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,2},
00226 {MACROBLOCK_PATTERN,1},
00227 {MACROBLOCK_PATTERN,1},
00228 {MACROBLOCK_PATTERN,1},
00229 {MACROBLOCK_PATTERN,1}
00230 };
00231
00232
00233 const VLCTAB MV_TAB0[8] =
00234 { {GENERAL_ERROR,0}, {3,3}, {2,2}, {2,2}, {1,1}, {1,1}, {1,1}, {1,1}
00235 };
00236
00237
00238 const VLCTAB MV_TAB1[8] =
00239 { {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {7,6}, {6,6}, {5,6}, {4,5}, {4,5}
00240 };
00241
00242
00243 const VLCTAB MV_TAB2[12] =
00244 { {16,9}, {15,9}, {14,9}, {13,9},
00245 {12,9}, {11,9}, {10,8}, {10,8},
00246 {9,8}, {9,8}, {8,8}, {8,8}
00247 };
00248
00249
00250 const VLCTAB CBP_TAB0[32] =
00251 { {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0},
00252 {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0},
00253 {62,5}, {2,5}, {61,5}, {1,5}, {56,5}, {52,5}, {44,5}, {28,5},
00254 {40,5}, {20,5}, {48,5}, {12,5}, {32,4}, {32,4}, {16,4}, {16,4},
00255 {8,4}, {8,4}, {4,4}, {4,4}, {60,3}, {60,3}, {60,3}, {60,3}
00256 };
00257
00258
00259 const VLCTAB CBP_TAB1[64] =
00260 { {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {GENERAL_ERROR,0},
00261 {58,8}, {54,8}, {46,8}, {30,8},
00262 {57,8}, {53,8}, {45,8}, {29,8}, {38,8}, {26,8}, {37,8}, {25,8},
00263 {43,8}, {23,8}, {51,8}, {15,8}, {42,8}, {22,8}, {50,8}, {14,8},
00264 {41,8}, {21,8}, {49,8}, {13,8}, {35,8}, {19,8}, {11,8}, {7,8},
00265 {34,7}, {34,7}, {18,7}, {18,7}, {10,7}, {10,7}, {6,7}, {6,7},
00266 {33,7}, {33,7}, {17,7}, {17,7}, {9,7}, {9,7}, {5,7}, {5,7},
00267 {63,6}, {63,6}, {63,6}, {63,6}, {3,6}, {3,6}, {3,6}, {3,6},
00268 {36,6}, {36,6}, {36,6}, {36,6}, {24,6}, {24,6}, {24,6}, {24,6}
00269 };
00270
00271
00272 const VLCTAB CBP_TAB2[8] =
00273 { {GENERAL_ERROR,0}, {0,9}, {39,9}, {27,9}, {59,9}, {55,9}, {47,9}, {31,9}
00274 };
00275
00276
00277 const VLCTAB MBA_TAB1[16] =
00278 { {GENERAL_ERROR,0}, {GENERAL_ERROR,0}, {7,5}, {6,5}, {5,4}, {5,4}, {4,4}, {4,4},
00279 {3,3}, {3,3}, {3,3}, {3,3}, {2,3}, {2,3}, {2,3}, {2,3}
00280 };
00281
00282
00283 const VLCTAB MBA_TAB2[104] =
00284 {
00285 {33,11}, {32,11}, {31,11}, {30,11}, {29,11}, {28,11}, {27,11}, {26,11},
00286 {25,11}, {24,11}, {23,11}, {22,11}, {21,10}, {21,10}, {20,10}, {20,10},
00287 {19,10}, {19,10}, {18,10}, {18,10}, {17,10}, {17,10}, {16,10}, {16,10},
00288 {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8}, {15,8},
00289 {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8}, {14,8},
00290 {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8}, {13,8},
00291 {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8}, {12,8},
00292 {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8}, {11,8},
00293 {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8}, {10,8},
00294 {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7},
00295 {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7}, {9,7},
00296 {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7},
00297 {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}, {8,7}
00298 };
00299
00300
00301 const VLCTAB DC_LUM_TAB0[32] =
00302 { {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},
00303 {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},
00304 {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3},
00305 {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5}, {GENERAL_ERROR, 0}
00306 };
00307
00308
00309 const VLCTAB DC_LUM_TAB1[16] =
00310 { {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6},
00311 {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10,9}, {11,9}
00312 };
00313
00314
00315 const VLCTAB DC_CHROMA_TAB0[32] =
00316 { {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2},
00317 {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},
00318 {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},
00319 {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5}, {GENERAL_ERROR, 0}
00320 };
00321
00322
00323 const VLCTAB DC_CHROMA_TAB1[32] =
00324 { {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},
00325 {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},
00326 {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},
00327 {8, 8}, {8, 8}, {8, 8}, {8, 8}, {9, 9}, {9, 9}, {10,10}, {11,10}
00328 };
00329
00330
00331 const DCTTAB DCT_TAB_FIRST[12] =
00332 {
00333 {0,2,4}, {2,1,4}, {1,1,3}, {1,1,3},
00334 {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1},
00335 {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1}
00336 };
00337
00338
00339 const DCTTAB DCT_TAB_NEXT[12] =
00340 {
00341 {0,2,4}, {2,1,4}, {1,1,3}, {1,1,3},
00342 {64,0,2}, {64,0,2}, {64,0,2}, {64,0,2},
00343 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2}
00344 };
00345
00346
00347 const DCTTAB DCT_TAB0[60] =
00348 {
00349 {65,0,6}, {65,0,6}, {65,0,6}, {65,0,6},
00350 {2,2,7}, {2,2,7}, {9,1,7}, {9,1,7},
00351 {0,4,7}, {0,4,7}, {8,1,7}, {8,1,7},
00352 {7,1,6}, {7,1,6}, {7,1,6}, {7,1,6},
00353 {6,1,6}, {6,1,6}, {6,1,6}, {6,1,6},
00354 {1,2,6}, {1,2,6}, {1,2,6}, {1,2,6},
00355 {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6},
00356 {13,1,8}, {0,6,8}, {12,1,8}, {11,1,8},
00357 {3,2,8}, {1,3,8}, {0,5,8}, {10,1,8},
00358 {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5},
00359 {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5},
00360 {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5},
00361 {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5},
00362 {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},
00363 {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5}
00364 };
00365
00366
00367 const DCTTAB DCT_TAB0a[252] =
00368 {
00369 {65,0,6}, {65,0,6}, {65,0,6}, {65,0,6},
00370 {7,1,7}, {7,1,7}, {8,1,7}, {8,1,7},
00371 {6,1,7}, {6,1,7}, {2,2,7}, {2,2,7},
00372 {0,7,6}, {0,7,6}, {0,7,6}, {0,7,6},
00373 {0,6,6}, {0,6,6}, {0,6,6}, {0,6,6},
00374 {4,1,6}, {4,1,6}, {4,1,6}, {4,1,6},
00375 {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6},
00376 {1,5,8}, {11,1,8}, {0,11,8}, {0,10,8},
00377 {13,1,8}, {12,1,8}, {3,2,8}, {1,4,8},
00378 {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5},
00379 {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5},
00380 {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5},
00381 {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5},
00382 {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},
00383 {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},
00384 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00385 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00386 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00387 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00388 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00389 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00390 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00391 {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},
00392 {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},
00393 {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},
00394 {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},
00395 {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},
00396 {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},
00397 {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},
00398 {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},
00399 {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},
00400 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00401 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00402 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00403 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00404 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00405 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00406 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00407 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00408 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00409 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00410 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00411 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00412 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00413 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00414 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00415 {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},
00416 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00417 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00418 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00419 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00420 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00421 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00422 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00423 {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},
00424 {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5},
00425 {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5},
00426 {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5},
00427 {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5},
00428 {9,1,7}, {9,1,7}, {1,3,7}, {1,3,7},
00429 {10,1,7}, {10,1,7}, {0,8,7}, {0,8,7},
00430 {0,9,7}, {0,9,7}, {0,12,8}, {0,13,8},
00431 {2,3,8}, {4,2,8}, {0,14,8}, {0,15,8}
00432 };
00433
00434
00435 const DCTTAB DCT_TAB1[8] =
00436 {
00437 {16,1,10}, {5,2,10}, {0,7,10}, {2,3,10},
00438 {1,4,10}, {15,1,10}, {14,1,10}, {4,2,10}
00439 };
00440
00441
00442 const DCTTAB DCT_TAB1a[8] =
00443 {
00444 {5,2,9}, {5,2,9}, {14,1,9}, {14,1,9},
00445 {2,4,10}, {16,1,10}, {15,1,9}, {15,1,9}
00446 };
00447
00448
00449 const DCTTAB DCT_TAB2[16] =
00450 {
00451 {0,11,12}, {8,2,12}, {4,3,12}, {0,10,12},
00452 {2,4,12}, {7,2,12}, {21,1,12}, {20,1,12},
00453 {0,9,12}, {19,1,12}, {18,1,12}, {1,5,12},
00454 {3,3,12}, {0,8,12}, {6,2,12}, {17,1,12}
00455 };
00456
00457
00458 const DCTTAB DCT_TAB3[16] =
00459 {
00460 {10,2,13}, {9,2,13}, {5,3,13}, {3,4,13},
00461 {2,5,13}, {1,7,13}, {1,6,13}, {0,15,13},
00462 {0,14,13}, {0,13,13}, {0,12,13}, {26,1,13},
00463 {25,1,13}, {24,1,13}, {23,1,13}, {22,1,13}
00464 };
00465
00466
00467 const DCTTAB DCT_TAB4[16] =
00468 {
00469 {0,31,14}, {0,30,14}, {0,29,14}, {0,28,14},
00470 {0,27,14}, {0,26,14}, {0,25,14}, {0,24,14},
00471 {0,23,14}, {0,22,14}, {0,21,14}, {0,20,14},
00472 {0,19,14}, {0,18,14}, {0,17,14}, {0,16,14}
00473 };
00474
00475
00476 const DCTTAB DCT_TAB5[16] =
00477 {
00478 {0,40,15}, {0,39,15}, {0,38,15}, {0,37,15},
00479 {0,36,15}, {0,35,15}, {0,34,15}, {0,33,15},
00480 {0,32,15}, {1,14,15}, {1,13,15}, {1,12,15},
00481 {1,11,15}, {1,10,15}, {1,9,15}, {1,8,15}
00482 };
00483
00484
00485 const DCTTAB DCT_TAB6[16] =
00486 {
00487 {1,18,16}, {1,17,16}, {1,16,16}, {1,15,16},
00488 {6,3,16}, {16,2,16}, {15,2,16}, {14,2,16},
00489 {13,2,16}, {12,2,16}, {11,2,16}, {31,1,16},
00490 {30,1,16}, {29,1,16}, {28,1,16}, {27,1,16}
00491 };
00492
00493
00494 #endif //GETVLC_H