Changeset 773 in SHVCSoftware for branches


Ignore:
Timestamp:
12 May 2014, 20:24:01 (11 years ago)
Author:
sharp
Message:
  1. Deshpande (Sharp) <sdeshpande@…>

Proposals from JCTVC-Q0101 (On Bitstream Partition Buffer)

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComSlice.h

    r763 r773  
    733733//    m_cprmsPresentFlag = new Bool   [ getNumHrdParameters() ];
    734734  }
     735#endif
     736#if HRD_BPB
     737    Int getBspHrdParamBufferCpbCntMinus1(UInt i, UInt sl)
     738    {
     739        return m_bspHrd->getCpbCntMinus1(sl);
     740    }
    735741#endif
    736742
  • branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h

    r771 r773  
    263263#define BITRATE_PICRATE_SIGNALLING       1      ///< JCTVC-Q0102 Proposal 3 signal bitrate, picrate only up to the maximum temporal sub-layers in the corresponding layer set
    264264#define LAYER_DECPICBUFF_PARAM           1      ///< JCTVC-Q0102 Proposal 2 infer value from layer DPB param
     265#define HRD_BPB                         1      ///< JCTVC-Q0101 Bitstream Partition Buffering Proposals
    265266#if VIEW_ID_RELATED_SIGNALING
    266267/// scalability types
  • branches/SHM-6-dev/source/Lib/TLibDecoder/SEIread.cpp

    r694 r773  
    12091209    UInt lsIdx = nestingSei.m_nestingOpIdx[h];
    12101210    READ_UVLC( uiCode, "num_sei_bitstream_partitions_minus1[i]"); sei.m_seiNumBitstreamPartitionsMinus1[lsIdx] = uiCode;
    1211     for (UInt i = 0; i <= sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]; i++)
    1212     {
     1211#if HRD_BPB
     1212      Int chkPart=0;
     1213#endif
     1214      UInt i;
     1215    for (i = 0; i <= sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]; i++)
     1216    {
     1217#if HRD_BPB
     1218        UInt nl=0; UInt j;
     1219    for (j = 0 ; j < sei.m_vpsMaxLayers; j++)
     1220      {
     1221          if (sei.m_layerIdIncludedFlag[lsIdx][j])
     1222              nl++;
     1223      }
     1224    for (j = 0; j < nl; j++)
     1225      {
     1226#else
    12131227      for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)
    12141228      {
    12151229        if (sei.m_layerIdIncludedFlag[lsIdx][j])
    12161230        {
     1231#endif
    12171232          READ_FLAG( uiCode, "sei_layer_in_bsp_flag[lsIdx][i][j]" ); sei.m_seiLayerInBspFlag[lsIdx][i][j] = uiCode;
    12181233        }
    1219       }
    1220     }
     1234#if !HRD_BPB
     1235      }
     1236#endif
     1237#if HRD_BPB
     1238        chkPart+=sei.m_seiLayerInBspFlag[lsIdx][i][j];
     1239#endif
     1240    }
     1241#if HRD_BPB
     1242      assert(chkPart<=1);
     1243#endif
     1244#if HRD_BPB
     1245      if(sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]==0)
     1246      {
     1247          Int chkPartition1=0; Int chkPartition2=0;
     1248          for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)
     1249          {
     1250              if( sei.m_layerIdIncludedFlag[lsIdx][j] )
     1251              {
     1252                  chkPartition1+=sei.m_seiLayerInBspFlag[lsIdx][i][j];
     1253                  chkPartition2++;
     1254              }
     1255          }
     1256          assert(chkPartition1!=chkPartition2);
     1257      }
     1258#endif
     1259     
    12211260    READ_UVLC( uiCode, "sei_num_bsp_sched_combinations_minus1[i]"); sei.m_seiNumBspSchedCombinationsMinus1[lsIdx] = uiCode;
    12221261    for (UInt i = 0; i <= sei.m_seiNumBspSchedCombinationsMinus1[lsIdx]; i++)
     
    12251264      {
    12261265        READ_UVLC( uiCode, "sei_bsp_comb_hrd_idx[lsIdx][i][j]"); sei.m_seiBspCombHrdIdx[lsIdx][i][j] = uiCode;
     1266#if HRD_BPB
     1267          assert(uiCode <= sei.m_seiNumBspHrdParametersMinus1);
     1268#endif
    12271269        READ_UVLC( uiCode, "sei_bsp_comb_sched_idx[lsIdx][i][j]"); sei.m_seiBspCombScheddx[lsIdx][i][j] = uiCode;
     1270#if HRD_BPB
     1271          assert(uiCode <=  sei.hrd->getCpbCntMinus1( sps->getMaxTLayers()-1 ));
     1272#endif
     1273
    12281274      }
    12291275    }
  • branches/SHM-6-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r772 r773  
    23102310      {
    23112311        READ_UVLC( uiCode, "num_bitstream_partitions[i]"); vps->setNumBitstreamPartitions(h, uiCode);
     2312#if HRD_BPB
     2313          Int chkPart=0;
     2314#endif
    23122315        for( i = 0; i < vps->getNumBitstreamPartitions(h); i++ )
    23132316        {
     
    23192322            }
    23202323          }
    2321         }
     2324#if HRD_BPB
     2325            chkPart+=vps->getLayerInBspFlag(h, i, j);
     2326#endif
     2327        }
     2328#if HRD_BPB
     2329          assert(chkPart<=1);
     2330#endif
     2331#if HRD_BPB
     2332          if(vps->getNumBitstreamPartitions(h)==1)
     2333          {
     2334              Int chkPartition1=0; Int chkPartition2=0;
     2335              for( j = 0; j <= (vps->getMaxLayers()-1); j++ )
     2336              {
     2337                  if( vps->getLayerIdIncludedFlag(h, j) )
     2338                  {
     2339                      chkPartition1+=vps->getLayerInBspFlag(h, 0, j);
     2340                      chkPartition2++;
     2341                  }
     2342              }
     2343              assert(chkPartition1!=chkPartition2);
     2344          }
     2345#endif
    23222346        if (vps->getNumBitstreamPartitions(h))
    23232347        {
     
    23322356            {
    23332357              READ_UVLC( uiCode, "bsp_comb_hrd_idx[h][i][j]"); vps->setBspCombHrdIdx(h, i, j, uiCode);
     2358#if HRD_BPB
     2359                assert(uiCode <= vps->getVpsNumBspHrdParametersMinus1());
     2360#endif
     2361               
    23342362              READ_UVLC( uiCode, "bsp_comb_sched_idx[h][i][j]"); vps->setBspCombSchedIdx(h, i, j, uiCode);
     2363#if HRD_BPB
     2364                assert(uiCode <= vps->getBspHrdParamBufferCpbCntMinus1(uiCode,vps->getMaxTLayers()-1));
     2365#endif
    23352366            }
    23362367          }
  • branches/SHM-6-dev/source/Lib/TLibEncoder/SEIwrite.cpp

    r694 r773  
    893893    for (UInt i = 0; i <= sei.m_seiNumBitstreamPartitionsMinus1[lsIdx]; i++)
    894894    {
     895#if HRD_BPB
     896        UInt nl=0;
     897     for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)
     898     {
     899            if (sei.m_layerIdIncludedFlag[lsIdx][j])
     900                nl++;
     901     }
     902     for (UInt j = 0; j < nl; j++)
     903     {
     904#else
    895905      for (UInt j = 0; j < sei.m_vpsMaxLayers; j++)
    896906      {
    897907        if (sei.m_layerIdIncludedFlag[lsIdx][j])
    898908        {
     909#endif
    899910          WRITE_FLAG( sei.m_seiLayerInBspFlag[lsIdx][i][j], "sei_layer_in_bsp_flag[lsIdx][i][j]" );
    900911        }
    901       }
     912#if !HRD_BPB
     913      }
     914#endif
    902915    }
    903916    WRITE_UVLC( sei.m_seiNumBspSchedCombinationsMinus1[lsIdx], "sei_num_bsp_sched_combinations_minus1[i]");
Note: See TracChangeset for help on using the changeset viewer.