Changeset 973 in 3DVCSoftware for branches/HTM-11.1-dev0/source/Lib
- Timestamp:
- 6 Jul 2014, 04:44:14 (11 years ago)
- Location:
- branches/HTM-11.1-dev0/source/Lib
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
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.