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

📄 transform.h

📁 jsvm开发代码包括抽样,编码,抽取,解码等一系列功能,可以做工具或研究用
💻 H
📖 第 1 页 / 共 2 页
字号:
    invTransform8x8Blk( pOrg, iStride, piCoeff );
  }

  // JVT-V035 functions for SVC to AVC rewrite
  ErrVal        predict4x4Blk             ( TCoeff* piCoeff, TCoeff* piRef, UInt uiRefQp, UInt& ruiAbsSum );
  ErrVal        predict8x8Blk             ( TCoeff* piCoeff, TCoeff* piRef, UInt uiRefQp, UInt& ruiAbsSum );
  ErrVal        predictChromaBlocks       ( TCoeff* piCoeff, TCoeff* piRef, UInt uiRefQp, UInt& ruiDcAbs, UInt& ruiAcAbs );    
  ErrVal        predictScaledACCoeffs     ( TCoeff *piCoeff, TCoeff* piRef, UInt uiRefQp );  
  ErrVal        predictMb16x16            ( TCoeff* piCoeff, TCoeff* piRef, UInt uiRefQp, UInt& ruiDcAbs, UInt& ruiAcAbs );
  ErrVal        addPrediction4x4Blk       ( TCoeff* piCoeff, TCoeff* piRefCoeff, UInt uiDstQp, UInt uiRefQp, UInt &uiCoded  );
  ErrVal        addPrediction8x8Blk       ( TCoeff* piCoeff, TCoeff* piRefCoeff, UInt uiQp, UInt uiRefQp, Bool& bCoded  );
  ErrVal        addPredictionChromaBlocks ( TCoeff* piCoeff, TCoeff* piRef, UInt uiQp, UInt uiRefQp, Bool& bDCflag, Bool& bACflag );

  ErrVal        transform8x8Blk           ( IntYuvMbBuffer*       pcOrgData,
                                            IntYuvMbBuffer*       pcPelData,
                                            TCoeff*               piCoeff,
                                            const UChar*          pucScale,
                                            UInt&                 ruiAbsSum,
                                            RefCtx*               pcRefCtx = NULL );
  ErrVal        transform4x4Blk           ( IntYuvMbBuffer*       pcOrgData,
                                            IntYuvMbBuffer*       pcPelData,
                                            TCoeff*               piCoeff,
                                            const UChar*          pucScale,
                                            UInt&                 ruiAbsSum,
                                            RefCtx*               pcRefCtx = NULL );
  ErrVal        transformMb16x16          ( IntYuvMbBuffer* pcOrgData, 
                                            IntYuvMbBuffer* pcPelData, 
                                            TCoeff* piCoeff, 
                                            const UChar* pucScale, 
                                            UInt& ruiDcAbs,  
                                            UInt& ruiAcAbs );
  ErrVal        transformChromaBlocks     ( XPel* pucOrg, 
                                            XPel* pucRec, 
                                            MbFGSCoefMap*         pcMbFGSCoefMap,
                                            const CIdx            cCIdx,
                                            Int iStride, 
                                            TCoeff* piCoeff, 
                                            TCoeff* piQuantCoeff, 
                                            const UChar* pucScale, 
                                            UInt& ruiDcAbs, 
                                            UInt& ruiAcAbs );

  ErrVal        invTransform8x8Blk        ( XPel* puc, Int iStride, TCoeff* piCoeff );
  ErrVal        invTransform4x4Blk        ( XPel* puc, Int iStride, TCoeff* piCoeff );
  ErrVal        invTransformChromaBlocks  ( XPel* puc, Int iStride, TCoeff* piCoeff );
  
  ErrVal        invTransform4x4Blk        ( Pel*  puc, Int iStride, TCoeff* piCoeff );
  ErrVal        invTransformChromaBlocks  ( Pel*  puc, Int iStride, TCoeff* piCoeff );
  
  ErrVal        invTransformDcCoeff       ( TCoeff* piCoeff, const Int iQpScale, const Int iQpPer );
  ErrVal        invTransformDcCoeff       ( TCoeff* piCoeff, Int iQpScale );
  Void          invTransformChromaDc      ( TCoeff* piCoeff, Int iQpScale );

  ErrVal        requant4x4Block           ( IntYuvMbBuffer& rcResData,
                                            TCoeff*         piCoeff,
                                            TCoeff*         piCoeffBase,
                                            RefCtx*            pcRefCtx,
                                            const UChar*    pucScale,
                                            Bool            bFirstIsDc,
                                            UInt&           ruiAbsSum );
  ErrVal        requantLumaDcCoeffs       ( MbTransformCoeffs& rcMbTCoeff,
                                            MbTransformCoeffs& rcMbTCoeffBase,
                                            MbFGSCoefMap&      rcMbFGSCoefMap,
                                            const UChar*    pucScale,
                                            UInt&           ruiAbsSum );
  ErrVal        requant8x8Block           ( IntYuvMbBuffer& rcResData,
                                            TCoeff*         piCoeff,
                                            TCoeff*         piCoeffBase,
                                            RefCtx*            pcRefCtx,
                                            const UChar*    pucScale,
                                            UInt&           ruiAbsSum );
  ErrVal        requantChroma             ( IntYuvMbBuffer& rcResData,
                                            MbTransformCoeffs& rcTCoeffs,
                                            MbTransformCoeffs& rcTCoeffsBase,
                                            MbFGSCoefMap&      rcMbFGSCoefMap,
                                            const UChar*    pucScaleU,
                                            const UChar*    pucScaleV,
                                            UInt&           ruiDcAbs,
                                            UInt&           ruiAcAbs );


private:
  Void xForTransform8x8Blk      ( XPel* pucOrg, XPel* pucRec, Int iStride, TCoeff* piPredCoeff );
  Void xForTransform4x4Blk      ( XPel* pucOrg, XPel* pucRec, Int iStride, TCoeff* piPredCoeff );
  
  Void xInvTransform4x4Blk      ( XPel* puc, Int iStride, TCoeff* piCoeff );
  Void xInvTransform4x4Blk      ( Pel*  puc, Int iStride, TCoeff* piCoeff );
  
  Void xInvTransform4x4BlkNoAc  ( XPel* puc, Int iStride, TCoeff* piCoeff );
  Void xInvTransform4x4BlkNoAc  ( Pel*  puc, Int iStride, TCoeff* piCoeff );

  Void xForTransformChromaDc    ( TCoeff* piCoeff );
  Void xForTransformLumaDc      ( TCoeff* piCoeff );
  
  Int  xRound                   ( Int i     )             { return ((i)+(1<<5))>>6; }
  Int  xClip                    ( Int iPel  )             { return ( m_bClip ? gClip( iPel ) : iPel); }

  Void xQuantDequantUniform8x8      ( TCoeff* piQCoeff, 
                                      TCoeff* piCoeff, 
                                      RefCtx*                      pcRefCtx,
                                      const QpParameter& rcQp, 
                                      const UChar* pucScale, 
                                      UInt& ruiAbsSum );
  Void xQuantDequantUniform4x4      ( TCoeff* piQCoeff, 
                                      TCoeff* piCoeff, 
                                      RefCtx*                      pcRefCtx,
                                      const QpParameter& rcQp, 
                                      const UChar* pucScale, 
                                      UInt& ruiAbsSum );
  Void xQuantDequantNonUniformLuma  ( TCoeff* piQCoeff, 
                                      TCoeff* piCoeff, 
                                      const QpParameter& rcQp, 
                                      const UChar* pucScale, 
                                      UInt& ruiDcAbs, 
                                      UInt& ruiAcAbs );
  Void xQuantDequantNonUniformChroma( TCoeff* piQCoeff, 
                                      TCoeff* piCoeff, 
                                      RefCtx*                      pcRefCtx,
                                      const QpParameter& rcQp, 
                                      const UChar* pucScale, 
                                      UInt& ruiDcAbs, 
                                      UInt& ruiAcAbs );

  Void x4x4Trafo          ( XPel*               pOrg,
                            Int                 iStride,
                            TCoeff*             piCoeff );
  Void x4x4InverseTrafo   ( XPel*               pOrg,
                            Int                 iStride,
                            TCoeff*             piCoeff );
  Void x4x4Quant          ( TCoeff*             piQCoeff,
                            TCoeff*             piCoeff,
                            const QpParameter&  rcQp );
  Void x4x4Dequant        ( TCoeff*             piQCoeff,
                            TCoeff*             piCoeff,
                            const QpParameter&  rcQp );

  Void x8x8Trafo                ( XPel*               pOrg, 
                                  Int                 iStride,
                                  TCoeff*             piCoeff );
  Void xRequantUniform4x4       ( TCoeff*             piCoeff,
                                  TCoeff*             piCoeffBase,
                                  RefCtx*             pcRefCtx,
                                  Bool                bFirstIsDc,
                                  const QpParameter&  rcQp,
                                  const UChar*        pucScale,
                                  UInt&               ruiAbsSum );
  Void xRequantUniform8x8       ( TCoeff*             piCoeff,
                                  TCoeff*             piCoeffBase,
                                  RefCtx*             pcRefCtx,
                                  const QpParameter&  rcQp,
                                  const UChar*        pucScale,
                                  UInt&               ruiAbsSum );
  Void xRequantNonUniformChroma ( TCoeff*             piCoeff,
                                  TCoeff*             piCoeffBase,
                                  RefCtx*             pcRefCtx,
                                  const QpParameter&  rcQp,
                                  const UChar*        pucScale,
                                  UInt&               ruiDcAbs,
                                  UInt&               ruiAcAbs );

protected:
  const SliceHeader*  m_pcSliceHeader;
  Bool                m_bClip;
};


H264AVC_NAMESPACE_END

#endif // !defined(AFX_INVERSETRANSFORM_H__B2D732EC_10EA_4C2F_9387_4456CFCA4439__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -