Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecCAVLC.h
- Timestamp:
- 1 Sep 2013, 22:47:26 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r443 r608 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 2, ITU/ISO/IEC6 * Copyright (c) 2010-2013, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 44 44 45 45 #include "TDecEntropy.h" 46 #include "SyntaxElementParser.h" 46 47 47 48 //! \ingroup TLibDecoder … … 52 53 // ==================================================================================================================== 53 54 54 class SEImessages;55 56 55 /// CAVLC decoder class 57 class TDecCavlc : public TDecEntropyIf56 class TDecCavlc : public SyntaxElementParser, public TDecEntropyIf 58 57 { 59 58 public: … … 62 61 63 62 protected: 64 Void xReadCode (UInt uiLength, UInt& ruiCode); 65 Void xReadUvlc (UInt& ruiVal); 66 Void xReadSvlc (Int& riVal); 67 Void xReadFlag (UInt& ruiCode); 68 Void xReadEpExGolomb ( UInt& ruiSymbol, UInt uiCount ); 69 Void xReadExGolombLevel ( UInt& ruiSymbol ); 70 Void xReadUnaryMaxSymbol ( UInt& ruiSymbol, UInt uiMaxSymbol ); 71 #if ENC_DEC_TRACE 72 Void xReadCodeTr (UInt length, UInt& rValue, const Char *pSymbolName); 73 Void xReadUvlcTr ( UInt& rValue, const Char *pSymbolName); 74 Void xReadSvlcTr ( Int& rValue, const Char *pSymbolName); 75 Void xReadFlagTr ( UInt& rValue, const Char *pSymbolName); 76 #endif 77 #if QC_MVHEVC_B0046 78 Void xReadVPSAlignOne (); 79 #endif 80 Void xReadPCMAlignZero (); 81 82 UInt xGetBit (); 63 void parseShortTermRefPicSet (TComSPS* pcSPS, TComReferencePictureSet* pcRPS, Int idx); 83 64 84 void parseShortTermRefPicSet (TComSPS* pcSPS, TComReferencePictureSet* pcRPS, Int idx); 85 private: 86 TComInputBitstream* m_pcBitstream; 87 Int m_iSliceGranularity; //!< slice granularity 88 65 #if H_3D 89 66 Int** m_aaiTempScale; 90 67 Int** m_aaiTempOffset; 91 Int** m_aaiTempPdmScaleNomDelta; 92 Int** m_aaiTempPdmOffset; 93 68 #endif 94 69 public: 95 70 96 71 /// rest entropy coder by intial QP and IDC in CABAC 97 #if !CABAC_INIT_FLAG 98 Void resetEntropy (Int iQp, Int iID) { printf("Not supported yet\n"); assert(0); exit(1);} 99 Void resetEntropy ( TComSlice* pcSlice ); 100 #else 101 Void resetEntropy ( TComSlice* pcSlice ) { assert(0); }; 102 #endif 72 Void resetEntropy ( TComSlice* /*pcSlice*/ ) { assert(0); }; 103 73 Void setBitstream ( TComInputBitstream* p ) { m_pcBitstream = p; } 104 /// set slice granularity105 Void setSliceGranularity(Int iSliceGranularity) {m_iSliceGranularity = iSliceGranularity;}106 107 /// get slice granularity108 Int getSliceGranularity() {return m_iSliceGranularity; }109 74 Void parseTransformSubdivFlag( UInt& ruiSubdivFlag, UInt uiLog2TransformBlockSize ); 110 75 Void parseQtCbf ( TComDataCU* pcCU, UInt uiAbsPartIdx, TextType eType, UInt uiTrDepth, UInt uiDepth ); 111 Void parseQtRootCbf ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt& uiQtRootCbf ); 112 113 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 76 Void parseQtRootCbf ( UInt uiAbsPartIdx, UInt& uiQtRootCbf ); 114 77 Void parseVPS ( TComVPS* pcVPS ); 115 #endif 116 #if HHI_MPI || H3D_QTL 117 Void parseSPS ( TComSPS* pcSPS, Bool bIsDepth ); 78 #if H_3D 79 Void parseSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 118 80 #else 119 81 Void parseSPS ( TComSPS* pcSPS ); 120 82 #endif 121 Void parsePPS ( TComPPS* pcPPS, ParameterSetManagerDecoder *parameterSet); 122 Void parseSEI(SEImessages&); 123 Void parseAPS ( TComAPS* pAPS ); 124 #if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137 125 Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet, bool isDepth); 126 #else 127 Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, AlfCUCtrlInfo &alfCUCtrl, AlfParamSet& alfParamSet); 128 #endif 83 Void parsePPS ( TComPPS* pcPPS); 84 Void parseVUI ( TComVUI* pcVUI, TComSPS* pcSPS ); 85 Void parseSEI ( SEIMessages& ); 86 Void parsePTL ( TComPTL *rpcPTL, Bool profilePresentFlag, Int maxNumSubLayersMinus1 ); 87 Void parseProfileTier (ProfileTierLevel *ptl); 88 Void parseHrdParameters (TComHRD *hrd, Bool cprms_present_flag, UInt tempLevelHigh); 89 Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager); 129 90 Void parseTerminatingBit ( UInt& ruiBit ); 130 91 131 #if H3D_IVMP132 Void parseMVPIdx ( Int& riMVPIdx, Int iAMVPCands );133 #else134 92 Void parseMVPIdx ( Int& riMVPIdx ); 135 #endif136 93 137 94 Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 138 #if LGE_ILLUCOMP_B0045 95 Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 96 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 97 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ); 98 #if H_3D_ARP 99 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 100 #endif 101 #if H_3D_IC 139 102 Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 140 103 #endif 141 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 142 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex, UInt uiAbsPartIdx, UInt uiDepth ); 143 #if H3D_IVRP 144 Void parseResPredFlag ( TComDataCU* pcCU, Bool& rbResPredFlag, UInt uiAbsPartIdx, UInt uiDepth ); 145 #endif 146 #if QC_ARP_D0177 147 Void parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx,UInt uiDepth ); 104 #if LGE_INTER_SDC_E0156 105 Void parseInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 106 Void parseInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ); 148 107 #endif 149 108 Void parseSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); … … 155 114 Void parseIntraDirChroma ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 156 115 157 Void parseInterDir ( TComDataCU* pcCU, UInt& ruiInterDir, UInt uiAbsPartIdx , UInt uiDepth);158 Void parseRefFrmIdx ( TComDataCU* pcCU, Int& riRefFrmIdx, UInt uiAbsPartIdx, UInt uiDepth,RefPicList eRefList );116 Void parseInterDir ( TComDataCU* pcCU, UInt& ruiInterDir, UInt uiAbsPartIdx ); 117 Void parseRefFrmIdx ( TComDataCU* pcCU, Int& riRefFrmIdx, RefPicList eRefList ); 159 118 Void parseMvd ( TComDataCU* pcCU, UInt uiAbsPartAddr,UInt uiPartIdx, UInt uiDepth, RefPicList eRefList ); 160 119 161 120 Void parseDeltaQP ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 162 121 Void parseCoeffNxN ( TComDataCU* pcCU, TCoeff* pcCoef, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt uiDepth, TextType eTType ); 163 122 Void parseTransformSkipFlags ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt width, UInt height, UInt uiDepth, TextType eTType); 123 164 124 Void parseIPCMInfo ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth); 165 125 166 Void readTileMarker ( UInt& uiTileIdx, UInt uiBitsUsed ); 167 Void updateContextTables ( SliceType eSliceType, Int iQp ) { return; } 168 Void decodeFlush() {}; 126 Void updateContextTables ( SliceType /*eSliceType*/, Int /*iQp*/ ) { return; } 169 127 170 128 Void xParsePredWeightTable ( TComSlice* pcSlice ); 171 129 Void parseScalingList ( TComScalingList* scalingList ); 172 130 Void xDecodeScalingList ( TComScalingList *scalingList, UInt sizeId, UInt listId); 173 Void parseDFFlag ( UInt& ruiVal, const Char *pSymbolName );174 Void parseDFSvlc ( Int& riVal, const Char *pSymbolName );175 #if RWTH_SDC_DLT_B0036176 #if !PKU_QC_DEPTH_INTRA_UNI_D0195177 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );178 Void parseSDCPredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );179 #endif180 Void parseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );181 #endif182 131 protected: 183 Void xParseDblParam ( TComAPS* aps );184 #if !LGE_SAO_MIGRATION_D0091185 Void xParseSaoParam ( SAOParam* pSaoParam );186 Void xParseSaoOffset (SaoLcuParam* saoLcuParam);187 Void xParseSaoUnit (Int rx, Int ry, Int compIdx, SAOParam* saoParam, Bool& repeatedRow );188 #endif189 Void xParseAlfParam(AlfParamSet* pAlfParamSet, Bool bSentInAPS = true, Int firstLCUAddr = 0, Bool acrossSlice = true, Int numLCUInWidth= -1, Int numLCUInHeight= -1);190 Void parseAlfParamSet(AlfParamSet* pAlfParamSet, Int firstLCUAddr, Bool alfAcrossSlice);191 Void parseAlfFixedLengthRun(UInt& idx, UInt rx, UInt numLCUInWidth);192 Void parseAlfStoredFilterIdx(UInt& idx, UInt numFilterSetsInBuffer);193 Void xParseAlfParam ( ALFParam* pAlfParam );194 Void xParseAlfCuControlParam(AlfCUCtrlInfo& cAlfParam, Int iNumCUsInPic);195 Int xGolombDecode ( Int k );196 132 Bool xMoreRbspData(); 197 133 };
Note: See TracChangeset for help on using the changeset viewer.