Ignore:
Timestamp:
14 Nov 2012, 17:23:56 (12 years ago)
Author:
orange
Message:

Integrated JCT3V-B0068 (QTLPC: quadtree limitation + predictive coding of the quadtree for depth coding)

Location:
branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComDataCU.cpp

    r177 r181  
    163163  m_apSegmentDCOffset[1] = NULL;
    164164#endif
    165 #if OL_DEPTHLIMIT_A0044
    166   //add a variable to store the partition information
    167   //a 2D array in part_symbol, uidepth format
    168   //initialize m_partInfo to OL_END_CU
    169   for (Int i=0; i < OL_PART_BUF_SIZE; i++)
    170   {
    171     for (Int j=0; j < 2; j++)
    172     {
    173       m_uiPartInfo[i][j] = OL_END_CU;
    174     }
    175   }
    176 #endif
    177165}
    178166
     
    507495Void TComDataCU::initCU( TComPic* pcPic, UInt iCUAddr )
    508496{
    509 #if OL_DEPTHLIMIT_A0044
    510   TComDataCU* pcCU     = pcPic->getCU(iCUAddr);
    511 #endif
    512 
    513497  m_pcPic              = pcPic;
    514498  m_pcSlice            = pcPic->getSlice(pcPic->getCurrSliceIdx());
     
    740724    m_apcCUColocated[1] = getSlice()->getRefPic( REF_PIC_LIST_1, 0)->getCU( m_uiCUAddr );
    741725  }
    742 #if OL_DEPTHLIMIT_A0044
    743   setPartDumpFlag (pcCU->getPartDumpFlag());
    744 #endif
    745726}
    746727
     
    10961077  memcpy(m_uiSliceStartCU,pcCU->m_uiSliceStartCU+uiPartOffset,sizeof(UInt)*m_uiNumPartition);
    10971078  memcpy(m_uiEntropySliceStartCU,pcCU->m_uiEntropySliceStartCU+uiPartOffset,sizeof(UInt)*m_uiNumPartition);
    1098 #if OL_DEPTHLIMIT_A0044
    1099   setPartDumpFlag (pcCU->getPartDumpFlag());
    1100 #endif
    11011079}
    11021080
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComDataCU.h

    r177 r181  
    244244  UInt*         m_uiSliceStartCU;    ///< Start CU address of current slice
    245245  UInt*         m_uiEntropySliceStartCU; ///< Start CU address of current slice
    246 
    247 #if OL_DEPTHLIMIT_A0044
    248   //add a variable to store the partition information
    249   //a 2D array in uidepth, part_symbol format
    250   UInt          m_uiPartInfo[OL_PART_BUF_SIZE][2];
    251   UInt          m_uiPartNum;
    252   Bool          m_dumpPartInfo;
    253 #endif
    254246 
    255247  // -------------------------------------------------------------------------------------------------------------------
     
    624616 
    625617  Void          compressMV            ();
    626 
    627 #if OL_DEPTHLIMIT_A0044
    628   Void        resetPartInfo     () {m_uiPartNum = 0;};
    629   Void        incrementPartInfo () {m_uiPartNum ++;};
    630   Void        updatePartInfo(UInt uiSymbol, UInt uiDepth) { m_uiPartInfo[m_uiPartNum][0] = uiSymbol; m_uiPartInfo[m_uiPartNum][1] = uiDepth;};
    631   UInt*       readPartInfo()                              { return (UInt*)m_uiPartInfo;};
    632   Void        setPartDumpFlag(Bool flag)                  { m_dumpPartInfo = flag; };
    633   Bool        getPartDumpFlag()                           { return m_dumpPartInfo; };
    634 #endif
    635618 
    636619  // -------------------------------------------------------------------------------------------------------------------
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComPic.cpp

    r100 r181  
    8181  m_aaiCodedScale     = 0;
    8282  m_aaiCodedOffset    = 0;
     83#if OL_QTLIMIT_PREDCODING_B0068
     84  m_bReduceBitsQTL    = 0;
     85#endif
    8386}
    8487
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComPic.h

    r126 r181  
    113113  Int**                 m_aaiCodedOffset;
    114114
    115 #if OL_DEPTHLIMIT_A0044
    116   UInt*                 m_texPartInfo;
    117   UInt                  m_uiTexPartIndex;
     115#if OL_QTLIMIT_PREDCODING_B0068
     116  Bool                  m_bReduceBitsQTL;
    118117#endif
    119118
     
    179178  Int           getViewOrderIdx()                             { return m_iViewOrderIdx; }
    180179#endif
     180
     181#if OL_QTLIMIT_PREDCODING_B0068
     182  Bool          getReduceBitsFlag ()             { return m_bReduceBitsQTL;     }
     183  Void          setReduceBitsFlag ( Bool bFlag ) { m_bReduceBitsQTL = bFlag;    }
     184#endif
     185
    181186  Void          setScaleOffset( Int** pS, Int** pO )  { m_aaiCodedScale = pS; m_aaiCodedOffset = pO; }
    182187  Int**         getCodedScale ()                      { return m_aaiCodedScale;  }
     
    249254#endif
    250255
    251 #if OL_DEPTHLIMIT_A0044
    252   UInt        accessPartInfo        ( UInt count )   { return m_texPartInfo[m_uiTexPartIndex + count]; };
    253   Void        incrementTexPartIndex (            )   { m_uiTexPartIndex += 2;    };
    254   UInt        getTexPartIndex       ()               { return m_uiTexPartIndex;  };
    255   Void        setTexPartIndex       ( UInt idx   )   { m_uiTexPartIndex = idx; };
    256   Void        setPartInfo           ( UInt* texPart) { m_texPartInfo    = texPart;  };
    257 #endif
    258 
    259256  Bool          getValidSlice                                  (Int sliceID)  {return m_pbValidSlice[sliceID];}
    260257  Int           getSliceGranularityForNDBFilter                ()             {return m_sliceGranularityForNDBFilter;}
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComSlice.cpp

    r177 r181  
    15231523, m_bUseDMM                   (false)
    15241524#endif
    1525 #if OL_DEPTHLIMIT_A0044
    1526 , m_bDepthPartitionLimiting   (false)
     1525#if OL_QTLIMIT_PREDCODING_B0068
     1526, m_bUseQTLPC                 (false)
    15271527#endif
    15281528{
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TComSlice.h

    r177 r181  
    363363#endif
    364364
    365 #if OL_DEPTHLIMIT_A0044
    366   Bool m_bDepthPartitionLimiting;
     365#if OL_QTLIMIT_PREDCODING_B0068
     366  Bool m_bUseQTLPC;
    367367#endif
    368368
     
    643643#endif
    644644
    645 #if OL_DEPTHLIMIT_A0044
    646   Void setUseDPL(Bool b) {m_bDepthPartitionLimiting = b; }
    647   Bool getUseDPL()       {return m_bDepthPartitionLimiting;}
     645#if OL_QTLIMIT_PREDCODING_B0068
     646  Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b;    }
     647  Bool getUseQTLPC()         { return m_bUseQTLPC; }
    648648#endif
    649649
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibCommon/TypeDef.h

    r177 r181  
    4242//! \{
    4343
     44#define OL_QTLIMIT_PREDCODING_B0068       1    //JCT3V-B0068
     45
    4446#define MTK_UNCONSTRAINED_MVI             1    //JCT3V-B0083
    4547
     
    108110#define LGE_ILLUCOMP_B0045_ENCSIMP        1
    109111#endif
    110 #define LGE_CLEAN_UP                      1
    111 
    112 #define OL_DEPTHLIMIT_A0044               1 //JCT2-A0044
    113 #if OL_DEPTHLIMIT_A0044
    114 #define OL_DO_NOT_LIMIT_INTRA_SLICES_PART 1 //Turn this on to not perform depth limiting for I-SLICES.
    115 #define OL_END_CU                         MAX_INT //Default for initializing the partition information buffer
    116 #define OL_PART_BUF_SIZE                  86 //maximum number of possible partition bits in a CU
    117 #endif
    118112
    119113#define HHI_INTERVIEW_SKIP                1
     
    134128#endif
    135129
    136 #define RWTH_SDC_DLT_B0036                1   // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table
     130#define RWTH_SDC_DLT_B0036                0   // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table
    137131#if RWTH_SDC_DLT_B0036
    138132#define Log2( n ) ( log((double)n) / log(2.0) )
Note: See TracChangeset for help on using the changeset viewer.