Changeset 779 in SHVCSoftware for branches


Ignore:
Timestamp:
4 Jun 2014, 09:28:48 (11 years ago)
Author:
nokia
Message:

software implementation for JCTVC-Q0189

Location:
branches/SHM-6-dev/source
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-6-dev/source/App/TAppEncoder/TAppEncCfg.cpp

    r778 r779  
    984984  ("SEIKneeFunctionOutputKneePointValue", cfg_kneeSEIOutputKneePointValue,    string("100 250 450"), "Array of output knee point")
    985985#endif
    986 
     986#if Q0189_TMVP_CONSTRAINTS
     987  ("SEITemporalMotionVectorPredictionConstraints",             m_TMVPConstraintsSEIEnabled,              0, "Control generation of TMVP constrants SEI message")
     988#endif
    987989#if M0040_ADAPTIVE_RESOLUTION_CHANGE
    988990  ("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  
    291291  Int       m_SOPDescriptionSEIEnabled;
    292292  Int       m_scalableNestingSEIEnabled;
     293#if Q0189_TMVP_CONSTRAINTS
     294  Int       m_TMVPConstraintsSEIEnabled;
     295#endif
    293296  // weighted prediction
    294297  Bool      m_useWeightedPred;                    ///< Use of weighted prediction in P slices
  • branches/SHM-6-dev/source/App/TAppEncoder/TAppEncTop.cpp

    r778 r779  
    516516    m_acTEncTop[layer].setSOPDescriptionSEIEnabled( m_SOPDescriptionSEIEnabled );
    517517    m_acTEncTop[layer].setScalableNestingSEIEnabled( m_scalableNestingSEIEnabled );
     518#if Q0189_TMVP_CONSTRAINTS
     519    m_acTEncTop[layer].setTMVPConstraintsSEIEnabled( m_TMVPConstraintsSEIEnabled);           
     520#endif
    518521#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    519522    m_acTEncTop[layer].setInterLayerConstrainedTileSetsSEIEnabled( m_interLayerConstrainedTileSetsSEIEnabled );
  • branches/SHM-6-dev/source/Lib/TLibCommon/SEI.h

    r778 r779  
    103103    VPS_REWRITING                        = 145,
    104104#endif
     105#if Q0189_TMVP_CONSTRAINTS
     106    TMVP_CONSTRAINTS                     = 146,
     107#endif
    105108  };
    106109 
     
    517520#endif
    518521
     522#if Q0189_TMVP_CONSTRAINTS
     523class SEITMVPConstrains : public SEI
     524{
     525public:
     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
    519541typedef std::list<SEI*> SEIMessages;
    520542
  • branches/SHM-6-dev/source/Lib/TLibCommon/TypeDef.h

    r778 r779  
    269269#define DPB_CONSTRAINTS                  1      ///< JCTVC-Q0100 RPS DPB constraints
    270270#define P0050_KNEE_FUNCTION_SEI          1      ///< JCTVC-P0050: Knee function SEI
     271#define Q0189_TMVP_CONSTRAINTS           1
    271272
    272273#if VIEW_ID_RELATED_SIGNALING
  • branches/SHM-6-dev/source/Lib/TLibDecoder/SEIread.cpp

    r778 r779  
    380380     break;
    381381#endif
     382#if Q0189_TMVP_CONSTRAINTS
     383   case SEI::TMVP_CONSTRAINTS:
     384     sei =  new SEITMVPConstrains;
     385     xParseSEITMVPConstraints((SEITMVPConstrains&) *sei, payloadSize);
     386     break;
     387#endif
    382388#endif //SVC_EXTENSION
    383389      break;
     
    10201026}
    10211027
     1028#if Q0189_TMVP_CONSTRAINTS
     1029Void 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
    10221038#if LAYERS_NOT_PRESENT_SEI
    10231039Void SEIReader::xParseSEIScalableNesting(SEIScalableNesting& sei, const NalUnitType nalUnitType, UInt payloadSize, TComVPS *vps, TComSPS *sps)
  • branches/SHM-6-dev/source/Lib/TLibDecoder/SEIread.h

    r778 r779  
    127127  Void xParseSEIVPSRewriting(SEIVPSRewriting &sei);
    128128#endif
     129
     130#if Q0189_TMVP_CONSTRAINTS
     131  Void xParseSEITMVPConstraints    (SEITMVPConstrains& sei, UInt payloadSize);
     132#endif
     133
    129134  Void xParseByteAlign();
    130135};
  • branches/SHM-6-dev/source/Lib/TLibEncoder/SEIwrite.cpp

    r778 r779  
    245245     break;
    246246#endif
     247#if Q0189_TMVP_CONSTRAINTS
     248   case SEI::TMVP_CONSTRAINTS:
     249     xWriteSEITMVPConstraints(*static_cast<const SEITMVPConstrains*>(&sei));
     250     break;
     251#endif
    247252#endif //SVC_EXTENSION
    248253  default:
     
    863868#endif
    864869
     870#if Q0189_TMVP_CONSTRAINTS
     871Void 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
    865879#if O0164_MULTI_LAYER_HRD
    866880Void 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  
    9595  Void xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei);
    9696#endif
     97#if Q0189_TMVP_CONSTRAINTS
     98Void xWriteSEITMVPConstraints (const SEITMVPConstrains &sei);
     99#endif
    97100#if O0164_MULTI_LAYER_HRD
    98101  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  
    276276  Int       m_SOPDescriptionSEIEnabled;
    277277  Int       m_scalableNestingSEIEnabled;
     278#if Q0189_TMVP_CONSTRAINTS
     279  Int       m_TMVPConstraintsSEIEnabled;
     280#endif
    278281  //====== Weighted Prediction ========
    279282  Bool      m_useWeightedPred;       //< Use of Weighting Prediction (P_SLICE)
     
    733736  Int   getSOPDescriptionSEIEnabled()                     { return m_SOPDescriptionSEIEnabled; }
    734737  Void  setScalableNestingSEIEnabled(Int b)                { m_scalableNestingSEIEnabled = b; }
     738#if Q0189_TMVP_CONSTRAINTS
     739  void setTMVPConstraintsSEIEnabled(Int b)                { m_TMVPConstraintsSEIEnabled = b; }
     740#endif
    735741  Int   getScalableNestingSEIEnabled()                     { return m_scalableNestingSEIEnabled; }
     742#if Q0189_TMVP_CONSTRAINTS
     743  Int   getTMVPConstraintsSEIEnabled()                {  return m_TMVPConstraintsSEIEnabled; }
     744#endif
    736745  Void      setUseWP               ( Bool b )    { m_useWeightedPred   = b;    }
    737746  Void      setWPBiPred            ( Bool b )    { m_useWeightedBiPred = b;    }
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r778 r779  
    23162316      writeSOP = false;
    23172317    }
     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
    23182339
    23192340    if( ( m_pcCfg->getPictureTimingSEIEnabled() || m_pcCfg->getDecodingUnitInfoSEIEnabled() ) &&
Note: See TracChangeset for help on using the changeset viewer.