Ignore:
Timestamp:
2 Feb 2014, 04:51:29 (11 years ago)
Author:
seregin
Message:

update to HM-13.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TComDataCU.h

    r540 r593  
    44 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2013, ITU/ISO/IEC
     6 * Copyright (c) 2010-2014, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    5555//! \{
    5656
    57 #if !HM_CLEANUP_SAO
    58 // ====================================================================================================================
    59 // Non-deblocking in-loop filter processing block data structure
    60 // ====================================================================================================================
    61 
    62 /// Non-deblocking filter processing block border tag
    63 enum NDBFBlockBorderTag
    64 {
    65   SGU_L = 0,
    66   SGU_R,
    67   SGU_T,
    68   SGU_B,
    69   SGU_TL,
    70   SGU_TR,
    71   SGU_BL,
    72   SGU_BR,
    73   NUM_SGU_BORDER
    74 };
    75 
    76 /// Non-deblocking filter processing block information
    77 struct NDBFBlockInfo
    78 {
    79   Int   tileID;   //!< tile ID
    80   Int   sliceID;  //!< slice ID
    81   UInt  startSU;  //!< starting SU z-scan address in LCU
    82   UInt  endSU;    //!< ending SU z-scan address in LCU
    83   UInt  widthSU;  //!< number of SUs in width
    84   UInt  heightSU; //!< number of SUs in height
    85   UInt  posX;     //!< top-left X coordinate in picture
    86   UInt  posY;     //!< top-left Y coordinate in picture
    87   UInt  width;    //!< number of pixels in width
    88   UInt  height;   //!< number of pixels in height
    89   Bool  isBorderAvailable[NUM_SGU_BORDER];  //!< the border availabilities
    90   Bool  allBordersAvailable;
    91 
    92   NDBFBlockInfo():tileID(0), sliceID(0), startSU(0), endSU(0) {} //!< constructor
    93   const NDBFBlockInfo& operator= (const NDBFBlockInfo& src);  //!< "=" operator
    94 };
    95 #endif
    96 
    97 
    9857// ====================================================================================================================
    9958// Class definition
     
    161120  Pel*          m_pcIPCMSampleCr;     ///< PCM sample buffer (Cr)
    162121
    163 #if !HM_CLEANUP_SAO
    164   Int*          m_piSliceSUMap;       ///< pointer of slice ID map
    165   std::vector<NDBFBlockInfo> m_vNDFBlock;
    166 #endif
    167122  // -------------------------------------------------------------------------------------------------------------------
    168123  // neighbour access variables
     
    241196 
    242197  Void          initCU                ( TComPic* pcPic, UInt uiCUAddr );
    243   Void          initEstData           ( UInt uiDepth, Int qp );
     198  Void          initEstData           ( UInt uiDepth, Int qp, Bool bTransquantBypass );
    244199  Void          initSubCU             ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp );
    245200  Void          setOutsideCUPart      ( UInt uiAbsPartIdx, UInt uiDepth );
     
    392347  Void          setIPCMFlagSubParts   (Bool bIpcmFlag, UInt uiAbsPartIdx, UInt uiDepth);
    393348
    394 #if !HM_CLEANUP_SAO
    395   /// get slice ID for SU
    396   Int           getSUSliceID          (UInt uiIdx)              {return m_piSliceSUMap[uiIdx];      }
    397 
    398   /// get the pointer of slice ID map
    399   Int*          getSliceSUMap         ()                        {return m_piSliceSUMap;             }
    400 
    401   /// set the pointer of slice ID map
    402   Void          setSliceSUMap         (Int *pi)                 {m_piSliceSUMap = pi;               }
    403 
    404   std::vector<NDBFBlockInfo>* getNDBFilterBlocks()      {return &m_vNDFBlock;}
    405   Void setNDBFilterBlockBorderAvailability(UInt numLCUInPicWidth, UInt numLCUInPicHeight, UInt numSUInLCUWidth, UInt numSUInLCUHeight, UInt picWidth, UInt picHeight
    406                                           ,std::vector<Bool>& LFCrossSliceBoundary
    407                                           ,Bool bTopTileBoundary, Bool bDownTileBoundary, Bool bLeftTileBoundary, Bool bRightTileBoundary
    408                                           ,Bool bIndependentTileBoundaryEnabled );
    409 #endif
    410349  // -------------------------------------------------------------------------------------------------------------------
    411350  // member functions for accessing partition information
     
    442381 
    443382  Void          compressMV            ();
    444  
    445 #if SVC_EXTENSION
    446   Void          setLayerId (UInt layerId) { m_layerId = layerId; }
    447   UInt          getLayerId ()               { return m_layerId; }
    448 #endif
    449383 
    450384  // -------------------------------------------------------------------------------------------------------------------
     
    490424  Void          deriveLeftBottomIdxGeneral    ( UInt uiAbsPartIdx, UInt uiPartIdx, UInt& ruiPartIdxLB );
    491425 
     426 
    492427  // -------------------------------------------------------------------------------------------------------------------
    493428  // member functions for modes
     
    497432  Bool          isSkipped ( UInt uiPartIdx );                                                     ///< SKIP (no residual)
    498433  Bool          isBipredRestriction( UInt puIdx );
    499 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    500   Bool          isInterLayerReference(UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1);
    501 #endif
    502434
    503435  // -------------------------------------------------------------------------------------------------------------------
     
    525457
    526458#if SVC_EXTENSION
     459  Void          setLayerId (UInt layerId) { m_layerId = layerId; }
     460  UInt          getLayerId ()               { return m_layerId; }
     461#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     462  Bool          isInterLayerReference(UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1);
     463#endif
    527464#if FAST_INTRA_SHVC
    528465  Int           reduceSetOfIntraModes              (  UInt   uiAbsPartIdx, Int* uiIntraDirPred, Int &fullSetOfModes );
    529466#endif
    530 
    531467#if REF_IDX_ME_ZEROMV
    532468  Bool xCheckZeroMVILRMerge(UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1);
    533469  Bool xCheckZeroMVILRMvdL1Zero(Int iRefList, Int iRefIdx, Int MvpIdx);
    534470#endif
     471  TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiCuAbsPartIdx, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase, Int iMotionMapping = 0 );
     472  TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiPelX, UInt uiPelY, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase, Int iMotionMapping = 0 );
     473  Void          scaleBaseMV( UInt refLayerIdc, TComMvField& rcMvFieldEnhance, TComMvField& rcMvFieldBase );
    535474#endif
    536475
     
    546485  UInt          getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra);
    547486
    548 #if SVC_EXTENSION
    549   TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiCuAbsPartIdx, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase, Int iMotionMapping = 0 );
    550   TComDataCU*   getBaseColCU( UInt refLayerIdc, UInt uiPelX, UInt uiPelY, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase, Int iMotionMapping = 0 );
    551   Void          scaleBaseMV( UInt refLayerIdc, TComMvField& rcMvFieldEnhance, TComMvField& rcMvFieldBase );
    552 #endif
    553487};
    554488
Note: See TracChangeset for help on using the changeset viewer.