1/* 2 * H26L/H264/AVC/JVT/14496-10/... encoder/decoder 3 * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22/** 23 * @file libavcodec/h264data.h 24 * @brief 25 * H264 / AVC / MPEG4 part10 codec data table 26 * @author Michael Niedermayer <michaelni@gmx.at> 27 */ 28 29#ifndef AVCODEC_H264DATA_H 30#define AVCODEC_H264DATA_H 31 32#include <stdint.h> 33#include "libavutil/rational.h" 34#include "mpegvideo.h" 35#include "h264.h" 36 37 38static const AVRational pixel_aspect[17]={ 39 {0, 1}, 40 {1, 1}, 41 {12, 11}, 42 {10, 11}, 43 {16, 11}, 44 {40, 33}, 45 {24, 11}, 46 {20, 11}, 47 {32, 11}, 48 {80, 33}, 49 {18, 11}, 50 {15, 11}, 51 {64, 33}, 52 {160,99}, 53 {4, 3}, 54 {3, 2}, 55 {2, 1}, 56}; 57 58static const uint8_t golomb_to_pict_type[5]= 59{FF_P_TYPE, FF_B_TYPE, FF_I_TYPE, FF_SP_TYPE, FF_SI_TYPE}; 60 61static const uint8_t chroma_qp[52]={ 62 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, 63 12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, 64 28,29,29,30,31,32,32,33,34,34,35,35,36,36,37,37, 65 37,38,38,38,39,39,39,39 66 67}; 68 69static const uint8_t golomb_to_intra4x4_cbp[48]={ 70 47, 31, 15, 0, 23, 27, 29, 30, 7, 11, 13, 14, 39, 43, 45, 46, 71 16, 3, 5, 10, 12, 19, 21, 26, 28, 35, 37, 42, 44, 1, 2, 4, 72 8, 17, 18, 20, 24, 6, 9, 22, 25, 32, 33, 34, 36, 40, 38, 41 73}; 74 75static const uint8_t golomb_to_inter_cbp[48]={ 76 0, 16, 1, 2, 4, 8, 32, 3, 5, 10, 12, 15, 47, 7, 11, 13, 77 14, 6, 9, 31, 35, 37, 42, 44, 33, 34, 36, 40, 39, 43, 45, 46, 78 17, 18, 20, 24, 19, 21, 26, 28, 23, 27, 29, 30, 22, 25, 38, 41 79}; 80 81static const uint8_t golomb_to_inter_cbp_gray[16]={ 82 0, 1, 2, 4, 8, 3, 5,10,12,15, 7,11,13,14, 6, 9, 83}; 84 85static const uint8_t golomb_to_intra4x4_cbp_gray[16]={ 8615, 0, 7,11,13,14, 3, 5,10,12, 1, 2, 4, 8, 6, 9, 87}; 88 89static const uint8_t chroma_dc_coeff_token_len[4*5]={ 90 2, 0, 0, 0, 91 6, 1, 0, 0, 92 6, 6, 3, 0, 93 6, 7, 7, 6, 94 6, 8, 8, 7, 95}; 96 97static const uint8_t chroma_dc_coeff_token_bits[4*5]={ 98 1, 0, 0, 0, 99 7, 1, 0, 0, 100 4, 6, 1, 0, 101 3, 3, 2, 5, 102 2, 3, 2, 0, 103}; 104 105static const uint8_t coeff_token_len[4][4*17]={ 106{ 107 1, 0, 0, 0, 108 6, 2, 0, 0, 8, 6, 3, 0, 9, 8, 7, 5, 10, 9, 8, 6, 109 11,10, 9, 7, 13,11,10, 8, 13,13,11, 9, 13,13,13,10, 110 14,14,13,11, 14,14,14,13, 15,15,14,14, 15,15,15,14, 111 16,15,15,15, 16,16,16,15, 16,16,16,16, 16,16,16,16, 112}, 113{ 114 2, 0, 0, 0, 115 6, 2, 0, 0, 6, 5, 3, 0, 7, 6, 6, 4, 8, 6, 6, 4, 116 8, 7, 7, 5, 9, 8, 8, 6, 11, 9, 9, 6, 11,11,11, 7, 117 12,11,11, 9, 12,12,12,11, 12,12,12,11, 13,13,13,12, 118 13,13,13,13, 13,14,13,13, 14,14,14,13, 14,14,14,14, 119}, 120{ 121 4, 0, 0, 0, 122 6, 4, 0, 0, 6, 5, 4, 0, 6, 5, 5, 4, 7, 5, 5, 4, 123 7, 5, 5, 4, 7, 6, 6, 4, 7, 6, 6, 4, 8, 7, 7, 5, 124 8, 8, 7, 6, 9, 8, 8, 7, 9, 9, 8, 8, 9, 9, 9, 8, 125 10, 9, 9, 9, 10,10,10,10, 10,10,10,10, 10,10,10,10, 126}, 127{ 128 6, 0, 0, 0, 129 6, 6, 0, 0, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, 130 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 131 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 132 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 133} 134}; 135 136static const uint8_t coeff_token_bits[4][4*17]={ 137{ 138 1, 0, 0, 0, 139 5, 1, 0, 0, 7, 4, 1, 0, 7, 6, 5, 3, 7, 6, 5, 3, 140 7, 6, 5, 4, 15, 6, 5, 4, 11,14, 5, 4, 8,10,13, 4, 141 15,14, 9, 4, 11,10,13,12, 15,14, 9,12, 11,10,13, 8, 142 15, 1, 9,12, 11,14,13, 8, 7,10, 9,12, 4, 6, 5, 8, 143}, 144{ 145 3, 0, 0, 0, 146 11, 2, 0, 0, 7, 7, 3, 0, 7,10, 9, 5, 7, 6, 5, 4, 147 4, 6, 5, 6, 7, 6, 5, 8, 15, 6, 5, 4, 11,14,13, 4, 148 15,10, 9, 4, 11,14,13,12, 8,10, 9, 8, 15,14,13,12, 149 11,10, 9,12, 7,11, 6, 8, 9, 8,10, 1, 7, 6, 5, 4, 150}, 151{ 152 15, 0, 0, 0, 153 15,14, 0, 0, 11,15,13, 0, 8,12,14,12, 15,10,11,11, 154 11, 8, 9,10, 9,14,13, 9, 8,10, 9, 8, 15,14,13,13, 155 11,14,10,12, 15,10,13,12, 11,14, 9,12, 8,10,13, 8, 156 13, 7, 9,12, 9,12,11,10, 5, 8, 7, 6, 1, 4, 3, 2, 157}, 158{ 159 3, 0, 0, 0, 160 0, 1, 0, 0, 4, 5, 6, 0, 8, 9,10,11, 12,13,14,15, 161 16,17,18,19, 20,21,22,23, 24,25,26,27, 28,29,30,31, 162 32,33,34,35, 36,37,38,39, 40,41,42,43, 44,45,46,47, 163 48,49,50,51, 52,53,54,55, 56,57,58,59, 60,61,62,63, 164} 165}; 166 167static const uint8_t total_zeros_len[16][16]= { 168 {1,3,3,4,4,5,5,6,6,7,7,8,8,9,9,9}, 169 {3,3,3,3,3,4,4,4,4,5,5,6,6,6,6}, 170 {4,3,3,3,4,4,3,3,4,5,5,6,5,6}, 171 {5,3,4,4,3,3,3,4,3,4,5,5,5}, 172 {4,4,4,3,3,3,3,3,4,5,4,5}, 173 {6,5,3,3,3,3,3,3,4,3,6}, 174 {6,5,3,3,3,2,3,4,3,6}, 175 {6,4,5,3,2,2,3,3,6}, 176 {6,6,4,2,2,3,2,5}, 177 {5,5,3,2,2,2,4}, 178 {4,4,3,3,1,3}, 179 {4,4,2,1,3}, 180 {3,3,1,2}, 181 {2,2,1}, 182 {1,1}, 183}; 184 185static const uint8_t total_zeros_bits[16][16]= { 186 {1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1}, 187 {7,6,5,4,3,5,4,3,2,3,2,3,2,1,0}, 188 {5,7,6,5,4,3,4,3,2,3,2,1,1,0}, 189 {3,7,5,4,6,5,4,3,3,2,2,1,0}, 190 {5,4,3,7,6,5,4,3,2,1,1,0}, 191 {1,1,7,6,5,4,3,2,1,1,0}, 192 {1,1,5,4,3,3,2,1,1,0}, 193 {1,1,1,3,3,2,2,1,0}, 194 {1,0,1,3,2,1,1,1}, 195 {1,0,1,3,2,1,1}, 196 {0,1,1,2,1,3}, 197 {0,1,1,1,1}, 198 {0,1,1,1}, 199 {0,1,1}, 200 {0,1}, 201}; 202 203static const uint8_t chroma_dc_total_zeros_len[3][4]= { 204 { 1, 2, 3, 3,}, 205 { 1, 2, 2, 0,}, 206 { 1, 1, 0, 0,}, 207}; 208 209static const uint8_t chroma_dc_total_zeros_bits[3][4]= { 210 { 1, 1, 1, 0,}, 211 { 1, 1, 0, 0,}, 212 { 1, 0, 0, 0,}, 213}; 214 215static const uint8_t run_len[7][16]={ 216 {1,1}, 217 {1,2,2}, 218 {2,2,2,2}, 219 {2,2,2,3,3}, 220 {2,2,3,3,3,3}, 221 {2,3,3,3,3,3,3}, 222 {3,3,3,3,3,3,3,4,5,6,7,8,9,10,11}, 223}; 224 225static const uint8_t run_bits[7][16]={ 226 {1,0}, 227 {1,1,0}, 228 {3,2,1,0}, 229 {3,2,1,1,0}, 230 {3,2,3,2,1,0}, 231 {3,0,1,3,2,5,4}, 232 {7,6,5,4,3,2,1,1,1,1,1,1,1,1,1}, 233}; 234 235/* 236o-o o-o 237 / / / 238o-o o-o 239 ,---' 240o-o o-o 241 / / / 242o-o o-o 243*/ 244 245static const uint8_t scan8[16 + 2*4]={ 246 4+1*8, 5+1*8, 4+2*8, 5+2*8, 247 6+1*8, 7+1*8, 6+2*8, 7+2*8, 248 4+3*8, 5+3*8, 4+4*8, 5+4*8, 249 6+3*8, 7+3*8, 6+4*8, 7+4*8, 250 1+1*8, 2+1*8, 251 1+2*8, 2+2*8, 252 1+4*8, 2+4*8, 253 1+5*8, 2+5*8, 254}; 255 256static const uint8_t zigzag_scan[16]={ 257 0+0*4, 1+0*4, 0+1*4, 0+2*4, 258 1+1*4, 2+0*4, 3+0*4, 2+1*4, 259 1+2*4, 0+3*4, 1+3*4, 2+2*4, 260 3+1*4, 3+2*4, 2+3*4, 3+3*4, 261}; 262 263static const uint8_t field_scan[16]={ 264 0+0*4, 0+1*4, 1+0*4, 0+2*4, 265 0+3*4, 1+1*4, 1+2*4, 1+3*4, 266 2+0*4, 2+1*4, 2+2*4, 2+3*4, 267 3+0*4, 3+1*4, 3+2*4, 3+3*4, 268}; 269 270static const uint8_t luma_dc_zigzag_scan[16]={ 271 0*16 + 0*64, 1*16 + 0*64, 2*16 + 0*64, 0*16 + 2*64, 272 3*16 + 0*64, 0*16 + 1*64, 1*16 + 1*64, 2*16 + 1*64, 273 1*16 + 2*64, 2*16 + 2*64, 3*16 + 2*64, 0*16 + 3*64, 274 3*16 + 1*64, 1*16 + 3*64, 2*16 + 3*64, 3*16 + 3*64, 275}; 276 277static const uint8_t luma_dc_field_scan[16]={ 278 0*16 + 0*64, 2*16 + 0*64, 1*16 + 0*64, 0*16 + 2*64, 279 2*16 + 2*64, 3*16 + 0*64, 1*16 + 2*64, 3*16 + 2*64, 280 0*16 + 1*64, 2*16 + 1*64, 0*16 + 3*64, 2*16 + 3*64, 281 1*16 + 1*64, 3*16 + 1*64, 1*16 + 3*64, 3*16 + 3*64, 282}; 283 284static const uint8_t chroma_dc_scan[4]={ 285 (0+0*2)*16, (1+0*2)*16, 286 (0+1*2)*16, (1+1*2)*16, //FIXME 287}; 288 289// zigzag_scan8x8_cavlc[i] = zigzag_scan8x8[(i/4) + 16*(i%4)] 290static const uint8_t zigzag_scan8x8_cavlc[64]={ 291 0+0*8, 1+1*8, 1+2*8, 2+2*8, 292 4+1*8, 0+5*8, 3+3*8, 7+0*8, 293 3+4*8, 1+7*8, 5+3*8, 6+3*8, 294 2+7*8, 6+4*8, 5+6*8, 7+5*8, 295 1+0*8, 2+0*8, 0+3*8, 3+1*8, 296 3+2*8, 0+6*8, 4+2*8, 6+1*8, 297 2+5*8, 2+6*8, 6+2*8, 5+4*8, 298 3+7*8, 7+3*8, 4+7*8, 7+6*8, 299 0+1*8, 3+0*8, 0+4*8, 4+0*8, 300 2+3*8, 1+5*8, 5+1*8, 5+2*8, 301 1+6*8, 3+5*8, 7+1*8, 4+5*8, 302 4+6*8, 7+4*8, 5+7*8, 6+7*8, 303 0+2*8, 2+1*8, 1+3*8, 5+0*8, 304 1+4*8, 2+4*8, 6+0*8, 4+3*8, 305 0+7*8, 4+4*8, 7+2*8, 3+6*8, 306 5+5*8, 6+5*8, 6+6*8, 7+7*8, 307}; 308 309static const uint8_t field_scan8x8[64]={ 310 0+0*8, 0+1*8, 0+2*8, 1+0*8, 311 1+1*8, 0+3*8, 0+4*8, 1+2*8, 312 2+0*8, 1+3*8, 0+5*8, 0+6*8, 313 0+7*8, 1+4*8, 2+1*8, 3+0*8, 314 2+2*8, 1+5*8, 1+6*8, 1+7*8, 315 2+3*8, 3+1*8, 4+0*8, 3+2*8, 316 2+4*8, 2+5*8, 2+6*8, 2+7*8, 317 3+3*8, 4+1*8, 5+0*8, 4+2*8, 318 3+4*8, 3+5*8, 3+6*8, 3+7*8, 319 4+3*8, 5+1*8, 6+0*8, 5+2*8, 320 4+4*8, 4+5*8, 4+6*8, 4+7*8, 321 5+3*8, 6+1*8, 6+2*8, 5+4*8, 322 5+5*8, 5+6*8, 5+7*8, 6+3*8, 323 7+0*8, 7+1*8, 6+4*8, 6+5*8, 324 6+6*8, 6+7*8, 7+2*8, 7+3*8, 325 7+4*8, 7+5*8, 7+6*8, 7+7*8, 326}; 327 328static const uint8_t field_scan8x8_cavlc[64]={ 329 0+0*8, 1+1*8, 2+0*8, 0+7*8, 330 2+2*8, 2+3*8, 2+4*8, 3+3*8, 331 3+4*8, 4+3*8, 4+4*8, 5+3*8, 332 5+5*8, 7+0*8, 6+6*8, 7+4*8, 333 0+1*8, 0+3*8, 1+3*8, 1+4*8, 334 1+5*8, 3+1*8, 2+5*8, 4+1*8, 335 3+5*8, 5+1*8, 4+5*8, 6+1*8, 336 5+6*8, 7+1*8, 6+7*8, 7+5*8, 337 0+2*8, 0+4*8, 0+5*8, 2+1*8, 338 1+6*8, 4+0*8, 2+6*8, 5+0*8, 339 3+6*8, 6+0*8, 4+6*8, 6+2*8, 340 5+7*8, 6+4*8, 7+2*8, 7+6*8, 341 1+0*8, 1+2*8, 0+6*8, 3+0*8, 342 1+7*8, 3+2*8, 2+7*8, 4+2*8, 343 3+7*8, 5+2*8, 4+7*8, 5+4*8, 344 6+3*8, 6+5*8, 7+3*8, 7+7*8, 345}; 346 347typedef struct IMbInfo{ 348 uint16_t type; 349 uint8_t pred_mode; 350 uint8_t cbp; 351} IMbInfo; 352 353static const IMbInfo i_mb_type_info[26]={ 354{MB_TYPE_INTRA4x4 , -1, -1}, 355{MB_TYPE_INTRA16x16, 2, 0}, 356{MB_TYPE_INTRA16x16, 1, 0}, 357{MB_TYPE_INTRA16x16, 0, 0}, 358{MB_TYPE_INTRA16x16, 3, 0}, 359{MB_TYPE_INTRA16x16, 2, 16}, 360{MB_TYPE_INTRA16x16, 1, 16}, 361{MB_TYPE_INTRA16x16, 0, 16}, 362{MB_TYPE_INTRA16x16, 3, 16}, 363{MB_TYPE_INTRA16x16, 2, 32}, 364{MB_TYPE_INTRA16x16, 1, 32}, 365{MB_TYPE_INTRA16x16, 0, 32}, 366{MB_TYPE_INTRA16x16, 3, 32}, 367{MB_TYPE_INTRA16x16, 2, 15+0}, 368{MB_TYPE_INTRA16x16, 1, 15+0}, 369{MB_TYPE_INTRA16x16, 0, 15+0}, 370{MB_TYPE_INTRA16x16, 3, 15+0}, 371{MB_TYPE_INTRA16x16, 2, 15+16}, 372{MB_TYPE_INTRA16x16, 1, 15+16}, 373{MB_TYPE_INTRA16x16, 0, 15+16}, 374{MB_TYPE_INTRA16x16, 3, 15+16}, 375{MB_TYPE_INTRA16x16, 2, 15+32}, 376{MB_TYPE_INTRA16x16, 1, 15+32}, 377{MB_TYPE_INTRA16x16, 0, 15+32}, 378{MB_TYPE_INTRA16x16, 3, 15+32}, 379{MB_TYPE_INTRA_PCM , -1, -1}, 380}; 381 382typedef struct PMbInfo{ 383 uint16_t type; 384 uint8_t partition_count; 385} PMbInfo; 386 387static const PMbInfo p_mb_type_info[5]={ 388{MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, 389{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, 390{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, 391{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 4}, 392{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_REF0, 4}, 393}; 394 395static const PMbInfo p_sub_mb_type_info[4]={ 396{MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, 397{MB_TYPE_16x8 |MB_TYPE_P0L0 , 2}, 398{MB_TYPE_8x16 |MB_TYPE_P0L0 , 2}, 399{MB_TYPE_8x8 |MB_TYPE_P0L0 , 4}, 400}; 401 402static const PMbInfo b_mb_type_info[23]={ 403{MB_TYPE_DIRECT2 , 1, }, 404{MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, 405{MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, 406{MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, 407{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, 408{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, 409{MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 410{MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 411{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, 412{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, 413{MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, 414{MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, 415{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 416{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 417{MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 418{MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 419{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, 420{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, 421{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 422{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 423{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 424{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 425{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, 426}; 427 428static const PMbInfo b_sub_mb_type_info[13]={ 429{MB_TYPE_DIRECT2 , 1, }, 430{MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, 431{MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, 432{MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, 433{MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, 434{MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, 435{MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 436{MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, 437{MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 438{MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, 439{MB_TYPE_8x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 4, }, 440{MB_TYPE_8x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 4, }, 441{MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, 442}; 443 444static const uint8_t default_scaling4[2][16]={ 445{ 6,13,20,28, 446 13,20,28,32, 447 20,28,32,37, 448 28,32,37,42 449},{ 450 10,14,20,24, 451 14,20,24,27, 452 20,24,27,30, 453 24,27,30,34 454}}; 455 456static const uint8_t default_scaling8[2][64]={ 457{ 6,10,13,16,18,23,25,27, 458 10,11,16,18,23,25,27,29, 459 13,16,18,23,25,27,29,31, 460 16,18,23,25,27,29,31,33, 461 18,23,25,27,29,31,33,36, 462 23,25,27,29,31,33,36,38, 463 25,27,29,31,33,36,38,40, 464 27,29,31,33,36,38,40,42 465},{ 466 9,13,15,17,19,21,22,24, 467 13,13,17,19,21,22,24,25, 468 15,17,19,21,22,24,25,27, 469 17,19,21,22,24,25,27,28, 470 19,21,22,24,25,27,28,30, 471 21,22,24,25,27,28,30,32, 472 22,24,25,27,28,30,32,33, 473 24,25,27,28,30,32,33,35 474}}; 475 476static const uint8_t dequant4_coeff_init[6][3]={ 477 {10,13,16}, 478 {11,14,18}, 479 {13,16,20}, 480 {14,18,23}, 481 {16,20,25}, 482 {18,23,29}, 483}; 484 485static const uint8_t dequant8_coeff_init_scan[16] = { 486 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1 487}; 488static const uint8_t dequant8_coeff_init[6][6]={ 489 {20,18,32,19,25,24}, 490 {22,19,35,21,28,26}, 491 {26,23,42,24,33,31}, 492 {28,25,45,26,35,33}, 493 {32,28,51,30,40,38}, 494 {36,32,58,34,46,43}, 495}; 496 497 498/* Deblocking filter (p153) */ 499static const uint8_t alpha_table[52*3] = { 500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505 0, 0, 0, 0, 0, 0, 4, 4, 5, 6, 506 7, 8, 9, 10, 12, 13, 15, 17, 20, 22, 507 25, 28, 32, 36, 40, 45, 50, 56, 63, 71, 508 80, 90,101,113,127,144,162,182,203,226, 509 255,255, 510 255,255,255,255,255,255,255,255,255,255,255,255,255, 511 255,255,255,255,255,255,255,255,255,255,255,255,255, 512 255,255,255,255,255,255,255,255,255,255,255,255,255, 513 255,255,255,255,255,255,255,255,255,255,255,255,255, 514}; 515static const uint8_t beta_table[52*3] = { 516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 522 3, 3, 3, 4, 4, 4, 6, 6, 7, 7, 523 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 524 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 525 18, 18, 526 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 527 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 528 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 529 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 530}; 531static const uint8_t tc0_table[52*3][4] = { 532 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 533 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 534 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 535 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 536 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 537 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 538 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 539 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 540 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 541 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 542 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, 543 {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 0 }, {-1, 0, 0, 1 }, 544 {-1, 0, 0, 1 }, {-1, 0, 0, 1 }, {-1, 0, 0, 1 }, {-1, 0, 1, 1 }, {-1, 0, 1, 1 }, {-1, 1, 1, 1 }, 545 {-1, 1, 1, 1 }, {-1, 1, 1, 1 }, {-1, 1, 1, 1 }, {-1, 1, 1, 2 }, {-1, 1, 1, 2 }, {-1, 1, 1, 2 }, 546 {-1, 1, 1, 2 }, {-1, 1, 2, 3 }, {-1, 1, 2, 3 }, {-1, 2, 2, 3 }, {-1, 2, 2, 4 }, {-1, 2, 3, 4 }, 547 {-1, 2, 3, 4 }, {-1, 3, 3, 5 }, {-1, 3, 4, 6 }, {-1, 3, 4, 6 }, {-1, 4, 5, 7 }, {-1, 4, 5, 8 }, 548 {-1, 4, 6, 9 }, {-1, 5, 7,10 }, {-1, 6, 8,11 }, {-1, 6, 8,13 }, {-1, 7,10,14 }, {-1, 8,11,16 }, 549 {-1, 9,12,18 }, {-1,10,13,20 }, {-1,11,15,23 }, {-1,13,17,25 }, 550 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 551 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 552 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 553 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 554 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 555 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 556 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 557 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 558 {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, {-1,13,17,25 }, 559}; 560 561/* Cabac pre state table */ 562 563static const int8_t cabac_context_init_I[460][2] = 564{ 565 /* 0 - 10 */ 566 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, 567 { 2, 54 }, { 3, 74 }, { -28,127 }, { -23, 104 }, 568 { -6, 53 }, { -1, 54 }, { 7, 51 }, 569 570 /* 11 - 23 unsused for I */ 571 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 572 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 573 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 574 { 0, 0 }, 575 576 /* 24- 39 */ 577 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 578 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 579 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 580 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 581 582 /* 40 - 53 */ 583 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 584 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 585 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 586 { 0, 0 }, { 0, 0 }, 587 588 /* 54 - 59 */ 589 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 590 { 0, 0 }, { 0, 0 }, 591 592 /* 60 - 69 */ 593 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, 594 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, 595 { 13, 41 }, { 3, 62 }, 596 597 /* 70 -> 87 */ 598 { 0, 11 }, { 1, 55 }, { 0, 69 }, { -17, 127 }, 599 { -13, 102 },{ 0, 82 }, { -7, 74 }, { -21, 107 }, 600 { -27, 127 },{ -31, 127 },{ -24, 127 }, { -18, 95 }, 601 { -27, 127 },{ -21, 114 },{ -30, 127 }, { -17, 123 }, 602 { -12, 115 },{ -16, 122 }, 603 604 /* 88 -> 104 */ 605 { -11, 115 },{ -12, 63 }, { -2, 68 }, { -15, 84 }, 606 { -13, 104 },{ -3, 70 }, { -8, 93 }, { -10, 90 }, 607 { -30, 127 },{ -1, 74 }, { -6, 97 }, { -7, 91 }, 608 { -20, 127 },{ -4, 56 }, { -5, 82 }, { -7, 76 }, 609 { -22, 125 }, 610 611 /* 105 -> 135 */ 612 { -7, 93 }, { -11, 87 }, { -3, 77 }, { -5, 71 }, 613 { -4, 63 }, { -4, 68 }, { -12, 84 }, { -7, 62 }, 614 { -7, 65 }, { 8, 61 }, { 5, 56 }, { -2, 66 }, 615 { 1, 64 }, { 0, 61 }, { -2, 78 }, { 1, 50 }, 616 { 7, 52 }, { 10, 35 }, { 0, 44 }, { 11, 38 }, 617 { 1, 45 }, { 0, 46 }, { 5, 44 }, { 31, 17 }, 618 { 1, 51 }, { 7, 50 }, { 28, 19 }, { 16, 33 }, 619 { 14, 62 }, { -13, 108 },{ -15, 100 }, 620 621 /* 136 -> 165 */ 622 { -13, 101 },{ -13, 91 }, { -12, 94 }, { -10, 88 }, 623 { -16, 84 }, { -10, 86 }, { -7, 83 }, { -13, 87 }, 624 { -19, 94 }, { 1, 70 }, { 0, 72 }, { -5, 74 }, 625 { 18, 59 }, { -8, 102 }, { -15, 100 }, { 0, 95 }, 626 { -4, 75 }, { 2, 72 }, { -11, 75 }, { -3, 71 }, 627 { 15, 46 }, { -13, 69 }, { 0, 62 }, { 0, 65 }, 628 { 21, 37 }, { -15, 72 }, { 9, 57 }, { 16, 54 }, 629 { 0, 62 }, { 12, 72 }, 630 631 /* 166 -> 196 */ 632 { 24, 0 }, { 15, 9 }, { 8, 25 }, { 13, 18 }, 633 { 15, 9 }, { 13, 19 }, { 10, 37 }, { 12, 18 }, 634 { 6, 29 }, { 20, 33 }, { 15, 30 }, { 4, 45 }, 635 { 1, 58 }, { 0, 62 }, { 7, 61 }, { 12, 38 }, 636 { 11, 45 }, { 15, 39 }, { 11, 42 }, { 13, 44 }, 637 { 16, 45 }, { 12, 41 }, { 10, 49 }, { 30, 34 }, 638 { 18, 42 }, { 10, 55 }, { 17, 51 }, { 17, 46 }, 639 { 0, 89 }, { 26, -19 }, { 22, -17 }, 640 641 /* 197 -> 226 */ 642 { 26, -17 }, { 30, -25 }, { 28, -20 }, { 33, -23 }, 643 { 37, -27 }, { 33, -23 }, { 40, -28 }, { 38, -17 }, 644 { 33, -11 }, { 40, -15 }, { 41, -6 }, { 38, 1 }, 645 { 41, 17 }, { 30, -6 }, { 27, 3 }, { 26, 22 }, 646 { 37, -16 }, { 35, -4 }, { 38, -8 }, { 38, -3 }, 647 { 37, 3 }, { 38, 5 }, { 42, 0 }, { 35, 16 }, 648 { 39, 22 }, { 14, 48 }, { 27, 37 }, { 21, 60 }, 649 { 12, 68 }, { 2, 97 }, 650 651 /* 227 -> 251 */ 652 { -3, 71 }, { -6, 42 }, { -5, 50 }, { -3, 54 }, 653 { -2, 62 }, { 0, 58 }, { 1, 63 }, { -2, 72 }, 654 { -1, 74 }, { -9, 91 }, { -5, 67 }, { -5, 27 }, 655 { -3, 39 }, { -2, 44 }, { 0, 46 }, { -16, 64 }, 656 { -8, 68 }, { -10, 78 }, { -6, 77 }, { -10, 86 }, 657 { -12, 92 }, { -15, 55 }, { -10, 60 }, { -6, 62 }, 658 { -4, 65 }, 659 660 /* 252 -> 275 */ 661 { -12, 73 }, { -8, 76 }, { -7, 80 }, { -9, 88 }, 662 { -17, 110 },{ -11, 97 }, { -20, 84 }, { -11, 79 }, 663 { -6, 73 }, { -4, 74 }, { -13, 86 }, { -13, 96 }, 664 { -11, 97 }, { -19, 117 },{ -8, 78 }, { -5, 33 }, 665 { -4, 48 }, { -2, 53 }, { -3, 62 }, { -13, 71 }, 666 { -10, 79 }, { -12, 86 }, { -13, 90 }, { -14, 97 }, 667 668 /* 276 a bit special (not used, bypass is used instead) */ 669 { 0, 0 }, 670 671 /* 277 -> 307 */ 672 { -6, 93 }, { -6, 84 }, { -8, 79 }, { 0, 66 }, 673 { -1, 71 }, { 0, 62 }, { -2, 60 }, { -2, 59 }, 674 { -5, 75 }, { -3, 62 }, { -4, 58 }, { -9, 66 }, 675 { -1, 79 }, { 0, 71 }, { 3, 68 }, { 10, 44 }, 676 { -7, 62 }, { 15, 36 }, { 14, 40 }, { 16, 27 }, 677 { 12, 29 }, { 1, 44 }, { 20, 36 }, { 18, 32 }, 678 { 5, 42 }, { 1, 48 }, { 10, 62 }, { 17, 46 }, 679 { 9, 64 }, { -12, 104 },{ -11, 97 }, 680 681 /* 308 -> 337 */ 682 { -16, 96 }, { -7, 88 }, { -8, 85 }, { -7, 85 }, 683 { -9, 85 }, { -13, 88 }, { 4, 66 }, { -3, 77 }, 684 { -3, 76 }, { -6, 76 }, { 10, 58 }, { -1, 76 }, 685 { -1, 83 }, { -7, 99 }, { -14, 95 }, { 2, 95 }, 686 { 0, 76 }, { -5, 74 }, { 0, 70 }, { -11, 75 }, 687 { 1, 68 }, { 0, 65 }, { -14, 73 }, { 3, 62 }, 688 { 4, 62 }, { -1, 68 }, { -13, 75 }, { 11, 55 }, 689 { 5, 64 }, { 12, 70 }, 690 691 /* 338 -> 368 */ 692 { 15, 6 }, { 6, 19 }, { 7, 16 }, { 12, 14 }, 693 { 18, 13 }, { 13, 11 }, { 13, 15 }, { 15, 16 }, 694 { 12, 23 }, { 13, 23 }, { 15, 20 }, { 14, 26 }, 695 { 14, 44 }, { 17, 40 }, { 17, 47 }, { 24, 17 }, 696 { 21, 21 }, { 25, 22 }, { 31, 27 }, { 22, 29 }, 697 { 19, 35 }, { 14, 50 }, { 10, 57 }, { 7, 63 }, 698 { -2, 77 }, { -4, 82 }, { -3, 94 }, { 9, 69 }, 699 { -12, 109 },{ 36, -35 }, { 36, -34 }, 700 701 /* 369 -> 398 */ 702 { 32, -26 }, { 37, -30 }, { 44, -32 }, { 34, -18 }, 703 { 34, -15 }, { 40, -15 }, { 33, -7 }, { 35, -5 }, 704 { 33, 0 }, { 38, 2 }, { 33, 13 }, { 23, 35 }, 705 { 13, 58 }, { 29, -3 }, { 26, 0 }, { 22, 30 }, 706 { 31, -7 }, { 35, -15 }, { 34, -3 }, { 34, 3 }, 707 { 36, -1 }, { 34, 5 }, { 32, 11 }, { 35, 5 }, 708 { 34, 12 }, { 39, 11 }, { 30, 29 }, { 34, 26 }, 709 { 29, 39 }, { 19, 66 }, 710 711 /* 399 -> 435 */ 712 { 31, 21 }, { 31, 31 }, { 25, 50 }, 713 { -17, 120 }, { -20, 112 }, { -18, 114 }, { -11, 85 }, 714 { -15, 92 }, { -14, 89 }, { -26, 71 }, { -15, 81 }, 715 { -14, 80 }, { 0, 68 }, { -14, 70 }, { -24, 56 }, 716 { -23, 68 }, { -24, 50 }, { -11, 74 }, { 23, -13 }, 717 { 26, -13 }, { 40, -15 }, { 49, -14 }, { 44, 3 }, 718 { 45, 6 }, { 44, 34 }, { 33, 54 }, { 19, 82 }, 719 { -3, 75 }, { -1, 23 }, { 1, 34 }, { 1, 43 }, 720 { 0, 54 }, { -2, 55 }, { 0, 61 }, { 1, 64 }, 721 { 0, 68 }, { -9, 92 }, 722 723 /* 436 -> 459 */ 724 { -14, 106 }, { -13, 97 }, { -15, 90 }, { -12, 90 }, 725 { -18, 88 }, { -10, 73 }, { -9, 79 }, { -14, 86 }, 726 { -10, 73 }, { -10, 70 }, { -10, 69 }, { -5, 66 }, 727 { -9, 64 }, { -5, 58 }, { 2, 59 }, { 21, -10 }, 728 { 24, -11 }, { 28, -8 }, { 28, -1 }, { 29, 3 }, 729 { 29, 9 }, { 35, 20 }, { 29, 36 }, { 14, 67 } 730}; 731 732static const int8_t cabac_context_init_PB[3][460][2] = 733{ 734 /* i_cabac_init_idc == 0 */ 735 { 736 /* 0 - 10 */ 737 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, 738 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, 739 { -6, 53 }, { -1, 54 }, { 7, 51 }, 740 741 /* 11 - 23 */ 742 { 23, 33 }, { 23, 2 }, { 21, 0 }, { 1, 9 }, 743 { 0, 49 }, { -37, 118 }, { 5, 57 }, { -13, 78 }, 744 { -11, 65 }, { 1, 62 }, { 12, 49 }, { -4, 73 }, 745 { 17, 50 }, 746 747 /* 24 - 39 */ 748 { 18, 64 }, { 9, 43 }, { 29, 0 }, { 26, 67 }, 749 { 16, 90 }, { 9, 104 }, { -46, 127 }, { -20, 104 }, 750 { 1, 67 }, { -13, 78 }, { -11, 65 }, { 1, 62 }, 751 { -6, 86 }, { -17, 95 }, { -6, 61 }, { 9, 45 }, 752 753 /* 40 - 53 */ 754 { -3, 69 }, { -6, 81 }, { -11, 96 }, { 6, 55 }, 755 { 7, 67 }, { -5, 86 }, { 2, 88 }, { 0, 58 }, 756 { -3, 76 }, { -10, 94 }, { 5, 54 }, { 4, 69 }, 757 { -3, 81 }, { 0, 88 }, 758 759 /* 54 - 59 */ 760 { -7, 67 }, { -5, 74 }, { -4, 74 }, { -5, 80 }, 761 { -7, 72 }, { 1, 58 }, 762 763 /* 60 - 69 */ 764 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, 765 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, 766 { 13, 41 }, { 3, 62 }, 767 768 /* 70 - 87 */ 769 { 0, 45 }, { -4, 78 }, { -3, 96 }, { -27, 126 }, 770 { -28, 98 }, { -25, 101 }, { -23, 67 }, { -28, 82 }, 771 { -20, 94 }, { -16, 83 }, { -22, 110 }, { -21, 91 }, 772 { -18, 102 }, { -13, 93 }, { -29, 127 }, { -7, 92 }, 773 { -5, 89 }, { -7, 96 }, { -13, 108 }, { -3, 46 }, 774 { -1, 65 }, { -1, 57 }, { -9, 93 }, { -3, 74 }, 775 { -9, 92 }, { -8, 87 }, { -23, 126 }, { 5, 54 }, 776 { 6, 60 }, { 6, 59 }, { 6, 69 }, { -1, 48 }, 777 { 0, 68 }, { -4, 69 }, { -8, 88 }, 778 779 /* 105 -> 165 */ 780 { -2, 85 }, { -6, 78 }, { -1, 75 }, { -7, 77 }, 781 { 2, 54 }, { 5, 50 }, { -3, 68 }, { 1, 50 }, 782 { 6, 42 }, { -4, 81 }, { 1, 63 }, { -4, 70 }, 783 { 0, 67 }, { 2, 57 }, { -2, 76 }, { 11, 35 }, 784 { 4, 64 }, { 1, 61 }, { 11, 35 }, { 18, 25 }, 785 { 12, 24 }, { 13, 29 }, { 13, 36 }, { -10, 93 }, 786 { -7, 73 }, { -2, 73 }, { 13, 46 }, { 9, 49 }, 787 { -7, 100 }, { 9, 53 }, { 2, 53 }, { 5, 53 }, 788 { -2, 61 }, { 0, 56 }, { 0, 56 }, { -13, 63 }, 789 { -5, 60 }, { -1, 62 }, { 4, 57 }, { -6, 69 }, 790 { 4, 57 }, { 14, 39 }, { 4, 51 }, { 13, 68 }, 791 { 3, 64 }, { 1, 61 }, { 9, 63 }, { 7, 50 }, 792 { 16, 39 }, { 5, 44 }, { 4, 52 }, { 11, 48 }, 793 { -5, 60 }, { -1, 59 }, { 0, 59 }, { 22, 33 }, 794 { 5, 44 }, { 14, 43 }, { -1, 78 }, { 0, 60 }, 795 { 9, 69 }, 796 797 /* 166 - 226 */ 798 { 11, 28 }, { 2, 40 }, { 3, 44 }, { 0, 49 }, 799 { 0, 46 }, { 2, 44 }, { 2, 51 }, { 0, 47 }, 800 { 4, 39 }, { 2, 62 }, { 6, 46 }, { 0, 54 }, 801 { 3, 54 }, { 2, 58 }, { 4, 63 }, { 6, 51 }, 802 { 6, 57 }, { 7, 53 }, { 6, 52 }, { 6, 55 }, 803 { 11, 45 }, { 14, 36 }, { 8, 53 }, { -1, 82 }, 804 { 7, 55 }, { -3, 78 }, { 15, 46 }, { 22, 31 }, 805 { -1, 84 }, { 25, 7 }, { 30, -7 }, { 28, 3 }, 806 { 28, 4 }, { 32, 0 }, { 34, -1 }, { 30, 6 }, 807 { 30, 6 }, { 32, 9 }, { 31, 19 }, { 26, 27 }, 808 { 26, 30 }, { 37, 20 }, { 28, 34 }, { 17, 70 }, 809 { 1, 67 }, { 5, 59 }, { 9, 67 }, { 16, 30 }, 810 { 18, 32 }, { 18, 35 }, { 22, 29 }, { 24, 31 }, 811 { 23, 38 }, { 18, 43 }, { 20, 41 }, { 11, 63 }, 812 { 9, 59 }, { 9, 64 }, { -1, 94 }, { -2, 89 }, 813 { -9, 108 }, 814 815 /* 227 - 275 */ 816 { -6, 76 }, { -2, 44 }, { 0, 45 }, { 0, 52 }, 817 { -3, 64 }, { -2, 59 }, { -4, 70 }, { -4, 75 }, 818 { -8, 82 }, { -17, 102 }, { -9, 77 }, { 3, 24 }, 819 { 0, 42 }, { 0, 48 }, { 0, 55 }, { -6, 59 }, 820 { -7, 71 }, { -12, 83 }, { -11, 87 }, { -30, 119 }, 821 { 1, 58 }, { -3, 29 }, { -1, 36 }, { 1, 38 }, 822 { 2, 43 }, { -6, 55 }, { 0, 58 }, { 0, 64 }, 823 { -3, 74 }, { -10, 90 }, { 0, 70 }, { -4, 29 }, 824 { 5, 31 }, { 7, 42 }, { 1, 59 }, { -2, 58 }, 825 { -3, 72 }, { -3, 81 }, { -11, 97 }, { 0, 58 }, 826 { 8, 5 }, { 10, 14 }, { 14, 18 }, { 13, 27 }, 827 { 2, 40 }, { 0, 58 }, { -3, 70 }, { -6, 79 }, 828 { -8, 85 }, 829 830 /* 276 a bit special (not used, bypass is used instead) */ 831 { 0, 0 }, 832 833 /* 277 - 337 */ 834 { -13, 106 }, { -16, 106 }, { -10, 87 }, { -21, 114 }, 835 { -18, 110 }, { -14, 98 }, { -22, 110 }, { -21, 106 }, 836 { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 }, 837 { -10, 96 }, { -12, 95 }, { -5, 91 }, { -9, 93 }, 838 { -22, 94 }, { -5, 86 }, { 9, 67 }, { -4, 80 }, 839 { -10, 85 }, { -1, 70 }, { 7, 60 }, { 9, 58 }, 840 { 5, 61 }, { 12, 50 }, { 15, 50 }, { 18, 49 }, 841 { 17, 54 }, { 10, 41 }, { 7, 46 }, { -1, 51 }, 842 { 7, 49 }, { 8, 52 }, { 9, 41 }, { 6, 47 }, 843 { 2, 55 }, { 13, 41 }, { 10, 44 }, { 6, 50 }, 844 { 5, 53 }, { 13, 49 }, { 4, 63 }, { 6, 64 }, 845 { -2, 69 }, { -2, 59 }, { 6, 70 }, { 10, 44 }, 846 { 9, 31 }, { 12, 43 }, { 3, 53 }, { 14, 34 }, 847 { 10, 38 }, { -3, 52 }, { 13, 40 }, { 17, 32 }, 848 { 7, 44 }, { 7, 38 }, { 13, 50 }, { 10, 57 }, 849 { 26, 43 }, 850 851 /* 338 - 398 */ 852 { 14, 11 }, { 11, 14 }, { 9, 11 }, { 18, 11 }, 853 { 21, 9 }, { 23, -2 }, { 32, -15 }, { 32, -15 }, 854 { 34, -21 }, { 39, -23 }, { 42, -33 }, { 41, -31 }, 855 { 46, -28 }, { 38, -12 }, { 21, 29 }, { 45, -24 }, 856 { 53, -45 }, { 48, -26 }, { 65, -43 }, { 43, -19 }, 857 { 39, -10 }, { 30, 9 }, { 18, 26 }, { 20, 27 }, 858 { 0, 57 }, { -14, 82 }, { -5, 75 }, { -19, 97 }, 859 { -35, 125 }, { 27, 0 }, { 28, 0 }, { 31, -4 }, 860 { 27, 6 }, { 34, 8 }, { 30, 10 }, { 24, 22 }, 861 { 33, 19 }, { 22, 32 }, { 26, 31 }, { 21, 41 }, 862 { 26, 44 }, { 23, 47 }, { 16, 65 }, { 14, 71 }, 863 { 8, 60 }, { 6, 63 }, { 17, 65 }, { 21, 24 }, 864 { 23, 20 }, { 26, 23 }, { 27, 32 }, { 28, 23 }, 865 { 28, 24 }, { 23, 40 }, { 24, 32 }, { 28, 29 }, 866 { 23, 42 }, { 19, 57 }, { 22, 53 }, { 22, 61 }, 867 { 11, 86 }, 868 869 /* 399 - 435 */ 870 { 12, 40 }, { 11, 51 }, { 14, 59 }, 871 { -4, 79 }, { -7, 71 }, { -5, 69 }, { -9, 70 }, 872 { -8, 66 }, { -10, 68 }, { -19, 73 }, { -12, 69 }, 873 { -16, 70 }, { -15, 67 }, { -20, 62 }, { -19, 70 }, 874 { -16, 66 }, { -22, 65 }, { -20, 63 }, { 9, -2 }, 875 { 26, -9 }, { 33, -9 }, { 39, -7 }, { 41, -2 }, 876 { 45, 3 }, { 49, 9 }, { 45, 27 }, { 36, 59 }, 877 { -6, 66 }, { -7, 35 }, { -7, 42 }, { -8, 45 }, 878 { -5, 48 }, { -12, 56 }, { -6, 60 }, { -5, 62 }, 879 { -8, 66 }, { -8, 76 }, 880 881 /* 436 - 459 */ 882 { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, 883 { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, 884 { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, 885 { -14, 66 }, { 0, 59 }, { 2, 59 }, { 21, -13 }, 886 { 33, -14 }, { 39, -7 }, { 46, -2 }, { 51, 2 }, 887 { 60, 6 }, { 61, 17 }, { 55, 34 }, { 42, 62 }, 888 }, 889 890 /* i_cabac_init_idc == 1 */ 891 { 892 /* 0 - 10 */ 893 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, 894 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, 895 { -6, 53 }, { -1, 54 }, { 7, 51 }, 896 897 /* 11 - 23 */ 898 { 22, 25 }, { 34, 0 }, { 16, 0 }, { -2, 9 }, 899 { 4, 41 }, { -29, 118 }, { 2, 65 }, { -6, 71 }, 900 { -13, 79 }, { 5, 52 }, { 9, 50 }, { -3, 70 }, 901 { 10, 54 }, 902 903 /* 24 - 39 */ 904 { 26, 34 }, { 19, 22 }, { 40, 0 }, { 57, 2 }, 905 { 41, 36 }, { 26, 69 }, { -45, 127 }, { -15, 101 }, 906 { -4, 76 }, { -6, 71 }, { -13, 79 }, { 5, 52 }, 907 { 6, 69 }, { -13, 90 }, { 0, 52 }, { 8, 43 }, 908 909 /* 40 - 53 */ 910 { -2, 69 },{ -5, 82 },{ -10, 96 },{ 2, 59 }, 911 { 2, 75 },{ -3, 87 },{ -3, 100 },{ 1, 56 }, 912 { -3, 74 },{ -6, 85 },{ 0, 59 },{ -3, 81 }, 913 { -7, 86 },{ -5, 95 }, 914 915 /* 54 - 59 */ 916 { -1, 66 },{ -1, 77 },{ 1, 70 },{ -2, 86 }, 917 { -5, 72 },{ 0, 61 }, 918 919 /* 60 - 69 */ 920 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, 921 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, 922 { 13, 41 }, { 3, 62 }, 923 924 /* 70 - 104 */ 925 { 13, 15 }, { 7, 51 }, { 2, 80 }, { -39, 127 }, 926 { -18, 91 }, { -17, 96 }, { -26, 81 }, { -35, 98 }, 927 { -24, 102 }, { -23, 97 }, { -27, 119 }, { -24, 99 }, 928 { -21, 110 }, { -18, 102 }, { -36, 127 }, { 0, 80 }, 929 { -5, 89 }, { -7, 94 }, { -4, 92 }, { 0, 39 }, 930 { 0, 65 }, { -15, 84 }, { -35, 127 }, { -2, 73 }, 931 { -12, 104 }, { -9, 91 }, { -31, 127 }, { 3, 55 }, 932 { 7, 56 }, { 7, 55 }, { 8, 61 }, { -3, 53 }, 933 { 0, 68 }, { -7, 74 }, { -9, 88 }, 934 935 /* 105 -> 165 */ 936 { -13, 103 }, { -13, 91 }, { -9, 89 }, { -14, 92 }, 937 { -8, 76 }, { -12, 87 }, { -23, 110 }, { -24, 105 }, 938 { -10, 78 }, { -20, 112 }, { -17, 99 }, { -78, 127 }, 939 { -70, 127 }, { -50, 127 }, { -46, 127 }, { -4, 66 }, 940 { -5, 78 }, { -4, 71 }, { -8, 72 }, { 2, 59 }, 941 { -1, 55 }, { -7, 70 }, { -6, 75 }, { -8, 89 }, 942 { -34, 119 }, { -3, 75 }, { 32, 20 }, { 30, 22 }, 943 { -44, 127 }, { 0, 54 }, { -5, 61 }, { 0, 58 }, 944 { -1, 60 }, { -3, 61 }, { -8, 67 }, { -25, 84 }, 945 { -14, 74 }, { -5, 65 }, { 5, 52 }, { 2, 57 }, 946 { 0, 61 }, { -9, 69 }, { -11, 70 }, { 18, 55 }, 947 { -4, 71 }, { 0, 58 }, { 7, 61 }, { 9, 41 }, 948 { 18, 25 }, { 9, 32 }, { 5, 43 }, { 9, 47 }, 949 { 0, 44 }, { 0, 51 }, { 2, 46 }, { 19, 38 }, 950 { -4, 66 }, { 15, 38 }, { 12, 42 }, { 9, 34 }, 951 { 0, 89 }, 952 953 /* 166 - 226 */ 954 { 4, 45 }, { 10, 28 }, { 10, 31 }, { 33, -11 }, 955 { 52, -43 }, { 18, 15 }, { 28, 0 }, { 35, -22 }, 956 { 38, -25 }, { 34, 0 }, { 39, -18 }, { 32, -12 }, 957 { 102, -94 }, { 0, 0 }, { 56, -15 }, { 33, -4 }, 958 { 29, 10 }, { 37, -5 }, { 51, -29 }, { 39, -9 }, 959 { 52, -34 }, { 69, -58 }, { 67, -63 }, { 44, -5 }, 960 { 32, 7 }, { 55, -29 }, { 32, 1 }, { 0, 0 }, 961 { 27, 36 }, { 33, -25 }, { 34, -30 }, { 36, -28 }, 962 { 38, -28 }, { 38, -27 }, { 34, -18 }, { 35, -16 }, 963 { 34, -14 }, { 32, -8 }, { 37, -6 }, { 35, 0 }, 964 { 30, 10 }, { 28, 18 }, { 26, 25 }, { 29, 41 }, 965 { 0, 75 }, { 2, 72 }, { 8, 77 }, { 14, 35 }, 966 { 18, 31 }, { 17, 35 }, { 21, 30 }, { 17, 45 }, 967 { 20, 42 }, { 18, 45 }, { 27, 26 }, { 16, 54 }, 968 { 7, 66 }, { 16, 56 }, { 11, 73 }, { 10, 67 }, 969 { -10, 116 }, 970 971 /* 227 - 275 */ 972 { -23, 112 }, { -15, 71 }, { -7, 61 }, { 0, 53 }, 973 { -5, 66 }, { -11, 77 }, { -9, 80 }, { -9, 84 }, 974 { -10, 87 }, { -34, 127 }, { -21, 101 }, { -3, 39 }, 975 { -5, 53 }, { -7, 61 }, { -11, 75 }, { -15, 77 }, 976 { -17, 91 }, { -25, 107 }, { -25, 111 }, { -28, 122 }, 977 { -11, 76 }, { -10, 44 }, { -10, 52 }, { -10, 57 }, 978 { -9, 58 }, { -16, 72 }, { -7, 69 }, { -4, 69 }, 979 { -5, 74 }, { -9, 86 }, { 2, 66 }, { -9, 34 }, 980 { 1, 32 }, { 11, 31 }, { 5, 52 }, { -2, 55 }, 981 { -2, 67 }, { 0, 73 }, { -8, 89 }, { 3, 52 }, 982 { 7, 4 }, { 10, 8 }, { 17, 8 }, { 16, 19 }, 983 { 3, 37 }, { -1, 61 }, { -5, 73 }, { -1, 70 }, 984 { -4, 78 }, 985 986 /* 276 a bit special (not used, bypass is used instead) */ 987 { 0, 0 }, 988 989 /* 277 - 337 */ 990 { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 }, 991 { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 }, 992 { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 }, 993 { -10, 95 }, { -14, 100 }, { -8, 95 }, { -17, 111 }, 994 { -28, 114 }, { -6, 89 }, { -2, 80 }, { -4, 82 }, 995 { -9, 85 }, { -8, 81 }, { -1, 72 }, { 5, 64 }, 996 { 1, 67 }, { 9, 56 }, { 0, 69 }, { 1, 69 }, 997 { 7, 69 }, { -7, 69 }, { -6, 67 }, { -16, 77 }, 998 { -2, 64 }, { 2, 61 }, { -6, 67 }, { -3, 64 }, 999 { 2, 57 }, { -3, 65 }, { -3, 66 }, { 0, 62 }, 1000 { 9, 51 }, { -1, 66 }, { -2, 71 }, { -2, 75 }, 1001 { -1, 70 }, { -9, 72 }, { 14, 60 }, { 16, 37 }, 1002 { 0, 47 }, { 18, 35 }, { 11, 37 }, { 12, 41 }, 1003 { 10, 41 }, { 2, 48 }, { 12, 41 }, { 13, 41 }, 1004 { 0, 59 }, { 3, 50 }, { 19, 40 }, { 3, 66 }, 1005 { 18, 50 }, 1006 1007 /* 338 - 398 */ 1008 { 19, -6 }, { 18, -6 }, { 14, 0 }, { 26, -12 }, 1009 { 31, -16 }, { 33, -25 }, { 33, -22 }, { 37, -28 }, 1010 { 39, -30 }, { 42, -30 }, { 47, -42 }, { 45, -36 }, 1011 { 49, -34 }, { 41, -17 }, { 32, 9 }, { 69, -71 }, 1012 { 63, -63 }, { 66, -64 }, { 77, -74 }, { 54, -39 }, 1013 { 52, -35 }, { 41, -10 }, { 36, 0 }, { 40, -1 }, 1014 { 30, 14 }, { 28, 26 }, { 23, 37 }, { 12, 55 }, 1015 { 11, 65 }, { 37, -33 }, { 39, -36 }, { 40, -37 }, 1016 { 38, -30 }, { 46, -33 }, { 42, -30 }, { 40, -24 }, 1017 { 49, -29 }, { 38, -12 }, { 40, -10 }, { 38, -3 }, 1018 { 46, -5 }, { 31, 20 }, { 29, 30 }, { 25, 44 }, 1019 { 12, 48 }, { 11, 49 }, { 26, 45 }, { 22, 22 }, 1020 { 23, 22 }, { 27, 21 }, { 33, 20 }, { 26, 28 }, 1021 { 30, 24 }, { 27, 34 }, { 18, 42 }, { 25, 39 }, 1022 { 18, 50 }, { 12, 70 }, { 21, 54 }, { 14, 71 }, 1023 { 11, 83 }, 1024 1025 /* 399 - 435 */ 1026 { 25, 32 }, { 21, 49 }, { 21, 54 }, 1027 { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, 1028 { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, 1029 { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, 1030 { -14, 66 }, { 0, 59 }, { 2, 59 }, { 17, -10 }, 1031 { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, 1032 { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, 1033 { -5, 71 }, { 0, 24 }, { -1, 36 }, { -2, 42 }, 1034 { -2, 52 }, { -9, 57 }, { -6, 63 }, { -4, 65 }, 1035 { -4, 67 }, { -7, 82 }, 1036 1037 /* 436 - 459 */ 1038 { -3, 81 }, { -3, 76 }, { -7, 72 }, { -6, 78 }, 1039 { -12, 72 }, { -14, 68 }, { -3, 70 }, { -6, 76 }, 1040 { -5, 66 }, { -5, 62 }, { 0, 57 }, { -4, 61 }, 1041 { -9, 60 }, { 1, 54 }, { 2, 58 }, { 17, -10 }, 1042 { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, 1043 { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, 1044 }, 1045 1046 /* i_cabac_init_idc == 2 */ 1047 { 1048 /* 0 - 10 */ 1049 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, 1050 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, 1051 { -6, 53 }, { -1, 54 }, { 7, 51 }, 1052 1053 /* 11 - 23 */ 1054 { 29, 16 }, { 25, 0 }, { 14, 0 }, { -10, 51 }, 1055 { -3, 62 }, { -27, 99 }, { 26, 16 }, { -4, 85 }, 1056 { -24, 102 }, { 5, 57 }, { 6, 57 }, { -17, 73 }, 1057 { 14, 57 }, 1058 1059 /* 24 - 39 */ 1060 { 20, 40 }, { 20, 10 }, { 29, 0 }, { 54, 0 }, 1061 { 37, 42 }, { 12, 97 }, { -32, 127 }, { -22, 117 }, 1062 { -2, 74 }, { -4, 85 }, { -24, 102 }, { 5, 57 }, 1063 { -6, 93 }, { -14, 88 }, { -6, 44 }, { 4, 55 }, 1064 1065 /* 40 - 53 */ 1066 { -11, 89 },{ -15, 103 },{ -21, 116 },{ 19, 57 }, 1067 { 20, 58 },{ 4, 84 },{ 6, 96 },{ 1, 63 }, 1068 { -5, 85 },{ -13, 106 },{ 5, 63 },{ 6, 75 }, 1069 { -3, 90 },{ -1, 101 }, 1070 1071 /* 54 - 59 */ 1072 { 3, 55 },{ -4, 79 },{ -2, 75 },{ -12, 97 }, 1073 { -7, 50 },{ 1, 60 }, 1074 1075 /* 60 - 69 */ 1076 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, 1077 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, 1078 { 13, 41 }, { 3, 62 }, 1079 1080 /* 70 - 104 */ 1081 { 7, 34 }, { -9, 88 }, { -20, 127 }, { -36, 127 }, 1082 { -17, 91 }, { -14, 95 }, { -25, 84 }, { -25, 86 }, 1083 { -12, 89 }, { -17, 91 }, { -31, 127 }, { -14, 76 }, 1084 { -18, 103 }, { -13, 90 }, { -37, 127 }, { 11, 80 }, 1085 { 5, 76 }, { 2, 84 }, { 5, 78 }, { -6, 55 }, 1086 { 4, 61 }, { -14, 83 }, { -37, 127 }, { -5, 79 }, 1087 { -11, 104 }, { -11, 91 }, { -30, 127 }, { 0, 65 }, 1088 { -2, 79 }, { 0, 72 }, { -4, 92 }, { -6, 56 }, 1089 { 3, 68 }, { -8, 71 }, { -13, 98 }, 1090 1091 /* 105 -> 165 */ 1092 { -4, 86 }, { -12, 88 }, { -5, 82 }, { -3, 72 }, 1093 { -4, 67 }, { -8, 72 }, { -16, 89 }, { -9, 69 }, 1094 { -1, 59 }, { 5, 66 }, { 4, 57 }, { -4, 71 }, 1095 { -2, 71 }, { 2, 58 }, { -1, 74 }, { -4, 44 }, 1096 { -1, 69 }, { 0, 62 }, { -7, 51 }, { -4, 47 }, 1097 { -6, 42 }, { -3, 41 }, { -6, 53 }, { 8, 76 }, 1098 { -9, 78 }, { -11, 83 }, { 9, 52 }, { 0, 67 }, 1099 { -5, 90 }, { 1, 67 }, { -15, 72 }, { -5, 75 }, 1100 { -8, 80 }, { -21, 83 }, { -21, 64 }, { -13, 31 }, 1101 { -25, 64 }, { -29, 94 }, { 9, 75 }, { 17, 63 }, 1102 { -8, 74 }, { -5, 35 }, { -2, 27 }, { 13, 91 }, 1103 { 3, 65 }, { -7, 69 }, { 8, 77 }, { -10, 66 }, 1104 { 3, 62 }, { -3, 68 }, { -20, 81 }, { 0, 30 }, 1105 { 1, 7 }, { -3, 23 }, { -21, 74 }, { 16, 66 }, 1106 { -23, 124 }, { 17, 37 }, { 44, -18 }, { 50, -34 }, 1107 { -22, 127 }, 1108 1109 /* 166 - 226 */ 1110 { 4, 39 }, { 0, 42 }, { 7, 34 }, { 11, 29 }, 1111 { 8, 31 }, { 6, 37 }, { 7, 42 }, { 3, 40 }, 1112 { 8, 33 }, { 13, 43 }, { 13, 36 }, { 4, 47 }, 1113 { 3, 55 }, { 2, 58 }, { 6, 60 }, { 8, 44 }, 1114 { 11, 44 }, { 14, 42 }, { 7, 48 }, { 4, 56 }, 1115 { 4, 52 }, { 13, 37 }, { 9, 49 }, { 19, 58 }, 1116 { 10, 48 }, { 12, 45 }, { 0, 69 }, { 20, 33 }, 1117 { 8, 63 }, { 35, -18 }, { 33, -25 }, { 28, -3 }, 1118 { 24, 10 }, { 27, 0 }, { 34, -14 }, { 52, -44 }, 1119 { 39, -24 }, { 19, 17 }, { 31, 25 }, { 36, 29 }, 1120 { 24, 33 }, { 34, 15 }, { 30, 20 }, { 22, 73 }, 1121 { 20, 34 }, { 19, 31 }, { 27, 44 }, { 19, 16 }, 1122 { 15, 36 }, { 15, 36 }, { 21, 28 }, { 25, 21 }, 1123 { 30, 20 }, { 31, 12 }, { 27, 16 }, { 24, 42 }, 1124 { 0, 93 }, { 14, 56 }, { 15, 57 }, { 26, 38 }, 1125 { -24, 127 }, 1126 1127 /* 227 - 275 */ 1128 { -24, 115 }, { -22, 82 }, { -9, 62 }, { 0, 53 }, 1129 { 0, 59 }, { -14, 85 }, { -13, 89 }, { -13, 94 }, 1130 { -11, 92 }, { -29, 127 }, { -21, 100 }, { -14, 57 }, 1131 { -12, 67 }, { -11, 71 }, { -10, 77 }, { -21, 85 }, 1132 { -16, 88 }, { -23, 104 }, { -15, 98 }, { -37, 127 }, 1133 { -10, 82 }, { -8, 48 }, { -8, 61 }, { -8, 66 }, 1134 { -7, 70 }, { -14, 75 }, { -10, 79 }, { -9, 83 }, 1135 { -12, 92 }, { -18, 108 }, { -4, 79 }, { -22, 69 }, 1136 { -16, 75 }, { -2, 58 }, { 1, 58 }, { -13, 78 }, 1137 { -9, 83 }, { -4, 81 }, { -13, 99 }, { -13, 81 }, 1138 { -6, 38 }, { -13, 62 }, { -6, 58 }, { -2, 59 }, 1139 { -16, 73 }, { -10, 76 }, { -13, 86 }, { -9, 83 }, 1140 { -10, 87 }, 1141 1142 /* 276 a bit special (not used, bypass is used instead) */ 1143 { 0, 0 }, 1144 1145 /* 277 - 337 */ 1146 { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 }, 1147 { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 }, 1148 { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 }, 1149 { -10, 94 }, { -15, 102 }, { -10, 99 }, { -13, 106 }, 1150 { -50, 127 }, { -5, 92 }, { 17, 57 }, { -5, 86 }, 1151 { -13, 94 }, { -12, 91 }, { -2, 77 }, { 0, 71 }, 1152 { -1, 73 }, { 4, 64 }, { -7, 81 }, { 5, 64 }, 1153 { 15, 57 }, { 1, 67 }, { 0, 68 }, { -10, 67 }, 1154 { 1, 68 }, { 0, 77 }, { 2, 64 }, { 0, 68 }, 1155 { -5, 78 }, { 7, 55 }, { 5, 59 }, { 2, 65 }, 1156 { 14, 54 }, { 15, 44 }, { 5, 60 }, { 2, 70 }, 1157 { -2, 76 }, { -18, 86 }, { 12, 70 }, { 5, 64 }, 1158 { -12, 70 }, { 11, 55 }, { 5, 56 }, { 0, 69 }, 1159 { 2, 65 }, { -6, 74 }, { 5, 54 }, { 7, 54 }, 1160 { -6, 76 }, { -11, 82 }, { -2, 77 }, { -2, 77 }, 1161 { 25, 42 }, 1162 1163 /* 338 - 398 */ 1164 { 17, -13 }, { 16, -9 }, { 17, -12 }, { 27, -21 }, 1165 { 37, -30 }, { 41, -40 }, { 42, -41 }, { 48, -47 }, 1166 { 39, -32 }, { 46, -40 }, { 52, -51 }, { 46, -41 }, 1167 { 52, -39 }, { 43, -19 }, { 32, 11 }, { 61, -55 }, 1168 { 56, -46 }, { 62, -50 }, { 81, -67 }, { 45, -20 }, 1169 { 35, -2 }, { 28, 15 }, { 34, 1 }, { 39, 1 }, 1170 { 30, 17 }, { 20, 38 }, { 18, 45 }, { 15, 54 }, 1171 { 0, 79 }, { 36, -16 }, { 37, -14 }, { 37, -17 }, 1172 { 32, 1 }, { 34, 15 }, { 29, 15 }, { 24, 25 }, 1173 { 34, 22 }, { 31, 16 }, { 35, 18 }, { 31, 28 }, 1174 { 33, 41 }, { 36, 28 }, { 27, 47 }, { 21, 62 }, 1175 { 18, 31 }, { 19, 26 }, { 36, 24 }, { 24, 23 }, 1176 { 27, 16 }, { 24, 30 }, { 31, 29 }, { 22, 41 }, 1177 { 22, 42 }, { 16, 60 }, { 15, 52 }, { 14, 60 }, 1178 { 3, 78 }, { -16, 123 }, { 21, 53 }, { 22, 56 }, 1179 { 25, 61 }, 1180 1181 /* 399 - 435 */ 1182 { 21, 33 }, { 19, 50 }, { 17, 61 }, 1183 { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, 1184 { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, 1185 { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, 1186 { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, 1187 { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, 1188 { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, 1189 { -9, 71 }, { -7, 37 }, { -8, 44 }, { -11, 49 }, 1190 { -10, 56 }, { -12, 59 }, { -8, 63 }, { -9, 67 }, 1191 { -6, 68 }, { -10, 79 }, 1192 1193 /* 436 - 459 */ 1194 { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, 1195 { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, 1196 { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, 1197 { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, 1198 { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, 1199 { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, 1200 } 1201}; 1202 1203static const uint8_t sei_num_clock_ts_table[9]={ 1204 1, 1, 1, 2, 2, 3, 3, 2, 3 1205}; 1206 1207#endif /* AVCODEC_H264DATA_H */ 1208