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

📄 umc_vc1_dec_seq.h

📁 audio-video-codecs.rar语音编解码器
💻 H
📖 第 1 页 / 共 3 页
字号:
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 + -