From 75f45a18ce514cf07ade0c8bc1721a9cdea13536 Mon Sep 17 00:00:00 2001 From: Shih-Ta Hsiang <shih-ta.hsiang@mediatek.com> Date: Mon, 2 Sep 2019 18:23:23 +0800 Subject: [PATCH] Fix VTM ticket #474 for signaling the PPS syntax element log2_transform_skip_max_size_minus2 --- source/Lib/DecoderLib/VLCReader.cpp | 8 +++++++- source/Lib/EncoderLib/VLCWriter.cpp | 14 ++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 91c9ec163..6a18e8014 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -448,7 +448,13 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS, ParameterSetManager *parameterSetMana READ_SVLC(iCode, "init_qp_minus26" ); pcPPS->setPicInitQPMinus26(iCode); READ_FLAG( uiCode, "constrained_intra_pred_flag" ); pcPPS->setConstrainedIntraPred( uiCode ? true : false ); -#if !JVET_O1136_TS_BDPCM_SIGNALLING +#if JVET_O1136_TS_BDPCM_SIGNALLING + if (parameterSetManager->getSPS(pcPPS->getSPSId())->getTransformSkipEnabledFlag()) + { + READ_UVLC(uiCode, "log2_max_transform_skip_block_size_minus2"); + pcPPS->getPpsRangeExtension().setLog2MaxTransformSkipBlockSize(uiCode + 2); + } +#else READ_FLAG( uiCode, "transform_skip_enabled_flag" ); pcPPS->setUseTransformSkip ( uiCode ? true : false ); #endif diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 58338f9c5..7184526df 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -274,7 +274,12 @@ void HLSWriter::codePPS( const PPS* pcPPS ) WRITE_SVLC( pcPPS->getPicInitQPMinus26(), "init_qp_minus26"); WRITE_FLAG( pcPPS->getConstrainedIntraPred() ? 1 : 0, "constrained_intra_pred_flag" ); -#if !JVET_O1136_TS_BDPCM_SIGNALLING +#if JVET_O1136_TS_BDPCM_SIGNALLING + if (pcSPS->getTransformSkipEnabledFlag()) + { + WRITE_UVLC(pcPPS->getPpsRangeExtension().getLog2MaxTransformSkipBlockSize() - 2, "log2_max_transform_skip_block_size_minus2"); + } +#else WRITE_FLAG( pcPPS->getUseTransformSkip() ? 1 : 0, "transform_skip_enabled_flag" ); #endif WRITE_FLAG( pcPPS->getUseDQP() ? 1 : 0, "cu_qp_delta_enabled_flag" ); @@ -442,11 +447,8 @@ void HLSWriter::codePPS( const PPS* pcPPS ) bool pps_extension_present_flag=false; bool pps_extension_flags[NUM_PPS_EXTENSION_FLAGS]={false}; -#if JVET_O1136_TS_BDPCM_SIGNALLING - pps_extension_flags[PPS_EXT__REXT] = pcPPS->getPpsRangeExtension().settingsDifferFromDefaults(pcSPS->getTransformSkipEnabledFlag()); -#else +#if !JVET_O1136_TS_BDPCM_SIGNALLING pps_extension_flags[PPS_EXT__REXT] = pcPPS->getPpsRangeExtension().settingsDifferFromDefaults(pcPPS->getUseTransformSkip()); -#endif // Other PPS extension flags checked here. @@ -454,7 +456,7 @@ void HLSWriter::codePPS( const PPS* pcPPS ) { pps_extension_present_flag|=pps_extension_flags[i]; } - +#endif WRITE_FLAG( (pps_extension_present_flag?1:0), "pps_extension_present_flag" ); if (pps_extension_present_flag) -- GitLab