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

📄 vlc.h

📁 AVS是中国自己推出的视频图像音频编解码标准。包中是AVS 源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
		{2,9}, {0,9}, {1,9}, {1,9}, {0,9}, {-1,-1}, {-1,-1},
	},
};

const char MaxRun[3][7] = 
{
	{22,14,9,6,4,2,1},
	{25,18,13,9,6,4,3},
	{24,19,10,7,4,-1,-1}
};

const char RefAbsLevel[19][26] = 
{
	{ 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1},
	{ 7, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{10, 6, 4, 4, 3, 3, 3, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{13, 7, 5, 4, 3, 2, 2,-1,-1,-1 -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{18, 8, 4, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{22, 7, 3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{27, 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{ 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
	{ 5, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1},
	{ 7, 5, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{10, 6, 5, 4, 3, 3, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{13, 7, 5, 4, 3, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{17, 8, 4, 3, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{22, 6, 3, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{ 5, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1},
	{ 6, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1},
	{10, 6, 4, 4, 3, 3, 2, 2, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{14, 7, 4, 3, 3, 2, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
	{20, 7, 3, 2, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}
};

const AVS_INT SCAN[2][64][2] = // [scan_pos][x/y] ATTENTION: the ScanPositions are (pix,lin)!
{
	{
		{0,0},{0,1},{0,2},{1,0},{0,3},{0,4},{1,1},{1,2},
		{0,5},{0,6},{1,3},{2,0},{2,1},{0,7},{1,4},{2,2},
		{3,0},{1,5},{1,6},{2,3},{3,1},{3,2},{4,0},{1,7},
		{2,4},{4,1},{2,5},{3,3},{4,2},{2,6},{3,4},{4,3},
		{5,0},{5,1},{2,7},{3,5},{4,4},{5,2},{6,0},{5,3},
		{3,6},{4,5},{6,1},{6,2},{5,4},{3,7},{4,6},{6,3},
		{5,5},{4,7},{6,4},{5,6},{6,5},{5,7},{6,6},{7,0},
		{6,7},{7,1},{7,2},{7,3},{7,4},{7,5},{7,6},{7,7}
	},
	{
		{ 0, 0}, { 1, 0}, { 0, 1}, { 0, 2}, { 1, 1}, { 2, 0}, { 3, 0}, { 2, 1},
		{ 1, 2}, { 0, 3}, { 0, 4}, { 1, 3}, { 2, 2}, { 3, 1}, { 4, 0}, { 5, 0},
		{ 4, 1}, { 3, 2}, { 2, 3}, { 1, 4}, { 0, 5}, { 0, 6}, { 1, 5}, { 2, 4},
		{ 3, 3}, { 4, 2}, { 5, 1}, { 6, 0}, { 7, 0}, { 6, 1}, { 5, 2}, { 4, 3},
		{ 3, 4}, { 2, 5}, { 1, 6}, { 0, 7}, { 1, 7}, { 2, 6}, { 3, 5}, { 4, 4},
		{ 5, 3}, { 6, 2}, { 7, 1}, { 7, 2}, { 6, 3}, { 5, 4}, { 4, 5}, { 3, 6},
		{ 2, 7}, { 3, 7}, { 4, 6}, { 5, 5}, { 6, 4}, { 7, 3}, { 7, 4}, { 6, 5},
		{ 5, 6}, { 4, 7}, { 5, 7}, { 6, 6}, { 7, 5}, { 7, 6}, { 6, 7}, { 7, 7}
	}
};

// jthou [6/14/2005]
const AVS_BYTE ZigZagTab[2][64] = 
{
  {
    0,  1,  8,  16,  9,  2, 3,  10,
    17, 24, 32, 25, 18, 11,  4,  5,
    12, 19, 26, 33, 40, 48, 41, 34,
    27, 20, 13, 16,  7, 14, 21, 28,
    35, 42, 49, 56, 57, 50, 43, 36,
    29, 22, 15, 23, 30, 37, 44, 51,
    58, 59, 52, 45, 38, 31, 39, 46,
    53, 60, 61, 54, 47, 55, 62, 63
  },
  {
      0,  8, 16,  3, 24, 32,  9, 17,
     40, 48, 25,  2, 10, 56, 33, 18,
      3, 41, 49, 26, 11, 19,  4, 57,
     34, 12, 42, 27, 20, 50, 35, 28,
      5, 13, 58, 43, 36, 21,  6, 29,
     51, 44, 14, 22, 37, 59, 52, 30, 
     45, 60, 38, 53, 46, 61, 54,  7,
     62, 15, 23, 31, 39, 47, 55, 63
  }
};
const AVS_SHORT IQ_SHIFT[64] = {
	  15,15,15,15,15,15,15,15,
		14,14,14,14,14,14,14,14,
		14,13,13,13,13,13,13,13,
		12,12,12,12,12,12,12,12,
		12,11,11,11,11,11,11,11,
		11,10,10,10,10,10,10,10,
		10,9,9,9,9,9,9,9,
		8,8,8,8,8,8,8,8
};

const AVS_USHORT IQ_TAB[64] = {
	  32768,36061,38968,42495,46341,50535,55437,60424,
		32932,35734,38968,42495,46177,50535,55109,59933,
		65535,35734,38968,42577,46341,50617,55027,60097,
		32809,35734,38968,42454,46382,50576,55109,60056,
		65535,35734,38968,42495,46320,50515,55109,60076,
		65535,35744,38968,42495,46341,50535,55099,60087,
		65535,35734,38973,42500,46341,50535,55109,60097,
		32771,35734,38965,42497,46341,50535,55109,60099
};

const AVS_BYTE QP_SCALE_CR[64]=
{
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
    10,11,12,13,14,15,16,17,18,19,
    20,21,22,23,24,25,26,27,28,29,
    30,31,32,33,34,35,36,37,38,39,
    40,41,42,42,43,43,44,44,45,45,
    46,46,47,47,48,48,48,49,49,49,
    50,50,50,51,
};

const AVS_INT MASKBITARRAY[32]=
{
  0x1,      0x2,      0x4,      0x8,      0x10,     0x20,     0x40,     0x80,    
  0x100,    0x200,    0x400,    0x800,    0x1000,   0x2000,   0x4000,   0x8000,   
  0x10000,  0x20000,  0x40000,  0x80000,  0x100000, 0x200000, 0x400000, 0x800000, 
  0x1000000,0x2000000,0x4000000,0x8000000,0x10000000,0x20000000,0x40000000,0x80000000
};
const AVS_INT EOB_Pos_intra[7] = { -1, 8, 8, 8, 6, 0, 0};       //qwang 2004.11.29
const AVS_INT EOB_Pos_inter[7] = { -1, 2, 2, 2, 2, 0, 0};       //qwang 2004.11.29


AVS_INT   ue(const AVS_BYTE*  buffer,AVS_DWORD* totbitoffset, AVS_INT bytecount);
AVS_INT   se(const AVS_BYTE*  buffer,AVS_DWORD* totbitoffset, AVS_INT bytecount);
AVS_INT   me(const AVS_BYTE*  buffer,AVS_DWORD* totbitoffset, AVS_INT bytecount, AVS_DWORD dwMbType);
AVS_INT   me_chroma422(const AVS_BYTE* buffer,AVS_DWORD* totbitoffset, AVS_INT bytecount, AVS_DWORD dwMbType);


void  linfo_ue(AVS_INT len, AVS_INT info, AVS_INT *value1);
void  linfo_se(AVS_INT len, AVS_INT info, AVS_INT *value1);

void  linfo_cbp_intra(AVS_INT len,AVS_INT info,AVS_INT *cbp);
void  linfo_cbp_inter(AVS_INT len,AVS_INT info,AVS_INT *cbp);
void  MakeVlcTable();
void  ReadLumaCoeff(const AVS_BYTE* pbCurrent, AVS_DWORD dwDataLen, AVS_DWORD* dwBitOffset, MBINFO* pCurrMb, AVS_DWORD dwPictureStructure, AVS_SHORT* pResidual);
void  ReadChromaCoeff(const AVS_BYTE* pbCurrent,AVS_DWORD dwDataLen, AVS_DWORD* pdwBitOffset, MBINFO* pCurrMb, AVS_DWORD dwPictureStructure, AVS_SHORT* pResidual);
AVS_INT PassLeadingZeroBits(const AVS_BYTE* buffer,AVS_DWORD* totbitoffset);
AVS_INT read_bits(const AVS_BYTE* buffer, AVS_DWORD* totbitoffset, AVS_INT numbits);


#endif

⌨️ 快捷键说明

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