From dd2fe4acb5195425e1a7b8300667c16b0af98494 Mon Sep 17 00:00:00 2001 From: jamesxxiu <jamesxxiu@gmail.com> Date: Tue, 11 Feb 2020 19:19:04 -0800 Subject: [PATCH] bugfix of sps_act_enabled_flag signaling --- source/Lib/DecoderLib/VLCReader.cpp | 23 ++++++++++++++++------- source/Lib/EncoderLib/VLCWriter.cpp | 15 ++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 1fcd20999..b4bea61b4 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1833,25 +1833,20 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setProfControlPresentFlag( false ); } } +#if !JVET_Q0820_ACT #if JVET_Q0265 if (chromaArrayType == CHROMA_444) #else if (pcSPS->getChromaFormatIdc() == CHROMA_444) #endif { -#if JVET_Q0820_ACT - if (pcSPS->getLog2MaxTbSize() != 6) - { - READ_FLAG(uiCode, "sps_act_enabled_flag"); pcSPS->setUseColorTrans(uiCode != 0); - } -#else READ_FLAG(uiCode, "sps_act_enabled_flag"); pcSPS->setUseColorTrans(uiCode != 0); -#endif } else { pcSPS->setUseColorTrans(false); } +#endif #if JVET_Q0504_PLT_NON444 READ_FLAG( uiCode, "sps_palette_enabled_flag"); pcSPS->setPLTMode ( uiCode != 0 ); #else @@ -1864,6 +1859,20 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setPLTMode(false); } #endif +#if JVET_Q0820_ACT +#if JVET_Q0265 + if (chromaArrayType == CHROMA_444 && pcSPS->getLog2MaxTbSize() != 6) +#else + if (pcSPS->getChromaFormatIdc() == CHROMA_444 && pcSPS->getLog2MaxTbSize() != 6) +#endif + { + READ_FLAG(uiCode, "sps_act_enabled_flag"); pcSPS->setUseColorTrans(uiCode != 0); + } + else + { + pcSPS->setUseColorTrans(false); + } +#endif #if JVET_Q0183_SPS_TRANSFORM_SKIP_MODE_CONTROL if (pcSPS->getTransformSkipEnabledFlag() || pcSPS->getPLTMode()) { diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 60d8315ae..96f788c16 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -1229,17 +1229,12 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG(pcSPS->getProfControlPresentFlag() ? 1 : 0, "sps_prof_pic_present_flag" ); } } +#if !JVET_Q0820_ACT if (pcSPS->getChromaFormatIdc() == CHROMA_444) { -#if JVET_Q0820_ACT - if (pcSPS->getLog2MaxTbSize() != 6) - { - WRITE_FLAG(pcSPS->getUseColorTrans() ? 1 : 0, "sps_act_enabled_flag"); - } -#else WRITE_FLAG(pcSPS->getUseColorTrans() ? 1 : 0, "sps_act_enabled_flag"); -#endif } +#endif #if JVET_Q0504_PLT_NON444 WRITE_FLAG(pcSPS->getPLTMode() ? 1 : 0, "sps_palette_enabled_flag" ); #else @@ -1248,6 +1243,12 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) WRITE_FLAG(pcSPS->getPLTMode() ? 1 : 0, "sps_palette_enabled_flag" ); } #endif +#if JVET_Q0820_ACT + if (pcSPS->getChromaFormatIdc() == CHROMA_444 && pcSPS->getLog2MaxTbSize() != 6) + { + WRITE_FLAG(pcSPS->getUseColorTrans() ? 1 : 0, "sps_act_enabled_flag"); + } +#endif #if JVET_Q0183_SPS_TRANSFORM_SKIP_MODE_CONTROL if (pcSPS->getTransformSkipEnabledFlag() || pcSPS->getPLTMode()) { -- GitLab