Ignore:
Timestamp:
28 May 2014, 13:26:07 (11 years ago)
Author:
nokia
Message:

JCTVC-Q0078/R0042: Additional layer sets and independent non-base layer rewriting tool (utils/BLRewrite)

File:
1 edited

Legend:

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

    r777 r778  
    11871187  }
    11881188#endif
     1189#if Q0078_ADD_LAYER_SETS
     1190#if O0092_0094_DEPENDENCY_CONSTRAINT // Moved here
     1191  vps->setNumRefLayers();
     1192
     1193  if (vps->getMaxLayers() > MAX_REF_LAYERS)
     1194  {
     1195    for (i = 1; i < vps->getMaxLayers(); i++)
     1196    {
     1197      assert(vps->getNumRefLayers(vps->getLayerIdInNuh(i)) <= MAX_REF_LAYERS);
     1198    }
     1199  }
     1200#endif
     1201  vps->setPredictedLayerIds();
     1202  vps->setTreePartitionLayerIdList();
     1203#endif
    11891204#if VPS_TSLAYERS
    11901205  READ_FLAG( uiCode, "vps_sub_layers_max_minus1_present_flag"); vps->setMaxTSLayersPresentFlag(uiCode ? true : false);
     
    12741289#endif
    12751290
     1291#if Q0078_ADD_LAYER_SETS
     1292  if (vps->getNumIndependentLayers() > 1)
     1293  {
     1294    READ_UVLC(uiCode, "num_add_layer_sets"); vps->setNumAddLayerSets(uiCode);
     1295    for (Int i = 0; i < vps->getNumAddLayerSets(); i++)
     1296    {
     1297      for (Int j = 1; j < vps->getNumIndependentLayers(); j++)
     1298      {
     1299        int len = 1;
     1300        while ((1 << len) < (vps->getNumLayersInTreePartition(j) + 1))
     1301        {
     1302          len++;
     1303        }
     1304        READ_CODE(len, uiCode, "highest_layer_idx_plus1[i][j]"); vps->setHighestLayerIdxPlus1(i, j, uiCode);
     1305      }
     1306    }
     1307
     1308    for (Int i = 0; i < vps->getNumAddLayerSets(); i++)
     1309    {
     1310      for (Int j = 1; j < vps->getNumIndependentLayers(); j++)
     1311      {
     1312        Int layerNum = 0;
     1313        Int lsIdx = vps->getNumLayerSets() + i;
     1314        for (Int layerId = 0; layerId <= 62; layerId++)
     1315        {
     1316          vps->setLayerIdIncludedFlag(false, lsIdx, layerId);
     1317          for (Int treeIdx = 1; treeIdx < vps->getNumIndependentLayers(); treeIdx++)
     1318          {
     1319            for (Int layerCnt = 0; layerCnt < vps->getHighestLayerIdxPlus1(i, j); layerCnt++)
     1320            {
     1321              vps->setLayerSetLayerIdList(lsIdx, layerNum, vps->getTreePartitionLayerId(treeIdx, layerCnt));
     1322              vps->setLayerIdIncludedFlag(true, lsIdx, vps->getTreePartitionLayerId(treeIdx, layerCnt));
     1323              layerNum++;
     1324            }
     1325          }
     1326        }
     1327        vps->setNumLayersInIdList(lsIdx, layerNum);
     1328      }
     1329    }
     1330  }
     1331#endif
     1332
    12761333#if !VPS_EXTN_UEV_CODING
    12771334  READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false );
     
    16761733  }
    16771734#endif
    1678 #if O0092_0094_DEPENDENCY_CONSTRAINT
     1735#if !Q0078_ADD_LAYER_SETS
     1736#if O0092_0094_DEPENDENCY_CONSTRAINT // Moved up
    16791737  vps->setNumRefLayers();
    16801738
     
    16861744    }
    16871745  }
     1746#endif
    16881747#endif
    16891748
Note: See TracChangeset for help on using the changeset viewer.