Changeset 443 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComDataCU.h


Ignore:
Timestamp:
26 May 2013, 15:41:34 (12 years ago)
Author:
tech
Message:
  • Reintegrated branch 6.2-dev0 rev. 442.
  • Changed version number.
  • Added coding results.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComDataCU.h

    r332 r443  
    195195                                      ///< value 0: non-VSP, value 1: VSP
    196196#endif
     197#if MERL_VSP_NBDV_RefVId_Fix_D0166
     198  Char*         m_piVSPDir;           ///< 0: LIST0; 1: LIST1
     199#endif
    197200#if AMP_MRG
    198201  Bool          m_bIsMergeAMP;
     
    214217  Bool*         m_pbResPredFlag;      ///< array of residual prediction flags
    215218#endif
    216 
     219#if QC_ARP_D0177
     220  UChar*        m_puhARPW;
     221#endif
    217222#if LGE_EDGE_INTRA_A0070
    218223  UChar*        m_pucEdgeCode;          ///< array of edge code
     
    268273  Pel*          m_apSegmentDCOffset[2];
    269274#endif
    270 
     275#if QC_CU_NBDV_D0181
     276  DisInfo*      m_pDvInfo;
     277#endif
    271278protected:
    272279 
     
    275282  Bool          xAddMVPCandOrder      ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir );
    276283#if MERL_VSP_C0152
    277   inline Bool   xAddVspMergeCand      ( UChar ucVspMergePos, Int vspIdx, Bool* bVspMvZeroDone, UInt uiDepth, Bool* abCandIsInter, Int& iCount,
    278                                         UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDisInfo );
    279   inline Void   xInheritVspMode       ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo ) ;
     284  inline Bool   xAddVspMergeCand      (
     285 UChar ucVspMergePos,
     286#if !LGE_VSP_INHERIT_D0092
     287 Int vspIdx,
     288 Bool* bVspMvZeroDone,
     289#endif
     290 UInt uiDepth,
     291 Bool* abCandIsInter,
     292 Int& iCount,
     293 UChar* puhInterDirNeighbours,
     294 TComMvField* pcMvFieldNeighbours,
     295 Int* iVSPIndexTrue,
     296 Int mrgCandIdx,
     297 DisInfo* pDisInfo
     298#if MERL_VSP_NBDV_RefVId_Fix_D0166
     299 , Int*   iVspDirTrue = NULL
     300#endif
     301                                        );
     302  inline Void   xInheritVspMode       ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo
     303#if QC_BVSP_CleanUP_D0191
     304   ,UChar *puhInterDirNeighbours
     305#endif
     306#if MERL_VSP_NBDV_RefVId_Fix_D0166
     307                                      , Int *iVSPDirTrue
     308#endif
     309    ) ;
    280310#endif
    281311  Void          deriveRightBottomIdx        ( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxRB );
     
    299329 
    300330  /// compute scaling factor from POC difference
     331#if !QC_ARP_D0177
    301332  Int           xGetDistScaleFactor   ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC );
    302  
     333#endif
    303334  Void xDeriveCenterIdx( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxCenter );
    304335  Bool xGetCenterCol( UInt uiPartIdx, RefPicList eRefPicList, int iRefIdx, TComMv *pcMv );
     
    314345  // create / destroy / initialize / copy
    315346  // -------------------------------------------------------------------------------------------------------------------
    316  
     347#if QC_ARP_D0177
     348  Int           xGetDistScaleFactor   ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC );
     349#endif 
     350
    317351  Void          create                ( UInt uiNumPartition, UInt uiWidth, UInt uiHeight, Bool bDecSubCu, Int unitSize
    318352#if ADAPTIVE_QP_SELECTION
     
    326360  Void          initSubCU             ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp );
    327361  Void          setOutsideCUPart      ( UInt uiAbsPartIdx, UInt uiDepth );
    328 
     362#if QC_CU_NBDV_D0181
     363  Void          copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx);
     364#endif
    329365  Void          copySubCU             ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth );
    330   Void          copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList );
    331   Void          copyPartFrom          ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth );
     366  Void          copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList
     367#if QC_CU_NBDV_D0181
     368  , Bool bNBDV = false
     369#endif
     370  );
     371  Void          copyPartFrom          ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth
     372#if QC_ARP_D0177
     373      ,
     374      Bool bRP = false
     375#endif
     376  );
    332377 
    333378  Void          copyToPic             ( UChar uiDepth );
     
    458503  Void          setVSPIndex        ( UInt uiIdx, Int n )     { m_piVSPIndex[uiIdx] = n;    }
    459504  Void          setVSPIndexSubParts( Char bVSPIndex, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
     505#endif
     506#if MERL_VSP_NBDV_RefVId_Fix_D0166
     507  Char*         getVSPDir          ()                        { return m_piVSPDir;                           }
     508  Char          getVSPDir          ( UInt uiIdx )            { return m_piVSPDir[uiIdx];                  }
     509  Void          setVSPDir          ( UInt uiIdx, Int n )     { m_piVSPDir[uiIdx] = n;  }
     510  Void          setVSPDirSubParts  ( Char bVSPDir, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
     511  Bool          getRefListAndRefFrmIdx(Int targetRefViewIdx, RefPicList& eRefPicList, Int& refFrmIdx);
    460512#endif
    461513
     
    474526#endif
    475527#endif
     528#if QC_CU_NBDV_D0181
     529  DisInfo*      getDvInfo             ()                        { return m_pDvInfo;                }
     530  DisInfo       getDvInfo             (UInt uiIdx)              { return m_pDvInfo[uiIdx];         }
     531  Void          setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth );
     532#endif
    476533
    477534#if AMP_MRG
     
    537594  Bool          getUnifiedMvPredCan       ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
    538595  Void          getDisMvpCand        ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo );
     596#if QC_CU_NBDV_D0181
     597  Bool          getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false
     598#else
    539599  Void          getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false
     600#endif
    540601#if MERL_VSP_C0152
    541602                              , Bool bDepthRefine = false
     
    548609#if MERL_VSP_C0152
    549610  Pel           getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT, Int iShiftPrec, Bool bSimpleDvpRefine = false);
    550   Void          estimateDVFromDM(UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred, Bool bSimpleDvpRefine = false);
     611  Void          estimateDVFromDM(
     612#if MERL_VSP_NBDV_RefVId_Fix_D0166
     613                Int refViewIdx,
     614#endif
     615                UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred, Bool bSimpleDvpRefine = false);
    551616#endif
    552617  Bool          getIViewOrgDepthMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv );
     
    568633  Bool          getResidualSamples( UInt uiPartIdx, Bool bRecon, TComYuv* pcYuv = 0 );
    569634#endif
     635#if QC_ARP_D0177
     636  UChar*        getARPW          ()                        { return m_puhARPW;               }
     637  UChar         getARPW          ( UInt uiIdx )            { return m_puhARPW[uiIdx];        }
     638  Void          setARPW          ( UInt uiIdx, UChar w )   { m_puhARPW[uiIdx] = w;           }
     639  Void          setARPWSubParts  ( UChar w, UInt uiAbsPartIdx, UInt uiDepth );
     640  Double        getARPWFactor    ( UInt uiIdx );
     641#endif
    570642  // -------------------------------------------------------------------------------------------------------------------
    571643  // member functions for accessing partition information
     
    647719  Bool          hasEqualMotion              ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx );
    648720#if MERL_VSP_C0152
    649   Void          getInterMergeCandidates     ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int* uiVSPIndexTrue, Int mrgCandIdx = -1 );
     721  Void          getInterMergeCandidates     ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int* uiVSPIndexTrue,
     722#if MERL_VSP_NBDV_RefVId_Fix_D0166
     723                Int* iVSPDir,
     724#endif
     725                Int mrgCandIdx = -1 );
    650726#else
    651727  Void          getInterMergeCandidates     ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 );
     
    688764  UInt          getCtxResPredFlag               ( UInt   uiAbsPartIdx                                 );
    689765#endif
    690  
     766#if QC_ARP_D0177
     767  UInt          getCTXARPWFlag                 ( UInt   uiAbsPartIdx                                 );
     768#endif 
    691769  UInt          getSliceStartCU         ( UInt pos )                  { return m_uiSliceStartCU[pos-m_uiAbsIdxInLCU];                                                                                          }
    692770  UInt          getEntropySliceStartCU  ( UInt pos )                  { return m_uiEntropySliceStartCU[pos-m_uiAbsIdxInLCU];                                                                                   }
     
    808886  Void          setSDCFlagSubParts  ( Bool bSDCFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
    809887 
     888#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    810889  UInt          getCtxSDCFlag              ( UInt uiAbsPartIdx );
     890#endif
    811891 
    812892  Bool          getSDCAvailable             ( UInt uiAbsPartIdx );
Note: See TracChangeset for help on using the changeset viewer.