⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video_tables.c

📁 基于linux的DVD播放器程序
💻 C
📖 第 1 页 / 共 3 页
字号:
    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 + -