📄 downconvert.h
字号:
int imin,
int imax );
//--- SVC normative intra upsampling ---
void xCompIntraUpsampling ( ResizeParameters* pcParameters,
bool bChroma,
bool bBotFlag,
bool bVerticalInterpolation );
void xVertIntraUpsampling ( int iBaseW, int iBaseH,
int iLOffset, int iTOffset, int iROffset, int iBOffset,
int iYBorder, bool bBotFlag, bool bChromaFilter );
void xBasicIntraUpsampling ( int iBaseW, int iBaseH, int iCurrW, int iCurrH,
int iLOffset, int iTOffset, int iROffset, int iBOffset,
int iShiftX, int iShiftY, int iScaleX, int iScaleY,
int iOffsetX, int iOffsetY, int iAddX, int iAddY,
int iDeltaX, int iDeltaY, int iYBorder, bool bChromaFilter );
#ifdef DOWN_CONVERT_STATIC
//=======================================
// helper functions for DownConvert Tool
//=======================================
//--- initialization ---
void xInitLanczosFilter ();
//--- place to and get from image buffer ---
void xCopyToImageBuffer ( unsigned char* pucSrc,
int iWidth,
int iHeight,
int iStride );
void xCopyFromImageBuffer ( unsigned char* pucDes,
int iWidth,
int iHeight,
int iStride );
void xInitializeWithValue ( unsigned char* pucBuffer,
int iWidth,
int iHeight,
int iStride,
unsigned char cValue );
//--- dyadic upsampling ---
void xCompUpsamplingDyadic ( int iBaseW,
int iBaseH,
bool bChroma );
//--- Lanczos upsampling ---
void xCompUpsamplingLanczos ( ResizeParameters* pcParameters,
bool bChroma );
void xUpsamplingDataLanczos ( int iInLength,
int iOutLength,
long spos );
void xGetNumDenomLanczos ( int iInWidth,
int iOutWidth,
int& riNumerator,
int& riDenominator );
long xGetFilterLanczos ( long x );
//--- 6-tap + bilinear upsampling ---
void xCompUpsampling6tapBilin ( ResizeParameters* pcParameters,
bool bChroma );
void xUpsamplingData6tapBilin ( int iInLength,
int iOutLength );
//--- dyadic downsampling ---
void xCompDownsamplingDyadic ( int iCurrW,
int iCurrH );
//--- SVC non-normative downsampling ---
void xCompDownsampling ( ResizeParameters* pcParameters,
bool bChroma,
bool bBotFlag,
bool bVerticalDownsampling );
void xVertDownsampling ( int iBaseW,
int iBaseH,
bool bBotFlag );
void xBasicDownsampling ( int iBaseW, int iBaseH, int iCurrW, int iCurrH,
int iLOffset, int iTOffset, int iROffset, int iBOffset,
int iShiftX, int iShiftY, int iScaleX, int iScaleY,
int iAddX, int iAddY, int iDeltaX, int iDeltaY );
#else
//======================================
// helper functions for encoder/decoder
//======================================
//--- place to and get from image buffer ---
void xCopyToImageBuffer ( const short* psSrc,
int iWidth,
int iHeight,
int iStride );
void xCopyFromImageBuffer ( short* psDes,
int iWidth,
int iHeight,
int iStride );
void xInitializeWithValue ( short* psBuffer,
int iWidth,
int iHeight,
int iStride,
short iValue );
//--- cropping ---
void xCrop ( Frame* pcFrame,
Frame* pcBaseFrame,
ResizeParameters* pcParameters,
short iValue );
//--- SVC intra upsampling ---
void xIntraUpsampling ( Frame* pcFrame,
Frame* pcBaseFrame,
ResizeParameters* pcParameters );
void xInitSliceIdList ( MyList<unsigned int>& rcSliceIdList,
ResizeParameters* pcParameters,
MbDataCtrl* pcMbDataCtrl );
void xInitBaseModeAllowedFlags ( ResizeParameters* pcParameters,
bool* pabBaseModeAllowedFlagArrayFrm,
bool* pabBaseModeAllowedFlagArrayFld );
void xUpdateBaseModeAllowedFlags ( ResizeParameters* pcParameters,
bool* pabBaseModeAllowedFlagArrayFrm,
bool* pabBaseModeAllowedFlagArrayFld );
void xGenerateMbMapsForSliceId ( ResizeParameters* pcParameters,
MbDataCtrl* pcMbDataCtrlBase,
MbDataCtrl* pcMbDataCtrlPredFrm,
MbDataCtrl* pcMbDataCtrlPredFld,
unsigned int uiCurrentSliceId );
void xInitMbMaps ( ResizeParameters* pcParameters,
bool bFrm,
bool bTop,
bool bBot );
void xUpdateMbMapForSliceId ( ResizeParameters* pcParameters,
bool bChroma,
bool bFieldMb,
MbDataCtrl* pcMbDataCtrlBase,
MbDataCtrl* pcMbDataCtrlPredFrm,
MbDataCtrl* pcMbDataCtrlPredFld,
unsigned int uiCurrentSliceId );
void xUpdateIntraPredFrame ( Frame* pcDesFrame,
Frame* pcSrcFrame,
ResizeParameters* pcParameters );
//--- SVC residual upsampling ---
void xResidualUpsampling ( Frame* pcFrame,
Frame* pcBaseFrame,
ResizeParameters* pcParameters,
MbDataCtrl* pcMbDataCtrlBase );
void xDetermineTransBlkIdcs ( int iBaseW,
int iBaseH,
bool bChroma,
bool bBotField,
ResizeParameters* pcRP,
MbDataCtrl* pcMbDataCtrlBase );
void xCompResidualUpsampling ( ResizeParameters* pcParameters,
bool bChroma,
bool bBotFlag,
bool bVerticalInterpolation,
MbDataCtrl* pcMbDataCtrlBase );
void xVertResidualUpsampling ( int iBaseW, int iBaseH,
int iLOffset, int iTOffset, int iROffset, int iBOffset,
int iYBorder, bool bBotFlag );
void xBasicResidualUpsampling ( int iBaseW, int iBaseH, int iCurrW, int iCurrH,
int iLOffset, int iTOffset, int iROffset, int iBOffset,
int iShiftX, int iShiftY, int iScaleX, int iScaleY,
int iOffsetX, int iOffsetY, int iAddX, int iAddY,
int iDeltaX, int iDeltaY, int iYBorder );
#endif
private:
//===== member variables =====
int m_iImageStride;
int* m_paiImageBuffer;
int* m_paiTmp1dBuffer;
#ifdef DOWN_CONVERT_STATIC
long* m_padFilter;
int* m_aiTmp1dBufferInHalfpel;
int* m_aiTmp1dBufferInQ1pel;
int* m_aiTmp1dBufferInQ3pel;
int* m_paiTmp1dBufferOut;
#else
int* m_paiTransBlkIdc;
int m_iMbMapStride;
MbMapEntry* m_paeMbMapFrm;
MbMapEntry* m_paeMbMapFld;
#endif
};
#ifdef DOWN_CONVERT_STATIC
#else
H264AVC_NAMESPACE_END
#endif
#endif // _DOWN_CONVERT_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -