Mercurial > audlegacy-plugins
comparison src/ffmpeg/libavcodec/h264data.h @ 808:e8776388b02a trunk
[svn] - add ffmpeg
| author | nenolod |
|---|---|
| date | Mon, 12 Mar 2007 11:18:54 -0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 807:0f9c8d4d3ac4 | 808:e8776388b02a |
|---|---|
| 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 /** | |
| 24 * @file h264data.h | |
| 25 * @brief | |
| 26 * H264 / AVC / MPEG4 part10 codec data table | |
| 27 * @author Michael Niedermayer <michaelni@gmx.at> | |
| 28 */ | |
| 29 | |
| 30 #define VERT_PRED 0 | |
| 31 #define HOR_PRED 1 | |
| 32 #define DC_PRED 2 | |
| 33 #define DIAG_DOWN_LEFT_PRED 3 | |
| 34 #define DIAG_DOWN_RIGHT_PRED 4 | |
| 35 #define VERT_RIGHT_PRED 5 | |
| 36 #define HOR_DOWN_PRED 6 | |
| 37 #define VERT_LEFT_PRED 7 | |
| 38 #define HOR_UP_PRED 8 | |
| 39 | |
| 40 #define LEFT_DC_PRED 9 | |
| 41 #define TOP_DC_PRED 10 | |
| 42 #define DC_128_PRED 11 | |
| 43 | |
| 44 | |
| 45 #define DC_PRED8x8 0 | |
| 46 #define HOR_PRED8x8 1 | |
| 47 #define VERT_PRED8x8 2 | |
| 48 #define PLANE_PRED8x8 3 | |
| 49 | |
| 50 #define LEFT_DC_PRED8x8 4 | |
| 51 #define TOP_DC_PRED8x8 5 | |
| 52 #define DC_128_PRED8x8 6 | |
| 53 | |
| 54 #define EXTENDED_SAR 255 | |
| 55 | |
| 56 static const AVRational pixel_aspect[14]={ | |
| 57 {0, 1}, | |
| 58 {1, 1}, | |
| 59 {12, 11}, | |
| 60 {10, 11}, | |
| 61 {16, 11}, | |
| 62 {40, 33}, | |
| 63 {24, 11}, | |
| 64 {20, 11}, | |
| 65 {32, 11}, | |
| 66 {80, 33}, | |
| 67 {18, 11}, | |
| 68 {15, 11}, | |
| 69 {64, 33}, | |
| 70 {160,99}, | |
| 71 }; | |
| 72 | |
| 73 static const uint8_t golomb_to_pict_type[5]= | |
| 74 {P_TYPE, B_TYPE, I_TYPE, SP_TYPE, SI_TYPE}; | |
| 75 | |
| 76 static const uint8_t pict_type_to_golomb[7]= | |
| 77 {-1, 2, 0, 1, -1, 4, 3}; | |
| 78 | |
| 79 static const uint8_t chroma_qp[52]={ | |
| 80 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, | |
| 81 12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, | |
| 82 28,29,29,30,31,32,32,33,34,34,35,35,36,36,37,37, | |
| 83 37,38,38,38,39,39,39,39 | |
| 84 | |
| 85 }; | |
| 86 | |
| 87 static const uint8_t golomb_to_intra4x4_cbp[48]={ | |
| 88 47, 31, 15, 0, 23, 27, 29, 30, 7, 11, 13, 14, 39, 43, 45, 46, | |
| 89 16, 3, 5, 10, 12, 19, 21, 26, 28, 35, 37, 42, 44, 1, 2, 4, | |
| 90 8, 17, 18, 20, 24, 6, 9, 22, 25, 32, 33, 34, 36, 40, 38, 41 | |
| 91 }; | |
| 92 | |
| 93 static const uint8_t golomb_to_inter_cbp[48]={ | |
| 94 0, 16, 1, 2, 4, 8, 32, 3, 5, 10, 12, 15, 47, 7, 11, 13, | |
| 95 14, 6, 9, 31, 35, 37, 42, 44, 33, 34, 36, 40, 39, 43, 45, 46, | |
| 96 17, 18, 20, 24, 19, 21, 26, 28, 23, 27, 29, 30, 22, 25, 38, 41 | |
| 97 }; | |
| 98 | |
| 99 static const uint8_t intra4x4_cbp_to_golomb[48]={ | |
| 100 3, 29, 30, 17, 31, 18, 37, 8, 32, 38, 19, 9, 20, 10, 11, 2, | |
| 101 16, 33, 34, 21, 35, 22, 39, 4, 36, 40, 23, 5, 24, 6, 7, 1, | |
| 102 41, 42, 43, 25, 44, 26, 46, 12, 45, 47, 27, 13, 28, 14, 15, 0 | |
| 103 }; | |
| 104 | |
| 105 static const uint8_t inter_cbp_to_golomb[48]={ | |
| 106 0, 2, 3, 7, 4, 8, 17, 13, 5, 18, 9, 14, 10, 15, 16, 11, | |
| 107 1, 32, 33, 36, 34, 37, 44, 40, 35, 45, 38, 41, 39, 42, 43, 19, | |
| 108 6, 24, 25, 20, 26, 21, 46, 28, 27, 47, 22, 29, 23, 30, 31, 12 | |
| 109 }; | |
| 110 | |
| 111 static const uint8_t chroma_dc_coeff_token_len[4*5]={ | |
| 112 2, 0, 0, 0, | |
| 113 6, 1, 0, 0, | |
| 114 6, 6, 3, 0, | |
| 115 6, 7, 7, 6, | |
| 116 6, 8, 8, 7, | |
| 117 }; | |
| 118 | |
| 119 static const uint8_t chroma_dc_coeff_token_bits[4*5]={ | |
| 120 1, 0, 0, 0, | |
| 121 7, 1, 0, 0, | |
| 122 4, 6, 1, 0, | |
| 123 3, 3, 2, 5, | |
| 124 2, 3, 2, 0, | |
| 125 }; | |
| 126 | |
| 127 static const uint8_t coeff_token_len[4][4*17]={ | |
| 128 { | |
| 129 1, 0, 0, 0, | |
| 130 6, 2, 0, 0, 8, 6, 3, 0, 9, 8, 7, 5, 10, 9, 8, 6, | |
| 131 11,10, 9, 7, 13,11,10, 8, 13,13,11, 9, 13,13,13,10, | |
| 132 14,14,13,11, 14,14,14,13, 15,15,14,14, 15,15,15,14, | |
| 133 16,15,15,15, 16,16,16,15, 16,16,16,16, 16,16,16,16, | |
| 134 }, | |
| 135 { | |
| 136 2, 0, 0, 0, | |
| 137 6, 2, 0, 0, 6, 5, 3, 0, 7, 6, 6, 4, 8, 6, 6, 4, | |
| 138 8, 7, 7, 5, 9, 8, 8, 6, 11, 9, 9, 6, 11,11,11, 7, | |
| 139 12,11,11, 9, 12,12,12,11, 12,12,12,11, 13,13,13,12, | |
| 140 13,13,13,13, 13,14,13,13, 14,14,14,13, 14,14,14,14, | |
| 141 }, | |
| 142 { | |
| 143 4, 0, 0, 0, | |
| 144 6, 4, 0, 0, 6, 5, 4, 0, 6, 5, 5, 4, 7, 5, 5, 4, | |
| 145 7, 5, 5, 4, 7, 6, 6, 4, 7, 6, 6, 4, 8, 7, 7, 5, | |
| 146 8, 8, 7, 6, 9, 8, 8, 7, 9, 9, 8, 8, 9, 9, 9, 8, | |
| 147 10, 9, 9, 9, 10,10,10,10, 10,10,10,10, 10,10,10,10, | |
| 148 }, | |
| 149 { | |
| 150 6, 0, 0, 0, | |
| 151 6, 6, 0, 0, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, | |
| 152 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
| 153 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
| 154 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
| 155 } | |
| 156 }; | |
| 157 | |
| 158 static const uint8_t coeff_token_bits[4][4*17]={ | |
| 159 { | |
| 160 1, 0, 0, 0, | |
| 161 5, 1, 0, 0, 7, 4, 1, 0, 7, 6, 5, 3, 7, 6, 5, 3, | |
| 162 7, 6, 5, 4, 15, 6, 5, 4, 11,14, 5, 4, 8,10,13, 4, | |
| 163 15,14, 9, 4, 11,10,13,12, 15,14, 9,12, 11,10,13, 8, | |
| 164 15, 1, 9,12, 11,14,13, 8, 7,10, 9,12, 4, 6, 5, 8, | |
| 165 }, | |
| 166 { | |
| 167 3, 0, 0, 0, | |
| 168 11, 2, 0, 0, 7, 7, 3, 0, 7,10, 9, 5, 7, 6, 5, 4, | |
| 169 4, 6, 5, 6, 7, 6, 5, 8, 15, 6, 5, 4, 11,14,13, 4, | |
| 170 15,10, 9, 4, 11,14,13,12, 8,10, 9, 8, 15,14,13,12, | |
| 171 11,10, 9,12, 7,11, 6, 8, 9, 8,10, 1, 7, 6, 5, 4, | |
| 172 }, | |
| 173 { | |
| 174 15, 0, 0, 0, | |
| 175 15,14, 0, 0, 11,15,13, 0, 8,12,14,12, 15,10,11,11, | |
| 176 11, 8, 9,10, 9,14,13, 9, 8,10, 9, 8, 15,14,13,13, | |
| 177 11,14,10,12, 15,10,13,12, 11,14, 9,12, 8,10,13, 8, | |
| 178 13, 7, 9,12, 9,12,11,10, 5, 8, 7, 6, 1, 4, 3, 2, | |
| 179 }, | |
| 180 { | |
| 181 3, 0, 0, 0, | |
| 182 0, 1, 0, 0, 4, 5, 6, 0, 8, 9,10,11, 12,13,14,15, | |
| 183 16,17,18,19, 20,21,22,23, 24,25,26,27, 28,29,30,31, | |
| 184 32,33,34,35, 36,37,38,39, 40,41,42,43, 44,45,46,47, | |
| 185 48,49,50,51, 52,53,54,55, 56,57,58,59, 60,61,62,63, | |
| 186 } | |
| 187 }; | |
| 188 | |
| 189 static const uint8_t total_zeros_len[16][16]= { | |
| 190 {1,3,3,4,4,5,5,6,6,7,7,8,8,9,9,9}, | |
| 191 {3,3,3,3,3,4,4,4,4,5,5,6,6,6,6}, | |
| 192 {4,3,3,3,4,4,3,3,4,5,5,6,5,6}, | |
| 193 {5,3,4,4,3,3,3,4,3,4,5,5,5}, | |
| 194 {4,4,4,3,3,3,3,3,4,5,4,5}, | |
| 195 {6,5,3,3,3,3,3,3,4,3,6}, | |
| 196 {6,5,3,3,3,2,3,4,3,6}, | |
| 197 {6,4,5,3,2,2,3,3,6}, | |
| 198 {6,6,4,2,2,3,2,5}, | |
| 199 {5,5,3,2,2,2,4}, | |
| 200 {4,4,3,3,1,3}, | |
| 201 {4,4,2,1,3}, | |
| 202 {3,3,1,2}, | |
| 203 {2,2,1}, | |
| 204 {1,1}, | |
| 205 }; | |
| 206 | |
| 207 static const uint8_t total_zeros_bits[16][16]= { | |
| 208 {1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1}, | |
| 209 {7,6,5,4,3,5,4,3,2,3,2,3,2,1,0}, | |
| 210 {5,7,6,5,4,3,4,3,2,3,2,1,1,0}, | |
| 211 {3,7,5,4,6,5,4,3,3,2,2,1,0}, | |
| 212 {5,4,3,7,6,5,4,3,2,1,1,0}, | |
| 213 {1,1,7,6,5,4,3,2,1,1,0}, | |
| 214 {1,1,5,4,3,3,2,1,1,0}, | |
| 215 {1,1,1,3,3,2,2,1,0}, | |
| 216 {1,0,1,3,2,1,1,1}, | |
| 217 {1,0,1,3,2,1,1}, | |
| 218 {0,1,1,2,1,3}, | |
| 219 {0,1,1,1,1}, | |
| 220 {0,1,1,1}, | |
| 221 {0,1,1}, | |
| 222 {0,1}, | |
| 223 }; | |
| 224 | |
| 225 static const uint8_t chroma_dc_total_zeros_len[3][4]= { | |
| 226 { 1, 2, 3, 3,}, | |
| 227 { 1, 2, 2, 0,}, | |
| 228 { 1, 1, 0, 0,}, | |
| 229 }; | |
| 230 | |
| 231 static const uint8_t chroma_dc_total_zeros_bits[3][4]= { | |
| 232 { 1, 1, 1, 0,}, | |
| 233 { 1, 1, 0, 0,}, | |
| 234 { 1, 0, 0, 0,}, | |
| 235 }; | |
| 236 | |
| 237 static const uint8_t run_len[7][16]={ | |
| 238 {1,1}, | |
| 239 {1,2,2}, | |
| 240 {2,2,2,2}, | |
| 241 {2,2,2,3,3}, | |
| 242 {2,2,3,3,3,3}, | |
| 243 {2,3,3,3,3,3,3}, | |
| 244 {3,3,3,3,3,3,3,4,5,6,7,8,9,10,11}, | |
| 245 }; | |
| 246 | |
| 247 static const uint8_t run_bits[7][16]={ | |
| 248 {1,0}, | |
| 249 {1,1,0}, | |
| 250 {3,2,1,0}, | |
| 251 {3,2,1,1,0}, | |
| 252 {3,2,3,2,1,0}, | |
| 253 {3,0,1,3,2,5,4}, | |
| 254 {7,6,5,4,3,2,1,1,1,1,1,1,1,1,1}, | |
| 255 }; | |
| 256 | |
| 257 /* | |
| 258 o-o o-o | |
| 259 / / / | |
| 260 o-o o-o | |
| 261 ,---' | |
| 262 o-o o-o | |
| 263 / / / | |
| 264 o-o o-o | |
| 265 */ | |
| 266 | |
| 267 static const uint8_t scan8[16 + 2*4]={ | |
| 268 4+1*8, 5+1*8, 4+2*8, 5+2*8, | |
| 269 6+1*8, 7+1*8, 6+2*8, 7+2*8, | |
| 270 4+3*8, 5+3*8, 4+4*8, 5+4*8, | |
| 271 6+3*8, 7+3*8, 6+4*8, 7+4*8, | |
| 272 1+1*8, 2+1*8, | |
| 273 1+2*8, 2+2*8, | |
| 274 1+4*8, 2+4*8, | |
| 275 1+5*8, 2+5*8, | |
| 276 }; | |
| 277 | |
| 278 static const uint8_t zigzag_scan[16]={ | |
| 279 0+0*4, 1+0*4, 0+1*4, 0+2*4, | |
| 280 1+1*4, 2+0*4, 3+0*4, 2+1*4, | |
| 281 1+2*4, 0+3*4, 1+3*4, 2+2*4, | |
| 282 3+1*4, 3+2*4, 2+3*4, 3+3*4, | |
| 283 }; | |
| 284 | |
| 285 static const uint8_t field_scan[16]={ | |
| 286 0+0*4, 0+1*4, 1+0*4, 0+2*4, | |
| 287 0+3*4, 1+1*4, 1+2*4, 1+3*4, | |
| 288 2+0*4, 2+1*4, 2+2*4, 2+3*4, | |
| 289 3+0*4, 3+1*4, 3+2*4, 3+3*4, | |
| 290 }; | |
| 291 | |
| 292 static const uint8_t luma_dc_zigzag_scan[16]={ | |
| 293 0*16 + 0*64, 1*16 + 0*64, 2*16 + 0*64, 0*16 + 2*64, | |
| 294 3*16 + 0*64, 0*16 + 1*64, 1*16 + 1*64, 2*16 + 1*64, | |
| 295 1*16 + 2*64, 2*16 + 2*64, 3*16 + 2*64, 0*16 + 3*64, | |
| 296 3*16 + 1*64, 1*16 + 3*64, 2*16 + 3*64, 3*16 + 3*64, | |
| 297 }; | |
| 298 | |
| 299 static const uint8_t luma_dc_field_scan[16]={ | |
| 300 0*16 + 0*64, 2*16 + 0*64, 1*16 + 0*64, 0*16 + 2*64, | |
| 301 2*16 + 2*64, 3*16 + 0*64, 1*16 + 2*64, 3*16 + 2*64, | |
| 302 0*16 + 1*64, 2*16 + 1*64, 0*16 + 3*64, 2*16 + 3*64, | |
| 303 1*16 + 1*64, 3*16 + 1*64, 1*16 + 3*64, 3*16 + 3*64, | |
| 304 }; | |
| 305 | |
| 306 static const uint8_t chroma_dc_scan[4]={ | |
| 307 (0+0*2)*16, (1+0*2)*16, | |
| 308 (0+1*2)*16, (1+1*2)*16, //FIXME | |
| 309 }; | |
| 310 | |
| 311 static const uint8_t zigzag_scan8x8[64]={ | |
| 312 0+0*8, 1+0*8, 0+1*8, 0+2*8, | |
| 313 1+1*8, 2+0*8, 3+0*8, 2+1*8, | |
| 314 1+2*8, 0+3*8, 0+4*8, 1+3*8, | |
| 315 2+2*8, 3+1*8, 4+0*8, 5+0*8, | |
| 316 4+1*8, 3+2*8, 2+3*8, 1+4*8, | |
| 317 0+5*8, 0+6*8, 1+5*8, 2+4*8, | |
| 318 3+3*8, 4+2*8, 5+1*8, 6+0*8, | |
| 319 7+0*8, 6+1*8, 5+2*8, 4+3*8, | |
| 320 3+4*8, 2+5*8, 1+6*8, 0+7*8, | |
| 321 1+7*8, 2+6*8, 3+5*8, 4+4*8, | |
| 322 5+3*8, 6+2*8, 7+1*8, 7+2*8, | |
| 323 6+3*8, 5+4*8, 4+5*8, 3+6*8, | |
| 324 2+7*8, 3+7*8, 4+6*8, 5+5*8, | |
| 325 6+4*8, 7+3*8, 7+4*8, 6+5*8, | |
| 326 5+6*8, 4+7*8, 5+7*8, 6+6*8, | |
| 327 7+5*8, 7+6*8, 6+7*8, 7+7*8, | |
| 328 }; | |
| 329 | |
| 330 // zigzag_scan8x8_cavlc[i] = zigzag_scan8x8[(i/4) + 16*(i%4)] | |
| 331 static const uint8_t zigzag_scan8x8_cavlc[64]={ | |
| 332 0+0*8, 1+1*8, 1+2*8, 2+2*8, | |
| 333 4+1*8, 0+5*8, 3+3*8, 7+0*8, | |
| 334 3+4*8, 1+7*8, 5+3*8, 6+3*8, | |
| 335 2+7*8, 6+4*8, 5+6*8, 7+5*8, | |
| 336 1+0*8, 2+0*8, 0+3*8, 3+1*8, | |
| 337 3+2*8, 0+6*8, 4+2*8, 6+1*8, | |
| 338 2+5*8, 2+6*8, 6+2*8, 5+4*8, | |
| 339 3+7*8, 7+3*8, 4+7*8, 7+6*8, | |
| 340 0+1*8, 3+0*8, 0+4*8, 4+0*8, | |
| 341 2+3*8, 1+5*8, 5+1*8, 5+2*8, | |
| 342 1+6*8, 3+5*8, 7+1*8, 4+5*8, | |
| 343 4+6*8, 7+4*8, 5+7*8, 6+7*8, | |
| 344 0+2*8, 2+1*8, 1+3*8, 5+0*8, | |
| 345 1+4*8, 2+4*8, 6+0*8, 4+3*8, | |
| 346 0+7*8, 4+4*8, 7+2*8, 3+6*8, | |
| 347 5+5*8, 6+5*8, 6+6*8, 7+7*8, | |
| 348 }; | |
| 349 | |
| 350 static const uint8_t field_scan8x8[64]={ | |
| 351 0+0*8, 0+1*8, 0+2*8, 1+0*8, | |
| 352 1+1*8, 0+3*8, 0+4*8, 1+2*8, | |
| 353 2+0*8, 1+3*8, 0+5*8, 0+6*8, | |
| 354 0+7*8, 1+4*8, 2+1*8, 3+0*8, | |
| 355 2+2*8, 1+5*8, 1+6*8, 1+7*8, | |
| 356 2+3*8, 3+1*8, 4+0*8, 3+2*8, | |
| 357 2+4*8, 2+5*8, 2+6*8, 2+7*8, | |
| 358 3+3*8, 4+1*8, 5+0*8, 4+2*8, | |
| 359 3+4*8, 3+5*8, 3+6*8, 3+7*8, | |
| 360 4+3*8, 5+1*8, 6+0*8, 5+2*8, | |
| 361 4+4*8, 4+5*8, 4+6*8, 4+7*8, | |
| 362 5+3*8, 6+1*8, 6+2*8, 5+4*8, | |
| 363 5+5*8, 5+6*8, 5+7*8, 6+3*8, | |
| 364 7+0*8, 7+1*8, 6+4*8, 6+5*8, | |
| 365 6+6*8, 6+7*8, 7+2*8, 7+3*8, | |
| 366 7+4*8, 7+5*8, 7+6*8, 7+7*8, | |
| 367 }; | |
| 368 | |
| 369 static const uint8_t field_scan8x8_cavlc[64]={ | |
| 370 0+0*8, 1+1*8, 2+0*8, 0+7*8, | |
| 371 2+2*8, 2+3*8, 2+4*8, 3+3*8, | |
| 372 3+4*8, 4+3*8, 4+4*8, 5+3*8, | |
| 373 5+5*8, 7+0*8, 6+6*8, 7+4*8, | |
| 374 0+1*8, 0+3*8, 1+3*8, 1+4*8, | |
| 375 1+5*8, 3+1*8, 2+5*8, 4+1*8, | |
| 376 3+5*8, 5+1*8, 4+5*8, 6+1*8, | |
| 377 5+6*8, 7+1*8, 6+7*8, 7+5*8, | |
| 378 0+2*8, 0+4*8, 0+5*8, 2+1*8, | |
| 379 1+6*8, 4+0*8, 2+6*8, 5+0*8, | |
| 380 3+6*8, 6+0*8, 4+6*8, 6+2*8, | |
| 381 5+7*8, 6+4*8, 7+2*8, 7+6*8, | |
| 382 1+0*8, 1+2*8, 0+6*8, 3+0*8, | |
| 383 1+7*8, 3+2*8, 2+7*8, 4+2*8, | |
| 384 3+7*8, 5+2*8, 4+7*8, 5+4*8, | |
| 385 6+3*8, 6+5*8, 7+3*8, 7+7*8, | |
| 386 }; | |
| 387 | |
| 388 #define MB_TYPE_REF0 MB_TYPE_ACPRED //dirty but it fits in 16bit | |
| 389 #define MB_TYPE_8x8DCT 0x01000000 | |
| 390 #define IS_REF0(a) ((a)&MB_TYPE_REF0) | |
| 391 #define IS_8x8DCT(a) ((a)&MB_TYPE_8x8DCT) | |
| 392 | |
| 393 | |
| 394 typedef struct IMbInfo{ | |
| 395 uint16_t type; | |
| 396 uint8_t pred_mode; | |
| 397 uint8_t cbp; | |
| 398 } IMbInfo; | |
| 399 | |
| 400 static const IMbInfo i_mb_type_info[26]={ | |
| 401 {MB_TYPE_INTRA4x4 , -1, -1}, | |
| 402 {MB_TYPE_INTRA16x16, 2, 0}, | |
| 403 {MB_TYPE_INTRA16x16, 1, 0}, | |
| 404 {MB_TYPE_INTRA16x16, 0, 0}, | |
| 405 {MB_TYPE_INTRA16x16, 3, 0}, | |
| 406 {MB_TYPE_INTRA16x16, 2, 16}, | |
| 407 {MB_TYPE_INTRA16x16, 1, 16}, | |
| 408 {MB_TYPE_INTRA16x16, 0, 16}, | |
| 409 {MB_TYPE_INTRA16x16, 3, 16}, | |
| 410 {MB_TYPE_INTRA16x16, 2, 32}, | |
| 411 {MB_TYPE_INTRA16x16, 1, 32}, | |
| 412 {MB_TYPE_INTRA16x16, 0, 32}, | |
| 413 {MB_TYPE_INTRA16x16, 3, 32}, | |
| 414 {MB_TYPE_INTRA16x16, 2, 15+0}, | |
| 415 {MB_TYPE_INTRA16x16, 1, 15+0}, | |
| 416 {MB_TYPE_INTRA16x16, 0, 15+0}, | |
| 417 {MB_TYPE_INTRA16x16, 3, 15+0}, | |
| 418 {MB_TYPE_INTRA16x16, 2, 15+16}, | |
| 419 {MB_TYPE_INTRA16x16, 1, 15+16}, | |
| 420 {MB_TYPE_INTRA16x16, 0, 15+16}, | |
| 421 {MB_TYPE_INTRA16x16, 3, 15+16}, | |
| 422 {MB_TYPE_INTRA16x16, 2, 15+32}, | |
| 423 {MB_TYPE_INTRA16x16, 1, 15+32}, | |
| 424 {MB_TYPE_INTRA16x16, 0, 15+32}, | |
| 425 {MB_TYPE_INTRA16x16, 3, 15+32}, | |
| 426 {MB_TYPE_INTRA_PCM , -1, -1}, | |
| 427 }; | |
| 428 | |
| 429 typedef struct PMbInfo{ | |
| 430 uint16_t type; | |
| 431 uint8_t partition_count; | |
| 432 } PMbInfo; | |
| 433 | |
| 434 static const PMbInfo p_mb_type_info[5]={ | |
| 435 {MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, | |
| 436 {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, | |
| 437 {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, | |
| 438 {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 4}, | |
| 439 {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_REF0, 4}, | |
| 440 }; | |
| 441 | |
| 442 static const PMbInfo p_sub_mb_type_info[4]={ | |
| 443 {MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, | |
| 444 {MB_TYPE_16x8 |MB_TYPE_P0L0 , 2}, | |
| 445 {MB_TYPE_8x16 |MB_TYPE_P0L0 , 2}, | |
| 446 {MB_TYPE_8x8 |MB_TYPE_P0L0 , 4}, | |
| 447 }; | |
| 448 | |
| 449 static const PMbInfo b_mb_type_info[23]={ | |
| 450 {MB_TYPE_DIRECT2 , 1, }, | |
| 451 {MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, | |
| 452 {MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, | |
| 453 {MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, | |
| 454 {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
| 455 {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
| 456 {MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 457 {MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 458 {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, | |
| 459 {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, | |
| 460 {MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
| 461 {MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
| 462 {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 463 {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 464 {MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 465 {MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 466 {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
| 467 {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
| 468 {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 469 {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 470 {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 471 {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 472 {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, | |
| 473 }; | |
| 474 | |
| 475 static const PMbInfo b_sub_mb_type_info[13]={ | |
| 476 {MB_TYPE_DIRECT2 , 1, }, | |
| 477 {MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, | |
| 478 {MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, | |
| 479 {MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, | |
| 480 {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
| 481 {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
| 482 {MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 483 {MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
| 484 {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 485 {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
| 486 {MB_TYPE_8x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 4, }, | |
| 487 {MB_TYPE_8x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 4, }, | |
| 488 {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, | |
| 489 }; | |
| 490 | |
| 491 | |
| 492 static const uint8_t rem6[52]={ | |
| 493 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, | |
| 494 }; | |
| 495 | |
| 496 static const uint8_t div6[52]={ | |
| 497 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, | |
| 498 }; | |
| 499 | |
| 500 static const uint8_t default_scaling4[2][16]={ | |
| 501 { 6,13,20,28, | |
| 502 13,20,28,32, | |
| 503 20,28,32,37, | |
| 504 28,32,37,42 | |
| 505 },{ | |
| 506 10,14,20,24, | |
| 507 14,20,24,27, | |
| 508 20,24,27,30, | |
| 509 24,27,30,34 | |
| 510 }}; | |
| 511 | |
| 512 static const uint8_t default_scaling8[2][64]={ | |
| 513 { 6,10,13,16,18,23,25,27, | |
| 514 10,11,16,18,23,25,27,29, | |
| 515 13,16,18,23,25,27,29,31, | |
| 516 16,18,23,25,27,29,31,33, | |
| 517 18,23,25,27,29,31,33,36, | |
| 518 23,25,27,29,31,33,36,38, | |
| 519 25,27,29,31,33,36,38,40, | |
| 520 27,29,31,33,36,38,40,42 | |
| 521 },{ | |
| 522 9,13,15,17,19,21,22,24, | |
| 523 13,13,17,19,21,22,24,25, | |
| 524 15,17,19,21,22,24,25,27, | |
| 525 17,19,21,22,24,25,27,28, | |
| 526 19,21,22,24,25,27,28,30, | |
| 527 21,22,24,25,27,28,30,32, | |
| 528 22,24,25,27,28,30,32,33, | |
| 529 24,25,27,28,30,32,33,35 | |
| 530 }}; | |
| 531 | |
| 532 static const int dequant4_coeff_init[6][3]={ | |
| 533 {10,13,16}, | |
| 534 {11,14,18}, | |
| 535 {13,16,20}, | |
| 536 {14,18,23}, | |
| 537 {16,20,25}, | |
| 538 {18,23,29}, | |
| 539 }; | |
| 540 | |
| 541 static const int dequant8_coeff_init_scan[16] = { | |
| 542 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1 | |
| 543 }; | |
| 544 static const int dequant8_coeff_init[6][6]={ | |
| 545 {20,18,32,19,25,24}, | |
| 546 {22,19,35,21,28,26}, | |
| 547 {26,23,42,24,33,31}, | |
| 548 {28,25,45,26,35,33}, | |
| 549 {32,28,51,30,40,38}, | |
| 550 {36,32,58,34,46,43}, | |
| 551 }; | |
| 552 | |
| 553 #define QUANT_SHIFT 22 | |
| 554 | |
| 555 static const int quant_coeff[52][16]={ | |
| 556 { 419430,258111,419430,258111,258111,167772,258111,167772,419430,258111,419430,258111,258111,167772,258111,167772,}, | |
| 557 { 381300,239675,381300,239675,239675,149131,239675,149131,381300,239675,381300,239675,239675,149131,239675,149131,}, | |
| 558 { 322639,209715,322639,209715,209715,134218,209715,134218,322639,209715,322639,209715,209715,134218,209715,134218,}, | |
| 559 { 299593,186414,299593,186414,186414,116711,186414,116711,299593,186414,299593,186414,186414,116711,186414,116711,}, | |
| 560 { 262144,167772,262144,167772,167772,107374,167772,107374,262144,167772,262144,167772,167772,107374,167772,107374,}, | |
| 561 { 233017,145889,233017,145889,145889, 92564,145889, 92564,233017,145889,233017,145889,145889, 92564,145889, 92564,}, | |
| 562 { 209715,129056,209715,129056,129056, 83886,129056, 83886,209715,129056,209715,129056,129056, 83886,129056, 83886,}, | |
| 563 { 190650,119837,190650,119837,119837, 74565,119837, 74565,190650,119837,190650,119837,119837, 74565,119837, 74565,}, | |
| 564 { 161319,104858,161319,104858,104858, 67109,104858, 67109,161319,104858,161319,104858,104858, 67109,104858, 67109,}, | |
| 565 { 149797, 93207,149797, 93207, 93207, 58356, 93207, 58356,149797, 93207,149797, 93207, 93207, 58356, 93207, 58356,}, | |
| 566 { 131072, 83886,131072, 83886, 83886, 53687, 83886, 53687,131072, 83886,131072, 83886, 83886, 53687, 83886, 53687,}, | |
| 567 { 116508, 72944,116508, 72944, 72944, 46282, 72944, 46282,116508, 72944,116508, 72944, 72944, 46282, 72944, 46282,}, | |
| 568 { 104858, 64528,104858, 64528, 64528, 41943, 64528, 41943,104858, 64528,104858, 64528, 64528, 41943, 64528, 41943,}, | |
| 569 { 95325, 59919, 95325, 59919, 59919, 37283, 59919, 37283, 95325, 59919, 95325, 59919, 59919, 37283, 59919, 37283,}, | |
| 570 { 80660, 52429, 80660, 52429, 52429, 33554, 52429, 33554, 80660, 52429, 80660, 52429, 52429, 33554, 52429, 33554,}, | |
| 571 { 74898, 46603, 74898, 46603, 46603, 29178, 46603, 29178, 74898, 46603, 74898, 46603, 46603, 29178, 46603, 29178,}, | |
| 572 { 65536, 41943, 65536, 41943, 41943, 26844, 41943, 26844, 65536, 41943, 65536, 41943, 41943, 26844, 41943, 26844,}, | |
| 573 { 58254, 36472, 58254, 36472, 36472, 23141, 36472, 23141, 58254, 36472, 58254, 36472, 36472, 23141, 36472, 23141,}, | |
| 574 { 52429, 32264, 52429, 32264, 32264, 20972, 32264, 20972, 52429, 32264, 52429, 32264, 32264, 20972, 32264, 20972,}, | |
| 575 { 47663, 29959, 47663, 29959, 29959, 18641, 29959, 18641, 47663, 29959, 47663, 29959, 29959, 18641, 29959, 18641,}, | |
| 576 { 40330, 26214, 40330, 26214, 26214, 16777, 26214, 16777, 40330, 26214, 40330, 26214, 26214, 16777, 26214, 16777,}, | |
| 577 { 37449, 23302, 37449, 23302, 23302, 14589, 23302, 14589, 37449, 23302, 37449, 23302, 23302, 14589, 23302, 14589,}, | |
| 578 { 32768, 20972, 32768, 20972, 20972, 13422, 20972, 13422, 32768, 20972, 32768, 20972, 20972, 13422, 20972, 13422,}, | |
| 579 { 29127, 18236, 29127, 18236, 18236, 11570, 18236, 11570, 29127, 18236, 29127, 18236, 18236, 11570, 18236, 11570,}, | |
| 580 { 26214, 16132, 26214, 16132, 16132, 10486, 16132, 10486, 26214, 16132, 26214, 16132, 16132, 10486, 16132, 10486,}, | |
| 581 { 23831, 14980, 23831, 14980, 14980, 9321, 14980, 9321, 23831, 14980, 23831, 14980, 14980, 9321, 14980, 9321,}, | |
| 582 { 20165, 13107, 20165, 13107, 13107, 8389, 13107, 8389, 20165, 13107, 20165, 13107, 13107, 8389, 13107, 8389,}, | |
| 583 { 18725, 11651, 18725, 11651, 11651, 7294, 11651, 7294, 18725, 11651, 18725, 11651, 11651, 7294, 11651, 7294,}, | |
| 584 { 16384, 10486, 16384, 10486, 10486, 6711, 10486, 6711, 16384, 10486, 16384, 10486, 10486, 6711, 10486, 6711,}, | |
| 585 { 14564, 9118, 14564, 9118, 9118, 5785, 9118, 5785, 14564, 9118, 14564, 9118, 9118, 5785, 9118, 5785,}, | |
| 586 { 13107, 8066, 13107, 8066, 8066, 5243, 8066, 5243, 13107, 8066, 13107, 8066, 8066, 5243, 8066, 5243,}, | |
| 587 { 11916, 7490, 11916, 7490, 7490, 4660, 7490, 4660, 11916, 7490, 11916, 7490, 7490, 4660, 7490, 4660,}, | |
| 588 { 10082, 6554, 10082, 6554, 6554, 4194, 6554, 4194, 10082, 6554, 10082, 6554, 6554, 4194, 6554, 4194,}, | |
| 589 { 9362, 5825, 9362, 5825, 5825, 3647, 5825, 3647, 9362, 5825, 9362, 5825, 5825, 3647, 5825, 3647,}, | |
| 590 { 8192, 5243, 8192, 5243, 5243, 3355, 5243, 3355, 8192, 5243, 8192, 5243, 5243, 3355, 5243, 3355,}, | |
| 591 { 7282, 4559, 7282, 4559, 4559, 2893, 4559, 2893, 7282, 4559, 7282, 4559, 4559, 2893, 4559, 2893,}, | |
| 592 { 6554, 4033, 6554, 4033, 4033, 2621, 4033, 2621, 6554, 4033, 6554, 4033, 4033, 2621, 4033, 2621,}, | |
| 593 { 5958, 3745, 5958, 3745, 3745, 2330, 3745, 2330, 5958, 3745, 5958, 3745, 3745, 2330, 3745, 2330,}, | |
| 594 { 5041, 3277, 5041, 3277, 3277, 2097, 3277, 2097, 5041, 3277, 5041, 3277, 3277, 2097, 3277, 2097,}, | |
| 595 { 4681, 2913, 4681, 2913, 2913, 1824, 2913, 1824, 4681, 2913, 4681, 2913, 2913, 1824, 2913, 1824,}, | |
| 596 { 4096, 2621, 4096, 2621, 2621, 1678, 2621, 1678, 4096, 2621, 4096, 2621, 2621, 1678, 2621, 1678,}, | |
| 597 { 3641, 2280, 3641, 2280, 2280, 1446, 2280, 1446, 3641, 2280, 3641, 2280, 2280, 1446, 2280, 1446,}, | |
| 598 { 3277, 2016, 3277, 2016, 2016, 1311, 2016, 1311, 3277, 2016, 3277, 2016, 2016, 1311, 2016, 1311,}, | |
| 599 { 2979, 1872, 2979, 1872, 1872, 1165, 1872, 1165, 2979, 1872, 2979, 1872, 1872, 1165, 1872, 1165,}, | |
| 600 { 2521, 1638, 2521, 1638, 1638, 1049, 1638, 1049, 2521, 1638, 2521, 1638, 1638, 1049, 1638, 1049,}, | |
| 601 { 2341, 1456, 2341, 1456, 1456, 912, 1456, 912, 2341, 1456, 2341, 1456, 1456, 912, 1456, 912,}, | |
| 602 { 2048, 1311, 2048, 1311, 1311, 839, 1311, 839, 2048, 1311, 2048, 1311, 1311, 839, 1311, 839,}, | |
| 603 { 1820, 1140, 1820, 1140, 1140, 723, 1140, 723, 1820, 1140, 1820, 1140, 1140, 723, 1140, 723,}, | |
| 604 { 1638, 1008, 1638, 1008, 1008, 655, 1008, 655, 1638, 1008, 1638, 1008, 1008, 655, 1008, 655,}, | |
| 605 { 1489, 936, 1489, 936, 936, 583, 936, 583, 1489, 936, 1489, 936, 936, 583, 936, 583,}, | |
| 606 { 1260, 819, 1260, 819, 819, 524, 819, 524, 1260, 819, 1260, 819, 819, 524, 819, 524,}, | |
| 607 { 1170, 728, 1170, 728, 728, 456, 728, 456, 1170, 728, 1170, 728, 728, 456, 728, 456,}, | |
| 608 }; | |
| 609 | |
| 610 | |
| 611 /* Deblocking filter (p153) */ | |
| 612 static const int alpha_table[52] = { | |
| 613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 614 0, 0, 0, 0, 0, 0, 4, 4, 5, 6, | |
| 615 7, 8, 9, 10, 12, 13, 15, 17, 20, 22, | |
| 616 25, 28, 32, 36, 40, 45, 50, 56, 63, 71, | |
| 617 80, 90,101,113,127,144,162,182,203,226, | |
| 618 255, 255 | |
| 619 }; | |
| 620 static const int beta_table[52] = { | |
| 621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 622 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, | |
| 623 3, 3, 3, 4, 4, 4, 6, 6, 7, 7, | |
| 624 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, | |
| 625 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, | |
| 626 18, 18 | |
| 627 }; | |
| 628 static const int tc0_table[52][3] = { | |
| 629 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, | |
| 630 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, | |
| 631 { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 1 }, | |
| 632 { 0, 0, 1 }, { 0, 0, 1 }, { 0, 0, 1 }, { 0, 1, 1 }, { 0, 1, 1 }, { 1, 1, 1 }, | |
| 633 { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 2 }, { 1, 1, 2 }, { 1, 1, 2 }, | |
| 634 { 1, 1, 2 }, { 1, 2, 3 }, { 1, 2, 3 }, { 2, 2, 3 }, { 2, 2, 4 }, { 2, 3, 4 }, | |
| 635 { 2, 3, 4 }, { 3, 3, 5 }, { 3, 4, 6 }, { 3, 4, 6 }, { 4, 5, 7 }, { 4, 5, 8 }, | |
| 636 { 4, 6, 9 }, { 5, 7,10 }, { 6, 8,11 }, { 6, 8,13 }, { 7,10,14 }, { 8,11,16 }, | |
| 637 { 9,12,18 }, {10,13,20 }, {11,15,23 }, {13,17,25 } | |
| 638 }; | |
| 639 | |
| 640 /* Cabac pre state table */ | |
| 641 | |
| 642 static const int cabac_context_init_I[460][2] = | |
| 643 { | |
| 644 /* 0 - 10 */ | |
| 645 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
| 646 { 2, 54 }, { 3, 74 }, { -28,127 }, { -23, 104 }, | |
| 647 { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
| 648 | |
| 649 /* 11 - 23 unsused for I */ | |
| 650 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 651 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 652 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 653 { 0, 0 }, | |
| 654 | |
| 655 /* 24- 39 */ | |
| 656 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 657 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 658 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 659 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 660 | |
| 661 /* 40 - 53 */ | |
| 662 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 663 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 664 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 665 { 0, 0 }, { 0, 0 }, | |
| 666 | |
| 667 /* 54 - 59 */ | |
| 668 { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
| 669 { 0, 0 }, { 0, 0 }, | |
| 670 | |
| 671 /* 60 - 69 */ | |
| 672 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
| 673 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
| 674 { 13, 41 }, { 3, 62 }, | |
| 675 | |
| 676 /* 70 -> 87 */ | |
| 677 { 0, 11 }, { 1, 55 }, { 0, 69 }, { -17, 127 }, | |
| 678 { -13, 102 },{ 0, 82 }, { -7, 74 }, { -21, 107 }, | |
| 679 { -27, 127 },{ -31, 127 },{ -24, 127 }, { -18, 95 }, | |
| 680 { -27, 127 },{ -21, 114 },{ -30, 127 }, { -17, 123 }, | |
| 681 { -12, 115 },{ -16, 122 }, | |
| 682 | |
| 683 /* 88 -> 104 */ | |
| 684 { -11, 115 },{ -12, 63 }, { -2, 68 }, { -15, 84 }, | |
| 685 { -13, 104 },{ -3, 70 }, { -8, 93 }, { -10, 90 }, | |
| 686 { -30, 127 },{ -1, 74 }, { -6, 97 }, { -7, 91 }, | |
| 687 { -20, 127 },{ -4, 56 }, { -5, 82 }, { -7, 76 }, | |
| 688 { -22, 125 }, | |
| 689 | |
| 690 /* 105 -> 135 */ | |
| 691 { -7, 93 }, { -11, 87 }, { -3, 77 }, { -5, 71 }, | |
| 692 { -4, 63 }, { -4, 68 }, { -12, 84 }, { -7, 62 }, | |
| 693 { -7, 65 }, { 8, 61 }, { 5, 56 }, { -2, 66 }, | |
| 694 { 1, 64 }, { 0, 61 }, { -2, 78 }, { 1, 50 }, | |
| 695 { 7, 52 }, { 10, 35 }, { 0, 44 }, { 11, 38 }, | |
| 696 { 1, 45 }, { 0, 46 }, { 5, 44 }, { 31, 17 }, | |
| 697 { 1, 51 }, { 7, 50 }, { 28, 19 }, { 16, 33 }, | |
| 698 { 14, 62 }, { -13, 108 },{ -15, 100 }, | |
| 699 | |
| 700 /* 136 -> 165 */ | |
| 701 { -13, 101 },{ -13, 91 }, { -12, 94 }, { -10, 88 }, | |
| 702 { -16, 84 }, { -10, 86 }, { -7, 83 }, { -13, 87 }, | |
| 703 { -19, 94 }, { 1, 70 }, { 0, 72 }, { -5, 74 }, | |
| 704 { 18, 59 }, { -8, 102 }, { -15, 100 }, { 0, 95 }, | |
| 705 { -4, 75 }, { 2, 72 }, { -11, 75 }, { -3, 71 }, | |
| 706 { 15, 46 }, { -13, 69 }, { 0, 62 }, { 0, 65 }, | |
| 707 { 21, 37 }, { -15, 72 }, { 9, 57 }, { 16, 54 }, | |
| 708 { 0, 62 }, { 12, 72 }, | |
| 709 | |
| 710 /* 166 -> 196 */ | |
| 711 { 24, 0 }, { 15, 9 }, { 8, 25 }, { 13, 18 }, | |
| 712 { 15, 9 }, { 13, 19 }, { 10, 37 }, { 12, 18 }, | |
| 713 { 6, 29 }, { 20, 33 }, { 15, 30 }, { 4, 45 }, | |
| 714 { 1, 58 }, { 0, 62 }, { 7, 61 }, { 12, 38 }, | |
| 715 { 11, 45 }, { 15, 39 }, { 11, 42 }, { 13, 44 }, | |
| 716 { 16, 45 }, { 12, 41 }, { 10, 49 }, { 30, 34 }, | |
| 717 { 18, 42 }, { 10, 55 }, { 17, 51 }, { 17, 46 }, | |
| 718 { 0, 89 }, { 26, -19 }, { 22, -17 }, | |
| 719 | |
| 720 /* 197 -> 226 */ | |
| 721 { 26, -17 }, { 30, -25 }, { 28, -20 }, { 33, -23 }, | |
| 722 { 37, -27 }, { 33, -23 }, { 40, -28 }, { 38, -17 }, | |
| 723 { 33, -11 }, { 40, -15 }, { 41, -6 }, { 38, 1 }, | |
| 724 { 41, 17 }, { 30, -6 }, { 27, 3 }, { 26, 22 }, | |
| 725 { 37, -16 }, { 35, -4 }, { 38, -8 }, { 38, -3 }, | |
| 726 { 37, 3 }, { 38, 5 }, { 42, 0 }, { 35, 16 }, | |
| 727 { 39, 22 }, { 14, 48 }, { 27, 37 }, { 21, 60 }, | |
| 728 { 12, 68 }, { 2, 97 }, | |
| 729 | |
| 730 /* 227 -> 251 */ | |
| 731 { -3, 71 }, { -6, 42 }, { -5, 50 }, { -3, 54 }, | |
| 732 { -2, 62 }, { 0, 58 }, { 1, 63 }, { -2, 72 }, | |
| 733 { -1, 74 }, { -9, 91 }, { -5, 67 }, { -5, 27 }, | |
| 734 { -3, 39 }, { -2, 44 }, { 0, 46 }, { -16, 64 }, | |
| 735 { -8, 68 }, { -10, 78 }, { -6, 77 }, { -10, 86 }, | |
| 736 { -12, 92 }, { -15, 55 }, { -10, 60 }, { -6, 62 }, | |
| 737 { -4, 65 }, | |
| 738 | |
| 739 /* 252 -> 275 */ | |
| 740 { -12, 73 }, { -8, 76 }, { -7, 80 }, { -9, 88 }, | |
| 741 { -17, 110 },{ -11, 97 }, { -20, 84 }, { -11, 79 }, | |
| 742 { -6, 73 }, { -4, 74 }, { -13, 86 }, { -13, 96 }, | |
| 743 { -11, 97 }, { -19, 117 },{ -8, 78 }, { -5, 33 }, | |
| 744 { -4, 48 }, { -2, 53 }, { -3, 62 }, { -13, 71 }, | |
| 745 { -10, 79 }, { -12, 86 }, { -13, 90 }, { -14, 97 }, | |
| 746 | |
| 747 /* 276 a bit special (not used, bypass is used instead) */ | |
| 748 { 0, 0 }, | |
| 749 | |
| 750 /* 277 -> 307 */ | |
| 751 { -6, 93 }, { -6, 84 }, { -8, 79 }, { 0, 66 }, | |
| 752 { -1, 71 }, { 0, 62 }, { -2, 60 }, { -2, 59 }, | |
| 753 { -5, 75 }, { -3, 62 }, { -4, 58 }, { -9, 66 }, | |
| 754 { -1, 79 }, { 0, 71 }, { 3, 68 }, { 10, 44 }, | |
| 755 { -7, 62 }, { 15, 36 }, { 14, 40 }, { 16, 27 }, | |
| 756 { 12, 29 }, { 1, 44 }, { 20, 36 }, { 18, 32 }, | |
| 757 { 5, 42 }, { 1, 48 }, { 10, 62 }, { 17, 46 }, | |
| 758 { 9, 64 }, { -12, 104 },{ -11, 97 }, | |
| 759 | |
| 760 /* 308 -> 337 */ | |
| 761 { -16, 96 }, { -7, 88 }, { -8, 85 }, { -7, 85 }, | |
| 762 { -9, 85 }, { -13, 88 }, { 4, 66 }, { -3, 77 }, | |
| 763 { -3, 76 }, { -6, 76 }, { 10, 58 }, { -1, 76 }, | |
| 764 { -1, 83 }, { -7, 99 }, { -14, 95 }, { 2, 95 }, | |
| 765 { 0, 76 }, { -5, 74 }, { 0, 70 }, { -11, 75 }, | |
| 766 { 1, 68 }, { 0, 65 }, { -14, 73 }, { 3, 62 }, | |
| 767 { 4, 62 }, { -1, 68 }, { -13, 75 }, { 11, 55 }, | |
| 768 { 5, 64 }, { 12, 70 }, | |
| 769 | |
| 770 /* 338 -> 368 */ | |
| 771 { 15, 6 }, { 6, 19 }, { 7, 16 }, { 12, 14 }, | |
| 772 { 18, 13 }, { 13, 11 }, { 13, 15 }, { 15, 16 }, | |
| 773 { 12, 23 }, { 13, 23 }, { 15, 20 }, { 14, 26 }, | |
| 774 { 14, 44 }, { 17, 40 }, { 17, 47 }, { 24, 17 }, | |
| 775 { 21, 21 }, { 25, 22 }, { 31, 27 }, { 22, 29 }, | |
| 776 { 19, 35 }, { 14, 50 }, { 10, 57 }, { 7, 63 }, | |
| 777 { -2, 77 }, { -4, 82 }, { -3, 94 }, { 9, 69 }, | |
| 778 { -12, 109 },{ 36, -35 }, { 36, -34 }, | |
| 779 | |
| 780 /* 369 -> 398 */ | |
| 781 { 32, -26 }, { 37, -30 }, { 44, -32 }, { 34, -18 }, | |
| 782 { 34, -15 }, { 40, -15 }, { 33, -7 }, { 35, -5 }, | |
| 783 { 33, 0 }, { 38, 2 }, { 33, 13 }, { 23, 35 }, | |
| 784 { 13, 58 }, { 29, -3 }, { 26, 0 }, { 22, 30 }, | |
| 785 { 31, -7 }, { 35, -15 }, { 34, -3 }, { 34, 3 }, | |
| 786 { 36, -1 }, { 34, 5 }, { 32, 11 }, { 35, 5 }, | |
| 787 { 34, 12 }, { 39, 11 }, { 30, 29 }, { 34, 26 }, | |
| 788 { 29, 39 }, { 19, 66 }, | |
| 789 | |
| 790 /* 399 -> 435 */ | |
| 791 { 31, 21 }, { 31, 31 }, { 25, 50 }, | |
| 792 { -17, 120 }, { -20, 112 }, { -18, 114 }, { -11, 85 }, | |
| 793 { -15, 92 }, { -14, 89 }, { -26, 71 }, { -15, 81 }, | |
| 794 { -14, 80 }, { 0, 68 }, { -14, 70 }, { -24, 56 }, | |
| 795 { -23, 68 }, { -24, 50 }, { -11, 74 }, { 23, -13 }, | |
| 796 { 26, -13 }, { 40, -15 }, { 49, -14 }, { 44, 3 }, | |
| 797 { 45, 6 }, { 44, 34 }, { 33, 54 }, { 19, 82 }, | |
| 798 { -3, 75 }, { -1, 23 }, { 1, 34 }, { 1, 43 }, | |
| 799 { 0, 54 }, { -2, 55 }, { 0, 61 }, { 1, 64 }, | |
| 800 { 0, 68 }, { -9, 92 }, | |
| 801 | |
| 802 /* 436 -> 459 */ | |
| 803 { -14, 106 }, { -13, 97 }, { -15, 90 }, { -12, 90 }, | |
| 804 { -18, 88 }, { -10, 73 }, { -9, 79 }, { -14, 86 }, | |
| 805 { -10, 73 }, { -10, 70 }, { -10, 69 }, { -5, 66 }, | |
| 806 { -9, 64 }, { -5, 58 }, { 2, 59 }, { 21, -10 }, | |
| 807 { 24, -11 }, { 28, -8 }, { 28, -1 }, { 29, 3 }, | |
| 808 { 29, 9 }, { 35, 20 }, { 29, 36 }, { 14, 67 } | |
| 809 }; | |
| 810 | |
| 811 static const int cabac_context_init_PB[3][460][2] = | |
| 812 { | |
| 813 /* i_cabac_init_idc == 0 */ | |
| 814 { | |
| 815 /* 0 - 10 */ | |
| 816 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
| 817 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
| 818 { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
| 819 | |
| 820 /* 11 - 23 */ | |
| 821 { 23, 33 }, { 23, 2 }, { 21, 0 }, { 1, 9 }, | |
| 822 { 0, 49 }, { -37, 118 }, { 5, 57 }, { -13, 78 }, | |
| 823 { -11, 65 }, { 1, 62 }, { 12, 49 }, { -4, 73 }, | |
| 824 { 17, 50 }, | |
| 825 | |
| 826 /* 24 - 39 */ | |
| 827 { 18, 64 }, { 9, 43 }, { 29, 0 }, { 26, 67 }, | |
| 828 { 16, 90 }, { 9, 104 }, { -46, 127 }, { -20, 104 }, | |
| 829 { 1, 67 }, { -13, 78 }, { -11, 65 }, { 1, 62 }, | |
| 830 { -6, 86 }, { -17, 95 }, { -6, 61 }, { 9, 45 }, | |
| 831 | |
| 832 /* 40 - 53 */ | |
| 833 { -3, 69 }, { -6, 81 }, { -11, 96 }, { 6, 55 }, | |
| 834 { 7, 67 }, { -5, 86 }, { 2, 88 }, { 0, 58 }, | |
| 835 { -3, 76 }, { -10, 94 }, { 5, 54 }, { 4, 69 }, | |
| 836 { -3, 81 }, { 0, 88 }, | |
| 837 | |
| 838 /* 54 - 59 */ | |
| 839 { -7, 67 }, { -5, 74 }, { -4, 74 }, { -5, 80 }, | |
| 840 { -7, 72 }, { 1, 58 }, | |
| 841 | |
| 842 /* 60 - 69 */ | |
| 843 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
| 844 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
| 845 { 13, 41 }, { 3, 62 }, | |
| 846 | |
| 847 /* 70 - 87 */ | |
| 848 { 0, 45 }, { -4, 78 }, { -3, 96 }, { -27, 126 }, | |
| 849 { -28, 98 }, { -25, 101 }, { -23, 67 }, { -28, 82 }, | |
| 850 { -20, 94 }, { -16, 83 }, { -22, 110 }, { -21, 91 }, | |
| 851 { -18, 102 }, { -13, 93 }, { -29, 127 }, { -7, 92 }, | |
| 852 { -5, 89 }, { -7, 96 }, { -13, 108 }, { -3, 46 }, | |
| 853 { -1, 65 }, { -1, 57 }, { -9, 93 }, { -3, 74 }, | |
| 854 { -9, 92 }, { -8, 87 }, { -23, 126 }, { 5, 54 }, | |
| 855 { 6, 60 }, { 6, 59 }, { 6, 69 }, { -1, 48 }, | |
| 856 { 0, 68 }, { -4, 69 }, { -8, 88 }, | |
| 857 | |
| 858 /* 105 -> 165 */ | |
| 859 { -2, 85 }, { -6, 78 }, { -1, 75 }, { -7, 77 }, | |
| 860 { 2, 54 }, { 5, 50 }, { -3, 68 }, { 1, 50 }, | |
| 861 { 6, 42 }, { -4, 81 }, { 1, 63 }, { -4, 70 }, | |
| 862 { 0, 67 }, { 2, 57 }, { -2, 76 }, { 11, 35 }, | |
| 863 { 4, 64 }, { 1, 61 }, { 11, 35 }, { 18, 25 }, | |
| 864 { 12, 24 }, { 13, 29 }, { 13, 36 }, { -10, 93 }, | |
| 865 { -7, 73 }, { -2, 73 }, { 13, 46 }, { 9, 49 }, | |
| 866 { -7, 100 }, { 9, 53 }, { 2, 53 }, { 5, 53 }, | |
| 867 { -2, 61 }, { 0, 56 }, { 0, 56 }, { -13, 63 }, | |
| 868 { -5, 60 }, { -1, 62 }, { 4, 57 }, { -6, 69 }, | |
| 869 { 4, 57 }, { 14, 39 }, { 4, 51 }, { 13, 68 }, | |
| 870 { 3, 64 }, { 1, 61 }, { 9, 63 }, { 7, 50 }, | |
| 871 { 16, 39 }, { 5, 44 }, { 4, 52 }, { 11, 48 }, | |
| 872 { -5, 60 }, { -1, 59 }, { 0, 59 }, { 22, 33 }, | |
| 873 { 5, 44 }, { 14, 43 }, { -1, 78 }, { 0, 60 }, | |
| 874 { 9, 69 }, | |
| 875 | |
| 876 /* 166 - 226 */ | |
| 877 { 11, 28 }, { 2, 40 }, { 3, 44 }, { 0, 49 }, | |
| 878 { 0, 46 }, { 2, 44 }, { 2, 51 }, { 0, 47 }, | |
| 879 { 4, 39 }, { 2, 62 }, { 6, 46 }, { 0, 54 }, | |
| 880 { 3, 54 }, { 2, 58 }, { 4, 63 }, { 6, 51 }, | |
| 881 { 6, 57 }, { 7, 53 }, { 6, 52 }, { 6, 55 }, | |
| 882 { 11, 45 }, { 14, 36 }, { 8, 53 }, { -1, 82 }, | |
| 883 { 7, 55 }, { -3, 78 }, { 15, 46 }, { 22, 31 }, | |
| 884 { -1, 84 }, { 25, 7 }, { 30, -7 }, { 28, 3 }, | |
| 885 { 28, 4 }, { 32, 0 }, { 34, -1 }, { 30, 6 }, | |
| 886 { 30, 6 }, { 32, 9 }, { 31, 19 }, { 26, 27 }, | |
| 887 { 26, 30 }, { 37, 20 }, { 28, 34 }, { 17, 70 }, | |
| 888 { 1, 67 }, { 5, 59 }, { 9, 67 }, { 16, 30 }, | |
| 889 { 18, 32 }, { 18, 35 }, { 22, 29 }, { 24, 31 }, | |
| 890 { 23, 38 }, { 18, 43 }, { 20, 41 }, { 11, 63 }, | |
| 891 { 9, 59 }, { 9, 64 }, { -1, 94 }, { -2, 89 }, | |
| 892 { -9, 108 }, | |
| 893 | |
| 894 /* 227 - 275 */ | |
| 895 { -6, 76 }, { -2, 44 }, { 0, 45 }, { 0, 52 }, | |
| 896 { -3, 64 }, { -2, 59 }, { -4, 70 }, { -4, 75 }, | |
| 897 { -8, 82 }, { -17, 102 }, { -9, 77 }, { 3, 24 }, | |
| 898 { 0, 42 }, { 0, 48 }, { 0, 55 }, { -6, 59 }, | |
| 899 { -7, 71 }, { -12, 83 }, { -11, 87 }, { -30, 119 }, | |
| 900 { 1, 58 }, { -3, 29 }, { -1, 36 }, { 1, 38 }, | |
| 901 { 2, 43 }, { -6, 55 }, { 0, 58 }, { 0, 64 }, | |
| 902 { -3, 74 }, { -10, 90 }, { 0, 70 }, { -4, 29 }, | |
| 903 { 5, 31 }, { 7, 42 }, { 1, 59 }, { -2, 58 }, | |
| 904 { -3, 72 }, { -3, 81 }, { -11, 97 }, { 0, 58 }, | |
| 905 { 8, 5 }, { 10, 14 }, { 14, 18 }, { 13, 27 }, | |
| 906 { 2, 40 }, { 0, 58 }, { -3, 70 }, { -6, 79 }, | |
| 907 { -8, 85 }, | |
| 908 | |
| 909 /* 276 a bit special (not used, bypass is used instead) */ | |
| 910 { 0, 0 }, | |
| 911 | |
| 912 /* 277 - 337 */ | |
| 913 { -13, 106 }, { -16, 106 }, { -10, 87 }, { -21, 114 }, | |
| 914 { -18, 110 }, { -14, 98 }, { -22, 110 }, { -21, 106 }, | |
| 915 { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 }, | |
| 916 { -10, 96 }, { -12, 95 }, { -5, 91 }, { -9, 93 }, | |
| 917 { -22, 94 }, { -5, 86 }, { 9, 67 }, { -4, 80 }, | |
| 918 { -10, 85 }, { -1, 70 }, { 7, 60 }, { 9, 58 }, | |
| 919 { 5, 61 }, { 12, 50 }, { 15, 50 }, { 18, 49 }, | |
| 920 { 17, 54 }, { 10, 41 }, { 7, 46 }, { -1, 51 }, | |
| 921 { 7, 49 }, { 8, 52 }, { 9, 41 }, { 6, 47 }, | |
| 922 { 2, 55 }, { 13, 41 }, { 10, 44 }, { 6, 50 }, | |
| 923 { 5, 53 }, { 13, 49 }, { 4, 63 }, { 6, 64 }, | |
| 924 { -2, 69 }, { -2, 59 }, { 6, 70 }, { 10, 44 }, | |
| 925 { 9, 31 }, { 12, 43 }, { 3, 53 }, { 14, 34 }, | |
| 926 { 10, 38 }, { -3, 52 }, { 13, 40 }, { 17, 32 }, | |
| 927 { 7, 44 }, { 7, 38 }, { 13, 50 }, { 10, 57 }, | |
| 928 { 26, 43 }, | |
| 929 | |
| 930 /* 338 - 398 */ | |
| 931 { 14, 11 }, { 11, 14 }, { 9, 11 }, { 18, 11 }, | |
| 932 { 21, 9 }, { 23, -2 }, { 32, -15 }, { 32, -15 }, | |
| 933 { 34, -21 }, { 39, -23 }, { 42, -33 }, { 41, -31 }, | |
| 934 { 46, -28 }, { 38, -12 }, { 21, 29 }, { 45, -24 }, | |
| 935 { 53, -45 }, { 48, -26 }, { 65, -43 }, { 43, -19 }, | |
| 936 { 39, -10 }, { 30, 9 }, { 18, 26 }, { 20, 27 }, | |
| 937 { 0, 57 }, { -14, 82 }, { -5, 75 }, { -19, 97 }, | |
| 938 { -35, 125 }, { 27, 0 }, { 28, 0 }, { 31, -4 }, | |
| 939 { 27, 6 }, { 34, 8 }, { 30, 10 }, { 24, 22 }, | |
| 940 { 33, 19 }, { 22, 32 }, { 26, 31 }, { 21, 41 }, | |
| 941 { 26, 44 }, { 23, 47 }, { 16, 65 }, { 14, 71 }, | |
| 942 { 8, 60 }, { 6, 63 }, { 17, 65 }, { 21, 24 }, | |
| 943 { 23, 20 }, { 26, 23 }, { 27, 32 }, { 28, 23 }, | |
| 944 { 28, 24 }, { 23, 40 }, { 24, 32 }, { 28, 29 }, | |
| 945 { 23, 42 }, { 19, 57 }, { 22, 53 }, { 22, 61 }, | |
| 946 { 11, 86 }, | |
| 947 | |
| 948 /* 399 - 435 */ | |
| 949 { 12, 40 }, { 11, 51 }, { 14, 59 }, | |
| 950 { -4, 79 }, { -7, 71 }, { -5, 69 }, { -9, 70 }, | |
| 951 { -8, 66 }, { -10, 68 }, { -19, 73 }, { -12, 69 }, | |
| 952 { -16, 70 }, { -15, 67 }, { -20, 62 }, { -19, 70 }, | |
| 953 { -16, 66 }, { -22, 65 }, { -20, 63 }, { 9, -2 }, | |
| 954 { 26, -9 }, { 33, -9 }, { 39, -7 }, { 41, -2 }, | |
| 955 { 45, 3 }, { 49, 9 }, { 45, 27 }, { 36, 59 }, | |
| 956 { -6, 66 }, { -7, 35 }, { -7, 42 }, { -8, 45 }, | |
| 957 { -5, 48 }, { -12, 56 }, { -6, 60 }, { -5, 62 }, | |
| 958 { -8, 66 }, { -8, 76 }, | |
| 959 | |
| 960 /* 436 - 459 */ | |
| 961 { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, | |
| 962 { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, | |
| 963 { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, | |
| 964 { -14, 66 }, { 0, 59 }, { 2, 59 }, { 21, -13 }, | |
| 965 { 33, -14 }, { 39, -7 }, { 46, -2 }, { 51, 2 }, | |
| 966 { 60, 6 }, { 61, 17 }, { 55, 34 }, { 42, 62 }, | |
| 967 }, | |
| 968 | |
| 969 /* i_cabac_init_idc == 1 */ | |
| 970 { | |
| 971 /* 0 - 10 */ | |
| 972 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
| 973 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
| 974 { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
| 975 | |
| 976 /* 11 - 23 */ | |
| 977 { 22, 25 }, { 34, 0 }, { 16, 0 }, { -2, 9 }, | |
| 978 { 4, 41 }, { -29, 118 }, { 2, 65 }, { -6, 71 }, | |
| 979 { -13, 79 }, { 5, 52 }, { 9, 50 }, { -3, 70 }, | |
| 980 { 10, 54 }, | |
| 981 | |
| 982 /* 24 - 39 */ | |
| 983 { 26, 34 }, { 19, 22 }, { 40, 0 }, { 57, 2 }, | |
| 984 { 41, 36 }, { 26, 69 }, { -45, 127 }, { -15, 101 }, | |
| 985 { -4, 76 }, { -6, 71 }, { -13, 79 }, { 5, 52 }, | |
| 986 { 6, 69 }, { -13, 90 }, { 0, 52 }, { 8, 43 }, | |
| 987 | |
| 988 /* 40 - 53 */ | |
| 989 { -2, 69 },{ -5, 82 },{ -10, 96 },{ 2, 59 }, | |
| 990 { 2, 75 },{ -3, 87 },{ -3, 100 },{ 1, 56 }, | |
| 991 { -3, 74 },{ -6, 85 },{ 0, 59 },{ -3, 81 }, | |
| 992 { -7, 86 },{ -5, 95 }, | |
| 993 | |
| 994 /* 54 - 59 */ | |
| 995 { -1, 66 },{ -1, 77 },{ 1, 70 },{ -2, 86 }, | |
| 996 { -5, 72 },{ 0, 61 }, | |
| 997 | |
| 998 /* 60 - 69 */ | |
| 999 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
| 1000 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
| 1001 { 13, 41 }, { 3, 62 }, | |
| 1002 | |
| 1003 /* 70 - 104 */ | |
| 1004 { 13, 15 }, { 7, 51 }, { 2, 80 }, { -39, 127 }, | |
| 1005 { -18, 91 }, { -17, 96 }, { -26, 81 }, { -35, 98 }, | |
| 1006 { -24, 102 }, { -23, 97 }, { -27, 119 }, { -24, 99 }, | |
| 1007 { -21, 110 }, { -18, 102 }, { -36, 127 }, { 0, 80 }, | |
| 1008 { -5, 89 }, { -7, 94 }, { -4, 92 }, { 0, 39 }, | |
| 1009 { 0, 65 }, { -15, 84 }, { -35, 127 }, { -2, 73 }, | |
| 1010 { -12, 104 }, { -9, 91 }, { -31, 127 }, { 3, 55 }, | |
| 1011 { 7, 56 }, { 7, 55 }, { 8, 61 }, { -3, 53 }, | |
| 1012 { 0, 68 }, { -7, 74 }, { -9, 88 }, | |
| 1013 | |
| 1014 /* 105 -> 165 */ | |
| 1015 { -13, 103 }, { -13, 91 }, { -9, 89 }, { -14, 92 }, | |
| 1016 { -8, 76 }, { -12, 87 }, { -23, 110 }, { -24, 105 }, | |
| 1017 { -10, 78 }, { -20, 112 }, { -17, 99 }, { -78, 127 }, | |
| 1018 { -70, 127 }, { -50, 127 }, { -46, 127 }, { -4, 66 }, | |
| 1019 { -5, 78 }, { -4, 71 }, { -8, 72 }, { 2, 59 }, | |
| 1020 { -1, 55 }, { -7, 70 }, { -6, 75 }, { -8, 89 }, | |
| 1021 { -34, 119 }, { -3, 75 }, { 32, 20 }, { 30, 22 }, | |
| 1022 { -44, 127 }, { 0, 54 }, { -5, 61 }, { 0, 58 }, | |
| 1023 { -1, 60 }, { -3, 61 }, { -8, 67 }, { -25, 84 }, | |
| 1024 { -14, 74 }, { -5, 65 }, { 5, 52 }, { 2, 57 }, | |
| 1025 { 0, 61 }, { -9, 69 }, { -11, 70 }, { 18, 55 }, | |
| 1026 { -4, 71 }, { 0, 58 }, { 7, 61 }, { 9, 41 }, | |
| 1027 { 18, 25 }, { 9, 32 }, { 5, 43 }, { 9, 47 }, | |
| 1028 { 0, 44 }, { 0, 51 }, { 2, 46 }, { 19, 38 }, | |
| 1029 { -4, 66 }, { 15, 38 }, { 12, 42 }, { 9, 34 }, | |
| 1030 { 0, 89 }, | |
| 1031 | |
| 1032 /* 166 - 226 */ | |
| 1033 { 4, 45 }, { 10, 28 }, { 10, 31 }, { 33, -11 }, | |
| 1034 { 52, -43 }, { 18, 15 }, { 28, 0 }, { 35, -22 }, | |
| 1035 { 38, -25 }, { 34, 0 }, { 39, -18 }, { 32, -12 }, | |
| 1036 { 102, -94 }, { 0, 0 }, { 56, -15 }, { 33, -4 }, | |
| 1037 { 29, 10 }, { 37, -5 }, { 51, -29 }, { 39, -9 }, | |
| 1038 { 52, -34 }, { 69, -58 }, { 67, -63 }, { 44, -5 }, | |
| 1039 { 32, 7 }, { 55, -29 }, { 32, 1 }, { 0, 0 }, | |
| 1040 { 27, 36 }, { 33, -25 }, { 34, -30 }, { 36, -28 }, | |
| 1041 { 38, -28 }, { 38, -27 }, { 34, -18 }, { 35, -16 }, | |
| 1042 { 34, -14 }, { 32, -8 }, { 37, -6 }, { 35, 0 }, | |
| 1043 { 30, 10 }, { 28, 18 }, { 26, 25 }, { 29, 41 }, | |
| 1044 { 0, 75 }, { 2, 72 }, { 8, 77 }, { 14, 35 }, | |
| 1045 { 18, 31 }, { 17, 35 }, { 21, 30 }, { 17, 45 }, | |
| 1046 { 20, 42 }, { 18, 45 }, { 27, 26 }, { 16, 54 }, | |
| 1047 { 7, 66 }, { 16, 56 }, { 11, 73 }, { 10, 67 }, | |
| 1048 { -10, 116 }, | |
| 1049 | |
| 1050 /* 227 - 275 */ | |
| 1051 { -23, 112 }, { -15, 71 }, { -7, 61 }, { 0, 53 }, | |
| 1052 { -5, 66 }, { -11, 77 }, { -9, 80 }, { -9, 84 }, | |
| 1053 { -10, 87 }, { -34, 127 }, { -21, 101 }, { -3, 39 }, | |
| 1054 { -5, 53 }, { -7, 61 }, { -11, 75 }, { -15, 77 }, | |
| 1055 { -17, 91 }, { -25, 107 }, { -25, 111 }, { -28, 122 }, | |
| 1056 { -11, 76 }, { -10, 44 }, { -10, 52 }, { -10, 57 }, | |
| 1057 { -9, 58 }, { -16, 72 }, { -7, 69 }, { -4, 69 }, | |
| 1058 { -5, 74 }, { -9, 86 }, { 2, 66 }, { -9, 34 }, | |
| 1059 { 1, 32 }, { 11, 31 }, { 5, 52 }, { -2, 55 }, | |
| 1060 { -2, 67 }, { 0, 73 }, { -8, 89 }, { 3, 52 }, | |
| 1061 { 7, 4 }, { 10, 8 }, { 17, 8 }, { 16, 19 }, | |
| 1062 { 3, 37 }, { -1, 61 }, { -5, 73 }, { -1, 70 }, | |
| 1063 { -4, 78 }, | |
| 1064 | |
| 1065 /* 276 a bit special (not used, bypass is used instead) */ | |
| 1066 { 0, 0 }, | |
| 1067 | |
| 1068 /* 277 - 337 */ | |
| 1069 { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 }, | |
| 1070 { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 }, | |
| 1071 { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 }, | |
| 1072 { -10, 95 }, { -14, 100 }, { -8, 95 }, { -17, 111 }, | |
| 1073 { -28, 114 }, { -6, 89 }, { -2, 80 }, { -4, 82 }, | |
| 1074 { -9, 85 }, { -8, 81 }, { -1, 72 }, { 5, 64 }, | |
| 1075 { 1, 67 }, { 9, 56 }, { 0, 69 }, { 1, 69 }, | |
| 1076 { 7, 69 }, { -7, 69 }, { -6, 67 }, { -16, 77 }, | |
| 1077 { -2, 64 }, { 2, 61 }, { -6, 67 }, { -3, 64 }, | |
| 1078 { 2, 57 }, { -3, 65 }, { -3, 66 }, { 0, 62 }, | |
| 1079 { 9, 51 }, { -1, 66 }, { -2, 71 }, { -2, 75 }, | |
| 1080 { -1, 70 }, { -9, 72 }, { 14, 60 }, { 16, 37 }, | |
| 1081 { 0, 47 }, { 18, 35 }, { 11, 37 }, { 12, 41 }, | |
| 1082 { 10, 41 }, { 2, 48 }, { 12, 41 }, { 13, 41 }, | |
| 1083 { 0, 59 }, { 3, 50 }, { 19, 40 }, { 3, 66 }, | |
| 1084 { 18, 50 }, | |
| 1085 | |
| 1086 /* 338 - 398 */ | |
| 1087 { 19, -6 }, { 18, -6 }, { 14, 0 }, { 26, -12 }, | |
| 1088 { 31, -16 }, { 33, -25 }, { 33, -22 }, { 37, -28 }, | |
| 1089 { 39, -30 }, { 42, -30 }, { 47, -42 }, { 45, -36 }, | |
| 1090 { 49, -34 }, { 41, -17 }, { 32, 9 }, { 69, -71 }, | |
| 1091 { 63, -63 }, { 66, -64 }, { 77, -74 }, { 54, -39 }, | |
| 1092 { 52, -35 }, { 41, -10 }, { 36, 0 }, { 40, -1 }, | |
| 1093 { 30, 14 }, { 28, 26 }, { 23, 37 }, { 12, 55 }, | |
| 1094 { 11, 65 }, { 37, -33 }, { 39, -36 }, { 40, -37 }, | |
| 1095 { 38, -30 }, { 46, -33 }, { 42, -30 }, { 40, -24 }, | |
| 1096 { 49, -29 }, { 38, -12 }, { 40, -10 }, { 38, -3 }, | |
| 1097 { 46, -5 }, { 31, 20 }, { 29, 30 }, { 25, 44 }, | |
| 1098 { 12, 48 }, { 11, 49 }, { 26, 45 }, { 22, 22 }, | |
| 1099 { 23, 22 }, { 27, 21 }, { 33, 20 }, { 26, 28 }, | |
| 1100 { 30, 24 }, { 27, 34 }, { 18, 42 }, { 25, 39 }, | |
| 1101 { 18, 50 }, { 12, 70 }, { 21, 54 }, { 14, 71 }, | |
| 1102 { 11, 83 }, | |
| 1103 | |
| 1104 /* 399 - 435 */ | |
| 1105 { 25, 32 }, { 21, 49 }, { 21, 54 }, | |
| 1106 { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, | |
| 1107 { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, | |
| 1108 { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, | |
| 1109 { -14, 66 }, { 0, 59 }, { 2, 59 }, { 17, -10 }, | |
| 1110 { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, | |
| 1111 { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, | |
| 1112 { -5, 71 }, { 0, 24 }, { -1, 36 }, { -2, 42 }, | |
| 1113 { -2, 52 }, { -9, 57 }, { -6, 63 }, { -4, 65 }, | |
| 1114 { -4, 67 }, { -7, 82 }, | |
| 1115 | |
| 1116 /* 436 - 459 */ | |
| 1117 { -3, 81 }, { -3, 76 }, { -7, 72 }, { -6, 78 }, | |
| 1118 { -12, 72 }, { -14, 68 }, { -3, 70 }, { -6, 76 }, | |
| 1119 { -5, 66 }, { -5, 62 }, { 0, 57 }, { -4, 61 }, | |
| 1120 { -9, 60 }, { 1, 54 }, { 2, 58 }, { 17, -10 }, | |
| 1121 { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, | |
| 1122 { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, | |
| 1123 }, | |
| 1124 | |
| 1125 /* i_cabac_init_idc == 2 */ | |
| 1126 { | |
| 1127 /* 0 - 10 */ | |
| 1128 { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
| 1129 { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
| 1130 { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
| 1131 | |
| 1132 /* 11 - 23 */ | |
| 1133 { 29, 16 }, { 25, 0 }, { 14, 0 }, { -10, 51 }, | |
| 1134 { -3, 62 }, { -27, 99 }, { 26, 16 }, { -4, 85 }, | |
| 1135 { -24, 102 }, { 5, 57 }, { 6, 57 }, { -17, 73 }, | |
| 1136 { 14, 57 }, | |
| 1137 | |
| 1138 /* 24 - 39 */ | |
| 1139 { 20, 40 }, { 20, 10 }, { 29, 0 }, { 54, 0 }, | |
| 1140 { 37, 42 }, { 12, 97 }, { -32, 127 }, { -22, 117 }, | |
| 1141 { -2, 74 }, { -4, 85 }, { -24, 102 }, { 5, 57 }, | |
| 1142 { -6, 93 }, { -14, 88 }, { -6, 44 }, { 4, 55 }, | |
| 1143 | |
| 1144 /* 40 - 53 */ | |
| 1145 { -11, 89 },{ -15, 103 },{ -21, 116 },{ 19, 57 }, | |
| 1146 { 20, 58 },{ 4, 84 },{ 6, 96 },{ 1, 63 }, | |
| 1147 { -5, 85 },{ -13, 106 },{ 5, 63 },{ 6, 75 }, | |
| 1148 { -3, 90 },{ -1, 101 }, | |
| 1149 | |
| 1150 /* 54 - 59 */ | |
| 1151 { 3, 55 },{ -4, 79 },{ -2, 75 },{ -12, 97 }, | |
| 1152 { -7, 50 },{ 1, 60 }, | |
| 1153 | |
| 1154 /* 60 - 69 */ | |
| 1155 { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
| 1156 { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
| 1157 { 13, 41 }, { 3, 62 }, | |
| 1158 | |
| 1159 /* 70 - 104 */ | |
| 1160 { 7, 34 }, { -9, 88 }, { -20, 127 }, { -36, 127 }, | |
| 1161 { -17, 91 }, { -14, 95 }, { -25, 84 }, { -25, 86 }, | |
| 1162 { -12, 89 }, { -17, 91 }, { -31, 127 }, { -14, 76 }, | |
| 1163 { -18, 103 }, { -13, 90 }, { -37, 127 }, { 11, 80 }, | |
| 1164 { 5, 76 }, { 2, 84 }, { 5, 78 }, { -6, 55 }, | |
| 1165 { 4, 61 }, { -14, 83 }, { -37, 127 }, { -5, 79 }, | |
| 1166 { -11, 104 }, { -11, 91 }, { -30, 127 }, { 0, 65 }, | |
| 1167 { -2, 79 }, { 0, 72 }, { -4, 92 }, { -6, 56 }, | |
| 1168 { 3, 68 }, { -8, 71 }, { -13, 98 }, | |
| 1169 | |
| 1170 /* 105 -> 165 */ | |
| 1171 { -4, 86 }, { -12, 88 }, { -5, 82 }, { -3, 72 }, | |
| 1172 { -4, 67 }, { -8, 72 }, { -16, 89 }, { -9, 69 }, | |
| 1173 { -1, 59 }, { 5, 66 }, { 4, 57 }, { -4, 71 }, | |
| 1174 { -2, 71 }, { 2, 58 }, { -1, 74 }, { -4, 44 }, | |
| 1175 { -1, 69 }, { 0, 62 }, { -7, 51 }, { -4, 47 }, | |
| 1176 { -6, 42 }, { -3, 41 }, { -6, 53 }, { 8, 76 }, | |
| 1177 { -9, 78 }, { -11, 83 }, { 9, 52 }, { 0, 67 }, | |
| 1178 { -5, 90 }, { 1, 67 }, { -15, 72 }, { -5, 75 }, | |
| 1179 { -8, 80 }, { -21, 83 }, { -21, 64 }, { -13, 31 }, | |
| 1180 { -25, 64 }, { -29, 94 }, { 9, 75 }, { 17, 63 }, | |
| 1181 { -8, 74 }, { -5, 35 }, { -2, 27 }, { 13, 91 }, | |
| 1182 { 3, 65 }, { -7, 69 }, { 8, 77 }, { -10, 66 }, | |
| 1183 { 3, 62 }, { -3, 68 }, { -20, 81 }, { 0, 30 }, | |
| 1184 { 1, 7 }, { -3, 23 }, { -21, 74 }, { 16, 66 }, | |
| 1185 { -23, 124 }, { 17, 37 }, { 44, -18 }, { 50, -34 }, | |
| 1186 { -22, 127 }, | |
| 1187 | |
| 1188 /* 166 - 226 */ | |
| 1189 { 4, 39 }, { 0, 42 }, { 7, 34 }, { 11, 29 }, | |
| 1190 { 8, 31 }, { 6, 37 }, { 7, 42 }, { 3, 40 }, | |
| 1191 { 8, 33 }, { 13, 43 }, { 13, 36 }, { 4, 47 }, | |
| 1192 { 3, 55 }, { 2, 58 }, { 6, 60 }, { 8, 44 }, | |
| 1193 { 11, 44 }, { 14, 42 }, { 7, 48 }, { 4, 56 }, | |
| 1194 { 4, 52 }, { 13, 37 }, { 9, 49 }, { 19, 58 }, | |
| 1195 { 10, 48 }, { 12, 45 }, { 0, 69 }, { 20, 33 }, | |
| 1196 { 8, 63 }, { 35, -18 }, { 33, -25 }, { 28, -3 }, | |
| 1197 { 24, 10 }, { 27, 0 }, { 34, -14 }, { 52, -44 }, | |
| 1198 { 39, -24 }, { 19, 17 }, { 31, 25 }, { 36, 29 }, | |
| 1199 { 24, 33 }, { 34, 15 }, { 30, 20 }, { 22, 73 }, | |
| 1200 { 20, 34 }, { 19, 31 }, { 27, 44 }, { 19, 16 }, | |
| 1201 { 15, 36 }, { 15, 36 }, { 21, 28 }, { 25, 21 }, | |
| 1202 { 30, 20 }, { 31, 12 }, { 27, 16 }, { 24, 42 }, | |
| 1203 { 0, 93 }, { 14, 56 }, { 15, 57 }, { 26, 38 }, | |
| 1204 { -24, 127 }, | |
| 1205 | |
| 1206 /* 227 - 275 */ | |
| 1207 { -24, 115 }, { -22, 82 }, { -9, 62 }, { 0, 53 }, | |
| 1208 { 0, 59 }, { -14, 85 }, { -13, 89 }, { -13, 94 }, | |
| 1209 { -11, 92 }, { -29, 127 }, { -21, 100 }, { -14, 57 }, | |
| 1210 { -12, 67 }, { -11, 71 }, { -10, 77 }, { -21, 85 }, | |
| 1211 { -16, 88 }, { -23, 104 }, { -15, 98 }, { -37, 127 }, | |
| 1212 { -10, 82 }, { -8, 48 }, { -8, 61 }, { -8, 66 }, | |
| 1213 { -7, 70 }, { -14, 75 }, { -10, 79 }, { -9, 83 }, | |
| 1214 { -12, 92 }, { -18, 108 }, { -4, 79 }, { -22, 69 }, | |
| 1215 { -16, 75 }, { -2, 58 }, { 1, 58 }, { -13, 78 }, | |
| 1216 { -9, 83 }, { -4, 81 }, { -13, 99 }, { -13, 81 }, | |
| 1217 { -6, 38 }, { -13, 62 }, { -6, 58 }, { -2, 59 }, | |
| 1218 { -16, 73 }, { -10, 76 }, { -13, 86 }, { -9, 83 }, | |
| 1219 { -10, 87 }, | |
| 1220 | |
| 1221 /* 276 a bit special (not used, bypass is used instead) */ | |
| 1222 { 0, 0 }, | |
| 1223 | |
| 1224 /* 277 - 337 */ | |
| 1225 { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 }, | |
| 1226 { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 }, | |
| 1227 { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 }, | |
| 1228 { -10, 94 }, { -15, 102 }, { -10, 99 }, { -13, 106 }, | |
| 1229 { -50, 127 }, { -5, 92 }, { 17, 57 }, { -5, 86 }, | |
| 1230 { -13, 94 }, { -12, 91 }, { -2, 77 }, { 0, 71 }, | |
| 1231 { -1, 73 }, { 4, 64 }, { -7, 81 }, { 5, 64 }, | |
| 1232 { 15, 57 }, { 1, 67 }, { 0, 68 }, { -10, 67 }, | |
| 1233 { 1, 68 }, { 0, 77 }, { 2, 64 }, { 0, 68 }, | |
| 1234 { -5, 78 }, { 7, 55 }, { 5, 59 }, { 2, 65 }, | |
| 1235 { 14, 54 }, { 15, 44 }, { 5, 60 }, { 2, 70 }, | |
| 1236 { -2, 76 }, { -18, 86 }, { 12, 70 }, { 5, 64 }, | |
| 1237 { -12, 70 }, { 11, 55 }, { 5, 56 }, { 0, 69 }, | |
| 1238 { 2, 65 }, { -6, 74 }, { 5, 54 }, { 7, 54 }, | |
| 1239 { -6, 76 }, { -11, 82 }, { -2, 77 }, { -2, 77 }, | |
| 1240 { 25, 42 }, | |
| 1241 | |
| 1242 /* 338 - 398 */ | |
| 1243 { 17, -13 }, { 16, -9 }, { 17, -12 }, { 27, -21 }, | |
| 1244 { 37, -30 }, { 41, -40 }, { 42, -41 }, { 48, -47 }, | |
| 1245 { 39, -32 }, { 46, -40 }, { 52, -51 }, { 46, -41 }, | |
| 1246 { 52, -39 }, { 43, -19 }, { 32, 11 }, { 61, -55 }, | |
| 1247 { 56, -46 }, { 62, -50 }, { 81, -67 }, { 45, -20 }, | |
| 1248 { 35, -2 }, { 28, 15 }, { 34, 1 }, { 39, 1 }, | |
| 1249 { 30, 17 }, { 20, 38 }, { 18, 45 }, { 15, 54 }, | |
| 1250 { 0, 79 }, { 36, -16 }, { 37, -14 }, { 37, -17 }, | |
| 1251 { 32, 1 }, { 34, 15 }, { 29, 15 }, { 24, 25 }, | |
| 1252 { 34, 22 }, { 31, 16 }, { 35, 18 }, { 31, 28 }, | |
| 1253 { 33, 41 }, { 36, 28 }, { 27, 47 }, { 21, 62 }, | |
| 1254 { 18, 31 }, { 19, 26 }, { 36, 24 }, { 24, 23 }, | |
| 1255 { 27, 16 }, { 24, 30 }, { 31, 29 }, { 22, 41 }, | |
| 1256 { 22, 42 }, { 16, 60 }, { 15, 52 }, { 14, 60 }, | |
| 1257 { 3, 78 }, { -16, 123 }, { 21, 53 }, { 22, 56 }, | |
| 1258 { 25, 61 }, | |
| 1259 | |
| 1260 /* 399 - 435 */ | |
| 1261 { 21, 33 }, { 19, 50 }, { 17, 61 }, | |
| 1262 { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, | |
| 1263 { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, | |
| 1264 { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, | |
| 1265 { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, | |
| 1266 { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, | |
| 1267 { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, | |
| 1268 { -9, 71 }, { -7, 37 }, { -8, 44 }, { -11, 49 }, | |
| 1269 { -10, 56 }, { -12, 59 }, { -8, 63 }, { -9, 67 }, | |
| 1270 { -6, 68 }, { -10, 79 }, | |
| 1271 | |
| 1272 /* 436 - 459 */ | |
| 1273 { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, | |
| 1274 { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, | |
| 1275 { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, | |
| 1276 { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, | |
| 1277 { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, | |
| 1278 { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, | |
| 1279 } | |
| 1280 }; |
