AAC Huffman Tables

From MultimediaWiki
Revision as of 15:52, 11 March 2006 by 71.198.76.184 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Part of Understanding AAC

These Huffman tables are formatted in a manner conducive to being included in FFmpeg.

AAC Huffman Table 1

AAC Huffman Table 2

AAC Huffman Table 3

static const unsigned short aac_huffman_table_quad_3[][6] = {
   /* codeword, code length, 4 data points */
   { 0x0, 1, 0, 0, 0, 0 },
   { 0x8, 4, 1, 0, 0, 0 },
   { 0x9, 4, 0, 0, 0, 1 },
   { 0xA, 4, 0, 1, 0, 0 },
   { 0xB, 4, 0, 0, 1, 0 },
   { 0x18, 5, 1, 1, 0, 0 },
   { 0x19, 5, 0, 0, 1, 1 },
   { 0x34, 6, 0, 1, 1, 0 },
   { 0x35, 6, 0, 1, 0, 1 },
   { 0x36, 6, 1, 0, 1, 0 },
   { 0x37, 6, 0, 1, 1, 1 },
   { 0x38, 6, 1, 0, 0, 1 },
   { 0x39, 6, 1, 1, 1, 0 },
   { 0x74, 7, 1, 1, 1, 1 },
   { 0x75, 7, 1, 0, 1, 1 },
   { 0x76, 7, 1, 1, 0, 1 },
   { 0xEE, 8, 2, 0, 0, 0 },
   { 0xEF, 8, 0, 0, 0, 2 },
   { 0xF0, 8, 0, 0, 1, 2 },
   { 0xF1, 8, 2, 1, 0, 0 },
   { 0xF2, 8, 1, 2, 1, 0 },
   { 0x1E6, 9, 0, 0, 2, 1 },
   { 0x1E7, 9, 0, 1, 2, 1 },
   { 0x1E8, 9, 1, 2, 0, 0 },
   { 0x1E9, 9, 0, 1, 1, 2 },
   { 0x1EA, 9, 2, 1, 1, 0 },
   { 0x1EB, 9, 0, 0, 2, 0 },
   { 0x1EC, 9, 0, 2, 1, 0 },
   { 0x1ED, 9, 0, 1, 2, 0 },
   { 0x1EE, 9, 0, 2, 0, 0 },
   { 0x1EF, 9, 0, 1, 0, 2 },
   { 0x1F0, 9, 2, 0, 1, 0 },
   { 0x1F1, 9, 1, 2, 1, 1 },
   { 0x1F2, 9, 0, 2, 1, 1 },
   { 0x1F3, 9, 1, 1, 2, 0 },
   { 0x1F4, 9, 1, 1, 2, 1 },
   { 0x3EA, 10, 1, 2, 0, 1 },
   { 0x3EB, 10, 1, 0, 2, 0 },
   { 0x3EC, 10, 1, 0, 2, 1 },
   { 0x3ED, 10, 0, 2, 0, 1 },
   { 0x3EE, 10, 2, 1, 1, 1 },
   { 0x3EF, 10, 1, 1, 1, 2 },
   { 0x3F0, 10, 2, 1, 0, 1 },
   { 0x3F1, 10, 1, 0, 1, 2 },
   { 0x3F2, 10, 0, 0, 2, 2 },
   { 0x3F3, 10, 0, 1, 2, 2 },
   { 0x3F4, 10, 2, 2, 1, 0 },
   { 0x3F5, 10, 1, 2, 2, 0 },
   { 0x3F6, 10, 1, 0, 0, 2 },
   { 0x3F7, 10, 2, 0, 0, 1 },
   { 0x3F8, 10, 0, 2, 2, 1 },
   { 0x7F2, 11, 2, 2, 0, 0 },
   { 0x7F3, 11, 1, 2, 2, 1 },
   { 0x7F4, 11, 1, 1, 0, 2 },
   { 0x7F5, 11, 2, 0, 1, 1 },
   { 0x7F6, 11, 1, 1, 2, 2 },
   { 0x7F7, 11, 2, 2, 1, 1 },
   { 0x7F8, 11, 0, 2, 2, 0 },
   { 0x7F9, 11, 0, 2, 1, 2 },
   { 0xFF4, 12, 1, 0, 2, 2 },
   { 0xFF5, 12, 2, 2, 0, 1 },
   { 0xFF6, 12, 2, 1, 2, 0 },
   { 0xFF7, 12, 2, 2, 2, 0 },
   { 0xFF8, 12, 0, 2, 2, 2 },
   { 0xFF9, 12, 2, 2, 2, 1 },
   { 0xFFA, 12, 2, 1, 2, 1 },
   { 0xFFB, 12, 1, 2, 1, 2 },
   { 0xFFC, 12, 1, 2, 2, 2 },
   { 0x1FFA, 13, 0, 2, 0, 2 },
   { 0x1FFB, 13, 2, 0, 2, 0 },
   { 0x1FFC, 13, 1, 2, 0, 2 },
   { 0x3FFA, 14, 2, 0, 2, 1 },
   { 0x3FFB, 14, 2, 1, 1, 2 },
   { 0x3FFC, 14, 2, 1, 0, 2 },
   { 0x7FFA, 15, 2, 2, 2, 2 },
   { 0x7FFB, 15, 2, 2, 1, 2 },
   { 0x7FFC, 15, 2, 1, 2, 2 },
   { 0x7FFD, 15, 2, 0, 1, 2 },
   { 0x7FFE, 15, 2, 0, 0, 2 },
   { 0xFFFE, 16, 2, 2, 0, 2 },
   { 0xFFFF, 16, 2, 0, 2, 2 },
};

AAC Huffman Table 4

AAC Huffman Table 5

static const unsigned short aac_huffman_table_pair_5[][4] = {
   /* codeword, code length, 2 data points */
   { 0x0, 1, 0, 0 },
   { 0x8, 4, -1, 0 },
   { 0x9, 4, 1, 0 },
   { 0xA, 4, 0, 1 },
   { 0xB, 4, 0, -1 },
   { 0x18, 5, 1, -1 },
   { 0x19, 5, -1, 1 },
   { 0x1A, 5, -1, -1 },
   { 0x1B, 5, 1, 1 },
   { 0x70, 7, -2, 0 },
   { 0x71, 7, 0, 2 },
   { 0x72, 7, 2, 0 },
   { 0x73, 7, 0, -2 },
   { 0xE8, 8, -2, -1 },
   { 0xE9, 8, 2, 1 },
   { 0xEA, 8, -1, -2 },
   { 0xEB, 8, 1, 2 },
   { 0xEC, 8, -2, 1 },
   { 0xED, 8, 2, -1 },
   { 0xEE, 8, -1, 2 },
   { 0xEF, 8, 1, -2 },
   { 0xF0, 8, -3, 0 },
   { 0xF1, 8, 3, 0 },
   { 0xF2, 8, 0, -3 },
   { 0xF3, 8, 0, 3 },
   { 0x1E8, 9, -3, -1 },
   { 0x1E9, 9, 1, 3 },
   { 0x1EA, 9, 3, 1 },
   { 0x1EB, 9, -1, -3 },
   { 0x1EC, 9, -3, 1 },
   { 0x1ED, 9, 3, -1 },
   { 0x1EE, 9, 1, -3 },
   { 0x1EF, 9, -1, 3 },
   { 0x1F0, 9, -2, 2 },
   { 0x1F1, 9, 2, 2 },
   { 0x1F2, 9, -2, -2 },
   { 0x1F3, 9, 2, -2 },
   { 0x3E8, 10, -3, -2 },
   { 0x3E9, 10, 3, -2 },
   { 0x3EA, 10, -2, 3 },
   { 0x3EB, 10, 2, -3 },
   { 0x3EC, 10, 3, 2 },
   { 0x3ED, 10, 2, 3 },
   { 0x3EE, 10, -3, 2 },
   { 0x3EF, 10, -2, -3 },
   { 0x3F0, 10, 0, -4 },
   { 0x3F1, 10, -4, 0 },
   { 0x3F2, 10, 4, 1 },
   { 0x3F3, 10, 4, 0 },
   { 0x7E8, 11, -4, -1 },
   { 0x7E9, 11, 0, 4 },
   { 0x7EA, 11, 4, -1 },
   { 0x7EB, 11, -1, -4 },
   { 0x7EC, 11, 1, 4 },
   { 0x7ED, 11, -1, 4 },
   { 0x7EE, 11, -4, 1 },
   { 0x7EF, 11, 1, -4 },
   { 0x7F0, 11, 3, -3 },
   { 0x7F1, 11, -3, -3 },
   { 0x7F2, 11, -3, 3 },
   { 0x7F3, 11, -2, 4 },
   { 0x7F4, 11, -4, -2 },
   { 0x7F5, 11, 4, 2 },
   { 0x7F6, 11, 2, -4 },
   { 0x7F7, 11, 2, 4 },
   { 0x7F8, 11, 3, 3 },
   { 0x7F9, 11, -4, 2 },
   { 0xFF4, 12, -2, -4 },
   { 0xFF5, 12, 4, -2 },
   { 0xFF6, 12, 3, -4 },
   { 0xFF7, 12, -4, -3 },
   { 0xFF8, 12, -4, 3 },
   { 0xFF9, 12, 3, 4 },
   { 0xFFA, 12, -3, 4 },
   { 0xFFB, 12, 4, 3 },
   { 0xFFC, 12, 4, -3 },
   { 0xFFD, 12, -3, -4 },
   { 0x1FFC, 13, 4, -4 },
   { 0x1FFD, 13, -4, 4 },
   { 0x1FFE, 13, 4, 4 },
   { 0x1FFF, 13, -4, -4 },
};

AAC Huffman Table 6

AAC Huffman Table 7

static const unsigned short aac_huffman_table_pair_7[][4] = {
   /* codeword, code length, 2 data points */
   { 0x0, 1, 0, 0 },
   { 0x4, 3, 1, 0 },
   { 0x5, 3, 0, 1 },
   { 0xC, 4, 1, 1 },
   { 0x34, 6, 2, 1 },
   { 0x35, 6, 1, 2 },
   { 0x36, 6, 2, 0 },
   { 0x37, 6, 0, 2 },
   { 0x70, 7, 3, 1 },
   { 0x71, 7, 1, 3 },
   { 0x72, 7, 2, 2 },
   { 0x73, 7, 3, 0 },
   { 0x74, 7, 0, 3 },
   { 0xEA, 8, 2, 3 },
   { 0xEB, 8, 3, 2 },
   { 0xEC, 8, 1, 4 },
   { 0xED, 8, 4, 1 },
   { 0xEE, 8, 1, 5 },
   { 0xEF, 8, 5, 1 },
   { 0xF0, 8, 3, 3 },
   { 0xF1, 8, 2, 4 },
   { 0xF2, 8, 0, 4 },
   { 0xF3, 8, 4, 0 },
   { 0x1E8, 9, 4, 2 },
   { 0x1E9, 9, 2, 5 },
   { 0x1EA, 9, 5, 2 },
   { 0x1EB, 9, 0, 5 },
   { 0x1EC, 9, 6, 1 },
   { 0x1ED, 9, 5, 0 },
   { 0x1EE, 9, 1, 6 },
   { 0x1EF, 9, 4, 3 },
   { 0x1F0, 9, 3, 5 },
   { 0x1F1, 9, 3, 4 },
   { 0x1F2, 9, 5, 3 },
   { 0x1F3, 9, 2, 6 },
   { 0x1F4, 9, 6, 2 },
   { 0x1F5, 9, 1, 7 },
   { 0x3EC, 10, 3, 6 },
   { 0x3ED, 10, 0, 6 },
   { 0x3EE, 10, 6, 0 },
   { 0x3EF, 10, 4, 4 },
   { 0x3F0, 10, 7, 1 },
   { 0x3F1, 10, 4, 5 },
   { 0x3F2, 10, 7, 2 },
   { 0x3F3, 10, 5, 4 },
   { 0x3F4, 10, 6, 3 },
   { 0x3F5, 10, 2, 7 },
   { 0x3F6, 10, 7, 3 },
   { 0x3F7, 10, 6, 4 },
   { 0x3F8, 10, 5, 5 },
   { 0x3F9, 10, 4, 6 },
   { 0x3FA, 10, 3, 7 },
   { 0x7F6, 11, 7, 0 },
   { 0x7F7, 11, 0, 7 },
   { 0x7F8, 11, 6, 5 },
   { 0x7F9, 11, 5, 6 },
   { 0x7FA, 11, 7, 4 },
   { 0x7FB, 11, 4, 7 },
   { 0x7FC, 11, 5, 7 },
   { 0x7FD, 11, 7, 5 },
   { 0xFFC, 12, 7, 6 },
   { 0xFFD, 12, 6, 6 },
   { 0xFFE, 12, 6, 7 },
   { 0xFFF, 12, 7, 7 },
};

AAC Huffman Table 8

AAC Huffman Table 9

static const unsigned short aac_huffman_table_pair_9[][4] = {
   /* codeword, code length, 2 data points */
   { 0x0, 1, 0, 0 },
   { 0x4, 3, 1, 0 },
   { 0x5, 3, 0, 1 },
   { 0xC, 4, 1, 1 },
   { 0x34, 6, 2, 1 },
   { 0x35, 6, 1, 2 },
   { 0x36, 6, 2, 0 },
   { 0x37, 6, 0, 2 },
   { 0x70, 7, 3, 1 },
   { 0x71, 7, 2, 2 },
   { 0x72, 7, 1, 3 },
   { 0xE6, 8, 3, 0 },
   { 0xE7, 8, 0, 3 },
   { 0xE8, 8, 2, 3 },
   { 0xE9, 8, 3, 2 },
   { 0xEA, 8, 1, 4 },
   { 0xEB, 8, 4, 1 },
   { 0xEC, 8, 2, 4 },
   { 0xED, 8, 1, 5 },
   { 0x1DC, 9, 4, 2 },
   { 0x1DD, 9, 3, 3 },
   { 0x1DE, 9, 0, 4 },
   { 0x1DF, 9, 4, 0 },
   { 0x1E0, 9, 5, 1 },
   { 0x1E1, 9, 2, 5 },
   { 0x1E2, 9, 1, 6 },
   { 0x1E3, 9, 3, 4 },
   { 0x1E4, 9, 5, 2 },
   { 0x1E5, 9, 6, 1 },
   { 0x1E6, 9, 4, 3 },
   { 0x3CE, 10, 0, 5 },
   { 0x3CF, 10, 2, 6 },
   { 0x3D0, 10, 5, 0 },
   { 0x3D1, 10, 1, 7 },
   { 0x3D2, 10, 3, 5 },
   { 0x3D3, 10, 1, 8 },
   { 0x3D4, 10, 8, 1 },
   { 0x3D5, 10, 4, 4 },
   { 0x3D6, 10, 5, 3 },
   { 0x3D7, 10, 6, 2 },
   { 0x3D8, 10, 7, 1 },
   { 0x3D9, 10, 0, 6 },
   { 0x3DA, 10, 8, 2 },
   { 0x3DB, 10, 2, 8 },
   { 0x3DC, 10, 3, 6 },
   { 0x3DD, 10, 2, 7 },
   { 0x3DE, 10, 4, 5 },
   { 0x3DF, 10, 9, 1 },
   { 0x3E0, 10, 1, 9 },
   { 0x3E1, 10, 7, 2 },
   { 0x7C4, 11, 6, 0 },
   { 0x7C5, 11, 5, 4 },
   { 0x7C6, 11, 6, 3 },
   { 0x7C7, 11, 8, 3 },
   { 0x7C8, 11, 0, 7 },
   { 0x7C9, 11, 9, 2 },
   { 0x7CA, 11, 3, 8 },
   { 0x7CB, 11, 4, 6 },
   { 0x7CC, 11, 3, 7 },
   { 0x7CD, 11, 0, 8 },
   { 0x7CE, 11, 10, 1 },
   { 0x7CF, 11, 6, 4 },
   { 0x7D0, 11, 2, 9 },
   { 0x7D1, 11, 5, 5 },
   { 0x7D2, 11, 8, 0 },
   { 0x7D3, 11, 7, 0 },
   { 0x7D4, 11, 7, 3 },
   { 0x7D5, 11, 10, 2 },
   { 0x7D6, 11, 9, 3 },
   { 0x7D7, 11, 8, 4 },
   { 0x7D8, 11, 1, 10 },
   { 0x7D9, 11, 7, 4 },
   { 0x7DA, 11, 6, 5 },
   { 0x7DB, 11, 5, 6 },
   { 0x7DC, 11, 4, 8 },
   { 0x7DD, 11, 4, 7 },
   { 0x7DE, 11, 3, 9 },
   { 0x7DF, 11, 11, 1 },
   { 0x7E0, 11, 5, 8 },
   { 0x7E1, 11, 9, 0 },
   { 0x7E2, 11, 8, 5 },
   { 0xFC6, 12, 10, 3 },
   { 0xFC7, 12, 2, 10 },
   { 0xFC8, 12, 0, 9 },
   { 0xFC9, 12, 11, 2 },
   { 0xFCA, 12, 9, 4 },
   { 0xFCB, 12, 6, 6 },
   { 0xFCC, 12, 12, 1 },
   { 0xFCD, 12, 4, 9 },
   { 0xFCE, 12, 8, 6 },
   { 0xFCF, 12, 1, 11 },
   { 0xFD0, 12, 9, 5 },
   { 0xFD1, 12, 10, 4 },
   { 0xFD2, 12, 5, 7 },
   { 0xFD3, 12, 7, 5 },
   { 0xFD4, 12, 2, 11 },
   { 0xFD5, 12, 1, 12 },
   { 0xFD6, 12, 12, 2 },
   { 0xFD7, 12, 11, 3 },
   { 0xFD8, 12, 3, 10 },
   { 0xFD9, 12, 5, 9 },
   { 0xFDA, 12, 6, 7 },
   { 0xFDB, 12, 8, 7 },
   { 0xFDC, 12, 11, 4 },
   { 0xFDD, 12, 0, 10 },
   { 0xFDE, 12, 7, 6 },
   { 0xFDF, 12, 12, 3 },
   { 0xFE0, 12, 10, 0 },
   { 0xFE1, 12, 10, 5 },
   { 0xFE2, 12, 4, 10 },
   { 0xFE3, 12, 6, 8 },
   { 0xFE4, 12, 2, 12 },
   { 0xFE5, 12, 9, 6 },
   { 0xFE6, 12, 9, 7 },
   { 0xFE7, 12, 4, 11 },
   { 0xFE8, 12, 11, 0 },
   { 0xFE9, 12, 6, 9 },
   { 0xFEA, 12, 3, 11 },
   { 0xFEB, 12, 5, 10 },
   { 0x1FD8, 13, 8, 8 },
   { 0x1FD9, 13, 7, 8 },
   { 0x1FDA, 13, 12, 5 },
   { 0x1FDB, 13, 3, 12 },
   { 0x1FDC, 13, 11, 5 },
   { 0x1FDD, 13, 7, 7 },
   { 0x1FDE, 13, 12, 4 },
   { 0x1FDF, 13, 11, 6 },
   { 0x1FE0, 13, 10, 6 },
   { 0x1FE1, 13, 4, 12 },
   { 0x1FE2, 13, 7, 9 },
   { 0x1FE3, 13, 5, 11 },
   { 0x1FE4, 13, 0, 11 },
   { 0x1FE5, 13, 12, 6 },
   { 0x1FE6, 13, 6, 10 },
   { 0x1FE7, 13, 12, 0 },
   { 0x1FE8, 13, 10, 7 },
   { 0x1FE9, 13, 5, 12 },
   { 0x1FEA, 13, 7, 10 },
   { 0x1FEB, 13, 9, 8 },
   { 0x1FEC, 13, 0, 12 },
   { 0x1FED, 13, 11, 7 },
   { 0x1FEE, 13, 8, 9 },
   { 0x1FEF, 13, 9, 9 },
   { 0x1FF0, 13, 10, 8 },
   { 0x1FF1, 13, 7, 11 },
   { 0x1FF2, 13, 12, 7 },
   { 0x1FF3, 13, 6, 11 },
   { 0x1FF4, 13, 8, 11 },
   { 0x1FF5, 13, 11, 8 },
   { 0x1FF6, 13, 7, 12 },
   { 0x1FF7, 13, 6, 12 },
   { 0x3FF0, 14, 8, 10 },
   { 0x3FF1, 14, 10, 9 },
   { 0x3FF2, 14, 8, 12 },
   { 0x3FF3, 14, 9, 10 },
   { 0x3FF4, 14, 9, 11 },
   { 0x3FF5, 14, 9, 12 },
   { 0x3FF6, 14, 10, 11 },
   { 0x3FF7, 14, 12, 9 },
   { 0x3FF8, 14, 10, 10 },
   { 0x3FF9, 14, 11, 9 },
   { 0x3FFA, 14, 12, 8 },
   { 0x3FFB, 14, 11, 10 },
   { 0x3FFC, 14, 12, 10 },
   { 0x3FFD, 14, 12, 11 },
   { 0x7FFC, 15, 10, 12 },
   { 0x7FFD, 15, 11, 11 },
   { 0x7FFE, 15, 11, 12 },
   { 0x7FFF, 15, 12, 12 },
};

AAC Huffman Table 10

AAC Huffman Table 11