📄 umc_vc1_dec_run_level_tbl.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) 2004-2007 Intel Corporation. All Rights Reserved.
//
//
// VC-1 (VC1) decoder, run level tables
//
*/
#include "umc_defs.h"
#if defined (UMC_ENABLE_VC1_VIDEO_DECODER)
#include "umc_vc1_common_defs.h"
#include "umc_vc1_dec_run_level_tbl.h"
#include "umc_vc1_common_acintra.h"
#include "umc_vc1_common_acinter.h"
//////////////////////////////////////////////////////////////////////////
//////////////////////Intra Decoding Sets/////////////////////////////////
//////////////////////////////////////////////////////////////////////////
extern IppiACDecodeSet_VC1 LowMotionIntraACDecodeSet =
{
0,
VC1_LowMotionIntraDeltaLevelLast0,
VC1_LowMotionIntraDeltaLevelLast1,
VC1_LowMotionIntraDeltaRunLast0,
VC1_LowMotionIntraDeltaRunLast1
};
extern IppiACDecodeSet_VC1 HighMotionIntraACDecodeSet =
{
0,
VC1_HighMotionIntraDeltaLevelLast0,
VC1_HighMotionIntraDeltaLevelLast1,
VC1_HighMotionIntraDeltaRunLast0,
VC1_HighMotionIntraDeltaRunLast1
};
extern IppiACDecodeSet_VC1 MidRateIntraACDecodeSet =
{
0,
VC1_MidRateIntraDeltaLevelLast0,
VC1_MidRateIntraDeltaLevelLast1,
VC1_MidRateIntraDeltaRunLast0,
VC1_MidRateIntraDeltaRunLast1
};
extern IppiACDecodeSet_VC1 HighRateIntraACDecodeSet =
{
0,
VC1_HighRateIntraDeltaLevelLast0,
VC1_HighRateIntraDeltaLevelLast1,
VC1_HighRateIntraDeltaRunLast0,
VC1_HighRateIntraDeltaRunLast1
};
extern IppiACDecodeSet_VC1* IntraACDecodeSetPQINDEXle7[3] =
{
&HighRateIntraACDecodeSet,
&HighMotionIntraACDecodeSet,
&MidRateIntraACDecodeSet
};
extern IppiACDecodeSet_VC1* IntraACDecodeSetPQINDEXgt7[3] =
{
&LowMotionIntraACDecodeSet,
&HighMotionIntraACDecodeSet,
&MidRateIntraACDecodeSet
};
//////////////////////////////////////////////////////////////////////////
//////////////////////Inter Decoding Sets/////////////////////////////////
//////////////////////////////////////////////////////////////////////////
extern IppiACDecodeSet_VC1 LowMotionInterACDecodeSet =
{
0,
VC1_LowMotionInterDeltaLevelLast0,
VC1_LowMotionInterDeltaLevelLast1,
VC1_LowMotionInterDeltaRunLast0,
VC1_LowMotionInterDeltaRunLast1
};
extern IppiACDecodeSet_VC1 HighMotionInterACDecodeSet =
{
0,
VC1_HighMotionInterDeltaLevelLast0,
VC1_HighMotionInterDeltaLevelLast1,
VC1_HighMotionInterDeltaRunLast0,
VC1_HighMotionInterDeltaRunLast1
};
extern IppiACDecodeSet_VC1 MidRateInterACDecodeSet =
{
0,
VC1_MidRateInterDeltaLevelLast0,
VC1_MidRateInterDeltaLevelLast1,
VC1_MidRateInterDeltaRunLast0,
VC1_MidRateInterDeltaRunLast1
};
extern IppiACDecodeSet_VC1 HighRateInterACDecodeSet =
{
0,
VC1_HighRateInterDeltaLevelLast0,
VC1_HighRateInterDeltaLevelLast1,
VC1_HighRateInterDeltaRunLast0,
VC1_HighRateInterDeltaRunLast1
};
extern IppiACDecodeSet_VC1* InterACDecodeSetPQINDEXle7[3] =
{
&HighRateInterACDecodeSet,
&HighMotionInterACDecodeSet,
&MidRateInterACDecodeSet
};
extern IppiACDecodeSet_VC1* InterACDecodeSetPQINDEXgt7[3] =
{
&LowMotionInterACDecodeSet,
&HighMotionInterACDecodeSet,
&MidRateInterACDecodeSet
};
//Table 73: DQScale
extern const Ipp32s VC1_DQScaleTbl[64] =
{
-1, //NA
262144, 131072, 87381, 65536,
52429, 43691, 37449, 32768,
29127, 26214, 23831, 21845,
20165, 18725, 17476, 16384,
15420, 14564, 13797, 13107,
12483, 11916, 11398, 10923,
10486, 10082, 9709, 9362,
9039, 8738, 8456, 8192,
7944, 7710, 7490, 7282,
7085, 6899, 6722, 6554,
6394, 6242, 6096, 5958,
5825, 5699, 5578, 5461,
5350, 5243, 5140, 5041,
4946, 4855, 4766, 4681,
4599, 4520, 4443, 4369,
4297, 4228, 4161
};
const extern Ipp32s VC1_HighMotionIntraAC[] =
{
15, /* max bits */
2, /* total subtables */
8,7 ,/* subtable sizes */
0, /* 1-bit codes */
1, /* 2-bit codes */
1, 0x000001, //index = 0, last = 0, run = 0, level = 1
1, /* 3-bit codes */
5, 0x000002, //index = 1, last = 0, run = 0, level = 2
3, /* 4-bit codes */
13, 0x000003, //index = 2, last = 0, run = 0, level = 3
0, 0x000101, //index = 19, last = 0, run = 1, level = 1
14, 0x010001, //index = 119, last = 1, run = 0, level = 1
5, /* 5-bit codes */
18, 0x000004, //index = 3, last = 0, run = 0, level = 4
16, 0x000102, //index = 20, last = 0, run = 1, level = 2
3, 0x000201, //index = 34, last = 0, run = 2, level = 1
19, 0x000301, //index = 46, last = 0, run = 3, level = 1
25, 0x010101, //index = 125, last = 1, run = 1, level = 1
5, /* 6-bit codes */
14, 0x000005, //index = 4, last = 0, run = 0, level = 5
48, 0x010201, //index = 130, last = 1, run = 2, level = 1
63, 0x010301, //index = 134, last = 1, run = 3, level = 1
12, 0x000401, //index = 57, last = 0, run = 4, level = 1
61, 0x000501, //index = 63, last = 0, run = 5, level = 1
10,/* 7-bit codes */
21, 0x000006, //index = 5, last = 0, run = 0, level = 6
8, 0x000103, //index = 21, last = 0, run = 1, level = 3
17, 0x000202, //index = 35, last = 0, run = 2, level = 2
68, 0x010401, //index = 138, last = 1, run = 4, level = 1
99, 0x010501, //index = 141, last = 1, run = 5, level = 1
120, 0x000302, //index = 47, last = 0, run = 3, level = 2
27, 0x000701, //index = 72, last = 0, run = 7, level = 1
19, 0x000601, //index = 68, last = 0, run = 6, level = 1
121, 0x000801, //index = 76, last = 0, run = 8, level = 1
69, 0x010002, //index = 120, last = 1, run = 0, level = 2
15,/* 8-bit codes */
19, 0x000007, //index = 6, last = 0, run = 0, level = 7
63, 0x000008, //index = 7, last = 0, run = 0, level = 8
32, 0x000104, //index = 22, last = 0, run = 1, level = 4
196, 0x000203, //index = 36, last = 0, run = 2, level = 3
33, 0x000901, //index = 80, last = 0, run = 9, level = 1
53, 0x000A01, //index = 84, last = 0, run = 10, level = 1
197, 0x000B01, //index = 87, last = 0, run = 11, level = 1
21, 0x010601, //index = 143, last = 1, run = 6, level = 1
23, 0x010701, //index = 145, last = 1, run = 7, level = 1
44, 0x010801, //index = 147, last = 1, run = 8, level = 1
47, 0x010901, //index = 149, last = 1, run = 9, level = 1
141, 0x010A01, //index = 151, last = 1, run = 10, level = 1
142, 0x010B01, //index = 153, last = 1, run = 11, level = 1
251, 0x010C01, //index = 155, last = 1, run = 12, level = 1
45, 0x010D01, //index = 157, last = 1, run = 13, level = 1
15, /* 9-bit codes */
75, 0x000009, //index = 8, last = 0, run = 0, level = 9
287, 0x00000A, //index = 9, last = 0, run = 0, level = 10
41, 0x000105, //index = 23, last = 0, run = 1, level = 5
500, 0x000106, //index = 24, last = 0, run = 1, level = 6
105, 0x000303, //index = 48, last = 0, run = 3, level = 3
36, 0x000402, //index = 58, last = 0, run = 4, level = 2
83, 0x000502, //index = 64, last = 0, run = 5, level = 2
124, 0x000602, //index = 69, last = 0, run = 6, level = 2
72, 0x000C01, //index = 90, last = 0, run = 12, level = 1
44, 0x000D01, //index = 93, last = 0, run = 13, level = 1
499, 0x010003, //index = 121, last = 1, run = 0, level = 3
40, 0x010102, //index = 126, last = 1, run = 1, level = 2
121, 0x010E01, //index = 159, last = 1, run =14 , level = 1
122, 0x010F01, //index = 161, last = 1, run = 15, level = 1
74, IPPVC_ESCAPE, //IPPVC_ESCAPE
15, /* 10-bit codes */
184, 0x00000B, //index = 10, last = 0, run = 0, level = 11
995, 0x00000C, //index = 11, last = 0, run = 0, level = 12
563, 0x000107, //index = 25, last = 0, run = 1, level = 7
75, 0x000204, //index = 37, last = 0, run = 2, level = 4
562, 0x000304, //index = 49, last = 0, run = 3, level = 4
160, 0x000702, //index = 73, last = 0, run = 7, level = 2
993, 0x000802, //index = 77, last = 0, run = 8, level = 2
572, 0x000902, //index = 81, last = 0, run = 9, level = 2
250, 0x000D02, //index = 94, last = 0, run = 13, level = 2
146, 0x000E01, //index = 96, last = 0, run = 14, level = 1
163, 0x000F01, //index = 99, last = 0, run = 15, level = 1
162, 0x010202, //index = 131, last = 1, run = 2, level = 2
165, 0x010302, //index = 135, last = 1, run = 3, level = 2
561, 0x011001, //index = 163, last = 1, run = 16, level = 1
996, 0x011101, //index = 164, last = 1, run = 17, level = 1
21, /* 11-bit codes */
370, 0x00000D, //index = 12, last = 0, run = 0, level = 13
480, 0x000108, //index = 26, last = 0, run = 1, level = 8
180, 0x000205, //index = 38, last = 0, run = 2, level = 5
2004, 0x000206, //index = 39, last = 0, run = 2, level = 6
1121, 0x000305, //index = 50, last = 0, run = 3, level = 5
148, 0x000403, //index = 59, last = 0, run = 4, level = 3
416, 0x000503, //index = 65, last = 0, run = 5, level = 3
1985, 0x000603, //index = 70, last = 0, run = 6, level = 3
373, 0x000A02, //index = 85, last = 0, run = 10, level = 2
372, 0x000B02, //index = 88, last = 0, run = 11, level = 2
419, 0x000C02, //index = 91, last = 0, run = 12, level = 2
2006, 0x000D03, //index = 95, last = 0, run = 13, level = 3
482, 0x001001, //index = 102, last = 0, run = 16, level = 1
1988, 0x001101, //index = 104, last = 0, run = 17, level = 1
1146, 0x010004, //index = 122, last = 1, run = 0, level = 4
374, 0x010103, //index = 127, last = 1, run = 1, level = 3
1995, 0x010402, //index = 139, last = 1, run = 4, level = 2
1984, 0x010D02, //index = 158, last = 1, run = 13, level = 2
417, 0x011201, //index = 165, last = 1, run = 18, level = 1
323, 0x011301, //index = 166, last = 1, run = 19, level = 1
503, 0x011401, //index = 167, last = 1, run = 20, level = 1
25, /* 12-bit codes */
589, 0x00000E, //index = 13, last = 0, run = 0, level = 14
986, 0x00000F, //index = 14, last = 0, run = 0, level = 15
298, 0x000109, //index = 27, last = 0, run = 1, level = 9
989, 0x00010A, //index = 28, last = 0, run = 1, level = 10
837, 0x000207, //index = 40, last = 0, run = 2, level = 7
1004, 0x000306, //index = 51, last = 0, run = 3, level = 6
2240, 0x000404, //index = 60, last = 0, run = 4, level = 4
836, 0x000703, //index = 74, last = 0, run = 7, level = 3
4014, 0x000903, //index = 82, last = 0, run = 9, level = 3
1005, 0x000F02, //index = 100, last = 0, run = 15, level = 2
657, 0x001201, //index = 106, last = 0, run = 18, level = 1
659, 0x001301, //index = 107, last = 0, run = 19, level = 1
3978, 0x001401, //index = 108, last = 0, run = 20, level = 1
751, 0x010203, //index = 132, last = 1, run = 2, level = 3
987, 0x010303, //index = 136, last = 1, run = 3, level = 3
963, 0x010502, //index = 142, last = 1, run = 5, level = 2
2294, 0x010602, //index = 144, last = 1, run = 6, level = 2
367, 0x011501, //index = 168, last = 1, run = 21, level = 1
658, 0x011601, //index = 169, last = 1, run = 22, level = 1
743, 0x011701, //index = 170, last = 1, run = 23, level = 1
364, 0x011801, //index = 171, last = 1, run = 24, level = 1
365, 0x011901, //index = 172, last = 1, run = 25, level = 1
988, 0x011A01, //index = 173, last = 1, run = 26, level = 1
3979, 0x011B01, //index = 174, last = 1, run = 27, level = 1
984, 0x011D01, //index = 176, last = 1, run = 29, level = 1
35, /* 13-bit codes */
733, 0x000010, //index = 15, last = 0, run = 0, level = 16
8021, 0x000011, //index = 16, last = 0, run = 0, level = 17
1290, 0x00010B, //index = 29, last = 0, run = 1, level = 11
7977, 0x00010C, //index = 30, last = 0, run = 1, level = 12
727, 0x000208, //index = 41, last = 0, run = 2, level = 8
1983, 0x000209, //index = 42, last = 0, run = 2, level = 9
1312, 0x000307, //index = 52, last = 0, run = 3, level = 7
7978, 0x000308, //index = 53, last = 0, run = 3, level = 8
726, 0x000504, //index = 66, last = 0, run = 5, level = 4
724, 0x000803, //index = 78, last = 0, run = 8, level = 3
1971, 0x000A03, //index = 86, last = 0, run = 10, level = 3
1925, 0x000B03, //index = 89, last = 0, run = 11, level = 3
1182, 0x000C03, //index = 92, last = 0, run = 12, level = 3
1484, 0x000E02, //index = 97, last = 0, run = 14, level = 2
1289, 0x001501, //index = 109, last = 0, run = 21, level = 1
1288, 0x001601, //index = 110, last = 0, run = 22, level = 1
1933, 0x001701, //index = 111, last = 0, run = 23, level = 1
1982, 0x001801, //index = 112, last = 0, run = 24, level = 1
1932, 0x001901, //index = 113, last = 0, run = 25, level = 1
1500, 0x010005, //index = 123, last = 1, run = 0, level = 5
1181, 0x010104, //index = 128, last = 1, run = 1, level = 4
1176, 0x010702, //index = 146, last = 1, run = 7, level = 2
1970, 0x010802, //index = 148, last = 1, run = 8, level = 2
8020, 0x010902, //index = 150, last = 1, run = 9, level = 2
1981, 0x010A02, //index = 152, last = 1, run = 10, level = 2
4482, 0x010B02, //index = 154, last = 1, run = 11, level = 2
1291, 0x010C02, //index = 156, last = 1, run = 12, level = 2
8031, 0x010E02, //index = 160, last = 1, run = 14, level = 2
8022, 0x010F02, //index = 162, last = 1, run = 15, level = 2
1177, 0x011C01, //index = 175, last = 1, run = 28, level = 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -