Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCu.h


Ignore:
Timestamp:
11 May 2012, 21:20:17 (12 years ago)
Author:
hschwarz
Message:

updated trunk (move to HM6.1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncCu.h

    r5 r56  
    22 * License, included below. This software may be subject to other third party
    33 * and contributor rights, including patent rights, and no such rights are
    4  * granted under this license.
    5  *
    6  * Copyright (c) 2010-2011, ISO/IEC
     4 * granted under this license. 
     5 *
     6 * Copyright (c) 2010-2012, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    1515 *    this list of conditions and the following disclaimer in the documentation
    1616 *    and/or other materials provided with the distribution.
    17  *  * Neither the name of the ISO/IEC nor the names of its contributors may
     17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
    1818 *    be used to endorse or promote products derived from this software without
    1919 *    specific prior written permission.
     
    3232 */
    3333
    34 
    35 
    36 /** \file     TEncCU.h
    37     \brief    CU encoder class (header)
     34/** \file     TEncCu.h
     35    \brief    Coding Unit (CU) encoder class (header)
    3836*/
    3937
     
    4240
    4341// Include files
    44 #include "../TLibCommon/CommonDef.h"
    45 #include "../TLibCommon/TComYuv.h"
    46 #include "../TLibCommon/TComPrediction.h"
    47 #include "../TLibCommon/TComTrQuant.h"
    48 #include "../TLibCommon/TComBitCounter.h"
    49 #include "../TLibCommon/TComDataCU.h"
     42#include "TLibCommon/CommonDef.h"
     43#include "TLibCommon/TComYuv.h"
     44#include "TLibCommon/TComPrediction.h"
     45#include "TLibCommon/TComTrQuant.h"
     46#include "TLibCommon/TComBitCounter.h"
     47#include "TLibCommon/TComDataCU.h"
    5048
    5149#include "TEncEntropy.h"
    5250#include "TEncSearch.h"
     51
     52//! \ingroup TLibEncoder
     53//! \{
    5354
    5455class TEncTop;
     
    7778  TComYuv**               m_ppcRecoYuvTemp; ///< Temporary Reconstruction Yuv for each depth
    7879  TComYuv**               m_ppcOrigYuv;     ///< Original Yuv for each depth
     80#if HHI_INTER_VIEW_RESIDUAL_PRED
    7981  TComYuv**               m_ppcResPredTmp;  ///< Temporary residual prediction for each depth
     82#endif
    8083 
    8184  //  Data : encoder control
    82   Int                     m_iQp;            ///< Last QP
    83  
     85  Bool                    m_bEncodeDQP;
     86#if BURST_IPCM
     87  Bool                    m_checkBurstIPCMFlag;
     88#endif
     89
    8490  //  Access channel
    8591  TEncCfg*                m_pcEncCfg;
    86   TEncTop*                m_pcEncTop;
    8792  TComPrediction*         m_pcPrediction;
    8893  TEncSearch*             m_pcPredSearch;
     
    123128  Void  encodeCU            ( TComDataCU*    pcCU, Bool bForceTerminate = false  );
    124129 
    125   /// set QP value
    126   Void  setQpLast           ( Int iQp ) { m_iQp = iQp; }
    127  
     130  Void setBitCounter        ( TComBitCounter* pcBitCounter ) { m_pcBitCounter = pcBitCounter; }
    128131protected:
     132  Void  finishCU            ( TComDataCU*  pcCU, UInt uiAbsPartIdx,           UInt uiDepth        );
     133#if AMP_ENC_SPEEDUP
     134  Void  xCompressCU         ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth, PartSize eParentPartSize = SIZE_NONE );
     135#else
    129136  Void  xCompressCU         ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth        );
     137#endif
    130138  Void  xEncodeCU           ( TComDataCU*  pcCU, UInt uiAbsPartIdx,           UInt uiDepth        );
    131139 
    132   Void  xCheckRDCostAMVPSkip( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU                      );
     140  Int   xComputeQP          ( TComDataCU* pcCU, UInt uiDepth );
     141  Void  xCheckBestMode      ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth        );
    133142 
    134143#if HHI_INTERVIEW_SKIP
     
    137146  Void  xCheckRDCostMerge2Nx2N( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU                  );
    138147#endif
    139  
    140   Void  xCheckRDCostSkip    ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bBSkipRes      );
     148#if AMP_MRG
     149#if HHI_INTERVIEW_SKIP
     150  Void xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFullyRendered, Bool bUseMRG = false  ) ;
     151#else
     152  Void  xCheckRDCostInter   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bUseMRG = false  );
     153#endif
     154//  Void  xCheckRDCostInter   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bUseMRG = false  );
     155#else
    141156#if HHI_INTERVIEW_SKIP
    142157  Void xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFullyRendered ) ;
     
    144159  Void  xCheckRDCostInter   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    145160#endif
     161//  Void  xCheckRDCostInter   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
     162#endif
    146163  Void  xCheckRDCostIntra   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    147   Void  xCheckBestMode      ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UChar uhDepth       );
    148  
     164  Void  xCheckBestMode      ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU                      );
     165  Void  xCheckDQP           ( TComDataCU*  pcCU );
     166 
     167  Void  xCheckIntraPCM      ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU                      );
    149168  Void  xCopyAMVPInfo       ( AMVPInfo* pSrc, AMVPInfo* pDst );
    150   Void  xCopyYuv2Pic        ( TComPic* rpcPic, UInt uiCUAddr, UInt uiAbsZorderIdx, UInt uiDepth );
     169  Void  xCopyYuv2Pic        (TComPic* rpcPic, UInt uiCUAddr, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSrcDepth, TComDataCU* pcCU, UInt uiLPelX, UInt uiTPelY );
    151170  Void  xCopyYuv2Tmp        ( UInt uhPartUnitIdx, UInt uiDepth );
    152   Void  xAddMVISignallingBits( TComDataCU* pcCU );
     171
     172  Bool getdQPFlag           ()                        { return m_bEncodeDQP;        }
     173  Void setdQPFlag           ( Bool b )                { m_bEncodeDQP = b;           }
     174
     175#if BURST_IPCM
     176  Bool getCheckBurstIPCMFlag()                        { return m_checkBurstIPCMFlag;   }
     177  Void setCheckBurstIPCMFlag( Bool b )                { m_checkBurstIPCMFlag = b;      }
     178
     179  Bool checkLastCUSucIPCM   ( TComDataCU* pcCU, UInt uiCurAbsPartIdx );
     180  Int  countNumSucIPCM      ( TComDataCU* pcCU, UInt uiCurAbsPartIdx );
     181#endif
     182
     183#if ADAPTIVE_QP_SELECTION
     184  // Adaptive reconstruction level (ARL) statistics collection functions
     185  Void xLcuCollectARLStats(TComDataCU* rpcCU);
     186  Int  xTuCollectARLStats(TCoeff* rpcCoeff, Int* rpcArlCoeff, Int NumCoeffInCU, Double* cSum, UInt* numSamples );
     187#endif
     188
     189#if AMP_ENC_SPEEDUP
     190#if AMP_MRG
     191  Void deriveTestModeAMP (TComDataCU *&rpcBestCU, PartSize eParentPartSize, Bool &bTestAMP_Hor, Bool &bTestAMP_Ver, Bool &bTestMergeAMP_Hor, Bool &bTestMergeAMP_Ver);
     192#else
     193  Void deriveTestModeAMP (TComDataCU *&rpcBestCU, PartSize eParentPartSize, Bool &bTestAMP_Hor, Bool &bTestAMP_Ver);
     194#endif
     195#endif
     196
     197#if LOSSLESS_CODING
     198  Void  xFillPCMBuffer     ( TComDataCU*& pCU, TComYuv* pOrgYuv );
     199#endif
    153200#if HHI_MPI
    154201  Void  xCheckRDCostMvInheritance( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UChar uhTextureModeDepth, Bool bSkipResidual, Bool bRecursiveCall );
    155202  Void  xSaveDepthWidthHeight( TComDataCU* pcCU );
    156203  Void  xRestoreDepthWidthHeight( TComDataCU* pcCU );
     204  Void  xAddMVISignallingBits( TComDataCU* pcCU );
    157205#endif
    158206};
    159207
     208//! \}
    160209
    161210#endif // __TENCMB__
    162 
Note: See TracChangeset for help on using the changeset viewer.