Changeset 216 in SHVCSoftware


Ignore:
Timestamp:
20 May 2013, 20:12:37 (12 years ago)
Author:
sharp
Message:

JCTVC-M0203 <hendry.hendry@…> and JCTVC-M0209 - Sachin Deshpande <sdeshpande@…>
Inter-layer prediction indication signaling and decoding

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.cpp

    r196 r216  
    520520  //inter-layer reference picture
    521521#if REF_IDX_MFM
     522
     523#if ILR_RESTR
     524  Int maxSubLayerForILPPlus1 = (getLayerId() > 0)? getVPS()->getMaxSublayerForIlpPlus1(ilpPic[0]->getSlice(0)->getLayerId()) : 0;
     525#if ZERO_NUM_DIRECT_LAYERS
     526  if( getLayerId() > 0 && m_activeNumILRRefIdx > 0 && ( ( (Int)(ilpPic[0]->getSlice(0)->getTLayer())<=  maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[0]->getSlice(0)->getRapPicFlag()) )  )
     527#else
     528  if( getLayerId() && ( ( (Int)(ilpPic[0]->getSlice(0)->getTLayer())<=maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[0]->getSlice(0)->getRapPicFlag()) )  )
     529#endif
     530
     531#else
    522532#if ZERO_NUM_DIRECT_LAYERS
    523533  if( m_layerId > 0 && m_activeNumILRRefIdx > 0 )
    524534#else
    525535  if (getLayerId())
     536#endif
    526537#endif
    527538  {
     
    542553  TComPic*  rpsCurrList1[MAX_NUM_REF+1];
    543554#if REF_IDX_FRAMEWORK
     555#if ILR_RESTR
     556  Int numInterLayerRPSPics = 0;
     557  if (getLayerId()>0)
     558  {
     559    for (i=0; i < getVPS()->getNumDirectRefLayers(getLayerId()); i++)
     560    {
     561      maxSubLayerForILPPlus1 = getVPS()->getMaxSublayerForIlpPlus1(ilpPic[i]->getSlice(0)->getLayerId());
     562      if( ((Int)(ilpPic[i]->getSlice(0)->getTLayer())<= maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[i]->getSlice(0)->getRapPicFlag() ) )
     563      {
     564        numInterLayerRPSPics++;
     565      }
     566    }
     567#if JCTVC_M0458_INTERLAYER_RPS_SIG
     568    if (numInterLayerRPSPics < m_activeNumILRRefIdx)
     569    {
     570      m_activeNumILRRefIdx = numInterLayerRPSPics;
     571    }
     572#else
     573    if (numInterLayerRPSPics < m_numILRRefIdx)
     574    {
     575      m_numILRRefIdx = numInterLayerRPSPics;
     576    }
     577#endif
     578  }
     579#endif
    544580#if JCTVC_M0458_INTERLAYER_RPS_SIG
    545581  Int numPocTotalCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr + m_activeNumILRRefIdx;
     
    604640#endif
    605641      {
     642#if ILR_RESTR
     643         maxSubLayerForILPPlus1 = getVPS()->getMaxSublayerForIlpPlus1(ilpPic[i]->getSlice(0)->getLayerId());
     644        if( ((Int)(ilpPic[i]->getSlice(0)->getTLayer())<=maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[i]->getSlice(0)->getRapPicFlag()) )
     645#endif
    606646        rpsCurrList0[cIdx] = ilpPic[i];
    607647      }
     
    632672#endif
    633673      {
     674#if ILR_RESTR
     675        maxSubLayerForILPPlus1 = getVPS()->getMaxSublayerForIlpPlus1(ilpPic[i]->getSlice(0)->getLayerId());
     676        if( ((Int)(ilpPic[i]->getSlice(0)->getTLayer())<=maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && ilpPic[i]->getSlice(0)->getRapPicFlag()) )
     677#endif
    634678        rpsCurrList1[cIdx] = ilpPic[i];
    635679      }
     
    16031647#if JCTVC_M0458_INTERLAYER_RPS_SIG
    16041648  m_maxOneActiveRefLayerFlag = true;
     1649#endif
     1650#if JCTVC_M0203_INTERLAYER_PRED_IDC
     1651  for( Int i = 0; i < MAX_VPS_LAYER_ID_PLUS1 - 1; i++)
     1652  {
     1653    m_maxSublayerForIlpPlus1[i] = m_uiMaxTLayers + 1;
     1654  }
    16051655#endif
    16061656}
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TComSlice.h

    r195 r216  
    560560  Bool       m_maxOneActiveRefLayerFlag;
    561561#endif
     562#if JCTVC_M0203_INTERLAYER_PRED_IDC
     563  UInt       m_maxSublayerForIlpPlus1[MAX_VPS_LAYER_ID_PLUS1 - 1];
     564#endif
    562565public:
    563566  TComVPS();
     
    712715  Void   setMaxOneActiveRefLayerFlag(Bool x)                                    { m_maxOneActiveRefLayerFlag = x;                         }
    713716#endif
     717#if JCTVC_M0203_INTERLAYER_PRED_IDC
     718  Bool   getMaxSublayerForIlpPlus1(Int layerId)                     { return m_maxSublayerForIlpPlus1[layerId];                   }
     719  Void   setMaxSublayerForIlpPlus1(Int layerId, UInt maxSublayer)   { m_maxSublayerForIlpPlus1[layerId] = maxSublayer;            }
     720#endif
    714721};
    715722
  • branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h

    r212 r216  
    9595#define ZERO_NUM_DIRECT_LAYERS           1      ///< support of zero direct reference layers
    9696#endif
     97#define JCTVC_M0203_INTERLAYER_PRED_IDC  1      ///< implementation of JCTVC-M0203 Inter-layer Prediction Indication
     98#if JCTVC_M0203_INTERLAYER_PRED_IDC
     99#define ILR_RESTR                        1     ///< JCTVC-M0209 Inter-layer RPS and RPL
     100#endif
     101
    97102#else
    98103#define INTRA_BL                         1      ///< inter-layer texture prediction
  • branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r191 r216  
    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*
    66* Copyright (c) 2010-2013, ITU/ISO/IEC
     
    9393  }
    9494
    95   if (interRPSPred) 
     95  if (interRPSPred)
    9696  {
    9797    UInt bit;
     
    114114    for(Int j=0 ; j <= rpsRef->getNumberOfPictures(); j++)
    115115    {
    116       READ_CODE(1, bit, "used_by_curr_pic_flag" ); //first bit is "1" if Idc is 1 
     116      READ_CODE(1, bit, "used_by_curr_pic_flag" ); //first bit is "1" if Idc is 1
    117117      Int refIdc = bit;
    118       if (refIdc == 0) 
     118      if (refIdc == 0)
    119119      {
    120120        READ_CODE(1, bit, "use_delta_flag" ); //second bit is "1" if Idc is 2, "0" otherwise.
     
    131131          k0++;
    132132        }
    133         else 
     133        else
    134134        {
    135135          k1++;
    136136        }
    137137        k++;
    138       } 
    139       rps->setRefIdc(j,refIdc); 
    140     }
    141     rps->setNumRefIdc(rpsRef->getNumberOfPictures()+1); 
     138      }
     139      rps->setRefIdc(j,refIdc);
     140    }
     141    rps->setNumRefIdc(rpsRef->getNumberOfPictures()+1);
    142142    rps->setNumberOfPictures(k);
    143143    rps->setNumberOfNegativePictures(k0);
     
    176176
    177177/** copy SAO parameter
    178 * \param dst 
    179 * \param src 
     178* \param dst
     179* \param src
    180180*/
    181181inline Void copySaoOneLcuParam(SaoLcuParam* dst,  SaoLcuParam* src)
     
    205205Void TDecCavlc::parsePPS(TComPPS* pcPPS)
    206206{
    207 #if ENC_DEC_TRACE 
     207#if ENC_DEC_TRACE
    208208  xTracePPSHeader (pcPPS);
    209209#endif
     
    228228  assert(uiCode <= 14);
    229229  pcPPS->setNumRefIdxL0DefaultActive(uiCode+1);
    230  
     230
    231231  READ_UVLC(uiCode, "num_ref_idx_l1_default_active_minus1");
    232232  assert(uiCode <= 14);
     
    236236  READ_UVLC(uiCode, "num_ref_idx_l1_default_active_minus1");       pcPPS->setNumRefIdxL1DefaultActive(uiCode+1);
    237237#endif
    238  
     238
    239239  READ_SVLC(iCode, "init_qp_minus26" );                            pcPPS->setPicInitQPMinus26(iCode);
    240240  READ_FLAG( uiCode, "constrained_intra_pred_flag" );              pcPPS->setConstrainedIntraPred( uiCode ? true : false );
    241   READ_FLAG( uiCode, "transform_skip_enabled_flag" );               
    242   pcPPS->setUseTransformSkip ( uiCode ? true : false ); 
     241  READ_FLAG( uiCode, "transform_skip_enabled_flag" );
     242  pcPPS->setUseTransformSkip ( uiCode ? true : false );
    243243
    244244  READ_FLAG( uiCode, "cu_qp_delta_enabled_flag" );            pcPPS->setUseDQP( uiCode ? true : false );
     
    278278  READ_FLAG( uiCode, "tiles_enabled_flag"               );    pcPPS->setTilesEnabledFlag            ( uiCode == 1 );
    279279  READ_FLAG( uiCode, "entropy_coding_sync_enabled_flag" );    pcPPS->setEntropyCodingSyncEnabledFlag( uiCode == 1 );
    280  
     280
    281281  if( pcPPS->getTilesEnabledFlag() )
    282282  {
    283     READ_UVLC ( uiCode, "num_tile_columns_minus1" );                pcPPS->setNumColumnsMinus1( uiCode ); 
    284     READ_UVLC ( uiCode, "num_tile_rows_minus1" );                   pcPPS->setNumRowsMinus1( uiCode ); 
     283    READ_UVLC ( uiCode, "num_tile_columns_minus1" );                pcPPS->setNumColumnsMinus1( uiCode );
     284    READ_UVLC ( uiCode, "num_tile_rows_minus1" );                   pcPPS->setNumRowsMinus1( uiCode );
    285285    READ_FLAG ( uiCode, "uniform_spacing_flag" );                   pcPPS->setUniformSpacingFlag( uiCode );
    286286
     
    289289      UInt* columnWidth = (UInt*)malloc(pcPPS->getNumColumnsMinus1()*sizeof(UInt));
    290290      for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); i++)
    291       { 
    292         READ_UVLC( uiCode, "column_width_minus1" ); 
     291      {
     292        READ_UVLC( uiCode, "column_width_minus1" );
    293293        columnWidth[i] = uiCode+1;
    294294      }
     
    303303      }
    304304      pcPPS->setRowHeight(rowHeight);
    305       free(rowHeight); 
     305      free(rowHeight);
    306306    }
    307307
     
    425425      READ_UVLC(   uiCode, "vui_num_ticks_poc_diff_one_minus1");    timingInfo->setNumTicksPocDiffOneMinus1   (uiCode);
    426426    }
    427 #endif 
     427#endif
    428428  READ_FLAG(     uiCode, "hrd_parameters_present_flag");              pcVUI->setHrdParametersPresentFlag(uiCode);
    429429  if( pcVUI->getHrdParametersPresentFlag() )
     
    520520#if L0372
    521521    else
    522     {     
     522    {
    523523      READ_FLAG( uiCode, "low_delay_hrd_flag" );                      hrd->setLowDelayHrdFlag( i, uiCode == 1 ? true : false  );
    524524    }
    525525    if (!hrd->getLowDelayHrdFlag( i ))
    526526    {
    527       READ_UVLC( uiCode, "cpb_cnt_minus1" );                          hrd->setCpbCntMinus1( i, uiCode );     
     527      READ_UVLC( uiCode, "cpb_cnt_minus1" );                          hrd->setCpbCntMinus1( i, uiCode );
    528528    }
    529529#else
     
    556556Void TDecCavlc::parseSPS(TComSPS* pcSPS)
    557557{
    558 #if ENC_DEC_TRACE 
     558#if ENC_DEC_TRACE
    559559  xTraceSPSHeader (pcSPS);
    560560#endif
     
    569569    assert( uiCode == 1 );
    570570  }
    571  
     571
    572572  parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);
    573573  READ_UVLC(     uiCode, "sps_seq_parameter_set_id" );           pcSPS->setSPSId( uiCode );
     
    636636  pcSPS->setLog2DiffMaxMinCodingBlockSize(uiCode);
    637637  Int maxCUDepthDelta = uiCode;
    638   pcSPS->setMaxCUWidth  ( 1<<(log2MinCUSize + maxCUDepthDelta) ); 
     638  pcSPS->setMaxCUWidth  ( 1<<(log2MinCUSize + maxCUDepthDelta) );
    639639  pcSPS->setMaxCUHeight ( 1<<(log2MinCUSize + maxCUDepthDelta) );
    640640  READ_UVLC( uiCode, "log2_min_transform_block_size_minus2" );   pcSPS->setQuadtreeTULog2MinSize( uiCode + 2 );
     
    647647
    648648  Int addCuDepth = max (0, log2MinCUSize - (Int)pcSPS->getQuadtreeTULog2MinSize() );
    649   pcSPS->setMaxCUDepth( maxCUDepthDelta + addCuDepth ); 
     649  pcSPS->setMaxCUDepth( maxCUDepthDelta + addCuDepth );
    650650
    651651  READ_FLAG( uiCode, "scaling_list_enabled_flag" );                 pcSPS->setScalingListFlag ( uiCode );
     
    683683  }
    684684  READ_FLAG( uiCode, "long_term_ref_pics_present_flag" );          pcSPS->setLongTermRefsPresent(uiCode);
    685   if (pcSPS->getLongTermRefsPresent()) 
     685  if (pcSPS->getLongTermRefsPresent())
    686686  {
    687687    READ_UVLC( uiCode, "num_long_term_ref_pic_sps" );
     
    737737{
    738738  UInt  uiCode;
    739  
     739
    740740  READ_CODE( 4,  uiCode,  "vps_video_parameter_set_id" );         pcVPS->setVPSId( uiCode );
    741741  READ_CODE( 2,  uiCode,  "vps_reserved_three_2bits" );           assert(uiCode == 3);
     
    854854#endif
    855855  }
    856  
     856
    857857  return;
    858858}
     
    860860#if VPS_EXTNS
    861861Void TDecCavlc::parseVPSExtension(TComVPS *vps)
    862 { 
     862{
    863863  UInt uiCode;
    864864  // ... More syntax elements to be parsed here
     
    939939#endif
    940940#endif
    941 
     941#if JCTVC_M0203_INTERLAYER_PRED_IDC
     942  for(i = 0; i < vps->getMaxLayers() - 1; i++)
     943  {
     944    READ_CODE( 3, uiCode, "max_sublayer_for_ilp_plus1[i]" ); vps->setMaxSublayerForIlpPlus1(i, uiCode);
     945    assert( uiCode <= vps->getMaxTLayers() );
     946  }
     947#endif
    942948#if VPS_EXTN_PROFILE_INFO
    943949  // Profile-tier-level signalling
     
    961967#endif
    962968      assert( vps->getProfileLayerSetRef(idx) < idx );
    963       // Copy profile information as indicated 
     969      // Copy profile information as indicated
    964970      vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) );
    965     }   
     971    }
    966972    parsePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 );
    967973  }
     
    10481054      }
    10491055    }
    1050   } 
     1056  }
    10511057#endif
    10521058#endif
    10531059#if JCTVC_M0458_INTERLAYER_RPS_SIG
    10541060   READ_FLAG(uiCode, "max_one_active_ref_layer_flag" );
    1055    vps->setMaxOneActiveRefLayerFlag(uiCode);   
    1056 #endif 
     1061   vps->setMaxOneActiveRefLayerFlag(uiCode);
     1062#endif
    10571063
    10581064#if !VPS_MOVE_DIR_DEPENDENCY_FLAG
     
    10941100  READ_FLAG( firstSliceSegmentInPic, "first_slice_segment_in_pic_flag" );
    10951101  if( rpcSlice->getRapPicFlag())
    1096   { 
     1102  {
    10971103    READ_FLAG( uiCode, "no_output_of_prior_pics_flag" );  //ignored
    10981104  }
     
    11451151    rpcSlice->setSliceCurEndCUAddr(numCTUs*maxParts);
    11461152  }
    1147  
     1153
    11481154  if(!rpcSlice->getDependentSliceSegmentFlag())
    11491155  {
     
    11791185    else
    11801186    {
    1181       READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb"); 
     1187      READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb");
    11821188      Int iPOClsb = uiCode;
    11831189      Int iPrevPOC = rpcSlice->getPrevPOC();
     
    11901196        iPOCmsb = iPrevPOCmsb + iMaxPOClsb;
    11911197      }
    1192       else if( (iPOClsb  >  iPrevPOClsb )  && ( (iPOClsb - iPrevPOClsb )  >  ( iMaxPOClsb / 2 ) ) ) 
     1198      else if( (iPOClsb  >  iPrevPOClsb )  && ( (iPOClsb - iPrevPOClsb )  >  ( iMaxPOClsb / 2 ) ) )
    11931199      {
    11941200        iPOCmsb = iPrevPOCmsb - iMaxPOClsb;
     
    12761282          READ_FLAG(uiCode,"delta_poc_msb_present_flag");
    12771283          Bool mSBPresentFlag = uiCode ? true : false;
    1278           if(mSBPresentFlag)                 
     1284          if(mSBPresentFlag)
    12791285          {
    12801286            READ_UVLC( uiCode, "delta_poc_msb_cycle_lt[i]" );
     
    12911297            else
    12921298            {
    1293               deltaPocMSBCycleLT = uiCode + prevDeltaMSB;             
     1299              deltaPocMSBCycleLT = uiCode + prevDeltaMSB;
    12941300            }
    12951301
    1296             Int pocLTCurr = rpcSlice->getPOC() - deltaPocMSBCycleLT * maxPicOrderCntLSB 
     1302            Int pocLTCurr = rpcSlice->getPOC() - deltaPocMSBCycleLT * maxPicOrderCntLSB
    12971303                                        - iPOClsb + pocLsbLt;
    1298             rps->setPOC     (j, pocLTCurr); 
     1304            rps->setPOC     (j, pocLTCurr);
    12991305            rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLTCurr);
    1300             rps->setCheckLTMSBPresent(j,true); 
     1306            rps->setCheckLTMSBPresent(j,true);
    13011307          }
    13021308          else
     
    13041310            rps->setPOC     (j, pocLsbLt);
    13051311            rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLsbLt);
    1306             rps->setCheckLTMSBPresent(j,false); 
     1312            rps->setCheckLTMSBPresent(j,false);
    13071313          }
    13081314          prevDeltaMSB = deltaPocMSBCycleLT;
    13091315        }
    13101316        offset += rps->getNumberOfLongtermPictures();
    1311         rps->setNumberOfPictures(offset);       
    1312       } 
     1317        rps->setNumberOfPictures(offset);
     1318      }
    13131319      if ( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP
    13141320        || rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL
     
    13281334      {
    13291335        READ_FLAG( uiCode, "slice_temporal_mvp_enable_flag" );
    1330         rpcSlice->setEnableTMVPFlag( uiCode == 1 ? true : false ); 
     1336        rpcSlice->setEnableTMVPFlag( uiCode == 1 ? true : false );
    13311337      }
    13321338      else
     
    13371343
    13381344#if REF_IDX_FRAMEWORK
    1339 #if JCTVC_M0458_INTERLAYER_RPS_SIG   
     1345#if JCTVC_M0458_INTERLAYER_RPS_SIG
    13401346    rpcSlice->setActiveNumILRRefIdx(0);
    1341     if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) ) 
    1342     {     
     1347    if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) )
     1348    {
    13431349      READ_FLAG(uiCode,"inter_layer_pred_enabled_flag");
    13441350      rpcSlice->setInterLayerPredEnabledFlag(uiCode);
    13451351      if( rpcSlice->getInterLayerPredEnabledFlag())
    13461352      {
    1347         if(rpcSlice->getNumILRRefIdx() > 1) 
     1353        if(rpcSlice->getNumILRRefIdx() > 1)
    13481354        {
    13491355          Int numBits = 1;
     
    13521358            numBits++;
    13531359          }
    1354           if( !rpcSlice->getVPS()->getMaxOneActiveRefLayerFlag()) 
     1360          if( !rpcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
    13551361          {
    13561362            READ_CODE( numBits, uiCode,"num_inter_layer_ref_pics_minus1" );
    1357             rpcSlice->setActiveNumILRRefIdx(uiCode + 1);         
     1363            rpcSlice->setActiveNumILRRefIdx(uiCode + 1);
    13581364          }
    13591365          else
    13601366          {
    1361             rpcSlice->setActiveNumILRRefIdx(1);         
     1367            rpcSlice->setActiveNumILRRefIdx(1);
    13621368          }
    1363           for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ ) 
     1369          for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
    13641370          {
    1365             READ_CODE( numBits,uiCode,"inter_layer_pred_layer_idc[i]" ); 
    1366             rpcSlice->setInterLayerPredLayerIdc(uiCode,i);         
     1371            READ_CODE( numBits,uiCode,"inter_layer_pred_layer_idc[i]" );
     1372            rpcSlice->setInterLayerPredLayerIdc(uiCode,i);
    13671373          }
    13681374        }
    13691375        else
    13701376        {
    1371           rpcSlice->setActiveNumILRRefIdx(1);         
    1372           rpcSlice->setInterLayerPredLayerIdc(0,0);     
     1377          rpcSlice->setActiveNumILRRefIdx(1);
     1378          rpcSlice->setInterLayerPredLayerIdc(0,0);
    13731379        }
    13741380      }
     
    14431449          Int length = 1;
    14441450          numRpsCurrTempList0 --;
    1445           while ( numRpsCurrTempList0 >>= 1) 
     1451          while ( numRpsCurrTempList0 >>= 1)
    14461452          {
    14471453            length ++;
     
    14851491          Int length = 1;
    14861492          numRpsCurrTempList1 --;
    1487           while ( numRpsCurrTempList1 >>= 1) 
     1493          while ( numRpsCurrTempList1 >>= 1)
    14881494          {
    14891495            length ++;
     
    15031509        }
    15041510      }
    1505     } 
     1511    }
    15061512    else
    15071513    {
     
    15851591      }
    15861592      else
    1587       { 
     1593      {
    15881594        rpcSlice->setDeblockingFilterOverrideFlag(0);
    15891595      }
     
    16091615    }
    16101616    else
    1611     { 
     1617    {
    16121618      rpcSlice->setDeblockingFilterDisable       ( false );
    16131619      rpcSlice->setDeblockingFilterBetaOffsetDiv2( 0 );
     
    16291635
    16301636  }
    1631  
     1637
    16321638    UInt *entryPointOffset          = NULL;
    16331639    UInt numEntryPointOffsets, offsetLenMinus1;
     
    16791685      for ( UInt curByteIdx  = 0; curByteIdx<m_pcBitstream->numEmulationPreventionBytesRead(); curByteIdx++ )
    16801686      {
    1681         if ( m_pcBitstream->getEmulationPreventionByteLocation( curByteIdx ) >= ( prevEntryPointOffset + endOfSliceHeaderLocation ) && 
     1687        if ( m_pcBitstream->getEmulationPreventionByteLocation( curByteIdx ) >= ( prevEntryPointOffset + endOfSliceHeaderLocation ) &&
    16821688             m_pcBitstream->getEmulationPreventionByteLocation( curByteIdx ) <  ( curEntryPointOffset  + endOfSliceHeaderLocation ) )
    16831689        {
     
    17271733  return;
    17281734}
    1729  
     1735
    17301736Void TDecCavlc::parsePTL( TComPTL *rpcPTL, Bool profilePresentFlag, Int maxNumSubLayersMinus1 )
    17311737{
     
    17461752    READ_FLAG( uiCode, "sub_layer_level_present_flag[i]"   ); rpcPTL->setSubLayerLevelPresentFlag  (i, uiCode);
    17471753  }
    1748  
     1754
    17491755  if (maxNumSubLayersMinus1 > 0)
    17501756  {
     
    17561762  }
    17571763#endif
    1758  
     1764
    17591765  for(Int i = 0; i < maxNumSubLayersMinus1; i++)
    17601766  {
     
    17931799  READ_FLAG(uiCode, "general_interlaced_source_flag");
    17941800  ptl->setInterlacedSourceFlag(uiCode ? true : false);
    1795  
     1801
    17961802  READ_FLAG(uiCode, "general_non_packed_constraint_flag");
    17971803  ptl->setNonPackedConstraintFlag(uiCode ? true : false);
    1798  
     1804
    17991805  READ_FLAG(uiCode, "general_frame_only_constraint_flag");
    18001806  ptl->setFrameOnlyConstraintFlag(uiCode ? true : false);
    1801  
     1807
    18021808  READ_CODE(16, uiCode, "XXX_reserved_zero_44bits[0..15]");
    18031809  READ_CODE(16, uiCode, "XXX_reserved_zero_44bits[16..31]");
     
    18311837  }
    18321838}
    1833 #endif 
     1839#endif
    18341840Void TDecCavlc::parseTerminatingBit( UInt& ruiBit )
    18351841{
     
    18761882}
    18771883
    1878 /** Parse I_PCM information. 
     1884/** Parse I_PCM information.
    18791885* \param pcCU pointer to CU
    18801886* \param uiAbsPartIdx CU index
     
    18821888* \returns Void
    18831889*
    1884 * If I_PCM flag indicates that the CU is I_PCM, parse its PCM alignment bits and codes. 
     1890* If I_PCM flag indicates that the CU is I_PCM, parse its PCM alignment bits and codes.
    18851891*/
    18861892Void TDecCavlc::parseIPCMInfo( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ )
     
    18901896
    18911897Void TDecCavlc::parseIntraDirLumaAng  ( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ )
    1892 { 
     1898{
    18931899  assert(0);
    18941900}
     
    19811987  UInt            uiLog2WeightDenomLuma, uiLog2WeightDenomChroma;
    19821988  UInt            uiTotalSignalledWeightFlags = 0;
    1983  
     1989
    19841990  Int iDeltaDenom;
    19851991  // decode delta_luma_log2_weight_denom :
    19861992  READ_UVLC( uiLog2WeightDenomLuma, "luma_log2_weight_denom" );     // ue(v): luma_log2_weight_denom
    19871993  assert( uiLog2WeightDenomLuma <= 7 );
    1988   if( bChroma ) 
     1994  if( bChroma )
    19891995  {
    19901996    READ_SVLC( iDeltaDenom, "delta_chroma_log2_weight_denom" );     // se(v): delta_chroma_log2_weight_denom
     
    19942000  }
    19952001
    1996   for ( Int iNumRef=0 ; iNumRef<iNbRef ; iNumRef++ ) 
     2002  for ( Int iNumRef=0 ; iNumRef<iNbRef ; iNumRef++ )
    19972003  {
    19982004    RefPicList  eRefPicList = ( iNumRef ? REF_PIC_LIST_1 : REF_PIC_LIST_0 );
    1999     for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ ) 
     2005    for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ )
    20002006    {
    20012007      pcSlice->getWpScaling(eRefPicList, iRefIdx, wp);
     
    20102016      uiTotalSignalledWeightFlags += wp[0].bPresentFlag;
    20112017    }
    2012     if ( bChroma ) 
     2018    if ( bChroma )
    20132019    {
    20142020      UInt  uiCode;
    2015       for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ ) 
     2021      for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ )
    20162022      {
    20172023        pcSlice->getWpScaling(eRefPicList, iRefIdx, wp);
     
    20222028      }
    20232029    }
    2024     for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ ) 
     2030    for ( Int iRefIdx=0 ; iRefIdx<pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx++ )
    20252031    {
    20262032      pcSlice->getWpScaling(eRefPicList, iRefIdx, wp);
    2027       if ( wp[0].bPresentFlag ) 
     2033      if ( wp[0].bPresentFlag )
    20282034      {
    20292035        Int iDeltaWeight;
     
    20362042        assert( wp[0].iOffset <=  127 );
    20372043      }
    2038       else 
     2044      else
    20392045      {
    20402046        wp[0].iWeight = (1 << wp[0].uiLog2WeightDenom);
    20412047        wp[0].iOffset = 0;
    20422048      }
    2043       if ( bChroma ) 
    2044       {
    2045         if ( wp[1].bPresentFlag ) 
    2046         {
    2047           for ( Int j=1 ; j<3 ; j++ ) 
     2049      if ( bChroma )
     2050      {
     2051        if ( wp[1].bPresentFlag )
     2052        {
     2053          for ( Int j=1 ; j<3 ; j++ )
    20482054          {
    20492055            Int iDeltaWeight;
     
    20612067          }
    20622068        }
    2063         else 
    2064         {
    2065           for ( Int j=1 ; j<3 ; j++ ) 
     2069        else
     2070        {
     2071          for ( Int j=1 ; j<3 ; j++ )
    20662072          {
    20672073            wp[j].iWeight = (1 << wp[j].uiLog2WeightDenom);
     
    20722078    }
    20732079
    2074     for ( Int iRefIdx=pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx<MAX_NUM_REF ; iRefIdx++ ) 
     2080    for ( Int iRefIdx=pcSlice->getNumRefIdx(eRefPicList) ; iRefIdx<MAX_NUM_REF ; iRefIdx++ )
    20752081    {
    20762082      pcSlice->getWpScaling(eRefPicList, iRefIdx, wp);
     
    21482154
    21492155Bool TDecCavlc::xMoreRbspData()
    2150 { 
     2156{
    21512157  Int bitsLeft = m_pcBitstream->getNumBitsLeft();
    21522158
  • branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r191 r216  
    726726#endif
    727727#endif
     728#if JCTVC_M0203_INTERLAYER_PRED_IDC
     729  for( i = 0; i < vps->getMaxLayers() - 1; i++)
     730  {
     731    WRITE_CODE(vps->getMaxSublayerForIlpPlus1(i), 3, "max_sublayer_for_ilp_plus1[i]" );
     732  }
     733#endif
    728734#if VPS_EXTN_PROFILE_INFO
    729735  // Profile-tier-level signalling
Note: See TracChangeset for help on using the changeset viewer.