Changeset 732 in SHVCSoftware


Ignore:
Timestamp:
24 Apr 2014, 02:16:43 (11 years ago)
Author:
qualcomm
Message:

JCTVC-Q0154: Remove sharing of sub-DPBs across layers

Remove sharing of sub-DPB, and the processes related to early marking of inter-layer reference pictures. This patch include, in addition to other related changes, the following:

  1. Disabling macro RESOLUTION_BASED_DPB
  2. Disabling macro EARLY_REF_PIC_MARKING

From: Adarsh K. Ramasubramonian <aramasub@…>

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-6-dev/source/App/TAppDecoder/TAppDecTop.cpp

    r711 r732  
    12921292  {
    12931293    targetLsIdx = vps->getOutputLayerSetIdx( getCommonDecoderParams()->getTargetOutputLayerSetIdx() );
     1294#if RESOLUTION_BASED_DPB
    12941295    subDpbIdx   = vps->getSubDpbAssigned( targetLsIdx, layerIdx );
     1296#else
     1297    subDpbIdx = layerIdx;
     1298#endif
    12951299  }
    12961300  // Assume that listOfPocs is sorted in increasing order - if not have to sort it.
     
    14371441    for(Int i = 0; i < vps->getNumLayersInIdList( targetLsIdx ); i++)
    14381442    {
     1443#if RESOUTION_BASED_DPB
    14391444      maxDpbLimit.m_numPicsInLayer[i] = vps->getMaxVpsLayerDecPicBuffMinus1( targetOutputLsIdx, i, highestTId ) + 1;
    14401445      maxDpbLimit.m_numPicsInSubDpb[vps->getSubDpbAssigned( targetLsIdx, i )] = vps->getMaxVpsDecPicBufferingMinus1( targetOutputLsIdx, vps->getSubDpbAssigned( targetLsIdx, i ), highestTId) + 1;
     1446#else
     1447      maxDpbLimit.m_numPicsInSubDpb[i] = vps->getMaxVpsDecPicBufferingMinus1( targetOutputLsIdx, i, highestTId) + 1;
     1448#endif
    14411449    }
    14421450    // -------------------------------------
     
    14721480  retVal |= ( dpbStatus.m_numPicsInSubDpb[subDpbIdx] >= dpbLimit.m_numPicsInSubDpb[subDpbIdx] );
    14731481 
     1482#if RESOLUTION_BASED_DPB
    14741483  // Number of pictures in each layer
    14751484  retVal |= ( dpbStatus.m_numPicsInLayer[layerIdx] >= dpbLimit.m_numPicsInLayer[layerIdx]);
     1485#endif
    14761486
    14771487  return retVal;
     
    15501560  {
    15511561    dpbStatus.m_numPicsNotDisplayedInLayer[i] = listOfPocsInEachLayer[i].size();
     1562#if RESOLUTION_BASED_DPB
    15521563    dpbStatus.m_numPicsInSubDpb[vps->getSubDpbAssigned(targetLsIdx,i)] += dpbStatus.m_numPicsInLayer[i];
     1564#else
     1565    dpbStatus.m_numPicsInSubDpb[i] += dpbStatus.m_numPicsInLayer[i];
     1566#endif
    15531567  }
    15541568  assert( dpbStatus.m_numAUsNotDisplayed != -1 );
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComSlice.cpp

    r730 r732  
    27102710  return -1;  // Layer not found
    27112711}
     2712#endif
    27122713#if O0164_MULTI_LAYER_HRD
    27132714Void TComVPS::setBspHrdParameters( UInt hrdIdx, UInt frameRate, UInt numDU, UInt bitRate, Bool randomAccess )
     
    27892790}
    27902791#endif
     2792#if RESOLUTION_BASED_DPB
    27912793// RepFormat Assignment operator
    27922794RepFormat& RepFormat::operator= (const RepFormat &other)
  • branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h

    r729 r732  
    6262#define VPS_EXTN_UEV_CODING              1      ///< JCTVC-P0306: Code some syntax elements as ue(v), and remove some syntax elements that duplicate behaviour
    6363#define CHANGE_NUMSUBDPB_IDX             1      ///< Change index of NumSubDpb from output layer set to layer set, to be more aligned with the Spec
    64 #define RESOLUTION_BASED_DPB             1      ///< JCTVC-P0192: Assign layers to sub-DPBs based on the rep_format() signaled in the VPS
     64#define RESOLUTION_BASED_DPB             0      ///< JCTVC-Q0154 - remove sharing of sub-DPB across layers
     65                                                ///< JCTVC-P0192: Assign layers to sub-DPBs based on the rep_format() signaled in the VPS
    6566#define ALIGNED_BUMPING                  1      ///< JCTVC-P0192: Align bumping of pictures in an AU
    6667#define MAX_SUBDPBS                      MAX_LAYERS
     
    188189#define MAX_ONE_RESAMPLING_DIRECT_LAYERS 1      ///< Allow maximum of one resampling process for direct reference layers
    189190#define MOTION_RESAMPLING_CONSTRAINT     1      ///< JCTVC-N0108: Allow maximum of one motion resampling process for direct reference layers, and use motion inter-layer prediction from the same layer as texture inter-layer prediction.
    190 #define EARLY_REF_PIC_MARKING            1      ///< Decoded picture marking of sub-layer non-reference pictures
     191#define EARLY_REF_PIC_MARKING            0      ///< Valencia meeting - remove early marking of inter-layer reference pictures
     192                                                ///< Decoded picture marking of sub-layer non-reference pictures
    191193#define N0120_MAX_TID_REF_PRESENT_FLAG   1      ///< JCTVC-N0120: max_tid_ref_pics_plus1_present_flag
    192194#define N0120_MAX_TID_REF_CFG            1      ///< set max_tid_il_ref_pics_plus1 and max_tid_ref_present_flag in the config. file (configuration setting)
  • branches/SHM-6-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r729 r732  
    20242024      if( !vps->getSubLayerDpbInfoPresentFlag(i, j) )  // If sub-layer DPB information is NOT present
    20252025      {
     2026#if RESOLUTION_BASED_DPB
    20262027        for(Int k = 0; k < vps->getNumSubDpbs(layerSetIdxForOutputLayerSet); k++)
     2028#else
     2029        for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++)
     2030#endif
    20272031        {
    20282032          vps->setMaxVpsDecPicBufferingMinus1( i, k, j, vps->getMaxVpsDecPicBufferingMinus1( i, k, j - 1 ) );
    20292033        }
    20302034        vps->setMaxVpsNumReorderPics( i, j, vps->getMaxVpsNumReorderPics( i, j - 1) );
     2035#if RESOLUTION_BASED_DPB
    20312036        for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++)
    20322037        {
    20332038          vps->setMaxVpsLayerDecPicBuffMinus1( i, k, j, vps->getMaxVpsLayerDecPicBuffMinus1( i, k, j - 1));
    20342039        }
     2040#endif
    20352041        vps->setMaxVpsLatencyIncreasePlus1( i, j, vps->getMaxVpsLatencyIncreasePlus1( i, j - 1 ) );
    20362042      }
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r705 r732  
    14071407      {
    14081408#if CHANGE_NUMSUBDPB_IDX
     1409#if RESOLUTION_BASED_DPB
    14091410        for(Int k = 0; k < vps->getNumSubDpbs(layerSetIdxForOutputLayerSet); k++)
     1411#else
     1412        for(Int k = 0; k < vps->getNumLayersInIdList( layerSetIdxForOutputLayerSet ); k++)
     1413#endif
    14101414#else
    14111415        for(Int k = 0; k < vps->getNumSubDpbs(i); k++)
Note: See TracChangeset for help on using the changeset viewer.