diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp index 83f27e8d9048456add182812258c586d31b4245d..cddb7b17086d1c52727d9e8a12732a6cc009b3af 100644 --- a/source/App/EncoderApp/EncApp.cpp +++ b/source/App/EncoderApp/EncApp.cpp @@ -1253,12 +1253,10 @@ void EncApp::xInitLibCfg() m_cEncLib.setSiiSEITimeScale(m_siiSEITimeScale); m_cEncLib.setSiiSEISubLayerNumUnitsInSI(m_siiSEISubLayerNumUnitsInSI); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER m_cEncLib.setPoSEIEnabled (m_poSEIEnabled); m_cEncLib.setPoSEIPayloadType (m_poSEIPayloadType); m_cEncLib.setPoSEIProcessingOrder (m_poSEIProcessingOrder); m_cEncLib.setPoSEINumofSeiMessages (m_numofSEIMessages); -#endif m_cEncLib.setVuiParametersPresentFlag ( m_vuiParametersPresentFlag ); m_cEncLib.setSamePicTimingInAllOLS (m_samePicTimingInAllOLS); diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp index 4bcfdf99ca3e8c9bd96d5fd800c6a814288ee3ab..9ea13e704bd00e5bf1c7bf0ad90a6bafc2380afd 100644 --- a/source/App/EncoderApp/EncAppCfg.cpp +++ b/source/App/EncoderApp/EncAppCfg.cpp @@ -745,10 +745,8 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) SMultiValueInput<uint32_t> cfg_FgcSEICompModelValueComp2 (0, 65535, 0, 256 * 6); SMultiValueInput<unsigned> cfg_siiSEIInputNumUnitsInSI(0, std::numeric_limits<uint32_t>::max(), 0, 7); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER SMultiValueInput<uint16_t> cfg_poSEIPayloadType (0, 65535, 0, 256*2); SMultiValueInput<uint16_t> cfg_poSEIProcessingOrder (0, 255, 0, 256); -#endif #if ENABLE_TRACING string sTracingRule; @@ -1593,12 +1591,10 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) ("SEIDRINonlinearModel", cfg_driSEINonlinearModel, cfg_driSEINonlinearModel, "List of the piece-wise linear segments for mapping of decoded luma sample values of an auxiliary picture to a scale that is uniformly quantized in terms of disparity in the depth representation information SEI message") ("SEIConstrainedRASL", m_constrainedRaslEncoding, false, "Control generation of constrained RASL encoding SEI message") -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER //Processing order of SEI (pos) ("SEIPOEnabled", m_poSEIEnabled, false, "Specifies whether SEI processing order is applied or not") ("SEIPOPayLoadType", cfg_poSEIPayloadType, cfg_poSEIPayloadType, "List of payloadType for processing") ("SEIPOProcessingOrder", cfg_poSEIProcessingOrder, cfg_poSEIProcessingOrder, "List of payloadType processing order") -#endif ("DebugBitstream", m_decodeBitstreams[0], string( "" ), "Assume the frames up to POC DebugPOC will be the same as in this bitstream. Load those frames from the bitstream instead of encoding them." ) ("DebugPOC", m_switchPOC, -1, "If DebugBitstream is present, load frames up to this POC from this bitstream. Starting with DebugPOC, return to normal encoding." ) @@ -3292,7 +3288,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER if (m_poSEIEnabled) { assert(cfg_poSEIPayloadType.values.size() > 0); @@ -3316,7 +3311,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] ) assert(m_poSEIPayloadType.size() > 0); assert(m_poSEIProcessingOrder.size() == m_poSEIPayloadType.size()); } -#endif if( m_costMode == COST_LOSSLESS_CODING ) { @@ -5173,9 +5167,7 @@ void EncAppCfg::xPrintParameter() msg(VERBOSE, "BIM:%d ", m_bimEnabled); msg(VERBOSE, "SEI FGC:%d ", m_fgcSEIEnabled); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER msg(VERBOSE, "SEI processing Order:%d ", m_poSEIEnabled); -#endif #if EXTENSION_360_VIDEO m_ext360.outputConfigurationSummary(); diff --git a/source/App/EncoderApp/EncAppCfg.h b/source/App/EncoderApp/EncAppCfg.h index 6140cc28d3d01dbd9963c0fd53ee3aef595ccd05..5ae293986658d7a1d40d411d6f6760e655d990ee 100644 --- a/source/App/EncoderApp/EncAppCfg.h +++ b/source/App/EncoderApp/EncAppCfg.h @@ -778,12 +778,10 @@ protected: bool m_nnPostFilterSEIActivationEnabled; uint32_t m_nnPostFilterSEIActivationId; -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER bool m_poSEIEnabled; std::vector<uint16_t> m_poSEIPayloadType; std::vector<uint8_t> m_poSEIProcessingOrder; uint32_t m_numofSEIMessages; -#endif bool m_constrainedRaslEncoding; diff --git a/source/Lib/CommonLib/SEI.cpp b/source/Lib/CommonLib/SEI.cpp index e14fe7743b8041f2d4efbf48380b0ecbf67e36c8..201bc388e1da7749cc8e0b90df126500e68e009a 100644 --- a/source/Lib/CommonLib/SEI.cpp +++ b/source/Lib/CommonLib/SEI.cpp @@ -482,9 +482,7 @@ const char *SEI::getSEIMessageString(SEI::PayloadType payloadType) case SEI::NEURAL_NETWORK_POST_FILTER_ACTIVATION: return "Neural network post-filter activation"; case SEI::PHASE_INDICATION: return "Phase Indication"; -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER case SEI::SEI_PROCESSING_ORDER: return "SEI messages Processing order"; -#endif default: return "Unknown"; } } diff --git a/source/Lib/CommonLib/SEI.h b/source/Lib/CommonLib/SEI.h index a20b0e5492204ad302ffe01d505d76b916526a45..959463447b3a8355241aa9f7f41d66a063712cd1 100644 --- a/source/Lib/CommonLib/SEI.h +++ b/source/Lib/CommonLib/SEI.h @@ -96,9 +96,7 @@ public: NEURAL_NETWORK_POST_FILTER_ACTIVATION = 211, PHASE_INDICATION = 212, -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER SEI_PROCESSING_ORDER = 213, -#endif }; SEI() {} @@ -133,7 +131,6 @@ public: std::vector<unsigned> m_siiSubLayerNumUnitsInSI; }; -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER class SEIProcessingOrderInfo : public SEI { public: @@ -146,7 +143,6 @@ public: std::vector<uint8_t> m_posProcessingOrder; uint32_t m_posNumofSeiMessages; }; -#endif class SEIEquirectangularProjection : public SEI { diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index b29f45fa1652aeba5edab6067d3c2a5e786ef265..aaa8ee2bdc8b38d685fb098f13b2cb57b8405600 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -54,7 +54,6 @@ //########### place macros to be removed in next cycle below this line ############### -#define JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER 1 // JVET-AA0102 and JVET-AA2027: SEI processing order SEI message in VVC (Draft 1) (SEI processing order SEI message carries information indicating the preferred processing order, as determined by the encoder) #define JVET_AA0055_SIGNAL_ADDITIONAL_PADDING 1 // JVET-AA0055 PROPOSAL A: Allow for signalling additional padding types for the neural network #define JVET_AA0055_SUPPORT_BINARY_NEURAL_NETWORK 1 // JVET-AA0055 PROPOSAL B: Allow for signalling the use of binary neural network #define JVET_AA0054_SPECIFY_NN_POST_FILTER_DATA 1 // JVET-AA0054_PROPOSAL1: Method to specify neural network post filter data via an external URL diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp index 2579d893f7034165945f8b3204dda87e0427f204..70cbc3268dd4defce7256a9bd7a78db4d0d8103d 100644 --- a/source/Lib/DecoderLib/SEIread.cpp +++ b/source/Lib/DecoderLib/SEIread.cpp @@ -434,12 +434,10 @@ void SEIReader::xReadSEImessage(SEIMessages& seis, const NalUnitType nalUnitType sei = new SEIPhaseIndication; xParseSEIPhaseIndication((SEIPhaseIndication&)*sei, payloadSize, pDecodedMessageOutputStream); break; -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER case SEI::SEI_PROCESSING_ORDER: sei = new SEIProcessingOrderInfo; xParseSEIProcessingOrder((SEIProcessingOrderInfo&) *sei, payloadSize, pDecodedMessageOutputStream); break; -#endif default: for (uint32_t i = 0; i < payloadSize; i++) { @@ -609,7 +607,6 @@ void SEIReader::xParseSEIShutterInterval(SEIShutterIntervalInfo& sei, uint32_t p } } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void SEIReader::xParseSEIProcessingOrder(SEIProcessingOrderInfo& sei, uint32_t payloadSize, std::ostream *decodedMessageOutputStream) { uint32_t i,b; @@ -628,7 +625,6 @@ void SEIReader::xParseSEIProcessingOrder(SEIProcessingOrderInfo& sei, uint32_t p sei.m_posProcessingOrder[i] = val; } } -#endif /** * parse bitstream bs and unpack a decoded picture hash SEI message diff --git a/source/Lib/DecoderLib/SEIread.h b/source/Lib/DecoderLib/SEIread.h index cf92aaf21f1391361086e309eb72394d03780dcc..a41cc959cbdda78fe07d3e5a5b87e59186089cc1 100644 --- a/source/Lib/DecoderLib/SEIread.h +++ b/source/Lib/DecoderLib/SEIread.h @@ -107,9 +107,7 @@ protected: void xParseSEINNPostFilterCharacteristics(SEINeuralNetworkPostFilterCharacteristics& sei, uint32_t payloadSize, const SPS* sps, std::ostream* pDecodedMessageOutputStream); void xParseSEINNPostFilterActivation(SEINeuralNetworkPostFilterActivation& sei, uint32_t payloadSize, std::ostream *pDecodedMessageOutputStream); void xParseSEIPhaseIndication(SEIPhaseIndication& sei, uint32_t payloadSize, std::ostream* pDecodedMessageOutputStream); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void xParseSEIProcessingOrder (SEIProcessingOrderInfo& sei, uint32_t payloadSize, std::ostream *decodedMessageOutputStream); -#endif void sei_read_scode(std::ostream *pOS, uint32_t length, int& code, const char *pSymbolName); void sei_read_code(std::ostream *pOS, uint32_t length, uint32_t &ruiCode, const char *pSymbolName); diff --git a/source/Lib/EncoderLib/EncCfg.h b/source/Lib/EncoderLib/EncCfg.h index 121d9c5bec1d03719660fc48e1ab56860c200cdd..f08f1978710a5f319f0b0a0ae6540008d792db2d 100644 --- a/source/Lib/EncoderLib/EncCfg.h +++ b/source/Lib/EncoderLib/EncCfg.h @@ -841,13 +841,11 @@ protected: std::vector<uint32_t> m_driSEINonlinearModel; std::string m_arSEIFileRoot; // Annotated region SEI - initialized from external file -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER //SEI message processing order bool m_poSEIEnabled; std::vector<uint16_t> m_poSEIPayloadType; std::vector<uint8_t> m_poSEIProcessingOrder; uint32_t m_numofSEIMessages; -#endif bool m_constrainedRaslEncoding; @@ -2350,7 +2348,6 @@ public: void setRprRASLtoolSwitch(bool b) { m_rprRASLtoolSwitch = b; } bool getRprRASLtoolSwitch() { return m_rprRASLtoolSwitch; } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER //SEI messages processing order void setPoSEIEnabled(bool b) { m_poSEIEnabled = b; } bool getPoSEIEnabled() { return m_poSEIEnabled; } @@ -2360,7 +2357,6 @@ public: uint8_t getPoSEIProcessingOrder(uint8_t idx) const { return m_poSEIProcessingOrder[idx]; } void setPoSEINumofSeiMessages(uint32_t i) { m_numofSEIMessages = i; } uint32_t getPoSEINumofSeiMessages() const { return m_numofSEIMessages; } -#endif void setUseWP ( bool b ) { m_useWeightedPred = b; } void setWPBiPred ( bool b ) { m_useWeightedBiPred = b; } diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index c470f6ffd851f23127563cf1959e082f61b2ab8a..8bafa1fff47454316284cc14a1ce9af42f2d37f4 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -869,14 +869,12 @@ void EncGOP::xCreateIRAPLeadingSEIMessages (SEIMessages& seiMessages, const SPS seiMessages.push_back(seiNNPostFilterCharacteristics); } } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER if (m_pcCfg->getPoSEIEnabled()) { SEIProcessingOrderInfo *seiProcessingOrder = new SEIProcessingOrderInfo; m_seiEncoder.initSEIProcessingOrderInfo(seiProcessingOrder); seiMessages.push_back(seiProcessingOrder); } -#endif } void EncGOP::xCreatePerPictureSEIMessages (int picInGOP, SEIMessages& seiMessages, SEIMessages& nestedSeiMessages, Slice *slice) diff --git a/source/Lib/EncoderLib/SEIEncoder.cpp b/source/Lib/EncoderLib/SEIEncoder.cpp index e990e1392464c34cb41c225d6dcd6c932c13cebf..ae44f307a72685ff7aa58805481ca9823dca4216 100644 --- a/source/Lib/EncoderLib/SEIEncoder.cpp +++ b/source/Lib/EncoderLib/SEIEncoder.cpp @@ -551,7 +551,6 @@ void SEIEncoder::initSEIShutterIntervalInfo(SEIShutterIntervalInfo *seiShutterIn } } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void SEIEncoder::initSEIProcessingOrderInfo(SEIProcessingOrderInfo *seiProcessingOrderInfo) { assert(m_isInitialized); @@ -569,7 +568,6 @@ void SEIEncoder::initSEIProcessingOrderInfo(SEIProcessingOrderInfo *seiProcessin seiProcessingOrderInfo->m_posProcessingOrder[i] = m_pcCfg->getPoSEIProcessingOrder(i); } } -#endif template <typename T> static void readTokenValue(T &returnedValue, /// value returned diff --git a/source/Lib/EncoderLib/SEIEncoder.h b/source/Lib/EncoderLib/SEIEncoder.h index f08cc40ee2b44bcc2faf2fccfdba8aae342c55fb..269c12b94fb8f0f6e8fb0cc1135e968850824918 100644 --- a/source/Lib/EncoderLib/SEIEncoder.h +++ b/source/Lib/EncoderLib/SEIEncoder.h @@ -94,9 +94,7 @@ public: void initSEIShutterIntervalInfo(SEIShutterIntervalInfo *sei); void initSEINeuralNetworkPostFilterCharacteristics(SEINeuralNetworkPostFilterCharacteristics *sei, int filterIdx); void initSEINeuralNetworkPostFilterActivation(SEINeuralNetworkPostFilterActivation *sei); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void initSEIProcessingOrderInfo(SEIProcessingOrderInfo *sei); -#endif private: EncCfg* m_pcCfg; EncLib* m_pcEncLib; diff --git a/source/Lib/EncoderLib/SEIwrite.cpp b/source/Lib/EncoderLib/SEIwrite.cpp index 6bca88cf5a7bac6b4236d4788f5346698d5fefc4..252853367e279f2611901116d0064f932ae86ca3 100644 --- a/source/Lib/EncoderLib/SEIwrite.cpp +++ b/source/Lib/EncoderLib/SEIwrite.cpp @@ -169,11 +169,9 @@ void SEIWriter::xWriteSEIpayloadData(OutputBitstream &bs, const SEI& sei, HRD &h case SEI::NEURAL_NETWORK_POST_FILTER_ACTIVATION: xWriteSEINeuralNetworkPostFilterActivation(*static_cast<const SEINeuralNetworkPostFilterActivation*>(&sei)); break; -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER case SEI::SEI_PROCESSING_ORDER: xWriteSEIProcessingOrder(*static_cast<const SEIProcessingOrderInfo*>(&sei)); break; -#endif default: THROW("Trying to write unhandled SEI message"); break; @@ -1404,7 +1402,6 @@ void SEIWriter::xWriteSEIShutterInterval(const SEIShutterIntervalInfo &sei) } } -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void SEIWriter::xWriteSEIProcessingOrder(const SEIProcessingOrderInfo &sei) { for (uint32_t i=0; i < sei.m_posNumofSeiMessages; i++) @@ -1413,7 +1410,6 @@ void SEIWriter::xWriteSEIProcessingOrder(const SEIProcessingOrderInfo &sei) WRITE_CODE(sei.m_posProcessingOrder[i], 8, "sei_processingOrder[i]"); } } -#endif void SEIWriter::xWriteSEIConstrainedRaslIndication(const SEIConstrainedRaslIndication& /*sei*/) { diff --git a/source/Lib/EncoderLib/SEIwrite.h b/source/Lib/EncoderLib/SEIwrite.h index e671c09090a06c73f84157565e4ca39caed748c3..6e689440065f1323b1eccb219bc9d83877dd9195 100644 --- a/source/Lib/EncoderLib/SEIwrite.h +++ b/source/Lib/EncoderLib/SEIwrite.h @@ -98,9 +98,7 @@ protected: void xWriteSEINeuralNetworkPostFilterCharacteristics(const SEINeuralNetworkPostFilterCharacteristics& sei); void xWriteNNPFCComplexityElement(const SEINeuralNetworkPostFilterCharacteristics& sei); void xWriteSEINeuralNetworkPostFilterActivation(const SEINeuralNetworkPostFilterActivation &sei); -#if JVET_AA0102_JVET_AA2027_SEI_PROCESSING_ORDER void xWriteSEIProcessingOrder(const SEIProcessingOrderInfo &sei); -#endif protected: HRD m_nestingHrd; };