Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jvet/VVCSoftware_VTM
  • chenhuanbang/VVCSoftware_VTM
  • ezhizng/VVCSoftware_VTM
  • XZheng/VVCSoftware_VTM
  • YanZhang/VVCSoftware_VTM
  • xiaozhongxu/VVCSoftware_VTM
  • bossen/VVCSoftware_VTM
  • XiangLi/VVCSoftware_VTM
  • s.iwamura/VVCSoftware_VTM
  • yuling.hsiao/VVCSoftware_VTM
  • ccc2384823/VVCSoftware_VTM
  • yuchisu/VVCSoftware_VTM
  • schwarz/VVCSoftware_VTM
  • philippe.hanhart/VVCSoftware_VTM
  • nanh/VVCSoftware_VTM
  • guillaume.laroche/VVCSoftware_VTM
  • Kenneth/VVCSoftware_VTM
  • jonatan/VVCSoftware_VTM
  • Alexey/VVCSoftware_VTM
  • saintspear/VVCSoftware_VTM
  • xinzhao/VVCSoftware_VTM
  • Seungsoo/VVCSoftware_VTM
  • jamesxxiu/VVCSoftware_VTM
  • leolzhao/VVCSoftware_VTM
  • ywchen/VVCSoftware_VTM
  • kevin625/VVCSoftware_VTM
  • Zhang/VVCSoftware_VTM
  • zhangkai/VVCSoftware_VTM
  • YCSun/VVCSoftware_VTM
  • ksuehring/VVCSoftware_VTM
  • AbeKiyo/VVCSoftware_VTM
  • naeri.park/VVCSoftware_VTM
  • ling/VVCSoftware_VTM
  • aikiho/VVCSoftware_VTM
  • JangwonChoi/VVCSoftware_VTM
  • Shelly/VVCSoftware_VTM
  • blaeser/VVCSoftware_VTM
  • crhelmrich/VVCSoftware_VTM
  • keydel/VVCSoftware_VTM
  • adam_wieckowski/VVCSoftware_VTM
  • hashimry/VVCSoftware_VTM
  • yimingli/VVCSoftware_VTM
  • zhipin/VVCSoftware_VTM
  • chernyak/VVCSoftware_VTM
  • jvet-l-ahg-14/VVCSoftware_VTM
  • sauer/VVCSoftware_VTM
  • fbarbier/VVCSoftware_VTM
  • misrak/VVCSoftware_VTM
  • ikai/VVCSoftware_VTM
  • tlu/VVCSoftware_VTM
  • Yasugi/VVCSoftware_VTM
  • peterchuang/VVCSoftware_VTM
  • wanght99/VVCSoftware_VTM
  • yuhan/VVCSoftware_VTM
  • hongbin/VVCSoftware_VTM
  • jiahaoli/VVCSoftware_VTM
  • cfd/VVCSoftware_VTM
  • ruoyangyu/VVCSoftware_VTM
  • chujoh/VVCSoftware_VTM
  • lijingya/VVCSoftware_VTM
  • hinz/VVCSoftware_VTM
  • tamse.anish/VVCSoftware_VTM
  • mcoban/VVCSoftware_VTM
  • george/VVCSoftware_VTM
  • jeeva.raj/VVCSoftware_VTM
  • antoine/VVCSoftware_VTM
  • moonmo.koo/VVCSoftware_VTM
  • deluxan/VVCSoftware_VTM
  • bheng/VVCSoftware_VTM
  • lzz8246/VVCSoftware_VTM
  • delagrangep/VVCSoftware_VTM
  • jiechen/VVCSoftware_VTM
  • hendry197/VVCSoftware_VTM
  • LGE_VCC/VVCSoftware_VTM
  • asegall/VVCSoftware_VTM
  • pbcowan/VVCSoftware_VTM
  • forayr/VVCSoftware_VTM
  • JT/VVCSoftware_VTM
  • Zhou/VVCSoftware_VTM
  • yjpiao/VVCSoftware_VTM
  • fabrice.leleannec/VVCSoftware_VTM
  • tpoirier/VVCSoftware_VTM
  • PoHan.Lin/VVCSoftware_VTM
  • jzxu/VVCSoftware_VTM
  • junghak.nam/VVCSoftware_VTM
  • guichunli/VVCSoftware_VTM
  • xianglinwang/VVCSoftware_VTM
  • chunchic/VVCSoftware_VTM
  • chrisr12/VVCSoftware_VTM
  • ks_kashyap/VVCSoftware_VTM
  • minhua/VVCSoftware_VTM
  • Sheng-Yen.Lin/VVCSoftware_VTM
  • hegilmez/VVCSoftware_VTM
  • swongah/VVCSoftware_VTM
  • merkle/VVCSoftware_VTM
  • sunyucheng/VVCSoftware_VTM
  • kirchhoffer/VVCSoftware_VTM
  • vdrugeon/VVCSoftware_VTM
  • jennylai/VVCSoftware_VTM
  • rickxu/VVCSoftware_VTM
  • seuhong/VVCSoftware_VTM
  • chollmann/VVCSoftware_VTM
  • jvet-n-ce8-public/VVCSoftware_VTM
  • martin.m.pettersson/VVCSoftware_VTM
  • siekmann/VVCSoftware_VTM
  • aramasub/VVCSoftware_VTM
  • zhiyilin/VVCSoftware_VTM
  • EricLin/VVCSoftware_VTM
  • mengwang/VVCSoftware_VTM
  • m.sarwer/VVCSoftware_VTM
  • agnesedong/VVCSoftware_VTM
  • geonjungko/VVCSoftware_VTM
  • bray/VVCSoftware_VTM
  • yhchao/VVCSoftware_VTM
  • Zhu/VVCSoftware_VTM
  • ykato/VVCSoftware_VTM
  • ZhipinDeng/VVCSoftware_VTM
  • jasonjung/VVCSoftware_VTM
  • hanhuang/VVCSoftware_VTM
  • seregin/VVCSoftware_VTM
  • wchen1014/VVCSoftware_VTM
  • Auyeung/VVCSoftware_VTM
  • Morris/VVCSoftware_VTM
  • lphamvan/VVCSoftware_VTM
  • dmehlem/VVCSoftware_VTM
  • shih-ta.hsiang/VVCSoftware_VTM
  • ysanchez/VVCSoftware_VTM
  • baegn74/VVCSoftware_VTM
  • kazui/VVCSoftware_VTM
  • yuwenhe_vvc/VVCSoftware_VTM
  • rickard/VVCSoftware_VTM
  • wangyang.cs/VVCSoftware_VTM
  • xwmeng/VVCSoftware_VTM
  • takeshi.tsukuba/VVCSoftware_VTM
  • yixindu/VVCSoftware_VTM
  • baixiu.wz/VVCSoftware_VTM
  • hm.jang/VVCSoftware_VTM
  • Ted/VVCSoftware_VTM
  • nguyen/VVCSoftware_VTM
  • chaohsiu/VVCSoftware_VTM
  • francoise/VVCSoftware_VTM
  • Yin/VVCSoftware_VTM
  • Morigami/VVCSoftware_VTM
  • sagar.kotecha/VVCSoftware_VTM
  • hwsun/VVCSoftware_VTM
  • pierrick.bouvier/VVCSoftware_VTM
  • XiangMa/VVCSoftware_VTM
  • LouiseLee/VVCSoftware_VTM
  • chenps/VVCSoftware_VTM
  • karls/VVCSoftware_VTM
  • biaowang/VVCSoftware_VTM
  • hangao/VVCSoftware_VTM
  • Jin/VVCSoftware_VTM
  • analci/VVCSoftware_VTM
  • KuiFan/VVCSoftware_VTM
  • hobingzhang/VVCSoftware_VTM
  • audrey.turquin/VVCSoftware_VTM
  • rlliao/VVCSoftware_VTM
  • winken/VVCSoftware_VTM
  • hallapur/VVCSoftware_VTM
  • T.Hashimoto/VVCSoftware_VTM
  • AnandMeher/VVCSoftware_VTM
  • semihese/VVCSoftware_VTM
  • ouedraogo/VVCSoftware_VTM
  • arthurcerveira/VVCSoftware_VTM
  • sunmi.yoo/VVCSoftware_VTM
  • Cynthia/VVCSoftware_VTM
  • yang/VVCSoftware_VTM
  • yuyoon/VVCSoftware_VTM
  • jslee/VVCSoftware_VTM
  • weimin.zeng/VVCSoftware_VTM
  • edrthomas/VVCSoftware_VTM
  • Mitsuru.Katsumata/VVCSoftware_VTM
  • adybrowne/VVCSoftware_VTM
  • jack.enhorn/VVCSoftware_VTM
  • Palanivel/VVCSoftware_VTM
  • olena.chubach/VVCSoftware_VTM
  • juvenalluo/VVCSoftware_VTM
  • yylee/VVCSoftware_VTM
  • bross/VVCSoftware_VTM
  • jvet-ahg-nnvc/VVCSoftware_VTM
  • jacob/VVCSoftware_VTM
  • dmytro.rusanovskyy/VVCSoftware_VTM
  • karamnaser/VVCSoftware_VTM
  • milos.radosavljevic/VVCSoftware_VTM
  • Keming/VVCSoftware_VTM
  • pj/VVCSoftware_VTM
  • cwkuo/VVCSoftware_VTM
  • BD/VVCSoftware_VTM
  • bartnik/VVCSoftware_VTM
  • Fangjun.Pu/VVCSoftware_VTM
  • nikolay.shostak/VVCSoftware_VTM
  • kirill.suverov/VVCSoftware_VTM
  • Xile_Zhou/VVCSoftware_VTM
  • ksuehring/vvc-software-vtm-nnvc
  • guether/VVCSoftware_VTM
  • salmonc/VVCSoftware_VTM
  • eeehey/VVCSoftware_VTM
  • marie-pierre.gallasso/VVCSoftware_VTM
  • jvet-ahg-fgt/VTM
  • liaojq/VVCSoftware_VTM
  • axel.ricard/VVCSoftware_VTM
  • XiangLi/nnvc
  • sw.xie/VVCSoftware_VTM
  • jeeva.raj/vvc-software-vtm-tu-c
  • XiangLi/tu-c
  • msantamaria/nnvc
  • cjj490168650/VVCSoftware_VTM
  • Yun_li/VVCSoftware_VTM
  • Zhengang/vvc-software-vtm
  • lvzhuoyi/vvc-software-vtm-nnvc
  • Kenneth/vvc-software-vtm-nn
  • biatekt/vvc-software-vtm
  • jvet-ahg-gcc/VVCSoftware_VTM
  • JINGYING/VVCSoftware_VTM
  • furban/VVCSoftware_VTM
  • yanning/VVCSoftware_VTM
  • zhuochen/VVCSoftware_VTM
  • Kaifa/VVCSoftware_VTM_AJ0048
  • yueli/VVCSoftware_VTM
  • tokumo/VVCSoftware_VTM
221 results
Show changes
Showing
with 98 additions and 105 deletions
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......@@ -1119,7 +1119,6 @@ void EncApp::xInitLibCfg( int layerIdx )
{
m_cEncLib.setCtiSEILut(m_ctiSEILut[i], i);
}
#if JVET_AH2006_EOI_SEI
m_cEncLib.setEOISEIEnabled(m_eoiSEIEnabled);
m_cEncLib.setEOISEICancelFlag(m_eoiSEICancelFlag);
m_cEncLib.setEOISEIPersistenceFlag(m_eoiSEIPersistenceFlag);
......@@ -1127,6 +1126,10 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setEOISEIForMachineAnalysisIdc(m_eoiSEIForMachineAnalysisIdc);
m_cEncLib.setEOISEIType(m_eoiSEIType);
m_cEncLib.setEOISEIObjectBasedIdc(m_eoiSEIObjectBasedIdc);
#if JVET_AK0075_EOI_SEI_OBJ_QP_THRESHOLD
m_cEncLib.setEOISEIQuantThresholdDelta(m_eoiSEIQuantThresholdDelta);
m_cEncLib.setEOISEIPicQuantObjectFlag(m_eoiSEIPicQuantObjectFlag);
#endif
m_cEncLib.setEOISEITemporalResamplingTypeFlag(m_eoiSEITemporalResamplingTypeFlag);
m_cEncLib.setEOISEINumIntPics(m_eoiSEINumIntPics);
m_cEncLib.setEOISEIOrigPicDimensionsFlag(m_eoiSEIOrigPicDimensionsFlag);
......@@ -1135,8 +1138,6 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setEOISEISpatialResamplingTypeFlag(m_eoiSEISpatialResamplingTypeFlag);
m_cEncLib.setEOISEIPrivacyProtectionTypeIdc(m_eoiSEIPrivacyProtectionTypeIdc);
m_cEncLib.setEOISEIPrivacyProtectedInfoType(m_eoiSEIPrivacyProtectedInfoType);
#endif
#if JVET_AG0322_MODALITY_INFORMATION
// Modality Information SEI
m_cEncLib.setMiSEIEnabled (m_miSEIEnabled);
m_cEncLib.setMiCancelFlag (m_miCancelFlag);
......@@ -1147,7 +1148,6 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setMiMinWavelengthExponentPlus15 (m_miMinWavelengthExponentPlus15);
m_cEncLib.setMiMaxWavelengthMantissa (m_miMaxWavelengthMantissa);
m_cEncLib.setMiMaxWavelengthExponentPlus15 (m_miMaxWavelengthExponentPlus15);
#endif
// content colour volume SEI
m_cEncLib.setCcvSEIEnabled (m_ccvSEIEnabled);
m_cEncLib.setCcvSEICancelFlag (m_ccvSEICancelFlag);
......@@ -1273,10 +1273,14 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setNNPostFilterSEICharacteristicsPicHeightDenominatorMinus1 (m_nnPostFilterSEICharacteristicsPicHeightDenominator[i] - 1, i);
}
m_cEncLib.setNNPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1(m_nnPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1[i], i);
#if JVET_AK0072_NNPF_TEMP_EXTR_UPDATES
m_cEncLib.setNNPostFilterSEICharacteristicsInputPicOutputFlag( m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i], i);
#else
if (m_nnPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1[i] > 0)
{
m_cEncLib.setNNPostFilterSEICharacteristicsInputPicOutputFlag( m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i], i);
}
#endif
if ((m_cEncLib.getNNPostFilterSEICharacteristicsPurpose(i) & NNPC_PurposeType::FRAME_RATE_UPSAMPLING) != 0)
{
m_cEncLib.setNNPostFilterSEICharacteristicsNumberInterpolatedPictures( m_nnPostFilterSEICharacteristicsNumberInterpolatedPictures[i], i);
......@@ -1285,20 +1289,13 @@ void EncApp::xInitLibCfg( int layerIdx )
{
m_cEncLib.setNNPostFilterSEICharacteristicsNumberExtrapolatedPicturesMinus1( m_nnPostFilterSEICharacteristicsNumberExtrapolatedPicturesMinus1[i], i);
}
#if NNPFC_SPATIAL_EXTRAPOLATION
if ((m_cEncLib.getNNPostFilterSEICharacteristicsPurpose(i) & NNPC_PurposeType::SPATIAL_EXTRAPOLATION) != 0)
{
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset (m_nnPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExtrapolationRightOffset (m_nnPostFilterSEICharacteristicsSpatialExtrapolationRightOffset[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExtrapolationTopOffset (m_nnPostFilterSEICharacteristicsSpatialExtrapolationTopOffset[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset(m_nnPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExtrapolationPromptPresentFlag( m_nnPostFilterSEICharacteristicsSpatialExtrapolationPromptPresentFlag[i], i);
if (m_cEncLib.getNNPostFilterSEICharacteristicsSpatialExtrapolationPromptPresentFlag(i))
{
m_cEncLib.setNNPostFilterSEICharacteristicsSpatialExrapolationPrompt( m_nnPostFilterSEICharacteristicsSpatialExtrapolationPrompt[i], i);
}
}
#endif
m_cEncLib.setNNPostFilterSEICharacteristicsAbsentInputPicZeroFlag (m_nnPostFilterSEICharacteristicsAbsentInputPicZeroFlag[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsComponentLastFlag (m_nnPostFilterSEICharacteristicsComponentLastFlag[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsInpFormatIdc (m_nnPostFilterSEICharacteristicsInpFormatIdc[i], i);
......@@ -1364,6 +1361,11 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setNNPostFilterSEICharacteristicsPayloadFilename(m_nnPostFilterSEICharacteristicsPayloadFilename[i], i);
}
m_cEncLib.setNNPostFilterSEICharacteristicsAuxInpIdc (m_nnPostFilterSEICharacteristicsAuxInpIdc[i], i);
m_cEncLib.setNNPostFilterSEICharacteristicsInbandPromptFlag( m_nnPostFilterSEICharacteristicsInbandPromptFlag[i], i);
if (m_cEncLib.getNNPostFilterSEICharacteristicsInbandPromptFlag(i))
{
m_cEncLib.setNNPostFilterSEICharacteristicsPrompt( m_nnPostFilterSEICharacteristicsPrompt[i], i);
}
m_cEncLib.setNNPostFilterSEICharacteristicsSepColDescriptionFlag (m_nnPostFilterSEICharacteristicsSepColDescriptionFlag[i], i);
if (m_cEncLib.getNNPostFilterSEICharacteristicsSepColDescriptionFlag(i))
{
......@@ -1371,12 +1373,10 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setNNPostFilterSEICharacteristicsTransCharacteristics (m_nnPostFilterSEICharacteristicsTransCharacteristics[i],i);
m_cEncLib.setNNPostFilterSEICharacteristicsMatrixCoeffs (m_nnPostFilterSEICharacteristicsMatrixCoeffs[i],i);
}
#if JVET_AD0067_INCLUDE_SYNTAX
if (m_cEncLib.getNNPostFilterSEICharacteristicsSepColDescriptionFlag(i) && (m_cEncLib.getNNPostFilterSEICharacteristicsOutFormatIdc(i)==1))
{
m_cEncLib.setNNPostFilterSEICharacteristicsFullRangeFlag (m_nnPostFilterSEICharacteristicsFullRangeFlag[i],i);
}
#endif
}
m_cEncLib.setNnPostFilterSEIActivationEnabled (m_nnPostFilterSEIActivationEnabled);
m_cEncLib.setNnPostFilterSEIActivationUseSuffixSEI (m_nnPostFilterSEIActivationUseSuffixSEI);
......@@ -1387,6 +1387,13 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setNnPostFilterSEIActivationNoFollCLVSFlag (m_nnPostFilterSEIActivationNoFollCLVSFlag);
m_cEncLib.setNnPostFilterSEIActivationPersistenceFlag (m_nnPostFilterSEIActivationPersistenceFlag);
m_cEncLib.setNnPostFilterSEIActivationOutputFlag (m_nnPostFilterSEIActivationOutputFlag);
#if JVET_AJ0104_NNPFA_PROMPT_UPDATE
m_cEncLib.setNnPostFilterSEIActivationPromptUpdateFlag (m_nnPostFilterSEIActivationPromptUpdateFlag);
m_cEncLib.setNnPostFilterSEIActivationPrompt (m_nnPostFilterSEIActivationPrompt);
#endif
#if JVET_AJ0114_NNPFA_NUM_PIC_SHIFT
m_cEncLib.setNnPostFilterSEIActivationNumInputPicShift (m_nnPostFilterSEIActivationNumInputPicShift);
#endif
m_cEncLib.setEntropyCodingSyncEnabledFlag ( m_entropyCodingSyncEnabledFlag );
m_cEncLib.setEntryPointPresentFlag ( m_entryPointPresentFlag );
m_cEncLib.setTMVPModeId ( m_TMVPModeId );
......@@ -1444,30 +1451,30 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setmSptiSEISourceType(m_sptiSourceType);
m_cEncLib.setmSptiSEITimeScale(m_sptiTimeScale);
m_cEncLib.setmSptiSEINumUnitsInElementalInterval(m_sptiNumUnitsInElementalInterval);
#if JVET_AJ0308_SPTI_SEI_DIRECTION_FLAG
m_cEncLib.setmSptiSEIDirectionFlag(m_sptiDirectionFlag);
#endif
}
m_cEncLib.setPoSEINumMinus2 (m_poSEINumMinus2);
m_cEncLib.setPoSEIBreadthFirstFlag (m_poSEIBreadthFirstFlag);
m_cEncLib.setPoSEIWrappingFlag (m_poSEIWrappingFlag);
m_cEncLib.setPoSEIImportanceFlag (m_poSEIImportanceFlag);
m_cEncLib.setPoSEIProcessingDegreeFlag (m_poSEIProcessingDegreeFlag);
m_cEncLib.setPoSEIPrefixFlag (m_poSEIPrefixFlag);
m_cEncLib.setPoSEIPayloadType (m_poSEIPayloadType);
m_cEncLib.setPoSEIProcessingOrder (m_poSEIProcessingOrder);
m_cEncLib.setPoSEINumOfPrefixBits (m_poSEINumOfPrefixBits);
m_cEncLib.setPoSEIPrefixByte (m_poSEIPrefixByte);
#if JVET_AH2006_TXTDESCRINFO_SEI
m_cEncLib.setTextDescriptionSEIId(m_SEITextDescriptionID);
m_cEncLib.setTextSEICancelFlag(m_SEITextCancelFlag);
#if JVET_AI0059_TXTDESCRINFO_SEI_PERSISTANCE
m_cEncLib.setTextSEIIDCancelFlag(m_SEITextIDCancelFlag);
#endif
m_cEncLib.setTextSEIPersistenceFlag(m_SEITextPersistenceFlag);
m_cEncLib.setTextSEIPurpose(m_SEITextDescriptionPurpose);
m_cEncLib.setTextSEINumStringsMinus1(m_SEITextNumStringsMinus1);
m_cEncLib.setTextSEIDescriptionStringLang(m_SEITextDescriptionStringLang);
m_cEncLib.setTextSEIDescriptionString(m_SEITextDescriptionString);
#endif
m_cEncLib.setPostFilterHintSEIEnabled(m_postFilterHintSEIEnabled);
......@@ -1583,7 +1590,6 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setDPFKeyLen(m_dpfKeyLen);
m_cEncLib.setDPFNonkeyLen(m_dpfNonkeyLen);
#if JVET_AJ0207_GFV
m_cEncLib.setGenerativeFaceVideoSEIEnabled ( m_generativeFaceVideoEnabled );
m_cEncLib.setGenerativeFaceVideoSEINumber ( m_generativeFaceVideoSEINumber );
m_cEncLib.setGenerativeFaceVideoSEIId ( m_generativeFaceVideoSEIId );
......@@ -1622,7 +1628,6 @@ void EncApp::xInitLibCfg( int layerIdx )
m_cEncLib.setGenerativeFaceVideoSEIMatrixHeight ( m_generativeFaceVideoSEIMatrixHeight );
m_cEncLib.setGenerativeFaceVideoSEIMatrixElement ( m_generativeFaceVideoSEIMatrixElement );
m_cEncLib.setGenerativeFaceVideoSEIPayloadFilename ( m_generativeFaceVideoSEIPayloadFilename );
#endif
}
void EncApp::xCreateLib( std::list<PelUnitBuf*>& recBufList, const int layerId )
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......@@ -757,7 +757,7 @@ 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);
SMultiValueInput<bool> cfg_poSEIWrappingFlag(false, true, 0, 256);
SMultiValueInput<bool> cfg_poSEIImportanceFlag(false, true, 0, 256);
SMultiValueInput<uint16_t> cfg_poSEIImportanceIdc(0, 3, 0, 256);
SMultiValueInput<bool> cfg_poSEIPrefixFlag(false, true, 0, 256);
SMultiValueInput<uint16_t> cfg_poSEIPayloadType(0, 32768, 0, 256 * 2);
SMultiValueInput<uint16_t> cfg_poSEIProcessingOrder(0, 65535, 0, 65536);
......@@ -776,7 +776,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
}
SMultiValueInput<bool> cfg_nnPostFilterSEIActivationOutputFlagList(0, 1, 1, 0);
#if JVET_AJ0207_GFV
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEIId (0, 2550, 0, 102400);
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEICnt (0, 2550, 0, 102400);
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEIDrivePicFusionFlag (0, 2550, 0, 102400);
......@@ -806,7 +805,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEIChromaKeyValue (0, 2550, 0, 102400);
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEIChromaKeyThrPresentFlag (0, 2550, 0, 102400);
SMultiValueInput<uint32_t> cfg_generativeFaceVideoSEIChromaKeyThrValue (0, 2550, 0, 102400);
#endif
#if ENABLE_TRACING
std::string sTracingRule;
......@@ -1529,6 +1527,9 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEISPTISourceType", m_sptiSourceType, 0u, "Indicates the timing relationship between source pictures and corresponding decoded output pictures.")
("SEISPTITimeScale", m_sptiTimeScale, 27000000u, "Specifies the number of time units that pass in one second.")
("SEISPTINumUnitsInElementalInterval", m_sptiNumUnitsInElementalInterval, 1080000u, "Specifies the number of time units of a clock operating at the frequency spti_time_scale Hz that corresponds to the indicated elemental source picture interval of consecutive pictures in output order in the CLVS.")
#if JVET_AJ0308_SPTI_SEI_DIRECTION_FLAG
("SEISPTIDirectionFlag", m_sptiDirectionFlag, false, "Indicates the direction of the signalled source picture intervals.")
#endif
#if JVET_AJ0151_DSC_SEI
("SEIDSCEnabled", m_cfgDigitallySignedContentSEI.enabled, false, "Control generation of Digitally Signed Content SEI messages")
("SEIDSCHashMethod", m_cfgDigitallySignedContentSEI.hashMethod, 0 , "Hash type to be used:\n"
......@@ -1550,7 +1551,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("TraceFile", sTracingFile, std::string(""), "Tracing file")
#endif
#if JVET_AH2006_EOI_SEI
("SEIEOIEnabled", m_eoiSEIEnabled, false, "Control use of the Encoder Optimization Information SEI")
("SEIEOICancelFlag", m_eoiSEICancelFlag, false, "Specifies that the persistence of the previous applied optimization")
("SEIEOIPersistenceFlag", m_eoiSEIPersistenceFlag, false, "Specifies the persistence of the optimization the current layer")
......@@ -1558,6 +1558,10 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEIEOIForMachineAnalysisIdc", m_eoiSEIForMachineAnalysisIdc, 0u, "Indicates the level of optimization for machine analsysis")
("SEIEOIType", m_eoiSEIType, 0u, "Indicates the types of optimization method")
("SEIEOIObjectBasedIdc", m_eoiSEIObjectBasedIdc, 0u, "Indicates the type of object-based optimization")
#if JVET_AK0075_EOI_SEI_OBJ_QP_THRESHOLD
("SEIEOIQuantThresholdDelta", m_eoiSEIQuantThresholdDelta, 0u, "Indicates the quantization parameter threshold determining areas classified to be outside the detected objects or to include one or more detected objects (0 = unknown or unspecified)")
("SEIEOIPicQuantObjectFlag", m_eoiSEIPicQuantObjectFlag, false, "Value of 1 indicates that areas with QP >= PicQuant + SEIEOIQuantThresholdDelta represent areas outside the detected objects. Value of 0 indicates that areas with QP <= PicQuant - SEIEOIQuantThresholdDelta represent areas that include objects")
#endif
("SEIEOITemporalResamplingTypeFlag", m_eoiSEITemporalResamplingTypeFlag, false, "specifies the type of the temporal resampling optimization.")
("SEIEOINumIntPics", m_eoiSEINumIntPics, 0u, "indicates that the count of pictures that the encoding system excluded or added between each pair of coded pictures in output order within the persistence of this SEI message is constant")
("SEIEOIOrigPicDimensionsFlag",m_eoiSEIOrigPicDimensionsFlag, false, "specifies if original source picture dimensions are present.")
......@@ -1566,9 +1570,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEIEOISpatialResamplingTypeFlag", m_eoiSEISpatialResamplingTypeFlag, false, "specifies the type of the spatial resampling optimization.")
("SEIEOIPrivacyProtectionTypeIdc", m_eoiSEIPrivacyProtectionTypeIdc, 0u, "indicates the type of privacy protection optimization")
("SEIEOIPrivacyProtectedInfoType", m_eoiSEIPrivacyProtectedInfoType, 0u, "indicates the types of protected information")
#endif
#if JVET_AG0322_MODALITY_INFORMATION
// Modality Information SEI
("SEIModalityInfoEnabled", m_miSEIEnabled, false, "Control generation of Modality Information SEI messages")
("SEIMiCancelFlag", m_miCancelFlag, false, "Indicates that Modality Information SEI message cancels the persistence or follows")
......@@ -1579,7 +1581,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEIMiMinWavelengthExponentPlus15", m_miMinWavelengthExponentPlus15, 0, "Specifies the exponent part of the minimum wavelength indicating the spectral band of optical radiation")
("SEIMiMaxWavelengthMantissa", m_miMaxWavelengthMantissa, 0, "Specifies the mantissa part of the maximum wavelength indicating the spectral band of optical radiation")
("SEIMiMaxWavelengthExponentPlus15", m_miMaxWavelengthExponentPlus15, 0, "Specifies the exponent part of the maximum wavelength indicating the spectral band of optical radiation")
#endif
// film grain characteristics SEI
......@@ -1735,7 +1736,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEIPONumMinus2", m_poSEINumMinus2, 0u, "Specifies the number of SEIs minus 2 in the SEI processing order SEI message")
("SEIPOBreadthFirstFlag", m_poSEIBreadthFirstFlag, false, "Specifies that breadth-first handling of processing chain is applied (1), or that either breadth-first or depth-first can be applied (0, default)")
("SEIPOWrappingFlag", cfg_poSEIWrappingFlag, cfg_poSEIWrappingFlag, "Specifies whether a correspoding processing-order-nested SEI message exists or not")
("SEIPOImportanceFlag", cfg_poSEIImportanceFlag, cfg_poSEIImportanceFlag, "Specifies degree of importance for the SEI messages")
("SEIPOImportanceIdc", cfg_poSEIImportanceIdc, cfg_poSEIImportanceIdc, "Specifies degree of importance (0..3) for the SEI messages")
("SEIPOPrefixFlag", cfg_poSEIPrefixFlag, cfg_poSEIPrefixFlag, "Specifies whether SEI message prefix is present or not")
("SEIPOPayLoadType", cfg_poSEIPayloadType, cfg_poSEIPayloadType, "List of payloadType for processing")
("SEIPOProcessingOrder", cfg_poSEIProcessingOrder, cfg_poSEIProcessingOrder, "List of payloadType processing order")
......@@ -1848,7 +1849,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("TemporalFilterStrengthFrame*", m_gopBasedTemporalFilterStrengths, std::map<int, double>(), "Strength for every * frame in GOP based temporal filter, where * is an integer."
" E.g. --TemporalFilterStrengthFrame8 0.95 will enable GOP based temporal filter at every 8th frame with strength 0.95");
#if JVET_AJ0207_GFV
opts.addOptions()
("SEIGenerativeFaceVideoEnabled", m_generativeFaceVideoEnabled, false, "Control use of the Generative Face Video SEI on current picture")
("SEIGenerativeFaceVideoNumber", m_generativeFaceVideoSEINumber, 0u, "Total number of Generative Face Video SEI to be carried")
......@@ -1888,7 +1888,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
("SEIGenerativeFaceVideoChromaKeyValue", cfg_generativeFaceVideoSEIChromaKeyValue, cfg_generativeFaceVideoSEIChromaKeyValue, "specifies the chroma key value corresponding to the c-th colour component")
("SEIGenerativeFaceVideoChromaKeyThrPresentFlag", cfg_generativeFaceVideoSEIChromaKeyThrPresentFlag, cfg_generativeFaceVideoSEIChromaKeyThrPresentFlag, "indicates that the syntax element gfv_chroma_thr_value[ i ] is present")
("SEIGenerativeFaceVideoChromaKeyThrValue", cfg_generativeFaceVideoSEIChromaKeyThrValue, cfg_generativeFaceVideoSEIChromaKeyThrValue, "specifies the i-th chroma key threshold value");
#endif
// clang-format on
#if EXTENSION_360_VIDEO
......@@ -2003,11 +2002,9 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
sepColDescriptionFlag << "SEINNPFCSepColDescriptionFlag" << i;
opts.addOptions()(sepColDescriptionFlag.str(), m_nnPostFilterSEICharacteristicsSepColDescriptionFlag[i], false, "Specifies the presence of seperate color descriptions in the Nueral Network Post Filter Characteristics SEI message");
#if JVET_AD0067_INCLUDE_SYNTAX
std::ostringstream fullRangeFlag;
fullRangeFlag << "SEINNPFCFullRangeFlag" << i;
opts.addOptions()(fullRangeFlag.str(), m_nnPostFilterSEICharacteristicsFullRangeFlag[i], false, "Specifies scaling and offset values applied in association with the matrix coefficients as specified by nnpfc_matrix_coeff.");
#endif
std::ostringstream colPrimaries;
colPrimaries << "SEINNPFCColPrimaries" << i;
......@@ -2146,7 +2143,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
std::ostringstream numberExtrapolatedPicturesMinus1;
numberExtrapolatedPicturesMinus1 << "SEINNPFCNumberExtrapolatedPicsMinus1" << i;
opts.addOptions()(numberExtrapolatedPicturesMinus1.str(), m_nnPostFilterSEICharacteristicsNumberExtrapolatedPicturesMinus1[i], 0u, "Number of pictures to extrapolate");
#if NNPFC_SPATIAL_EXTRAPOLATION
std::ostringstream spatialExtrapolationLeftOffset;
spatialExtrapolationLeftOffset << "SEINNPFCSpatialExtrapolationLeftOffset" << i;
opts.addOptions()(spatialExtrapolationLeftOffset.str(), m_nnPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset[i], 0, "Left offset of spatial extrapolation");
......@@ -2162,13 +2158,12 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
std::ostringstream spatialExtrapolationBottomOffset;
spatialExtrapolationBottomOffset << "SEINNPFCSpatialExtrapolationLeftOffset" << i;
opts.addOptions()(spatialExtrapolationBottomOffset.str(), m_nnPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset[i], 0, "Bottom offset of spatial extrapolation");
std::ostringstream spatialextrapolationPromptPresentFlag;
spatialextrapolationPromptPresentFlag << "SEINNPFCSpatialExtrapolationPromptPresentFlag" << i;
opts.addOptions()(spatialextrapolationPromptPresentFlag.str(), m_nnPostFilterSEICharacteristicsSpatialExtrapolationPromptPresentFlag[i], false, "equal to 1 specifies that nnpfc_prompt syntax element is present and nnpfc_alignment_zero_bit_c syntax element may be present. nnpfc_spatial_extrapolation_prompt_present_flag equal to 0 specifies that nnpfc_prompt syntax element and nnpfc_alignment_zero_bit_c syntax element are not present.");
std::ostringstream spatialextrapolationPrompt;
spatialextrapolationPrompt << "SEINNPFCSpatialExtrapolationPrompt" << i;
opts.addOptions()(spatialextrapolationPrompt.str(), m_nnPostFilterSEICharacteristicsSpatialExtrapolationPrompt[i], std::string(""), "specifies the text string prompt used for generating the contents of the spatial extrapolation image area.");
#endif
std::ostringstream inbandPromptFlag;
inbandPromptFlag << "SEINNPFCInbandPromptFlag" << i;
opts.addOptions()(inbandPromptFlag.str(), m_nnPostFilterSEICharacteristicsInbandPromptFlag[i], false, "equal to 1 specifies that nnpfc_prompt syntax element is present and nnpfc_alignment_zero_bit_c syntax element may be present. nnpfc_spatial_extrapolation_prompt_present_flag equal to 0 specifies that nnpfc_prompt syntax element and nnpfc_alignment_zero_bit_c syntax element are not present.");
std::ostringstream prompt;
prompt << "SEINNPFCPrompt" << i;
opts.addOptions()(prompt.str(), m_nnPostFilterSEICharacteristicsPrompt[i], std::string(""), "specifies the text string prompt");
std::ostringstream InputPicOutputFlag;
InputPicOutputFlag << "SEINNPFCInputPicOutputFlag" << i;
opts.addOptions()(InputPicOutputFlag.str(), cfg_nnPostFilterSEICharacteristicsInputPicOutputFlagList[i], cfg_nnPostFilterSEICharacteristicsInputPicOutputFlagList[i], "Indicates whether NNPF will generate a corresponding output picture for the input picture");
......@@ -2185,22 +2180,20 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
opts.addOptions()("SEINNPostFilterActivationNoFollCLVSFlag", m_nnPostFilterSEIActivationNoFollCLVSFlag, false, "Specifies whether input pictures cannot (1) or can (0) originate from a following CLVS");
opts.addOptions()("SEINNPostFilterActivationPersistenceFlag", m_nnPostFilterSEIActivationPersistenceFlag, false, "Specifies the persistence of the target neural-network post-processing filter for the current layer");
opts.addOptions()("SEINNPostFilterActivationOutputFlag", cfg_nnPostFilterSEIActivationOutputFlagList, cfg_nnPostFilterSEIActivationOutputFlagList, "Specifies a list indicating whether the NNPF-generated picture that corresponds to the input picture having index InpIdx[i] is output or not");
#if JVET_AJ0104_NNPFA_PROMPT_UPDATE
opts.addOptions()("SEINNPostFilterActivationPromptUpdateFlag", m_nnPostFilterSEIActivationPromptUpdateFlag, false, "Specifies that nnpfa_prompt syntax element is present and nnpfa_alignment_zero_bit syntax element may be present");
opts.addOptions()("SEINNPostFilterActivationPrompt", m_nnPostFilterSEIActivationPrompt, std::string(""), "Specifies the text string prompt used as input for the target NNPF");
#endif
#if JVET_AJ0114_NNPFA_NUM_PIC_SHIFT
opts.addOptions()("SEINNPostFilterActivationNumInputPicShift", m_nnPostFilterSEIActivationNumInputPicShift, 0u, "specifies the number of input pictures shift in the list of candidate input pictures to get the final input pictures for the target NNPF");
#endif
}
#if JVET_AH2006_TXTDESCRINFO_SEI
opts.addOptions()("SEITextDescriptionID", m_SEITextDescriptionID, 1u, "Identifier value of this text description information SEI message, must be in the range 1-16383");
#if JVET_AI0059_TXTDESCRINFO_SEI_PERSISTANCE
opts.addOptions()("SEITextDescriptionCancelFlag", m_SEITextCancelFlag, true, "Cancels the persistence of any previous text description information SEI message with the same txt_descr_purpose");
opts.addOptions()("SEITextDescriptionIDCancelFlag", m_SEITextIDCancelFlag, true, "Cancels the persistence of any previous text description information SEI message with the same txt_descr_id and the same txt_descr_purpose");
#else
opts.addOptions()("SEITextDescriptionCancelFlag", m_SEITextCancelFlag, true, "Cancels the persistence of any previous text description information SEI message with the same txt_descr_id");
#endif
opts.addOptions()("SEITextDescriptionPersistenceFlag", m_SEITextPersistenceFlag, true, "Specifies the persistence of the text information description message for the current layer");
#if JVET_AJ0241_TXTDESCRINFO_SEI_ENCODER_DESCR
opts.addOptions()("SEITextDescriptionPurpose", m_SEITextDescriptionPurpose, 0u, "Indicates the purpose of the text description, must be in the range 0-6");
#else
opts.addOptions()("SEITextDescriptionPurpose", m_SEITextDescriptionPurpose, 0u, "Indicates the purpose of the text description, must be in the range 0-5");
#endif
opts.addOptions()("SEITextDescriptionsNumStringsMinus1", m_SEITextNumStringsMinus1, 0u, "Indicates the number of entries plus 1 for txt_descr_string_lang[ i ] and txt_descr_string[ i ]");
m_SEITextDescriptionStringLang.resize(256);
m_SEITextDescriptionString.resize(256);
......@@ -2213,7 +2206,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
stringDesc << "SEITextDescriptionString" << i;
opts.addOptions()(stringDesc.str(), m_SEITextDescriptionString[0], std::string(""), "Specifies the i-th text description information string");
}
#endif
po::setDefaults(opts);
po::ErrorReporter err;
......@@ -2227,8 +2219,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
m_scalingRatioHor = 2.0;
m_scalingRatioVer = 2.0;
}
// enable dmvr encoder selection
m_dmvrEncSelect = true;
}
m_resChangeInClvsEnabled = m_scalingRatioHor != 1.0 || m_scalingRatioVer != 1.0 || m_gopBasedRPREnabledFlag || m_rprFunctionalityTestingEnabledFlag;
m_resChangeInClvsEnabled = m_resChangeInClvsEnabled && m_rprEnabledFlag;
......@@ -2772,7 +2762,18 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i] = cfg_nnPostFilterSEICharacteristicsInputPicOutputFlagList[i].values;
if (m_nnPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1[i] == 0)
{
#if JVET_AK0072_NNPF_TEMP_EXTR_UPDATES
if ((m_nnPostFilterSEICharacteristicsPurpose[i] & 0xff) != NNPC_PurposeType::TEMPORAL_EXTRAPOLATION)
{
m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i] = {1};
}
else
{
m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i] = {0};
}
#else
m_nnPostFilterSEICharacteristicsInputPicOutputFlag[i] = {1};
#endif
}
else
{
......@@ -3841,24 +3842,24 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
CHECK(cfg_poSEIPrefixFlag.values.size() <= 1, "there should be at least 2 SEIPOPrefixFlag");
CHECK(cfg_poSEIPayloadType.values.size() != m_poSEINumMinus2 + 2, "the number of SEIPOPayLoadType should be equal to the number of SEI messages");
CHECK(cfg_poSEIWrappingFlag.values.size() != m_poSEINumMinus2 + 2, "the number of SEIPOWrappingFlag should be equal to the number of SEI messages");
CHECK(cfg_poSEIImportanceFlag.values.size() != m_poSEINumMinus2 + 2, "the number of SEIImportanceFlag should be equal to the number of SEI messages");
CHECK(cfg_poSEIImportanceIdc.values.size() != m_poSEINumMinus2 + 2, "the number of SEIImportanceIdc should be equal to the number of SEI messages");
m_poSEIWrappingFlag.resize((uint32_t)cfg_poSEIPayloadType.values.size());
m_poSEIImportanceFlag.resize((uint32_t)cfg_poSEIPayloadType.values.size());
m_poSEIProcessingDegreeFlag.resize((uint32_t)cfg_poSEIPayloadType.values.size());
m_poSEIPrefixFlag.resize((uint32_t)cfg_poSEIPayloadType.values.size());
m_poSEIPayloadType.resize((uint32_t) cfg_poSEIPayloadType.values.size());
m_poSEIProcessingOrder.resize((uint32_t) cfg_poSEIPayloadType.values.size());
m_poSEINumOfPrefixBits.resize((uint32_t) cfg_poSEINumofPrefixBits.values.size());
m_poSEIPrefixByte.resize((uint32_t) cfg_poSEIPayloadType.values.size());
uint16_t prefixByteIdx = 0;
#if JVET_AJ0129_SPO_SEI_LIST
bool NNPFCFound = false;
bool NNPFAFound = false;
#endif
for (uint32_t i = 0; i < (m_poSEINumMinus2 + 2); i++)
{
m_poSEIPrefixFlag[i] = cfg_poSEIPrefixFlag.values[i];
m_poSEIWrappingFlag[i] = cfg_poSEIWrappingFlag.values[i];
m_poSEIImportanceFlag[i] = cfg_poSEIImportanceFlag.values[i];
m_poSEIImportanceFlag[i] = (cfg_poSEIImportanceIdc.values[i] & 2) != 0;
m_poSEIProcessingDegreeFlag[i] = (cfg_poSEIImportanceIdc.values[i] & 1) != 0;
m_poSEIPayloadType[i] = cfg_poSEIPayloadType.values[i];
if (m_poSEIPayloadType[i] == (uint16_t)SEI::PayloadType::MASTERING_DISPLAY_COLOUR_VOLUME ||
m_poSEIPayloadType[i] == (uint16_t)SEI::PayloadType::CONTENT_LIGHT_LEVEL_INFO ||
......@@ -3874,11 +3875,9 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
{
CHECK(m_poSEIPrefixFlag[i] == true, "The value of po_sei_prefix_flag shall be equal to 0 when po_sei_payload_type is equal to 137, 144, 147, 148, 179, 180, 200, 201, 208, and 213");
}
#if JVET_AJ0129_SPO_SEI_LIST
NNPFCFound = NNPFCFound || (m_poSEIPayloadType[i] == (uint16_t)SEI::PayloadType::NEURAL_NETWORK_POST_FILTER_CHARACTERISTICS);
NNPFAFound = NNPFAFound || (m_poSEIPayloadType[i] == (uint16_t)SEI::PayloadType::NEURAL_NETWORK_POST_FILTER_ACTIVATION);
CHECK(!NNPFCFound && NNPFAFound, "NNPFA payload type found before NNPFC payload type in SPO SEI");
#endif
m_poSEIProcessingOrder[i] = (uint16_t) cfg_poSEIProcessingOrder.values[i];
if (m_poSEIPrefixFlag[i])
{
......@@ -3918,9 +3917,7 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
}
}
}
#if JVET_AJ0129_SPO_SEI_LIST
CHECK(NNPFCFound && !NNPFAFound, "When SPO SEI contains NNPFC payload type it shall also contain NNPFA payload type");
#endif
}
if (m_postFilterHintSEIEnabled)
......@@ -3934,7 +3931,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
m_postFilterHintValues[i] = cfg_postFilterHintSEIValues.values[i];
}
}
#if JVET_AJ0207_GFV
if (m_generativeFaceVideoEnabled)
{
CHECK(cfg_generativeFaceVideoSEIId.values.size() != m_generativeFaceVideoSEINumber, "Number of GFV ID must be equal to SEINumber");
......@@ -4173,7 +4169,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
}
}
}
#endif
if( m_costMode == COST_LOSSLESS_CODING )
{
......@@ -5687,7 +5682,6 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara(m_nnPostFilterSEICharacteristicsPurpose[i] > 127, "SEINNPFCPurpose must be in the range of 0 to 127");
xConfirmPara(m_nnPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1[i] > 63, "SEINNPFCNumberInputDecodedPicturesMinus1 must be in the range of 0 to 63");
xConfirmPara(m_nnPostFilterSEICharacteristicsNumberExtrapolatedPicturesMinus1[i] > 62, "SEINNPFCNumberExtrapolatedPicsMinus1 must be in the range of 0 to 62");
#if NNPFC_SPATIAL_EXTRAPOLATION
xConfirmPara(m_nnPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset[i] < -65536 || m_nnPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset[i] > 65536,
"SEINNPFCCharacteristicSpatialExtrapolationLeftOffset must be in the range of -65536 to 65536");
xConfirmPara(m_nnPostFilterSEICharacteristicsSpatialExtrapolationRightOffset[i] < -65536 || m_nnPostFilterSEICharacteristicsSpatialExtrapolationRightOffset[i] > 65536,
......@@ -5696,7 +5690,6 @@ bool EncAppCfg::xCheckParameter()
"SEINNPFCCharacteristicSpatialExtrapolationTopOffset must be in the range of -65536 to 65536");
xConfirmPara(m_nnPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset[i] < -65536 || m_nnPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset[i] > 65536,
"SEINNPFCCharacteristicSpatialExtrapolationBottomOffset must be in the range of -65536 to 65536");
#endif
xConfirmPara(m_nnPostFilterSEICharacteristicsInpTensorBitDepthLumaMinus8[i] > 24, "SEINNPFCInpTensorBitDepthLumaMinus8 must be in the range of 0 to 24");
xConfirmPara(m_nnPostFilterSEICharacteristicsInpTensorBitDepthChromaMinus8[i] > 24, "SEINNPFCInpTensorBitDepthChromaMinus8 must be in the range of 0 to 24");
xConfirmPara(m_nnPostFilterSEICharacteristicsOutTensorBitDepthLumaMinus8[i] > 24, "SEINNPFCOutTensorBitDepthLumaMinus8 must be in the range of 0 to 24");
......@@ -5765,15 +5758,9 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara(m_piVerPhaseNumReducedResolution > m_piVerPhaseDenMinus1ReducedResolution + 1, "m_piVerPhaseNumReducedResolution must be in the range of 0 to m_piVerPhaseDenMinus1ReducedResolution + 1, inclusive");
}
#if JVET_AH2006_TXTDESCRINFO_SEI
xConfirmPara(m_SEITextDescriptionID < 1 && m_SEITextDescriptionID > 16383, "m_SEITextDescriptionID must be in the range of 1 to 16383, inclusive");
#if JVET_AJ0241_TXTDESCRINFO_SEI_ENCODER_DESCR
xConfirmPara(m_SEITextDescriptionPurpose > 6, "m_SEITextDescriptionPurpose must be in the range of 0 to 6, inclusive");
#else
xConfirmPara(m_SEITextDescriptionPurpose > 5, "m_SEITextDescriptionPurpose must be in the range of 0 to 5, inclusive");
#endif
xConfirmPara(m_SEITextNumStringsMinus1 > 255, "m_SEITextNumStringsMinus1 must be in the range 0f 0 to 255, inclusive");
#endif
xConfirmPara(m_log2ParallelMergeLevel < 2, "Log2ParallelMergeLevel should be larger than or equal to 2");
xConfirmPara(m_log2ParallelMergeLevel > m_ctuSize, "Log2ParallelMergeLevel should be less than or equal to CTU size");
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......@@ -540,7 +540,6 @@ protected:
int m_selfContainedClvsFlag;
int m_preferredTransferCharacteristics;
#if JVET_AH2006_EOI_SEI
bool m_eoiSEIEnabled;
bool m_eoiSEICancelFlag;
bool m_eoiSEIPersistenceFlag;
......@@ -548,6 +547,10 @@ protected:
uint32_t m_eoiSEIForMachineAnalysisIdc;
uint32_t m_eoiSEIType;
uint32_t m_eoiSEIObjectBasedIdc;
#if JVET_AK0075_EOI_SEI_OBJ_QP_THRESHOLD
uint32_t m_eoiSEIQuantThresholdDelta;
bool m_eoiSEIPicQuantObjectFlag;
#endif
bool m_eoiSEITemporalResamplingTypeFlag;
uint32_t m_eoiSEINumIntPics;
bool m_eoiSEIOrigPicDimensionsFlag;
......@@ -556,9 +559,7 @@ protected:
bool m_eoiSEISpatialResamplingTypeFlag;
uint32_t m_eoiSEIPrivacyProtectionTypeIdc;
uint32_t m_eoiSEIPrivacyProtectedInfoType;
#endif
#if JVET_AG0322_MODALITY_INFORMATION
bool m_miSEIEnabled;
bool m_miCancelFlag;
bool m_miPersistenceFlag;
......@@ -568,7 +569,6 @@ protected:
int m_miMinWavelengthExponentPlus15;
int m_miMaxWavelengthMantissa;
int m_miMaxWavelengthExponentPlus15;
#endif
// film grain characterstics sei
bool m_fgcSEIEnabled;
......@@ -788,9 +788,7 @@ protected:
uint32_t m_nnPostFilterSEICharacteristicsInpFormatIdc[MAX_NUM_NN_POST_FILTERS];
uint32_t m_nnPostFilterSEICharacteristicsAuxInpIdc[MAX_NUM_NN_POST_FILTERS];
bool m_nnPostFilterSEICharacteristicsSepColDescriptionFlag[MAX_NUM_NN_POST_FILTERS];
#if JVET_AD0067_INCLUDE_SYNTAX
bool m_nnPostFilterSEICharacteristicsFullRangeFlag[MAX_NUM_NN_POST_FILTERS];
#endif
uint32_t m_nnPostFilterSEICharacteristicsColPrimaries[MAX_NUM_NN_POST_FILTERS];
uint32_t m_nnPostFilterSEICharacteristicsTransCharacteristics[MAX_NUM_NN_POST_FILTERS];
uint32_t m_nnPostFilterSEICharacteristicsMatrixCoeffs[MAX_NUM_NN_POST_FILTERS];
......@@ -829,14 +827,12 @@ protected:
uint32_t m_nnPostFilterSEICharacteristicsNumberInputDecodedPicturesMinus1[MAX_NUM_NN_POST_FILTERS];
std::vector<uint32_t> m_nnPostFilterSEICharacteristicsNumberInterpolatedPictures[MAX_NUM_NN_POST_FILTERS];
uint32_t m_nnPostFilterSEICharacteristicsNumberExtrapolatedPicturesMinus1[MAX_NUM_NN_POST_FILTERS];
#if NNPFC_SPATIAL_EXTRAPOLATION
int32_t m_nnPostFilterSEICharacteristicsSpatialExtrapolationLeftOffset[MAX_NUM_NN_POST_FILTERS];
int32_t m_nnPostFilterSEICharacteristicsSpatialExtrapolationRightOffset[MAX_NUM_NN_POST_FILTERS];
int32_t m_nnPostFilterSEICharacteristicsSpatialExtrapolationTopOffset[MAX_NUM_NN_POST_FILTERS];
int32_t m_nnPostFilterSEICharacteristicsSpatialExtrapolationBottomOffset[MAX_NUM_NN_POST_FILTERS];
bool m_nnPostFilterSEICharacteristicsSpatialExtrapolationPromptPresentFlag[MAX_NUM_NN_POST_FILTERS];
std::string m_nnPostFilterSEICharacteristicsSpatialExtrapolationPrompt[MAX_NUM_NN_POST_FILTERS];
#endif
bool m_nnPostFilterSEICharacteristicsInbandPromptFlag[MAX_NUM_NN_POST_FILTERS];
std::string m_nnPostFilterSEICharacteristicsPrompt[MAX_NUM_NN_POST_FILTERS];
std::vector<bool> m_nnPostFilterSEICharacteristicsInputPicOutputFlag[MAX_NUM_NN_POST_FILTERS];
bool m_nnPostFilterSEICharacteristicsAbsentInputPicZeroFlag[MAX_NUM_NN_POST_FILTERS];
bool m_nnPostFilterSEIActivationCancelFlag;
......@@ -845,6 +841,13 @@ protected:
bool m_nnPostFilterSEIActivationNoFollCLVSFlag;
bool m_nnPostFilterSEIActivationPersistenceFlag;
std::vector<bool> m_nnPostFilterSEIActivationOutputFlag;
#if JVET_AJ0104_NNPFA_PROMPT_UPDATE
bool m_nnPostFilterSEIActivationPromptUpdateFlag;
std::string m_nnPostFilterSEIActivationPrompt;
#endif
#if JVET_AJ0114_NNPFA_NUM_PIC_SHIFT
uint32_t m_nnPostFilterSEIActivationNumInputPicShift;
#endif
bool m_poSEIEnabled;
uint32_t m_poSEIId;
......@@ -854,13 +857,13 @@ protected:
bool m_poSEIBreadthFirstFlag;
std::vector<bool> m_poSEIWrappingFlag;
std::vector<bool> m_poSEIImportanceFlag;
std::vector<bool> m_poSEIProcessingDegreeFlag;
std::vector<bool> m_poSEIPrefixFlag;
std::vector<uint16_t> m_poSEIPayloadType;
std::vector<uint16_t> m_poSEIProcessingOrder;
std::vector<uint16_t> m_poSEINumOfPrefixBits;
std::vector<std::vector<uint8_t>> m_poSEIPrefixByte;
#if JVET_AH2006_TXTDESCRINFO_SEI
uint32_t m_SEITextDescriptionID;
bool m_SEITextCancelFlag;
bool m_SEITextPersistenceFlag;
......@@ -868,13 +871,10 @@ protected:
uint32_t m_SEITextNumStringsMinus1;
std::vector<std::string> m_SEITextDescriptionStringLang;
std::vector<std::string> m_SEITextDescriptionString;
#endif
bool m_postFilterHintSEIEnabled;
bool m_postFilterHintSEICancelFlag;
#if JVET_AI0059_TXTDESCRINFO_SEI_PERSISTANCE
bool m_SEITextIDCancelFlag;
#endif
bool m_postFilterHintSEIPersistenceFlag;
uint32_t m_postFilterHintSEISizeY;
uint32_t m_postFilterHintSEISizeX;
......@@ -989,6 +989,9 @@ protected:
uint32_t m_sptiSourceType;
uint32_t m_sptiTimeScale;
uint32_t m_sptiNumUnitsInElementalInterval;
#if JVET_AJ0308_SPTI_SEI_DIRECTION_FLAG
bool m_sptiDirectionFlag;
#endif
#if GREEN_METADATA_SEI_ENABLED
public:
std::string getGMFAFile ();
......@@ -1115,7 +1118,6 @@ protected:
Level::Name m_levelPtl[MAX_NUM_OLSS];
int m_olsPtlIdx[MAX_NUM_OLSS];
#if JVET_AJ0207_GFV
bool m_generativeFaceVideoEnabled;
uint32_t m_generativeFaceVideoSEINumber;
bool m_generativeFaceVideoSEIBasePicFlag;
......@@ -1154,7 +1156,6 @@ protected:
std::vector<std::vector<uint32_t>> m_generativeFaceVideoSEIMatrixHeight;
std::vector < std::vector<std::vector<std::vector<std::vector<double>>>>> m_generativeFaceVideoSEIMatrixElement;
std::string m_generativeFaceVideoSEIPayloadFilename;
#endif
#if EXTENSION_360_VIDEO
TExt360AppEncCfg m_ext360;
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......
......@@ -3,7 +3,7 @@
* and contributor rights, including patent rights, and no such rights are
* granted under this license.
*
* Copyright (c) 2010-2024, ITU/ISO/IEC
* Copyright (c) 2010-2025, ITU/ISO/IEC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
......