📄 video_tables.c
字号:
33, 26, 19, 12, 5, 6, 13, 20, 27, 34, 41, 48, 56, 49, 42, 35, 28, 21, 14, 7, 15, 22, 29, 36, 43, 50, 57, 58, 51, 44, 37, 30, 23, 31, 38, 45, 52, 59, 60, 53, 46, 39, 47, 54, 61, 62, 55, 63 }, /* Derived from Figure 7-2. Definition of scan[1][v][u] */ { 0, 1, 2, 3, 8, 9, 16, 17, 10, 11, 4, 5, 6, 7, 15, 14, 13, 12, 19, 18, 24, 25, 32, 33, 26, 27, 20, 21, 22, 23, 28, 29, 30, 31, 34, 35, 40, 41, 48, 49, 42, 43, 36, 37, 38, 39, 44, 45, 46, 47, 50, 51, 56, 57, 58, 59, 52, 53, 54, 55, 60, 61, 62, 63, }};#elif defined(HAVE_MMX)/* Wierd version for the MMX IDCT */const uint8_t inverse_scan[2][64] = { /* Derived from Figure 7-1. Definition of scan[0][v][u] */ { 0, 4, 8, 16, 12, 1, 5, 9, 20, 24, 32, 28, 17, 13, 2, 6, 10, 21, 25, 36, 40, 48, 44, 33, 29, 18, 14, 3, 7, 11, 22, 26, 37, 41, 52, 56, 60, 49, 45, 34, 30, 19, 15, 23, 27, 38, 42, 53, 57, 61, 50, 46, 35, 31, 39, 43, 54, 58, 62, 51, 47, 55, 59, 63, }, { 0, 8, 16, 24, 4, 12, 1, 9, 20, 28, 32, 40, 48, 56, 60, 52, 44, 36, 25, 17, 5, 13, 2, 10, 21, 29, 33, 41, 49, 57, 37, 45, 53, 61, 18, 26, 6, 14, 3, 11, 22, 30, 34, 42, 50, 58, 38, 46, 54, 62, 19, 27, 7, 15, 23, 31, 35, 43, 51, 59, 39, 47, 55, 63, }};#elseconst uint8_t inverse_scan[2][64] = { /* Derived from Figure 7-1. Definition of scan[0][v][u] */ { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 }, /* Derived from Figure 7-2. Definition of scan[1][v][u] */ { 0, 8, 16, 24, 1, 9, 2, 10, 17, 25, 32, 40, 48, 56, 57, 49, 41, 33, 26, 18, 3, 11, 4, 12, 19, 27, 34, 42, 50, 58, 35, 43, 51, 59, 20, 28, 5, 13, 6, 14, 21, 29, 36, 44, 52, 60, 37, 45, 53, 61, 22, 30, 7, 15, 23, 31, 38, 46, 54, 62, 39, 47, 55, 63 }};#endif/* Table 7-6. Relation between quantiser_scale and quantiser_scale_code */const uint8_t q_scale[2][32] = { { 255, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62 }, { 255, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 22, 24, 28, 32, 36, 40, 44, 48, 52, 56, 64, 72, 80, 88, 96,104,112 }};/* 6.3.7 Quant matrix extension */#if defined(HAVE_ALTIVEC)/* Transposed version for the AltiVec IDCTs */const int8_t default_intra_inverse_quantiser_matrix[8][8] = { { 8, 16, 19, 22, 22, 26, 26, 27 }, { 16, 16, 22, 22, 26, 27, 27, 29 }, { 19, 22, 26, 26, 27, 29, 29, 35 }, { 22, 24, 27, 27, 29, 32, 34, 38 }, { 26, 27, 29, 29, 32, 35, 38, 46 }, { 27, 29, 34, 34, 35, 40, 46, 56 }, { 29, 34, 34, 37, 40, 48, 56, 69 }, { 34, 37, 38, 40, 48, 58, 69, 83 }};#elif defined(HAVE_MMX)const int8_t default_intra_inverse_quantiser_matrix[8][8] = { { 8, 19, 26, 29, 16, 22, 27, 34 }, { 16, 22, 27, 34, 16, 24, 29, 37 }, { 19, 26, 29, 34, 22, 27, 34, 38 }, { 22, 26, 29, 37, 22, 27, 34, 40 }, { 22, 27, 32, 40, 26, 29, 35, 48 }, { 26, 29, 35, 48, 27, 32, 40, 58 }, { 26, 29, 38, 56, 27, 34, 46, 69 }, { 27, 35, 46, 69, 29, 38, 56, 83 }};#elseconst int8_t default_intra_inverse_quantiser_matrix[8][8] = { { 8, 16, 19, 22, 26, 27, 29, 34 }, { 16, 16, 22, 24, 27, 29, 34, 37 }, { 19, 22, 26, 27, 29, 34, 34, 38 }, { 22, 22, 26, 27, 29, 34, 37, 40 }, { 22, 26, 27, 29, 32, 35, 40, 48 }, { 26, 27, 29, 32, 35, 40, 48, 58 }, { 26, 27, 29, 34, 38, 46, 56, 69 }, { 27, 29, 35, 38, 46, 56, 69, 83 }};#endifconst int8_t default_non_intra_inverse_quantiser_matrix[8][8] = { { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }, { 16, 16, 16, 16, 16, 16, 16, 16 }};/* Table B-14, DCT coefficients table zero, * codes 0100 ... 1xxx (used for first (DC) coefficient) */const DCTtab DCTtabfirst[12] ={ { 0, 2, 4}, {2, 1, 4}, {1, 1, 3}, {1, 1, 3}, { 0, 1, 1}, {0, 1, 1}, {0, 1, 1}, {0, 1, 1}, { 0, 1, 1}, {0, 1, 1}, {0, 1, 1}, {0, 1, 1}};/* Table B-14, DCT coefficients table zero, * codes 0100 ... 1xxx (used for all other coefficients) */const DCTtab DCTtabnext[12] ={ { 0, 2, 4}, { 2, 1, 4}, { 1, 1, 3}, { 1, 1, 3}, {64, 0, 2}, {64, 0, 2}, {64, 0, 2}, {64, 0, 2}, /* EOB */ { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}};/* Table B-14, DCT coefficients table zero, * codes 000001xx ... 00111xxx */const DCTtab DCTtab0[60] ={ {65, 0, 6}, {65, 0, 6}, {65, 0, 6}, {65, 0, 6}, /* Escape */ { 2, 2, 7}, { 2, 2, 7}, { 9, 1, 7}, { 9, 1, 7}, { 0, 4, 7}, { 0, 4, 7}, { 8, 1, 7}, { 8, 1, 7}, { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, { 7, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 6, 1, 6}, { 1, 2, 6}, { 1, 2, 6}, { 1, 2, 6}, { 1, 2, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, {13, 1, 8}, { 0, 6, 8}, {12, 1, 8}, {11, 1, 8}, { 3, 2, 8}, { 1, 3, 8}, { 0, 5, 8}, {10, 1, 8}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 0, 3, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 4, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}};/* Table B-15, DCT coefficients table one, * codes 000001xx ... 11111111*/const DCTtab DCTtab0a[252] ={ {65, 0, 6}, {65, 0, 6}, {65, 0, 6}, {65, 0, 6}, /* Escape */ { 7, 1, 7}, { 7, 1, 7}, { 8, 1, 7}, { 8, 1, 7}, { 6, 1, 7}, { 6, 1, 7}, { 2, 2, 7}, { 2, 2, 7}, { 0, 7, 6}, { 0, 7, 6}, { 0, 7, 6}, { 0, 7, 6}, { 0, 6, 6}, { 0, 6, 6}, { 0, 6, 6}, { 0, 6, 6}, { 4, 1, 6}, { 4, 1, 6}, { 4, 1, 6}, { 4, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 5, 1, 6}, { 1, 5, 8}, {11, 1, 8}, { 0,11, 8}, { 0,10, 8}, {13, 1, 8}, {12, 1, 8}, { 3, 2, 8}, { 1, 4, 8}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 2, 1, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 1, 2, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 3, 1, 5}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, { 1, 1, 3}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, /* EOB */ {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, {64, 0, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 3, 4}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 1, 2}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 2, 3}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 4, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 0, 5, 5}, { 9, 1, 7}, { 9, 1, 7}, { 1, 3, 7}, { 1, 3, 7}, {10, 1, 7}, {10, 1, 7}, { 0, 8, 7}, { 0, 8, 7}, { 0, 9, 7}, { 0, 9, 7}, { 0,12, 8}, { 0,13, 8}, { 2, 3, 8}, { 4, 2, 8}, { 0,14, 8}, { 0,15, 8}};/* Table B-14, DCT coefficients table zero, * codes 0000001000 ... 0000001111 */const DCTtab DCTtab1[8] ={ {16, 1,10}, { 5, 2,10}, { 0, 7,10}, { 2, 3,10}, { 1, 4,10}, {15, 1,10}, {14, 1,10}, { 4, 2,10}};/* Table B-15, DCT coefficients table one, * codes 000000100x ... 000000111x */const DCTtab DCTtab1a[8] ={ { 5, 2, 9}, { 5, 2, 9}, {14, 1, 9}, {14, 1, 9}, { 2, 4,10}, {16, 1,10}, {15, 1, 9}, {15, 1, 9}};/* Table B-14/15, DCT coefficients table zero / one, * codes 000000010000 ... 000000011111 */const DCTtab DCTtab2[16] ={ { 0,11,12}, { 8, 2,12}, { 4, 3,12}, { 0,10,12}, { 2, 4,12}, { 7, 2,12}, {21, 1,12}, {20, 1,12}, { 0, 9,12}, {19, 1,12}, {18, 1,12}, { 1, 5,12}, { 3, 3,12}, { 0, 8,12}, { 6, 2,12}, {17, 1,12}};/* Table B-14/15, DCT coefficients table zero / one, * codes 0000000010000 ... 0000000011111 */const DCTtab DCTtab3[16] ={ {10, 2,13}, { 9, 2,13}, { 5, 3,13}, { 3, 4,13}, { 2, 5,13}, { 1, 7,13}, { 1, 6,13}, { 0,15,13}, { 0,14,13}, { 0,13,13}, { 0,12,13}, {26, 1,13}, {25, 1,13}, {24, 1,13}, {23, 1,13}, {22, 1,13}};/* Table B-14/15, DCT coefficients table zero / one, * codes 00000000010000 ... 00000000011111 */const DCTtab DCTtab4[16] ={ { 0,31,14}, { 0,30,14}, { 0,29,14}, { 0,28,14}, { 0,27,14}, { 0,26,14}, { 0,25,14}, { 0,24,14}, { 0,23,14}, { 0,22,14}, { 0,21,14}, { 0,20,14}, { 0,19,14}, { 0,18,14}, { 0,17,14}, { 0,16,14}};/* Table B-14/15, DCT coefficients table zero / one, * codes 000000000010000 ... 000000000011111 */const DCTtab DCTtab5[16] ={ { 0,40,15}, { 0,39,15}, { 0,38,15}, { 0,37,15}, { 0,36,15}, { 0,35,15}, { 0,34,15}, { 0,33,15}, { 0,32,15}, { 1,14,15}, { 1,13,15}, { 1,12,15}, { 1,11,15}, { 1,10,15}, { 1, 9,15}, { 1, 8,15}};/* Table B-14/15, DCT coefficients table zero / one, * codes 0000000000010000 ... 0000000000011111 */const DCTtab DCTtab6[16] ={ { 1,18,16}, { 1,17,16}, { 1,16,16}, { 1,15,16}, { 6, 3,16}, {16, 2,16}, {15, 2,16}, {14, 2,16}, {13, 2,16}, {12, 2,16}, {11, 2,16}, {31, 1,16}, {30, 1,16}, {29, 1,16}, {28, 1,16}, {27, 1,16}};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -