Changeset 1313 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecSlice.h


Ignore:
Timestamp:
13 Aug 2015, 17:38:13 (9 years ago)
Author:
tech
Message:

Merged 14.1-update-dev1@1312.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibDecoder/TDecSlice.h

    r1179 r1313  
    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. 
     4 * granted under this license.
    55 *
    6 * Copyright (c) 2010-2015, ITU/ISO/IEC
     6 * Copyright (c) 2010-2015, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    6666  TDecCu*         m_pcCuDecoder;
    6767
    68   TDecSbac*       m_pcBufferSbacDecoders;   ///< line to store temporary contexts, one per column of tiles.
    69   TDecBinCABAC*   m_pcBufferBinCABACs;
    70   TDecSbac*       m_pcBufferLowLatSbacDecoders;   ///< dependent tiles: line to store temporary contexts, one per column of tiles.
    71   TDecBinCABAC*   m_pcBufferLowLatBinCABACs;
    72   std::vector<TDecSbac*> CTXMem;
    73  
     68  TDecSbac        m_lastSliceSegmentEndContextState;    ///< context storage for state at the end of the previous slice-segment (used for dependent slices only).
     69  TDecSbac        m_entropyCodingSyncContextState;      ///< context storate for state of contexts at the wavefront/WPP/entropy-coding-sync second CTU of tile-row
     70
    7471public:
    7572  TDecSlice();
    7673  virtual ~TDecSlice();
    77  
     74
    7875  Void  init              ( TDecEntropy* pcEntropyDecoder, TDecCu* pcMbDecoder );
    7976  Void  create            ();
    8077  Void  destroy           ();
    81  
    82   Void  decompressSlice   ( TComInputBitstream** ppcSubstreams,   TComPic*& rpcPic, TDecSbac* pcSbacDecoder, TDecSbac* pcSbacDecoders );
    83   Void      initCtxMem(  UInt i );
    84   Void      setCtxMem( TDecSbac* sb, Int b )   { CTXMem[b] = sb; }
    85   Int       getCtxMemSize( )                   { return (Int)CTXMem.size(); }
     78
     79  Void  decompressSlice   ( TComInputBitstream** ppcSubstreams,   TComPic* pcPic, TDecSbac* pcSbacDecoder );
    8680};
    87 
    88 
    89 class ParameterSetManagerDecoder:public ParameterSetManager
    90 {
    91 public:
    92   ParameterSetManagerDecoder();
    93   virtual ~ParameterSetManagerDecoder();
    94   Void     storePrefetchedVPS(TComVPS *vps)  { m_vpsBuffer.storePS( vps->getVPSId(), vps); };
    95   TComVPS* getPrefetchedVPS  (Int vpsId);
    96   Void     storePrefetchedSPS(TComSPS *sps)  { m_spsBuffer.storePS( sps->getSPSId(), sps); };
    97   TComSPS* getPrefetchedSPS  (Int spsId);
    98   Void     storePrefetchedPPS(TComPPS *pps)  { m_ppsBuffer.storePS( pps->getPPSId(), pps); };
    99   TComPPS* getPrefetchedPPS  (Int ppsId);
    100   Void     applyPrefetchedPS();
    101 
    102 private:
    103   ParameterSetMap<TComVPS> m_vpsBuffer;
    104   ParameterSetMap<TComSPS> m_spsBuffer;
    105   ParameterSetMap<TComPPS> m_ppsBuffer;
    106 };
    107 
    10881
    10982//! \}
Note: See TracChangeset for help on using the changeset viewer.