Changeset 1103 in SHVCSoftware


Ignore:
Timestamp:
6 Jul 2015, 20:28:53 (9 years ago)
Author:
seregin
Message:

macro cleanup: EARLY_REF_PIC_MARKING

Location:
branches/SHM-dev/source
Files:
4 edited

Legend:

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

    r1100 r1103  
    299299      }
    300300      loopFiltered[curLayerId] = (nalu.m_nalUnitType == NAL_UNIT_EOS);
    301 #if EARLY_REF_PIC_MARKING
    302       m_acTDecTop[curLayerId].earlyPicMarking(m_iMaxTemporalLayer, m_targetDecLayerIdSet);
    303 #endif
     301
    304302      if (nalu.m_nalUnitType == NAL_UNIT_EOS)
    305303      {
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r1102 r1103  
    183183#define MAX_ONE_RESAMPLING_DIRECT_LAYERS 1      ///< Allow maximum of one resampling process for direct reference layers
    184184#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.
    185 #define EARLY_REF_PIC_MARKING            0      ///< Valencia meeting - remove early marking of inter-layer reference pictures
    186                                                 ///< Decoded picture marking of sub-layer non-reference pictures
    187185#define O0225_TID_BASED_IL_RPS_DERIV     1
    188186#define VPS_TSLAYERS                     1      ///< JCTVC-O0120 signal max temporal sub-layers for each layer
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r1100 r1103  
    26282628#endif
    26292629
    2630 #if EARLY_REF_PIC_MARKING
    2631 Void TDecTop::earlyPicMarking(Int maxTemporalLayer, std::vector<Int>& targetDecLayerIdSet)
    2632 {
    2633   UInt currTid = m_pcPic->getTLayer();
    2634   UInt highestTid = (maxTemporalLayer >= 0) ? maxTemporalLayer : (m_pcPic->getSlice(0)->getSPS()->getMaxTLayers() - 1);
    2635   UInt latestDecLayerId = m_layerId;
    2636   UInt numTargetDecLayers = 0;
    2637   Int targetDecLayerIdList[MAX_LAYERS];
    2638   UInt latestDecIdx = 0;
    2639   TComSlice* pcSlice = m_pcPic->getSlice(0);
    2640 
    2641   if ( currTid != highestTid )  // Marking  process is only applicaple for highest decoded TLayer
    2642   {
    2643     return;
    2644   }
    2645 
    2646   // currPic must be marked as "used for reference" and must be a sub-layer non-reference picture
    2647   if ( !((pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_TRAIL_N  ||
    2648           pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_TSA_N    ||
    2649           pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_STSA_N   ||
    2650           pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_N   ||
    2651           pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL_N   ||
    2652           pcSlice->getNalUnitType() == NAL_UNIT_RESERVED_VCL_N10     ||
    2653           pcSlice->getNalUnitType() == NAL_UNIT_RESERVED_VCL_N12     ||
    2654           pcSlice->getNalUnitType() == NAL_UNIT_RESERVED_VCL_N14) && pcSlice->isReferenced()))
    2655   {
    2656     return;
    2657   }
    2658 
    2659   if ( targetDecLayerIdSet.size() == 0 ) // Cannot mark if we don't know the number of scalable layers
    2660   {
    2661     return;
    2662   }
    2663 
    2664   for (std::vector<Int>::iterator it = targetDecLayerIdSet.begin(); it != targetDecLayerIdSet.end(); it++)
    2665   {
    2666     if ( latestDecLayerId == (*it) )
    2667     {
    2668       latestDecIdx = numTargetDecLayers;
    2669     }
    2670     targetDecLayerIdList[numTargetDecLayers++] = (*it);
    2671   }
    2672 
    2673   Int remainingInterLayerReferencesFlag = 0;
    2674   for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ )
    2675   {
    2676     Int jLidx = pcSlice->getVPS()->getLayerIdxInVps(targetDecLayerIdList[j]);
    2677     if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getVPS()->getLayerIdxInVps(latestDecLayerId),jLidx) - 1 )
    2678     {
    2679       for ( Int k = 0; k < m_ppcTDecTop[targetDecLayerIdList[j]]->getNumDirectRefLayers(); k++ )
    2680       {
    2681         if ( latestDecIdx == m_ppcTDecTop[targetDecLayerIdList[j]]->getRefLayerId(k) )
    2682         {
    2683           remainingInterLayerReferencesFlag = 1;
    2684         }
    2685       }
    2686     }
    2687   }
    2688 
    2689   if ( remainingInterLayerReferencesFlag == 0 )
    2690   {
    2691     pcSlice->setReferenced(false);
    2692   }
    2693 }
    2694 #endif
    2695 
    26962630#if OUTPUT_LAYER_SET_INDEX
    26972631Void TDecTop::checkValueOfTargetOutputLayerSetIdx(TComVPS *vps)
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.h

    r1100 r1103  
    227227
    228228#if SVC_EXTENSION
    229 #if EARLY_REF_PIC_MARKING
    230   Void earlyPicMarking(Int maxTemporalLayer, std::vector<Int>& targetDecLayerIdList);
    231 #endif
    232229#if POC_RESET_IDC_DECODER
    233230  Int       getParseIdc                     ()                              { return m_parseIdc;               }
Note: See TracChangeset for help on using the changeset viewer.