📄 umc_vc1_enc_tables.cpp
字号:
/* /////////////////////////////////////////////////////////////////////////////
//
// 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) 2007 Intel Corporation. All Rights Reserved.
//
//
// VC-1 (VC1) encoder, coding tables
//
*/
#include "umc_defs.h"
#if defined (UMC_ENABLE_VC1_VIDEO_ENCODER)
#include "ippvc.h"
#include "umc_vc1_enc_def.h"
namespace UMC_VC1_ENCODER
{
// Tables for encoding intra DC
extern const Ipp32u DCLumaLowMotionEncTableVLC [120*2] =
{
/*code, len*/
1, 1, 1, 2, 1, 4, 1, 5, 5, 5, 7, 5, 8, 6, 12, 6,
0, 7, 2, 7, 18, 7, 26, 7, 3, 8, 7, 8, 39, 8, 55, 8,
5, 9, 76, 9, 108, 9, 109, 9, 8, 10, 25, 10, 155, 10, 27, 10,
154, 10, 19, 11, 52, 11, 53, 11, 97, 12, 72, 13, 196, 13, 74, 13,
198, 13, 199, 13, 146, 14, 395, 14, 147, 14, 387, 14, 386, 14, 150, 14,
151, 14, 384, 14, 788, 15, 789, 15, 1541, 16, 1540, 16, 1542, 16, 3086, 17,
197581, 23, 197577, 23, 197576, 23, 197578, 23, 197579, 23, 197580, 23, 197582, 23, 197583, 23,
197584, 23, 197585, 23, 197586, 23, 197587, 23, 197588, 23, 197589, 23, 197590, 23, 197591, 23,
197592, 23, 197593, 23, 197594, 23, 197595, 23, 197596, 23, 197597, 23, 197598, 23, 197599, 23,
197600, 23, 197601, 23, 197602, 23, 197603, 23, 197604, 23, 197605, 23, 197606, 23, 197607, 23,
197608, 23, 197609, 23, 197610, 23, 197611, 23, 197612, 23, 197613, 23, 197614, 23, 197615, 23,
197616, 23, 197617, 23, 197618, 23, 197619, 23, 197620, 23, 197621, 23, 197622, 23, 197623, 23,
197624, 23, 197625, 23, 197626, 23, 197627, 23, 197628, 23, 197629, 23, 197630, 23, 197631, 23,
395136, 24, 395137, 24, 395138, 24, 395139, 24, 395140, 24, 395141, 24, 395142, 24, 395143, 24,
395144, 24, 395145, 24, 395146, 24, 395147, 24, 395148, 24, 395149, 24, 395150, 24, 395151, 24
};
extern const Ipp32u DCLumaHighMotionEncTableVLC [120*2] =
{
/*code, len*/
2, 2, 3, 2, 3, 3, 2, 4, 5, 4, 1, 5, 3, 5, 8, 5,
0, 6, 5, 6, 13, 6, 15, 6, 19, 6, 8, 7, 24, 7, 28, 7,
36, 7, 4, 8, 6, 8, 18, 8, 50, 8, 59, 8, 74, 8, 75, 8,
11, 9, 38, 9, 39, 9, 102, 9, 116, 9, 117, 9, 20, 10, 28, 10,
31, 10, 29, 10, 43, 11, 61, 11, 413, 11, 415, 11, 84, 12, 825, 12,
824, 12, 829, 12, 171, 13, 241, 13, 1656, 13, 242, 13, 480, 14, 481, 14,
340, 14, 3314, 14, 972, 15, 683, 15, 6631, 15, 974, 15, 6630, 15, 1364, 16,
1951, 16, 1365, 16, 3901, 17, 3895, 17, 3900, 17, 3893, 17, 7789, 18, 7784, 18,
15576, 19, 15571, 19, 15577, 19, 31140, 20, 996538, 25, 996532, 25, 996533, 25, 996534, 25,
996535, 25, 996536, 25, 996537, 25, 996539, 25, 996540, 25, 996541, 25, 996542, 25, 996543, 25,
1993024, 26, 1993025, 26, 1993026, 26, 1993027, 26, 1993028, 26, 1993029, 26, 1993030, 26, 1993031, 26,
1993032, 26, 1993033, 26, 1993034, 26, 1993035, 26, 1993036, 26, 1993037, 26, 1993038, 26, 1993039, 26,
1993040, 26, 1993041, 26, 1993042, 26, 1993043, 26, 1993044, 26, 1993045, 26, 1993046, 26, 1993047, 26,
1993048, 26, 1993049, 26, 1993050, 26, 1993051, 26, 1993052, 26, 1993053, 26, 1993054, 26, 1993055, 26,
1993056, 26, 1993057, 26, 1993058, 26, 1993059, 26, 1993060, 26, 1993061, 26, 1993062, 26, 1993063, 26
};
extern const Ipp32u DCChromaLowMotionEncTableVLC [120*2] =
{
/*code, len*/
0, 2, 1, 2, 5, 3, 9, 4, 13, 4, 17, 5, 29, 5, 31, 5,
33, 6, 49, 6, 56, 6, 51, 6, 57, 6, 61, 6, 97, 7, 121, 7,
128, 8, 200, 8, 202, 8, 240, 8, 129, 8, 192, 8, 201, 8, 263, 9,
262, 9, 406, 9, 387, 9, 483, 9, 482, 9, 522, 10, 523, 10, 1545, 11,
1042, 11, 1043, 11, 1547, 11, 1041, 11, 1546, 11, 1631, 11, 1040, 11, 1629, 11,
1630, 11, 3256, 12, 3088, 12, 3257, 12, 6179, 13, 12357, 14, 24713, 15, 49424, 16,
3163208, 22, 3163209, 22, 3163210, 22, 3163211, 22, 3163212, 22, 3163213, 22, 3163214, 22, 3163215, 22,
3163216, 22, 3163217, 22, 3163218, 22, 3163219, 22, 3163220, 22, 3163221, 22, 3163222, 22, 3163223, 22,
3163224, 22, 3163225, 22, 3163226, 22, 3163227, 22, 3163228, 22, 3163229, 22, 3163230, 22, 3163231, 22,
3163232, 22, 3163233, 22, 3163234, 22, 3163235, 22, 3163236, 22, 3163237, 22, 3163238, 22, 3163239, 22,
3163240, 22, 3163241, 22, 3163242, 22, 3163243, 22, 3163244, 22, 3163245, 22, 3163246, 22, 3163247, 22,
3163248, 22, 3163249, 22, 3163250, 22, 3163251, 22, 3163252, 22, 3163253, 22, 3163254, 22, 3163255, 22,
3163256, 22, 3163257, 22, 3163258, 22, 3163259, 22, 3163260, 22, 3163261, 22, 3163262, 22, 3163263, 22,
6326400, 23, 6326401, 23, 6326402, 23, 6326403, 23, 6326404, 23, 6326405, 23, 6326406, 23, 6326407, 23,
6326408, 23, 6326409, 23, 6326410, 23, 6326411, 23, 6326412, 23, 6326413, 23, 6326414, 23, 6326415, 23
};
extern const Ipp32u DCCromaHighMotionEncTableVLC [120*2] =
{
/*code, len*/
0, 2, 1, 2, 4, 3, 7, 3, 11, 4, 13, 4, 21, 5, 40, 6,
48, 6, 50, 6, 82, 7, 98, 7, 102, 7, 166, 8, 198, 8, 207, 8,
335, 9, 398, 9, 412, 9, 669, 10, 826, 10, 1336, 11, 1596, 11, 1598, 11,
1599, 11, 1654, 11, 2675, 12, 3194, 12, 3311, 12, 5349, 13, 6621, 13, 10696, 14,
10697, 14, 25565, 15, 13240, 14, 13241, 14, 51126, 16, 25560, 15, 25567, 15, 51123, 16,
51124, 16, 51125, 16, 25566, 15, 51127, 16, 51128, 16, 51129, 16, 102245, 17, 204488, 18,
13087304, 24, 13087305, 24, 13087306, 24, 13087307, 24, 13087308, 24, 13087309, 24, 13087310, 24, 13087311, 24,
13087312, 24, 13087313, 24, 13087314, 24, 13087315, 24, 13087316, 24, 13087317, 24, 13087318, 24, 13087319, 24,
13087320, 24, 13087321, 24, 13087322, 24, 13087323, 24, 13087324, 24, 13087325, 24, 13087326, 24, 13087327, 24,
13087328, 24, 13087329, 24, 13087330, 24, 13087331, 24, 13087332, 24, 13087333, 24, 13087334, 24, 13087335, 24,
13087336, 24, 13087337, 24, 13087338, 24, 13087339, 24, 13087340, 24, 13087341, 24, 13087342, 24, 13087343, 24,
13087344, 24, 13087345, 24, 13087346, 24, 13087347, 24, 13087348, 24, 13087349, 24, 13087350, 24, 13087351, 24,
13087352, 24, 13087353, 24, 13087354, 24, 13087355, 24, 13087356, 24, 13087357, 24, 13087358, 24, 13087359, 24,
26174592, 25, 26174593, 25, 26174594, 25, 26174595, 25, 26174596, 25, 26174597, 25, 26174598, 25, 26174599, 25,
26174600, 25, 26174601, 25, 26174602, 25, 26174603, 25, 26174604, 25, 26174605, 25, 26174606, 25, 26174607, 25
};
extern const Ipp8u HighMotionIntraIndexLevelLast0[31] =
{
/* level run index*/
/*1.. 19 , 0 */ 0 ,
/*1.. 15 , 1 */ 19 ,
/*1.. 12 , 2 */ 34 ,
/*1.. 11 , 3 */ 46 ,
/*1.. 6 , 4 */ 57 ,
/*1.. 5 , 5 */ 63 ,
/*1.. 4 , 6 */ 68 ,
/*1.. 4 , 7 */ 72 ,
/*1.. 4 , 8 */ 76 ,
/*1.. 4 , 9 */ 80 ,
/*1.. 3 , 10 */ 84 ,
/*1.. 3 , 11 */ 87 ,
/*1.. 3 , 12 */ 90 ,
/*1.. 3 , 13 */ 93 ,
/*1.. 3 , 14 */ 96 ,
/*1.. 3 , 15 */ 99 ,
/*1.. 2 , 16 */ 102 ,
/*1.. 2 , 17 */ 104 ,
/*1.. 1 , 18 */ 106 ,
/*1.. 1 , 19 */ 107 ,
/*1.. 1 , 20 */ 108 ,
/*1.. 1 , 21 */ 109 ,
/*1.. 1 , 22 */ 110 ,
/*1.. 1 , 23 */ 111 ,
/*1.. 1 , 24 */ 112 ,
/*1.. 1 , 25 */ 113 ,
/*1.. 1 , 26 */ 114 ,
/*1.. 1 , 27 */ 115 ,
/*1.. 1 , 28 */ 116 ,
/*1.. 1 , 29 */ 117 ,
/*1.. 1 , 30 */ 118
};
extern const Ipp8u HighMotionIntraIndexLevelLast1[38] =
{
/* level run index*/
/*1.. 6 , 0 */ 119 ,
/*1.. 5 , 1 */ 125 ,
/*1.. 4 , 2 */ 130 ,
/*1.. 4 , 3 */ 134 ,
/*1.. 3 , 4 */ 138 ,
/*1.. 2 , 5 */ 141 ,
/*1.. 2 , 6 */ 143 ,
/*1.. 2 , 7 */ 145 ,
/*1.. 2 , 8 */ 147 ,
/*1.. 2 , 9 */ 149 ,
/*1.. 2 , 10 */ 151 ,
/*1.. 2 , 11 */ 153 ,
/*1.. 2 , 12 */ 155 ,
/*1.. 2 , 13 */ 157 ,
/*1.. 2 , 14 */ 159 ,
/*1.. 2 , 15 */ 161 ,
/*1.. 1 , 16 */ 163 ,
/*1.. 1 , 17 */ 164 ,
/*1.. 1 , 18 */ 165 ,
/*1.. 1 , 19 */ 166 ,
/*1.. 1 , 20 */ 167 ,
/*1.. 1 , 21 */ 168 ,
/*1.. 1 , 22 */ 169 ,
/*1.. 1 , 23 */ 170 ,
/*1.. 1 , 24 */ 171 ,
/*1.. 1 , 25 */ 172 ,
/*1.. 1 , 26 */ 173 ,
/*1.. 1 , 27 */ 174 ,
/*1.. 1 , 28 */ 175 ,
/*1.. 1 , 29 */ 176 ,
/*1.. 1 , 30 */ 177 ,
/*1.. 1 , 31 */ 178 ,
/*1.. 1 , 32 */ 179 ,
/*1.. 1 , 33 */ 180 ,
/*1.. 1 , 34 */ 181 ,
/*1.. 1 , 35 */ 182 ,
/*1.. 1 , 36 */ 183 ,
/*1.. 1 , 37 */ 184
};
extern const Ipp8u LowMotionIntraIndexLevelLast0[21] =
{
/* level run index*/
/*1.. 16 , 0 */ 0 ,
/*1.. 11 , 1 */ 16 ,
/*1.. 8 , 2 */ 27 ,
/*1.. 7 , 3 */ 35 ,
/*1.. 5 , 4 */ 42 ,
/*1.. 4 , 5 */ 47 ,
/*1.. 4 6 */ 51 ,
/*1.. 3 7 */ 55 ,
/*1.. 3 8 */ 58 ,
/*1.. 3 9 */ 61 ,
/*1.. 3 10 */ 64 ,
/*1.. 3 11 */ 67 ,
/*1.. 3 12 */ 70 ,
/*1.. 3 13 */ 73 ,
/*1.. 2 14 */ 76 ,
/*1.. 2 15 */ 78 ,
/*1.. 1 16 */ 80 ,
/*1.. 1 17 */ 81 ,
/*1.. 1 18 */ 82 ,
/*1.. 1 19 */ 83 ,
/*1.. 1 20 */ 84
};
extern const Ipp8u LowMotionIntraIndexLevelLast1[27] =
{
/* level run index*/
/*1.. 4 , 0 */ 85 ,
/*1.. 4 , 1 */ 89 ,
/*1.. 3 , 2 */ 93 ,
/*1.. 3 , 3 */ 96 ,
/*1.. 2 , 4 */ 99 ,
/*1.. 2 , 5 */ 101 ,
/*1.. 2 6 */ 103 ,
/*1.. 2 7 */ 105 ,
/*1.. 2 8 */ 107 ,
/*1.. 2 9 */ 109 ,
/*1.. 2 10 */ 111 ,
/*1.. 2 11 */ 113 ,
/*1.. 2 12 */ 115 ,
/*1.. 2 13 */ 117 ,
/*1.. 1 14 */ 119 ,
/*1.. 1 15 */ 120 ,
/*1.. 1 16 */ 121 ,
/*1.. 1 17 */ 122 ,
/*1.. 1 18 */ 123 ,
/*1.. 1 19 */ 124 ,
/*1.. 1 20 */ 125 ,
/*1.. 1 21 */ 126 ,
/*1.. 1 22 */ 127 ,
/*1.. 1 23 */ 128 ,
/*1.. 1 24 */ 129 ,
/*1.. 1 25 */ 130 ,
/*1.. 1 26 */ 131
};
extern const Ipp8u MidRateIntraIndexLevelLast0[15] =
{
/* level run index*/
/*1.. 27 , 0 */ 0 ,
/*1.. 10 , 1 */ 27 ,
/*1.. 5 , 2 */ 37 ,
/*1.. 4 , 3 */ 42 ,
/*1.. 3 , 4 */ 46 ,
/*1.. 3 , 5 */ 49 ,
/*1.. 3 , 6 */ 52 ,
/*1.. 3 , 7 */ 55 ,
/*1.. 2 , 8 */ 58 ,
/*1.. 2 , 9 */ 60 ,
/*1.. 1 , 10 */ 62 ,
/*1.. 1 , 11 */ 63 ,
/*1.. 1 , 12 */ 64 ,
/*1.. 1 , 13 */ 65 ,
/*1.. 1 , 14 */ 66
};
extern const Ipp8u MidRateIntraIndexLevelLast1[21] =
{
/* level run index*/
/*1.. 8 , 0 */ 67 ,
/*1.. 3 , 1 */ 75 ,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -