www.pudn.com > VC_Standalone.rar > global.h
/************************************************************************* AVS1-P2视频解码器源码 版权所有:联合信源数字音视频技术(北京)有限公司, (c) 2005-2006 AVS1-P2 Video Decoder Source Code (c) Copyright, NSCC All Rights Reserved, 2005-2006 ************************************************************************* Distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************/ /************************************************************************* 文件名称: global.h 描 述: global.cpp 的申明文件 *************************************************************************/ /************************************************************************* Revision History data Modification Author 2005-2-8 Created jthou *************************************************************************/ #ifndef _GLOBAL_H_ #define _GLOBAL_H_ #include#include #include #include // global variables------------------------------------------------ const AVS_FLOAT fPictureRates[] = { (AVS_FLOAT)0, (AVS_FLOAT)23.976, (AVS_FLOAT)24, (AVS_FLOAT)25, (AVS_FLOAT)29.97, (AVS_FLOAT)30, (AVS_FLOAT)50, (AVS_FLOAT)59.94, (AVS_FLOAT)60.0 }; const AVS_BYTE NCBP[64][2]= // jlzheng 7.20 { {63, 0},{15, 15},{31, 63},{47, 31},{ 0, 16},{ 14,32},{13,47},{11,13},{7, 14},{5, 11}, {10,12},{8,5},{12,10},{61,7},{4,48},{55,3},{1, 2},{2,8},{59,4},{3,1}, {62, 61},{ 9, 55},{ 6,59},{29,62},{45,29},{51,27},{23,23},{39,19},{27,30},{46,28}, {53,9},{30,6},{43,60},{37,21},{60,44},{16,26},{21,51},{ 28,35},{ 19,18},{ 35,20}, { 42,24},{ 26,53},{ 44,17},{32,37},{58,39},{24,45},{20,58},{17,43},{18,42},{48,46}, {22,36},{33,33},{25,34},{49,40},{40,52},{36,49},{34,50},{50,56},{52,25},{54,22}, {41,54},{56,57},{38,41},{57,38} }; const AVS_BYTE NCBP422[4][2]= // jthou { {0, 0}, {1, 1}, {2, 2}, {3, 3} }; const AVS_DWORD MvNum[53] = { //Intra Mode 0, // P Mb Mode 0, 1, 2, 2, 4, // B Mb Mode 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1 }; const AVS_INT DequantTable[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_INT ShiftTable[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 }; extern AVS_BYTE ClipTable[CLIPSIZE*2+256]; extern AVS_INT TabNoBuf[1025]; extern AVS_INT TabNoBuf2[1025]; extern AVS_SHORT* g_pCoffData; extern AVS_SHORT* g_pInvCoffData; __inline AVS_DWORD DWORD_SWAP(AVS_DWORD x) { #if 1 return ((AVS_DWORD)( ((x) << 24) | ((x) >> 24) | (((x) & 0xFF00) << 8) | (((x) & 0xFF0000) >> 8))); #else AVS_DWORD tmp = x; __asm { mov eax, tmp bswap eax mov tmp, eax } return tmp; #endif } // global functions------------------------------------------------ //AVS_DWORD DWORD_SWAP(AVS_DWORD x); void MakeClipTable(); void MakeTabNoBuf(); AVS_HRESULT GetMem(VIDEODATA** refFrame, AVS_INT refFrameNum); void ReleaseMem(VIDEODATA* refFrame[], AVS_INT refNum); #endif