Changeset 56 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCu.h
- Timestamp:
- 11 May 2012, 21:20:17 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCu.h
r5 r56 2 2 * License, included below. This software may be subject to other third party 3 3 * and contributor rights, including patent rights, and no such rights are 4 * granted under this license. 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC4 * granted under this license. 5 * 6 * Copyright (c) 2010-2012, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 15 15 * this list of conditions and the following disclaimer in the documentation 16 16 * and/or other materials provided with the distribution. 17 * * Neither the name of the I SO/IEC nor the names of its contributors may17 * * Neither the name of the ITU/ISO/IEC nor the names of its contributors may 18 18 * be used to endorse or promote products derived from this software without 19 19 * specific prior written permission. … … 32 32 */ 33 33 34 35 36 /** \file TEncCU.h 37 \brief CU encoder class (header) 34 /** \file TEncCu.h 35 \brief Coding Unit (CU) encoder class (header) 38 36 */ 39 37 … … 42 40 43 41 // 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" 50 48 51 49 #include "TEncEntropy.h" 52 50 #include "TEncSearch.h" 51 52 //! \ingroup TLibEncoder 53 //! \{ 53 54 54 55 class TEncTop; … … 77 78 TComYuv** m_ppcRecoYuvTemp; ///< Temporary Reconstruction Yuv for each depth 78 79 TComYuv** m_ppcOrigYuv; ///< Original Yuv for each depth 80 #if HHI_INTER_VIEW_RESIDUAL_PRED 79 81 TComYuv** m_ppcResPredTmp; ///< Temporary residual prediction for each depth 82 #endif 80 83 81 84 // 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 84 90 // Access channel 85 91 TEncCfg* m_pcEncCfg; 86 TEncTop* m_pcEncTop;87 92 TComPrediction* m_pcPrediction; 88 93 TEncSearch* m_pcPredSearch; … … 123 128 Void encodeCU ( TComDataCU* pcCU, Bool bForceTerminate = false ); 124 129 125 /// set QP value 126 Void setQpLast ( Int iQp ) { m_iQp = iQp; } 127 130 Void setBitCounter ( TComBitCounter* pcBitCounter ) { m_pcBitCounter = pcBitCounter; } 128 131 protected: 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 129 136 Void xCompressCU ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth ); 137 #endif 130 138 Void xEncodeCU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 139 132 Void xCheckRDCostAMVPSkip( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU ); 140 Int xComputeQP ( TComDataCU* pcCU, UInt uiDepth ); 141 Void xCheckBestMode ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth ); 133 142 134 143 #if HHI_INTERVIEW_SKIP … … 137 146 Void xCheckRDCostMerge2Nx2N( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU ); 138 147 #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 141 156 #if HHI_INTERVIEW_SKIP 142 157 Void xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFullyRendered ) ; … … 144 159 Void xCheckRDCostInter ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 145 160 #endif 161 // Void xCheckRDCostInter ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 162 #endif 146 163 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 ); 149 168 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 ); 151 170 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 153 200 #if HHI_MPI 154 201 Void xCheckRDCostMvInheritance( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UChar uhTextureModeDepth, Bool bSkipResidual, Bool bRecursiveCall ); 155 202 Void xSaveDepthWidthHeight( TComDataCU* pcCU ); 156 203 Void xRestoreDepthWidthHeight( TComDataCU* pcCU ); 204 Void xAddMVISignallingBits( TComDataCU* pcCU ); 157 205 #endif 158 206 }; 159 207 208 //! \} 160 209 161 210 #endif // __TENCMB__ 162
Note: See TracChangeset for help on using the changeset viewer.