Changeset 302 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
28 Jun 2013, 00:40:00 (12 years ago)
Author:
seregin
Message:

update to HM11.0

Location:
branches/SHM-2.1-dev/source/Lib/TLibCommon
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/CommonDef.h

    r194 r302  
    5656// ====================================================================================================================
    5757
     58#if SVC_EXTENSION
    5859#define NV_VERSION        "2.1"                 ///< Current software version
     60#else
     61#define NV_VERSION        "11.0"                ///< Current software version
     62#endif
    5963
    6064// ====================================================================================================================
     
    110114#define MAX_NUM_REF_PICS            16          ///< max. number of pictures used for reference
    111115#define MAX_NUM_REF                 16          ///< max. number of entries in picture reference list
    112 #if !L0034_COMBINED_LIST_CLEANUP
    113 #define MAX_NUM_REF_LC              MAX_NUM_REF_PICS  // TODO: remove this macro definition (leftover from combined list concept)
    114 #endif
    115116
    116117#define MAX_UINT                    0xFFFFFFFFU ///< max. value of unsigned 32-bit integer
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/NAL.h

    r191 r302  
    9191        || m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL_R;
    9292  }
    93 #if L0045_NON_NESTED_SEI_RESTRICTIONS
    9493  Bool isSei()
    9594  {
     
    102101    return ( (UInt)m_nalUnitType < 32 );
    103102  }
    104 #endif
    105103};
    106104
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/SEI.cpp

    r189 r302  
    3939#include "SEI.h"
    4040
    41 #if J0149_TONE_MAPPING_SEI
    4241//Table D-7 Meaning of camera iso sensitivity indicator and exposure index rating indicator
    4342Int  Table_exp_indicator[32] = {0, 10, 12, 16, 20, 25, 32, 40, 50, 64, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 8000, -1};
    44 #endif
    4543
    4644SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType)
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/SEI.h

    r292 r302  
    127127
    128128  SEIActiveParameterSets()
    129 #if !L0047_APS_FLAGS
    130     :numSpsIdsMinus1(0)
    131 #else
    132129    : activeVPSId            (0)
    133130    , m_fullRandomAccessFlag (false)
    134131    , m_noParamSetUpdateFlag (false)
    135132    , numSpsIdsMinus1        (0)
    136 #endif
    137133  {}
    138134  virtual ~SEIActiveParameterSets() {}
    139135
    140136  Int activeVPSId;
    141 #if L0047_APS_FLAGS
    142137  Bool m_fullRandomAccessFlag;
    143138  Bool m_noParamSetUpdateFlag;
    144 #endif
    145139  Int numSpsIdsMinus1;
    146140  std::vector<Int> activeSeqParamSetId;
     
    153147
    154148  SEIBufferingPeriod()
    155 #if L0044_CPB_DPB_DELAY_OFFSET
    156149  : m_bpSeqParameterSetId (0)
    157150  , m_rapCpbParamsPresentFlag (false)
     
    164157    ::memset(m_initialAltCpbRemovalDelayOffset, 0, sizeof(m_initialAltCpbRemovalDelayOffset));
    165158  }
    166 #else
    167   {}
    168 #endif
    169159  virtual ~SEIBufferingPeriod() {}
    170160
    171161  UInt m_bpSeqParameterSetId;
    172162  Bool m_rapCpbParamsPresentFlag;
    173 #if L0044_CPB_DPB_DELAY_OFFSET
    174163  Bool m_cpbDelayOffset;
    175164  Bool m_dpbDelayOffset;
    176 #endif
    177165  UInt m_initialCpbRemovalDelay         [MAX_CPB_CNT][2];
    178166  UInt m_initialCpbRemovalDelayOffset   [MAX_CPB_CNT][2];
    179167  UInt m_initialAltCpbRemovalDelay      [MAX_CPB_CNT][2];
    180168  UInt m_initialAltCpbRemovalDelayOffset[MAX_CPB_CNT][2];
    181 #if L0328_SPLICING
    182169  Bool m_concatenationFlag;
    183170  UInt m_auCpbRemovalDelayDelta;
    184 #endif
    185171};
    186172class SEIPictureTiming : public SEI
     
    191177  SEIPictureTiming()
    192178  : m_picStruct               (0)
    193 #if L0046_RENAME_PROG_SRC_IDC
    194179  , m_sourceScanType          (0)
    195 #else
    196   , m_progressiveSourceIdc    (0)
    197 #endif
    198180  , m_duplicateFlag           (false)
    199 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    200181  , m_picDpbOutputDuDelay     (0)
    201 #endif
    202182  , m_numNalusInDuMinus1      (NULL)
    203183  , m_duCpbRemovalDelayMinus1 (NULL)
     
    216196
    217197  UInt  m_picStruct;
    218 #if L0046_RENAME_PROG_SRC_IDC
    219198  UInt  m_sourceScanType;
    220 #else
    221   UInt  m_progressiveSourceIdc;
    222 #endif
    223199  Bool  m_duplicateFlag;
    224200
    225201  UInt  m_auCpbRemovalDelay;
    226202  UInt  m_picDpbOutputDelay;
    227 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    228203  UInt  m_picDpbOutputDuDelay;
    229 #endif
    230204  UInt  m_numDecodingUnitsMinus1;
    231205  Bool  m_duCommonCpbRemovalDelayFlag;
     
    243217    : m_decodingUnitIdx(0)
    244218    , m_duSptCpbRemovalDelay(0)
    245 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    246219    , m_dpbOutputDuDelayPresentFlag(false)
    247220    , m_picSptDpbOutputDuDelay(0)
    248 #endif
    249221  {}
    250222  virtual ~SEIDecodingUnitInfo() {}
    251223  Int m_decodingUnitIdx;
    252224  Int m_duSptCpbRemovalDelay;
    253 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    254225  Bool m_dpbOutputDuDelayPresentFlag;
    255226  Int m_picSptDpbOutputDuDelay;
    256 #endif
    257227};
    258228
     
    293263  Int  m_frame1GridPositionY;
    294264  Int  m_arrangementReservedByte;
    295 #if L0045_PERSISTENCE_FLAGS
    296265  Bool m_arrangementPersistenceFlag;
    297 #else
    298   Int  m_arrangementRepetetionPeriod;
    299 #endif
    300266  Bool m_upsampledAspectRatio;
    301267};
     
    308274  SEIDisplayOrientation()
    309275    : cancelFlag(true)
    310 #if L0045_PERSISTENCE_FLAGS
    311276    , persistenceFlag(0)
    312 #else
    313     , repetitionPeriod(1)
    314 #endif
    315277    , extensionFlag(false)
    316278    {}
     
    322284
    323285  UInt anticlockwiseRotation;
    324 #if L0045_PERSISTENCE_FLAGS
    325286  Bool persistenceFlag;
    326 #else
    327   UInt repetitionPeriod;
    328 #endif
    329287  Bool extensionFlag;
    330288};
     
    373331#endif
    374332
    375 #if L0208_SOP_DESCRIPTION_SEI
    376333class SEISOPDescription : public SEI
    377334{
     
    390347  Int m_sopDescPocDelta[MAX_NUM_PICS_IN_SOP];
    391348};
    392 #endif
    393 
    394 #if J0149_TONE_MAPPING_SEI
     349
    395350class SEIToneMappingInfo : public SEI
    396351{
     
    425380  Int    m_extendedWhiteLevelLumaCodeValue;
    426381};
    427 #endif
    428382
    429383typedef std::list<SEI*> SEIMessages;
     
    438392Void deleteSEIs (SEIMessages &seiList);
    439393
    440 #if K0180_SCALABLE_NESTING_SEI
    441394class SEIScalableNesting : public SEI
    442395{
     
    468421  SEIMessages m_nestedSEIs;
    469422};
    470 #endif
    471423
    472424//! \}
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComBitStream.h

    r191 r302  
    193193  }
    194194
     195  Void        peekPreviousByte( UInt &byte )
     196  {
     197    assert(m_fifo_idx > 0);
     198    byte = (*m_fifo)[m_fifo_idx - 1];
     199  }
     200 
    195201  Void        readOutTrailingBits ();
    196202  UChar getHeldBits  ()          { return m_held_bits;          }
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r291 r302  
    589589  }
    590590
    591   UInt uiTmp = uhWidth*uhHeight;
    592 
    593591  if(getPic()->getPicSym()->getInverseCUOrderMap(getAddr())*m_pcPic->getNumPartInCU()+m_uiAbsIdxInLCU >= getSlice()->getSliceSegmentCurStartCUAddr())
    594592  {
    595593    m_acCUMvField[0].clearMvField();
    596594    m_acCUMvField[1].clearMvField();
    597     uiTmp = uhWidth*uhHeight;
     595    UInt uiTmp = uhWidth*uhHeight;
    598596   
    599597    memset( m_pcTrCoeffY,    0, uiTmp * sizeof( *m_pcTrCoeffY    ) );
     
    794792  m_uiCUPelY           = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ];
    795793 
    796   UInt uiWidth         = g_uiMaxCUWidth  >> uiDepth;
    797   UInt uiHeight        = g_uiMaxCUHeight >> uiDepth;
    798  
    799794  m_skipFlag=pcCU->getSkipFlag()          + uiPart;
    800795
     
    838833  m_apcCUColocated[1] = pcCU->getCUColocated(REF_PIC_LIST_1);
    839834 
    840   UInt uiTmp = uiWidth*uiHeight;
    841835  UInt uiMaxCuWidth=pcCU->getSlice()->getSPS()->getMaxCUWidth();
    842836  UInt uiMaxCuHeight=pcCU->getSlice()->getSPS()->getMaxCUHeight();
     
    850844  m_pcIPCMSampleY = pcCU->getPCMSampleY() + uiCoffOffset;
    851845
    852   uiTmp >>= 2;
    853846  uiCoffOffset >>=2;
    854847  m_pcTrCoeffCb=pcCU->getCoeffCb() + uiCoffOffset;
     
    15771570    return getSlice()->getSliceQp();
    15781571  }
    1579   else
    1580   if ( iLastValidPartIdx >= 0 )
     1572  else if ( iLastValidPartIdx >= 0 )
    15811573  {
    15821574    return getQP( iLastValidPartIdx );
     
    28602852    //>> MTK colocated-RightBottom
    28612853    UInt uiPartIdxRB;
    2862     Int uiLCUIdx = getAddr();
    28632854
    28642855    deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); 
     
    28692860    TComMv cColMv;
    28702861    Int iRefIdx;
     2862    Int uiLCUIdx = -1;
    28712863
    28722864    if      ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() )  // image boundary check
    28732865    {
    2874       uiLCUIdx = -1;
    28752866    }
    28762867    else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() )
    28772868    {
    2878       uiLCUIdx = -1;
    28792869    }
    28802870    else
     
    28892879      {
    28902880        uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ];
    2891         uiLCUIdx = -1 ;
    28922881      }
    28932882      else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU
     
    28992888      {
    29002889        uiAbsPartAddr = 0;
    2901         uiLCUIdx = -1 ;
    29022890      }
    29032891    }
     
    31633151    if (!bAdded)
    31643152    {
    3165       bAdded = xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLB, MD_LEFT );
     3153      xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLB, MD_LEFT );
    31663154    }
    31673155  }
     
    31763164  if(!bAdded)
    31773165  {
    3178     bAdded = xAddMVPCand( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);
     3166    xAddMVPCand( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);
    31793167  }
    31803168  bAdded = bAddedSmvp;
     
    31913179    if(!bAdded)
    31923180    {
    3193       bAdded = xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);
     3181      xAddMVPCandOrder( pInfo, eRefPicList, iRefIdx, uiPartIdxLT, MD_ABOVE_LEFT);
    31943182    }
    31953183  }
     
    32113199    UInt uiAbsPartIdx; 
    32123200    UInt uiAbsPartAddr;
    3213     Int uiLCUIdx = getAddr();
    32143201
    32153202    deriveRightBottomIdx( uiPartIdx, uiPartIdxRB );
     
    32183205    //----  co-located RightBottom Temporal Predictor (H) ---//
    32193206    uiAbsPartIdx = g_auiZscanToRaster[uiPartIdxRB];
     3207    Int uiLCUIdx = -1;
    32203208    if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdx] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() )  // image boundary check
    32213209    {
    3222       uiLCUIdx = -1;
    32233210    }
    32243211    else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdx] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() )
    32253212    {
    3226       uiLCUIdx = -1;
    32273213    }
    32283214    else
     
    32373223      {
    32383224        uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdx + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ];
    3239         uiLCUIdx      = -1 ;
    32403225      }
    32413226      else if ( uiAbsPartIdx / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU
     
    32473232      {
    32483233        uiAbsPartAddr = 0;
    3249         uiLCUIdx      = -1 ;
    32503234      }
    32513235    }
     
    33093293UInt TComDataCU::getIntraSizeIdx(UInt uiAbsPartIdx)
    33103294{
    3311   UInt uiShift = ( (m_puhTrIdx[uiAbsPartIdx]==0) && (m_pePartSize[uiAbsPartIdx]==SIZE_NxN) ) ? m_puhTrIdx[uiAbsPartIdx]+1 : m_puhTrIdx[uiAbsPartIdx];
    3312   uiShift = ( m_pePartSize[uiAbsPartIdx]==SIZE_NxN ? 1 : 0 );
     3295  UInt uiShift = ( m_pePartSize[uiAbsPartIdx]==SIZE_NxN ? 1 : 0 );
    33133296 
    33143297  UChar uiWidth = m_puhWidth[uiAbsPartIdx]>>uiShift;
     
    33963379  }
    33973380 
    3398 #if L0363_MVP_POC
    33993381  if ( pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) >= 0 && m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getPOC() == pcTmpCU->getSlice()->getRefPOC( eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) ))
    3400 #else
    3401   if ( m_pcSlice->isEqualRef(eRefPicList, pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx), iRefIdx) )
    3402 #endif
    34033382  {
    34043383    TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx);
     
    36023581  }
    36033582  iCurrPOC = m_pcSlice->getPOC();   
    3604   iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC();
    36053583  iColPOC = pColCU->getSlice()->getPOC(); 
    36063584
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComLoopFilter.cpp

    r191 r302  
    461461        if ( ((piRefP0==piRefQ0)&&(piRefP1==piRefQ1)) || ((piRefP0==piRefQ1)&&(piRefP1==piRefQ0)) )
    462462        {
    463           uiBs = 0;
    464463          if ( piRefP0 != piRefP1 )   // Different L0 & L1
    465464          {
     
    694693  for ( UInt iIdx = 0; iIdx < uiNumParts; iIdx++ )
    695694  {
    696     ucBs = 0;
    697    
    698695    uiBsAbsIdx = xCalcBsIdx( pcCU, uiAbsZorderIdx, iDir, iEdge, iIdx);
    699696    ucBs = m_aapucBS[iDir][uiBsAbsIdx];
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r282 r302  
    122122Pel TComPrediction::predIntraGetPredValDC( Int* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight, Bool bAbove, Bool bLeft )
    123123{
     124  assert(iWidth > 0 && iHeight > 0);
    124125  Int iInd, iSum = 0;
    125126  Pel pDcVal;
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComRdCost.cpp

    r191 r302  
    485485}
    486486
    487 #if RATE_CONTROL_LAMBDA_DOMAIN
     487#if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT
    488488UInt TComRdCost::getSADPart ( Int bitDepth, Pel* pelCur, Int curStride,  Pel* pelOrg, Int orgStride, UInt width, UInt height )
    489489{
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComRdCost.h

    r191 r302  
    168168#if RATE_CONTROL_LAMBDA_DOMAIN
    169169  Double  getLambda() { return m_dLambda; }
     170#if M0036_RC_IMPROVEMENT
     171  Double  getChromaWeight () {return((m_cbDistortionWeight+m_crDistortionWeight)/2.0);}
     172#endif
    170173#endif
    171174 
     
    264267#endif
    265268
    266 #if RATE_CONTROL_LAMBDA_DOMAIN
     269#if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT
    267270  UInt   getSADPart ( Int bitDepth, Pel* pelCur, Int curStride,  Pel* pelOrg, Int orgStride, UInt width, UInt height );
    268271#endif
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp

    r300 r302  
    6565, m_deblockingFilterBetaOffsetDiv2 ( 0 )
    6666, m_deblockingFilterTcOffsetDiv2   ( 0 )
    67 #if !L0034_COMBINED_LIST_CLEANUP
    68 , m_bRefPicListModificationFlagLC ( false )
    69 , m_bRefPicListCombinationFlag    ( false )
    70 #endif
    7167, m_bCheckLDC                     ( false )
    7268, m_iSliceQpDelta                 ( 0 )
     
    8884#else
    8985, m_dLambda                       ( 0.0 )
    90 #endif
    91 #if !L0034_COMBINED_LIST_CLEANUP
    92 , m_bNoBackPredFlag             ( false )
    9386#endif
    9487, m_uiTLayer                      ( 0 )
     
    119112, m_enableTMVPFlag                ( true )
    120113{
    121 #if L0034_COMBINED_LIST_CLEANUP
    122114  m_aiNumRefIdx[0] = m_aiNumRefIdx[1] = 0;
    123 #else
    124   m_aiNumRefIdx[0] = m_aiNumRefIdx[1] = m_aiNumRefIdx[2] = 0;
    125 #endif
    126115
    127116#if SVC_EXTENSION
     
    148137  initEqualRef();
    149138 
    150 #if L0034_COMBINED_LIST_CLEANUP
    151139  for ( Int idx = 0; idx < MAX_NUM_REF; idx++ )
    152140  {
    153141    m_list1IdxToList0Idx[idx] = -1;
    154142  }
    155 #else
    156   for(Int iNumCount = 0; iNumCount < MAX_NUM_REF_LC; iNumCount++)
    157   {
    158     m_iRefIdxOfLC[REF_PIC_LIST_0][iNumCount]=-1;
    159     m_iRefIdxOfLC[REF_PIC_LIST_1][iNumCount]=-1;
    160     m_eListIdFromIdxOfLC[iNumCount]=0;
    161     m_iRefIdxFromIdxOfLC[iNumCount]=0;
    162     m_iRefIdxOfL0FromRefIdxOfL1[iNumCount] = -1;
    163     m_iRefIdxOfL1FromRefIdxOfL0[iNumCount] = -1;
    164   }   
    165 #endif
    166143  for(Int iNumCount = 0; iNumCount < MAX_NUM_REF; iNumCount++)
    167144  {
     
    210187  m_colRefIdx = 0;
    211188  initEqualRef();
    212 #if !L0034_COMBINED_LIST_CLEANUP
    213   m_bNoBackPredFlag = false;
    214   m_bRefPicListCombinationFlag = false;
    215   m_bRefPicListModificationFlagLC = false;
    216 #endif
    217189  m_bCheckLDC = false;
    218190  m_iSliceQpDeltaCb = 0;
    219191  m_iSliceQpDeltaCr = 0;
    220 
    221 #if !L0034_COMBINED_LIST_CLEANUP
    222   m_aiNumRefIdx[REF_PIC_LIST_C]      = 0;
    223 #endif
    224192
    225193  m_maxNumMergeCand = MRG_MAX_NUM_CANDS;
     
    364332}
    365333
    366 #if L0034_COMBINED_LIST_CLEANUP
    367334Void TComSlice::setList1IdxToList0Idx()
    368335{
     
    381348  }
    382349}
    383 #else
    384 Void TComSlice::generateCombinedList()
    385 {
    386   if(m_aiNumRefIdx[REF_PIC_LIST_C] > 0)
    387   {
    388     m_aiNumRefIdx[REF_PIC_LIST_C]=0;
    389     for(Int iNumCount = 0; iNumCount < MAX_NUM_REF_LC; iNumCount++)
    390     {
    391       m_iRefIdxOfLC[REF_PIC_LIST_0][iNumCount]=-1;
    392       m_iRefIdxOfLC[REF_PIC_LIST_1][iNumCount]=-1;
    393       m_eListIdFromIdxOfLC[iNumCount]=0;
    394       m_iRefIdxFromIdxOfLC[iNumCount]=0;
    395       m_iRefIdxOfL0FromRefIdxOfL1[iNumCount] = -1;
    396       m_iRefIdxOfL1FromRefIdxOfL0[iNumCount] = -1;
    397     }
    398 
    399     for (Int iNumRefIdx = 0; iNumRefIdx < MAX_NUM_REF; iNumRefIdx++)
    400     {
    401       if(iNumRefIdx < m_aiNumRefIdx[REF_PIC_LIST_0])
    402       {
    403         Bool bTempRefIdxInL2 = true;
    404         for ( Int iRefIdxLC = 0; iRefIdxLC < m_aiNumRefIdx[REF_PIC_LIST_C]; iRefIdxLC++ )
    405         {
    406           if ( m_apcRefPicList[REF_PIC_LIST_0][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() )
    407           {
    408             m_iRefIdxOfL1FromRefIdxOfL0[iNumRefIdx] = m_iRefIdxFromIdxOfLC[iRefIdxLC];
    409             m_iRefIdxOfL0FromRefIdxOfL1[m_iRefIdxFromIdxOfLC[iRefIdxLC]] = iNumRefIdx;
    410             bTempRefIdxInL2 = false;
    411             break;
    412           }
    413         }
    414 
    415         if(bTempRefIdxInL2 == true)
    416         {
    417           m_eListIdFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = REF_PIC_LIST_0;
    418           m_iRefIdxFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = iNumRefIdx;
    419           m_iRefIdxOfLC[REF_PIC_LIST_0][iNumRefIdx] = m_aiNumRefIdx[REF_PIC_LIST_C]++;
    420         }
    421       }
    422 
    423       if(iNumRefIdx < m_aiNumRefIdx[REF_PIC_LIST_1])
    424       {
    425         Bool bTempRefIdxInL2 = true;
    426         for ( Int iRefIdxLC = 0; iRefIdxLC < m_aiNumRefIdx[REF_PIC_LIST_C]; iRefIdxLC++ )
    427         {
    428           if ( m_apcRefPicList[REF_PIC_LIST_1][iNumRefIdx]->getPOC() == m_apcRefPicList[m_eListIdFromIdxOfLC[iRefIdxLC]][m_iRefIdxFromIdxOfLC[iRefIdxLC]]->getPOC() )
    429           {
    430             m_iRefIdxOfL0FromRefIdxOfL1[iNumRefIdx] = m_iRefIdxFromIdxOfLC[iRefIdxLC];
    431             m_iRefIdxOfL1FromRefIdxOfL0[m_iRefIdxFromIdxOfLC[iRefIdxLC]] = iNumRefIdx;
    432             bTempRefIdxInL2 = false;
    433             break;
    434           }
    435         }
    436         if(bTempRefIdxInL2 == true)
    437         {
    438           m_eListIdFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = REF_PIC_LIST_1;
    439           m_iRefIdxFromIdxOfLC[m_aiNumRefIdx[REF_PIC_LIST_C]] = iNumRefIdx;
    440           m_iRefIdxOfLC[REF_PIC_LIST_1][iNumRefIdx] = m_aiNumRefIdx[REF_PIC_LIST_C]++;
    441         }
    442       }
    443     }
    444   }
    445 }
    446 #endif
    447350
    448351#if FIX1071
     352#if SVC_EXTENSION
    449353Void TComSlice::setRefPicList( TComList<TComPic*>& rcListPic, Bool checkNumPocTotalCurr, TComPic** ilpPic)
     354#else
     355Void TComSlice::setRefPicList( TComList<TComPic*>& rcListPic, Bool checkNumPocTotalCurr )
     356#endif
    450357#else
    451358Void TComSlice::setRefPicList( TComList<TComPic*>& rcListPic )
     
    456363#endif
    457364  {
    458     if( m_eSliceType == I_SLICE )
     365    if (m_eSliceType == I_SLICE)
    459366    {
    460367      ::memset( m_apcRefPicList, 0, sizeof (m_apcRefPicList));
    461368      ::memset( m_aiNumRefIdx,   0, sizeof ( m_aiNumRefIdx ));
     369     
    462370      return;
    463371    }
     
    672580    }
    673581   
    674     assert(numPocTotalCurr != 0);
     582    assert(numPocTotalCurr > 0);
    675583   
    676584    m_aiNumRefIdx[0] = getNumRefIdx(REF_PIC_LIST_0);
     
    699607    {
    700608      rpsCurrList0[cIdx] = RefPicSetLtCurr[i];
    701     }
     609    }   
     610
    702611#if REF_IDX_FRAMEWORK
    703612    if( m_layerId > 0 )
     
    718627    }
    719628#endif
     629  assert(cIdx == numPocTotalCurr);
     630
    720631  if (m_eSliceType==B_SLICE)
    721632  {
     
    732643    {
    733644      rpsCurrList1[cIdx] = RefPicSetLtCurr[i];
    734     }
     645    }   
     646
    735647#if REF_IDX_FRAMEWORK
    736648    if( m_layerId > 0 )
     
    751663    }
    752664#endif
     665
     666    assert(cIdx == numPocTotalCurr);
    753667  }
    754668
    755669  ::memset(m_bIsUsedAsLongTerm, 0, sizeof(m_bIsUsedAsLongTerm));
    756670
    757   for (Int rIdx = 0; rIdx <= (m_aiNumRefIdx[0]-1); rIdx ++)
    758   {
    759     m_apcRefPicList[0][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL0() ? rpsCurrList0[ m_RefPicListModification.getRefPicSetIdxL0(rIdx) ] : rpsCurrList0[rIdx % numPocTotalCurr];
    760     m_bIsUsedAsLongTerm[0][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL0() ? (m_RefPicListModification.getRefPicSetIdxL0(rIdx) >= (NumPocStCurr0 + NumPocStCurr1))
    761                                   : ((rIdx % numPocTotalCurr) >= (NumPocStCurr0 + NumPocStCurr1));
    762   }
    763   if ( m_eSliceType == P_SLICE )
     671  for (Int rIdx = 0; rIdx < m_aiNumRefIdx[0]; rIdx ++)
     672  {
     673    cIdx = m_RefPicListModification.getRefPicListModificationFlagL0() ? m_RefPicListModification.getRefPicSetIdxL0(rIdx) : rIdx % numPocTotalCurr;
     674    assert(cIdx >= 0 && cIdx < numPocTotalCurr);
     675    m_apcRefPicList[0][rIdx] = rpsCurrList0[ cIdx ];
     676    m_bIsUsedAsLongTerm[0][rIdx] = ( cIdx >= NumPocStCurr0 + NumPocStCurr1 );
     677  }
     678  if ( m_eSliceType != B_SLICE )
    764679  {
    765680    m_aiNumRefIdx[1] = 0;
     
    768683  else
    769684  {
    770     for (Int rIdx = 0; rIdx <= (m_aiNumRefIdx[1]-1); rIdx ++)
    771     {
    772       m_apcRefPicList[1][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL1() ? rpsCurrList1[ m_RefPicListModification.getRefPicSetIdxL1(rIdx) ] : rpsCurrList1[rIdx % numPocTotalCurr];
    773       m_bIsUsedAsLongTerm[1][rIdx] = m_RefPicListModification.getRefPicListModificationFlagL1() ?
    774                                   (m_RefPicListModification.getRefPicSetIdxL1(rIdx) >= (NumPocStCurr0 + NumPocStCurr1)): ((rIdx % numPocTotalCurr) >= (NumPocStCurr0 + NumPocStCurr1));
     685    for (Int rIdx = 0; rIdx < m_aiNumRefIdx[1]; rIdx ++)
     686    {
     687      cIdx = m_RefPicListModification.getRefPicListModificationFlagL1() ? m_RefPicListModification.getRefPicSetIdxL1(rIdx) : rIdx % numPocTotalCurr;
     688      assert(cIdx >= 0 && cIdx < numPocTotalCurr);
     689      m_apcRefPicList[1][rIdx] = rpsCurrList1[ cIdx ];
     690      m_bIsUsedAsLongTerm[1][rIdx] = ( cIdx >= NumPocStCurr0 + NumPocStCurr1 );
    775691    }
    776692  }
     
    1071987  m_deblockingFilterTcOffsetDiv2 = pSrc->m_deblockingFilterTcOffsetDiv2;
    1072988 
    1073 #if L0034_COMBINED_LIST_CLEANUP
    1074989  for (i = 0; i < 2; i++)
    1075 #else
    1076   for (i = 0; i < 3; i++)
    1077 #endif
    1078990  {
    1079991    m_aiNumRefIdx[i]     = pSrc->m_aiNumRefIdx[i];
    1080992  }
    1081993
    1082 #if L0034_COMBINED_LIST_CLEANUP
    1083994  for (i = 0; i < MAX_NUM_REF; i++)
    1084995  {
    1085996    m_list1IdxToList0Idx[i] = pSrc->m_list1IdxToList0Idx[i];
    1086997  }
    1087 #else
    1088   for (i = 0; i < 2; i++)
    1089   {
    1090     for (j = 0; j < MAX_NUM_REF_LC; j++)
    1091     {
    1092        m_iRefIdxOfLC[i][j]  = pSrc->m_iRefIdxOfLC[i][j];
    1093     }
    1094   }
    1095   for (i = 0; i < MAX_NUM_REF_LC; i++)
    1096   {
    1097     m_eListIdFromIdxOfLC[i] = pSrc->m_eListIdFromIdxOfLC[i];
    1098     m_iRefIdxFromIdxOfLC[i] = pSrc->m_iRefIdxFromIdxOfLC[i];
    1099     m_iRefIdxOfL1FromRefIdxOfL0[i] = pSrc->m_iRefIdxOfL1FromRefIdxOfL0[i];
    1100     m_iRefIdxOfL0FromRefIdxOfL1[i] = pSrc->m_iRefIdxOfL0FromRefIdxOfL1[i];
    1101   }
    1102   m_bRefPicListModificationFlagLC = pSrc->m_bRefPicListModificationFlagLC;
    1103   m_bRefPicListCombinationFlag    = pSrc->m_bRefPicListCombinationFlag;
    1104 #endif
    1105998  m_bCheckLDC             = pSrc->m_bCheckLDC;
    1106999  m_iSliceQpDelta        = pSrc->m_iSliceQpDelta;
     
    11641057  }
    11651058
    1166 #if !L0034_COMBINED_LIST_CLEANUP
    1167   m_bNoBackPredFlag      = pSrc->m_bNoBackPredFlag;
    1168 #endif
    11691059  m_uiTLayer                      = pSrc->m_uiTLayer;
    11701060  m_bTLayerSwitchingFlag          = pSrc->m_bTLayerSwitchingFlag;
     
    14711361/** Function for constructing an explicit Reference Picture Set out of the available pictures in a referenced Reference Picture Set
    14721362*/
     1363#if FIX1071
     1364Void TComSlice::createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool isRAP)
     1365#else
    14731366Void TComSlice::createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet)
     1367#endif
    14741368{
    14751369  TComPic* rpcPic;
     
    14961390        // and should be added to the explicit Reference Picture Set
    14971391        pcRPS->setDeltaPOC(k, pReferencePictureSet->getDeltaPOC(i));
     1392#if FIX1071
     1393        pcRPS->setUsed(k, pReferencePictureSet->getUsed(i) && (!isRAP));
     1394#else
    14981395        pcRPS->setUsed(k, pReferencePictureSet->getUsed(i));
     1396#endif
    14991397        if(pcRPS->getDeltaPOC(k) < 0)
    15001398        {
     
    16741572  {
    16751573    m_numReorderPics[i] = 0;
    1676 #if L0323_DPB
    16771574    m_uiMaxDecPicBuffering[i] = 1;
    1678 #else
    1679     m_uiMaxDecPicBuffering[i] = 0;
    1680 #endif
    16811575    m_uiMaxLatencyIncrease[i] = 0;
    16821576  }
     
    17861680, m_pcmLog2MaxSize            (  5)
    17871681, m_uiPCMLog2MinSize          (  7)
    1788 #if !L0034_COMBINED_LIST_CLEANUP
    1789 , m_bUseLComb                 (false)
    1790 #endif
    17911682, m_bitDepthY                 (  8)
    17921683, m_bitDepthC                 (  8)
     
    18201711  {
    18211712    m_uiMaxLatencyIncrease[i] = 0;
    1822 #if L0323_DPB
    18231713    m_uiMaxDecPicBuffering[i] = 1;
    1824 #else
    1825     m_uiMaxDecPicBuffering[i] = 0;
    1826 #endif
    18271714    m_numReorderPics[i]       = 0;
    18281715  }
     
    18621749  TComHRD *hrd = vui->getHrdParameters();
    18631750
    1864 #if L0043_TIMING_INFO
    18651751  TimingInfo *timingInfo = vui->getTimingInfo();
    18661752  timingInfo->setTimingInfoPresentFlag( true );
     
    18861772    break;
    18871773  }
    1888 #else
    1889   hrd->setTimingInfoPresentFlag( true );
    1890   switch( frameRate )
    1891   {
    1892   case 24:
    1893     hrd->setNumUnitsInTick( 1125000 );    hrd->setTimeScale    ( 27000000 );
    1894     break;
    1895   case 25:
    1896     hrd->setNumUnitsInTick( 1080000 );    hrd->setTimeScale    ( 27000000 );
    1897     break;
    1898   case 30:
    1899     hrd->setNumUnitsInTick( 900900 );     hrd->setTimeScale    ( 27000000 );
    1900     break;
    1901   case 50:
    1902     hrd->setNumUnitsInTick( 540000 );     hrd->setTimeScale    ( 27000000 );
    1903     break;
    1904   case 60:
    1905     hrd->setNumUnitsInTick( 450450 );     hrd->setTimeScale    ( 27000000 );
    1906     break;
    1907   default:
    1908     hrd->setNumUnitsInTick( 1001 );       hrd->setTimeScale    ( 60000 );
    1909     break;
    1910   }
    1911 #endif
    19121774
    19131775  Bool rateCnt = ( bitRate > 0 );
     
    19221784    hrd->setDuCpbRemovalDelayLengthMinus1( 7 );                    // 8-bit precision ( plus 1 for last DU in AU )
    19231785    hrd->setSubPicCpbParamsInPicTimingSEIFlag( true );
    1924 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    19251786    hrd->setDpbOutputDelayDuLengthMinus1( 5 + 7 );                 // With sub-clock tick factor of 100, at least 7 bits to have the same value as AU dpb delay
    1926 #endif
    19271787  }
    19281788  else
     
    19531813  UInt birateValue, cpbSizeValue;
    19541814  UInt ducpbSizeValue;
    1955 #if L0363_DU_BIT_RATE
    19561815  UInt duBitRateValue = 0;
    1957 #endif
    19581816
    19591817  for( i = 0; i < MAX_TLAYER; i ++ )
     
    19671825    cpbSizeValue = bitRate;                                     // 1 second
    19681826    ducpbSizeValue = bitRate/numDU;
    1969 #if L0363_DU_BIT_RATE
    19701827    duBitRateValue = bitRate;
    1971 #endif
    19721828    for( j = 0; j < ( hrd->getCpbCntMinus1( i ) + 1 ); j ++ )
    19731829    {
     
    19801836      hrd->setCpbSizeValueMinus1( i, j, 1, ( cpbSizeValue - 1 ) );
    19811837      hrd->setDuCpbSizeValueMinus1( i, j, 1, ( ducpbSizeValue - 1 ) );
    1982 #if L0363_DU_BIT_RATE
    19831838      hrd->setDuBitRateValueMinus1( i, j, 1, ( duBitRateValue - 1 ) );
    1984 #endif
    19851839      hrd->setCbrFlag( i, j, 1, ( j == 0 ) );
    19861840    }
     
    25592413  , m_profileIdc      (0)
    25602414  , m_levelIdc        (0)
    2561 #if L0046_CONSTRAINT_FLAGS
    25622415, m_progressiveSourceFlag  (false)
    25632416, m_interlacedSourceFlag   (false)
    25642417, m_nonPackedConstraintFlag(false)
    25652418, m_frameOnlyConstraintFlag(false)
    2566 #endif
    25672419{
    25682420  ::memset(m_profileCompatibilityFlag, 0, sizeof(m_profileCompatibilityFlag));
     
    25952447  // Copy all information related to general profile
    25962448  this->getGeneralPTL()->copyProfileInfo(ptl->getGeneralPTL());
    2597 }
    2598 #endif
    2599 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    2600 TComBitRatePicRateInfo::TComBitRatePicRateInfo()
    2601 {
    2602   ::memset(m_bitRateInfoPresentFlag, 0, sizeof(m_bitRateInfoPresentFlag));
    2603   ::memset(m_picRateInfoPresentFlag, 0, sizeof(m_picRateInfoPresentFlag));
    2604   ::memset(m_avgBitRate,             0, sizeof(m_avgBitRate));
    2605   ::memset(m_maxBitRate,             0, sizeof(m_maxBitRate));
    2606   ::memset(m_constantPicRateIdc,     0, sizeof(m_constantPicRateIdc));
    2607   ::memset(m_avgPicRate,             0, sizeof(m_avgPicRate));
    26082449}
    26092450#endif
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h

    r300 r302  
    191191  Int     m_levelIdc;
    192192
    193 #if L0046_CONSTRAINT_FLAGS
    194193  Bool m_progressiveSourceFlag;
    195194  Bool m_interlacedSourceFlag;
    196195  Bool m_nonPackedConstraintFlag;
    197196  Bool m_frameOnlyConstraintFlag;
    198 #endif
    199197 
    200198public:
     
    216214  Void  setLevelIdc(Int x)      { m_levelIdc = x; }
    217215 
    218 #if L0046_CONSTRAINT_FLAGS
    219216  Bool getProgressiveSourceFlag() const { return m_progressiveSourceFlag; }
    220217  Void setProgressiveSourceFlag(Bool b) { m_progressiveSourceFlag = b; }
     
    228225  Bool getFrameOnlyConstraintFlag() const { return m_frameOnlyConstraintFlag; }
    229226  Void setFrameOnlyConstraintFlag(Bool b) { m_frameOnlyConstraintFlag = b; }
    230 #endif
    231227#if VPS_EXTN_PROFILE_INFO
    232228  Void copyProfileInfo(ProfileTierLevel *ptl);
     
    257253};
    258254/// VPS class
    259 
    260 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    261 class TComBitRatePicRateInfo
    262 {
    263   Bool        m_bitRateInfoPresentFlag[MAX_TLAYER];
    264   Bool        m_picRateInfoPresentFlag[MAX_TLAYER];
    265   Int         m_avgBitRate[MAX_TLAYER];
    266   Int         m_maxBitRate[MAX_TLAYER];
    267   Int         m_constantPicRateIdc[MAX_TLAYER];
    268   Int         m_avgPicRate[MAX_TLAYER];
    269 public:
    270   TComBitRatePicRateInfo();
    271   Bool        getBitRateInfoPresentFlag(Int i) {return m_bitRateInfoPresentFlag[i];}
    272   Void        setBitRateInfoPresentFlag(Int i, Bool x) {m_bitRateInfoPresentFlag[i] = x;}
    273 
    274   Bool        getPicRateInfoPresentFlag(Int i) {return m_picRateInfoPresentFlag[i];}
    275   Void        setPicRateInfoPresentFlag(Int i, Bool x) {m_picRateInfoPresentFlag[i] = x;}
    276 
    277   Int         getAvgBitRate(Int i) {return m_avgBitRate[i];}
    278   Void        setAvgBitRate(Int i, Int x) {m_avgBitRate[i] = x;}
    279 
    280   Int         getMaxBitRate(Int i) {return m_maxBitRate[i];}
    281   Void        setMaxBitRate(Int i, Int x) {m_maxBitRate[i] = x;}
    282 
    283   Int         getConstantPicRateIdc(Int i) {return m_constantPicRateIdc[i];}
    284   Void        setConstantPicRateIdc(Int i, Int x) {m_constantPicRateIdc[i] = x;}
    285 
    286   Int         getAvgPicRate(Int i) {return m_avgPicRate[i];}
    287   Void        setAvgPicRate(Int i, Int x) {m_avgPicRate[i] = x;}
    288 };
    289 #endif
    290255
    291256struct HrdSubLayerInfo
     
    300265  UInt ducpbSizeValue    [MAX_CPB_CNT][2];
    301266  UInt cbrFlag           [MAX_CPB_CNT][2];
    302 #if L0363_DU_BIT_RATE
    303267  UInt duBitRateValue    [MAX_CPB_CNT][2];
    304 #endif
    305268};
    306269
     
    308271{
    309272private:
    310 #if !L0043_TIMING_INFO
    311   Bool m_timingInfoPresentFlag;
    312   UInt m_numUnitsInTick;
    313   UInt m_timeScale;
    314 #endif
    315273  Bool m_nalHrdParametersPresentFlag;
    316274  Bool m_vclHrdParametersPresentFlag;
     
    319277  UInt m_duCpbRemovalDelayLengthMinus1;
    320278  Bool m_subPicCpbParamsInPicTimingSEIFlag;
    321 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    322279  UInt m_dpbOutputDelayDuLengthMinus1;
    323 #endif
    324280  UInt m_bitRateScale;
    325281  UInt m_cpbSizeScale;
     
    333289public:
    334290  TComHRD()
    335 #if !L0043_TIMING_INFO
    336   :m_timingInfoPresentFlag(false)
    337   ,m_numUnitsInTick(1001)
    338   ,m_timeScale(60000)
    339   ,m_nalHrdParametersPresentFlag(0)
    340 #else
    341291  :m_nalHrdParametersPresentFlag(0)
    342 #endif
    343292  ,m_vclHrdParametersPresentFlag(0)
    344293  ,m_subPicCpbParamsPresentFlag(false)
     
    346295  ,m_duCpbRemovalDelayLengthMinus1(0)
    347296  ,m_subPicCpbParamsInPicTimingSEIFlag(false)
    348 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    349297  ,m_dpbOutputDelayDuLengthMinus1(0)
    350 #endif
    351298  ,m_bitRateScale(0)
    352299  ,m_cpbSizeScale(0)
     
    357304
    358305  virtual ~TComHRD() {}
    359 #if !L0043_TIMING_INFO
    360   Void setTimingInfoPresentFlag             ( Bool flag )  { m_timingInfoPresentFlag = flag;               }
    361   Bool getTimingInfoPresentFlag             ( )            { return m_timingInfoPresentFlag;               }
    362 
    363   Void setNumUnitsInTick                    ( UInt value ) { m_numUnitsInTick = value;                     }
    364   UInt getNumUnitsInTick                    ( )            { return m_numUnitsInTick;                      }
    365 
    366   Void setTimeScale                         ( UInt value ) { m_timeScale = value;                          }
    367   UInt getTimeScale                         ( )            { return m_timeScale;                           }
    368 #endif
    369306
    370307  Void setNalHrdParametersPresentFlag       ( Bool flag )  { m_nalHrdParametersPresentFlag = flag;         }
     
    386323  Bool getSubPicCpbParamsInPicTimingSEIFlag ()             { return m_subPicCpbParamsInPicTimingSEIFlag;   }
    387324
    388 #if L0044_DU_DPB_OUTPUT_DELAY_HRD
    389325  Void setDpbOutputDelayDuLengthMinus1      (UInt value )  { m_dpbOutputDelayDuLengthMinus1 = value;       }
    390326  UInt getDpbOutputDelayDuLengthMinus1      ()             { return m_dpbOutputDelayDuLengthMinus1;        }
    391 #endif
    392327
    393328  Void setBitRateScale                      ( UInt value ) { m_bitRateScale = value;                       }
     
    430365  Void setDuCpbSizeValueMinus1     ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].ducpbSizeValue[cpbcnt][nalOrVcl] = value;       }
    431366  UInt getDuCpbSizeValueMinus1     ( Int layer, Int cpbcnt, Int nalOrVcl            )  { return m_HRD[layer].ducpbSizeValue[cpbcnt][nalOrVcl];        }
    432 #if L0363_DU_BIT_RATE
    433367  Void setDuBitRateValueMinus1     ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].duBitRateValue[cpbcnt][nalOrVcl] = value;       }
    434368  UInt getDuBitRateValueMinus1     (Int layer, Int cpbcnt, Int nalOrVcl )              { return m_HRD[layer].duBitRateValue[cpbcnt][nalOrVcl];        }
    435 #endif
    436369  Void setCbrFlag                ( Int layer, Int cpbcnt, Int nalOrVcl, UInt value ) { m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl] = value;            }
    437370  Bool getCbrFlag                ( Int layer, Int cpbcnt, Int nalOrVcl             ) { return m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl];             }
     
    439372  Void setNumDU                              ( UInt value ) { m_numDU = value;                            }
    440373  UInt getNumDU                              ( )            { return m_numDU;          }
    441 #if L0045_CONDITION_SIGNALLING
    442374  Bool getCpbDpbDelaysPresentFlag() { return getNalHrdParametersPresentFlag() || getVclHrdParametersPresentFlag(); }
    443 #endif
    444375};
    445376
    446 #if L0043_TIMING_INFO
    447377class TimingInfo
    448378{
     
    475405  Void setNumTicksPocDiffOneMinus1          (Int x       ) { m_numTicksPocDiffOneMinus1 = x;               }
    476406};
    477 #endif
    478407
    479408class TComVPS
     
    487416  UInt        m_numReorderPics[MAX_TLAYER];
    488417  UInt        m_uiMaxDecPicBuffering[MAX_TLAYER];
    489   UInt        m_uiMaxLatencyIncrease[MAX_TLAYER];
     418  UInt        m_uiMaxLatencyIncrease[MAX_TLAYER]; // Really max latency increase plus 1 (value 0 expresses no limit)
    490419
    491420  UInt        m_numHrdParameters;
     
    509438#endif
    510439  TComPTL     m_pcPTL;
    511 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    512   TComBitRatePicRateInfo    m_bitRatePicRateInfo;
    513 #endif
    514 #if L0043_TIMING_INFO
    515440  TimingInfo  m_timingInfo;
    516 #endif
    517441
    518442  // ------------------------------------------
     
    636560#endif
    637561  TComPTL* getPTL() { return &m_pcPTL; }
    638 #if SIGNAL_BITRATE_PICRATE_IN_VPS
    639   TComBitRatePicRateInfo *getBitratePicrateInfo() { return &m_bitRatePicRateInfo; }
    640 #endif
    641 #if L0043_TIMING_INFO
    642562  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    643 #endif
    644563#if VPS_EXTN_MASK_AND_DIM_INFO
    645564  Bool   getAvcBaseLayerFlag()                                  { return m_avcBaseLayerFlag;       }
     
    814733  Int  m_log2MaxMvLengthVertical;
    815734  TComHRD m_hrdParameters;
    816 #if L0043_TIMING_INFO
    817735  TimingInfo m_timingInfo;
    818 #else
    819   Bool m_pocProportionalToTimingFlag;
    820   Int  m_numTicksPocDiffOneMinus1;
    821 #endif
    822736#if M0464_TILE_BOUNDARY_ALIGNED_FLAG
    823737  Bool m_tileBoundariesAlignedFlag;
     
    856770    ,m_log2MaxMvLengthHorizontal(15)
    857771    ,m_log2MaxMvLengthVertical(15)
    858 #if !L0043_TIMING_INFO 
    859     ,m_pocProportionalToTimingFlag(false)
    860     ,m_numTicksPocDiffOneMinus1(0)
    861 #endif
    862772#if M0464_TILE_BOUNDARY_ALIGNED_FLAG
    863773    ,m_tileBoundariesAlignedFlag(true)
     
    957867
    958868  TComHRD* getHrdParameters                 ()             { return &m_hrdParameters; }
    959 #if L0043_TIMING_INFO
    960869  TimingInfo* getTimingInfo() { return &m_timingInfo; }
    961 #else
    962   Bool getPocProportionalToTimingFlag() {return m_pocProportionalToTimingFlag; }
    963   Void setPocProportionalToTimingFlag(Bool x) {m_pocProportionalToTimingFlag = x;}
    964   Int  getNumTicksPocDiffOneMinus1() {return m_numTicksPocDiffOneMinus1;}
    965   Void setNumTicksPocDiffOneMinus1(Int x) { m_numTicksPocDiffOneMinus1 = x;}
    966 #endif
    967870#if M0464_TILE_BOUNDARY_ALIGNED_FLAG
    968871  Bool getTileBoundariesAlignedFlag(  ) { return m_tileBoundariesAlignedFlag; }
     
    1008911  Bool        m_useAMP;
    1009912
    1010 #if !L0034_COMBINED_LIST_CLEANUP
    1011   Bool        m_bUseLComb;
    1012 #endif
    1013  
    1014913  // Parameter
    1015914  Int         m_bitDepthY;
     
    1040939  TComScalingList*     m_scalingList;   //!< ScalingList class pointer
    1041940  UInt        m_uiMaxDecPicBuffering[MAX_TLAYER];
    1042   UInt        m_uiMaxLatencyIncrease[MAX_TLAYER];
     941  UInt        m_uiMaxLatencyIncrease[MAX_TLAYER];  // Really max latency increase plus 1 (value 0 expresses no limit)
    1043942
    1044943  Bool        m_useDF;
     
    11461045 
    11471046  // Tool list
    1148 #if !L0034_COMBINED_LIST_CLEANUP
    1149   Void setUseLComb    (Bool b)   { m_bUseLComb = b;         }
    1150   Bool getUseLComb    ()         { return m_bUseLComb;      }
    1151 #endif
    1152 
    11531047  Bool getUseLossless ()         { return m_useLossless; }
    11541048  Void setUseLossless ( Bool b ) { m_useLossless  = b; }
     
    15041398  Bool        m_interLayerSamplePredOnlyFlag;
    15051399#endif
    1506 #if L0034_COMBINED_LIST_CLEANUP
    15071400  Int         m_list1IdxToList0Idx[MAX_NUM_REF];
    15081401  Int         m_aiNumRefIdx   [2];    //  for multiple reference of current slice
    1509 #else
    1510   Int         m_aiNumRefIdx   [3];    //  for multiple reference of current slice
    1511   Int         m_iRefIdxOfLC[2][MAX_NUM_REF_LC];
    1512   Int         m_eListIdFromIdxOfLC[MAX_NUM_REF_LC];
    1513   Int         m_iRefIdxFromIdxOfLC[MAX_NUM_REF_LC];
    1514   Int         m_iRefIdxOfL1FromRefIdxOfL0[MAX_NUM_REF_LC];
    1515   Int         m_iRefIdxOfL0FromRefIdxOfL1[MAX_NUM_REF_LC];
    1516   Bool        m_bRefPicListModificationFlagLC;
    1517   Bool        m_bRefPicListCombinationFlag;
    1518 #endif
    15191402
    15201403  Bool        m_bCheckLDC;
     
    15581441
    15591442  Bool        m_abEqualRef  [2][MAX_NUM_REF][MAX_NUM_REF];
    1560 #if !L0034_COMBINED_LIST_CLEANUP
    1561   Bool        m_bNoBackPredFlag;
    1562 #endif
    15631443  UInt        m_uiTLayer;
    15641444#if SVC_EXTENSION
     
    16801560  Bool      getMvdL1ZeroFlag ()                                  { return m_bLMvdL1Zero;    }
    16811561  Int       getNumRpsCurrTempList();
    1682 #if L0034_COMBINED_LIST_CLEANUP
    16831562  Int       getList1IdxToList0Idx ( Int list1Idx )               { return m_list1IdxToList0Idx[list1Idx]; }
    1684 #else
    1685   Int       getRefIdxOfLC       (RefPicList e, Int iRefIdx)     { return m_iRefIdxOfLC[e][iRefIdx];           }
    1686   Int       getListIdFromIdxOfLC(Int iRefIdx)                   { return m_eListIdFromIdxOfLC[iRefIdx];       }
    1687   Int       getRefIdxFromIdxOfLC(Int iRefIdx)                   { return m_iRefIdxFromIdxOfLC[iRefIdx];       }
    1688   Int       getRefIdxOfL0FromRefIdxOfL1(Int iRefIdx)            { return m_iRefIdxOfL0FromRefIdxOfL1[iRefIdx];}
    1689   Int       getRefIdxOfL1FromRefIdxOfL0(Int iRefIdx)            { return m_iRefIdxOfL1FromRefIdxOfL0[iRefIdx];}
    1690   Bool      getRefPicListModificationFlagLC()                   {return m_bRefPicListModificationFlagLC;}
    1691   Void      setRefPicListModificationFlagLC(Bool bflag)         {m_bRefPicListModificationFlagLC=bflag;}     
    1692   Bool      getRefPicListCombinationFlag()                      {return m_bRefPicListCombinationFlag;}
    1693   Void      setRefPicListCombinationFlag(Bool bflag)            {m_bRefPicListCombinationFlag=bflag;}   
    1694 #endif
    16951563  Void      setReferenced(Bool b)                               { m_bRefenced = b; }
    16961564  Bool      isReferenced()                                      { return m_bRefenced; }
     
    17331601
    17341602#if FIX1071
     1603#if SVC_EXTENSION
    17351604  Void      setRefPicList       ( TComList<TComPic*>& rcListPic, Bool checkNumPocTotalCurr = false, TComPic** ilpPic = NULL );
     1605#else
     1606  Void      setRefPicList       ( TComList<TComPic*>& rcListPic, Bool checkNumPocTotalCurr = false );
     1607#endif
    17361608#else
    17371609  Void      setRefPicList       ( TComList<TComPic*>& rcListPic );
     
    17691641 
    17701642  static Void      sortPicList         ( TComList<TComPic*>& rcListPic );
    1771 #if L0034_COMBINED_LIST_CLEANUP
    17721643  Void setList1IdxToList0Idx();
    1773 #else
    1774   Bool getNoBackPredFlag() { return m_bNoBackPredFlag; }
    1775   Void setNoBackPredFlag( Bool b ) { m_bNoBackPredFlag = b; }
    1776   Void generateCombinedList       ();
    1777 #endif
    17781644
    17791645  UInt getTLayer             ()                            { return m_uiTLayer;                      }
     
    17861652  Bool isStepwiseTemporalLayerSwitchingPointCandidate( TComList<TComPic*>& rcListPic );
    17871653  Int       checkThatAllRefPicsAreAvailable( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool printErrors, Int pocRandomAccess = 0);
     1654#if FIX1071
     1655  Void      createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet, Bool isRAP);
     1656#else
    17881657  Void      createExplicitReferencePictureSetFromReference( TComList<TComPic*>& rcListPic, TComReferencePictureSet *pReferencePictureSet);
     1658#endif
    17891659
    17901660  Void setMaxNumMergeCand               (UInt val )         { m_maxNumMergeCand = val;                    }
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComTrQuant.cpp

    r191 r302  
    10751075    Int iTransformShift = MAX_TR_DYNAMIC_RANGE - uiBitDepth - uiLog2TrSize;  // Represents scaling through forward transform
    10761076
    1077     Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift;                // Right shift of non-RDOQ quantizer;  level = (coeff*uiQ + offset)>>q_bits
    1078 
    1079     iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9);
    1080 
    10811077#if ADAPTIVE_QP_SELECTION
    1082     iQBits = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift;
     1078    Int iQBits = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift;
    10831079    iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9);
    10841080    Int iQBitsC = QUANT_SHIFT + cQpBase.m_iPer + iTransformShift - ARL_C_PRECISION; 
    10851081    Int iAddC   = 1 << (iQBitsC-1);
     1082#else
     1083    Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift;                // Right shift of non-RDOQ quantizer;  level = (coeff*uiQ + offset)>>q_bits
     1084    iAdd = (pcCU->getSlice()->getSliceType()==I_SLICE ? 171 : 85) << (iQBits-9);
    10861085#endif
    10871086
     
    13641363#else
    13651364  Int j;
    1366   {
    1367     Short block[ 64 * 64 ];
    1368     Short coeff[ 64 * 64 ];
    1369     {
    1370       for (j = 0; j < iHeight; j++)
    1371       {   
    1372         memcpy( block + j * iWidth, piBlkResi + j * uiStride, iWidth * sizeof( Short ) );
    1373       }
    1374     }
    1375     xTrMxN(bitDepth, block, coeff, iWidth, iHeight, uiMode );
    1376     for ( j = 0; j < iHeight * iWidth; j++ )
    1377     {   
    1378       psCoeff[ j ] = coeff[ j ];
    1379     }
    1380     return ;
     1365  Short block[ 32 * 32 ];
     1366  Short coeff[ 32 * 32 ];
     1367  for (j = 0; j < iHeight; j++)
     1368  {   
     1369    memcpy( block + j * iWidth, piBlkResi + j * uiStride, iWidth * sizeof( Short ) );
     1370  }
     1371  xTrMxN(bitDepth, block, coeff, iWidth, iHeight, uiMode );
     1372  for ( j = 0; j < iHeight * iWidth; j++ )
     1373  {   
     1374    psCoeff[ j ] = coeff[ j ];
    13811375  }
    13821376#endif 
     
    13991393  Int j;
    14001394  {
    1401     Short block[ 64 * 64 ];
    1402     Short coeff[ 64 * 64 ];
     1395    Short block[ 32 * 32 ];
     1396    Short coeff[ 32 * 32 ];
    14031397    for ( j = 0; j < iHeight * iWidth; j++ )
    14041398    {   
     
    15221516                                                      UInt                            uiAbsPartIdx )
    15231517{
    1524   Int    iQBits      = m_cQP.m_iBits;
    1525   Double dTemp       = 0;
    15261518  UInt uiLog2TrSize = g_aucConvertToBit[ uiWidth ] + 2;
    1527   Int uiQ = g_quantScales[m_cQP.rem()];
    15281519 
    15291520  UInt uiBitDepth = eTType == TEXT_LUMA ? g_bitDepthY : g_bitDepthC;
     
    15361527  assert(scalingListType < 6);
    15371528 
    1538   iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift;                   // Right shift of non-RDOQ quantizer;  level = (coeff*uiQ + offset)>>q_bits
    1539   Double dErrScale   = 0;
     1529  Int iQBits = QUANT_SHIFT + m_cQP.m_iPer + iTransformShift;                   // Right shift of non-RDOQ quantizer;  level = (coeff*uiQ + offset)>>q_bits
    15401530  Double *pdErrScaleOrg = getErrScaleCoeff(scalingListType,uiLog2TrSize-2,m_cQP.m_iRem);
    15411531  Int *piQCoefOrg = getQuantCoeff(scalingListType,m_cQP.m_iRem,uiLog2TrSize-2);
     
    15891579  Double  d64BaseCost         = 0;
    15901580  Int     iLastScanPos        = -1;
    1591   dTemp                       = dErrScale;
    15921581 
    15931582  UInt    c1Idx     = 0;
     
    16181607      UInt    uiBlkPos          = scan[iScanPos];
    16191608      // set coeff
    1620       uiQ  = piQCoef[uiBlkPos];
    1621       dTemp = pdErrScale[uiBlkPos];
     1609      Int uiQ  = piQCoef[uiBlkPos];
     1610      Double dTemp = pdErrScale[uiBlkPos];
    16221611      Int lLevelDouble          = plSrcCoeff[ uiBlkPos ];
    16231612      lLevelDouble              = (Int)min<Int64>((Int64)abs((Int)lLevelDouble) * uiQ , MAX_INT - (1 << (iQBits - 1)));
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComWeightPrediction.cpp

    r191 r302  
    271271Void TComWeightPrediction::getWpScaling( TComDataCU* pcCU, Int iRefIdx0, Int iRefIdx1, wpScalingParam *&wp0, wpScalingParam *&wp1)
    272272{
     273  assert(iRefIdx0 >= 0 || iRefIdx1 >= 0);
     274 
    273275  TComSlice*      pcSlice       = pcCU->getSlice();
    274276  TComPPS*        pps           = pcCU->getSlice()->getPPS();
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h

    r300 r302  
    4444
    4545#if SVC_EXTENSION
     46#define MAX_LAYERS                       2      ///< max number of layers the codec is supposed to handle
     47
    4648#define M0464_TILE_BOUNDARY_ALIGNED_FLAG 1      ///< VUI flag to indicate tile boundary alignment
    4749#define M0463_VUI_EXT_ILP_REF            1      ///< VUI extension inter-layer dependency offset signalling
     
    4951#define SCALED_REF_LAYER_OFFSET_FLAG     0      ///< M0309: Signal scaled reference layer offsets in SPS
    5052#define SCALED_REF_LAYER_OFFSETS         1      ///< M0309: Signal scaled reference layer offsets in SPS
    51 #define MAX_LAYERS                       2      ///< max number of layers the codec is supposed to handle
    5253
    5354#define VPS_RENAME                       1      ///< Rename variables max_layer_id and num_layer_sets_minus1 in VPS
     
    7374#define SVC_COL_BLK                      1      ///< get co-located block
    7475#define SVC_UPSAMPLING                   1      ///< upsampling filters
    75 #define ENCODER_BUGFIX                   1      ///< L0167: encoder bug fix for inter mode
    7676#define CHROMA_UPSAMPLING                1      ///< L0335: Chroma upsampling with 5 bits coefficients
    7777
     
    129129#endif
    130130#endif
    131 #else
    132 #define ILP_DECODED_PICTURE              0
    133 #define SYNTAX_OUTPUT                    0
    134 #endif
    135131
    136132#define FAST_INTRA_SHVC                  1      ///< M0115: reduction number of intra modes in the EL (encoder only)
     
    139135#endif
    140136
     137#define RC_SHVC_HARMONIZATION            1  ///< JCTVC-M0037, rate control for SHVC
     138
     139#else
     140#define ILP_DECODED_PICTURE              0
     141#define SYNTAX_OUTPUT                    0
     142#endif // SVC_EXTENSION
     143
     144
    141145//! \ingroup TLibCommon
    142146//! \{
    143147
    144 #define FIX1071 1 ///< Temporary fix for issue #1071
    145 
    146 
    147 #define M0043_LAYERS_PRESENT_SEI      0 ///< M0043: add layers present SEI
    148 #define L0208_SOP_DESCRIPTION_SEI     1 ///< L0208: add SOP descrioption SEI
     148#define FIX1071 1 ///< fix for issue #1071
     149
    149150#define MAX_NUM_PICS_IN_SOP           1024
    150151
    151 #define K0180_SCALABLE_NESTING_SEI  1   ///JCTVC-K0180 scalable nesting sei message
    152152#define MAX_NESTING_NUM_OPS         1024
    153153#define MAX_NESTING_NUM_LAYER       64
    154 
    155 #define J0149_TONE_MAPPING_SEI        1 ///< J0149: Tone mapping information SEI
    156 #define L0363_DU_BIT_RATE             1 ///< L0363: add bit_rate_du_value_minus1 to HRD parameters
    157 #define L0328_SPLICING                1 ///< L0328: splicing support in HRD
    158 #define L0044_DU_DPB_OUTPUT_DELAY_HRD 1 ///< L0044: Include dpb_output_delay_du_length_minus1 in hrd_parameters(), dpb_output_du_delay in
    159                                         ///<        picture timing SEI and DU information SEI
    160 #define L0045_PERSISTENCE_FLAGS  1      ///< L0045: Replace "repetition_period" syntax elements in SEI with "persistence_flag"
    161 #define L0045_NON_NESTED_SEI_RESTRICTIONS 1 ///< L0045; Include restriction on the order of APS and non-nested BP, PT and DU info SEI messages
    162 #define L0044_CPB_DPB_DELAY_OFFSET 1  ///< L0044: Include syntax elements cpb_delay_offset and dpb_delay_offset in the BP SEI message
    163 #define L0047_APS_FLAGS            1  ///< L0047: Include full_random_access_flag and no_param_set_update_flag in the active parameter set SEI message
    164 #define L0043_TIMING_INFO          1  ///< L0043: Timing information is signalled in VUI outside hrd_parameters()
    165 #define L0046_RENAME_PROG_SRC_IDC  1  ///< L0046: Rename progressive_source_idc to source_scan_type
    166 #define L0045_CONDITION_SIGNALLING 1  ///< L0045: Condition the signaling of some syntax elements in picture timing SEI message
    167 #define L0043_MSS_IDC 1
    168 #define L0116_ENTRY_POINT 1
    169 #define L0363_MORE_BITS 1
    170 #define L0363_MVP_POC 1
    171 #define L0363_BYTE_ALIGN 1
    172 #define L0363_SEI_ALLOW_SUFFIX 1
    173 #define L0323_LIMIT_DEFAULT_LIST_SIZE 1
    174 #define L0046_CONSTRAINT_FLAGS 1
    175 #define L0255_MOVE_PPS_FLAGS       1  ///< move some flags to earlier positions in the PPS
    176 #define L0444_FPA_TYPE             1  ///< allow only FPA types 3, 4 and 5
    177 #define L0372 1
    178 #define SIGNAL_BITRATE_PICRATE_IN_VPS               0  ///< K0125: Signal bit_rate and pic_rate in VPS
    179 #define L0232_RD_PENALTY           1  ///< L0232: RD-penalty for 32x32 TU for intra in non-intra slices
    180 #define L0386_DB_METRIC            1  ///< L0386: non-normative blockiness metric (automatically configures deblocking parameters in bitstream)
    181 #define L0323_DPB                     1 ///< L0323: Specification of active reference indices and decoded picture buffer
    182 
    183 #define L0034_COMBINED_LIST_CLEANUP 1
    184154
    185155#if VPS_EXTN_MASK_AND_DIM_INFO
     
    195165#endif
    196166#define RATE_CONTROL_LAMBDA_DOMAIN                  1  ///< JCTVC-K0103, rate control by R-lambda model
    197 #define L0033_RC_BUGFIX                             1  ///< JCTVC-L0033, bug fix for R-lambda model based rate control
    198 #define RC_SHVC_HARMONIZATION                       1  ///< JCTVC-M0037, rate control for SHVC
     167#define M0036_RC_IMPROVEMENT                        1  ///< JCTVC-M0036, improvement for R-lambda model based rate control
     168#define TICKET_1090_FIX                             1
     169
     170#define RC_FIX                                      1  /// suggested fix for M0036
     171#define RATE_CONTROL_INTRA                          1  ///< JCTVC-M0257, rate control for intra
    199172
    200173#define MAX_CPB_CNT                     32  ///< Upper bound of (cpb_cnt_minus1 + 1)
     
    217190
    218191#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 1  ///< disable the encoder constraint that conditionally disable SAO for chroma for entire slice in interleaved mode
    219 
    220 #define REMOVE_SINGLE_SEI_EXTENSION_FLAGS 1 ///< remove display orientation SEI extension flag (there is a generic SEI extension mechanism now)
    221192
    222193#define SAO_ENCODING_CHOICE              1  ///< I0184: picture early termination
     
    232203#define MAX_NUM_SPS                16
    233204#define MAX_NUM_PPS                64
    234 
    235 
    236205
    237206#define WEIGHTED_CHROMA_DISTORTION  1   ///< F386: weighting of chroma for RDO
     
    522491  REF_PIC_LIST_0 = 0,   ///< reference list 0
    523492  REF_PIC_LIST_1 = 1,   ///< reference list 1
    524 #if !L0034_COMBINED_LIST_CLEANUP
    525   REF_PIC_LIST_C = 2,   ///< combined reference list for uni-prediction in B-Slices
    526 #endif
    527493  REF_PIC_LIST_X = 100  ///< special mark
    528494};
Note: See TracChangeset for help on using the changeset viewer.