Changeset 1221 in SHVCSoftware for branches/SHM-dev/source/App/TAppDecoder


Ignore:
Timestamp:
9 Jul 2015, 00:02:39 (10 years ago)
Author:
seregin
Message:

macro cleanup: FIX_ALIGN_BUMPING

Location:
branches/SHM-dev/source/App/TAppDecoder
Files:
2 edited

Legend:

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

    r1210 r1221  
    12841284
    12851285#if Q0074_COLOUR_REMAPPING_SEI
    1286     if (m_colourRemapSEIEnabled)
     1286    if( m_colourRemapSEIEnabled )
    12871287    {
    12881288      SEIMessages colourRemappingInfo = getSeisByType(pic->getSEIs(), SEI::COLOUR_REMAPPING_INFO );
     
    13441344    pic->getPicYuvRec()->setBorderExtension( false );
    13451345
    1346 #if FIX_ALIGN_BUMPING
    13471346    dpbStatus.m_numPicsInSubDpb[dpbStatus.m_layerIdToSubDpbIdMap[layerId]]--;
    1348 #else
    1349     dpbStatus.m_numPicsInSubDpb[layerIdx]--;
    1350 #endif
    13511347  }
    13521348}
     
    13601356  {
    13611357    std::vector<Int>  listOfPocs;
    1362 #if FIX_ALIGN_BUMPING
    13631358    std::vector<Int>  listOfPocsInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    13641359    std::vector<Int>  listOfPocsPositionInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    1365 #else
    1366     std::vector<Int>  listOfPocsInEachLayer[MAX_LAYERS];
    1367     std::vector<Int>  listOfPocsPositionInEachLayer[MAX_LAYERS];
    1368 #endif
     1360
    13691361    DpbStatus dpbStatus;
    13701362
     
    13841376  markAllPicturesAsErased(layerId);
    13851377}
     1378
    13861379Void TAppDecTop::flushAllPictures(Bool outputPictures)
    13871380{
     
    13921385  {
    13931386    std::vector<Int>  listOfPocs;
    1394 #if FIX_ALIGN_BUMPING
    13951387    std::vector<Int>  listOfPocsInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    13961388    std::vector<Int>  listOfPocsPositionInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    1397 #else
    1398     std::vector<Int>  listOfPocsInEachLayer[MAX_LAYERS];
    1399     std::vector<Int>  listOfPocsPositionInEachLayer[MAX_LAYERS];
    1400 #endif
     1389
    14011390    DpbStatus dpbStatus;
    14021391
    14031392    // Find the status of the DPB
    1404 #if SVC_POC
    14051393    xFindDPBStatus(listOfPocs, listOfPocsInEachLayer, listOfPocsPositionInEachLayer, dpbStatus, false);
    1406 #else
    1407     xFindDPBStatus(listOfPocs, listOfPocsInEachLayer, listOfPocsPositionInEachLayer, dpbStatus);
    1408 #endif
    14091394
    14101395    while( dpbStatus.m_numAUsNotDisplayed )
     
    14201405Void TAppDecTop::markAllPicturesAsErased()
    14211406{
    1422 #if FIX_ALIGN_BUMPING
    14231407  for(Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++)
    1424 #else
    1425   for(Int i = 0; i < MAX_LAYERS; i++)
    1426 #endif
    14271408  {
    14281409    markAllPicturesAsErased(i);
     
    14561437
    14571438Void TAppDecTop::checkOutputBeforeDecoding(Int layerIdx)
    1458 {
    1459    
     1439{   
    14601440  std::vector<Int>  listOfPocs;
    1461 #if FIX_ALIGN_BUMPING
    14621441  std::vector<Int>  listOfPocsInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    14631442  std::vector<Int>  listOfPocsPositionInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    1464 #else
    1465   std::vector<Int>  listOfPocsInEachLayer[MAX_LAYERS];
    1466   std::vector<Int>  listOfPocsPositionInEachLayer[MAX_LAYERS];
    1467 #endif
     1443
    14681444  DpbStatus dpbStatus;
    14691445
     
    14821458  // Find DPB-information from the VPS
    14831459  DpbStatus maxDpbLimit;
    1484 #if FIX_ALIGN_BUMPING
    1485   Int subDpbIdx = getCommonDecoderParams()->getTargetOutputLayerSetIdx() == 0
    1486                   ? dpbStatus.m_layerIdToSubDpbIdMap[0]
    1487                   : dpbStatus.m_layerIdToSubDpbIdMap[layerIdx];
    1488 #else
    1489   Int subDpbIdx = getCommonDecoderParams()->getTargetOutputLayerSetIdx() == 0 ? 0 : layerIdx;
    1490 #endif
     1460
     1461  Int subDpbIdx = getCommonDecoderParams()->getTargetOutputLayerSetIdx() == 0 ? dpbStatus.m_layerIdToSubDpbIdMap[0] : dpbStatus.m_layerIdToSubDpbIdMap[layerIdx];
     1462
    14911463  findDpbParametersFromVps(listOfPocs, listOfPocsInEachLayer, listOfPocsPositionInEachLayer, maxDpbLimit);
     1464
    14921465  // Assume that listOfPocs is sorted in increasing order - if not have to sort it.
    14931466  while( ifInvokeBumpingBeforeDecoding(dpbStatus, maxDpbLimit, layerIdx, subDpbIdx) )
     
    15001473{   
    15011474  std::vector<Int>  listOfPocs;
    1502 #if FIX_ALIGN_BUMPING
    15031475  std::vector<Int>  listOfPocsInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    15041476  std::vector<Int>  listOfPocsPositionInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    1505 #else
    1506   std::vector<Int>  listOfPocsInEachLayer[MAX_LAYERS];
    1507   std::vector<Int>  listOfPocsPositionInEachLayer[MAX_LAYERS];
    1508 #endif
     1477
    15091478  DpbStatus dpbStatus;
    15101479
     
    15381507  std::vector<int>::iterator it;
    15391508  TComList<TComPic*>::iterator iterPic;
    1540 #if FIX_ALIGN_BUMPING
     1509
    15411510  for( Int dpbLayerCtr = 0; dpbLayerCtr < dpbStatus.m_numLayers; dpbLayerCtr++)
    15421511  {
    15431512    Int layerId  = dpbStatus.m_targetDecLayerIdList[dpbLayerCtr];
    1544 #else
    1545   for( Int layerIdx = 0; layerIdx < dpbStatus.m_numLayers; layerIdx++)
    1546   {
    1547 #endif
     1513
    15481514    // Check if picture with pocValue is present.
    15491515    it = find( listOfPocsInEachLayer[layerId].begin(), listOfPocsInEachLayer[layerId].end(), pocValue );
     
    15851551      listOfPocsInEachLayer[layerId].erase( it );
    15861552      listOfPocsPositionInEachLayer[layerId].erase( listOfPocsPositionInEachLayer[layerId].begin() + picPosition );
    1587 #if FIX_ALIGN_BUMPING
    15881553      dpbStatus.m_numPicsInSubDpb[dpbStatus.m_layerIdToSubDpbIdMap[layerId]]--;
    1589 #endif
    1590     }
    1591   }
    1592 #if !FIX_ALIGN_BUMPING
    1593   // Update sub-DPB status
    1594   for( Int subDpbIdx = 0; subDpbIdx < dpbStatus.m_numSubDpbs; subDpbIdx++)
    1595   {
    1596     dpbStatus.m_numPicsInSubDpb[subDpbIdx]--;
    1597   }
    1598 #endif
     1554    }
     1555  }
     1556
    15991557  dpbStatus.m_numAUsNotDisplayed--;
    16001558
     
    16881646    // Find the VPS used for the pictures
    16891647    // -------------------------------------
    1690 #if FIX_ALIGN_BUMPING
    1691     for(Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++)
    1692 #else
    1693     for(Int i = 0; i < MAX_LAYERS; i++)
    1694 #endif
     1648    for( Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++ )
    16951649    {
    16961650      if( m_acTDecTop[i].getListPic()->empty() )
     
    16991653        continue;
    17001654      }
     1655
    17011656      std::vector<Int>::const_iterator it;
    17021657      it = find( listOfPocsInEachLayer[i].begin(), listOfPocsInEachLayer[i].end(), listOfPocs[0] );
    17031658      TComList<TComPic*>::iterator iterPic;
     1659
    17041660      if( it != listOfPocsInEachLayer[i].end() )
    17051661      {
    17061662        Int picPosition = (Int)std::distance( listOfPocsInEachLayer[i].begin(), it );
    17071663        Int j;
    1708         for(j = 0, iterPic = m_acTDecTop[i].getListPic()->begin(); j < listOfPocsPositionInEachLayer[i][picPosition]; j++) // Picture to be output
     1664
     1665        // Picture to be output
     1666        for( j = 0, iterPic = m_acTDecTop[i].getListPic()->begin(); j < listOfPocsPositionInEachLayer[i][picPosition]; j++ )
    17091667        {
    17101668          iterPic++;
    17111669        }
     1670
    17121671        TComPic *pic = *iterPic;
    17131672        vps = pic->getSlice(0)->getVPS();
     
    17211680    maxDpbLimit.m_numAUsNotDisplayed = vps->getMaxVpsNumReorderPics( targetOutputLsIdx, highestTId ); // m_numAUsNotDisplayed is only variable name - stores reorderpics
    17221681    maxDpbLimit.m_maxLatencyIncrease  = vps->getMaxVpsLatencyIncreasePlus1(targetOutputLsIdx, highestTId ) > 0;
     1682
    17231683    if( maxDpbLimit.m_maxLatencyIncrease )
    17241684    {
    17251685      maxDpbLimit.m_maxLatencyPictures = vps->getMaxVpsNumReorderPics( targetOutputLsIdx, highestTId ) + vps->getMaxVpsLatencyIncreasePlus1(targetOutputLsIdx, highestTId ) - 1;
    17261686    }
     1687
    17271688    for(Int i = 0; i < vps->getNumLayersInIdList( targetLsIdx ); i++)
    17281689    {
    1729 #if RESOUTION_BASED_DPB
    1730       maxDpbLimit.m_numPicsInLayer[i] = vps->getMaxVpsLayerDecPicBuffMinus1( targetOutputLsIdx, i, highestTId ) + 1;
    1731       maxDpbLimit.m_numPicsInSubDpb[vps->getSubDpbAssigned( targetLsIdx, i )] = vps->getMaxVpsDecPicBufferingMinus1( targetOutputLsIdx, vps->getSubDpbAssigned( targetLsIdx, i ), highestTId) + 1;
    1732 #else
    17331690      maxDpbLimit.m_numPicsInSubDpb[i] = vps->getMaxVpsDecPicBufferingMinus1( targetOutputLsIdx, i, highestTId) + 1;
    1734 #endif
    17351691    }
    17361692    // -------------------------------------
     
    17381694  return vps;
    17391695}
     1696
    17401697Void TAppDecTop::emptyUnusedPicturesNotNeededForOutput()
    17411698{
    1742 #if FIX_ALIGN_BUMPING
    1743   for(Int layerIdx = 0; layerIdx < MAX_VPS_LAYER_IDX_PLUS1; layerIdx++)
    1744 #else
    1745   for(Int layerIdx = 0; layerIdx < MAX_LAYERS; layerIdx++)
    1746 #endif
     1699  for( Int layerIdx = 0; layerIdx < MAX_VPS_LAYER_IDX_PLUS1; layerIdx++ )
    17471700  {
    17481701    TComList <TComPic*> *pcListPic = m_acTDecTop[layerIdx].getListPic();
     
    17921745  TComVPS *vps = NULL;
    17931746  dpbStatus.init();
    1794 #if FIX_ALIGN_BUMPING
     1747
    17951748  for( Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++ )
    1796 #else
    1797   for( Int i = 0; i < MAX_LAYERS; i++ )
    1798 #endif
    17991749  {
    18001750    if( m_acTDecTop[i].getListPic()->empty() )
     
    18471797  std::sort( listOfPocs.begin(), listOfPocs.end() );    // Sort in increasing order of POC
    18481798  Int targetLsIdx = vps->getOutputLayerSetIdx( getCommonDecoderParams()->getTargetOutputLayerSetIdx() );
     1799
    18491800  // Update status
    18501801  dpbStatus.m_numAUsNotDisplayed = (Int)listOfPocs.size();   // Number of AUs not displayed
    18511802  dpbStatus.m_numLayers = vps->getNumLayersInIdList( targetLsIdx );
    1852 #if FIX_ALIGN_BUMPING
    1853   for(Int i = 0; i < dpbStatus.m_numLayers; i++)
     1803
     1804  for( Int i = 0; i < dpbStatus.m_numLayers; i++ )
    18541805  {
    18551806    dpbStatus.m_layerIdToSubDpbIdMap[vps->getLayerSetLayerIdList(targetLsIdx, i)] = i;
     
    18571808  }
    18581809  dpbStatus.m_numSubDpbs = vps->getNumSubDpbs( targetLsIdx );
    1859 #else
    1860   dpbStatus.m_numSubDpbs = vps->getNumSubDpbs( vps->getOutputLayerSetIdx(
    1861                                                       this->getCommonDecoderParams()->getTargetOutputLayerSetIdx() ) );
    1862 #endif
    1863 
    1864 #if FIX_ALIGN_BUMPING
    1865   for(Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++)
    1866 #else
    1867   for(Int i = 0; i < dpbStatus.m_numLayers; i++)
    1868 #endif
     1810
     1811  for( Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++ )
    18691812  {
    18701813    dpbStatus.m_numPicsNotDisplayedInLayer[i] = (Int)listOfPocsInEachLayer[i].size();
     
    18771820  { // All pictures in the DPB in that layer are to be output; this means other pictures would also be output
    18781821    std::vector<Int>  listOfPocs;
    1879 #if FIX_ALIGN_BUMPING
    18801822    std::vector<Int>  listOfPocsInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    18811823    std::vector<Int>  listOfPocsPositionInEachLayer[MAX_VPS_LAYER_IDX_PLUS1];
    1882 #else
    1883     std::vector<Int>  listOfPocsInEachLayer[MAX_LAYERS];
    1884     std::vector<Int>  listOfPocsPositionInEachLayer[MAX_LAYERS];
    1885 #endif
     1824
    18861825    DpbStatus dpbStatus;
    18871826
     
    18981837  }
    18991838}
    1900 #endif
     1839#endif //ALIGNED_BUMPING
    19011840
    19021841#if Q0074_COLOUR_REMAPPING_SEI
  • branches/SHM-dev/source/App/TAppDecoder/TAppDecTop.h

    r1210 r1221  
    136136  Int m_numPicsNotDisplayedInLayer[MAX_LAYERS];
    137137  Int m_numPicsInSubDpb[MAX_LAYERS];  // Pictures marked as used_for_reference or needed for output in the sub-DPB
    138 #if FIX_ALIGN_BUMPING
    139138  Int m_layerIdToSubDpbIdMap[MAX_VPS_LAYER_IDX_PLUS1];
    140139  Int m_targetDecLayerIdList[MAX_LAYERS];
    141 #endif
    142140  Bool m_maxLatencyIncrease;
    143141  Int m_maxLatencyPictures;
     
    159157    m_numSubDpbs = -1;
    160158    m_numLayers = -1;
    161 #if FIX_ALIGN_BUMPING
    162159    ::memset( m_targetDecLayerIdList, 0, sizeof(m_targetDecLayerIdList) );
    163     for(Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++)
     160
     161    for( Int i = 0; i < MAX_VPS_LAYER_IDX_PLUS1; i++ )
    164162    {
    165163      m_layerIdToSubDpbIdMap[i] = -1;
    166164    }
    167 #endif
    168165  }
    169166};
Note: See TracChangeset for help on using the changeset viewer.