Changeset 805 in SHVCSoftware for branches/SHM-6-dev/source/Lib
- Timestamp:
- 17 Jun 2014, 16:58:15 (11 years ago)
- Location:
- branches/SHM-6-dev/source/Lib
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-6-dev/source/Lib/TLibCommon/TComRom.h
r778 r805 159 159 160 160 #ifndef ENC_DEC_TRACE 161 # define ENC_DEC_TRACE 1161 # define ENC_DEC_TRACE 0 162 162 #endif 163 163 -
branches/SHM-6-dev/source/Lib/TLibCommon/TComSlice.cpp
r799 r805 2711 2711 setNumIndependentLayers(numIndependentLayers); 2712 2712 } 2713 2714 void TComVPS::setLayerIdIncludedFlagsForAddLayerSets() 2715 { 2716 for (UInt i = 0; i < getNumAddLayerSets(); i++) 2717 { 2718 for (UInt j = 1; j < getNumIndependentLayers(); j++) 2719 { 2720 Int layerNum = 0; 2721 Int lsIdx = getVpsNumLayerSetsMinus1() + 1 + i; 2722 for (Int layerId = 0; layerId < MAX_VPS_LAYER_ID_PLUS1; layerId++) 2723 { 2724 setLayerIdIncludedFlag(false, lsIdx, layerId); 2725 } 2726 for (Int treeIdx = 1; treeIdx < getNumIndependentLayers(); treeIdx++) 2727 { 2728 for (Int layerCnt = 0; layerCnt < getHighestLayerIdxPlus1(i, j); layerCnt++) 2729 { 2730 setLayerSetLayerIdList(lsIdx, layerNum, getTreePartitionLayerId(treeIdx, layerCnt)); 2731 setLayerIdIncludedFlag(true, lsIdx, getTreePartitionLayerId(treeIdx, layerCnt)); 2732 layerNum++; 2733 } 2734 } 2735 setNumLayersInIdList(lsIdx, layerNum); 2736 } 2737 } 2738 } 2739 2713 2740 #endif 2714 2741 -
branches/SHM-6-dev/source/Lib/TLibCommon/TComSlice.h
r798 r805 140 140 141 141 Void create (Int numberOfEntries); 142 #if Q0078_ADD_LAYER_SETS143 Void copy(TComRPSList& a);144 #endif145 142 Void destroy(); 146 143 … … 487 484 #if SVC_EXTENSION 488 485 #if DERIVE_LAYER_ID_LIST_VARIABLES 486 #if Q0078_ADD_LAYER_SETS 487 Int m_layerSetLayerIdList[MAX_VPS_LAYER_SETS_PLUS1 + MAX_NUM_ADD_LAYER_SETS][MAX_VPS_LAYER_ID_PLUS1]; 488 Int m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1 + MAX_NUM_ADD_LAYER_SETS]; 489 #else 489 490 Int m_layerSetLayerIdList[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 490 491 Int m_numLayerInIdList[MAX_VPS_LAYER_SETS_PLUS1]; 492 #endif 491 493 #endif 492 494 #if !P0125_REVERT_VPS_EXTN_OFFSET_TO_RESERVED … … 498 500 UInt m_numLayerSets; 499 501 #if Q0078_ADD_LAYER_SETS 500 Bool m_layerIdIncludedFlag[2*MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 502 UInt m_vpsNumLayerSetsMinus1; 503 Bool m_layerIdIncludedFlag[MAX_VPS_LAYER_SETS_PLUS1 + MAX_NUM_ADD_LAYER_SETS][MAX_VPS_LAYER_ID_PLUS1]; 501 504 #else 502 505 Bool m_layerIdIncludedFlag[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; … … 520 523 #endif 521 524 #if BITRATE_PICRATE_SIGNALLING 525 #if Q0078_ADD_LAYER_SETS 526 UInt m_maxSLInLayerSetMinus1[MAX_VPS_LAYER_SETS_PLUS1 + MAX_NUM_ADD_LAYER_SETS]; 527 #else 522 528 UInt m_maxSLInLayerSetMinus1[MAX_VPS_LAYER_SETS_PLUS1]; 529 #endif 523 530 #endif 524 531 … … 536 543 // Target output layer signalling related 537 544 UInt m_numOutputLayerSets; 545 #if Q0078_ADD_LAYER_SETS 546 UInt m_outputLayerSetIdx[MAX_VPS_LAYER_SETS_PLUS1 + 2*MAX_NUM_ADD_LAYER_SETS]; 547 Bool m_outputLayerFlag[MAX_VPS_LAYER_SETS_PLUS1 + 2*MAX_NUM_ADD_LAYER_SETS][MAX_VPS_LAYER_ID_PLUS1]; 548 #else 538 549 UInt m_outputLayerSetIdx[MAX_VPS_LAYER_SETS_PLUS1]; 539 550 Bool m_outputLayerFlag[MAX_VPS_LAYER_SETS_PLUS1][MAX_VPS_LAYER_ID_PLUS1]; 551 #endif 540 552 #endif 541 553 #if VPS_EXTN_DIRECT_REF_LAYERS … … 633 645 634 646 #if P0300_ALT_OUTPUT_LAYER_FLAG 647 #if Q0078_ADD_LAYER_SETS 648 Bool m_altOutputLayerFlag[MAX_VPS_LAYER_SETS_PLUS1 + 2*MAX_NUM_ADD_LAYER_SETS]; 649 #else 635 650 Bool m_altOutputLayerFlag[MAX_VPS_LAYER_SETS_PLUS1]; 651 #endif 636 652 #else 637 653 #if O0153_ALT_OUTPUT_LAYER_FLAG … … 664 680 #if Q0078_ADD_LAYER_SETS 665 681 Int m_numAddLayerSets; 666 UInt m_highestLayerIdxPlus1[MAX_ VPS_LAYER_SETS_PLUS1][MAX_NUM_LAYER_IDS];667 UInt m_predictedLayerId[MAX_NUM_LAYER_IDS][ 64];682 UInt m_highestLayerIdxPlus1[MAX_NUM_ADD_LAYER_SETS][MAX_NUM_LAYER_IDS]; 683 UInt m_predictedLayerId[MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS]; 668 684 UInt m_numPredictedLayers[MAX_NUM_LAYER_IDS]; 669 685 Int m_numIndependentLayers; … … 684 700 Int m_maxVpsLatencyIncreasePlus1 [MAX_VPS_OP_LAYER_SETS_PLUS1][MAX_LAYERS]; 685 701 #if CHANGE_NUMSUBDPB_IDX 702 #if Q0078_ADD_LAYER_SETS 703 Int m_numSubDpbs [MAX_VPS_LAYER_SETS_PLUS1 + 2*MAX_NUM_ADD_LAYER_SETS]; 704 #else 686 705 Int m_numSubDpbs [MAX_VPS_LAYER_SETS_PLUS1]; 706 #endif 687 707 #else 688 708 Int m_numSubDpbs [MAX_VPS_OP_LAYER_SETS_PLUS1]; … … 816 836 #endif 817 837 #if Q0078_ADD_LAYER_SETS 838 void setLayerIdIncludedFlagsForAddLayerSets(); 839 UInt getVpsNumLayerSetsMinus1() { return m_vpsNumLayerSetsMinus1; } 840 Void setVpsNumLayerSetsMinus1(UInt x) { m_vpsNumLayerSetsMinus1 = x; } 818 841 UInt getNumAddLayerSets() { return m_numAddLayerSets; } 819 842 Void setNumAddLayerSets(UInt x) { m_numAddLayerSets = x; } 820 UInt getHighestLayerIdxPlus1(UInt set, UInt idx) 821 Void setHighestLayerIdxPlus1(UInt set, UInt idx, UInt layerIdx) 843 UInt getHighestLayerIdxPlus1(UInt set, UInt idx) { return m_highestLayerIdxPlus1[set][idx]; } 844 Void setHighestLayerIdxPlus1(UInt set, UInt idx, UInt layerIdx) { m_highestLayerIdxPlus1[set][idx] = layerIdx; } 822 845 Void setPredictedLayerIds(); 823 846 UInt getPredictedLayerId(UInt layerIdx, UInt predIdx) { return m_predictedLayerId[layerIdx][predIdx]; } -
branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h
r804 r805 204 204 205 205 #define Q0078_ADD_LAYER_SETS 1 ///< JCTVC-Q0078: additional layer sets and layer set config 206 #if Q0078_ADD_LAYER_SETS 207 #define MAX_NUM_ADD_LAYER_SETS 1023 208 #endif 206 209 207 210 #define VPS_DPB_SIZE_TABLE 1 ///< JCTVC-O0217: DPB operations: signaling DPB-related parameters -
branches/SHM-6-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r802 r805 973 973 assert( pcVPS->getMaxLayerId() < MAX_VPS_LAYER_ID_PLUS1 ); 974 974 READ_CODE( 6, uiCode, "vps_max_layer_id" ); pcVPS->setMaxLayerId( uiCode ); 975 #if Q0078_ADD_LAYER_SETS 976 READ_UVLC(uiCode, "vps_num_layer_sets_minus1"); pcVPS->setVpsNumLayerSetsMinus1(uiCode); 977 pcVPS->setNumLayerSets(pcVPS->getVpsNumLayerSetsMinus1() + 1); 978 for (UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx++) 979 #else 975 980 READ_UVLC( uiCode, "vps_num_layer_sets_minus1" ); pcVPS->setNumLayerSets( uiCode + 1 ); 976 981 for( UInt opsIdx = 1; opsIdx <= ( pcVPS->getNumLayerSets() - 1 ); opsIdx ++ ) 982 #endif 977 983 { 978 984 // Operation point set … … 1310 1316 } 1311 1317 } 1312 1313 for (i = 0; i < vps->getNumAddLayerSets(); i++) 1314 { 1315 for (j = 1; j < vps->getNumIndependentLayers(); j++) 1316 { 1317 Int layerNum = 0; 1318 Int lsIdx = vps->getNumLayerSets() + i; 1319 for (Int layerId = 0; layerId < MAX_VPS_LAYER_ID_PLUS1; layerId++) 1320 { 1321 vps->setLayerIdIncludedFlag(false, lsIdx, layerId); 1322 } 1323 for (Int treeIdx = 1; treeIdx < vps->getNumIndependentLayers(); treeIdx++) 1324 { 1325 for (Int layerCnt = 0; layerCnt < vps->getHighestLayerIdxPlus1(i, j); layerCnt++) 1326 { 1327 vps->setLayerSetLayerIdList(lsIdx, layerNum, vps->getTreePartitionLayerId(treeIdx, layerCnt)); 1328 vps->setLayerIdIncludedFlag(true, lsIdx, vps->getTreePartitionLayerId(treeIdx, layerCnt)); 1329 layerNum++; 1330 } 1331 } 1332 vps->setNumLayersInIdList(lsIdx, layerNum); 1333 } 1334 } 1318 vps->setNumLayerSets(vps->getNumLayerSets() + vps->getNumAddLayerSets()); 1319 vps->setLayerIdIncludedFlagsForAddLayerSets(); 1335 1320 } 1336 1321 #endif … … 1394 1379 vps->setOutputLayerSetIdx( i, i ); 1395 1380 } 1381 #if Q0078_ADD_LAYER_SETS 1382 if ( i > vps->getVpsNumLayerSetsMinus1() || vps->getDefaultTargetOutputLayerIdc() >= 2 ) 1383 #else 1396 1384 if ( i > (vps->getNumLayerSets() - 1) || vps->getDefaultTargetOutputLayerIdc() >= 2 ) 1385 #endif 1397 1386 { 1398 1387 Int lsIdx = vps->getOutputLayerSetIdx(i); … … 2135 2124 Bool parseFlag = vps->getBitRatePresentVpsFlag() || vps->getPicRatePresentVpsFlag(); 2136 2125 2126 #if Q0078_ADD_LAYER_SETS 2127 for( i = 0; i <= vps->getVpsNumLayerSetsMinus1(); i++ ) 2128 #else 2137 2129 for( i = 0; i < vps->getNumLayerSets(); i++ ) 2130 #endif 2138 2131 { 2139 2132 #if BITRATE_PICRATE_SIGNALLING … … 2367 2360 parseHrdParameters(vps->getBspHrd(i), i==0 ? 1 : vps->getBspCprmsPresentFlag(i), vps->getMaxTLayers()-1); 2368 2361 } 2362 #if Q0078_ADD_LAYER_SETS 2363 for (UInt h = 1; h <= vps->getVpsNumLayerSetsMinus1(); h++) 2364 #else 2369 2365 for( UInt h = 1; h <= (vps->getNumLayerSets()-1); h++ ) 2366 #endif 2370 2367 { 2371 2368 READ_UVLC( uiCode, "num_bitstream_partitions[i]"); vps->setNumBitstreamPartitions(h, uiCode); … … 2776 2773 if(rpcSlice->getVPS()->getVpsExtensionFlag()==1) 2777 2774 { 2775 #if Q0078_ADD_LAYER_SETS 2776 for (Int ii = 1; ii < (rpcSlice->getVPS()->getVpsNumLayerSetsMinus1() + 1); ii++) // prevent assert error when num_add_layer_sets > 0 2777 #else 2778 2778 for (Int ii=1; ii< rpcSlice->getVPS()->getNumOutputLayerSets(); ii++ ) 2779 #endif 2779 2780 { 2780 2781 Int layerSetIdxForOutputLayerSet = rpcSlice->getVPS()->getOutputLayerSetIdx( ii ); … … 2789 2790 if(chkAssert) 2790 2791 { 2792 // There may be something wrong here (layer id assumed to be layer idx?) 2791 2793 assert(rps->getNumberOfNegativePictures() <= rpcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1(ii , rpcSlice->getLayerId() , rpcSlice->getVPS()->getMaxSLayersInLayerSetMinus1(ii))); 2792 2794 assert(rps->getNumberOfPositivePictures() <= rpcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1(ii , rpcSlice->getLayerId() , rpcSlice->getVPS()->getMaxSLayersInLayerSetMinus1(ii)) - rps->getNumberOfNegativePictures()); -
branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r802 r805 745 745 #endif 746 746 WRITE_CODE( pcVPS->getMaxLayerId(), 6, "vps_max_layer_id" ); 747 #if Q0078_ADD_LAYER_SETS 748 WRITE_UVLC(pcVPS->getVpsNumLayerSetsMinus1(), "vps_num_layer_sets_minus1"); 749 for (UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx++) 750 #else 747 751 WRITE_UVLC( pcVPS->getNumLayerSets() - 1, "vps_num_layer_sets_minus1" ); 748 for( UInt opsIdx = 1; opsIdx <= ( pcVPS->getNumLayerSets() - 1 ); opsIdx ++ ) 752 for (UInt opsIdx = 1; opsIdx <= (pcVPS->getNumLayerSets() - 1); opsIdx++) 753 #endif 749 754 { 750 755 // Operation point set … … 1065 1070 #if P0295_DEFAULT_OUT_LAYER_IDC 1066 1071 } 1072 #if Q0078_ADD_LAYER_SETS 1073 if ( i > vps->getVpsNumLayerSetsMinus1() || vps->getDefaultTargetOutputLayerIdc() >= 2 ) //Instead of == 2, >= 2 is used to follow the agreement that value 3 should be interpreted as 2 1074 #else 1067 1075 if ( i > (vps->getNumLayerSets() - 1) || vps->getDefaultTargetOutputLayerIdc() >= 2 ) //Instead of == 2, >= 2 is used to follow the agreement that value 3 should be interpreted as 2 1076 #endif 1068 1077 { 1069 1078 #endif … … 1469 1478 if( vps->getBitRatePresentVpsFlag() || vps->getPicRatePresentVpsFlag() ) 1470 1479 { 1480 #if Q0078_ADD_LAYER_SETS 1481 for( i = 0; i <= vps->getVpsNumLayerSetsMinus1(); i++ ) 1482 #else 1471 1483 for( i = 0; i < vps->getNumLayerSets(); i++ ) 1484 #endif 1472 1485 { 1473 1486 #if BITRATE_PICRATE_SIGNALLING … … 1641 1654 codeHrdParameters(vps->getBspHrd(i), i==0 ? 1 : vps->getBspCprmsPresentFlag(i), vps->getMaxTLayers()-1); 1642 1655 } 1656 #if Q0078_ADD_LAYER_SETS 1657 for( UInt h = 1; h <= vps->getVpsNumLayerSetsMinus1(); h++ ) 1658 #else 1643 1659 for( UInt h = 1; h <= (vps->getNumLayerSets()-1); h++ ) 1660 #endif 1644 1661 { 1645 1662 WRITE_UVLC( vps->getNumBitstreamPartitions(h), "num_bitstream_partitions[i]");
Note: See TracChangeset for help on using the changeset viewer.