Changeset 185 in SHVCSoftware for branches/SHM-2.0-dev/source


Ignore:
Timestamp:
12 May 2013, 01:23:02 (12 years ago)
Author:
qualcomm
Message:

Bug fix in JCTVC_M0458_INTERLAYER_RPS_SIG

Location:
branches/SHM-2.0-dev/source/Lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r181 r185  
    13471347        if(rpcSlice->getNumILRRefIdx() > 1)
    13481348        {
     1349          Int numBits = 1;
     1350          while ((1 << numBits) < rpcSlice->getNumILRRefIdx())
     1351          {
     1352            numBits++;
     1353          }
    13491354          if( !rpcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
    13501355          {
    1351             READ_UVLC(uiCode,"num_inter_layer_ref_pics_minus1");   
     1356            READ_CODE( numBits, uiCode,"num_inter_layer_ref_pics_minus1" );
    13521357            rpcSlice->setActiveNumILRRefIdx(uiCode + 1);         
    13531358          }
     
    13551360          {
    13561361            rpcSlice->setActiveNumILRRefIdx(1);         
    1357             rpcSlice->setInterLayerPredLayerIdc(0,0);         
    13581362          }
    13591363          for(Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
    13601364          {
    1361             READ_UVLC(uiCode,"inter_layer_pred_layer_idc[i]");         
     1365            READ_CODE( numBits,uiCode,"inter_layer_pred_layer_idc[i]" ); 
    13621366            rpcSlice->setInterLayerPredLayerIdc(uiCode,i);         
    13631367          }
  • branches/SHM-2.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r181 r185  
    10281028        if(pcSlice->getNumILRRefIdx() > 1)
    10291029        {
     1030          Int numBits = 1;
     1031          while ((1 << numBits) < pcSlice->getNumILRRefIdx())
     1032          {
     1033            numBits++;
     1034          }
    10301035          if( !pcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
    10311036          {
    1032             WRITE_UVLC(pcSlice->getNumInterLayerRefPics(),"num_inter_layer_ref_pics_minus1");                     
     1037            WRITE_CODE( numBits,pcSlice->getNumInterLayerRefPics(),"num_inter_layer_ref_pics_minus1");
    10331038          }       
    10341039          for(Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
    1035             WRITE_UVLC(pcSlice->getInterLayerPredLayerIdc(i),"inter_layer_pred_layer_idc[i]");     
     1040            WRITE_CODE( numBits,pcSlice->getInterLayerPredLayerIdc(i),"inter_layer_pred_layer_idc[i]");   
    10361041        }
    10371042      }
  • branches/SHM-2.0-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r176 r185  
    659659    if(m_layerId > 0)
    660660    {
     661#if JCTVC_M0458_INTERLAYER_RPS_SIG
     662      if( pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP && pcSlice->getNalUnitType() <= NAL_UNIT_CODED_SLICE_CRA )
     663      {
     664        pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getActiveNumILRRefIdx());
     665        pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getActiveNumILRRefIdx());
     666      }
     667      else
     668      {
     669        pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getNumRefIdx(REF_PIC_LIST_0)+pcSlice->getActiveNumILRRefIdx());
     670        pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getNumRefIdx(REF_PIC_LIST_1)+pcSlice->getActiveNumILRRefIdx());
     671      }
     672#else
    661673      if( pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP && pcSlice->getNalUnitType() <= NAL_UNIT_CODED_SLICE_CRA )
    662674      {
     
    669681        pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getNumRefIdx(REF_PIC_LIST_1)+pcSlice->getNumILRRefIdx());
    670682      }
     683#endif
    671684    }
    672685#endif
Note: See TracChangeset for help on using the changeset viewer.