www.pudn.com > VC_Standalone.rar > pred.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 
*************************************************************************/ 
/************************************************************************* 
  文件名称:	pred.h 
  描    述: pred.cpp 的申明文件 
*************************************************************************/ 
/************************************************************************* 
  Revision History 
  data          Modification                                    Author 
  2005-3-2      Created                                          jthou 
 *************************************************************************/ 
#ifndef _PRED_H_ 
#define _PRED_H_ 
 
#include "define.h" 
 
AVS_HRESULT IntraPredLuma(MBINFO* pMbInfo, const AVS_BYTE* pbCurrY, AVS_DWORD dwMbIndex, AVS_DWORD dwImgWidth, AVS_DWORD dwImgHeight, AVS_DWORD dwBlockNo, AVS_BYTE* pPred, AVS_DWORD dwImgX, AVS_DWORD dwImgY); 
AVS_HRESULT IntraPredChroma(MBINFO* pMbInfo, const AVS_BYTE* pbCurrUV, AVS_DWORD dwMbIndex, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_BYTE* pPred, AVS_DWORD dwUVX, AVS_DWORD dwUVY); 
 
 
AVS_HRESULT InterPredLuma16x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefY, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_INT iBlockDistance, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLuma16x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefY, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_INT iBlockDistance, AVS_DWORD dwSubMb, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLuma8x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefY, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_INT iBlockDistance, AVS_DWORD dwSubMb, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLuma8x8(MBINFO* pMbInfo, AVS_INT dwMbIndex, const AVS_BYTE* pbRefY, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_INT iBlockDistance, AVS_INT dwSubMb, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaDirect(MBINFO* pMbInfo[2], AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefY, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_INT iBlockDistance); 
AVS_HRESULT InterPredLumaP(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_INT dwMbWidth, AVS_INT dwMbHeight,  
                     AVS_INT dwCurrDistanceIndex, BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_INT InterPredChormaP(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChroma16x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefUV, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwUV, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChroma16x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefUV, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChroma8x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefUV, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_INT dirBw, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChroma8x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const AVS_BYTE* pbRefUV, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_INT dirBw, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredLumaSym16x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaSym16x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_DWORD dwSubMb, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaSym8x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDisatnceIndex, AVS_DWORD dwSubMb, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaSym8x8(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefeNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_DWORD dwCurrDistanceIdex, AVS_INT dwSubMb, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredLumaBSkipDirect(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_DWORD dwSubMb, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaBSkipDirect2(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_DWORD dwSubMb, const BWREFINFO* pBwRefInfo, AVS_INT PictureStructure, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredLumaSbDirect8x8(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_INT dwSubMb, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaSbDirect8x8_1(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_INT dwSubMb, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaSbDirect8x8_2(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_INT dwSubMb, AVS_INT PictureStructure, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaBSkipDirect16x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredLumaB(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight,  
                     AVS_INT dwCurrDistanceIndex, AVS_BOOL bPictureStructure, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
AVS_HRESULT InterPredLumaB8x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwCurrDistanceIndex, AVS_BOOL bPictureStructure, AVS_DWORD dwSubMb, const BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredChormaB(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, BWREFINFO* pBwRefInfo, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredChromaSym16x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwUV, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChromaSym16x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChromaSym8x16(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_BYTE* pPred); 
AVS_HRESULT InterPredChromaSym8x8(MBINFO* pMbInfo, AVS_DWORD dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_DWORD dwMbWidth, AVS_DWORD dwMbHeight, AVS_DWORD dwSubMb, AVS_DWORD dwUV, AVS_BYTE* pPred); 
 
AVS_HRESULT InterPredChromaB8x8(MBINFO* pMbInfo, AVS_INT dwMbIndex, const VIDEODATA** ppRefFrame, AVS_DWORD dwRefNum, AVS_INT dwMbWidth, AVS_INT dwMbHeight, AVS_INT dwSubMb, AVS_INT dwUV, AVS_BYTE* pPred); 
 
void GetRefIndex(MBINFO* pMbInfo, AVS_DWORD dwRefNum, AVS_INT* pIdxFw, AVS_INT* pIdxBw); 
#endif