Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComTrQuant.h


Ignore:
Timestamp:
1 Sep 2013, 22:47:26 (11 years ago)
Author:
tech
Message:

Merged DEV-2.0-dev0@604.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComTrQuant.h

    r296 r608  
    44 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2012, ITU/ISO/IEC
     6 * Copyright (c) 2010-2013, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    6868  Int blockCbpBits[3*NUM_QT_CBF_CTX][2];
    6969  Int blockRootCbpBits[4][2];
    70   Int scanZigzag[2];            ///< flag for zigzag scan
    71   Int scanNonZigzag[2];         ///< flag for non zigzag scan
    7270} estBitsSbacStruct;
    7371
     
    8987  Int m_iBits;
    9088   
    91   Void setQpParam( Int qpScaled, Bool bLowpass, SliceType eSliceType )
     89  Void setQpParam( Int qpScaled )
    9290  {
    9391    m_iQP   = qpScaled;
     
    121119 
    122120  // initialize class
    123   Void init                 ( UInt uiMaxWidth, UInt uiMaxHeight, UInt uiMaxTrSize, Int iSymbolMode = 0, UInt *aTable4 = NULL, UInt *aTable8 = NULL, UInt *aTableLastPosVlcIndex=NULL, Bool bUseRDOQ = false,  Bool bEnc = false
    124 #if ADAPTIVE_QP_SELECTION
    125                        , Bool bUseAdaptQpSelect = false
    126 #endif   
     121  Void init                 ( UInt uiMaxTrSize, Bool useRDOQ = false, 
     122    Bool useRDOQTS = false,
     123    Bool bEnc = false, Bool useTransformSkipFast = false
     124#if ADAPTIVE_QP_SELECTION
     125    , Bool bUseAdaptQpSelect = false
     126#endif
    127127    );
    128128 
     
    139139                     UInt&       uiAbsSum,
    140140                     TextType    eTType,
    141                      UInt        uiAbsPartIdx );
    142 #if LOSSLESS_CODING
    143   Void invtransformNxN( TComDataCU* pcCU, TextType eText, UInt uiMode,Pel* rpcResidual, UInt uiStride, TCoeff*   pcCoeff, UInt uiWidth, UInt uiHeight,  Int scalingListType);
    144 #else
    145   Void invtransformNxN(                   TextType eText, UInt uiMode,Pel*& rpcResidual, UInt uiStride, TCoeff*   pcCoeff, UInt uiWidth, UInt uiHeight, Int scalingListType);
    146 #endif
     141                     UInt        uiAbsPartIdx,
     142                     Bool        useTransformSkip = false );
     143
     144  Void invtransformNxN( Bool transQuantBypass, TextType eText, UInt uiMode,Pel* rpcResidual, UInt uiStride, TCoeff*   pcCoeff, UInt uiWidth, UInt uiHeight,  Int scalingListType, Bool useTransformSkip = false );
    147145  Void invRecurTransformNxN ( TComDataCU* pcCU, UInt uiAbsPartIdx, TextType eTxt, Pel* rpcResidual, UInt uiAddr,   UInt uiStride, UInt uiWidth, UInt uiHeight,
    148146                             UInt uiMaxTrMode,  UInt uiTrMode, TCoeff* rpcCoeff );
    149147 
    150148  // Misc functions
    151   Void setQPforQuant( Int qpy, Bool bLowpass, SliceType eSliceType, TextType eTxtType, Int qpBdOffset, Int chromaQPOffset);
     149  Void setQPforQuant( Int qpy, TextType eTxtType, Int qpBdOffset, Int chromaQPOffset);
    152150
    153151#if RDOQ_CHROMA_LAMBDA
     
    161159  estBitsSbacStruct* m_pcEstBitsSbac;
    162160 
    163   static Int      getSigCtxInc     ( TCoeff*                         pcCoeff,
     161  static Int      calcPatternSigCtx( const UInt* sigCoeffGroupFlag, UInt posXCG, UInt posYCG, Int width, Int height );
     162
     163  static Int      getSigCtxInc     (
     164                                     Int                             patternSigCtx,
     165                                     UInt                            scanIdx,
    164166                                     Int                             posX,
    165167                                     Int                             posY,
    166                                      Int                             blockType,
    167                                      Int                             width
    168                                     ,Int                             height
    169                                     ,TextType                        textureType
     168                                     Int                             log2BlkSize,
     169                                     TextType                        textureType
    170170                                    );
    171171  static UInt getSigCoeffGroupCtxInc  ( const UInt*                   uiSigCoeffGroupFlag,
    172172                                       const UInt                       uiCGPosX,
    173173                                       const UInt                       uiCGPosY,
    174                                        const UInt                     scanIdx,
    175174                                       Int width, Int height);
    176175  Void initScalingList                      ();
    177176  Void destroyScalingList                   ();
    178   Void setErrScaleCoeff    ( UInt list, UInt size, UInt qp, UInt dir);
    179   double* getErrScaleCoeff ( UInt list, UInt size, UInt qp, UInt dir) {return m_errScale[size][list][qp][dir];};    //!< get Error Scale Coefficent
    180   Int* getQuantCoeff       ( UInt list, UInt qp, UInt size, UInt dir) {return m_quantCoef[size][list][qp][dir];};   //!< get Quant Coefficent
    181   Int* getDequantCoeff     ( UInt list, UInt qp, UInt size, UInt dir) {return m_dequantCoef[size][list][qp][dir];}; //!< get DeQuant Coefficent
     177  Void setErrScaleCoeff    ( UInt list, UInt size, UInt qp);
     178  Double* getErrScaleCoeff ( UInt list, UInt size, UInt qp) {return m_errScale[size][list][qp];};    //!< get Error Scale Coefficent
     179  Int* getQuantCoeff       ( UInt list, UInt qp, UInt size) {return m_quantCoef[size][list][qp];};   //!< get Quant Coefficent
     180  Int* getDequantCoeff     ( UInt list, UInt qp, UInt size) {return m_dequantCoef[size][list][qp];}; //!< get DeQuant Coefficent
    182181  Void setUseScalingList   ( Bool bUseScalingList){ m_scalingListEnabledFlag = bUseScalingList; };
    183182  Bool getUseScalingList   (){ return m_scalingListEnabledFlag; };
     
    215214  UInt     m_uiMaxTrSize;
    216215  Bool     m_bEnc;
    217   Bool     m_bUseRDOQ;
     216  Bool     m_useRDOQ;
     217  Bool     m_useRDOQTS;
    218218#if ADAPTIVE_QP_SELECTION
    219219  Bool     m_bUseAdaptQpSelect;
    220220#endif
    221 
     221  Bool     m_useTransformSkipFast;
    222222  Bool     m_scalingListEnabledFlag;
    223   Int      *m_quantCoef      [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM][SCALING_LIST_DIR_NUM]; ///< array of quantization matrix coefficient 4x4
    224   Int      *m_dequantCoef    [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM][SCALING_LIST_DIR_NUM]; ///< array of dequantization matrix coefficient 4x4
    225   double   *m_errScale       [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM][SCALING_LIST_DIR_NUM]; ///< array of quantization matrix coefficient 4x4
     223  Int      *m_quantCoef      [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM]; ///< array of quantization matrix coefficient 4x4
     224  Int      *m_dequantCoef    [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM]; ///< array of dequantization matrix coefficient 4x4
     225  Double   *m_errScale       [SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM][SCALING_LIST_REM_NUM]; ///< array of quantization matrix coefficient 4x4
    226226private:
    227227  // forward Transform
    228   Void xT   ( UInt uiMode,Pel* pResidual, UInt uiStride, Int* plCoeff, Int iWidth, Int iHeight );
    229  
    230   Void signBitHidingHDQ( TComDataCU* pcCU, TCoeff* pQCoef, TCoeff* pCoef, UInt const *scan, Int* deltaU, Int width, Int height );
     228  Void xT   (Int bitDepth, UInt uiMode,Pel* pResidual, UInt uiStride, Int* plCoeff, Int iWidth, Int iHeight );
     229 
     230  // skipping Transform
     231  Void xTransformSkip (Int bitDepth, Pel* piBlkResi, UInt uiStride, Int* psCoeff, Int width, Int height );
     232
     233  Void signBitHidingHDQ( TCoeff* pQCoef, TCoeff* pCoef, UInt const *scan, Int* deltaU, Int width, Int height );
    231234
    232235  // quantization
     
    285288                         ) const;
    286289  __inline Double xGetRateLast     ( const UInt                      uiPosX,
    287                                      const UInt                      uiPosY,
    288                                      const UInt                      uiBlkWdth     ) const;
     290                                     const UInt                      uiPosY ) const;
    289291  __inline Double xGetRateSigCoeffGroup (  UShort                    uiSignificanceCoeffGroup,
    290292                                     UShort                          ui16CtxNumSig ) const;
     
    296298 
    297299  // dequantization
    298   Void xDeQuant( const TCoeff* pSrc, Int* pDes, Int iWidth, Int iHeight, Int scalingListType );
     300  Void xDeQuant(Int bitDepth, const TCoeff* pSrc, Int* pDes, Int iWidth, Int iHeight, Int scalingListType );
    299301 
    300302  // inverse transform
    301   Void xIT    ( UInt uiMode, Int* plCoef, Pel* pResidual, UInt uiStride, Int iWidth, Int iHeight );
    302  
     303  Void xIT    (Int bitDepth, UInt uiMode, Int* plCoef, Pel* pResidual, UInt uiStride, Int iWidth, Int iHeight );
     304 
     305  // inverse skipping transform
     306  Void xITransformSkip (Int bitDepth, Int* plCoef, Pel* pResidual, UInt uiStride, Int width, Int height );
    303307};// END CLASS DEFINITION TComTrQuant
    304308
Note: See TracChangeset for help on using the changeset viewer.