Changeset 1273 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
15 Jul 2015, 20:51:59 (10 years ago)
Author:
seregin
Message:

port rev 4306 and rev 4307

Location:
branches/SHM-dev/source/Lib/TLibCommon
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/SEI.cpp

    r1259 r1273  
    4242Int  Table_exp_indicator[32] = {0, 10, 12, 16, 20, 25, 32, 40, 50, 64, 80, 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 8000, -1};
    4343
    44 #if SUB_BITSTREAM_PROPERTY_SEI
    45 SEISubBitstreamProperty::SEISubBitstreamProperty()
    46 {
    47   m_activeVpsId             = -1;
    48   m_numAdditionalSubStreams = 0;
    49   ::memset(m_subBitstreamMode       , 0, sizeof(m_subBitstreamMode));
    50   ::memset(m_outputLayerSetIdxToVps , 0, sizeof(m_outputLayerSetIdxToVps));
    51   ::memset(m_highestSublayerId      , 0, sizeof(m_highestSublayerId));
    52   ::memset(m_avgBitRate             , 0, sizeof(m_avgBitRate));
    53   ::memset(m_maxBitRate             , 0, sizeof(m_maxBitRate));
    54 }
    55 #endif
    56 
    5744SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType)
    5845{
     
    9986}
    10087
     88void SEIBufferingPeriod::copyTo (SEIBufferingPeriod& target)
     89{
     90  target.m_bpSeqParameterSetId = m_bpSeqParameterSetId;
     91  target.m_rapCpbParamsPresentFlag = m_rapCpbParamsPresentFlag;
     92  target.m_cpbDelayOffset = m_cpbDelayOffset;
     93  target.m_dpbDelayOffset = m_dpbDelayOffset;
     94  target.m_concatenationFlag = m_concatenationFlag;
     95  target.m_auCpbRemovalDelayDelta = m_auCpbRemovalDelayDelta;
     96  ::memcpy(target.m_initialCpbRemovalDelay, m_initialCpbRemovalDelay, sizeof(m_initialCpbRemovalDelay));
     97  ::memcpy(target.m_initialCpbRemovalDelayOffset, m_initialCpbRemovalDelayOffset, sizeof(m_initialCpbRemovalDelayOffset));
     98  ::memcpy(target.m_initialAltCpbRemovalDelay, m_initialAltCpbRemovalDelay, sizeof(m_initialAltCpbRemovalDelay));
     99  ::memcpy(target.m_initialAltCpbRemovalDelayOffset, m_initialAltCpbRemovalDelayOffset, sizeof(m_initialAltCpbRemovalDelayOffset));
     100}
     101
     102void SEIPictureTiming::copyTo (SEIPictureTiming& target)
     103{
     104  target.m_picStruct = m_picStruct;
     105  target.m_sourceScanType = m_sourceScanType;
     106  target.m_duplicateFlag = m_duplicateFlag;
     107
     108  target.m_auCpbRemovalDelay = m_auCpbRemovalDelay;
     109  target.m_picDpbOutputDelay = m_picDpbOutputDelay;
     110  target.m_picDpbOutputDuDelay = m_picDpbOutputDuDelay;
     111  target.m_numDecodingUnitsMinus1 = m_numDecodingUnitsMinus1;
     112  target.m_duCommonCpbRemovalDelayFlag = m_duCommonCpbRemovalDelayFlag;
     113  target.m_duCommonCpbRemovalDelayMinus1 = m_duCommonCpbRemovalDelayMinus1;
     114
     115  target.m_numNalusInDuMinus1 = m_numNalusInDuMinus1;
     116  target.m_duCpbRemovalDelayMinus1 = m_duCpbRemovalDelayMinus1;
     117}
    101118
    102119// Static member
     
    169186}
    170187
     188
     189#if SUB_BITSTREAM_PROPERTY_SEI
     190SEISubBitstreamProperty::SEISubBitstreamProperty()
     191{
     192  m_activeVpsId             = -1;
     193  m_numAdditionalSubStreams = 0;
     194  ::memset(m_subBitstreamMode       , 0, sizeof(m_subBitstreamMode));
     195  ::memset(m_outputLayerSetIdxToVps , 0, sizeof(m_outputLayerSetIdxToVps));
     196  ::memset(m_highestSublayerId      , 0, sizeof(m_highestSublayerId));
     197  ::memset(m_avgBitRate             , 0, sizeof(m_avgBitRate));
     198  ::memset(m_maxBitRate             , 0, sizeof(m_maxBitRate));
     199}
     200#endif
     201
    171202#if Q0074_COLOUR_REMAPPING_SEI
    172203Void  SEIColourRemappingInfo::copyFrom( SEIColourRemappingInfo const * SeiCriInput)
  • branches/SHM-dev/source/Lib/TLibCommon/SEI.h

    r1259 r1273  
    166166  } method;
    167167
    168   TComDigest m_digest;
     168  TComPictureHash m_pictureHash;
    169169};
    170170
     
    196196public:
    197197  PayloadType payloadType() const { return BUFFERING_PERIOD; }
     198  void copyTo (SEIBufferingPeriod& target);
    198199
    199200  SEIBufferingPeriod()
     
    233234public:
    234235  PayloadType payloadType() const { return PICTURE_TIMING; }
     236  void copyTo (SEIPictureTiming& target);
    235237
    236238  SEIPictureTiming()
     
    239241  , m_duplicateFlag           (false)
    240242  , m_picDpbOutputDuDelay     (0)
    241   , m_numNalusInDuMinus1      (NULL)
    242   , m_duCpbRemovalDelayMinus1 (NULL)
    243243  {}
    244244  virtual ~SEIPictureTiming()
    245245  {
    246     if( m_numNalusInDuMinus1 != NULL )
    247     {
    248       delete m_numNalusInDuMinus1;
    249     }
    250     if( m_duCpbRemovalDelayMinus1  != NULL )
    251     {
    252       delete m_duCpbRemovalDelayMinus1;
    253     }
    254246  }
    255247
     
    264256  Bool  m_duCommonCpbRemovalDelayFlag;
    265257  UInt  m_duCommonCpbRemovalDelayMinus1;
    266   UInt* m_numNalusInDuMinus1;
    267   UInt* m_duCpbRemovalDelayMinus1;
     258  std::vector<UInt> m_numNalusInDuMinus1;
     259  std::vector<UInt> m_duCpbRemovalDelayMinus1;
    268260};
    269261
     
    714706
    715707#if Q0074_COLOUR_REMAPPING_SEI
     708struct TComSEIColourRemappingInfo
     709{
     710  std::string             m_colourRemapSEIFile;
     711  Int                     m_colourRemapSEIId;
     712  Bool                    m_colourRemapSEICancelFlag;
     713  Bool                    m_colourRemapSEIPersistenceFlag;
     714  Bool                    m_colourRemapSEIVideoSignalInfoPresentFlag;
     715  Bool                    m_colourRemapSEIFullRangeFlag;
     716  Int                     m_colourRemapSEIPrimaries;
     717  Int                     m_colourRemapSEITransferFunction;
     718  Int                     m_colourRemapSEIMatrixCoefficients;
     719  Int                     m_colourRemapSEIInputBitDepth;
     720  Int                     m_colourRemapSEIBitDepth;
     721  Int                     m_colourRemapSEIPreLutNumValMinus1[3];
     722  Int*                    m_colourRemapSEIPreLutCodedValue[3];
     723  Int*                    m_colourRemapSEIPreLutTargetValue[3];
     724  Bool                    m_colourRemapSEIMatrixPresentFlag;
     725  Int                     m_colourRemapSEILog2MatrixDenom;
     726  Int                     m_colourRemapSEICoeffs[3][3];
     727  Int                     m_colourRemapSEIPostLutNumValMinus1[3];
     728  Int*                    m_colourRemapSEIPostLutCodedValue[3];
     729  Int*                    m_colourRemapSEIPostLutTargetValue[3];
     730};
     731
    716732class SEIColourRemappingInfo : public SEI
    717733{
  • branches/SHM-dev/source/Lib/TLibCommon/TComPicYuv.h

    r1259 r1273  
    182182
    183183// These functions now return the length of the digest strings.
    184 UInt calcChecksum(const TComPicYuv& pic, TComDigest &digest);
    185 UInt calcCRC     (const TComPicYuv& pic, TComDigest &digest);
    186 UInt calcMD5     (const TComPicYuv& pic, TComDigest &digest);
    187 std::string digestToString(const TComDigest &digest, Int numChar);
     184UInt calcChecksum(const TComPicYuv& pic, TComPictureHash &digest);
     185UInt calcCRC     (const TComPicYuv& pic, TComPictureHash &digest);
     186UInt calcMD5     (const TComPicYuv& pic, TComPictureHash &digest);
     187std::string hashToString(const TComPictureHash &digest, Int numChar);
    188188//! \}
    189189
  • branches/SHM-dev/source/Lib/TLibCommon/TComPicYuvMD5.cpp

    r1259 r1273  
    8787
    8888
    89 UInt compCRC(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComDigest &digest)
     89UInt compCRC(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComPictureHash &digest)
    9090{
    9191  UInt crcMsb;
     
    127127}
    128128
    129 UInt calcCRC(const TComPicYuv& pic, TComDigest &digest)
     129UInt calcCRC(const TComPicYuv& pic, TComPictureHash &digest)
    130130{
    131131  UInt digestLen=0;
     
    139139}
    140140
    141 UInt compChecksum(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComDigest &digest)
     141UInt compChecksum(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComPictureHash &digest)
    142142{
    143143  UInt checksum = 0;
     
    165165}
    166166
    167 UInt calcChecksum(const TComPicYuv& pic, TComDigest &digest)
     167UInt calcChecksum(const TComPicYuv& pic, TComPictureHash &digest)
    168168{
    169169  UInt digestLen=0;
     
    183183 * uses little-endian two byte words; 8bit data uses single byte words.
    184184 */
    185 UInt calcMD5(const TComPicYuv& pic, TComDigest &digest)
     185UInt calcMD5(const TComPicYuv& pic, TComPictureHash &digest)
    186186{
    187187  /* choose an md5_plane packing function based on the system bitdepth */
     
    207207}
    208208
    209 std::string digestToString(const TComDigest &digest, Int numChar)
     209std::string hashToString(const TComPictureHash &digest, Int numChar)
    210210{
    211211  static const Char* hex = "0123456789abcdef";
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp

    r1265 r1273  
    21302130}
    21312131
    2132 Void TComSPS::setHrdParameters( UInt frameRate, UInt numDU, UInt bitRate, Bool randomAccess )
     2132Void TComSPS::setHrdParameters( UInt frameRate, Bool useSubCpbParams, UInt bitRate, Bool randomAccess )
    21332133{
    21342134  if( !getVuiParametersPresentFlag() )
     
    21762176  hrd->setVclHrdParametersPresentFlag( rateCnt );
    21772177
    2178   hrd->setSubPicCpbParamsPresentFlag( ( numDU > 1 ) );
     2178  hrd->setSubPicCpbParamsPresentFlag( useSubCpbParams );
    21792179
    21802180  if( hrd->getSubPicCpbParamsPresentFlag() )
     
    22232223    bitrateValue = bitRate;
    22242224    cpbSizeValue = bitRate;                                     // 1 second
    2225     duCpbSizeValue = bitRate/numDU;
     2225    // DU CPB size could be smaller, but we don't know how
     2226    // in how many DUs the slice segment settings will result
     2227    // (used to be: bitRate/numDU)
     2228    duCpbSizeValue = bitRate;
    22262229    duBitRateValue = bitRate;
    22272230
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h

    r1265 r1273  
    310310  UInt m_cpbRemovalDelayLengthMinus1;
    311311  UInt m_dpbOutputDelayLengthMinus1;
    312   UInt m_numDU;
    313312  HrdSubLayerInfo m_HRD[MAX_TLAYER];
    314313
     
    396395  Bool    getCbrFlag( Int layer, Int cpbcnt, Int nalOrVcl ) const                    { return m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl];             }
    397396
    398   Void    setNumDU( UInt value )                                                     { m_numDU = value;                                           }
    399   UInt    getNumDU( ) const                                                          { return m_numDU;                                            }
    400397  Bool    getCpbDpbDelaysPresentFlag( ) const                      { return getNalHrdParametersPresentFlag() || getVclHrdParametersPresentFlag(); }
    401398
     
    12051202    , m_log2MaxMvLengthHorizontal         (15)
    12061203    , m_log2MaxMvLengthVertical           (15)
    1207  {}
     1204  {}
    12081205
    12091206  virtual           ~TComVUI() {}
     
    15251522  Bool                   getScalingListPresentFlag() const                                               { return m_scalingListPresentFlag;                                     }
    15261523  Void                   setScalingListPresentFlag( Bool b )                                             { m_scalingListPresentFlag  = b;                                       }
    1527 
    15281524  Void                   setScalingList( TComScalingList *scalingList);
    15291525  TComScalingList&       getScalingList()                                                                { return m_scalingList;                                                }
     
    15411537  TComVUI*               getVuiParameters()                                                              { return &m_vuiParameters;                                             }
    15421538  const TComVUI*         getVuiParameters() const                                                        { return &m_vuiParameters;                                             }
    1543   Void                   setHrdParameters( UInt frameRate, UInt numDU, UInt bitRate, Bool randomAccess );
    1544 
     1539  Void                   setHrdParameters( UInt frameRate, Bool useSubCpbParams, UInt bitRate, Bool randomAccess );
    15451540  const TComPTL*         getPTL() const                                                                  { return &m_pcPTL;                                                     }
    15461541  TComPTL*               getPTL()                                                                        { return &m_pcPTL;                                                     }
     
    15711566};
    15721567
     1568
    15731569/// Reference Picture Lists class
    15741570
     
    15971593  Void    setRefPicSetIdxL1(UInt idx, UInt refPicSetIdx) { assert(idx<REF_PIC_LIST_NUM_IDX); m_RefPicSetIdxL1[idx] = refPicSetIdx; }
    15981594};
    1599 
    16001595
    16011596/// PPS class
     
    18031798  Bool                   getScalingListPresentFlag() const                                { return m_scalingListPresentFlag;              }
    18041799  Void                   setScalingListPresentFlag( Bool b )                              { m_scalingListPresentFlag  = b;                }
    1805 
    18061800  TComScalingList&       getScalingList()                                                 { return m_scalingList;                         }
    18071801  const TComScalingList& getScalingList() const                                           { return m_scalingList;                         }
     
    23992393};// END CLASS DEFINITION TComSlice
    24002394
     2395
    24012396Void calculateParameterSetChangedFlag(Bool &bChanged, const std::vector<UChar> *pOldData, const std::vector<UChar> *pNewData);
    24022397
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r1265 r1273  
    864864
    865865
    866 struct TComDigest
     866struct TComPictureHash
    867867{
    868868  std::vector<UChar> hash;
    869869
    870   Bool operator==(const TComDigest &other) const
     870  Bool operator==(const TComPictureHash &other) const
    871871  {
    872872    if (other.hash.size() != hash.size())
     
    884884  }
    885885
    886   Bool operator!=(const TComDigest &other) const
     886  Bool operator!=(const TComPictureHash &other) const
    887887  {
    888888    return !(*this == other);
Note: See TracChangeset for help on using the changeset viewer.