Changeset 978 in SHVCSoftware for branches/SHM-dev/source/App/TAppEncoder


Ignore:
Timestamp:
13 Jan 2015, 14:56:46 (10 years ago)
Author:
nokia
Message:

Implementation of JCTVC-R0071 - IRAP and EOS cross-layer impacts

Location:
branches/SHM-dev/source/App/TAppEncoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r958 r978  
    499499#endif
    500500  Int*    cfg_waveFrontSynchro[MAX_LAYERS];
     501#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     502  Int*    cfg_layerSwitchOffBegin[MAX_LAYERS];
     503  Int*    cfg_layerSwitchOffEnd[MAX_LAYERS];
     504#endif
    501505
    502506  for(UInt layer = 0; layer < MAX_LAYERS; layer++)
     
    593597#if AUXILIARY_PICTURES
    594598    cfg_auxId[layer]                = &m_acLayerCfg[layer].m_auxId;
     599#endif
     600#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     601    cfg_layerSwitchOffBegin[layer] = &m_acLayerCfg[layer].m_layerSwitchOffBegin;
     602    cfg_layerSwitchOffEnd[layer]   = &m_acLayerCfg[layer].m_layerSwitchOffEnd;
    595603#endif
    596604  }
     
    12351243  ("AdaptiveResolutionChange",     m_adaptiveResolutionChange, 0, "Adaptive resolution change frame number. Should coincide with EL RAP picture. (0: disable)")
    12361244#endif
     1245#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     1246  ("LayerSwitchOffBegin%d", cfg_layerSwitchOffBegin, 0, MAX_LAYERS, "Switch layer %d off after given poc")
     1247  ("LayerSwitchOffEnd%d", cfg_layerSwitchOffEnd, 0, MAX_LAYERS, "Switch layer %d on at given poc")
     1248#endif
    12371249#if HIGHER_LAYER_IRAP_SKIP_FLAG
    12381250  ("SkipPictureAtArcSwitch",     m_skipPictureAtArcSwitch, false, "Code the higher layer picture in ARC up-switching as a skip picture. (0: disable)")
     
    20182030  if (!m_outputBitDepthY) { m_outputBitDepthY = m_internalBitDepthY; }
    20192031  if (!m_outputBitDepthC) { m_outputBitDepthC = m_internalBitDepthC; }
     2032#endif
     2033
     2034#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     2035  for (Int layer = 0; layer < MAX_LAYERS; layer++)
     2036  {
     2037    if (m_acLayerCfg[layer].m_layerSwitchOffBegin < m_acLayerCfg[layer].m_layerSwitchOffEnd)
     2038    {
     2039      if (m_iGOPSize > 0 && (m_acLayerCfg[layer].m_layerSwitchOffBegin % m_iGOPSize) != 0)
     2040      {
     2041        printf("LayerSwitchOffBegin%d: Must be multiple of GOP size.\n", layer);
     2042        exit(EXIT_FAILURE);
     2043      }
     2044      if (m_acLayerCfg[layer].m_iIntraPeriod > 0 && (m_acLayerCfg[layer].m_layerSwitchOffEnd % m_acLayerCfg[layer].m_iIntraPeriod) != 0)
     2045      {
     2046        printf("LayerSwitchOffEnd%d: Must be IRAP picture.\n", layer);
     2047        exit(EXIT_FAILURE);
     2048      }
     2049    }
     2050  }
    20202051#endif
    20212052
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncLayerCfg.h

    r875 r978  
    149149#endif
    150150
     151#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     152  Int       m_layerSwitchOffBegin;
     153  Int       m_layerSwitchOffEnd;
     154#endif
     155
    151156public:
    152157  TAppEncLayerCfg();
  • branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r976 r978  
    776776#if M0040_ADAPTIVE_RESOLUTION_CHANGE
    777777    m_acTEncTop[layer].setAdaptiveResolutionChange( m_adaptiveResolutionChange );
     778#endif
     779#if R0071_IRAP_EOS_CROSS_LAYER_IMPACTS
     780    m_acTEncTop[layer].setLayerSwitchOffBegin(m_acLayerCfg[layer].m_layerSwitchOffBegin);
     781    m_acTEncTop[layer].setLayerSwitchOffEnd(m_acLayerCfg[layer].m_layerSwitchOffEnd);
    778782#endif
    779783#if AUXILIARY_PICTURES
Note: See TracChangeset for help on using the changeset viewer.