- Timestamp:
- 4 Jun 2014, 09:28:48 (11 years ago)
- Location:
- branches/SHM-6-dev/source
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-6-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r778 r779 984 984 ("SEIKneeFunctionOutputKneePointValue", cfg_kneeSEIOutputKneePointValue, string("100 250 450"), "Array of output knee point") 985 985 #endif 986 986 #if Q0189_TMVP_CONSTRAINTS 987 ("SEITemporalMotionVectorPredictionConstraints", m_TMVPConstraintsSEIEnabled, 0, "Control generation of TMVP constrants SEI message") 988 #endif 987 989 #if M0040_ADAPTIVE_RESOLUTION_CHANGE 988 990 ("AdaptiveResolutionChange", m_adaptiveResolutionChange, 0, "Adaptive resolution change frame number. Should coincide with EL RAP picture. (0: disable)") -
branches/SHM-6-dev/source/App/TAppEncoder/TAppEncCfg.h
r778 r779 291 291 Int m_SOPDescriptionSEIEnabled; 292 292 Int m_scalableNestingSEIEnabled; 293 #if Q0189_TMVP_CONSTRAINTS 294 Int m_TMVPConstraintsSEIEnabled; 295 #endif 293 296 // weighted prediction 294 297 Bool m_useWeightedPred; ///< Use of weighted prediction in P slices -
branches/SHM-6-dev/source/App/TAppEncoder/TAppEncTop.cpp
r778 r779 516 516 m_acTEncTop[layer].setSOPDescriptionSEIEnabled( m_SOPDescriptionSEIEnabled ); 517 517 m_acTEncTop[layer].setScalableNestingSEIEnabled( m_scalableNestingSEIEnabled ); 518 #if Q0189_TMVP_CONSTRAINTS 519 m_acTEncTop[layer].setTMVPConstraintsSEIEnabled( m_TMVPConstraintsSEIEnabled); 520 #endif 518 521 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI 519 522 m_acTEncTop[layer].setInterLayerConstrainedTileSetsSEIEnabled( m_interLayerConstrainedTileSetsSEIEnabled ); -
branches/SHM-6-dev/source/Lib/TLibCommon/SEI.h
r778 r779 103 103 VPS_REWRITING = 145, 104 104 #endif 105 #if Q0189_TMVP_CONSTRAINTS 106 TMVP_CONSTRAINTS = 146, 107 #endif 105 108 }; 106 109 … … 517 520 #endif 518 521 522 #if Q0189_TMVP_CONSTRAINTS 523 class SEITMVPConstrains : public SEI 524 { 525 public: 526 PayloadType payloadType() const { return TMVP_CONSTRAINTS; } 527 528 SEITMVPConstrains() 529 : prev_pics_not_used_flag(0),no_intra_layer_col_pic_flag(0) 530 {} 531 532 virtual ~SEITMVPConstrains() 533 { 534 } 535 536 UInt prev_pics_not_used_flag; 537 UInt no_intra_layer_col_pic_flag; 538 }; 539 #endif 540 519 541 typedef std::list<SEI*> SEIMessages; 520 542 -
branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h
r778 r779 269 269 #define DPB_CONSTRAINTS 1 ///< JCTVC-Q0100 RPS DPB constraints 270 270 #define P0050_KNEE_FUNCTION_SEI 1 ///< JCTVC-P0050: Knee function SEI 271 #define Q0189_TMVP_CONSTRAINTS 1 271 272 272 273 #if VIEW_ID_RELATED_SIGNALING -
branches/SHM-6-dev/source/Lib/TLibDecoder/SEIread.cpp
r778 r779 380 380 break; 381 381 #endif 382 #if Q0189_TMVP_CONSTRAINTS 383 case SEI::TMVP_CONSTRAINTS: 384 sei = new SEITMVPConstrains; 385 xParseSEITMVPConstraints((SEITMVPConstrains&) *sei, payloadSize); 386 break; 387 #endif 382 388 #endif //SVC_EXTENSION 383 389 break; … … 1020 1026 } 1021 1027 1028 #if Q0189_TMVP_CONSTRAINTS 1029 Void SEIReader::xParseSEITMVPConstraints (SEITMVPConstrains& sei, UInt payloadSize) 1030 { 1031 UInt uiCode; 1032 READ_UVLC( uiCode, "prev_pics_not_used_flag" ); sei.prev_pics_not_used_flag = uiCode; 1033 READ_UVLC( uiCode, "no_intra_layer_col_pic_flag" ); sei.no_intra_layer_col_pic_flag = uiCode; 1034 xParseByteAlign(); 1035 } 1036 #endif 1037 1022 1038 #if LAYERS_NOT_PRESENT_SEI 1023 1039 Void SEIReader::xParseSEIScalableNesting(SEIScalableNesting& sei, const NalUnitType nalUnitType, UInt payloadSize, TComVPS *vps, TComSPS *sps) -
branches/SHM-6-dev/source/Lib/TLibDecoder/SEIread.h
r778 r779 127 127 Void xParseSEIVPSRewriting(SEIVPSRewriting &sei); 128 128 #endif 129 130 #if Q0189_TMVP_CONSTRAINTS 131 Void xParseSEITMVPConstraints (SEITMVPConstrains& sei, UInt payloadSize); 132 #endif 133 129 134 Void xParseByteAlign(); 130 135 }; -
branches/SHM-6-dev/source/Lib/TLibEncoder/SEIwrite.cpp
r778 r779 245 245 break; 246 246 #endif 247 #if Q0189_TMVP_CONSTRAINTS 248 case SEI::TMVP_CONSTRAINTS: 249 xWriteSEITMVPConstraints(*static_cast<const SEITMVPConstrains*>(&sei)); 250 break; 251 #endif 247 252 #endif //SVC_EXTENSION 248 253 default: … … 863 868 #endif 864 869 870 #if Q0189_TMVP_CONSTRAINTS 871 Void SEIWriter::xWriteSEITMVPConstraints (const SEITMVPConstrains &sei) 872 { 873 WRITE_UVLC( sei.prev_pics_not_used_flag , "prev_pics_not_used_flag" ); 874 WRITE_UVLC( sei.no_intra_layer_col_pic_flag , "no_intra_layer_col_pic_flag" ); 875 xWriteByteAlign(); 876 } 877 #endif 878 865 879 #if O0164_MULTI_LAYER_HRD 866 880 Void SEIWriter::xWriteSEIBspNesting(TComBitIf& bs, const SEIBspNesting &sei, TComVPS *vps, TComSPS *sps, const SEIScalableNesting &nestingSei) -
branches/SHM-6-dev/source/Lib/TLibEncoder/SEIwrite.h
r778 r779 95 95 Void xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei); 96 96 #endif 97 #if Q0189_TMVP_CONSTRAINTS 98 Void xWriteSEITMVPConstraints (const SEITMVPConstrains &sei); 99 #endif 97 100 #if O0164_MULTI_LAYER_HRD 98 101 Void xWriteSEIBspNesting(TComBitIf& bs, const SEIBspNesting &sei, TComVPS *vps, TComSPS *sps, const SEIScalableNesting &nestingSei); -
branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCfg.h
r776 r779 276 276 Int m_SOPDescriptionSEIEnabled; 277 277 Int m_scalableNestingSEIEnabled; 278 #if Q0189_TMVP_CONSTRAINTS 279 Int m_TMVPConstraintsSEIEnabled; 280 #endif 278 281 //====== Weighted Prediction ======== 279 282 Bool m_useWeightedPred; //< Use of Weighting Prediction (P_SLICE) … … 733 736 Int getSOPDescriptionSEIEnabled() { return m_SOPDescriptionSEIEnabled; } 734 737 Void setScalableNestingSEIEnabled(Int b) { m_scalableNestingSEIEnabled = b; } 738 #if Q0189_TMVP_CONSTRAINTS 739 void setTMVPConstraintsSEIEnabled(Int b) { m_TMVPConstraintsSEIEnabled = b; } 740 #endif 735 741 Int getScalableNestingSEIEnabled() { return m_scalableNestingSEIEnabled; } 742 #if Q0189_TMVP_CONSTRAINTS 743 Int getTMVPConstraintsSEIEnabled() { return m_TMVPConstraintsSEIEnabled; } 744 #endif 736 745 Void setUseWP ( Bool b ) { m_useWeightedPred = b; } 737 746 Void setWPBiPred ( Bool b ) { m_useWeightedBiPred = b; } -
branches/SHM-6-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r778 r779 2316 2316 writeSOP = false; 2317 2317 } 2318 #if Q0189_TMVP_CONSTRAINTS 2319 if( m_pcEncTop->getTMVPConstraintsSEIEnabled() == 1 && 2320 (m_pcEncTop->getTMVPModeId() == 1 || m_pcEncTop->getTMVPModeId() == 2) && 2321 pcSlice->getLayerId() >0 && 2322 (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP)) 2323 { 2324 OutputNALUnit nalu(NAL_UNIT_PREFIX_SEI); 2325 SEITMVPConstrains seiTMVPConstrains; 2326 m_pcEntropyCoder->setEntropyCoder(m_pcCavlcCoder, pcSlice); 2327 m_pcEntropyCoder->setBitstream(&nalu.m_Bitstream); 2328 seiTMVPConstrains.no_intra_layer_col_pic_flag = 1; 2329 seiTMVPConstrains.prev_pics_not_used_flag = 1; 2330 #if O0164_MULTI_LAYER_HRD 2331 m_seiWriter.writeSEImessage( nalu.m_Bitstream, seiTMVPConstrains, m_pcEncTop->getVPS(), pcSlice->getSPS() ); 2332 #else 2333 m_seiWriter.writeSEImessage( nalu.m_Bitstream, seiTMVPConstrains, pcSlice->getSPS() ); 2334 #endif 2335 writeRBSPTrailingBits(nalu.m_Bitstream); 2336 accessUnit.push_back(new NALUnitEBSP(nalu)); 2337 } 2338 #endif 2318 2339 2319 2340 if( ( m_pcCfg->getPictureTimingSEIEnabled() || m_pcCfg->getDecodingUnitInfoSEIEnabled() ) &&
Note: See TracChangeset for help on using the changeset viewer.