This allows to avoid the codes table; furthermore, given that the runs fit into seven bits and level into nine, one can put them into one int16_t and use as symbols table in ff_vlc_init_from_lengths().
Unified · Split
| @@ -376,24 +376,22 @@ static int hq_hqa_decode_frame(AVCodecContext *avctx, AVFrame *pic, · 375 unmodified lines | ||
| 376 | 376 | |
| 377 | 377 | static av_cold void hq_init_static(void) |
| 378 | 378 | { |
| 379 | − VLC_INIT_STATIC_TABLE(hq_ac_rvlc, 9, NUM_HQ_AC_ENTRIES, | |
| 380 | − hq_ac_bits, 1, 1, hq_ac_codes, 2, 2, 0); | |
| 379 | + VLC_INIT_STATIC_TABLE_FROM_LENGTHS(hq_ac_rvlc, 9, NUM_HQ_AC_ENTRIES, | |
| 380 | + hq_ac_lens, 1, hq_ac_sym, 2, 2, 0, 0); | |
| 381 | 381 | |
| 382 | 382 | for (size_t i = 0; i < FF_ARRAY_ELEMS(hq_ac_rvlc); ++i) { |
| 383 | 383 | int len = hq_ac_rvlc[i].len; |
| 384 | − int sym = hq_ac_rvlc[i].sym, level = sym; | |
| 385 | − int run; | |
| 384 | + int sym = (int16_t)hq_ac_rvlc[i].sym, level = sym; | |
| 385 | + | |
| 386 | + // The invalid code has been remapped to HQ_AC_INVALID_RUN, | |
| 387 | + // so the VLC is complete. | |
| 388 | + av_assert1(len != 0); | |
| 386 | 389 | |
| 387 | 390 | if (len > 0) { |
| 388 | − level = hq_ac_syms[sym]; | |
| 389 | − run = hq_ac_skips[sym] + 1; | |
| 390 | − } else if (len < 0) { // More bits needed | |
| 391 | − run = 0; | |
| 392 | − } else { // Invalid code | |
| 393 | − run = HQ_AC_INVALID_RUN; | |
| 391 | + level = sym >> 7; | |
| 392 | + hq_ac_rvlc[i].run = sym & 0x7F; | |
| 394 | 393 | } |
| 395 | 394 | hq_ac_rvlc[i].len8 = len; |
| 396 | − hq_ac_rvlc[i].run = run; | |
| 397 | 395 | hq_ac_rvlc[i].level = level; |
| 398 | 396 | } |
| 399 | 397 | |
| @@ -23,7 +23,7 @@ · 22 unmodified lines | ||
| 23 | 23 | |
| 24 | 24 | #include <stdint.h> |
| 25 | 25 | |
| 26 | −#define NUM_HQ_AC_ENTRIES 746 | |
| 26 | +#define NUM_HQ_AC_ENTRIES 747 // includes one invalid entry | |
| 27 | 27 | #define NUM_HQ_PROFILES 22 |
| 28 | 28 | #define NUM_HQ_QUANTS 16 |
| 29 | 29 | |
| @@ -1157,298 +1157,215 @@ static const uint8_t hq_quant_map[NUM_HQ_QUANTS][2][4] = · 1127 unmodified lines | ||
| 1157 | 1157 | |
| 1158 | 1158 | #define HQ_AC_INVALID_RUN 0 |
| 1159 | 1159 | |
| 1160 | −static const uint8_t hq_ac_bits[NUM_HQ_AC_ENTRIES] = { | |
| 1161 | − 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, | |
| 1162 | − 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, | |
| 1163 | − 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, | |
| 1164 | − 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, | |
| 1165 | − 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, | |
| 1166 | − 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
| 1167 | − 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, | |
| 1168 | − 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, | |
| 1169 | − 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, | |
| 1170 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1171 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1172 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1173 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1174 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1175 | − 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 16, 16, 16, 16, 16, | |
| 1176 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1177 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1178 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1179 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1180 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1181 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1182 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1183 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1184 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1185 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1186 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1187 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1188 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1189 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1190 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1191 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1192 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1193 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1194 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1195 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1196 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1197 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1198 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1199 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1200 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1201 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1202 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1203 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1204 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1205 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1206 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1207 | − 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1208 | −}; | |
| 1209 | − | |
| 1210 | −static const uint16_t hq_ac_codes[NUM_HQ_AC_ENTRIES] = { | |
| 1211 | − 0x0000, 0x0001, 0x0004, 0x0005, 0x0006, 0x000E, 0x000F, 0x0010, | |
| 1212 | − 0x0011, 0x0012, 0x0013, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, | |
| 1213 | − 0x002D, 0x002E, 0x002F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, | |
| 1214 | − 0x0065, 0x0066, 0x0067, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, | |
| 1215 | − 0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, | |
| 1216 | − 0x00DD, 0x00DE, 0x00DF, 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, | |
| 1217 | − 0x01C5, 0x01C6, 0x01C7, 0x01C8, 0x01C9, 0x01CA, 0x01CB, 0x01CC, | |
| 1218 | − 0x01CD, 0x01CE, 0x01CF, 0x01D0, 0x01D1, 0x01D2, 0x01D3, 0x01D4, | |
| 1219 | − 0x01D5, 0x01D6, 0x01D7, 0x01D8, 0x01D9, 0x01DA, 0x01DB, 0x01DC, | |
| 1220 | − 0x01DD, 0x01DE, 0x01DF, 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, | |
| 1221 | − 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, | |
| 1222 | − 0x03CD, 0x03CE, 0x03CF, 0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, | |
| 1223 | − 0x03D5, 0x03D6, 0x03D7, 0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC, | |
| 1224 | − 0x03DD, 0x03DE, 0x03DF, 0x07C0, 0x07C1, 0x07C2, 0x07C3, 0x07C4, | |
| 1225 | − 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC, | |
| 1226 | − 0x07CD, 0x07CE, 0x07CF, 0x0FA0, 0x0FA1, 0x0FA2, 0x0FA3, 0x0FA4, | |
| 1227 | − 0x0FA5, 0x0FA6, 0x0FA7, 0x0FA8, 0x0FA9, 0x0FAA, 0x0FAB, 0x0FAC, | |
| 1228 | − 0x0FAD, 0x0FAE, 0x0FAF, 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, | |
| 1229 | − 0x1F65, 0x1F66, 0x1F67, 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, | |
| 1230 | − 0x1F6D, 0x1F6E, 0x1F6F, 0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, | |
| 1231 | − 0x1F75, 0x1F76, 0x1F77, 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, | |
| 1232 | − 0x1F7D, 0x1F7E, 0x1F7F, 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, | |
| 1233 | − 0x1F85, 0x1F86, 0x1F87, 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, | |
| 1234 | − 0x1F8D, 0x1F8E, 0x1F8F, 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, | |
| 1235 | − 0x1F95, 0x1F96, 0x1F97, 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, | |
| 1236 | − 0x1F9D, 0x1F9E, 0x1F9F, 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, | |
| 1237 | − 0x1FA5, 0x1FA6, 0x1FA7, 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, | |
| 1238 | − 0x1FAD, 0x1FAE, 0x1FAF, 0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, | |
| 1239 | − 0x1FB5, 0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, | |
| 1240 | − 0x1FBD, 0x1FBE, 0x1FBF, 0xFE00, 0xFE02, 0xFE03, 0xFE04, 0xFE05, | |
| 1241 | − 0xFE06, 0xFE07, 0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, | |
| 1242 | − 0xFE0E, 0xFE0F, 0xFE10, 0xFE11, 0xFE12, 0xFE13, 0xFE14, 0xFE15, | |
| 1243 | − 0xFE16, 0xFE17, 0xFE18, 0xFE19, 0xFE1A, 0xFE1B, 0xFE1C, 0xFE1D, | |
| 1244 | − 0xFE1E, 0xFE1F, 0xFE20, 0xFE21, 0xFE22, 0xFE23, 0xFE24, 0xFE25, | |
| 1245 | − 0xFE26, 0xFE27, 0xFE28, 0xFE29, 0xFE2A, 0xFE2B, 0xFE2C, 0xFE2D, | |
| 1246 | − 0xFE2E, 0xFE2F, 0xFE30, 0xFE31, 0xFE32, 0xFE33, 0xFE34, 0xFE35, | |
| 1247 | − 0xFE36, 0xFE37, 0xFE38, 0xFE39, 0xFE3A, 0xFE3B, 0xFE3C, 0xFE3D, | |
| 1248 | − 0xFE3E, 0xFE3F, 0xFE40, 0xFE41, 0xFE42, 0xFE43, 0xFE44, 0xFE45, | |
| 1249 | − 0xFE46, 0xFE47, 0xFE48, 0xFE49, 0xFE4A, 0xFE4B, 0xFE4C, 0xFE4D, | |
| 1250 | − 0xFE4E, 0xFE4F, 0xFE50, 0xFE51, 0xFE52, 0xFE53, 0xFE54, 0xFE55, | |
| 1251 | − 0xFE56, 0xFE57, 0xFE58, 0xFE59, 0xFE5A, 0xFE5B, 0xFE5C, 0xFE5D, | |
| 1252 | − 0xFE5E, 0xFE5F, 0xFE60, 0xFE61, 0xFE62, 0xFE63, 0xFE64, 0xFE65, | |
| 1253 | − 0xFE66, 0xFE67, 0xFE68, 0xFE69, 0xFE6A, 0xFE6B, 0xFE6C, 0xFE6D, | |
| 1254 | − 0xFE6E, 0xFE6F, 0xFE70, 0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE75, | |
| 1255 | − 0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A, 0xFE7B, 0xFE7C, 0xFE7D, | |
| 1256 | − 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83, 0xFE84, 0xFE85, | |
| 1257 | − 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C, 0xFE8D, | |
| 1258 | − 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95, | |
| 1259 | − 0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, | |
| 1260 | − 0xFE9E, 0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, | |
| 1261 | − 0xFEA6, 0xFEA7, 0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, | |
| 1262 | − 0xFEAE, 0xFEAF, 0xFEB0, 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, | |
| 1263 | − 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9, 0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, | |
| 1264 | − 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4, 0xFEC5, | |
| 1265 | − 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB, 0xFECC, 0xFECD, | |
| 1266 | − 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4, 0xFED5, | |
| 1267 | − 0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD, | |
| 1268 | − 0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, | |
| 1269 | − 0xFEE6, 0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, | |
| 1270 | − 0xFEEE, 0xFEEF, 0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, | |
| 1271 | − 0xFEF6, 0xFEF7, 0xFEF8, 0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0xFEFD, | |
| 1272 | − 0xFEFE, 0xFEFF, 0xFF00, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05, | |
| 1273 | − 0xFF06, 0xFF07, 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, | |
| 1274 | − 0xFF0E, 0xFF0F, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, | |
| 1275 | − 0xFF16, 0xFF17, 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D, | |
| 1276 | − 0xFF1E, 0xFF1F, 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, | |
| 1277 | − 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, | |
| 1278 | − 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, | |
| 1279 | − 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D, | |
| 1280 | − 0xFF3E, 0xFF3F, 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, | |
| 1281 | − 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, | |
| 1282 | − 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, | |
| 1283 | − 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D, | |
| 1284 | − 0xFF5E, 0xFF5F, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, | |
| 1285 | − 0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, | |
| 1286 | − 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75, | |
| 1287 | − 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D, | |
| 1288 | − 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85, | |
| 1289 | − 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, | |
| 1290 | − 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, | |
| 1291 | − 0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, | |
| 1292 | − 0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5, | |
| 1293 | − 0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD, | |
| 1294 | − 0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5, | |
| 1295 | − 0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD, | |
| 1296 | − 0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5, | |
| 1297 | − 0xFFC6, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD, | |
| 1298 | − 0xFFCE, 0xFFCF, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5, | |
| 1299 | − 0xFFD6, 0xFFD7, 0xFFD8, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD, | |
| 1300 | − 0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5, | |
| 1301 | − 0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED, | |
| 1302 | − 0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5, | |
| 1303 | − 0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD, | |
| 1304 | − 0xFFFE, 0xFFFF, | |
| 1305 | −}; | |
| 1160 | +#define E(level, skip) ((level * (1 << 7)) | (skip + 1)) | |
| 1161 | +// The invalid entry has length 16 and is mapped to an invalid run. | |
| 1162 | +#define INVALID_ENT HQ_AC_INVALID_RUN | |
| 1163 | +#define INV 16 | |
| 1306 | 1164 | |
| 1307 | −static const uint8_t hq_ac_skips[NUM_HQ_AC_ENTRIES] = { | |
| 1308 | − 0, 0, 0, 0, 64, 1, 1, 0, 0, 0, 0, 2, 2, 1, 1, 0, | |
| 1309 | − 0, 0, 0, 3, 3, 4, 4, 0, 0, 0, 0, 5, 5, 6, 6, 2, | |
| 1310 | − 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 7, 7, 8, 8, 9, | |
| 1311 | − 9, 10, 10, 3, 3, 4, 4, 2, 2, 1, 1, 1, 1, 1, 1, 0, | |
| 1312 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 12, 12, 13, | |
| 1313 | − 13, 14, 14, 5, 5, 6, 6, 3, 3, 4, 4, 2, 2, 2, 2, 1, | |
| 1314 | − 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 3, 3, 3, | |
| 1315 | − 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 1, 6, 6, 4, 4, 3, | |
| 1316 | − 3, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 7, 7, 8, 8, 9, | |
| 1317 | − 9, 10, 10, 7, 7, 8, 8, 4, 4, 3, 3, 2, 2, 2, 2, 2, | |
| 1318 | − 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 1, 2, 3, 4, | |
| 1319 | − 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | |
| 1320 | − 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, | |
| 1321 | − 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, | |
| 1322 | − 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 0, | |
| 1323 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1324 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1325 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1326 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1327 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1328 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1329 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1330 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1331 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1332 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1333 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1334 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1335 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1336 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1337 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1338 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1339 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1340 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1341 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1342 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1343 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1344 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1345 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1346 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1347 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1348 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1349 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1350 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1351 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1352 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1353 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1354 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1165 | +static const int16_t hq_ac_sym[NUM_HQ_AC_ENTRIES] = { | |
| 1166 | + E( 1, 0), E( -1, 0), E( 2, 0), E( -2, 0), E( 0, 64), | |
| 1167 | + E( 1, 1), E( -1, 1), E( 3, 0), E( -3, 0), E( 4, 0), | |
| 1168 | + E( -4, 0), E( 1, 2), E( -1, 2), E( 2, 1), E( -2, 1), | |
| 1169 | + E( 5, 0), E( -5, 0), E( 6, 0), E( -6, 0), E( 1, 3), | |
| 1170 | + E( -1, 3), E( 1, 4), E( -1, 4), E( 7, 0), E( -7, 0), | |
| 1171 | + E( 8, 0), E( -8, 0), E( 1, 5), E( -1, 5), E( 1, 6), | |
| 1172 | + E( -1, 6), E( 2, 2), E( -2, 2), E( 3, 1), E( -3, 1), | |
| 1173 | + E( 4, 1), E( -4, 1), E( 9, 0), E( -9, 0), E( 10, 0), | |
| 1174 | + E( -10, 0), E( 11, 0), E( -11, 0), E( 1, 7), E( -1, 7), | |
| 1175 | + E( 1, 8), E( -1, 8), E( 1, 9), E( -1, 9), E( 1, 10), | |
| 1176 | + E( -1, 10), E( 2, 3), E( -2, 3), E( 2, 4), E( -2, 4), | |
| 1177 | + E( 3, 2), E( -3, 2), E( 5, 1), E( -5, 1), E( 6, 1), | |
| 1178 | + E( -6, 1), E( 7, 1), E( -7, 1), E( 12, 0), E( -12, 0), | |
| 1179 | + E( 13, 0), E( -13, 0), E( 14, 0), E( -14, 0), E( 15, 0), | |
| 1180 | + E( -15, 0), E( 16, 0), E( -16, 0), E( 17, 0), E( -17, 0), | |
| 1181 | + E( 1, 11), E( -1, 11), E( 1, 12), E( -1, 12), E( 1, 13), | |
| 1182 | + E( -1, 13), E( 1, 14), E( -1, 14), E( 2, 5), E( -2, 5), | |
| 1183 | + E( 2, 6), E( -2, 6), E( 3, 3), E( -3, 3), E( 3, 4), | |
| 1184 | + E( -3, 4), E( 4, 2), E( -4, 2), E( 5, 2), E( -5, 2), | |
| 1185 | + E( 8, 1), E( -8, 1), E( 18, 0), E( -18, 0), E( 19, 0), | |
| 1186 | + E( -19, 0), E( 20, 0), E( -20, 0), E( 21, 0), E( -21, 0), | |
| 1187 | + E( 22, 0), E( -22, 0), E( 3, 5), E( -3, 5), E( 4, 3), | |
| 1188 | + E( -4, 3), E( 5, 3), E( -5, 3), E( 6, 2), E( -6, 2), | |
| 1189 | + E( 9, 1), E( -9, 1), E( 10, 1), E( -10, 1), E( 11, 1), | |
| 1190 | + E( -11, 1), E( 0, 0), E( 0, 1), E( 3, 6), E( -3, 6), | |
| 1191 | + E( 4, 4), E( -4, 4), E( 6, 3), E( -6, 3), E( 12, 1), | |
| 1192 | + E( -12, 1), E( 13, 1), E( -13, 1), E( 14, 1), E( -14, 1), | |
| 1193 | + E( 0, 2), E( 0, 3), E( 0, 4), E( 0, 5), E( 2, 7), | |
| 1194 | + E( -2, 7), E( 2, 8), E( -2, 8), E( 2, 9), E( -2, 9), | |
| 1195 | + E( 2, 10), E( -2, 10), E( 3, 7), E( -3, 7), E( 3, 8), | |
| 1196 | + E( -3, 8), E( 5, 4), E( -5, 4), E( 7, 3), E( -7, 3), | |
| 1197 | + E( 7, 2), E( -7, 2), E( 8, 2), E( -8, 2), E( 9, 2), | |
| 1198 | + E( -9, 2), E( 10, 2), E( -10, 2), E( 11, 2), E( -11, 2), | |
| 1199 | + E( 15, 1), E( -15, 1), E( 16, 1), E( -16, 1), E( 17, 1), | |
| 1200 | + E( -17, 1), E( 0, 0), E( 0, 1), E( 0, 2), E( 0, 3), | |
| 1201 | + E( 0, 4), E( 0, 5), E( 0, 6), E( 0, 7), E( 0, 8), | |
| 1202 | + E( 0, 9), E( 0, 10), E( 0, 11), E( 0, 12), E( 0, 13), | |
| 1203 | + E( 0, 14), E( 0, 15), E( 0, 16), E( 0, 17), E( 0, 18), | |
| 1204 | + E( 0, 19), E( 0, 20), E( 0, 21), E( 0, 22), E( 0, 23), | |
| 1205 | + E( 0, 24), E( 0, 25), E( 0, 26), E( 0, 27), E( 0, 28), | |
| 1206 | + E( 0, 29), E( 0, 30), E( 0, 31), E( 0, 32), E( 0, 33), | |
| 1207 | + E( 0, 34), E( 0, 35), E( 0, 36), E( 0, 37), E( 0, 38), | |
| 1208 | + E( 0, 39), E( 0, 40), E( 0, 41), E( 0, 42), E( 0, 43), | |
| 1209 | + E( 0, 44), E( 0, 45), E( 0, 46), E( 0, 47), E( 0, 48), | |
| 1210 | + E( 0, 49), E( 0, 50), E( 0, 51), E( 0, 52), E( 0, 53), | |
| 1211 | + E( 0, 54), E( 0, 55), E( 0, 56), E( 0, 57), E( 0, 58), | |
| 1212 | + E( 0, 59), E( 0, 60), E( 0, 61), E( 0, 62), E( 0, 63), | |
| 1213 | + E( 0, 0), INVALID_ENT, E( 1, 0), E( -1, 0), E( 2, 0), | |
| 1214 | + E( -2, 0), E( 3, 0), E( -3, 0), E( 4, 0), E( -4, 0), | |
| 1215 | + E( 5, 0), E( -5, 0), E( 6, 0), E( -6, 0), E( 7, 0), | |
| 1216 | + E( -7, 0), E( 8, 0), E( -8, 0), E( 9, 0), E( -9, 0), | |
| 1217 | + E( 10, 0), E( -10, 0), E( 11, 0), E( -11, 0), E( 12, 0), | |
| 1218 | + E( -12, 0), E( 13, 0), E( -13, 0), E( 14, 0), E( -14, 0), | |
| 1219 | + E( 15, 0), E( -15, 0), E( 16, 0), E( -16, 0), E( 17, 0), | |
| 1220 | + E( -17, 0), E( 18, 0), E( -18, 0), E( 19, 0), E( -19, 0), | |
| 1221 | + E( 20, 0), E( -20, 0), E( 21, 0), E( -21, 0), E( 22, 0), | |
| 1222 | + E( -22, 0), E( 23, 0), E( -23, 0), E( 24, 0), E( -24, 0), | |
| 1223 | + E( 25, 0), E( -25, 0), E( 26, 0), E( -26, 0), E( 27, 0), | |
| 1224 | + E( -27, 0), E( 28, 0), E( -28, 0), E( 29, 0), E( -29, 0), | |
| 1225 | + E( 30, 0), E( -30, 0), E( 31, 0), E( -31, 0), E( 32, 0), | |
| 1226 | + E( -32, 0), E( 33, 0), E( -33, 0), E( 34, 0), E( -34, 0), | |
| 1227 | + E( 35, 0), E( -35, 0), E( 36, 0), E( -36, 0), E( 37, 0), | |
| 1228 | + E( -37, 0), E( 38, 0), E( -38, 0), E( 39, 0), E( -39, 0), | |
| 1229 | + E( 40, 0), E( -40, 0), E( 41, 0), E( -41, 0), E( 42, 0), | |
| 1230 | + E( -42, 0), E( 43, 0), E( -43, 0), E( 44, 0), E( -44, 0), | |
| 1231 | + E( 45, 0), E( -45, 0), E( 46, 0), E( -46, 0), E( 47, 0), | |
| 1232 | + E( -47, 0), E( 48, 0), E( -48, 0), E( 49, 0), E( -49, 0), | |
| 1233 | + E( 50, 0), E( -50, 0), E( 51, 0), E( -51, 0), E( 52, 0), | |
| 1234 | + E( -52, 0), E( 53, 0), E( -53, 0), E( 54, 0), E( -54, 0), | |
| 1235 | + E( 55, 0), E( -55, 0), E( 56, 0), E( -56, 0), E( 57, 0), | |
| 1236 | + E( -57, 0), E( 58, 0), E( -58, 0), E( 59, 0), E( -59, 0), | |
| 1237 | + E( 60, 0), E( -60, 0), E( 61, 0), E( -61, 0), E( 62, 0), | |
| 1238 | + E( -62, 0), E( 63, 0), E( -63, 0), E( 64, 0), E( -64, 0), | |
| 1239 | + E( 65, 0), E( -65, 0), E( 66, 0), E( -66, 0), E( 67, 0), | |
| 1240 | + E( -67, 0), E( 68, 0), E( -68, 0), E( 69, 0), E( -69, 0), | |
| 1241 | + E( 70, 0), E( -70, 0), E( 71, 0), E( -71, 0), E( 72, 0), | |
| 1242 | + E( -72, 0), E( 73, 0), E( -73, 0), E( 74, 0), E( -74, 0), | |
| 1243 | + E( 75, 0), E( -75, 0), E( 76, 0), E( -76, 0), E( 77, 0), | |
| 1244 | + E( -77, 0), E( 78, 0), E( -78, 0), E( 79, 0), E( -79, 0), | |
| 1245 | + E( 80, 0), E( -80, 0), E( 81, 0), E( -81, 0), E( 82, 0), | |
| 1246 | + E( -82, 0), E( 83, 0), E( -83, 0), E( 84, 0), E( -84, 0), | |
| 1247 | + E( 85, 0), E( -85, 0), E( 86, 0), E( -86, 0), E( 87, 0), | |
| 1248 | + E( -87, 0), E( 88, 0), E( -88, 0), E( 89, 0), E( -89, 0), | |
| 1249 | + E( 90, 0), E( -90, 0), E( 91, 0), E( -91, 0), E( 92, 0), | |
| 1250 | + E( -92, 0), E( 93, 0), E( -93, 0), E( 94, 0), E( -94, 0), | |
| 1251 | + E( 95, 0), E( -95, 0), E( 96, 0), E( -96, 0), E( 97, 0), | |
| 1252 | + E( -97, 0), E( 98, 0), E( -98, 0), E( 99, 0), E( -99, 0), | |
| 1253 | + E( 100, 0), E(-100, 0), E( 101, 0), E(-101, 0), E( 102, 0), | |
| 1254 | + E(-102, 0), E( 103, 0), E(-103, 0), E( 104, 0), E(-104, 0), | |
| 1255 | + E( 105, 0), E(-105, 0), E( 106, 0), E(-106, 0), E( 107, 0), | |
| 1256 | + E(-107, 0), E( 108, 0), E(-108, 0), E( 109, 0), E(-109, 0), | |
| 1257 | + E( 110, 0), E(-110, 0), E( 111, 0), E(-111, 0), E( 112, 0), | |
| 1258 | + E(-112, 0), E( 113, 0), E(-113, 0), E( 114, 0), E(-114, 0), | |
| 1259 | + E( 115, 0), E(-115, 0), E( 116, 0), E(-116, 0), E( 117, 0), | |
| 1260 | + E(-117, 0), E( 118, 0), E(-118, 0), E( 119, 0), E(-119, 0), | |
| 1261 | + E( 120, 0), E(-120, 0), E( 121, 0), E(-121, 0), E( 122, 0), | |
| 1262 | + E(-122, 0), E( 123, 0), E(-123, 0), E( 124, 0), E(-124, 0), | |
| 1263 | + E( 125, 0), E(-125, 0), E( 126, 0), E(-126, 0), E( 127, 0), | |
| 1264 | + E(-127, 0), E( 128, 0), E(-128, 0), E( 129, 0), E(-129, 0), | |
| 1265 | + E( 130, 0), E(-130, 0), E( 131, 0), E(-131, 0), E( 132, 0), | |
| 1266 | + E(-132, 0), E( 133, 0), E(-133, 0), E( 134, 0), E(-134, 0), | |
| 1267 | + E( 135, 0), E(-135, 0), E( 136, 0), E(-136, 0), E( 137, 0), | |
| 1268 | + E(-137, 0), E( 138, 0), E(-138, 0), E( 139, 0), E(-139, 0), | |
| 1269 | + E( 140, 0), E(-140, 0), E( 141, 0), E(-141, 0), E( 142, 0), | |
| 1270 | + E(-142, 0), E( 143, 0), E(-143, 0), E( 144, 0), E(-144, 0), | |
| 1271 | + E( 145, 0), E(-145, 0), E( 146, 0), E(-146, 0), E( 147, 0), | |
| 1272 | + E(-147, 0), E( 148, 0), E(-148, 0), E( 149, 0), E(-149, 0), | |
| 1273 | + E( 150, 0), E(-150, 0), E( 151, 0), E(-151, 0), E( 152, 0), | |
| 1274 | + E(-152, 0), E( 153, 0), E(-153, 0), E( 154, 0), E(-154, 0), | |
| 1275 | + E( 155, 0), E(-155, 0), E( 156, 0), E(-156, 0), E( 157, 0), | |
| 1276 | + E(-157, 0), E( 158, 0), E(-158, 0), E( 159, 0), E(-159, 0), | |
| 1277 | + E( 160, 0), E(-160, 0), E( 161, 0), E(-161, 0), E( 162, 0), | |
| 1278 | + E(-162, 0), E( 163, 0), E(-163, 0), E( 164, 0), E(-164, 0), | |
| 1279 | + E( 165, 0), E(-165, 0), E( 166, 0), E(-166, 0), E( 167, 0), | |
| 1280 | + E(-167, 0), E( 168, 0), E(-168, 0), E( 169, 0), E(-169, 0), | |
| 1281 | + E( 170, 0), E(-170, 0), E( 171, 0), E(-171, 0), E( 172, 0), | |
| 1282 | + E(-172, 0), E( 173, 0), E(-173, 0), E( 174, 0), E(-174, 0), | |
| 1283 | + E( 175, 0), E(-175, 0), E( 176, 0), E(-176, 0), E( 177, 0), | |
| 1284 | + E(-177, 0), E( 178, 0), E(-178, 0), E( 179, 0), E(-179, 0), | |
| 1285 | + E( 180, 0), E(-180, 0), E( 181, 0), E(-181, 0), E( 182, 0), | |
| 1286 | + E(-182, 0), E( 183, 0), E(-183, 0), E( 184, 0), E(-184, 0), | |
| 1287 | + E( 185, 0), E(-185, 0), E( 186, 0), E(-186, 0), E( 187, 0), | |
| 1288 | + E(-187, 0), E( 188, 0), E(-188, 0), E( 189, 0), E(-189, 0), | |
| 1289 | + E( 190, 0), E(-190, 0), E( 191, 0), E(-191, 0), E( 192, 0), | |
| 1290 | + E(-192, 0), E( 193, 0), E(-193, 0), E( 194, 0), E(-194, 0), | |
| 1291 | + E( 195, 0), E(-195, 0), E( 196, 0), E(-196, 0), E( 197, 0), | |
| 1292 | + E(-197, 0), E( 198, 0), E(-198, 0), E( 199, 0), E(-199, 0), | |
| 1293 | + E( 200, 0), E(-200, 0), E( 201, 0), E(-201, 0), E( 202, 0), | |
| 1294 | + E(-202, 0), E( 203, 0), E(-203, 0), E( 204, 0), E(-204, 0), | |
| 1295 | + E( 205, 0), E(-205, 0), E( 206, 0), E(-206, 0), E( 207, 0), | |
| 1296 | + E(-207, 0), E( 208, 0), E(-208, 0), E( 209, 0), E(-209, 0), | |
| 1297 | + E( 210, 0), E(-210, 0), E( 211, 0), E(-211, 0), E( 212, 0), | |
| 1298 | + E(-212, 0), E( 213, 0), E(-213, 0), E( 214, 0), E(-214, 0), | |
| 1299 | + E( 215, 0), E(-215, 0), E( 216, 0), E(-216, 0), E( 217, 0), | |
| 1300 | + E(-217, 0), E( 218, 0), E(-218, 0), E( 219, 0), E(-219, 0), | |
| 1301 | + E( 220, 0), E(-220, 0), E( 221, 0), E(-221, 0), E( 222, 0), | |
| 1302 | + E(-222, 0), E( 223, 0), E(-223, 0), E( 224, 0), E(-224, 0), | |
| 1303 | + E( 225, 0), E(-225, 0), E( 226, 0), E(-226, 0), E( 227, 0), | |
| 1304 | + E(-227, 0), E( 228, 0), E(-228, 0), E( 229, 0), E(-229, 0), | |
| 1305 | + E( 230, 0), E(-230, 0), E( 231, 0), E(-231, 0), E( 232, 0), | |
| 1306 | + E(-232, 0), E( 233, 0), E(-233, 0), E( 234, 0), E(-234, 0), | |
| 1307 | + E( 235, 0), E(-235, 0), E( 236, 0), E(-236, 0), E( 237, 0), | |
| 1308 | + E(-237, 0), E( 238, 0), E(-238, 0), E( 239, 0), E(-239, 0), | |
| 1309 | + E( 240, 0), E(-240, 0), E( 241, 0), E(-241, 0), E( 242, 0), | |
| 1310 | + E(-242, 0), E( 243, 0), E(-243, 0), E( 244, 0), E(-244, 0), | |
| 1311 | + E( 245, 0), E(-245, 0), E( 246, 0), E(-246, 0), E( 247, 0), | |
| 1312 | + E(-247, 0), E( 248, 0), E(-248, 0), E( 249, 0), E(-249, 0), | |
| 1313 | + E( 250, 0), E(-250, 0), E( 251, 0), E(-251, 0), E( 252, 0), | |
| 1314 | + E(-252, 0), E( 253, 0), E(-253, 0), E( 254, 0), E(-254, 0), | |
| 1315 | + E( 255, 0), E(-255, 0), | |
| 1355 | 1316 | }; |
| 1356 | 1317 | |
| 1357 | −static const int16_t hq_ac_syms[NUM_HQ_AC_ENTRIES] = { | |
| 1358 | − 1, -1, 2, -2, 0, 1, -1, 3, | |
| 1359 | − -3, 4, -4, 1, -1, 2, -2, 5, | |
| 1360 | − -5, 6, -6, 1, -1, 1, -1, 7, | |
| 1361 | − -7, 8, -8, 1, -1, 1, -1, 2, | |
| 1362 | − -2, 3, -3, 4, -4, 9, -9, 10, | |
| 1363 | − -10, 11, -11, 1, -1, 1, -1, 1, | |
| 1364 | − -1, 1, -1, 2, -2, 2, -2, 3, | |
| 1365 | − -3, 5, -5, 6, -6, 7, -7, 12, | |
| 1366 | − -12, 13, -13, 14, -14, 15, -15, 16, | |
| 1367 | − -16, 17, -17, 1, -1, 1, -1, 1, | |
| 1368 | − -1, 1, -1, 2, -2, 2, -2, 3, | |
| 1369 | − -3, 3, -3, 4, -4, 5, -5, 8, | |
| 1370 | − -8, 18, -18, 19, -19, 20, -20, 21, | |
| 1371 | − -21, 22, -22, 3, -3, 4, -4, 5, | |
| 1372 | − -5, 6, -6, 9, -9, 10, -10, 11, | |
| 1373 | − -11, 0, 0, 3, -3, 4, -4, 6, | |
| 1374 | − -6, 12, -12, 13, -13, 14, -14, 0, | |
| 1375 | − 0, 0, 0, 2, -2, 2, -2, 2, | |
| 1376 | − -2, 2, -2, 3, -3, 3, -3, 5, | |
| 1377 | − -5, 7, -7, 7, -7, 8, -8, 9, | |
| 1378 | − -9, 10, -10, 11, -11, 15, -15, 16, | |
| 1379 | − -16, 17, -17, 0, 0, 0, 0, 0, | |
| 1380 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1381 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1382 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1383 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1384 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1385 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1386 | − 0, 0, 0, 0, 0, 0, 0, 0, | |
| 1387 | − 0, 0, 0, 0, 1, -1, 2, -2, | |
| 1388 | − 3, -3, 4, -4, 5, -5, 6, -6, | |
| 1389 | − 7, -7, 8, -8, 9, -9, 10, -10, | |
| 1390 | − 11, -11, 12, -12, 13, -13, 14, -14, | |
| 1391 | − 15, -15, 16, -16, 17, -17, 18, -18, | |
| 1392 | − 19, -19, 20, -20, 21, -21, 22, -22, | |
| 1393 | − 23, -23, 24, -24, 25, -25, 26, -26, | |
| 1394 | − 27, -27, 28, -28, 29, -29, 30, -30, | |
| 1395 | − 31, -31, 32, -32, 33, -33, 34, -34, | |
| 1396 | − 35, -35, 36, -36, 37, -37, 38, -38, | |
| 1397 | − 39, -39, 40, -40, 41, -41, 42, -42, | |
| 1398 | − 43, -43, 44, -44, 45, -45, 46, -46, | |
| 1399 | − 47, -47, 48, -48, 49, -49, 50, -50, | |
| 1400 | − 51, -51, 52, -52, 53, -53, 54, -54, | |
| 1401 | − 55, -55, 56, -56, 57, -57, 58, -58, | |
| 1402 | − 59, -59, 60, -60, 61, -61, 62, -62, | |
| 1403 | − 63, -63, 64, -64, 65, -65, 66, -66, | |
| 1404 | − 67, -67, 68, -68, 69, -69, 70, -70, | |
| 1405 | − 71, -71, 72, -72, 73, -73, 74, -74, | |
| 1406 | − 75, -75, 76, -76, 77, -77, 78, -78, | |
| 1407 | − 79, -79, 80, -80, 81, -81, 82, -82, | |
| 1408 | − 83, -83, 84, -84, 85, -85, 86, -86, | |
| 1409 | − 87, -87, 88, -88, 89, -89, 90, -90, | |
| 1410 | − 91, -91, 92, -92, 93, -93, 94, -94, | |
| 1411 | − 95, -95, 96, -96, 97, -97, 98, -98, | |
| 1412 | − 99, -99, 100, -100, 101, -101, 102, -102, | |
| 1413 | − 103, -103, 104, -104, 105, -105, 106, -106, | |
| 1414 | − 107, -107, 108, -108, 109, -109, 110, -110, | |
| 1415 | − 111, -111, 112, -112, 113, -113, 114, -114, | |
| 1416 | − 115, -115, 116, -116, 117, -117, 118, -118, | |
| 1417 | − 119, -119, 120, -120, 121, -121, 122, -122, | |
| 1418 | − 123, -123, 124, -124, 125, -125, 126, -126, | |
| 1419 | − 127, -127, 128, -128, 129, -129, 130, -130, | |
| 1420 | − 131, -131, 132, -132, 133, -133, 134, -134, | |
| 1421 | − 135, -135, 136, -136, 137, -137, 138, -138, | |
| 1422 | − 139, -139, 140, -140, 141, -141, 142, -142, | |
| 1423 | − 143, -143, 144, -144, 145, -145, 146, -146, | |
| 1424 | − 147, -147, 148, -148, 149, -149, 150, -150, | |
| 1425 | − 151, -151, 152, -152, 153, -153, 154, -154, | |
| 1426 | − 155, -155, 156, -156, 157, -157, 158, -158, | |
| 1427 | − 159, -159, 160, -160, 161, -161, 162, -162, | |
| 1428 | − 163, -163, 164, -164, 165, -165, 166, -166, | |
| 1429 | − 167, -167, 168, -168, 169, -169, 170, -170, | |
| 1430 | − 171, -171, 172, -172, 173, -173, 174, -174, | |
| 1431 | − 175, -175, 176, -176, 177, -177, 178, -178, | |
| 1432 | − 179, -179, 180, -180, 181, -181, 182, -182, | |
| 1433 | − 183, -183, 184, -184, 185, -185, 186, -186, | |
| 1434 | − 187, -187, 188, -188, 189, -189, 190, -190, | |
| 1435 | − 191, -191, 192, -192, 193, -193, 194, -194, | |
| 1436 | − 195, -195, 196, -196, 197, -197, 198, -198, | |
| 1437 | − 199, -199, 200, -200, 201, -201, 202, -202, | |
| 1438 | − 203, -203, 204, -204, 205, -205, 206, -206, | |
| 1439 | − 207, -207, 208, -208, 209, -209, 210, -210, | |
| 1440 | − 211, -211, 212, -212, 213, -213, 214, -214, | |
| 1441 | − 215, -215, 216, -216, 217, -217, 218, -218, | |
| 1442 | − 219, -219, 220, -220, 221, -221, 222, -222, | |
| 1443 | − 223, -223, 224, -224, 225, -225, 226, -226, | |
| 1444 | − 227, -227, 228, -228, 229, -229, 230, -230, | |
| 1445 | − 231, -231, 232, -232, 233, -233, 234, -234, | |
| 1446 | − 235, -235, 236, -236, 237, -237, 238, -238, | |
| 1447 | − 239, -239, 240, -240, 241, -241, 242, -242, | |
| 1448 | − 243, -243, 244, -244, 245, -245, 246, -246, | |
| 1449 | − 247, -247, 248, -248, 249, -249, 250, -250, | |
| 1450 | − 251, -251, 252, -252, 253, -253, 254, -254, | |
| 1451 | − 255, -255, | |
| 1318 | +static const uint8_t hq_ac_lens[NUM_HQ_AC_ENTRIES] = { | |
| 1319 | + 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, | |
| 1320 | + 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, | |
| 1321 | + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, | |
| 1322 | + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, | |
| 1323 | + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, | |
| 1324 | + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
| 1325 | + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
| 1326 | + 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, | |
| 1327 | + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, | |
| 1328 | + 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1329 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1330 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1331 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1332 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1333 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, | |
| 1334 | + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 16, INV,16, 16, 16, | |
| 1335 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1336 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1337 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1338 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1339 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1340 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1341 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1342 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1343 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1344 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1345 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1346 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1347 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1348 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1349 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1350 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1351 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1352 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1353 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1354 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1355 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1356 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1357 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1358 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1359 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1360 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1361 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1362 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1363 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1364 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1365 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1366 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1367 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1368 | + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
| 1452 | 1369 | }; |
| 1453 | 1370 | |
| 1454 | 1371 | /* tables section - one per supported profile */ |