Changeset 1273 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon
- Timestamp:
- 15 Jul 2015, 20:51:59 (10 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibCommon
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/SEI.cpp
r1259 r1273 42 42 Int 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}; 43 43 44 #if SUB_BITSTREAM_PROPERTY_SEI45 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 #endif56 57 44 SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType) 58 45 { … … 99 86 } 100 87 88 void 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 102 void 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 } 101 118 102 119 // Static member … … 169 186 } 170 187 188 189 #if SUB_BITSTREAM_PROPERTY_SEI 190 SEISubBitstreamProperty::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 171 202 #if Q0074_COLOUR_REMAPPING_SEI 172 203 Void SEIColourRemappingInfo::copyFrom( SEIColourRemappingInfo const * SeiCriInput) -
branches/SHM-dev/source/Lib/TLibCommon/SEI.h
r1259 r1273 166 166 } method; 167 167 168 TCom Digest m_digest;168 TComPictureHash m_pictureHash; 169 169 }; 170 170 … … 196 196 public: 197 197 PayloadType payloadType() const { return BUFFERING_PERIOD; } 198 void copyTo (SEIBufferingPeriod& target); 198 199 199 200 SEIBufferingPeriod() … … 233 234 public: 234 235 PayloadType payloadType() const { return PICTURE_TIMING; } 236 void copyTo (SEIPictureTiming& target); 235 237 236 238 SEIPictureTiming() … … 239 241 , m_duplicateFlag (false) 240 242 , m_picDpbOutputDuDelay (0) 241 , m_numNalusInDuMinus1 (NULL)242 , m_duCpbRemovalDelayMinus1 (NULL)243 243 {} 244 244 virtual ~SEIPictureTiming() 245 245 { 246 if( m_numNalusInDuMinus1 != NULL )247 {248 delete m_numNalusInDuMinus1;249 }250 if( m_duCpbRemovalDelayMinus1 != NULL )251 {252 delete m_duCpbRemovalDelayMinus1;253 }254 246 } 255 247 … … 264 256 Bool m_duCommonCpbRemovalDelayFlag; 265 257 UInt m_duCommonCpbRemovalDelayMinus1; 266 UInt*m_numNalusInDuMinus1;267 UInt*m_duCpbRemovalDelayMinus1;258 std::vector<UInt> m_numNalusInDuMinus1; 259 std::vector<UInt> m_duCpbRemovalDelayMinus1; 268 260 }; 269 261 … … 714 706 715 707 #if Q0074_COLOUR_REMAPPING_SEI 708 struct 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 716 732 class SEIColourRemappingInfo : public SEI 717 733 { -
branches/SHM-dev/source/Lib/TLibCommon/TComPicYuv.h
r1259 r1273 182 182 183 183 // These functions now return the length of the digest strings. 184 UInt calcChecksum(const TComPicYuv& pic, TCom Digest&digest);185 UInt calcCRC (const TComPicYuv& pic, TCom Digest&digest);186 UInt calcMD5 (const TComPicYuv& pic, TCom Digest&digest);187 std::string digestToString(const TComDigest&digest, Int numChar);184 UInt calcChecksum(const TComPicYuv& pic, TComPictureHash &digest); 185 UInt calcCRC (const TComPicYuv& pic, TComPictureHash &digest); 186 UInt calcMD5 (const TComPicYuv& pic, TComPictureHash &digest); 187 std::string hashToString(const TComPictureHash &digest, Int numChar); 188 188 //! \} 189 189 -
branches/SHM-dev/source/Lib/TLibCommon/TComPicYuvMD5.cpp
r1259 r1273 87 87 88 88 89 UInt compCRC(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TCom Digest&digest)89 UInt compCRC(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComPictureHash &digest) 90 90 { 91 91 UInt crcMsb; … … 127 127 } 128 128 129 UInt calcCRC(const TComPicYuv& pic, TCom Digest&digest)129 UInt calcCRC(const TComPicYuv& pic, TComPictureHash &digest) 130 130 { 131 131 UInt digestLen=0; … … 139 139 } 140 140 141 UInt compChecksum(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TCom Digest&digest)141 UInt compChecksum(Int bitdepth, const Pel* plane, UInt width, UInt height, UInt stride, TComPictureHash &digest) 142 142 { 143 143 UInt checksum = 0; … … 165 165 } 166 166 167 UInt calcChecksum(const TComPicYuv& pic, TCom Digest&digest)167 UInt calcChecksum(const TComPicYuv& pic, TComPictureHash &digest) 168 168 { 169 169 UInt digestLen=0; … … 183 183 * uses little-endian two byte words; 8bit data uses single byte words. 184 184 */ 185 UInt calcMD5(const TComPicYuv& pic, TCom Digest&digest)185 UInt calcMD5(const TComPicYuv& pic, TComPictureHash &digest) 186 186 { 187 187 /* choose an md5_plane packing function based on the system bitdepth */ … … 207 207 } 208 208 209 std::string digestToString(const TComDigest&digest, Int numChar)209 std::string hashToString(const TComPictureHash &digest, Int numChar) 210 210 { 211 211 static const Char* hex = "0123456789abcdef"; -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1265 r1273 2130 2130 } 2131 2131 2132 Void TComSPS::setHrdParameters( UInt frameRate, UInt numDU, UInt bitRate, Bool randomAccess )2132 Void TComSPS::setHrdParameters( UInt frameRate, Bool useSubCpbParams, UInt bitRate, Bool randomAccess ) 2133 2133 { 2134 2134 if( !getVuiParametersPresentFlag() ) … … 2176 2176 hrd->setVclHrdParametersPresentFlag( rateCnt ); 2177 2177 2178 hrd->setSubPicCpbParamsPresentFlag( ( numDU > 1 ));2178 hrd->setSubPicCpbParamsPresentFlag( useSubCpbParams ); 2179 2179 2180 2180 if( hrd->getSubPicCpbParamsPresentFlag() ) … … 2223 2223 bitrateValue = bitRate; 2224 2224 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; 2226 2229 duBitRateValue = bitRate; 2227 2230 -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h
r1265 r1273 310 310 UInt m_cpbRemovalDelayLengthMinus1; 311 311 UInt m_dpbOutputDelayLengthMinus1; 312 UInt m_numDU;313 312 HrdSubLayerInfo m_HRD[MAX_TLAYER]; 314 313 … … 396 395 Bool getCbrFlag( Int layer, Int cpbcnt, Int nalOrVcl ) const { return m_HRD[layer].cbrFlag[cpbcnt][nalOrVcl]; } 397 396 398 Void setNumDU( UInt value ) { m_numDU = value; }399 UInt getNumDU( ) const { return m_numDU; }400 397 Bool getCpbDpbDelaysPresentFlag( ) const { return getNalHrdParametersPresentFlag() || getVclHrdParametersPresentFlag(); } 401 398 … … 1205 1202 , m_log2MaxMvLengthHorizontal (15) 1206 1203 , m_log2MaxMvLengthVertical (15) 1207 {}1204 {} 1208 1205 1209 1206 virtual ~TComVUI() {} … … 1525 1522 Bool getScalingListPresentFlag() const { return m_scalingListPresentFlag; } 1526 1523 Void setScalingListPresentFlag( Bool b ) { m_scalingListPresentFlag = b; } 1527 1528 1524 Void setScalingList( TComScalingList *scalingList); 1529 1525 TComScalingList& getScalingList() { return m_scalingList; } … … 1541 1537 TComVUI* getVuiParameters() { return &m_vuiParameters; } 1542 1538 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 ); 1545 1540 const TComPTL* getPTL() const { return &m_pcPTL; } 1546 1541 TComPTL* getPTL() { return &m_pcPTL; } … … 1571 1566 }; 1572 1567 1568 1573 1569 /// Reference Picture Lists class 1574 1570 … … 1597 1593 Void setRefPicSetIdxL1(UInt idx, UInt refPicSetIdx) { assert(idx<REF_PIC_LIST_NUM_IDX); m_RefPicSetIdxL1[idx] = refPicSetIdx; } 1598 1594 }; 1599 1600 1595 1601 1596 /// PPS class … … 1803 1798 Bool getScalingListPresentFlag() const { return m_scalingListPresentFlag; } 1804 1799 Void setScalingListPresentFlag( Bool b ) { m_scalingListPresentFlag = b; } 1805 1806 1800 TComScalingList& getScalingList() { return m_scalingList; } 1807 1801 const TComScalingList& getScalingList() const { return m_scalingList; } … … 2399 2393 };// END CLASS DEFINITION TComSlice 2400 2394 2395 2401 2396 Void calculateParameterSetChangedFlag(Bool &bChanged, const std::vector<UChar> *pOldData, const std::vector<UChar> *pNewData); 2402 2397 -
branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h
r1265 r1273 864 864 865 865 866 struct TCom Digest866 struct TComPictureHash 867 867 { 868 868 std::vector<UChar> hash; 869 869 870 Bool operator==(const TCom Digest&other) const870 Bool operator==(const TComPictureHash &other) const 871 871 { 872 872 if (other.hash.size() != hash.size()) … … 884 884 } 885 885 886 Bool operator!=(const TCom Digest&other) const886 Bool operator!=(const TComPictureHash &other) const 887 887 { 888 888 return !(*this == other);
Note: See TracChangeset for help on using the changeset viewer.