Changeset 531 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
31 Dec 2013, 16:50:03 (11 years ago)
Author:
nokia
Message:

JCTVC-O0149: implementation of cross_layer_bla_flag

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

Legend:

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

    r530 r531  
    17451745      iBits++;
    17461746    }
     1747#if O0149_CROSS_LAYER_BLA_FLAG
     1748    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits)
     1749    {
     1750      READ_FLAG(uiCode, "cross_layer_bla_flag");  rpcSlice->setCrossLayerBLAFlag( uiCode ? true : false );
     1751      iBits++;
     1752    }
     1753#endif
    17471754    for (; iBits < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); iBits++)
    17481755    {
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r529 r531  
    7979  m_prevSliceSkipped = false;
    8080  m_skippedPOC = 0;
     81#if NO_CLRAS_OUTPUT_FLAG
     82  m_noClrasOutputFlag          = false;
     83  m_layerInitializedFlag       = false;
     84  m_firstPicInLayerDecodedFlag = false;
     85  m_noOutputOfPriorPicsFlags   = false;
     86  m_bRefreshPending            = false;
     87#endif
    8188}
    8289
     
    758765{
    759766  TComPic*&   pcPic         = m_pcPic;
     767#if NO_CLRAS_OUTPUT_FLAG
     768  Bool bFirstSliceInSeq;
     769#endif
    760770#if SVC_EXTENSION
    761771  m_apcSlicePilot->setVPS( m_parameterSetManagerDecoder.getPrefetchedVPS(0) );
     
    887897#endif
    888898  }
     899#if NO_CLRAS_OUTPUT_FLAG
     900  bFirstSliceInSeq = m_bFirstSliceInSequence;
     901#endif
    889902  m_bFirstSliceInSequence = false;
    890903#if POC_RESET_FLAG
     
    10451058      }
    10461059    }
     1060#endif
     1061
     1062#if NO_CLRAS_OUTPUT_FLAG
     1063    if (m_layerId == 0 &&
     1064        (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP
     1065      || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL
     1066      || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP
     1067      || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL
     1068      || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP
     1069      || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA))
     1070    {
     1071      if (bFirstSliceInSeq)
     1072      {
     1073        setNoClrasOutputFlag(true);
     1074      }
     1075      else if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP
     1076            || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL
     1077            || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP)
     1078      {
     1079        setNoClrasOutputFlag(true);
     1080      }
     1081#if O0149_CROSS_LAYER_BLA_FLAG
     1082      else if ((m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP) &&
     1083               m_apcSlicePilot->getCrossLayerBLAFlag())
     1084      {
     1085        setNoClrasOutputFlag(true);
     1086      }
     1087#endif
     1088      else
     1089      {
     1090        setNoClrasOutputFlag(false);
     1091      }
     1092      if (getNoClrasOutputFlag())
     1093      {
     1094        for (UInt i = 0; i < m_apcSlicePilot->getVPS()->getMaxLayers(); i++)
     1095        {
     1096          m_ppcTDecTop[i]->setLayerInitializedFlag(false);
     1097          m_ppcTDecTop[i]->setFirstPicInLayerDecodedFlag(false);
     1098        }
     1099      }
     1100    }
     1101#endif
     1102
     1103#if NO_CLRAS_OUTPUT_FLAG
     1104    m_apcSlicePilot->decodingRefreshMarking(m_pocCRA, m_bRefreshPending, m_cListPic, getNoClrasOutputFlag());
    10471105#endif
    10481106
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecTop.h

    r528 r531  
    137137#endif
    138138
     139#if NO_CLRAS_OUTPUT_FLAG
     140  Bool                    m_noClrasOutputFlag;
     141  Bool                    m_layerInitializedFlag;
     142  Bool                    m_firstPicInLayerDecodedFlag;
     143  Bool                    m_noOutputOfPriorPicsFlags;
     144
     145  Bool                   m_bRefreshPending;
     146#endif
     147
    139148public:
    140149  TDecTop();
     
    239248  TComPic*  getMotionPredIlp(TComSlice* pcSlice);
    240249#endif
     250
     251#if NO_CLRAS_OUTPUT_FLAG
     252  Int  getNoClrasOutputFlag()                { return m_noClrasOutputFlag;}
     253  Void setNoClrasOutputFlag(Bool x)          { m_noClrasOutputFlag = x;   }
     254  Int  getLayerInitializedFlag()             { return m_layerInitializedFlag;}
     255  Void setLayerInitializedFlag(Bool x)       { m_layerInitializedFlag = x;   }
     256  Int  getFirstPicInLayerDecodedFlag()       { return m_firstPicInLayerDecodedFlag;}
     257  Void setFirstPicInLayerDecodedFlag(Bool x) { m_firstPicInLayerDecodedFlag = x;   }
     258  Int  getNoOutputOfPriorPicsFlags()         { return m_noOutputOfPriorPicsFlags;}
     259  Void setNoOutputOfPriorPicsFlags(Bool x)   { m_noOutputOfPriorPicsFlags = x;   }
     260#endif
    241261public:
    242262#if OUTPUT_LAYER_SET_INDEX
Note: See TracChangeset for help on using the changeset viewer.