Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecCAVLC.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/TLibDecoder/TDecCAVLC.h

    r443 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 *
     
    4444
    4545#include "TDecEntropy.h"
     46#include "SyntaxElementParser.h"
    4647
    4748//! \ingroup TLibDecoder
     
    5253// ====================================================================================================================
    5354
    54 class SEImessages;
    55 
    5655/// CAVLC decoder class
    57 class TDecCavlc : public TDecEntropyIf
     56class TDecCavlc : public SyntaxElementParser, public TDecEntropyIf
    5857{
    5958public:
     
    6261 
    6362protected:
    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);
    8364 
    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
    8966  Int**    m_aaiTempScale;
    9067  Int**    m_aaiTempOffset;
    91   Int**    m_aaiTempPdmScaleNomDelta;
    92   Int**    m_aaiTempPdmOffset;
    93  
     68#endif
    9469public:
    9570
    9671  /// 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); };
    10373  Void  setBitstream        ( TComInputBitstream* p )   { m_pcBitstream = p; }
    104   /// set slice granularity
    105   Void setSliceGranularity(Int iSliceGranularity)  {m_iSliceGranularity = iSliceGranularity;}
    106 
    107   /// get slice granularity
    108   Int  getSliceGranularity()                       {return m_iSliceGranularity;             }
    10974  Void  parseTransformSubdivFlag( UInt& ruiSubdivFlag, UInt uiLog2TransformBlockSize );
    11075  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 );
    11477  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 );
    11880#else
    11981  Void  parseSPS            ( TComSPS* pcSPS );
    12082#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);
    12990  Void  parseTerminatingBit ( UInt& ruiBit );
    13091 
    131 #if H3D_IVMP
    132   Void  parseMVPIdx         ( Int& riMVPIdx, Int iAMVPCands );
    133 #else
    13492  Void  parseMVPIdx         ( Int& riMVPIdx );
    135 #endif
    13693 
    13794  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
    139102  Void  parseICFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    140103#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 );
    148107#endif
    149108  Void parseSplitFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     
    155114  Void parseIntraDirChroma  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    156115 
    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 );
    159118  Void parseMvd             ( TComDataCU* pcCU, UInt uiAbsPartAddr,UInt uiPartIdx,    UInt uiDepth, RefPicList eRefList );
    160119 
    161120  Void parseDeltaQP         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    162121  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
    164124  Void parseIPCMInfo        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth);
    165125
    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; }
    169127
    170128  Void xParsePredWeightTable ( TComSlice* pcSlice );
    171129  Void  parseScalingList               ( TComScalingList* scalingList );
    172130  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_B0036
    176 #if !PKU_QC_DEPTH_INTRA_UNI_D0195
    177   Void parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    178   Void parseSDCPredMode    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    179 #endif
    180   Void parseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );
    181 #endif
    182131protected:
    183   Void  xParseDblParam       ( TComAPS* aps );
    184 #if !LGE_SAO_MIGRATION_D0091
    185   Void  xParseSaoParam       ( SAOParam* pSaoParam );
    186   Void  xParseSaoOffset      (SaoLcuParam* saoLcuParam);
    187   Void  xParseSaoUnit        (Int rx, Int ry, Int compIdx, SAOParam* saoParam, Bool& repeatedRow );
    188 #endif
    189   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 );
    196132  Bool  xMoreRbspData();
    197133};
Note: See TracChangeset for help on using the changeset viewer.