Changeset 1313 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecEntropy.h
- Timestamp:
- 13 Aug 2015, 17:38:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r1196 r1313 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-2015, ITU/ISO/IEC4 * granted under this license. 5 * 6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 38 38 #ifndef __TDECENTROPY__ 39 39 #define __TDECENTROPY__ 40 41 #include "../TLibCommon/CommonDef.h" 42 #include "../TLibCommon/TComBitStream.h" 43 #include "../TLibCommon/TComSlice.h" 44 #include "../TLibCommon/TComPic.h" 45 #include "../TLibCommon/TComPrediction.h" 46 #include "../TLibCommon/TComSampleAdaptiveOffset.h" 47 40 #include "TLibCommon/CommonDef.h" 41 #include "TLibCommon/TComBitStream.h" 42 #include "TLibCommon/TComSlice.h" 43 #include "TLibCommon/TComPic.h" 44 #include "TLibCommon/TComSampleAdaptiveOffset.h" 45 #include "TLibCommon/TComRectangle.h" 48 46 class TDecSbac; 49 47 class TDecCavlc; 50 48 class ParameterSetManagerDecoder; 49 class TComPrediction; 51 50 52 51 //! \ingroup TLibDecoder … … 65 64 virtual Void setBitstream ( TComInputBitstream* p ) = 0; 66 65 67 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 68 virtual Void parseSPS ( TComSPS* pcSPS ) = 0; 69 #if H_3D 70 virtual Void parsePPS ( TComPPS* pcPPS, TComVPS* pcVPS ) = 0; 71 #else 72 virtual Void parsePPS ( TComPPS* pcPPS ) = 0; 73 #endif 74 75 #if H_MV 76 virtual Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx ) = 0; 77 #else 78 virtual Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager) = 0; 79 #endif 80 81 virtual Void parseTerminatingBit ( UInt& ruilsLast ) = 0; 82 66 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 67 virtual Void parseSPS ( TComSPS* pcSPS ) = 0; 68 virtual Void parsePPS ( TComPPS* pcPPS ) = 0; 69 virtual Void parseSliceHeader ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC) = 0; 70 71 virtual Void parseTerminatingBit ( UInt& ruilsLast ) = 0; 72 virtual Void parseRemainingBytes( Bool noTrailingBytesExpected ) = 0; 73 83 74 virtual Void parseMVPIdx ( Int& riMVPIdx ) = 0; 84 75 85 76 public: 86 77 virtual Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 87 #if H_3D78 #if NH_3D_DIS 88 79 virtual Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 89 80 #endif … … 92 83 virtual Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ) = 0; 93 84 virtual Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ) = 0; 94 #if H_3D_ARP85 #if NH_3D_ARP 95 86 virtual Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 96 87 #endif 97 #if H_3D_IC88 #if NH_3D_IC 98 89 virtual Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 99 90 #endif 100 #if H_3D_INTER_SDC 101 virtual Void parseDeltaDC ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) = 0; 91 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 92 virtual Void parseDeltaDC ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) = 0; 93 #endif 94 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 102 95 virtual Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 103 96 #endif 104 #if H_3D_DBBP97 #if NH_3D_DBBP 105 98 virtual Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 106 99 #endif 107 100 virtual Void parsePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 108 101 virtual Void parsePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 109 102 110 103 virtual Void parseIntraDirLumaAng( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 111 112 104 virtual Void parseIntraDirChroma( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 113 105 114 106 virtual Void parseInterDir ( TComDataCU* pcCU, UInt& ruiInterDir, UInt uiAbsPartIdx ) = 0; 115 107 virtual Void parseRefFrmIdx ( TComDataCU* pcCU, Int& riRefFrmIdx, RefPicList eRefList ) = 0; 116 108 virtual Void parseMvd ( TComDataCU* pcCU, UInt uiAbsPartAddr, UInt uiPartIdx, UInt uiDepth, RefPicList eRefList ) = 0; 117 109 110 virtual Void parseCrossComponentPrediction ( class TComTU &rTu, ComponentID compID ) = 0; 111 118 112 virtual Void parseTransformSubdivFlag( UInt& ruiSubdivFlag, UInt uiLog2TransformBlockSize ) = 0; 119 virtual Void parseQtCbf ( TCom DataCU* pcCU, UInt uiAbsPartIdx, TextType eType, UInt uiTrDepth, UInt uiDepth) = 0;113 virtual Void parseQtCbf ( TComTU &rTu, const ComponentID compID, const Bool lowestLevel ) = 0; 120 114 virtual Void parseQtRootCbf ( UInt uiAbsPartIdx, UInt& uiQtRootCbf ) = 0; 121 115 122 116 virtual Void parseDeltaQP ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 123 117 virtual Void parseChromaQpAdjustment( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 118 124 119 virtual Void parseIPCMInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth) = 0; 125 120 126 virtual Void parseCoeffNxN( TComDataCU* pcCU, TCoeff* pcCoef, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt uiDepth, TextType eTType ) = 0; 127 virtual Void parseTransformSkipFlags ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt width, UInt height, UInt uiDepth, TextType eTType) = 0; 128 virtual Void updateContextTables( SliceType eSliceType, Int iQp ) = 0; 129 121 virtual Void parseCoeffNxN( class TComTU &rTu, ComponentID compID ) = 0; 122 123 virtual Void parseTransformSkipFlags ( class TComTU &rTu, ComponentID component ) = 0; 124 125 virtual Void parseExplicitRdpcmMode ( TComTU &rTu, ComponentID compID ) = 0; 126 130 127 virtual ~TDecEntropyIf() {} 131 128 }; … … 137 134 TDecEntropyIf* m_pcEntropyDecoderIf; 138 135 TComPrediction* m_pcPrediction; 139 UInt m_uiBakAbsPartIdx;140 UInt m_uiBakChromaOffset;141 UInt m_bakAbsPartIdxCU;142 136 //UInt m_uiBakAbsPartIdx; 137 //UInt m_uiBakChromaOffset; 138 //UInt m_bakAbsPartIdxCU; 139 143 140 public: 144 141 Void init (TComPrediction* p) {m_pcPrediction = p;} … … 148 145 Void decodeMvdPU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 149 146 Void decodeMVPIdxPU ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 150 #if H_3D151 Void decodeMvsAMVP 147 #if NH_3D 148 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, 152 149 RefPicList eRefList ); 153 150 #endif … … 155 152 Void setBitstream ( TComInputBitstream* p ) { m_pcEntropyDecoderIf->setBitstream(p); } 156 153 Void resetEntropy ( TComSlice* p) { m_pcEntropyDecoderIf->resetEntropy(p); } 154 157 155 Void decodeVPS ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); } 158 Void decodeSPS ( TComSPS* pcSPS ) { m_pcEntropyDecoderIf->parseSPS(pcSPS); } 159 #if H_3D 160 Void decodePPS ( TComPPS* pcPPS, TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS, pcVPS); } 161 #else 162 Void decodePPS ( TComPPS* pcPPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS); } 163 #endif 164 #if H_MV 165 Void decodeSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx) { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, targetOlsIdx ); } 166 #else 167 Void decodeSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager) { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager); } 168 #endif 156 Void decodeSPS ( TComSPS* pcSPS ) { m_pcEntropyDecoderIf->parseSPS(pcSPS); } 157 Void decodePPS ( TComPPS* pcPPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS); } 158 Void decodeSliceHeader ( TComSlice* pcSlice, ParameterSetManager *parameterSetManager, const Int prevTid0POC) { m_pcEntropyDecoderIf->parseSliceHeader(pcSlice, parameterSetManager, prevTid0POC); } 169 159 Void decodeTerminatingBit ( UInt& ruiIsLast ) { m_pcEntropyDecoderIf->parseTerminatingBit(ruiIsLast); } 170 160 Void decodeRemainingBytes( Bool noTrailingBytesExpected ) { m_pcEntropyDecoderIf->parseRemainingBytes(noTrailingBytesExpected); } 161 171 162 TDecEntropyIf* getEntropyDecoder() { return m_pcEntropyDecoderIf; } 172 163 173 164 public: 174 165 Void decodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 175 166 Void decodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 176 #if H_3D167 #if NH_3D_DIS 177 168 Void decodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ; 178 169 #endif … … 182 173 Void decodePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 183 174 Void decodePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 184 185 #if H_3D_ARP175 176 #if NH_3D_ARP 186 177 Void decodeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 187 178 #endif 188 #if H_3D_IC179 #if NH_3D_IC 189 180 Void decodeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 190 181 #endif 191 #if H_3D_INTER_SDC 182 183 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 192 184 Void decodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 193 185 #endif 194 #if H_3D_DBBP186 #if NH_3D_DBBP 195 187 Void decodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 196 188 #endif … … 198 190 199 191 Void decodePredInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU ); 200 192 201 193 Void decodeIntraDirModeLuma ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 202 194 Void decodeIntraDirModeChroma( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 203 195 204 196 Void decodeQP ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 205 206 Void updateContextTables ( SliceType eSliceType, Int iQp ) { m_pcEntropyDecoderIf->updateContextTables( eSliceType, iQp ); } 207 208 197 Void decodeChromaQpAdjustment( TComDataCU* pcCU, UInt uiAbsPartIdx ); 198 209 199 private: 210 Void xDecodeTransform ( TComDataCU* pcCU, UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP, Int getQuadtreeTULog2MinSizeInCU ); 211 212 public: 213 Void decodeCoeff ( TComDataCU* pcCU , UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP ); 214 200 201 Void xDecodeTransform ( Bool& bCodeDQP, Bool& isChromaQpAdjCoded, TComTU &rTu, const Int quadtreeTULog2MinSizeInCU ); 202 203 public: 204 205 Void decodeCoeff ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, Bool& bCodeDQP, Bool& isChromaQpAdjCoded ); 206 215 207 };// END CLASS DEFINITION TDecEntropy 216 208
Note: See TracChangeset for help on using the changeset viewer.