| /* /////////////////////////////////////////////////////////////////////// |
| // |
| // INTEL CORPORATION PROPRIETARY INFORMATION |
| // This software is supplied under the terms of a license agreement or |
| // nondisclosure agreement with Intel Corporation and may not be copied |
| // or disclosed except in accordance with the terms of that agreement. |
| // Copyright (c) 2008 Intel Corporation. All Rights Reserved. |
| // |
| // Description: Contains tables for VLC decoding of syntax elements in simple |
| // or main profile of VC-1 bitstream. |
| // |
| */ |
| |
| #include "vc1parse.h" |
| |
| const uint8_t VC1_MVMODE_LOW_TBL[] = |
| { |
| VC1_MVMODE_HPELBI_1MV, |
| VC1_MVMODE_1MV, |
| VC1_MVMODE_HPEL_1MV, |
| VC1_MVMODE_MIXED_MV, |
| VC1_MVMODE_INTENSCOMP |
| }; |
| |
| const uint8_t VC1_MVMODE_HIGH_TBL[] = |
| { |
| VC1_MVMODE_1MV, |
| VC1_MVMODE_MIXED_MV, |
| VC1_MVMODE_HPEL_1MV, |
| VC1_MVMODE_HPELBI_1MV, |
| VC1_MVMODE_INTENSCOMP |
| }; |
| |
| const int32_t VC1_BITPLANE_IMODE_TBL[] = |
| { |
| 4, /* max bits */ |
| 1, /* total subtables */ |
| 4, /* subtable sizes */ |
| |
| 0, /* 1-bit codes */ |
| 2, /* 2-bit codes */ |
| 2, VC1_BITPLANE_NORM2_MODE, |
| 3, VC1_BITPLANE_NORM6_MODE, |
| 3, /* 3-bit codes */ |
| 1, VC1_BITPLANE_DIFF2_MODE, |
| 2, VC1_BITPLANE_ROWSKIP_MODE, |
| 3, VC1_BITPLANE_COLSKIP_MODE, |
| 2, /* 4-bit codes */ |
| 0, VC1_BITPLANE_RAW_MODE, |
| 1, VC1_BITPLANE_DIFF6_MODE, |
| -1 |
| }; |
| |
| /* This VLC table is used for decoding of k in bitplane. */ |
| const int32_t VC1_BITPLANE_K_TBL[] = |
| { |
| 13, /* max bits */ |
| 2, /* total subtables */ |
| 6,7,/* subtable sizes */ |
| |
| 1, /* 1-bit codes */ |
| 1, 0 , |
| 0, /* 2-bit codes */ |
| 0, /* 3-bit codes */ |
| 6, /* 4-bit codes */ |
| 2, 1, 3, 2, 4, 4, 5, 8, |
| 6, 16, 7, 32, |
| 0, /* 5-bit codes */ |
| 1, /* 6-bit codes */ |
| (3 << 1)| 1, 63, |
| 0, /* 7-bit codes */ |
| 15, /* 8-bit codes */ |
| 0, 3, 1, 5, 2, 6, 3, 9, |
| 4, 10, 5, 12, 6, 17, 7, 18, |
| 8, 20, 9, 24, 10, 33, 11, 34, |
| 12, 36, 13, 40, 14, 48, |
| 6, /* 9-bit codes */ |
| (3 << 4)| 7, 31, |
| (3 << 4)| 6, 47, |
| (3 << 4)| 5, 55, |
| (3 << 4)| 4, 59, |
| |
| (3 << 4)| 3, 61, |
| (3 << 4)| 2, 62, |
| 20, /* 10-bit codes */ |
| (1 << 6)| 11, 11, |
| (1 << 6)| 7, 7 , |
| (1 << 6)| 13, 13, |
| (1 << 6)| 14, 14, |
| |
| (1 << 6)| 19, 19, |
| (1 << 6)| 21, 21, |
| (1 << 6)| 22, 22, |
| (1 << 6)| 25, 25, |
| |
| (1 << 6)| 26, 26, |
| (1 << 6)| 28, 28, |
| (1 << 6)| 3, 35, |
| (1 << 6)| 5, 37, |
| |
| (1 << 6)| 6, 38, |
| (1 << 6)| 9, 41, |
| (1 << 6)| 10, 42, |
| (1 << 6)| 12, 44, |
| |
| (1 << 6)| 17, 49, |
| (1 << 6)| 18, 50, |
| (1 << 6)| 20, 52, |
| (1 << 6)| 24, 56, |
| 0, /* 11-bit codes */ |
| 0, /* 12-bit codes */ |
| 15, /* 13-bit codes */ |
| (3 << 8)| 14, 15, |
| (3 << 8)| 13, 23, |
| (3 << 8)| 12, 27, |
| (3 << 8)| 11, 29, |
| |
| (3 << 8)| 10, 30, |
| (3 << 8)| 9, 39, |
| (3 << 8)| 8, 43, |
| (3 << 8)| 7, 45, |
| |
| (3 << 8)| 6, 46, |
| (3 << 8)| 5, 51, |
| (3 << 8)| 4, 53, |
| (3 << 8)| 3, 54, |
| |
| (3 << 8)| 2, 57, |
| (3 << 8)| 1, 58, |
| (3 << 8)| 0, 60, |
| -1 |
| }; |
| |
| /* This VLC table is used for decoding of BFRACTION. */ |
| const int32_t VC1_BFRACTION_TBL[] = |
| { |
| 7, /* max bits */ |
| 2, /* total subtables */ |
| 3,4, /* subtable sizes */ |
| 0, /* 1-bit codes */ |
| 0, /* 2-bit codes */ |
| 7, /* 3-bit codes */ |
| 0x00,1,2, 0x01,1,3, 0x02,2,3, 0x03,1,4, |
| 0x04,3,4, 0x05,1,5, 0x06,2,5, |
| 0, /* 4-bit codes */ |
| 0, /* 5-bit codes */ |
| 0, /* 6-bit codes */ |
| 16, /* 7-bit codes */ |
| 0x70, 3,5, 0x71, 4,5, 0x72, 1,6, 0x73, 5,6, |
| 0x74, 1,7, 0x75, 2,7, 0x76, 3,7, 0x77, 4,7, |
| 0x78, 5,7, 0x79, 6,7, 0x7A, 1,8, 0x7B, 3,8, |
| 0x7C, 5,8, 0x7D, 7,8, |
| 0x7E, VC1_BFRACTION_INVALID,VC1_BFRACTION_INVALID, |
| 0x7F, VC1_BFRACTION_BI, VC1_BFRACTION_BI, |
| |
| -1 |
| }; |
| |
| /* This table is used for VLC decoding of REFDIST. */ |
| const int32_t VC1_REFDIST_TBL[] = |
| { |
| 16, /* Max bits. */ |
| 3, /* Total sub-tables. */ |
| 5, 6, 5, /* Sub-table sizes. */ |
| |
| 0, /* 1-bit codes. */ |
| 3, /* 2-bit codes. */ |
| 0, 0, 1, 1, 2, 2, |
| 1, /* 3-bit codes. */ |
| 6, 3, |
| 1, /* 4-bit codes. */ |
| 14, 4, |
| 1, /* 5-bit codes. */ |
| 30, 5, |
| 1, /* 6-bit codes. */ |
| 62, 6, |
| 1, /* 7-bit codes. */ |
| 126, 7, |
| 1, /* 8-bit codes. */ |
| 254, 8, |
| 1, /* 9-bit codes. */ |
| 510, 9, |
| 1, /* 10-bit codes. */ |
| 1022, 10, |
| 1, /* 11-bit codes. */ |
| 2046, 11, |
| 1, /* 12-bit codes. */ |
| 4094, 12, |
| 1, /* 13-bit codes. */ |
| 8190, 13, |
| 1, /* 14-bit codes. */ |
| 16382, 14, |
| 1, /* 15-bit codes. */ |
| 32766, 15, |
| 1, /* 16-bit codes. */ |
| 65534, 16, |
| -1 /* end of table. */ |
| }; |