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

📄 umc_vc1_common_acintra.cpp

📁 audio-video-codecs.rar语音编解码器
💻 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, AC Intra(Y) tables
//
*/
#include "umc_defs.h"

#if defined (UMC_ENABLE_VC1_VIDEO_DECODER) || defined (UMC_ENABLE_VC1_SPLITTER) || defined (UMC_ENABLE_VC1_VIDEO_ENCODER)

#include "umc_vc1_common_defs.h"
#include "umc_vc1_common_acintra.h"

//////////////////////////////////////////////////////////////////////////
//////////////////////High Motion Intra///////////////////////////////////
//////////////////////////////////////////////////////////////////////////

//VC-1 Table 181: High Motion Intra Delta Level
//Indexed by Run Table (Last = 0)
//Run    DeltaLevel    Run    DeltaLevel
//0            19       16        2
//1            15       17        2
//2            12       18        1
//3            11       19        1
//4            6        20        1
//5            5        21        1
//6            4        22        1
//7            4        23        1
//8            4        24        1
//9            4        25        1
//10           3        26        1
//11           3        27        1
//12           3        28        1
//13           3        29        1
//14           3        30        1
//15           3

const extern Ipp8s VC1_HighMotionIntraDeltaLevelLast0[31] =
{
    19, 15, 12, 11,
    6,  5,  4,  4,
    4,  4,  3,  3,
    3,  3,  3,  3,

    2,  2,  1,  1,
    1,  1,  1,  1,
    1,  1,  1,  1,
    1,  1,  1
};

//VC-1 Table 182: High Motion Intra Delta Level
//Indexed by Run Table (Last = 1)
//Run    DeltaLevel    Run    DeltaLevel
//0            6        19        1
//1            5        20        1
//2            4        21        1
//3            4        22        1
//4            3        23        1
//5            2        24        1
//6            2        25        1
//7            2        26        1
//8            2        27        1
//9            2        28        1
//10           2        29        1
//11           2        30        1
//12           2        31        1
//13           2        32        1
//14           2        33        1
//15           2        34        1
//16           1        35        1
//17           1        36        1
//18           1        37        1

const extern Ipp8s VC1_HighMotionIntraDeltaLevelLast1[38] =
{
    6, 5, 4, 4,
    3, 2, 2, 2,
    2, 2, 2, 2,
    2, 2, 2, 2,

    1, 1, 1, 1,
    1, 1, 1, 1,
    1, 1, 1, 1,
    1, 1, 1, 1,

    1, 1, 1, 1,
    1, 1,

};

//VC-1 Table 183: High Motion Intra Delta Run
//Indexed by Level Table (Last = 0)
//Level    DeltaRun    Level    DeltaRun
//1            30       11            3
//2            17       12            2
//3            15       13            1
//4            9        14            1
//5            5        15            1
//6            4        16            0
//7            3        17            0
//8            3        18            0
//9            3        19            0
//10           3

const extern Ipp8s VC1_HighMotionIntraDeltaRunLast0[20] =
{
    -1,
    30, 17, 15, 9,
    5,  4,  3,  3,
    3,  3,  3,  2,
    1,  1,  1,  0,

    0,  0,  0
};

//VC-1 Table 184: High Motion Intra Delta Run
//Indexed by Level Table (Last = 1)
//Level    Delta Run
//1            37
//2            15
//3            4
//4            3
//5            1
//6            0

const extern Ipp8s VC1_HighMotionIntraDeltaRunLast1[7] =
{
    -1,
    37, 15, 4, 3,
    1,  0
};

//////////////////////////////////////////////////////////////////////////
//////////////////////Low Motion Intra///////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//VC-1 Table 195: Low Motion Intra Delta Level
//Indexed by Run Table (Last = 0)
//Run    DeltaLevel    Run        DeltaLevel
//0            16       11            3
//1            11       12            3
//2            8        13            3
//3            7        14            2
//4            5        15            2
//5            4        16            1
//6            4        17            1
//7            3        18            1
//8            3        19            1
//9            3        20            1
//10           3
const extern Ipp8s VC1_LowMotionIntraDeltaLevelLast0[21] =
{
    16, 11, 8, 7,
    5, 4, 4, 3,
    3, 3, 3, 3,
    3, 3, 2, 2,
    1, 1, 1, 1,
    1
};

//VC-1 Table 196: Low Motion Intra Delta Level
//Indexed by Run Table (Last = 1)
//Run    DeltaLevel    Run    DeltaLevel
//0            4        14        1
//1            4        15        1
//2            3        16        1
//3            3        17        1
//4            2        18        1
//5            2        19        1
//6            2        20        1
//7            2        21        1
//8            2        22        1
//9            2        23        1
//10           2        24        1
//11           2        25        1
//12           2        26        1
//13           2
const extern Ipp8s VC1_LowMotionIntraDeltaLevelLast1[27] =
{
    4, 4, 3, 3,
    2, 2, 2, 2,
    2, 2, 2, 2,
    2, 2, 1, 1,
    1, 1, 1, 1,
    1, 1, 1, 1,
    1, 1, 1
};

//VC-1 Table 197: Low Motion Intra Delta Run
//Indexed by Level Table (Last = 0)
//Level    DeltaRun       Level  DeltaRun
//1            20            9        1
//2            15           10        1
//3            13           11        1
//4            6            12        0
//5            4            13        0
//6            3            14        0
//7            3            15        0
//8            2            16        0
const extern Ipp8s VC1_LowMotionIntraDeltaRunLast0[16+1] =
{
    -1,
    20, 15, 13, 6,
    4, 3, 3, 2,
    1, 1, 1, 0,
    0, 0, 0, 0
};

//VC-1 Table 198: Low Motion Intra Delta Run Indexed by Level Table (Last = 1)
//Level    DeltaRun
//1            26
//2            13
//3            3
//4            1
const extern Ipp8s VC1_LowMotionIntraDeltaRunLast1[4+1] =
{
    -1,
    26, 13, 3, 1
};

//////////////////////////////////////////////////////////////////////////
//////////////////////Mid Rate Intra//////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//VC-1 Table 209: Mid Rate Intra Delta Level Indexed by Run Table (Last = 0)
//Run    Delta Level    Run    Delta Level
//0            27        8        2
//1            10        9        2
//2            5        10        1
//3            4        11        1
//4            3        12        1
//5            3        13        1
//6            3        14        1
//7            3
const extern Ipp8s VC1_MidRateIntraDeltaLevelLast0[15] =
{
    27, 10, 5, 4,
    3,  3,  3, 3,
    2,  2,  1, 1,
    1,  1,  1
};

//VC-1 Table 210: Mid Rate Intra Delta Level Indexed by Run Table (Last = 1)
//Run    Delta Level    Run    Delta Level
//0            8        11        1
//1            3        12        1
//2            2        13        1
//3            2        14        1
//4            2        15        1
//5            2        16        1
//6            2        17        1
//7            1        18        1
//8            1        19        1
//9            1        20        1
//10        1

const extern Ipp8s VC1_MidRateIntraDeltaLevelLast1[21] =
{
    8, 3, 2, 2,
    2, 2, 2, 1,
    1, 1, 1, 1,
    1, 1, 1, 1,

    1, 1, 1, 1,
    1
};

//VC-1 Table 211: Mid Rate Intra Delta Run Indexed by Level Table (Last = 0)
//Level    Delta Run    Level    Delta Run
//1           14        15        0
//2            9        16        0
//3            7        17        0
//4            3        18        0
//5            2        19        0
//6            1        20        0
//7            1        21        0
//8            1        22        0
//9            1        23        0
//10           1        24        0
//11           0        25        0
//12           0        26        0
//13           0        27        0
//14           0
const extern Ipp8s VC1_MidRateIntraDeltaRunLast0[28] =
{
    -1,
    14, 9, 7, 3,
    2,  1, 1, 1,
    1,  1, 0, 0,
    0,  0, 0, 0,

    0,  0, 0, 0,
    0,  0, 0, 0,
    0,  0, 0
};

//VC-1 Table 212: Mid Rate Intra Delta Run Indexed by Level Table (Last = 1)
//Level    Delta Run
//1    20
//2    6
//3    1
//4    0
//5    0
//6    0
//7    0
//8    0
const extern Ipp8s VC1_MidRateIntraDeltaRunLast1[9] =
{
    -1,
    20, 6, 1, 0,
    0,  0, 0, 0
};


//////////////////////////////////////////////////////////////////////////
//////////////////////High Rate Intra//////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//VC-1 Table 223: High Rate Intra Delta Level
//Indexed by Run Table (Last = 0)
//Run    Delta Level    Run    Delta Level
//0            56        8        3
//1            20        9        3
//2            10       10        2
//3            7        11        2
//4            6        12        2
//5            5        13        2
//6            4        14        1
//7            3


const extern Ipp8s VC1_HighRateIntraDeltaLevelLast0[15] =
{
    56, 20, 10, 7,
    6,  5,  4,  3,
    3,  3,  2,  2,
    2,  2,  1
};

//VC-1 Table 224: High Rate Intra Delta Level
//Indexed by Run Table (Last = 1)
//Run    Delta Level    Run    Delta Level
//0            4        9         2
//1            3        10        2
//2            3        11        2
//3            2        12        2
//4            2        13        2
//5            2        14        2
//6            2        15        1
//7            2        16        1
//8            2

const extern Ipp8s VC1_HighRateIntraDeltaLevelLast1[17] =
{
    4, 3, 3, 2,
    2, 2, 2, 2,
    2, 2, 2, 2,
    2, 2, 2, 1,

    1
};

//VC-1 Table 225: High Rate Intra Delta Run
//Indexed by Level Table (Last = 0)
//Level Delta Run   Level    Delta Run
//1        14        29        0
//2        13        30        0
//3         9        31        0
//4         6        32        0
//5         5        33        0
//6         4        34        0
//7         3        35        0
//8         2        36        0
//9         2        37        0
//10        2        38        0
//11        1        39        0
//12        1        40        0
//13        1        41        0
//14        1        42        0
//15        1        43        0
//16        1        44        0
//17        1        45        0
//18        1        46        0
//19        1        47        0
//20        1        48        0
//21        0        49        0
//22        0        50        0
//23        0        51        0
//24        0        52        0
//25        0        53        0
//26        0        54        0
//27        0        55        0
//28        0        56        0

const extern Ipp8s VC1_HighRateIntraDeltaRunLast0[57] =
{
    -1,
    14, 13, 9,  6,
    5,  4,  3,  2,
    2,  2,  1,  1,
    1,  1,  1,  1,

    1,  1,  1,  1,
    0,  0,  0,  0,
    0,  0,  0,  0,
    0,  0,  0,  0,

    0,  0,  0,  0,
    0,  0,  0,  0,
    0,  0,  0,  0,
    0,  0,  0,  0,

    0,  0,  0,  0,
    0,  0,  0,  0,

};

//VC-1 Table 226: High Rate Intra Delta Run
//Indexed by Level Table (Last = 1)
//Level    Delta Run
//1            16
//2            14
//3            2
//4            0

const extern Ipp8s VC1_HighRateIntraDeltaRunLast1[5] =
{
    -1,
    16, 14, 2, 0
};
#endif //UMC_ENABLE_VC1_VIDEO_DECODER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -