📄 vp3huff.c
字号:
#include <stdlib.h>#include <stdio.h>#include <string.h>typedef struct{ unsigned long pattern; int nbits;}theora_huff_code;/*The default Huffman codes used for VP3.1. These tables were generated by /experimental/derf/theora-exp/tools/huffgen.c using the same algorithm and sampled frequency counts used by VP3.*/const theora_huff_code OC_VP31_HUFF_CODES[80][32]={ { {0x002D, 6},{0x0026, 7},{0x0166, 9},{0x004E, 8}, {0x02CE,10},{0x059E,11},{0x027D,11},{0x0008, 5}, {0x04F9,12},{0x000F, 4},{0x000E, 4},{0x001B, 5}, {0x0006, 4},{0x0008, 4},{0x0005, 4},{0x001A, 5}, {0x0015, 5},{0x0007, 4},{0x000C, 4},{0x0001, 3}, {0x0000, 3},{0x0009, 4},{0x0017, 5},{0x0029, 6}, {0x0028, 6},{0x00B2, 8},{0x04F8,12},{0x059F,11}, {0x009E, 9},{0x013F,10},{0x0012, 6},{0x0058, 7} }, { {0x0010, 5},{0x0047, 7},{0x01FF, 9},{0x008C, 8}, {0x03FC,10},{0x046A,11},{0x0469,11},{0x0022, 6}, {0x11A1,13},{0x000E, 4},{0x000D, 4},{0x0004, 4}, {0x0005, 4},{0x0009, 4},{0x0006, 4},{0x001E, 5}, {0x0016, 5},{0x0007, 4},{0x000C, 4},{0x0001, 3}, {0x0000, 3},{0x000A, 4},{0x0017, 5},{0x007D, 7}, {0x007E, 7},{0x011B, 9},{0x08D1,12},{0x03FD,10}, {0x046B,11},{0x11A0,13},{0x007C, 7},{0x00FE, 8} }, { {0x0016, 5},{0x0020, 6},{0x0086, 8},{0x0087, 8}, {0x0367,10},{0x06CC,11},{0x06CB,11},{0x006E, 7}, {0x366D,14},{0x000F, 4},{0x000E, 4},{0x0004, 4}, {0x0005, 4},{0x000A, 4},{0x0006, 4},{0x001A, 5}, {0x0011, 5},{0x0007, 4},{0x000C, 4},{0x0001, 3}, {0x0000, 3},{0x0009, 4},{0x0017, 5},{0x006F, 7}, {0x006D, 7},{0x0364,10},{0x0D9A,12},{0x06CA,11}, {0x1B37,13},{0x366C,14},{0x0042, 7},{0x00D8, 8} }, { {0x0000, 4},{0x002D, 6},{0x00F7, 8},{0x0058, 7}, {0x0167, 9},{0x02CB,10},{0x02CA,10},{0x000E, 6}, {0x1661,13},{0x0003, 3},{0x0002, 3},{0x0008, 4}, {0x0009, 4},{0x000D, 4},{0x0002, 4},{0x001F, 5}, {0x0017, 5},{0x0001, 4},{0x000C, 4},{0x000E, 4}, {0x000A, 4},{0x0006, 5},{0x0078, 7},{0x000F, 6}, {0x007A, 7},{0x0164, 9},{0x0599,11},{0x02CD,10}, {0x0B31,12},{0x1660,13},{0x0079, 7},{0x00F6, 8} }, { {0x0003, 4},{0x003C, 6},{0x000F, 7},{0x007A, 7}, {0x001D, 8},{0x0020, 9},{0x0072,10},{0x0006, 6}, {0x0399,13},{0x0004, 3},{0x0005, 3},{0x0005, 4}, {0x0006, 4},{0x000E, 4},{0x0004, 4},{0x0000, 4}, {0x0019, 5},{0x0002, 4},{0x000D, 4},{0x0007, 4}, {0x001F, 5},{0x0030, 6},{0x0011, 8},{0x0031, 6}, {0x0005, 6},{0x0021, 9},{0x00E7,11},{0x0038, 9}, {0x01CD,12},{0x0398,13},{0x007B, 7},{0x0009, 7} }, { {0x0009, 4},{0x0002, 5},{0x0074, 7},{0x0007, 6}, {0x00EC, 8},{0x00D1, 9},{0x01A6,10},{0x0006, 6}, {0x0D21,13},{0x0005, 3},{0x0006, 3},{0x0008, 4}, {0x0007, 4},{0x000F, 4},{0x0004, 4},{0x0000, 4}, {0x001C, 5},{0x0002, 4},{0x0005, 4},{0x0003, 4}, {0x000C, 5},{0x0035, 7},{0x01A7,10},{0x001B, 6}, {0x0077, 7},{0x01A5,10},{0x0349,11},{0x00D0, 9}, {0x0691,12},{0x0D20,13},{0x0075, 7},{0x00ED, 8} }, { {0x000A, 4},{0x000C, 5},{0x0012, 6},{0x001B, 6}, {0x00B7, 8},{0x016C, 9},{0x0099, 9},{0x005A, 7}, {0x16D8,13},{0x0007, 3},{0x0006, 3},{0x0009, 4}, {0x0008, 4},{0x0000, 3},{0x0005, 4},{0x0017, 5}, {0x000E, 5},{0x0002, 4},{0x0003, 4},{0x000F, 5}, {0x001A, 6},{0x004D, 8},{0x2DB3,14},{0x002C, 6}, {0x0011, 6},{0x02DA,10},{0x05B7,11},{0x0098, 9}, {0x0B6D,12},{0x2DB2,14},{0x0010, 6},{0x0027, 7} }, { {0x000D, 4},{0x000F, 5},{0x001D, 6},{0x0008, 5}, {0x0051, 7},{0x0056, 8},{0x00AF, 9},{0x002A, 7}, {0x148A,13},{0x0007, 3},{0x0000, 2},{0x0008, 4}, {0x0009, 4},{0x000C, 4},{0x0006, 4},{0x0017, 5}, {0x000B, 5},{0x0016, 5},{0x0015, 5},{0x0009, 5}, {0x0050, 7},{0x00AE, 9},{0x2917,14},{0x001C, 6}, {0x0014, 6},{0x0290,10},{0x0523,11},{0x0149, 9}, {0x0A44,12},{0x2916,14},{0x0053, 7},{0x00A5, 8} }, { {0x0001, 4},{0x001D, 6},{0x00F5, 8},{0x00F4, 8}, {0x024D,10},{0x0499,11},{0x0498,11},{0x0001, 5}, {0x0021, 6},{0x0006, 3},{0x0005, 3},{0x0006, 4}, {0x0005, 4},{0x0002, 4},{0x0007, 5},{0x0025, 6}, {0x007B, 7},{0x001C, 6},{0x0020, 6},{0x000D, 6}, {0x0048, 7},{0x0092, 8},{0x0127, 9},{0x000E, 4}, {0x0004, 4},{0x0011, 5},{0x000C, 6},{0x003C, 6}, {0x000F, 5},{0x0000, 5},{0x001F, 5},{0x0013, 5} }, { {0x0005, 4},{0x003C, 6},{0x0040, 7},{0x000D, 7}, {0x0031, 9},{0x0061,10},{0x0060,10},{0x0002, 5}, {0x00F5, 8},{0x0006, 3},{0x0005, 3},{0x0007, 4}, {0x0006, 4},{0x0002, 4},{0x0009, 5},{0x0025, 6}, {0x0007, 6},{0x0021, 6},{0x0024, 6},{0x0010, 6}, {0x0041, 7},{0x00F4, 8},{0x0019, 8},{0x000E, 4}, {0x0003, 4},{0x0011, 5},{0x0011, 6},{0x003F, 6}, {0x003E, 6},{0x007B, 7},{0x0000, 4},{0x0013, 5} }, { {0x000A, 4},{0x0007, 5},{0x0001, 6},{0x0009, 6}, {0x0131, 9},{0x0261,10},{0x0260,10},{0x0015, 6}, {0x0001, 7},{0x0007, 3},{0x0006, 3},{0x0008, 4}, {0x0007, 4},{0x0006, 4},{0x0012, 5},{0x002F, 6}, {0x0014, 6},{0x0027, 6},{0x002D, 6},{0x0016, 6}, {0x004D, 7},{0x0099, 8},{0x0000, 7},{0x0004, 4}, {0x0001, 4},{0x0005, 5},{0x0017, 6},{0x002E, 6}, {0x002C, 6},{0x0008, 6},{0x0006, 5},{0x0001, 5} }, { {0x0000, 3},{0x000E, 5},{0x0017, 6},{0x002A, 6}, {0x0010, 7},{0x00F9,10},{0x00F8,10},{0x001E, 7}, {0x003F, 8},{0x0007, 3},{0x0006, 3},{0x0009, 4}, {0x0008, 4},{0x0006, 4},{0x000F, 5},{0x0005, 5}, {0x0016, 6},{0x0029, 6},{0x002B, 6},{0x0015, 6}, {0x0050, 7},{0x0011, 7},{0x007D, 9},{0x0004, 4}, {0x0017, 5},{0x0006, 5},{0x0014, 6},{0x002C, 6}, {0x002D, 6},{0x000E, 6},{0x0009, 6},{0x0051, 7} }, { {0x0002, 3},{0x0018, 5},{0x002F, 6},{0x000D, 5}, {0x0053, 7},{0x0295,10},{0x0294,10},{0x00A4, 8}, {0x007C, 8},{0x0000, 2},{0x0007, 3},{0x0009, 4}, {0x0008, 4},{0x001B, 5},{0x000C, 5},{0x0028, 6}, {0x006A, 7},{0x001E, 6},{0x001D, 6},{0x0069, 7}, {0x00D7, 8},{0x007D, 8},{0x014B, 9},{0x0019, 5}, {0x0016, 5},{0x002E, 6},{0x001C, 6},{0x002B, 6}, {0x002A, 6},{0x0068, 7},{0x003F, 7},{0x00D6, 8} }, { {0x0002, 3},{0x001B, 5},{0x000C, 5},{0x0018, 5}, {0x0029, 6},{0x007F, 8},{0x02F0,10},{0x0198, 9}, {0x0179, 9},{0x0000, 2},{0x0007, 3},{0x0009, 4}, {0x0008, 4},{0x001A, 5},{0x000D, 5},{0x002A, 6}, {0x0064, 7},{0x001E, 6},{0x0067, 7},{0x005F, 7}, {0x00CD, 8},{0x007E, 8},{0x02F1,10},{0x0016, 5}, {0x000E, 5},{0x002E, 6},{0x0065, 7},{0x002B, 6}, {0x0028, 6},{0x003E, 7},{0x00BD, 8},{0x0199, 9} }, { {0x0002, 3},{0x0007, 4},{0x0016, 5},{0x0006, 4}, {0x0036, 6},{0x005C, 7},{0x015D, 9},{0x015C, 9}, {0x02BF,10},{0x0000, 2},{0x0007, 3},{0x0009, 4}, {0x0008, 4},{0x0018, 5},{0x0034, 6},{0x002A, 6}, {0x005E, 7},{0x006A, 7},{0x0064, 7},{0x005D, 7}, {0x00CB, 8},{0x00AD, 8},{0x02BE,10},{0x0014, 5}, {0x0033, 6},{0x006E, 7},{0x005F, 7},{0x006F, 7}, {0x006B, 7},{0x00CA, 8},{0x00AC, 8},{0x015E, 9} }, { {0x000F, 4},{0x001D, 5},{0x0018, 5},{0x000B, 4}, {0x0019, 5},{0x0029, 6},{0x00D6, 8},{0x0551,11}, {0x0AA1,12},{0x0001, 2},{0x0000, 2},{0x0009, 4}, {0x0008, 4},{0x001B, 5},{0x0038, 6},{0x0028, 6}, {0x0057, 7},{0x006A, 7},{0x0068, 7},{0x0056, 7}, {0x00E5, 8},{0x0155, 9},{0x0AA0,12},{0x0073, 7}, {0x0069, 7},{0x00D7, 8},{0x00AB, 8},{0x00E4, 8}, {0x00A9, 8},{0x0151, 9},{0x0150, 9},{0x02A9,10} }, { {0x0008, 5},{0x0025, 7},{0x017A, 9},{0x02F7,10}, {0x0BDB,12},{0x17B4,13},{0x2F6B,14},{0x001D, 5}, {0x2F6A,14},{0x0008, 4},{0x0007, 4},{0x0001, 4}, {0x0002, 4},{0x000A, 4},{0x0006, 4},{0x0000, 4}, {0x001C, 5},{0x0009, 4},{0x000D, 4},{0x000F, 4}, {0x000C, 4},{0x0003, 4},{0x000A, 5},{0x0016, 5}, {0x0013, 6},{0x005D, 7},{0x0024, 7},{0x00BC, 8}, {0x005C, 7},{0x05EC,11},{0x000B, 5},{0x005F, 7} }, { {0x000F, 5},{0x0010, 6},{0x004B, 8},{0x00C6, 8}, {0x031D,10},{0x0C71,12},{0x0C70,12},{0x0001, 4}, {0x0C73,12},{0x0008, 4},{0x0009, 4},{0x0002, 4}, {0x0003, 4},{0x000B, 4},{0x0006, 4},{0x0000, 4}, {0x001C, 5},{0x0005, 4},{0x000D, 4},{0x000F, 4}, {0x000A, 4},{0x0019, 5},{0x0013, 6},{0x001D, 5}, {0x0030, 6},{0x0062, 7},{0x0024, 7},{0x004A, 8}, {0x018F, 9},{0x0C72,12},{0x000E, 5},{0x0011, 6} }, { {0x001B, 5},{0x0003, 6},{0x008D, 8},{0x0040, 7}, {0x0239,10},{0x0471,11},{0x08E0,12},{0x0003, 4}, {0x11C3,13},{0x000A, 4},{0x0009, 4},{0x0004, 4}, {0x0005, 4},{0x000E, 4},{0x0007, 4},{0x0001, 4}, {0x001E, 5},{0x0006, 4},{0x000C, 4},{0x000B, 4}, {0x0002, 4},{0x0000, 5},{0x0041, 7},{0x001F, 5}, {0x0022, 6},{0x0002, 6},{0x008F, 8},{0x008C, 8}, {0x011D, 9},{0x11C2,13},{0x001A, 5},{0x0021, 6} }, { {0x001F, 5},{0x0003, 6},{0x0003, 7},{0x0043, 7}, {0x000B, 9},{0x0015,10},{0x0051,12},{0x0003, 4}, {0x0050,12},{0x000D, 4},{0x000C, 4},{0x0004, 4}, {0x0006, 4},{0x000E, 4},{0x000A, 4},{0x0001, 4}, {0x001E, 5},{0x0005, 4},{0x0009, 4},{0x0007, 4}, {0x0011, 5},{0x0002, 6},{0x0004, 8},{0x0002, 4}, {0x002D, 6},{0x0020, 6},{0x0042, 7},{0x0001, 7}, {0x0000, 7},{0x0029,11},{0x0017, 5},{0x002C, 6} }, { {0x0003, 4},{0x001F, 6},{0x003A, 7},{0x005D, 7}, {0x0173, 9},{0x02E4,10},{0x172D,13},{0x0004, 4}, {0x172C,13},{0x000F, 4},{0x000E, 4},{0x0009, 4}, {0x0008, 4},{0x000C, 4},{0x000A, 4},{0x0001, 4}, {0x0016, 5},{0x0002, 4},{0x0005, 4},{0x001A, 5}, {0x002F, 6},{0x0038, 7},{0x05CA,11},{0x0006, 4}, {0x0037, 6},{0x001E, 6},{0x003B, 7},{0x0039, 7}, {0x00B8, 8},{0x0B97,12},{0x0000, 4},{0x0036, 6} }, { {0x0006, 4},{0x0037, 6},{0x005D, 7},{0x000C, 6}, {0x00B9, 8},{0x02E3,10},{0x05C4,11},{0x0004, 4}, {0x1715,13},{0x0000, 3},{0x000F, 4},{0x0008, 4}, {0x0007, 4},{0x000C, 4},{0x0009, 4},{0x001D, 5}, {0x0016, 5},{0x001C, 5},{0x001A, 5},{0x000B, 5}, {0x005E, 7},{0x0170, 9},{0x1714,13},{0x000A, 4}, {0x000A, 5},{0x0036, 6},{0x005F, 7},{0x001B, 7}, {0x001A, 7},{0x0B8B,12},{0x0002, 4},{0x0007, 5} }, { {0x000C, 4},{0x000B, 5},{0x0079, 7},{0x0022, 6}, {0x00F0, 8},{0x0119, 9},{0x0230,10},{0x001D, 5}, {0x08C4,12},{0x0001, 3},{0x0000, 3},{0x000A, 4}, {0x0009, 4},{0x000B, 4},{0x0007, 4},{0x001C, 5}, {0x003D, 6},{0x000D, 5},{0x0008, 5},{0x0015, 6}, {0x008D, 8},{0x118B,13},{0x118A,13},{0x000D, 4}, {0x0010, 5},{0x0009, 5},{0x0014, 6},{0x0047, 7}, {0x00F1, 8},{0x0463,11},{0x001F, 5},{0x000C, 5} }, { {0x0000, 3},{0x001A, 5},{0x0033, 6},{0x000C, 5}, {0x0046, 7},{0x01E3, 9},{0x03C5,10},{0x0017, 5}, {0x1E21,13},{0x0002, 3},{0x0001, 3},{0x0009, 4}, {0x000A, 4},{0x0007, 4},{0x001B, 5},{0x003D, 6}, {0x001B, 6},{0x0022, 6},{0x0079, 7},{0x00F0, 8}, {0x1E20,13},{0x1E23,13},{0x1E22,13},{0x000E, 4}, {0x0016, 5},{0x0018, 5},{0x0032, 6},{0x001A, 6}, {0x0047, 7},{0x0789,11},{0x001F, 5},{0x0010, 5} }, { {0x001D, 5},{0x0061, 7},{0x004E, 8},{0x009E, 9}, {0x027C,11},{0x09F5,13},{0x09F4,13},{0x0003, 4}, {0x0060, 7},{0x0000, 3},{0x000F, 4},{0x000B, 4}, {0x000A, 4},{0x0009, 4},{0x0005, 4},{0x000D, 5}, {0x0031, 6},{0x0008, 5},{0x0038, 6},{0x0012, 6}, {0x0026, 7},{0x013F,10},{0x04FB,12},{0x000D, 4}, {0x0002, 4},{0x000C, 5},{0x0039, 6},{0x001C, 6}, {0x000F, 5},{0x001D, 6},{0x0008, 4},{0x0019, 5} }, { {0x0007, 4},{0x0019, 6},{0x00AB, 8},{0x00AA, 8}, {0x0119,10},{0x0461,12},{0x0460,12},{0x001B, 5}, {0x0047, 8},{0x0001, 3},{0x0000, 3},{0x000C, 4}, {0x000B, 4},{0x0009, 4},{0x0005, 4},{0x000D, 5}, {0x0035, 6},{0x003D, 6},{0x003C, 6},{0x0018, 6}, {0x0022, 7},{0x008D, 9},{0x0231,11},{0x000E, 4}, {0x001F, 5},{0x0009, 5},{0x002B, 6},{0x0010, 6}, {0x0034, 6},{0x0054, 7},{0x0008, 4},{0x0014, 5} }, { {0x000C, 4},{0x0005, 5},{0x0008, 6},{0x005B, 7}, {0x004D, 9},{0x0131,11},{0x0261,12},{0x001A, 5}, {0x0012, 7},{0x0000, 3},{0x000F, 4},{0x000A, 4}, {0x0009, 4},{0x0006, 4},{0x001B, 5},{0x0006, 5}, {0x001C, 6},{0x002C, 6},{0x0015, 6},{0x005A, 7}, {0x0027, 8},{0x0099,10},{0x0260,12},{0x000E, 4}, {0x0004, 4},{0x000F, 5},{0x0007, 5},{0x001D, 6}, {0x000B, 5},{0x0014, 6},{0x0008, 4},{0x0017, 5} }, { {0x000F, 4},{0x0013, 5},{0x0075, 7},{0x0024, 6}, {0x0095, 8},{0x0251,10},{0x04A0,11},{0x0010, 5}, {0x00C8, 8},{0x0002, 3},{0x0001, 3},{0x0001, 4}, {0x0000, 4},{0x001A, 5},{0x0011, 5},{0x002C, 6}, {0x0065, 7},{0x0074, 7},{0x004B, 7},{0x00C9, 8}, {0x0129, 9},{0x0943,12},{0x0942,12},{0x0003, 3}, {0x000A, 4},{0x001C, 5},{0x0018, 5},{0x0033, 6}, {0x0017, 5},{0x002D, 6},{0x001B, 5},{0x003B, 6} }, { {0x0003, 3},{0x001A, 5},{0x002D, 6},{0x0038, 6}, {0x0028, 7},{0x0395,10},{0x0E51,12},{0x0037, 6}, {0x00E4, 8},{0x0001, 3},{0x0000, 3},{0x001F, 5},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -