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

📄 umc_vc1_dec_run_level_tbl.cpp

📁 audio-video-codecs.rar语音编解码器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/* /////////////////////////////////////////////////////////////////////////////
//
//                  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 + -