📄 vlc_codes.h
字号:
{0xe1, 14}, {0xe2, 14}, {0xe3, 14}, {0xe4, 14}, {0xe5, 14}, {0xe6, 14}, {0xe7, 14}, {0xe8, 14}, {0xe9, 14}, {0xea, 14}, {0xeb, 14}, {0xec, 14}, {0xed, 14}, {0xee, 14}, {0xef, 14}, {0xf0, 14}, {0xf1, 14}, {0xf2, 14}, {0xf3, 14}, {0xf4, 14}, {0xf5, 14}, {0xf6, 14}, {0xf7, 14}, {0xf8, 14}, {0xf9, 14}, {0xfa, 14}, {0xfb, 14}, {0xfc, 14}, {0xfd, 14}, {0xfe, 14}, {0xff, 14}, {0x180, 16}, {0x181, 16}, {0x182, 16}, {0x183, 16}, {0x184, 16}, {0x185, 16}, {0x186, 16}, {0x187, 16}, {0x188, 16}, {0x189, 16}, {0x18a, 16}, {0x18b, 16}, {0x18c, 16}, {0x18d, 16}, {0x18e, 16}, {0x18f, 16}, {0x190, 16}, {0x191, 16}, {0x192, 16}, {0x193, 16}, {0x194, 16}, {0x195, 16}, {0x196, 16}, {0x197, 16}, {0x198, 16}, {0x199, 16}, {0x19a, 16}, {0x19b, 16}, {0x19c, 16}, {0x19d, 16}, {0x19e, 16}, {0x19f, 16}, {0x1a0, 16}, {0x1a1, 16}, {0x1a2, 16}, {0x1a3, 16}, {0x1a4, 16}, {0x1a5, 16}, {0x1a6, 16}, {0x1a7, 16}, {0x1a8, 16}, {0x1a9, 16}, {0x1aa, 16}, {0x1ab, 16}, {0x1ac, 16}, {0x1ad, 16}, {0x1ae, 16}, {0x1af, 16}, {0x1b0, 16}, {0x1b1, 16}, {0x1b2, 16}, {0x1b3, 16}, {0x1b4, 16}, {0x1b5, 16}, {0x1b6, 16}, {0x1b7, 16}, {0x1b8, 16}, {0x1b9, 16}, {0x1ba, 16}, {0x1bb, 16}, {0x1bc, 16}, {0x1bd, 16}, {0x1be, 16}, {0x1bf, 16}, {0x1c0, 16}, {0x1c1, 16}, {0x1c2, 16}, {0x1c3, 16}, {0x1c4, 16}, {0x1c5, 16}, {0x1c6, 16}, {0x1c7, 16}, {0x1c8, 16}, {0x1c9, 16}, {0x1ca, 16}, {0x1cb, 16}, {0x1cc, 16}, {0x1cd, 16}, {0x1ce, 16}, {0x1cf, 16}, {0x1d0, 16}, {0x1d1, 16}, {0x1d2, 16}, {0x1d3, 16}, {0x1d4, 16}, {0x1d5, 16}, {0x1d6, 16}, {0x1d7, 16}, {0x1d8, 16}, {0x1d9, 16}, {0x1da, 16}, {0x1db, 16}, {0x1dc, 16}, {0x1dd, 16}, {0x1de, 16}, {0x1df, 16}, {0x1e0, 16}, {0x1e1, 16}, {0x1e2, 16}, {0x1e3, 16}, {0x1e4, 16}, {0x1e5, 16}, {0x1e6, 16}, {0x1e7, 16}, {0x1e8, 16}, {0x1e9, 16}, {0x1ea, 16}, {0x1eb, 16}, {0x1ec, 16}, {0x1ed, 16}, {0x1ee, 16}, {0x1ef, 16}, {0x1f0, 16}, {0x1f1, 16}, {0x1f2, 16}, {0x1f3, 16}, {0x1f4, 16}, {0x1f5, 16}, {0x1f6, 16}, {0x1f7, 16}, {0x1f8, 16}, {0x1f9, 16}, {0x1fa, 16}, {0x1fb, 16}, {0x1fc, 16}, {0x1fd, 16}, {0x1fe, 16}, {0x1ff, 16},};static const VLC mb_motion_table[65] = { {0x05, 13}, {0x07, 13}, {0x05, 12}, {0x07, 12}, {0x09, 12}, {0x0b, 12}, {0x0d, 12}, {0x0f, 12}, {0x09, 11}, {0x0b, 11}, {0x0d, 11}, {0x0f, 11}, {0x11, 11}, {0x13, 11}, {0x15, 11}, {0x17, 11}, {0x19, 11}, {0x1b, 11}, {0x1d, 11}, {0x1f, 11}, {0x21, 11}, {0x23, 11}, {0x13, 10}, {0x15, 10}, {0x17, 10}, {0x07, 8}, {0x09, 8}, {0x0b, 8}, {0x07, 7}, {0x03, 5}, {0x03, 4}, {0x03, 3}, {0x01, 1}, {0x02, 3}, {0x02, 4}, {0x02, 5}, {0x06, 7}, {0x0a, 8}, {0x08, 8}, {0x06, 8}, {0x16, 10}, {0x14, 10}, {0x12, 10}, {0x22, 11}, {0x20, 11}, {0x1e, 11}, {0x1c, 11}, {0x1a, 11}, {0x18, 11}, {0x16, 11}, {0x14, 11}, {0x12, 11}, {0x10, 11}, {0x0e, 11}, {0x0c, 11}, {0x0a, 11}, {0x08, 11}, {0x0e, 12}, {0x0c, 12}, {0x0a, 12}, {0x08, 12}, {0x06, 12}, {0x04, 12}, {0x06, 13}, {0x04, 13}};/****************************************************************** * decoder tables * ******************************************************************/static const VLC mcbpc_intra_table[64] = { {-1,0}, {20,6}, {36,6}, {52,6}, {4,4}, {4,4}, {4,4}, {4,4}, {19,3}, {19,3}, {19,3}, {19,3}, {19,3}, {19,3}, {19,3}, {19,3}, {35,3}, {35,3}, {35,3}, {35,3}, {35,3}, {35,3}, {35,3}, {35,3}, {51,3}, {51,3}, {51,3}, {51,3}, {51,3}, {51,3}, {51,3}, {51,3}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}, {3, 1}};static const VLC mcbpc_inter_table[257] = { {VLC_ERROR,0}, {255,9}, {52,9}, {36,9}, {20,9}, {49,9}, {35,8}, {35,8}, {19,8}, {19,8}, {50,8}, {50,8}, {51,7}, {51,7}, {51,7}, {51,7}, {34,7}, {34,7}, {34,7}, {34,7}, {18,7}, {18,7}, {18,7}, {18,7}, {33,7}, {33,7}, {33,7}, {33,7}, {17,7}, {17,7}, {17,7}, {17,7}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {48,6}, {48,6}, {48,6}, {48,6}, {48,6}, {48,6}, {48,6}, {48,6}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {3,5}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {32,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {16,4}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {2,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3}, {0,1}};static const VLC cbpy_table[64] = { {-1,0}, {-1,0}, {6,6}, {9,6}, {8,5}, {8,5}, {4,5}, {4,5}, {2,5}, {2,5}, {1,5}, {1,5}, {0,4}, {0,4}, {0,4}, {0,4}, {12,4}, {12,4}, {12,4}, {12,4}, {10,4}, {10,4}, {10,4}, {10,4}, {14,4}, {14,4}, {14,4}, {14,4}, {5,4}, {5,4}, {5,4}, {5,4}, {13,4}, {13,4}, {13,4}, {13,4}, {3,4}, {3,4}, {3,4}, {3,4}, {11,4}, {11,4}, {11,4}, {11,4}, {7,4}, {7,4}, {7,4}, {7,4}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}, {15, 2}};VLC TMNMVtab0[] = { {3,4}, {-3,4}, {2,3}, {2,3}, {-2,3}, {-2,3}, {1,2}, {1,2}, {1,2}, {1,2}, {-1,2}, {-1,2}, {-1,2}, {-1,2}};VLC TMNMVtab1[] = { {12,10}, {-12,10}, {11,10}, {-11,10}, {10,9}, {10,9}, {-10,9}, {-10,9}, {9,9}, {9,9}, {-9,9}, {-9,9}, {8,9}, {8,9}, {-8,9}, {-8,9}, {7,7}, {7,7}, {7,7}, {7,7}, {7,7}, {7,7}, {7,7}, {7,7}, {-7,7}, {-7,7}, {-7,7}, {-7,7}, {-7,7}, {-7,7}, {-7,7}, {-7,7}, {6,7}, {6,7}, {6,7}, {6,7}, {6,7}, {6,7}, {6,7}, {6,7}, {-6,7}, {-6,7}, {-6,7}, {-6,7}, {-6,7}, {-6,7}, {-6,7}, {-6,7}, {5,7}, {5,7}, {5,7}, {5,7}, {5,7}, {5,7}, {5,7}, {5,7}, {-5,7}, {-5,7}, {-5,7}, {-5,7}, {-5,7}, {-5,7}, {-5,7}, {-5,7}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}, {-4,6}};VLC TMNMVtab2[] = { {32,12}, {-32,12}, {31,12}, {-31,12}, {30,11}, {30,11}, {-30,11}, {-30,11}, {29,11}, {29,11}, {-29,11}, {-29,11}, {28,11}, {28,11}, {-28,11}, {-28,11}, {27,11}, {27,11}, {-27,11}, {-27,11}, {26,11}, {26,11}, {-26,11}, {-26,11}, {25,11}, {25,11}, {-25,11}, {-25,11}, {24,10}, {24,10}, {24,10}, {24,10}, {-24,10}, {-24,10}, {-24,10}, {-24,10}, {23,10}, {23,10}, {23,10}, {23,10}, {-23,10}, {-23,10}, {-23,10}, {-23,10}, {22,10}, {22,10}, {22,10}, {22,10}, {-22,10}, {-22,10}, {-22,10}, {-22,10}, {21,10}, {21,10}, {21,10}, {21,10}, {-21,10}, {-21,10}, {-21,10}, {-21,10}, {20,10}, {20,10}, {20,10}, {20,10}, {-20,10}, {-20,10}, {-20,10}, {-20,10}, {19,10}, {19,10}, {19,10}, {19,10}, {-19,10}, {-19,10}, {-19,10}, {-19,10}, {18,10}, {18,10}, {18,10}, {18,10}, {-18,10}, {-18,10}, {-18,10}, {-18,10}, {17,10}, {17,10}, {17,10}, {17,10}, {-17,10}, {-17,10}, {-17,10}, {-17,10}, {16,10}, {16,10}, {16,10}, {16,10}, {-16,10}, {-16,10}, {-16,10}, {-16,10}, {15,10}, {15,10}, {15,10}, {15,10}, {-15,10}, {-15,10}, {-15,10}, {-15,10}, {14,10}, {14,10}, {14,10}, {14,10}, {-14,10}, {-14,10}, {-14,10}, {-14,10}, {13,10}, {13,10}, {13,10}, {13,10}, {-13,10}, {-13,10}, {-13,10}, {-13,10}};VLC DCT3Dtab0[] = { {4225,7}, {4209,7}, {4193,7}, {4177,7}, {193,7}, {177,7}, {161,7}, {4,7}, {4161,6}, {4161,6}, {4145,6}, {4145,6}, {4129,6}, {4129,6}, {4113,6}, {4113,6}, {145,6}, {145,6}, {129,6}, {129,6}, {113,6}, {113,6}, {97,6}, {97,6}, {18,6}, {18,6}, {3,6}, {3,6}, {81,5}, {81,5}, {81,5}, {81,5}, {65,5}, {65,5}, {65,5}, {65,5}, {49,5}, {49,5}, {49,5}, {49,5}, {4097,4}, {4097,4}, {4097,4}, {4097,4}, {4097,4}, {4097,4}, {4097,4}, {4097,4}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {1,2}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {17,3}, {33,4}, {33,4}, {33,4}, {33,4}, {33,4}, {33,4}, {33,4}, {33,4}, {2,4}, {2,4},{2,4},{2,4}, {2,4}, {2,4},{2,4},{2,4}};VLC DCT3Dtab1[] = { {9,10}, {8,10}, {4481,9}, {4481,9}, {4465,9}, {4465,9}, {4449,9}, {4449,9}, {4433,9}, {4433,9}, {4417,9}, {4417,9}, {4401,9}, {4401,9}, {4385,9}, {4385,9}, {4369,9}, {4369,9}, {4098,9}, {4098,9}, {353,9}, {353,9}, {337,9}, {337,9}, {321,9}, {321,9}, {305,9}, {305,9}, {289,9}, {289,9}, {273,9}, {273,9}, {257,9}, {257,9}, {241,9}, {241,9}, {66,9}, {66,9}, {50,9}, {50,9}, {7,9}, {7,9}, {6,9}, {6,9}, {4353,8}, {4353,8}, {4353,8}, {4353,8}, {4337,8}, {4337,8}, {4337,8}, {4337,8}, {4321,8}, {4321,8}, {4321,8}, {4321,8}, {4305,8}, {4305,8}, {4305,8}, {4305,8}, {4289,8}, {4289,8}, {4289,8}, {4289,8}, {4273,8}, {4273,8}, {4273,8}, {4273,8}, {4257,8}, {4257,8}, {4257,8}, {4257,8}, {4241,8}, {4241,8}, {4241,8}, {4241,8}, {225,8}, {225,8}, {225,8}, {225,8}, {209,8}, {209,8}, {209,8}, {209,8}, {34,8}, {34,8}, {34,8}, {34,8}, {19,8}, {19,8}, {19,8}, {19,8}, {5,8}, {5,8}, {5,8}, {5,8}};VLC DCT3Dtab2[] = { {4114,11}, {4114,11}, {4099,11}, {4099,11}, {11,11}, {11,11}, {10,11}, {10,11}, {4545,10}, {4545,10}, {4545,10}, {4545,10}, {4529,10}, {4529,10}, {4529,10}, {4529,10}, {4513,10}, {4513,10}, {4513,10}, {4513,10}, {4497,10}, {4497,10}, {4497,10}, {4497,10}, {146,10}, {146,10}, {146,10}, {146,10}, {130,10}, {130,10}, {130,10}, {130,10}, {114,10}, {114,10}, {114,10}, {114,10}, {98,10}, {98,10}, {98,10}, {98,10}, {82,10}, {82,10}, {82,10}, {82,10}, {51,10}, {51,10}, {51,10}, {51,10}, {35,10}, {35,10}, {35,10}, {35,10}, {20,10}, {20,10}, {20,10}, {20,10}, {12,11}, {12,11}, {21,11}, {21,11}, {369,11}, {369,11}, {385,11}, {385,11}, {4561,11}, {4561,11}, {4577,11}, {4577,11}, {4593,11}, {4593,11}, {4609,11}, {4609,11}, {22,12}, {36,12}, {67,12}, {83,12}, {99,12}, {162,12}, {401,12}, {417,12}, {4625,12}, {4641,12}, {4657,12}, {4673,12}, {4689,12}, {4705,12}, {4721,12}, {4737,12}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}, {7167,7}};/* New tables for Intra luminance blocks */VLC DCT3Dtab3[] = { {0x10401, 7}, {0x10301, 7}, {0x00601, 7}, {0x10501, 7}, {0x00701, 7}, {0x00202, 7}, {0x00103, 7}, {0x00009, 7}, {0x10002, 6}, {0x10002, 6}, {0x00501, 6}, {0x00501, 6}, {0x10201, 6}, {0x10201, 6}, {0x10101, 6}, {0x10101, 6}, {0x00401, 6}, {0x00401, 6}, {0x00301, 6}, {0x00301, 6}, {0x00008, 6}, {0x00008, 6}, {0x00007, 6}, {0x00007, 6}, {0x00102, 6}, {0x00102, 6}, {0x00006, 6}, {0x00006, 6}, {0x00201, 5}, {0x00201, 5}, {0x00201, 5}, {0x00201, 5}, {0x00005, 5}, {0x00005, 5}, {0x00005, 5}, {0x00005, 5}, {0x00004, 5}, {0x00004, 5}, {0x00004, 5}, {0x00004, 5}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x10001, 4}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00001, 2}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00002, 3}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00101, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}, {0x00003, 4}};VLC DCT3Dtab4[] = { {0x00012,10}, {0x00011,10}, {0x10e01, 9}, {0x10e01, 9}, {0x10d01, 9}, {0x10d01, 9}, {0x10c01, 9}, {0x10c01, 9}, {0x10b01, 9}, {0x10b01, 9}, {0x10a01, 9}, {0x10a01, 9}, {0x10102, 9}, {0x10102, 9}, {0x10004, 9}, {0x10004, 9}, {0x00c01, 9}, {0x00c01, 9}, {0x00b01, 9}, {0x00b01, 9}, {0x00702, 9}, {0x00702, 9}, {0x00602, 9}, {0x00602, 9}, {0x00502, 9}, {0x00502, 9}, {0x00303, 9}, {0x00303, 9}, {0x00203, 9}, {0x00203, 9}, {0x00106, 9}, {0x00106, 9}, {0x00105, 9}, {0x00105, 9}, {0x00010, 9}, {0x00010, 9}, {0x00402, 9}, {0x00402, 9}, {0x0000f, 9}, {0x0000f, 9}, {0x0000e, 9}, {0x0000e, 9}, {0x0000d, 9}, {0x0000d, 9}, {0x10801, 8}, {0x10801, 8}, {0x10801, 8}, {0x10801, 8}, {0x10701, 8}, {0x10701, 8}, {0x10701, 8}, {0x10701, 8}, {0x10601, 8}, {0x10601, 8}, {0x10601, 8}, {0x10601, 8}, {0x10003, 8}, {0x10003, 8}, {0x10003, 8}, {0x10003, 8}, {0x00a01, 8}, {0x00a01, 8}, {0x00a01, 8}, {0x00a01, 8}, {0x00901, 8}, {0x00901, 8}, {0x00901, 8}, {0x00901, 8}, {0x00801, 8}, {0x00801, 8}, {0x00801, 8}, {0x00801, 8}, {0x10901, 8}, {0x10901, 8}, {0x10901, 8}, {0x10901, 8}, {0x00302, 8}, {0x00302, 8}, {0x00302, 8}, {0x00302, 8}, {0x00104, 8}, {0x00104, 8}, {0x00104, 8}, {0x00104, 8}, {0x0000c, 8}, {0x0000c, 8}, {0x0000c, 8}, {0x0000c, 8}, {0x0000b, 8}, {0x0000b, 8}, {0x0000b, 8}, {0x0000b, 8}, {0x0000a, 8}, {0x0000a, 8}, {0x0000a, 8}, {0x0000a, 8} };VLC DCT3Dtab5[] = { {0x10007,11}, {0x10007,11}, {0x10006,11}, {0x10006,11}, {0x00016,11}, {0x00016,11}, {0x00015,11}, {0x00015,11}, {0x10202,10}, {0x10202,10}, {0x10202,10}, {0x10202,10}, {0x10103,10}, {0x10103,10}, {0x10103,10}, {0x10103,10}, {0x10005,10}, {0x10005,10}, {0x10005,10}, {0x10005,10}, {0x00d01,10}, {0x00d01,10}, {0x00d01,10}, {0x00d01,10}, {0x00503,10}, {0x00503,10}, {0x00503,10}, {0x00503,10}, {0x00802,10}, {0x00802,10}, {0x00802,10}, {0x00802,10}, {0x00403,10}, {0x00403,10}, {0x00403,10}, {0x00403,10}, {0x00304,10}, {0x00304,10}, {0x00304,10}, {0x00304,10}, {0x00204,10}, {0x00204,10}, {0x00204,10}, {0x00204,10}, {0x00107,10}, {0x00107,10}, {0x00107,10}, {0x00107,10}, {0x00014,10}, {0x00014,10}, {0x00014,10}, {0x00014,10}, {0x00013,10}, {0x00013,10}, {0x00013,10}, {0x00013,10}, {0x00017,11}, {0x00017,11}, {0x00018,11}, {0x00018,11}, {0x00108,11}, {0x00108,11}, {0x00902,11}, {0x00902,11}, {0x10302,11}, {0x10302,11}, {0x10402,11}, {0x10402,11}, {0x10f01,11}, {0x10f01,11}, {0x11001,11}, {0x11001,11}, {0x00019,12}, {0x0001a,12}, {0x0001b,12}, {0x00109,12}, {0x00603,12}, {0x0010a,12}, {0x00205,12}, {0x00703,12}, {0x00e01,12}, {0x10008,12}, {0x10502,12}, {0x10602,12}, {0x11101,12}, {0x11201,12}, {0x11301,12}, {0x11401,12}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}, {0x01bff, 7}};VLC ERRtab[] = { {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}, {VLC_ERROR, 0}};static const VLC dc_lum_tab[] = { {0, 0}, {4, 3}, {3, 3}, {0, 3}, {2, 2}, {2, 2}, {1, 2}, {1, 2},};static __inline int get_coeff(Bitstream * bs, int *run, int *last, int intra, int short_video_header) { uint32_t mode; const VLC *tab; int32_t level; if(short_video_header) // inter-VLCs will be used for both intra and inter blocks intra = 0; tab = &DCT3D[intra][BitstreamShowBits(bs, 12)]; if(tab->code == -1) goto error; BitstreamSkip(bs, tab->len); if(tab->code != ESCAPE) { if(!intra) { *run = (tab->code >> 4) & 255; level = tab->code & 15; *last = (tab->code >> 12) & 1; } else { *run = (tab->code >> 8) & 255; level = tab->code & 255; *last = (tab->code >> 16) & 1; } return BitstreamGetBit(bs) ? -level : level; } if(short_video_header) { // escape mode 4 - H.263 type, only used if short_video_header = 1 *last = BitstreamGetBit(bs); *run = BitstreamGetBits(bs, 6); level = BitstreamGetBits(bs, 8); if (level == 0 || level == 128) DEBUG1("Illegal LEVEL for ESCAPE mode 4:", level); return (level >= 128 ? -(256 - level) : level); } mode = BitstreamShowBits(bs, 2); if(mode < 3) { BitstreamSkip(bs, (mode == 2) ? 2 : 1); tab = &DCT3D[intra][BitstreamShowBits(bs, 12)]; if (tab->code == -1) goto error; BitstreamSkip(bs, tab->len); if (!intra) { *run = (tab->code >> 4) & 255; level = tab->code & 15; *last = (tab->code >> 12) & 1; } else { *run = (tab->code >> 8) & 255; level = tab->code & 255; *last = (tab->code >> 16) & 1; } if(mode < 2) // first escape mode, level is offset level += max_level[*last + (!intra<<1)][*run]; // need to add back the max level else if(mode == 2) // second escape mode, run is offset *run += max_run[*last + (!intra<<1)][level] + 1; return BitstreamGetBit(bs) ? -level : level; } // third escape mode - fixed length codes BitstreamSkip(bs, 2); *last = BitstreamGetBits(bs, 1); *run = BitstreamGetBits(bs, 6); BitstreamSkip(bs, 1); // marker level = BitstreamGetBits(bs, 12); BitstreamSkip(bs, 1); // marker return (level & 0x800) ? (level | (-1 ^ 0xfff)) : level; error: *run = VLC_ERROR; return 0;}#endif /* _VLC_CODES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -