diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 8b67b025c7aee3a5ec5eed1c30f685b1db685a19..199c157b6e4a0e5f4b4180e1af4a8cb9f44472c6 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -1348,34 +1348,17 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) #if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR READ_FLAG(uiCode, "sps_joint_cbcr_enabled_flag"); pcSPS->setJointCbCrEnabledFlag(uiCode ? true : false); - +#endif if (pcSPS->getChromaFormatIdc() != CHROMA_400) { ChromaQpMappingTableParams chromaQpMappingTableParams; READ_FLAG(uiCode, "same_qp_table_for_chroma"); chromaQpMappingTableParams.setSameCQPTableForAllChromaFlag(uiCode); +#if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR int numQPTables = chromaQpMappingTableParams.getSameCQPTableForAllChromaFlag() ? 1 : (pcSPS->getJointCbCrEnabledFlag() ? 3 : 2); for (int i = 0; i < numQPTables; i++) - { - READ_UVLC(uiCode, "num_points_in_qp_table_minus1"); chromaQpMappingTableParams.setNumPtsInCQPTableMinus1(i, uiCode); - std::vector<int> deltaQpInValMinus1(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1); - std::vector<int> deltaQpOutVal(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1); - for (int j = 0; j <= chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i); j++) - { - READ_UVLC(uiCode, "delta_qp_in_val_minus1"); deltaQpInValMinus1[j] = uiCode; - READ_UVLC(uiCode, "delta_qp_out_val"); deltaQpOutVal[j] = uiCode; - } - chromaQpMappingTableParams.setDeltaQpInValMinus1(i, deltaQpInValMinus1); - chromaQpMappingTableParams.setDeltaQpOutVal(i, deltaQpOutVal); - } - pcSPS->setChromaQpMappingTableFromParams(chromaQpMappingTableParams, pcSPS->getQpBDOffset(CHANNEL_TYPE_CHROMA)); - pcSPS->derivedChromaQPMappingTables(); - } #else - if (pcSPS->getChromaFormatIdc() != CHROMA_400) - { - ChromaQpMappingTableParams chromaQpMappingTableParams; - READ_FLAG(uiCode, "same_qp_table_for_chroma"); chromaQpMappingTableParams.setSameCQPTableForAllChromaFlag(uiCode); for (int i = 0; i < (chromaQpMappingTableParams.getSameCQPTableForAllChromaFlag() ? 1 : 3); i++) +#endif { READ_UVLC(uiCode, "num_points_in_qp_table_minus1"); chromaQpMappingTableParams.setNumPtsInCQPTableMinus1(i,uiCode); std::vector<int> deltaQpInValMinus1(chromaQpMappingTableParams.getNumPtsInCQPTableMinus1(i) + 1); @@ -1391,7 +1374,7 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS) pcSPS->setChromaQpMappingTableFromParams(chromaQpMappingTableParams, pcSPS->getQpBDOffset(CHANNEL_TYPE_CHROMA)); pcSPS->derivedChromaQPMappingTables(); } -#endif + READ_FLAG( uiCode, "sps_sao_enabled_flag" ); pcSPS->setSAOEnabledFlag ( uiCode ? true : false ); READ_FLAG( uiCode, "sps_alf_enabled_flag" ); pcSPS->setALFEnabledFlag ( uiCode ? true : false ); diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index 68c1e4f474ebc77943e5270112d664abaf5a6be4..05025487d24b1cc1cdd131c902ec0d1f042029b6 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -808,29 +808,17 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) #if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR WRITE_FLAG(pcSPS->getJointCbCrEnabledFlag(), "sps_joint_cbcr_enabled_flag"); - +#endif if (pcSPS->getChromaFormatIdc() != CHROMA_400) { const ChromaQpMappingTable& chromaQpMappingTable = pcSPS->getChromaQpMappingTable(); WRITE_FLAG(chromaQpMappingTable.getSameCQPTableForAllChromaFlag(), "same_qp_table_for_chroma"); +#if JVET_P0667_QP_OFFSET_TABLE_SIGNALING_JCCR int numQPTables = chromaQpMappingTable.getSameCQPTableForAllChromaFlag() ? 1 : (pcSPS->getJointCbCrEnabledFlag() ? 3 : 2); for (int i = 0; i < numQPTables; i++) - { - WRITE_UVLC(chromaQpMappingTable.getNumPtsInCQPTableMinus1(i), "num_points_in_qp_table_minus1"); - - for (int j = 0; j <= chromaQpMappingTable.getNumPtsInCQPTableMinus1(i); j++) - { - WRITE_UVLC(chromaQpMappingTable.getDeltaQpInValMinus1(i, j), "delta_qp_in_val_minus1"); - WRITE_UVLC(chromaQpMappingTable.getDeltaQpOutVal(i, j), "delta_qp_out_val"); - } - } - } #else - if (pcSPS->getChromaFormatIdc() != CHROMA_400) - { - const ChromaQpMappingTable& chromaQpMappingTable = pcSPS->getChromaQpMappingTable(); - WRITE_FLAG(chromaQpMappingTable.getSameCQPTableForAllChromaFlag(), "same_qp_table_for_chroma"); for (int i = 0; i < (chromaQpMappingTable.getSameCQPTableForAllChromaFlag() ? 1 : 3); i++) +#endif { WRITE_UVLC(chromaQpMappingTable.getNumPtsInCQPTableMinus1(i), "num_points_in_qp_table_minus1"); @@ -841,7 +829,6 @@ void HLSWriter::codeSPS( const SPS* pcSPS ) } } } -#endif WRITE_FLAG( pcSPS->getSAOEnabledFlag(), "sps_sao_enabled_flag"); WRITE_FLAG( pcSPS->getALFEnabledFlag(), "sps_alf_enabled_flag" );