Changeset 503 in SHVCSoftware for branches/SHM-4.1-dev/source


Ignore:
Timestamp:
22 Nov 2013, 00:12:21 (11 years ago)
Author:
interdigital
Message:

Integrated JCTVC-O0092/0094/0096

  1. Implement O1008 SHVC text pseudo code for direct/indirect reference layers detection
  2. constraint on the maximum number of reference layers
  3. constraint on the layer id of SPS/PPS
  4. identify SPS rep format with index into the list of rep format in VPS
  5. specify default direct dependency type in VPS
File:
1 edited

Legend:

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

    r502 r503  
    11811181  // Direct reference layers
    11821182  UInt maxDirectRefLayers = 0;
     1183#if O0096_DEFAULT_DEPENDENCY_TYPE
     1184  Bool isDefaultDirectDependencyTypeSet = false;
     1185#endif
    11831186  for(UInt layerCtr = 1;layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
    11841187  {
     
    12091212        vps->setDirectDependencyType( layerCtr, refLayerCtr, ((m_acTEncTop[layerCtr].getSamplePredEnabledFlag(refLayerCtr) ? 1 : 0) |
    12101213                                                              (m_acTEncTop[layerCtr].getMotionPredEnabledFlag(refLayerCtr) ? 2 : 0)) - 1);
     1214#if O0096_DEFAULT_DEPENDENCY_TYPE
     1215        if (!isDefaultDirectDependencyTypeSet)
     1216        {
     1217          vps->setDefaultDirectDependecyTypeFlag(1);
     1218          vps->setDefaultDirectDependecyType(vps->getDirectDependencyType(layerCtr, refLayerCtr));
     1219          isDefaultDirectDependencyTypeSet = true;
     1220        }
     1221        else if (vps->getDirectDependencyType(layerCtr, refLayerCtr) != vps->getDefaultDirectDependencyType())
     1222        {
     1223          vps->setDefaultDirectDependecyTypeFlag(0);
     1224        }
     1225#endif
    12111226      }
    12121227      else
     
    12171232#endif
    12181233  }
     1234
     1235#if O0092_0094_DEPENDENCY_CONSTRAINT
     1236  for(UInt layerCtr = 1;layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
     1237  {
     1238    vps->setNumRefLayers(vps->getLayerIdInNuh(layerCtr));   // identify the number of direct and indirect reference layers of current layer and set recursiveRefLayersFlags
     1239  }
     1240  if(vps->getMaxLayers() > MAX_REF_LAYERS)
     1241  {
     1242    for(UInt layerCtr = 1;layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
     1243    {
     1244      assert( vps->getNumRefLayers(vps->getLayerIdInNuh(layerCtr)) <= MAX_REF_LAYERS);
     1245    }
     1246  }
     1247#endif
    12191248#if IL_SL_SIGNALLING_N0371
    12201249  for(i = 1; i < vps->getMaxLayers(); i++)
Note: See TracChangeset for help on using the changeset viewer.