📄 hufftables.h
字号:
/********************************************************************
* *
* THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* *
* THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2003 *
* by the Xiph.Org Foundation http://www.xiph.org/ *
* *
********************************************************************
function:
********************************************************************/
#include "huffman.h"
#include "codec_internal.h"
const unsigned char ExtraBitLengths_VP31[MAX_ENTROPY_TOKENS] = {
0, 0, 0, 2, 3, 4, 12,3, 6, /* EOB and Zero-run tokens. */
0, 0, 0, 0, /* Very low value tokens. */
1, 1, 1, 1, 2, 3, 4, 5, 6, 10, /* Other value tokens */
1, 1, 1, 1, 1, 3, 4, /* Category 1 runs. */
2, 3, /* Category 2 runs. */
};
#define NEW_FREQS 0 /* dbm - test new frequency tables */
#if NEW_FREQS
/* New baseline frequency tables for encoder version >= 2 */
const ogg_uint32_t FrequencyCounts_VP3[NUM_HUFF_TABLES][MAX_ENTROPY_TOKENS] = {
/* DC Intra bias */
{ 272, 84, 31, 36, 10, 2, 1, 92, 1,
701, 872, 410, 478,
630, 502, 417, 356, 582, 824, 985, 965, 697, 606,
125, 119, 40, 3, 9, 15, 10,
73, 37,
},
{ 311, 107, 41, 51, 18, 4, 2, 120, 1,
824, 1037, 468, 541,
714, 555, 451, 374, 595, 819, 929, 817, 474, 220,
172, 142, 27, 4, 9, 10, 2,
98, 48,
},
{ 353, 125, 49, 66, 24, 6, 2, 124, 1,
926, 1172, 512, 594,
766, 581, 458, 379, 590, 789, 849, 665, 306, 80,
204, 147, 25, 5, 12, 9, 2,
108, 54,
},
{ 392, 141, 57, 75, 31, 7, 4, 138, 1,
1050, 1321, 559, 649,
806, 594, 460, 372, 568, 727, 710, 475, 155, 19,
251, 174, 27, 7, 16, 8, 2,
126, 62,
},
{ 455, 168, 66, 87, 39, 10, 6, 124, 2,
1143, 1455, 592, 692,
824, 596, 453, 361, 542, 657, 592, 329, 78, 5,
269, 184, 27, 9, 19, 7, 2,
127, 66,
},
{ 544, 201, 80, 102, 45, 11, 6, 99, 1,
1236, 1587, 610, 720,
833, 590, 444, 348, 506, 588, 487, 226, 39, 2,
253, 178, 27, 10, 20, 7, 2,
118, 65,
},
{ 649, 241, 98, 121, 54, 14, 8, 84, 1,
1349, 1719, 634, 763,
847, 583, 428, 323, 456, 492, 349, 120, 13, 1,
231, 170, 24, 8, 19, 7, 1,
109, 67,
},
{ 824, 304, 129, 158, 66, 19, 10, 44, 2,
1476, 1925, 644, 794,
838, 559, 396, 289, 392, 384, 223, 53, 3, 1,
159, 121, 17, 6, 16, 6, 2,
69, 53,
},
/* DC Inter Bias */
{ 534, 174, 71, 68, 10, 1, 1, 68, 119,
1674, 1526, 560, 536,
539, 331, 229, 168, 233, 262, 231, 149, 71, 51,
629, 530, 284, 126, 182, 208, 184,
148, 87,
},
{ 594, 195, 77, 71, 9, 1, 1, 47, 89,
1723, 1592, 595, 570,
574, 351, 241, 176, 243, 271, 234, 144, 65, 37,
534, 449, 240, 117, 167, 277, 153,
96, 54,
},
{ 642, 213, 88, 83, 12, 1, 1, 40, 80,
1751, 1630, 621, 600,
598, 367, 250, 183, 251, 276, 235, 143, 62, 28,
485, 397, 212, 110, 161, 193, 141,
84, 48,
},
{ 693, 258, 114, 131, 27, 3, 1, 44, 79,
1794, 1644, 550, 533,
518, 314, 213, 154, 209, 223, 174, 97, 40, 14,
584, 463, 236, 138, 196, 249, 143,
94, 54,
},
{ 758, 303, 144, 189, 53, 8, 1, 37, 69,
1842, 1732, 513, 504,
478, 287, 191, 137, 182, 186, 137, 72, 31, 6,
589, 469, 199, 128, 177, 264, 161,
89, 49,
},
{ 817, 344, 170, 243, 84, 18, 2, 30, 65,
1836, 1733, 518, 511,
477, 281, 185, 130, 169, 166, 117, 59, 25, 3,
572, 450, 185, 121, 173, 232, 146,
80, 43,
},
{ 865, 389, 204, 322, 139, 42, 9, 26, 51,
1848, 1766, 531, 522,
477, 275, 177, 122, 153, 144, 97, 50, 16, 1,
485, 378, 167, 115, 164, 203, 128,
74, 42,
},
{ 961, 447, 243, 407, 196, 74, 26, 12, 34,
2003, 1942, 571, 565,
494, 278, 173, 116, 141, 129, 85, 44, 8, 1,
285, 223, 101, 66, 104, 120, 74,
35, 22,
},
/* AC INTRA Tables */
/* AC Intra bias group 1 tables */
{ 245, 68, 25, 28, 5, 1, 1, 359, 4,
910, 904, 570, 571,
766, 620, 478, 375, 554, 684, 652, 441, 182, 30,
535, 206, 118, 77, 69, 90, 16,
299, 100,
},
{ 302, 86, 32, 36, 8, 1, 1, 362, 3,
974, 968, 599, 599,
774, 635, 469, 365, 528, 628, 557, 337, 118, 14,
577, 219, 136, 82, 69, 65, 13,
317, 112,
},
{ 348, 102, 39, 44, 9, 2, 1, 363, 3,
1062, 1055, 607, 609,
787, 626, 457, 348, 494, 550, 452, 233, 60, 2,
636, 244, 159, 92, 74, 68, 12,
327, 119,
},
{ 400, 121, 47, 51, 11, 2, 1, 366, 3,
1109, 1102, 620, 622,
786, 624, 450, 331, 459, 490, 366, 163, 29, 1,
673, 257, 175, 98, 77, 63, 14,
344, 131,
},
{ 470, 151, 59, 67, 15, 3, 1, 354, 4,
1198, 1189, 640, 643,
769, 603, 410, 294, 386, 381, 240, 78, 5, 1,
746, 282, 205, 113, 87, 64, 15,
368, 145,
},
{ 553, 189, 77, 94, 24, 6, 1, 347, 4,
1244, 1232, 650, 653,
739, 551, 360, 249, 303, 261, 129, 24, 1, 1,
828, 313, 245, 135, 108, 77, 17,
403, 169,
},
{ 701, 253, 109, 140, 42, 12, 2, 350, 6,
1210, 1197, 652, 647,
673, 495, 299, 189, 211, 151, 50, 2, 1, 1,
892, 336, 284, 162, 134, 101, 25,
455, 205,
},
{ 924, 390, 180, 248, 85, 31, 13, 286, 14,
1242, 1206, 601, 577,
519, 342, 175, 100, 85, 36, 1, 1, 1, 1,
1031, 348, 346, 204, 166, 131, 34,
473, 197,
},
/* AC Inter bias group 1 tables */
{ 459, 128, 50, 48, 8, 1, 1, 224, 69,
1285, 1227, 587, 565,
573, 406, 261, 180, 228, 213, 130, 47, 11, 3,
1069, 540, 309, 231, 147, 279, 157,
383, 165,
},
{ 524, 155, 62, 64, 14, 2, 1, 209, 63,
1345, 1288, 523, 507,
515, 358, 225, 153, 183, 160, 87, 29, 7, 2,
1151, 591, 365, 282, 179, 308, 133,
344, 157,
},
{ 588, 181, 75, 81, 19, 3, 1, 204, 68,
1344, 1288, 517, 503,
505, 346, 216, 141, 169, 139, 71, 21, 5, 1,
1146, 584, 366, 286, 170, 298, 153,
342, 157,
},
{ 634, 196, 82, 89, 22, 4, 1, 194, 60,
1356, 1312, 515, 502,
489, 331, 199, 127, 145, 111, 51, 14, 3, 1,
1156, 589, 393, 300, 182, 285, 144,
340, 159,
},
{ 715, 231, 98, 113, 31, 7, 1, 181, 57,
1345, 1303, 498, 490,
448, 291, 166, 101, 106, 75, 30, 9, 1, 1,
1175, 584, 416, 321, 209, 333, 164,
330, 159,
},
{ 825, 283, 125, 149, 44, 11, 2, 160, 59,
1343, 1308, 476, 469,
405, 247, 131, 75, 76, 47, 18, 5, 1, 1,
1192, 579, 432, 332, 217, 327, 176,
320, 154,
},
{ 961, 361, 170, 215, 70, 20, 5, 161, 55,
1250, 1218, 463, 460,
354, 204, 101, 52, 48, 28, 11, 1, 1, 1,
1172, 570, 449, 350, 222, 332, 169,
338, 174,
},
{ 1139, 506, 266, 387, 156, 57, 26, 114, 48,
1192, 1170, 366, 366,
226, 113, 47, 22, 22, 12, 1, 1, 1, 1,
1222, 551, 462, 391, 220, 322, 156,
290, 136,
},
/* AC Intra bias group 2 tables */
{ 245, 49, 15, 11, 1, 1, 1, 332, 38,
1163, 1162, 685, 683,
813, 623, 437, 318, 421, 424, 288, 109, 14, 1,
729, 303, 179, 112, 87, 199, 46,
364, 135,
},
{ 305, 67, 22, 17, 2, 1, 1, 329, 39,
1250, 1245, 706, 705,
801, 584, 385, 267, 330, 296, 165, 40, 3, 1,
798, 340, 206, 131, 108, 258, 52,
382, 154,
},
{ 356, 82, 28, 23, 3, 1, 1, 312, 42,
1340, 1334, 701, 703,
770, 545, 346, 227, 269, 223, 100, 17, 1, 1,
846, 359, 222, 142, 120, 284, 55,
379, 157,
},
{ 402, 95, 33, 30, 4, 1, 1, 300, 43,
1379, 1371, 710, 714,
724, 486, 289, 182, 202, 144, 47, 5, 1, 1,
908, 394, 250, 161, 141, 350, 60,
391, 171,
},
{ 499, 122, 44, 42, 7, 1, 1, 267, 45,
1439, 1436, 690, 694,
628, 385, 213, 122, 117, 62, 14, 1, 1, 1,
992, 441, 288, 187, 167, 446, 82,
378, 176,
},
{ 641, 168, 62, 60, 12, 1, 1, 247, 49,
1435, 1436, 662, 669,
527, 298, 142, 71, 55, 22, 3, 1, 1, 1,
1036, 470, 319, 208, 193, 548, 106,
362, 184,
},
{ 860, 274, 111, 113, 23, 4, 1, 229, 59,
1331, 1323, 629, 645,
419, 192, 72, 30, 19, 6, 1, 1, 1, 1,
1022, 478, 339, 225, 213, 690, 142,
342, 198,
},
{ 1059, 437, 218, 285, 84, 17, 2, 152, 44,
1284, 1313, 530, 561,
212, 66, 17, 6, 3, 1, 1, 1, 1, 1,
1034, 485, 346, 226, 207, 819, 185,
248, 145,
},
/* AC Inter bias group 2 tables */
{ 407, 93, 31, 24, 2, 1, 1, 232, 108,
1365, 1349, 581, 578,
498, 305, 170, 100, 103, 67, 24, 5, 1, 1,
1175, 604, 393, 268, 209, 506, 217,
379, 193,
},
{ 521, 129, 46, 39, 4, 1, 1, 199, 116,
1419, 1403, 543, 540,
446, 263, 138, 78, 75, 44, 13, 2, 1, 1,
1201, 605, 392, 267, 214, 533, 252,
334, 167,
},
{ 575, 144, 52, 46, 6, 1, 1, 193, 124,
1394, 1384, 528, 528,
406, 227, 112, 59, 54, 28, 7, 1, 1, 1,
1210, 621, 412, 284, 235, 604, 265,
320, 167,
},
{ 673, 174, 64, 59, 9, 1, 1, 177, 128,
1392, 1385, 499, 499,
352, 183, 85, 42, 35, 16, 3, 1, 1, 1,
1210, 626, 418, 289, 246, 675, 297,
292, 158,
},
{ 804, 225, 85, 77, 12, 1, 1, 150, 129,
1387, 1384, 455, 455,
277, 129, 53, 23, 17, 7, 1, 1, 1, 1,
1212, 635, 433, 306, 268, 760, 313,
249, 137,
},
{ 975, 305, 123, 117, 20, 2, 1, 135, 140,
1312, 1310, 401, 399,
201, 80, 28, 11, 8, 2, 1, 1, 1, 1,
1162, 623, 439, 314, 283, 906, 368,
203, 121,
},
{ 1205, 452, 208, 231, 50, 6, 1, 123, 149,
1161, 1164, 370, 370,
137, 45, 14, 4, 2, 1, 1, 1, 1, 1,
1047, 562, 413, 300, 277, 1020, 404,
168, 105,
},
{ 1297, 662, 389, 574, 200, 39, 4, 55, 120,
1069, 1076, 273, 265,
66, 14, 2, 1, 1, 1, 1, 1, 1, 1,
930, 475, 345, 249, 236, 1124, 376,
91, 56,
},
/* AC Intra bias group 3 tables */
{ 278, 55, 17, 12, 1, 1, 1, 288, 71,
1315, 1304, 725, 724,
733, 506, 307, 195, 225, 175, 77, 12, 1, 1,
904, 414, 246, 170, 126, 290, 205,
423, 185,
},
{ 382, 80, 26, 21, 2, 1, 1, 239, 64,
1442, 1429, 706, 701,
664, 420, 239, 146, 152, 105, 34, 2, 1, 1,
975, 440, 263, 185, 140, 332, 229,
397, 169,
},
{ 451, 97, 32, 27, 4, 1, 1, 223, 75,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -