armvcm4p2_huff_tables_vlc.c

来自「The OpenMAX DL (Development Layer) APIs 」· C语言 代码 · 共 496 行

C
496
字号
 /** *  * File Name:  armVCM4P2_Huff_Tables_VLC.c * OpenMAX DL: v1.0.2 * Revision:   10586 * Date:       Wednesday, March 5, 2008 *  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. *  *  * * File:        armVCM4P2_Huff_Tables_VLC.c * Description: Contains all the Huffman tables used in MPEG4 codec * */#include "omxtypes.h"#include "armOMX.h"#include "armCOMM_Bitstream.h"/* *  For Intra*  last = 0 */const OMX_U8 armVCM4P2_IntraL0RunIdx[11] = {     0, 27, 37, 42, 46, 49, 52,     55, 58, 60, 62};/* Entry defined for all values *  for run = 0 to 14*  Note: the last entry is to terminate while decoding*/const ARM_VLC32 armVCM4P2_IntraVlcL0[68] = {        {2,    2},        {3,    6},        {4,    15},        {5,    13},        {5,    12},        {6,    21},        {6,    19},        {6,    18},        {7,    23},        {8,    31},        {8,    30},        {8,    29},        {9,    37},        {9,    36},        {9,    35},        {9,    33},        {10,   33},        {10,   32},        {10,   15},        {10,   14},        {11,    7},        {11,    6},        {11,   32},        {11,   33},        {12,   80},        {12,   81},        {12,   82},        {4,    14},        {6,    20},        {7,    22},        {8,    28},        {9,    32},        {9,    31},        {10,   13},        {11,   34},        {12,   83},        {12,   85},        {5,    11},        {7,    21},        {9,    30},        {10,   12},        {12,   86},        {6,    17},        {8,    27},        {9,    29},        {10,   11},        {6,    16},        {9,    34},        {10,   10},        {6,    13},        {9,    28},        {10,    8},        {7,    18},        {9,    27},        {12,   84},        {7,    20},        {9,    26},        {12,   87},        {8,    25},        {10,    9},        {8,    24},        {11,   35},        {8,    23},        {9,    25},        {9,    24},        {10,    7},        {12,   88},        {0,     0}};/* *  For Intra*  last = 1 */const OMX_U8 armVCM4P2_IntraL1RunIdx[8] = {    0,  8, 11, 13, 15, 17, 19, 21};/* Entry defined for all values *  for run = 0 to 20*  *  Note: the last entry is to terminate while decoding*/const ARM_VLC32 armVCM4P2_IntraVlcL1[36] = {        {4,     7},        {6,    12},        {8,    22},        {9,    23},        {10,    6},        {11,    5},        {11,    4},        {12,   89},        {6,    15},        {9,    22},        {10,    5},        {6,    14},        {10,    4},        {7,    17},        {11,   36},        {7,    16},        {11,   37},        {7,    19},        {12,   90},        {8,    21},        {12,   91},        {8,    20},        {8,    19},        {8,    26},        {9,    21},        {9,    20},        {9,    19},        {9,    18},        {9,    17},        {11,   38},        {11,   39},        {12,   92},        {12,   93},        {12,   94},        {12,   95},          {0,     0}};/* LMAX table for Intra (Last == 0)*/const OMX_U8 armVCM4P2_IntraL0LMAX[15] = {   27, 10,  5,  4,  3,  3,  3,      3,  2,  2,  1,  1,  1,  1,  1};/* LMAX table for Intra (Last == 1)*/const OMX_U8 armVCM4P2_IntraL1LMAX[21] = {    8,  3,  2,  2,  2,  2,  2,  1, 	1,  1,  1,  1,  1,  1,  1,  1,	1,  1,  1,  1,  1};/* RMAX table for Intra (Last == 0)   Level - 1 Indexed */const OMX_U8 armVCM4P2_IntraL0RMAX[27] ={   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};/* RMAX table for Intra (Last == 1)   Level - 1 Indexed */const OMX_U8 armVCM4P2_IntraL1RMAX[8] ={   20,  6,  1,  0,  0,  0,  0,  0};/* *  For Inter*  last = 0 */const OMX_U8 armVCM4P2_InterL0RunIdx[12] = {      0,  12,  18,  22,  25,  28,      31,  34,  36,  38,  40,  42};/* Entry defined for all values *  for run = 0 to 26*  Note: the last entry is to terminate while decoding*/const ARM_VLC32 armVCM4P2_InterVlcL0[59] = {        {2,     2},        {4,    15},        {6,    21},        {7,    23},        {8,    31},        {9,    37},        {9,    36},        {10,   33},        {10,   32},        {11,    7},        {11,    6},        {11,   32},        {3,     6},        {6,    20},        {8,    30},        {10,   15},        {11,   33},        {12,   80},        {4,    14},        {8,    29},        {10,   14},        {12,   81},        {5,    13},        {9,    35},        {10,   13},        {5,    12},        {9,    34},        {12,   82},        {5,    11},        {10,   12},        {12,   83},        {6,    19},        {10,   11},        {12,   84},        {6,    18},        {10,   10},        {6,    17},        {10,    9},        {6,    16},        {10,    8},        {7,    22},        {12,   85},        {7,    21},        {7,    20},        {8,    28},        {8,    27},        {9,    33},        {9,    32},        {9,    31},        {9,    30},        {9,    29},        {9,    28},        {9,    27},        {9,    26},        {11,   34},        {11,   35},        {12,   86},        {12,   87},        {0,     0}}; /* *  For Intra*  last = 1 */const OMX_U8 armVCM4P2_InterL1RunIdx[3] = {    0, 3, 5};/* Entry defined for all values *  for run = 0 to 40*  Note: the last entry is to terminate while decoding*/const ARM_VLC32 armVCM4P2_InterVlcL1[45] = {        {4,     7},        {9,    25},        {11,    5},        {6,    15},        {11,    4},        {6,    14},        {6,    13},        {6,    12},        {7,    19},        {7,    18},        {7,    17},        {7,    16},        {8,    26},        {8,    25},        {8,    24},        {8,    23},        {8,    22},        {8,    21},        {8,    20},        {8,    19},        {9,    24},        {9,    23},        {9,    22},        {9,    21},        {9,    20},        {9,    19},        {9,    18},        {9,    17},        {10,    7},        {10,    6},        {10,    5},        {10,    4},        {11,   36},        {11,   37},        {11,   38},        {11,   39},        {12,   88},        {12,   89},        {12,   90},        {12,   91},        {12,   92},        {12,   93},        {12,   94},        {12,   95},        { 0,    0}};/* LMAX table for Intra (Last == 0)*/const OMX_U8 armVCM4P2_InterL0LMAX[27] = {   12,  6,  4,  3,  3,  3,  3,  2,     2,  2,  2,  1,  1,  1,  1,  1,    1,  1,  1,  1,  1,  1,  1,  1,    1,  1,  1,};/* LMAX table for Intra (Last == 1)*/const OMX_U8 armVCM4P2_InterL1LMAX[41] = {    3,  2,  1,  1,  1,  1,  1,  1, 	1,  1,  1,  1,  1,  1,  1,  1,	1,  1,  1,  1,  1,  1,  1,  1,	1,  1,  1,  1,  1,  1,  1,  1,	1,  1,  1,  1,  1,  1,  1,  1,	1,  };/* RMAX table for Intra (Last == 0)   Level - 1 Indexed */const OMX_U8 armVCM4P2_InterL0RMAX[12] = {   26, 10,  6,  2,  1,  1,       0,  0,  0,  0,  0,  0};/* RMAX table for Intra (Last == 1)   Level - 1 Indexed */const OMX_U8 armVCM4P2_InterL1RMAX[3] = {   40,  1,  0};/* *  For Intra - Luminance*/const ARM_VLC32 armVCM4P2_aIntraDCLumaIndex[14] = {        {3,     3},        {2,     3},        {2,     2},        {3,     2},        {3,     1},        {4,     1},        {5,     1},        {6,     1},        {7,     1},        {8,     1},        {9,     1},        {10,    1},        {11,    1},        {0,     0}};/* *  For Intra - Chrominance*/ const ARM_VLC32 armVCM4P2_aIntraDCChromaIndex[14] = {        {2,     3},        {2,     2},        {2,     1},        {3,     1},        {4,     1},        {5,     1},        {6,     1},        {7,     1},        {8,     1},        {9,     1},        {10,    1},        {11,    1},        {12,    1},        {0,     0}};/*  *  Motion vector decoding table */ const ARM_VLC32 armVCM4P2_aVlcMVD[66] ={        {13,     5},        {13,     7},        {12,     5},        {12,     7},        {12,     9},        {12,    11},        {12,    13},        {12,    15},        {11,     9},        {11,    11},        {11,    13},        {11,    15},        {11,    17},        {11,    19},        {11,    21},        {11,    23},        {11,    25},        {11,    27},        {11,    29},        {11,    31},        {11,    33},        {11,    35},        {10,    19},        {10,    21},        {10,    23},        {8,      7},        {8,      9},        {8,     11},        {7,      7},        {5,      3},        {4,      3},        {3,      3},        {1,      1},        {3,      2},        {4,      2},        {5,      2},        {7,      6},        {8,     10},        {8,      8},        {8,      6},        {10,    22},        {10,    20},        {10,    18},        {11,    34},        {11,    32},        {11,    30},        {11,    28},        {11,    26},        {11,    24},        {11,    22},        {11,    20},        {11,    18},        {11,    16},        {11,    14},        {11,    12},        {11,    10},        {11,     8},        {12,    14},        {12,    12},        {12,    10},        {12,     8},        {12,     6},        {12,     4},        {13,     6},        {13,     4},        { 0,     0}};/* End of file */

⌨️ 快捷键说明

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