📄 mp4_enc_tables.cpp
字号:
{0xa0, 13}, {0xa2, 13}, {0xa4, 13}, {0x1c, 5}, {0x28, 7}, {0x2c, 8}, {0x38, 9}, {0x40, 10},
{0x3e, 10}, {0x1a, 11}, {0x44, 12}, {0xa6, 13}, {0xaa, 13}, {0x16, 6}, {0x2a, 8}, {0x3c, 10},
{0x18, 11}, {0xac, 13}, {0x22, 7}, {0x36, 9}, {0x3a, 10}, {0x16, 11}, {0x20, 7}, {0x44, 10},
{0x14, 11}, {0x1a, 7}, {0x38, 10}, {0x10, 11}, {0x24, 8}, {0x36, 10}, {0xa8, 13}, {0x28, 8},
{0x34, 10}, {0xae, 13}, {0x32, 9}, {0x12, 11}, {0x30, 9}, {0x46, 12}, {0x2e, 9}, {0x32, 10},
{0x30, 10}, {0x0e, 11}, {0xb0, 13}, {0x0e, 5}, {0x18, 7}, {0x2c, 9}, {0x2e, 10}, {0x0c, 11},
{0x0a, 12}, {0x08, 12}, {0xb2, 13}, {0x1e, 7}, {0x2c, 10}, {0x0a, 11}, {0x1c, 7}, {0x08, 11},
{0x22, 8}, {0x48, 12}, {0x20, 8}, {0x4a, 12}, {0x26, 8}, {0xb4, 13}, {0x2a, 9}, {0xb6, 13},
{0x28, 9}, {0x26, 9}, {0x34, 9}, {0x2a, 10}, {0x28, 10}, {0x26, 10}, {0x24, 10}, {0x22, 10},
{0x4c, 12}, {0x4e, 12}, {0xb8, 13}, {0xba, 13}, {0xbc, 13}, {0xbe, 13}
};
const mp4_VLC_TCOEF mp4_VLC_TB16 = {
{14, 20},
{l0_offs_TB16, l1_offs_TB16},
{l0_lmax_TB16, l1_lmax_TB16},
vlc_TB16
};
// table B-17
static const int l0_offs_TB17[27] = {
0, 12, 18, 22, 25, 28, 31, 34, 36, 38, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
};
static const int l0_lmax_TB17[27] = {
12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static const int l1_offs_TB17[41] = {
58, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101
};
static const int l1_lmax_TB17[41] = {
3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static const mp4_VLC vlc_TB17[102] = {
{0x04, 3}, {0x1e, 5}, {0x2a, 7}, {0x2e, 8}, {0x3e, 9}, {0x4a, 10}, {0x48, 10}, {0x42, 11},
{0x40, 11}, {0x0e, 12}, {0x0c, 12}, {0x40, 12}, {0x0c, 4}, {0x28, 7}, {0x3c, 9}, {0x1e, 11},
{0x42, 12}, {0xa0, 13}, {0x1c, 5}, {0x3a, 9}, {0x1c, 11}, {0xa2, 13}, {0x1a, 6}, {0x46, 10},
{0x1a, 11}, {0x18, 6}, {0x44, 10}, {0xa4, 13}, {0x16, 6}, {0x18, 11}, {0xa6, 13}, {0x26, 7},
{0x16, 11}, {0xa8, 13}, {0x24, 7}, {0x14, 11}, {0x22, 7}, {0x12, 11}, {0x20, 7}, {0x10, 11},
{0x2c, 8}, {0xaa, 13}, {0x2a, 8}, {0x28, 8}, {0x38, 9}, {0x36, 9}, {0x42, 10}, {0x40, 10},
{0x3e, 10}, {0x3c, 10}, {0x3a, 10}, {0x38, 10}, {0x36, 10}, {0x34, 10}, {0x44, 12}, {0x46, 12},
{0xac, 13}, {0xae, 13}, {0x0e, 5}, {0x32, 10}, {0x0a, 12}, {0x1e, 7}, {0x08, 12}, {0x1c, 7},
{0x1a, 7}, {0x18, 7}, {0x26, 8}, {0x24, 8}, {0x22, 8}, {0x20, 8}, {0x34, 9}, {0x32, 9},
{0x30, 9}, {0x2e, 9}, {0x2c, 9}, {0x2a, 9}, {0x28, 9}, {0x26, 9}, {0x30, 10}, {0x2e, 10},
{0x2c, 10}, {0x2a, 10}, {0x28, 10}, {0x26, 10}, {0x24, 10}, {0x22, 10}, {0x0e, 11}, {0x0c, 11},
{0x0a, 11}, {0x08, 11}, {0x48, 12}, {0x4a, 12}, {0x4c, 12}, {0x4e, 12}, {0xb0, 13}, {0xb2, 13},
{0xb4, 13}, {0xb6, 13}, {0xb8, 13}, {0xba, 13}, {0xbc, 13}, {0xbe, 13}
};
const mp4_VLC_TCOEF mp4_VLC_TB17 = {
{26, 40},
{l0_offs_TB17, l1_offs_TB17},
{l0_lmax_TB17, l1_lmax_TB17},
vlc_TB17
};
// table B-21
const mp4_VLC mp4_VLC_RMAX_TB21[2][7] = {
{{1, 14}, {2, 9}, {3, 7}, {4, 3}, {5, 2}, {10, 1}, {27, 0}},
{{1, 20}, {2, 6}, {3, 1}, {8, 0}}
};
// table B-22
const mp4_VLC mp4_VLC_RMAX_TB22[2][6] = {
{{1, 26}, {2, 10}, {3, 6}, {4, 2}, {6, 1}, {12, 0}},
{{1, 40}, {2, 1}, {3, 0}}
};
// table B-23 intra
static const int l0_offs_TB23a[20] = {
0, 27, 40, 51, 60, 66, 72, 77, 82, 86, 90, 92, 94, 96, 97, 98, 99, 100, 101, 102
};
static const int l0_lmax_TB23a[20] = {
27, 13, 11, 9, 6, 6, 5, 5, 4, 4, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1
};
static const int l1_offs_TB23a[45] = {
103, 108, 113, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146,
147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168
};
static const int l1_lmax_TB23a[45] = {
5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static const mp4_VLC vlc_TB23a[169] = {
{0x000c, 4}, {0x000e, 4}, {0x0014, 5}, {0x0012, 6}, {0x0028, 7}, {0x002a, 7}, {0x0068, 8}, {0x00e8, 9},
{0x00ea, 9}, {0x01ba, 10}, {0x01d8, 10}, {0x03d8, 11}, {0x03da, 11}, {0x03e8, 11}, {0x07d8, 12}, {0x07da, 12},
{0x07e8, 12}, {0x0efa, 13}, {0x0f78, 13}, {0x1f7a, 14}, {0x1fb8, 14}, {0x0f7a, 13}, {0x1fba, 14}, {0x3f7a, 15},
{0x3fb8, 15}, {0x3fba, 15}, {0x3ff8, 16}, {0x0002, 5}, {0x0010, 6}, {0x005a, 8}, {0x00d8, 9}, {0x00da, 9},
{0x01b8, 10}, {0x03ba, 11}, {0x07b8, 12}, {0x07ba, 12}, {0x0ef8, 13}, {0x1f78, 14}, {0x3efa, 15}, {0x3f78, 15},
{0x0008, 6}, {0x0058, 8}, {0x0178, 10}, {0x03b8, 11}, {0x0778, 12}, {0x077a, 12}, {0x1dfa, 14}, {0x1ef8, 14},
{0x1efa, 14}, {0x3dfa, 15}, {0x3ef8, 15}, {0x000a, 6}, {0x00b8, 9}, {0x017a, 10}, {0x06fa, 12}, {0x0df8, 13},
{0x1df8, 14}, {0x3bfa, 15}, {0x3df8, 15}, {0x3ffa, 16}, {0x0018, 7}, {0x00ba, 9}, {0x037a, 11}, {0x07fa, 13},
{0x0dfa, 13}, {0x37fa, 15}, {0x001a, 7}, {0x00fa, 10}, {0x05f8, 12}, {0x0bf8, 13}, {0x37f8, 15}, {0x3bf8, 15},
{0x0038, 8}, {0x02f8, 11}, {0x05fa, 12}, {0x0bfa, 13}, {0x5ff8, 16}, {0x003a, 8}, {0x02fa, 11}, {0x06f8, 12},
{0x1bfa, 14}, {0x5ffa, 16}, {0x0078, 9}, {0x0378, 11}, {0x17fa, 14}, {0x2ffa, 15}, {0x007a, 9}, {0x03fa, 12},
{0x1bf8, 14}, {0x6ff8, 16}, {0x00f8, 10}, {0x07f8, 13}, {0x01f8, 11}, {0x17f8, 14}, {0x01fa, 11}, {0x6ffa, 16},
{0x03f8, 12}, {0x0ff8, 14}, {0x0ffa, 14}, {0x1ff8, 15}, {0x1ffa, 15}, {0x2ff8, 15}, {0x77f8, 16}, {0x0016, 5},
{0x00f0, 9}, {0x07ea, 12}, {0x1fd8, 14}, {0x3fd8, 15}, {0x0024, 6}, {0x01da, 10}, {0x0fb8, 13}, {0x3fda, 15},
{0x77fa, 16}, {0x0026, 6}, {0x07f0, 12}, {0x7bf8, 16}, {0x0030, 7}, {0x0fba, 13}, {0x0032, 7}, {0x0fd8, 13},
{0x0044, 7}, {0x1fda, 14}, {0x0046, 7}, {0x1fe8, 14}, {0x006a, 8}, {0x1fea, 14}, {0x0070, 8}, {0x1ff0, 14},
{0x0072, 8}, {0x1ff2, 14}, {0x0084, 8}, {0x3fe8, 15}, {0x0086, 8}, {0x3fea, 15}, {0x00f2, 9}, {0x3ff0, 15},
{0x0104, 9}, {0x7bfa, 16}, {0x0106, 9}, {0x01e8, 10}, {0x01ea, 10}, {0x01f0, 10}, {0x01f2, 10}, {0x0204, 10},
{0x0206, 10}, {0x03ea, 11}, {0x03f0, 11}, {0x03f2, 11}, {0x0404, 11}, {0x0406, 11}, {0x07f2, 12}, {0x0804, 12},
{0x0806, 12}, {0x0fda, 13}, {0x0fe8, 13}, {0x0fea, 13}, {0x0ff0, 13}, {0x0ff2, 13}, {0x1004, 13}, {0x1006, 13},
{0x2004, 14}, {0x2006, 14}, {0x3ff2, 15}, {0x4004, 15}, {0x4006, 15}, {0x7df8, 16}, {0x7dfa, 16}, {0x7ef8, 16},
{0x7efa, 16}
};
const mp4_VLC_TCOEF mp4_VLC_TB23a = {
{19, 44},
{l0_offs_TB23a, l1_offs_TB23a},
{l0_lmax_TB23a, l1_lmax_TB23a},
vlc_TB23a
};
// table B-23 inter
static const int l0_offs_TB23b[39] = {
0, 19, 29, 36, 43, 48, 52, 56, 60, 63, 66, 68, 70, 72, 74, 76, 78, 80, 82, 83, 84, 85,
86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102
};
static const int l0_lmax_TB23b[39] = {
19, 10, 7, 7, 5, 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static const int l1_offs_TB23b[45] = {
103, 108, 113, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 139, 140, 141,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168
};
static const int l1_lmax_TB23b[45] = {
5, 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static const mp4_VLC vlc_TB23b[169] = {
{0x000c, 4}, {0x0002, 5}, {0x0008, 6}, {0x0038, 8}, {0x0078, 9}, {0x007a, 9}, {0x00f8, 10}, {0x01f8, 11},
{0x01fa, 11}, {0x03f8, 12}, {0x03fa, 12}, {0x07f8, 13}, {0x0ff8, 14}, {0x0ffa, 14}, {0x17f8, 14}, {0x17fa, 14},
{0x1ff8, 15}, {0x1ffa, 15}, {0x3ff8, 16}, {0x000e, 4}, {0x0018, 7}, {0x00b8, 9}, {0x00fa, 10}, {0x02f8, 11},
{0x05f8, 12}, {0x07fa, 13}, {0x1bf8, 14}, {0x2ff8, 15}, {0x2ffa, 15}, {0x0014, 5}, {0x003a, 8}, {0x0178, 10},
{0x05fa, 12}, {0x0bf8, 13}, {0x37f8, 15}, {0x37fa, 15}, {0x000a, 6}, {0x00ba, 9}, {0x02fa, 11}, {0x0bfa, 13},
{0x1bfa, 14}, {0x3bf8, 15}, {0x3ffa, 16}, {0x0010, 6}, {0x00d8, 9}, {0x06f8, 12}, {0x1df8, 14}, {0x5ff8, 16},
{0x0012, 6}, {0x017a, 10}, {0x06fa, 12}, {0x1dfa, 14}, {0x001a, 7}, {0x0378, 11}, {0x0df8, 13}, {0x3bfa, 15},
{0x0028, 7}, {0x037a, 11}, {0x0dfa, 13}, {0x5ffa, 16}, {0x002a, 7}, {0x03b8, 11}, {0x1ef8, 14}, {0x0058, 8},
{0x03ba, 11}, {0x3df8, 15}, {0x005a, 8}, {0x0778, 12}, {0x0068, 8}, {0x0ef8, 13}, {0x00da, 9}, {0x1efa, 14},
{0x00e8, 9}, {0x3dfa, 15}, {0x00ea, 9}, {0x3ef8, 15}, {0x01b8, 10}, {0x3efa, 15}, {0x01ba, 10}, {0x3f78, 15},
{0x01d8, 10}, {0x6ff8, 16}, {0x03d8, 11}, {0x03da, 11}, {0x03e8, 11}, {0x077a, 12}, {0x07b8, 12}, {0x07ba, 12},
{0x07d8, 12}, {0x07da, 12}, {0x07e8, 12}, {0x0efa, 13}, {0x0f78, 13}, {0x0f7a, 13}, {0x1f78, 14}, {0x1f7a, 14},
{0x1fb8, 14}, {0x1fba, 14}, {0x3f7a, 15}, {0x3fb8, 15}, {0x3fba, 15}, {0x6ffa, 16}, {0x77f8, 16}, {0x0016, 5},
{0x00f0, 9}, {0x07ea, 12}, {0x1fd8, 14}, {0x3fd8, 15}, {0x0024, 6}, {0x01da, 10}, {0x0fb8, 13}, {0x3fda, 15},
{0x77fa, 16}, {0x0026, 6}, {0x07f0, 12}, {0x7bf8, 16}, {0x0030, 7}, {0x0fba, 13}, {0x0032, 7}, {0x0fd8, 13},
{0x0044, 7}, {0x1fda, 14}, {0x0046, 7}, {0x1fe8, 14}, {0x006a, 8}, {0x1fea, 14}, {0x0070, 8}, {0x1ff0, 14},
{0x0072, 8}, {0x1ff2, 14}, {0x0084, 8}, {0x3fe8, 15}, {0x0086, 8}, {0x3fea, 15}, {0x00f2, 9}, {0x3ff0, 15},
{0x0104, 9}, {0x7bfa, 16}, {0x0106, 9}, {0x01e8, 10}, {0x01ea, 10}, {0x01f0, 10}, {0x01f2, 10}, {0x0204, 10},
{0x0206, 10}, {0x03ea, 11}, {0x03f0, 11}, {0x03f2, 11}, {0x0404, 11}, {0x0406, 11}, {0x07f2, 12}, {0x0804, 12},
{0x0806, 12}, {0x0fda, 13}, {0x0fe8, 13}, {0x0fea, 13}, {0x0ff0, 13}, {0x0ff2, 13}, {0x1004, 13}, {0x1006, 13},
{0x2004, 14}, {0x2006, 14}, {0x3ff2, 15}, {0x4004, 15}, {0x4006, 15}, {0x7df8, 16}, {0x7dfa, 16}, {0x7ef8, 16},
{0x7efa, 16}
};
const mp4_VLC_TCOEF mp4_VLC_TB23b = {
{38, 44},
{l0_offs_TB23b, l1_offs_TB23b},
{l0_lmax_TB23b, l1_lmax_TB23b},
vlc_TB23b
};
} // namespace MPEG4_ENC
#endif //defined (UMC_ENABLE_MPEG4_VIDEO_ENCODER)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -