Changeset 973 in 3DVCSoftware
- Timestamp:
- 6 Jul 2014, 04:44:14 (10 years ago)
- Location:
- branches/HTM-11.1-dev0/source
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-11.1-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r964 r973 71 71 #endif 72 72 73 #if H_MV _HLS_7_VPS_P0300_2773 #if H_MV 74 74 m_markedForOutput = false; 75 75 #endif … … 161 161 Int pocLastPic = -MAX_INT; 162 162 163 #if H_MV_HLS_7_VPS_P0300_27164 163 Int layerIdLastPic = -MAX_INT; 165 #endif166 164 Int layerIdCurrPic = 0; 167 165 … … 216 214 || (nalu.m_nalUnitType == NAL_UNIT_VPS && nalu.m_layerId > 0) 217 215 || (nalu.m_nalUnitType == NAL_UNIT_EOB && nalu.m_layerId > 0) 218 #if H_MV_HLS_8_MIS_Q0177_47219 216 || (nalu.m_nalUnitType == NAL_UNIT_EOS && nalu.m_layerId > 0) 220 #endif221 217 ) 222 218 { … … 237 233 // - nalu.isSlice() == true 238 234 239 #if H_MV_HLS_7_VPS_P0300_27240 235 if ( nalu.m_nalUnitType == NAL_UNIT_VPS ) 241 236 { … … 244 239 { 245 240 TComVPS* vps = m_vps; 246 #else247 // Update TargetDecLayerIdList only when not specified by layer id file, specification by file might actually out of conformance.248 if (nalu.m_nalUnitType == NAL_UNIT_VPS && m_targetDecLayerIdSetFileEmpty )249 {250 TComVPS* vps = m_tDecTop[decIdx]->getPrefetchedVPS();251 #endif252 241 if ( m_targetOptLayerSetIdx == -1 ) 253 242 { … … 255 244 m_targetOptLayerSetIdx = vps->getVpsNumLayerSetsMinus1(); 256 245 } 257 #if H_MV_HLS_8_HRD_Q0102_08 246 258 247 for (Int dI = 0; dI < m_numDecoders; dI++ ) 259 248 { 260 249 m_tDecTop[decIdx]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 261 250 } 262 #endif263 251 264 252 if ( m_targetOptLayerSetIdx < 0 || m_targetOptLayerSetIdx >= vps->getNumOutputLayerSets() ) … … 269 257 m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx ); 270 258 } 271 #if H_MV_HLS_7_VPS_P0300_27 272 } 273 #endif 259 } 274 260 #if H_3D 275 261 if (nalu.m_nalUnitType == NAL_UNIT_VPS ) … … 289 275 if ( bNewPicture || !bitstreamFile ) 290 276 { 291 #if H_MV_HLS_7_VPS_P0300_27292 277 layerIdLastPic = layerIdCurrPic; 293 #endif294 278 layerIdCurrPic = nalu.m_layerId; 295 279 pocLastPic = pocCurrPic; … … 340 324 assert( decIdxLastPic != -1 ); 341 325 m_tDecTop[decIdxLastPic]->endPicDecoding(poc, pcListPic, m_targetDecLayerIdSet ); 342 #if H_MV_HLS_7_VPS_P0300_27343 326 xMarkForOutput( allLayersDecoded, poc, layerIdLastPic ); 344 #endif345 327 #else 346 328 m_cTDecTop.executeLoopFilters(poc, pcListPic); … … 799 781 } 800 782 pcPic->setOutputMark(false); 801 #if H_MV _HLS_7_VPS_P0300_27783 #if H_MV 802 784 pcPic->setPicOutputFlag(false); 803 785 #endif … … 985 967 } 986 968 pcPic->setOutputMark(false); 987 #if H_MV _HLS_7_VPS_P0300_27969 #if H_MV 988 970 pcPic->setPicOutputFlag(false); 989 971 #endif … … 1061 1043 m_tDecTop[ decIdx ]->setIvPicLists( &m_ivPicLists ); 1062 1044 m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags ); 1063 #if H_MV_HLS_8_HRD_Q0102_081064 1045 m_tDecTop[ decIdx ]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 1065 #endif1066 1046 1067 1047 #if H_3D … … 1099 1079 } 1100 1080 1101 1102 #if H_MV_HLS_7_VPS_P0300_271103 1081 Void TAppDecTop::xMarkForOutput( Bool allLayersDecoded, Int pocLastPic, Int layerIdLastPic ) 1104 1082 { … … 1152 1130 } 1153 1131 } 1154 #endif 1132 1133 Void TAppDecTop::xMarkAltOutPic( Int targetOutputLayer, Int pocLastPic ) 1134 { 1135 Int optLayerIdxInVps = m_vps->getLayerIdInNuh( targetOutputLayer ); 1136 Int highestNuhLayerId = -1; 1137 TComPic* picWithHighestNuhLayerId = NULL; 1138 for (Int dIdx = 0; dIdx < m_numDecoders; dIdx++) 1139 { 1140 Int curLayerId = m_tDecTop[dIdx]->getLayerId(); 1141 Int curLayerIdxInVps = m_vps->getLayerIdInNuh( curLayerId ); 1142 if ( m_vps->getInDirectDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) ) 1143 { 1144 TComPic* curPic = m_ivPicLists.getPic( curLayerId, pocLastPic ); 1145 if (curPic != NULL) 1146 { 1147 if (curPic->getReconMark() && curPic->getPicOutputFlag() ) 1148 { 1149 curPic->setOutputMark ( false ); 1150 curPic->setPicOutputFlag( false ); 1151 if ( curLayerId > highestNuhLayerId) 1152 { 1153 highestNuhLayerId = curLayerId ; 1154 picWithHighestNuhLayerId = curPic; 1155 } 1156 } 1157 } 1158 } 1159 } 1160 if ( picWithHighestNuhLayerId != NULL ) 1161 { 1162 picWithHighestNuhLayerId->setPicOutputFlag(true); 1163 picWithHighestNuhLayerId->setOutputMark (true); 1164 } 1165 } 1166 1155 1167 #endif 1156 1168 //! \} -
branches/HTM-11.1-dev0/source/App/TAppDecoder/TAppDecTop.h
r964 r973 68 68 TComPicLists m_ivPicLists; ///< picture buffers of decoder instances 69 69 Bool m_layerInitilizedFlags[ MAX_NUM_LAYER_IDS ]; ///< for layerwise startup 70 #if H_MV_HLS_7_VPS_P0300_2771 70 TComVPS* m_vps; ///< active VPS 72 #endif73 71 #else 74 72 TDecTop m_cTDecTop; ///< decoder class … … 79 77 Int m_pocLastDisplay [ MAX_NUM_LAYERS ]; ///< last POC in display order 80 78 Bool m_reconOpen [ MAX_NUM_LAYERS ]; ///< reconstruction file opened 79 Bool m_markedForOutput; 81 80 #else 82 81 Int m_iPOCLastDisplay; ///< last POC in display order 83 82 #endif 84 #if H_MV_HLS_7_VPS_P0300_2785 Bool m_markedForOutput;86 #endif87 88 83 89 84 #if H_3D … … 107 102 Void xWriteOutput ( TComList<TComPic*>* pcListPic, Int layerId, Int tId ); ///< write YUV to file 108 103 109 #if H_MV_HLS_7_VPS_P0300_27110 104 Void xMarkForOutput ( Bool allLayersDecoded, Int pocLastPic, Int layerIdLastPic ); 111 Void xMarkAltOutPic ( Int targetOutputLayer, Int pocLastPic ) 112 { 113 Int optLayerIdxInVps = m_vps->getLayerIdInNuh( targetOutputLayer ); 114 Int highestNuhLayerId = -1; 115 TComPic* picWithHighestNuhLayerId = NULL; 116 for (Int dIdx = 0; dIdx < m_numDecoders; dIdx++) 117 { 118 Int curLayerId = m_tDecTop[dIdx]->getLayerId(); 119 Int curLayerIdxInVps = m_vps->getLayerIdInNuh( curLayerId ); 120 if ( m_vps->getInDirectDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) ) 121 { 122 TComPic* curPic = m_ivPicLists.getPic( curLayerId, pocLastPic ); 123 if (curPic != NULL) 124 { 125 if (curPic->getReconMark() && curPic->getPicOutputFlag() ) 126 { 127 curPic->setOutputMark ( false ); 128 curPic->setPicOutputFlag( false ); 129 if ( curLayerId > highestNuhLayerId) 130 { 131 highestNuhLayerId = curLayerId ; 132 picWithHighestNuhLayerId = curPic; 133 } 134 } 135 } 136 } 137 } 138 if ( picWithHighestNuhLayerId != NULL ) 139 { 140 picWithHighestNuhLayerId->setPicOutputFlag(true); 141 picWithHighestNuhLayerId->setOutputMark (true); 142 } 143 } 144 #endif 105 Void xMarkAltOutPic ( Int targetOutputLayer, Int pocLastPic ); 145 106 146 107 Void xFlushOutput ( TComList<TComPic*>* pcListPic, Int layerId ); ///< flush all remaining decoded pictures to file -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r969 r973 393 393 ("LayerIdsInAddOutputLayerSet_%d", m_layerIdsInAddOutputLayerSet , std::vector<Int>(0,0), MAX_VPS_ADD_OUTPUT_LAYER_SETS, "Indices in VPS of output layers in additional output layer set") 394 394 ("LayerIdsInDefOutputLayerSet_%d", m_layerIdsInDefOutputLayerSet , std::vector<Int>(0,0), MAX_VPS_OP_SETS_PLUS1, "Indices in VPS of output layers in layer set") 395 #if H_MV_HLS_7_VPS_P0300_27396 395 ("AltOutputLayerFlag", m_altOutputLayerFlag , std::vector<Bool>(1,0), "Alt output layer flag") 397 #endif398 396 ("ProfileLevelTierIdx", m_profileLevelTierIdx, std::vector<Int>(1,0), "Indices to profile level tier") 399 397 … … 1056 1054 xResizeVector( m_wppInUseFlag ); 1057 1055 1058 #if H_MV_HLS_7_VPS_P0300_271059 1056 for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + (Int) m_outputLayerSetIdx.size(); olsIdx++) 1060 1057 { 1061 1058 m_altOutputLayerFlag.push_back( false ); 1062 1059 } 1063 #endif1064 1060 #else 1065 1061 m_aidQP = new Int[ m_framesToBeEncoded + m_iGOPSize + 1 ]; … … 1463 1459 } 1464 1460 1465 #if H_MV_HLS_7_VPS_P0300_271466 1461 xConfirmPara( m_altOutputLayerFlag.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" ); 1467 #endif1468 1462 xConfirmPara( m_profileLevelTierIdx.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" ); 1469 1463 -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncCfg.h
r969 r973 94 94 std::vector< std::vector<Int> > m_layerIdsInDefOutputLayerSet; ///< Indices in vps of output layers in layer sets 95 95 std::vector<Int> m_profileLevelTierIdx; ///< Indices of of profile level tier 96 #if H_MV_HLS_7_VPS_P0300_2797 96 std::vector<Bool> m_altOutputLayerFlag; ///< Alt output layer flag 98 #endif99 97 100 98 // Dependencies -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r971 r973 1280 1280 1281 1281 Int defaultDirectDependencyType = -1; 1282 #if MV_FIX_DEP_TYPES1283 1282 Bool defaultDirectDependencyFlag = false; 1284 #else1285 Bool defaultDirectDependencyFlag = true;1286 #endif1287 1283 1288 1284 for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ ) … … 1303 1299 { 1304 1300 defaultDirectDependencyType = curDirectDependencyType; 1305 #if MV_FIX_DEP_TYPES1306 1301 defaultDirectDependencyFlag = true; 1307 #endif1308 1302 } 1309 1303 … … 1644 1638 vps.setProfileLevelTierIdx( olsIdx, m_profileLevelTierIdx[ olsIdx ] ); 1645 1639 } 1646 #if H_MV_HLS_7_VPS_P0300_27 1640 1647 1641 if ( vps.getNumOutputLayersInOutputLayerSet( olsIdx ) == 1 && 1648 1642 vps.getNumDirectRefLayers( vps.getOlsHighestOutputLayerId( olsIdx ) ) ) … … 1658 1652 } 1659 1653 } 1660 #else1661 vps.setAltOutputLayerFlag( olsIdx , false);1662 #endif1663 1654 } 1664 1655 } -
branches/HTM-11.1-dev0/source/App/TAppEncoder/TAppEncTop.h
r964 r973 75 75 76 76 TComPicLists m_ivPicLists; ///< picture buffers of encoder instances 77 #if H_MV _HLS_877 #if H_MV 78 78 TComVPS* m_vps; ///< vps 79 79 #else -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComPic.cpp
r964 r973 55 55 , m_bReconstructed (false) 56 56 , m_bNeededForOutput (false) 57 #if H_MV _HLS_7_VPS_P0300_2757 #if H_MV 58 58 , m_bPicOutputFlag (false) 59 59 #endif -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComPic.h
r964 r973 69 69 Bool m_bReconstructed; 70 70 Bool m_bNeededForOutput; 71 #if H_MV _HLS_7_VPS_P0300_2771 #if H_MV 72 72 Bool m_bPicOutputFlag; // Semantics variable 73 73 #endif … … 178 178 Void setOutputMark (Bool b) { m_bNeededForOutput = b; } 179 179 Bool getOutputMark () { return m_bNeededForOutput; } 180 #if H_MV _HLS_7_VPS_P0300_27180 #if H_MV 181 181 Void setPicOutputFlag(Bool b) { m_bPicOutputFlag = b; } 182 182 Bool getPicOutputFlag() { return m_bPicOutputFlag ; } -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r971 r973 4407 4407 } 4408 4408 } 4409 #endif 4409 4410 Void Window::scaleOffsets( Int scal ) 4411 { 4412 if (! m_scaledFlag ) 4413 { 4414 m_scaledFlag = true; 4415 m_winLeftOffset *= scal; 4416 m_winRightOffset *= scal; 4417 m_winTopOffset *= scal; 4418 m_winBottomOffset *= scal; 4419 } 4420 } 4421 #endif 4422 -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TComSlice.h
r971 r973 1246 1246 Void setScaledFlag(Bool flag) { m_scaledFlag = flag; } 1247 1247 Bool getScaledFlag() const { return m_scaledFlag; } 1248 Void scaleOffsets( Int scal ) 1249 { 1250 if (! m_scaledFlag ) 1251 { 1252 m_scaledFlag = true; 1253 m_winLeftOffset *= scal; 1254 m_winRightOffset *= scal; 1255 m_winTopOffset *= scal; 1256 m_winBottomOffset *= scal; 1257 } 1258 } 1248 Void scaleOffsets( Int scal ); 1259 1249 #endif 1260 1250 Void setWindow(Int offsetLeft, Int offsetLRight, Int offsetLTop, Int offsetLBottom) -
branches/HTM-11.1-dev0/source/Lib/TLibCommon/TypeDef.h
r971 r973 336 336 #endif 337 337 338 339 ///////////////////////////////////////////////////////////////////////////////////////// 340 /////////////////////////////////// HTM-11.0 Integrations ////////////////////////////// 341 ///////////////////////////////////////////////////////////////////////////////////////// 342 #if H_MV 343 #define H0044_POC_LSB_NOT_PRESENT 1 ///< JCT3V-H0044: Add constraint checking on the value of poc_reset_idc and poc_lsb_val 344 #define H0056_EOS_CHECKS 1 ///< JCT3V-H0056: Put checks on handling EOS 345 #endif 346 ///////////////////////////////////////////////////////////////////////////////////////// 347 /////////////////////////////////// TBD ////////////////////////////// 348 ///////////////////////////////////////////////////////////////////////////////////////// 349 350 351 #define H_MV_HLS_8 1 // General changes 352 #define H_MV_HLS_7_VPS_P0300_27 1 // Output part only. (VPS/P0300/alt output layer flag) #27 Change alt output layer flag to be signalled within the loop of output layer sets, from JCTVC-P0300-v2. Decision: Adopt. 353 #define MV_FIX_DEP_TYPES 1 354 355 338 ///////////////////////////////////////////////////////////////////////////////// 339 /////////////////////////////////// MV_HEVC HLS ////////////////////////////// 340 ///////////////////////////////////////////////////////////////////////////////// 341 // TBD: Check if integration is necessary. 356 342 #define H_MV_HLS7_GEN 0 // General changes (not tested) 357 343 … … 399 385 //#define H_MV_HLS_8_MIS_Q0078_24 0 // #24 (MISC /Q0078/scan and pic type) , Items 3 b,c and 4, clarifying which pictures in an output layer sets are applied the values of general_progressive_source_flag, general_interlaced_source_flag, general_non_packed_constraint_flag and general_frame_only_constraint_flag. 400 386 //#define H_MV_HLS_7_HRD_P0138_6 0 // (HRD/P0138/HRD parameters for bitstreams excluding) #6 Decision: Adopt (as revised in updated contribution, with the specification of a flag in the BP SEI (HRD/P0192/sub-DPB) #12 Establish sub-DPBs based on the representation format indicated at the VPS level. It was suggested that the expressed shared capacity limit would need to be less than or equal to the sum of the individual capacity limits. Decision: Adopt as modified. Further study is encouraged on profile/level constraint selections. 401 402 #define H_MV_HLS_8_SYN_Q0041_03 1 // #3 Syntax only (HS /Q0041/hybrid scalability) The proposed text was endorsed, with non-editorial open issues considered as follows403 :// #define H_MV_HLS_7_OTHER_P0187_1 0 // (OTHER/P0187/NoOutputOfPriorPicsFlag) #1 Inference of NoOutputOfPriorPicsFlag and proposes to take into account colour format and bit depth for the inference in addition to spatial resolution404 #define H_MV_HLS_8_SYN_39_19 1 // #39 Syntax only + (PS/Q0165,Q0078/presence of num_add_output_layer_sets) proposal 2. change condition for presence of num_add_output_layer_sets to avoid sending it when there is only one layer set.405 #define H_MV_HLS_8_HRD_Q0101_04 1 // #4 (HRD /Q0101/Bitstream part buffer) On Bitstream Partition Buffer. Decision (BF/Cleanup): Adopt (sub-proposals 111, refined as described).406 #define H_MV_HLS_8_PPS_NODOC_NN 1 // #NN (PPS /NODOC/reserved flag): Add a flag in PPS for SHVC color gamut scalability407 #define H_MV_HLS_8_MIS_Q0177_47 1 // #47 (MISC /Q0177/EOS NAL) proposal 2: clarification of description of end of sequence NAL unit408 #define H_MV_HLS_8_HRD_Q0182_05 1 // #5 (HRD /Q0182/Bitstream part buffer) Decision (BF/Cleanup/Ed): Adopted (such that we use the main proposal for sub-proposal 1, and alternative 1 for sub-proposal 2). + #define H_MV_HLS_8_HRD_Q0182_06 0 // #6 (HRD /Q0182/hrd_parameters) Sub-proposal 2 Alternative 1: Clarify that the VPS hrd_parameters( ) syntax structure that applies to the layer set which is associated with the bitstream partition initial arrival time SEI message is used to determine the lengths of the nal_initial_arrival_delay[ i ] and vcl_initial_arrival_delay[ i ] syntax elements. Decision (BF/Cleanup/Ed): Adopted alternative 1 for sub-proposal 2409 #define H_MV_HLS_8_SPS_NODOC_48 1 // #48 (SPS /NODOC/PPS extension cleanups) Alignment with RExt410 #define H_MV_HLS_8_DBP_NODOC_42 1 // #42 (DBP /NODOC/sharing) Remove sub-DPB sharing and processes that mark inter-layer reference pictures as "unused for reference"411 #define H_MV_HLS_8_RPS_Q0100_36 1 // #36 (RPS /Q0100/constraint to semantics) v3, add constraint to RPS semantics412 #define H_MV_HLS_8_POC_Q0142_32 1 // #32 (POC /Q0142/poc_lsb_not_present_flag) v2: Add semantic constraints to poc_lsb_not_present_flag.413 #define H_MV_HLS_8_HRD_Q0102_08 1 // #8 (HRD /Q0102/sps_max_dec_pic_buffering_minus1) Sub-proposal 2: A semantics bug fix is proposed for sps_max_dec_pic_buffering_minus1 as a bug-fix. In discussion, the first option was preferred. Decision (BF/Cleanup/Ed.): Adopt.414 #define H_MV_HLS_8_MIS_Q0102_30 1 // #30 (MISC /Q0102/loop index) proposal 3, change the max loop index for signaling bit rate and pic rate info to MaxSubLayersInLayerSetMinus1415 #define H_MV_HLS_8_GEN_Q0108_13 1 // #13 (GEN /Q0108/STSA TemporalId) Agreed to remove restriction from proposal 2, to allow STSA pics of non-base layers to have TemporalId equal to 0.416 #define H_MV_HLS_8_PMS_Q0195_21 1 // #21 (PS /Q0195/constraint update_ref_format_flag) proposal 2: add a semantic constraint on the value of update_ref_format_flag417 #define H_MV_HLS_8_PMS_Q0195_20 1 // #20 (PS /Q0195/syntax table rep format) proposal 1: restructure syntax table for sending of rep_format_idx_present_flag and vps_num_ref_formats_minus1418 #define H_MV_HLS_8_MIS_Q0177_22 1 // #22 (MISC /Q0177/inference sps_temporal_id_nesting_flag) proposal 1: modify inference rule for sps_temporal_id_nesting_flag when it is not present419 #define H_MV_HLS_8_PMS_Q0165_18 1 // #18 (PS /Q0165/disallow an empty layer set) proposal 1.a), add a constraint to disallow an empty layer set420 #define H_MV_HLS_8_RPS_Q0060_17 1 // #17 (RPS /Q0060/condition refLayerPicIdc) Proposal 2: Add a condition to the derivation of refLayerPicIdc of (TemporalId == 0)421 #define H_MV_HLS_8_POC_Q0146_15 1 // #15 (POC /Q0146/inference of poc_msb_val_present_flag) Proposal 1.1: Change inference rule in semantics of poc_msb_val_present_flag422 423 424 387 425 388 ///////////////////////////////////////////////////////////////////////////////////////// -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/NALread.cpp
r964 r973 127 127 else 128 128 { 129 #if H_MV _HLS_8_GEN_Q0108_13129 #if H_MV 130 130 131 131 // If nal_unit_type is in the range of BLA_W_LP to RSV_IRAP_VCL23, inclusive, i.e. the coded -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r972 r973 1962 1962 } 1963 1963 1964 #if H 0044_POC_LSB_NOT_PRESENT1964 #if H_MV 1965 1965 UInt slicePicOrderCntLsb = 0; 1966 1966 #endif … … 2016 2016 2017 2017 #if H_MV 2018 #if !H0044_POC_LSB_NOT_PRESENT2019 UInt slicePicOrderCntLsb = 0;2020 #endif2021 2018 Int iPOClsb = slicePicOrderCntLsb; // Needed later 2022 2019 if ( (rpcSlice->getLayerId() > 0 && !vps->getPocLsbNotPresentFlag( rpcSlice->getLayerIdInVps())) || !rpcSlice->getIdrPicFlag() ) … … 2625 2622 rpcSlice->checkPocResetIdc(); 2626 2623 2627 #if H0044_POC_LSB_NOT_PRESENT2628 2624 if ( rpcSlice->getVPS()->getPocLsbNotPresentFlag(rpcSlice->getLayerId()) && slicePicOrderCntLsb > 0 ) 2629 2625 { 2630 2626 assert( rpcSlice->getPocResetIdc() != 2 ); 2631 2627 } 2632 #endif 2628 2633 2629 if( rpcSlice->getPocResetIdc() != 0 ) 2634 2630 { -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.h
r964 r973 109 109 Void parseProfileTier (ProfileTierLevel *ptl); 110 110 Void parseHrdParameters (TComHRD *hrd, Bool cprms_present_flag, UInt tempLevelHigh); 111 #if H_MV _HLS_8_HRD_Q0102_08111 #if H_MV 112 112 Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx); 113 113 #else -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecEntropy.h
r964 r973 77 77 #endif 78 78 79 #if H_MV _HLS_8_HRD_Q0102_0879 #if H_MV 80 80 virtual Void parseSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx ) = 0; 81 81 #else … … 164 164 Void decodePPS ( TComPPS* pcPPS ) { m_pcEntropyDecoderIf->parsePPS(pcPPS); } 165 165 #endif 166 #if H_MV _HLS_8_HRD_Q0102_08166 #if H_MV 167 167 Void decodeSliceHeader ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager, Int targetOlsIdx) { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager, targetOlsIdx ); } 168 168 #else -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecGop.cpp
r964 r973 248 248 calcAndPrintHashStatus(*rpcPic->getPicYuvRec(), hash); 249 249 } 250 251 #if !H_MV_HLS_7_VPS_P0300_27252 #if SETTING_PIC_OUTPUT_MARK253 rpcPic->setOutputMark(rpcPic->getSlice(0)->getPicOutputFlag() ? true : false);254 #else255 rpcPic->setOutputMark(true);256 #endif257 rpcPic->setReconMark(true);258 #endif259 250 } 260 251 -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r964 r973 371 371 m_isNoOutputPriorPics = false; 372 372 #endif 373 #if H 0056_EOS_CHECKS373 #if H_MV 374 374 m_isLastNALWasEos = false; 375 #endif376 #if H_MV377 375 m_layerId = 0; 378 376 m_viewId = 0; … … 382 380 m_pcCamParsCollector = 0; 383 381 #endif 384 #if H_MV _HLS_8_HRD_Q0102_08382 #if H_MV 385 383 m_targetOptLayerSetIdx = -1; 386 384 #endif … … 511 509 { 512 510 rpcPic->setOutputMark(false); 513 #if H_MV _HLS_7_VPS_P0300_27511 #if H_MV 514 512 rpcPic->setPicOutputFlag(false); 515 513 #endif … … 521 519 { 522 520 rpcPic->setOutputMark(false); 523 #if H_MV _HLS_7_VPS_P0300_27521 #if H_MV 524 522 rpcPic->setPicOutputFlag(false); 525 523 #endif … … 568 566 TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); 569 567 TComSlice::markCurrPic( pcPic ); 570 #if !H_MV_HLS_8_DBP_NODOC_42571 TComSlice::markIvRefPicsAsUnused ( m_ivPicLists, targetDecLayerIdSet, m_parameterSetManagerDecoder.getActiveVPS(), m_layerId, poc );572 #endif573 568 #endif 574 569 m_bFirstSliceInPicture = true; … … 590 585 { 591 586 pcPicTmp->setOutputMark(false); 592 #if H_MV _HLS_7_VPS_P0300_27587 #if H_MV 593 588 pcPicTmp->setPicOutputFlag(false); 594 589 #endif … … 670 665 } 671 666 672 #if H_MV _HLS_8_HRD_Q0102_08667 #if H_MV 673 668 sps->inferSpsMaxDecPicBufferingMinus1( vps, m_targetOptLayerSetIdx, getLayerId(), false ); 674 #endif675 676 #if H_MV_HLS_8_RPS_Q0100_36677 669 vps->inferDbpSizeLayerSetZero( sps, false ); 678 #endif679 680 #if H_MV_HLS_8_PMS_Q0195_21681 670 // When the value of vps_num_rep_formats_minus1 in the active VPS is equal to 0 682 671 if ( vps->getVpsNumRepFormatsMinus1() == 0 ) … … 685 674 assert( sps->getUpdateRepFormatFlag() == false ); 686 675 } 687 #endif688 689 #if H_MV_HLS_8_RPS_Q0100_36690 676 sps->checkRpsMaxNumPics( vps, getLayerId() ); 691 #endif692 693 #if H_MV_HLS_8_MIS_Q0177_22694 677 if( m_layerId > 0 ) 695 678 { … … 787 770 m_apcSlicePilot->setRefPicSetInterLayer( & m_refPicSetInterLayer0, &m_refPicSetInterLayer1 ); 788 771 m_apcSlicePilot->setLayerId( nalu.m_layerId ); 789 #endif790 791 #if H_MV_HLS_8_HRD_Q0102_08792 772 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_targetOptLayerSetIdx ); 793 #else794 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder);795 773 #endif 796 774 // set POC for dependent slices in skipped pictures … … 1340 1318 case NAL_UNIT_VPS: 1341 1319 xDecodeVPS(); 1342 #if H 0056_EOS_CHECKS1320 #if H_MV 1343 1321 m_isLastNALWasEos = false; 1344 1322 #endif … … 1355 1333 case NAL_UNIT_PREFIX_SEI: 1356 1334 case NAL_UNIT_SUFFIX_SEI: 1357 #if H 0056_EOS_CHECKS1335 #if H_MV 1358 1336 if ( nalu.m_nalUnitType == NAL_UNIT_SUFFIX_SEI ) 1359 1337 { … … 1380 1358 case NAL_UNIT_CODED_SLICE_RASL_N: 1381 1359 case NAL_UNIT_CODED_SLICE_RASL_R: 1382 #if H 0056_EOS_CHECKS1360 #if H_MV 1383 1361 if (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TRAIL_N || 1384 1362 nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_R || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_TSA_N || … … 1393 1371 m_isLastNALWasEos = false; 1394 1372 } 1395 #endif 1396 #if H_MV 1373 1397 1374 return xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay, newLayerFlag, sliceSkippedFlag ); 1398 1375 #else … … 1401 1378 break; 1402 1379 case NAL_UNIT_EOS: 1403 #if H 0056_EOS_CHECKS1380 #if H_MV 1404 1381 assert( m_isLastNALWasEos == false ); 1405 1382 //Check layer id of the nalu. if it is not 0, give a warning message and just return without doing anything. -
branches/HTM-11.1-dev0/source/Lib/TLibDecoder/TDecTop.h
r964 r973 195 195 Bool* m_layerInitilizedFlag; // initialization Layers 196 196 static ParameterSetManagerDecoder m_parameterSetManagerDecoder; // storage for parameter sets 197 #if H_MV_HLS_8_HRD_Q0102_08198 197 Int m_targetOptLayerSetIdx; 199 #endif200 198 #else 201 199 ParameterSetManagerDecoder m_parameterSetManagerDecoder; // storage for parameter sets … … 234 232 Bool m_craNoRaslOutputFlag; //value of variable NoRaslOutputFlag of the last CRA pic 235 233 #endif 236 #if H 0056_EOS_CHECKS234 #if H_MV 237 235 Bool m_isLastNALWasEos; 238 236 #endif … … 271 269 Void deletePicBuffer(); 272 270 #if H_MV 273 #if H_MV_HLS_7_VPS_P0300_27274 271 TComVPS* getActiveVPS() { return m_parameterSetManagerDecoder.getActiveVPS( ); } 275 #endif276 272 TComSPS* getActiveSPS() { return m_parameterSetManagerDecoder.getActiveSPS( m_layerId ); } 277 273 #else … … 296 292 Void setIvPicLists ( TComPicLists* picLists) { m_ivPicLists = picLists; } 297 293 Void setLayerInitilizedFlags( Bool* val ) { m_layerInitilizedFlag = val; } 298 #if H_MV_HLS_8_HRD_Q0102_08299 294 Void setTargetOptLayerSetIdx( Int targetOptLayerSetIdx ) { m_targetOptLayerSetIdx = targetOptLayerSetIdx; } 300 #endif301 295 TComVPS* getPrefetchedVPS () { return m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); }; //Assuming that currently only one VPS is present. 302 296 Int getCurrPoc () { return m_apcSlicePilot->getPOC(); } -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r964 r973 2325 2325 std::vector<Int> temp; 2326 2326 TComSlice::markCurrPic( pcPic ); 2327 #if !H_MV_HLS_8_DBP_NODOC_422328 TComSlice::markIvRefPicsAsUnused ( m_ivPicLists, temp, pcPic->getSlice(0)->getVPS(), m_layerId, pcPic->getPOC() );2329 #endif2330 2327 #endif 2331 2328 m_bFirst = false; -
branches/HTM-11.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r964 r973 698 698 m_cSPS.setSpsScalingListRefLayerId ( 0 ); 699 699 m_cSPS.setSpsExtensionPresentFlag ( true ); 700 #if H_MV_HLS_8_SPS_NODOC_48701 700 m_cSPS.setSpsMultilayerExtensionFlag ( true ); 702 #else703 m_cSPS.setSpsExtensionTypeFlag ( PS_EX_T_MV ,true );704 #endif705 701 #if H_3D 706 #if H_MV_HLS_8_SPS_NODOC_48707 702 m_cSPS.setSps3dExtensionFlag ( true ); 708 #else709 m_cSPS.setSpsExtensionTypeFlag ( PS_EX_T_3D ,true );710 #endif711 703 #endif 712 704 #endif … … 777 769 m_cSPS.setNumReorderPics(m_numReorderPics[i], i); 778 770 } 779 #if H_MV _HLS_8_HRD_Q0102_08771 #if H_MV 780 772 for ( Int ols = 0; ols < m_cVPS->getNumOutputLayerSets(); ols++) 781 773 { … … 788 780 } 789 781 790 #if H_MV_HLS_8_RPS_Q0100_36791 782 m_cVPS->inferDbpSizeLayerSetZero( &m_cSPS, true ); 792 #endif793 794 783 #endif 795 784 m_cSPS.setPCMBitDepthLuma (g_uiPCMBitDepthLuma); … … 853 842 m_cPPS.setPPSId( getLayerIdInVps() ); 854 843 m_cPPS.setSPSId( getLayerIdInVps() ); 855 #if H_MV_HLS_8_SPS_NODOC_48856 844 m_cPPS.setPpsMultilayerExtensionFlag ( true ); 857 845 #if H_3D 858 846 m_cPPS.setPps3dExtensionFlag ( true ); 859 #endif860 #else861 m_cPPS.setPpsExtensionTypeFlag ( PPS_EX_T_MV ,true );862 #if H_3D863 m_cPPS.setPpsExtensionTypeFlag ( PPS_EX_T_3D ,true );864 #endif865 847 #endif 866 848 #endif
Note: See TracChangeset for help on using the changeset viewer.