📄 umc_vc1_dec_seq.h
字号:
void CalculateInterlaceFrame1MV_B_Interpolate (VC1MVPredictors* MVPredictors,
Ipp16s *f_x,Ipp16s *f_y,
Ipp16s *b_x,Ipp16s *b_y);
void Calculate4MVFrame_Adv (VC1MVPredictors* MVPredictors,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp32u blk_num);
void CalculateInterlace4MV_TopField_Adv (VC1MVPredictors* MVPredictors,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp32u blk_num);
void CalculateInterlace4MV_BottomField_Adv (VC1MVPredictors* MVPredictors,
Ipp16s *pPredMVx,Ipp16s *pPredMVy,
Ipp32u blk_num);
void CalculateField1MVOneReferencePPic (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy);
void CalculateField1MVTwoReferencePPic (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp8u* PredFlag);
void CalculateField4MVOneReferencePPic (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp32s blk_num);
void CalculateField4MVTwoReferencePPic (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp32s blk_num,
Ipp8u* PredFlag);
void CalculateField1MVTwoReferenceBPic (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp32s Back,
Ipp8u* PredFlag);
void CalculateField4MVTwoReferenceBPic (VC1Context* pContext,
Ipp16s *pPredMVx,Ipp16s *pPredMVy,
Ipp32s blk_num,Ipp32s Back,
Ipp8u* PredFlag);
void PredictInterlaceFrame1MV (VC1Context* pContext);
void PredictInterlace4MVFrame_Adv (VC1Context* pContext);
void PredictInterlace4MVField_Adv (VC1Context* pContext);
void PredictInterlace2MV_Field_Adv (VC1MB* pCurrMB,
Ipp16s pPredMVx[2],
Ipp16s pPredMVy[2],
Ipp16s backTop,
Ipp16s backBottom,
Ipp32u widthMB);
void ScaleOppositePredPPic (VC1PictureLayerHeader* picLayerHeader,
Ipp16s *x,
Ipp16s *y);
void ScaleSamePredPPic (VC1PictureLayerHeader* picLayerHeader,
Ipp16s *x,
Ipp16s *y,
Ipp32s dominant,
Ipp32s fieldFlag);
void ScaleOppositePredBPic (VC1PictureLayerHeader* picLayerHeader,
Ipp16s *x,
Ipp16s *y,
Ipp32s dominant,
Ipp32s fieldFlag,
Ipp32s back);
void ScaleSamePredBPic (VC1PictureLayerHeader* picLayerHeader,
Ipp16s *x,
Ipp16s *y,
Ipp32s dominant,
Ipp32s fieldFlag,
Ipp32s back);
void HybridFieldMV (VC1Context* pContext,
Ipp16s *pPredMVx,
Ipp16s *pPredMVy,
Ipp16s MV_px[3],
Ipp16s MV_py[3]);
VC1Status MBLayer_ProgressiveBpicture_NONDIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_DIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_SKIP_NONDIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_SKIP_DIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_SKIP_NONDIRECT_AdvPrediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_SKIP_DIRECT_AdvPrediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_NONDIRECT_AdvPrediction (VC1Context* pContext);
VC1Status MBLayer_ProgressiveBpicture_DIRECT_AdvPrediction (VC1Context* pContext);
VC1Status MBLayer_InterlaceFrameBpicture_SKIP_NONDIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_InterlaceFrameBpicture_SKIP_DIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_InterlaceFrameBpicture_NONDIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_InterlaceFrameBpicture_DIRECT_Prediction (VC1Context* pContext);
VC1Status MBLayer_InterlaceFieldBpicture_NONDIRECT_Predicition (VC1Context* pContext);
VC1Status MBLayer_InterlaceFieldBpicture_DIRECT_Prediction (VC1Context* pContext);
//Smoothing
void Smoothing_I (VC1Context* pContext,
Ipp32s Height);
void Smoothing_P (VC1Context* pContext,
Ipp32s Height);
void Smoothing_I_Adv (VC1Context* pContext,
Ipp32s Height);
void Smoothing_P_Adv (VC1Context* pContext,
Ipp32s Height);
#ifdef _OWN_FUNCTION
IppStatus _own_ippiSmoothingLuma_VerEdge_VC1_16s8u_C1R (Ipp16s* pSrcLeft, Ipp32s srcLeftStep,
Ipp16s* pSrcRight, Ipp32s srcRightStep,
Ipp8u* pDst, Ipp32s dstStep,
Ipp32u fieldNeighbourFlag,
Ipp32u edgeDisableFlag);
IppStatus _own_ippiSmoothingLuma_HorEdge_VC1_16s8u_C1R (Ipp16s* pSrcUpper, Ipp32s srcUpperStep,
Ipp16s* pSrcBottom, Ipp32s srcBottomStep,
Ipp8u* pDst, Ipp32s dstStep,
Ipp32u edgeDisableFlag);
IppStatus _own_ippiSmoothingChroma_HorEdge_VC1_16s8u_C1R (Ipp16s* pSrcUpper, Ipp32s srcUpperStep,
Ipp16s* pSrcBottom, Ipp32s srcBottomStep,
Ipp8u* pDst, Ipp32s dstStep);
IppStatus _own_ippiSmoothingChroma_VerEdge_VC1_16s8u_C1R (Ipp16s* pSrcLeft, Ipp32s srcLeftStep,
Ipp16s* pSrcRight, Ipp32s srcRightStep,
Ipp8u* pDst, Ipp32s dstStep);
#else
#define _own_ippiSmoothingLuma_VerEdge_VC1_16s8u_C1R ippiSmoothingLuma_VerEdge_VC1_16s8u_C1R
#define _own_ippiSmoothingLuma_HorEdge_VC1_16s8u_C1R ippiSmoothingLuma_HorEdge_VC1_16s8u_C1R
#define _own_ippiSmoothingChroma_HorEdge_VC1_16s8u_C1R ippiSmoothingChroma_HorEdge_VC1_16s8u_C1R
#define _own_ippiSmoothingChroma_VerEdge_VC1_16s8u_C1R ippiSmoothingChroma_VerEdge_VC1_16s8u_C1R
#endif
#ifdef _OWN_FUNCTION
IppStatus _own_FilterDeblockingLuma_VerEdge_VC1 (Ipp8u* pSrcDst,Ipp32s pQuant, Ipp32s srcdstStep,Ipp32s EdgeDisabledFlag);
IppStatus _own_FilterDeblockingChroma_VerEdge_VC1 (Ipp8u* pSrcDst,Ipp32s pQuant, Ipp32s srcdstStep,Ipp32s EdgeDisabledFlag);
IppStatus _own_FilterDeblockingLuma_HorEdge_VC1 (Ipp8u* pSrcDst,Ipp32s pQuant, Ipp32s srcdstStep,Ipp32s EdgeDisabledFlag);
IppStatus _own_FilterDeblockingChroma_HorEdge_VC1 (Ipp8u* pSrcDst,Ipp32s pQuant, Ipp32s srcdstStep,Ipp32s EdgeDisabledFlag);
#else
#define _own_FilterDeblockingLuma_VerEdge_VC1 ippiFilterDeblockingLuma_VerEdge_VC1_8u_C1IR
#define _own_FilterDeblockingChroma_VerEdge_VC1 ippiFilterDeblockingChroma_VerEdge_VC1_8u_C1IR
#define _own_FilterDeblockingLuma_HorEdge_VC1 ippiFilterDeblockingLuma_HorEdge_VC1_8u_C1IR
#define _own_FilterDeblockingChroma_HorEdge_VC1 ippiFilterDeblockingChroma_HorEdge_VC1_8u_C1IR
#endif
#ifdef _OWN_FUNCTION
IppStatus _own_ippiInterpolateQPBicubicIC_VC1_8u_C1R (_IppVCInterpolate_8u* inter_struct);
IppStatus _own_ippiInterpolateQPBilinearIC_VC1_8u_C1R (_IppVCInterpolate_8u* inter_struct);
#else
#define _own_ippiInterpolateQPBicubicIC_VC1_8u_C1R ippiInterpolateQPBicubic_VC1_8u_C1R
#define _own_ippiInterpolateQPBilinearIC_VC1_8u_C1R ippiInterpolateQPBilinear_VC1_8u_C1R
#endif
#define _own_ippiInterpolateQPBilinearIC_VC1_8u_C1R ippiInterpolateQPBilinear_VC1_8u_C1R
#ifdef _OWN_FUNCTION
IppStatus _own_ippiQuantInvIntraUniform_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep,
Ipp32s doubleQuant, IppiSize* pDstSizeNZ);
IppStatus _own_ippiQuantInvIntraNonuniform_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep,
Ipp32s doubleQuant, IppiSize* pDstSizeNZ);
IppStatus _own_ippiQuantInvInterUniform_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep,
Ipp32s doubleQuant, IppiSize roiSize,
IppiSize* pDstSizeNZ);
IppStatus _own_ippiQuantInvInterNonuniform_VC1_16s_C1IR(Ipp16s* pSrcDst, Ipp32s srcDstStep,
Ipp32s doubleQuant, IppiSize roiSize,
IppiSize* pDstSizeNZ);
#else
#define _own_ippiQuantInvIntraUniform_VC1_16s_C1IR ippiQuantInvIntraUniform_VC1_16s_C1IR
#define _own_ippiQuantInvIntraNonuniform_VC1_16s_C1IR ippiQuantInvIntraNonuniform_VC1_16s_C1IR
#define _own_ippiQuantInvInterUniform_VC1_16s_C1IR ippiQuantInvInterUniform_VC1_16s_C1IR
#define _own_ippiQuantInvInterNonuniform_VC1_16s_C1IR ippiQuantInvInterNonuniform_VC1_16s_C1IR
#endif
IppStatus _own_ippiReconstructIntraUniform_VC1_16s_C1IR (Ipp16s* pSrcDst, Ipp32s srcDstStep, Ipp32s doubleQuant);
IppStatus _own_ippiReconstructIntraNonuniform_VC1_16s_C1IR (Ipp16s* pSrcDst, Ipp32s srcDstStep, Ipp32s doubleQuant);
IppStatus _own_ippiReconstructInterUniform_VC1_16s_C1IR (Ipp16s* pSrcDst, Ipp32s srcDstStep, Ipp32s doubleQuant,Ipp32u BlkType);
IppStatus _own_ippiReconstructInterNonuniform_VC1_16s_C1IR (Ipp16s* pSrcDst, Ipp32s srcDstStep, Ipp32s doubleQuant,Ipp32u BlkType);
Ipp32s SubBlockPattern (VC1Block* _pBlk,
VC1SingletonBlock* _sBlk);
void HorizontalDeblockingBlkI (Ipp8u* pUUpBlock,
Ipp32u Pquant,
Ipp32s Pitch);
void VerticalDeblockingBlkI (Ipp8u* pUUpLBlock,
Ipp32u Pquant,
Ipp32s Pitch);
//Deblocking simple/main
void Deblocking_ProgressiveIpicture (VC1Context* pContext);
void Deblocking_ProgressivePpicture (VC1Context* pContext);
//Deblocking advanced
void Deblocking_ProgressiveIpicture_Adv (VC1Context* pContext);
void Deblocking_ProgressivePpicture_Adv (VC1Context* pContext);
void Deblocking_InterlaceFieldBpicture_Adv (VC1Context* pContext);
void Deblocking_InterlaceFrameIpicture_Adv (VC1Context* pContext);
void Deblocking_InterlaceFramePpicture_Adv (VC1Context* pContext);
void HorizontalDeblockingBlkInterlaceI (Ipp8u* pUUpBlock,
Ipp32u Pquant,
Ipp32s Pitch,
Ipp32u foffset_1);
void VerticalDeblockingBlkInterlaceI (Ipp8u*pUUpLBlock,
Ipp32u Pquant,
Ipp32s Pitch,
Ipp32s foffset_1);
#ifdef _OWN_FUNCTION
//range mape
void _own_ippiRangeMap_VC1_8u_C1R (Ipp8u* pSrc,
Ipp32s srcStep,
Ipp8u* pDst,
Ipp32s dstStep,
IppiSize roiSize,
Ipp32s rangeMapParam);
#else
#define _own_ippiRangeMap_VC1_8u_C1R ippiRangeMapping_VC1_8u_C1R
#endif
void RangeDown (Ipp8u* pSrc,
Ipp32s srcStep,
Ipp8u* pDst,
Ipp32s dstStep,
Ipp32s width,
Ipp32s height);
void RangeRefFrame (VC1Context* pContext);
//Advanced
void write_Intraluma_to_interlace_frame_Adv (VC1MB * pCurrMB,
Ipp16s* pBlock);
void write_Interluma_to_interlace_frame_Adv (VC1MB * pCurrMB,
Ipp8u* pPred,
Ipp16s* pBlock);
void write_Interluma_to_interlace_frame_MC_Adv (VC1MB * pCurrMB,
const Ipp8u* pDst,
Ipp32u dstStep,
Ipp16s* pBlock);
void write_Interluma_to_interlace_B_frame_MC_Adv (VC1MB * pCurrMB,
const Ipp8u* pDst1,
Ipp32u dstStep1,
const Ipp8u* pDst2,
Ipp32u dstStep2,
Ipp16s* pBlock);
VC1Status VC1ProcessDiffIntra (VC1Context* pContext,Ipp32s blk_num);
VC1Status VC1ProcessDiffInter (VC1Context* pContext,Ipp32s blk_num);
VC1Status VC1ProcessDiffSpeedUpIntra (VC1Context* pContext,Ipp32s blk_num);
VC1Status VC1ProcessDiffSpeedUpInter (VC1Context* pContext,Ipp32s blk_num);
inline Ipp16s PullBack_PredMV(Ipp16s *pMV,Ipp32s pos,
Ipp32s Min, Ipp32s Max)
{
Ipp16s MV = *pMV;
Ipp32s IMV = pos + MV;
if (IMV < Min)
{
MV = (Ipp16s)(Min - pos);
}
else if (IMV > Max)
{
MV = (Ipp16s)(Max - pos);
}
return MV;
}
#endif //__umc_vc1_dec_seq_H__
#endif //UMC_ENABLE_VC1_VIDEO_DECODER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -