diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index f25b97161590746d1b3696f7f95992aa5b8e6c0f..32ea8d7586d8d2e2be9f350fd581b22517e4b278 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -152,7 +152,6 @@ -#define JVET_Q0436_CABAC_ZERO_WORD 1 // JVET-Q0436: Add modified CABAC zero word insertion in encoder. #define JVET_Q0487_SCALING_WINDOW_ISSUES 1 // JVET-Q0487: Fix scaling window issues when scaling ratio is 1:1 diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index 8bd19ffcb78852717b6023bfd35be6e9cdb74751..373527a53519f037ed246783edc2d2dbe0b401f5 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -1202,7 +1202,6 @@ validateMinCrRequirements(const ProfileLevelTierFeatures &plt, std::size_t numBy } } -#if JVET_Q0436_CABAC_ZERO_WORD static void cabac_zero_word_padding(const Slice *const pcSlice, const Picture *const pcPic, @@ -1211,10 +1210,6 @@ cabac_zero_word_padding(const Slice *const pcSlice, std::ostringstream &nalUnitData, const bool cabacZeroWordPaddingEnabled, const ProfileLevelTierFeatures &plt) -#else -static void -cabac_zero_word_padding(Slice *const pcSlice, Picture *const pcPic, const std::size_t binCountsInNalUnits, const std::size_t numBytesInVclNalUnits, std::ostringstream &nalUnitData, const bool cabacZeroWordPaddingEnabled) -#endif { const SPS &sps=*(pcSlice->getSPS()); const ChromaFormat format = sps.getChromaFormatIdc(); @@ -1225,23 +1220,15 @@ cabac_zero_word_padding(Slice *const pcSlice, Picture *const pcPic, const std::s const int paddedHeight = ( ( pcSlice->getPPS()->getPicHeightInLumaSamples() + minCuHeight - 1 ) / minCuHeight ) * minCuHeight; const int rawBits = paddedWidth * paddedHeight * (sps.getBitDepth(CHANNEL_TYPE_LUMA) + ((2*sps.getBitDepth(CHANNEL_TYPE_CHROMA))>>log2subWidthCxsubHeightC)); -#if JVET_Q0436_CABAC_ZERO_WORD const int vclByteScaleFactor_x3 = ( 32 + 4 * (plt.getTier()==Level::HIGH ? 1 : 0) ); const std::size_t threshold = (vclByteScaleFactor_x3*numBytesInVclNalUnits/3) + (rawBits/32); // "The value of BinCountsInPicNalUnits shall be less than or equal to vclByteScaleFactor * NumBytesInPicVclNalUnits + ( RawMinCuBits * PicSizeInMinCbsY ) / 32." // binCountsInNalUnits <= vclByteScaleFactor_x3 * numBytesInVclNalUnits / 3 + rawBits / 32. // If it is currently not, then add cabac_zero_words to increase numBytesInVclNalUnits. -#else - const std::size_t threshold = (32/3)*numBytesInVclNalUnits + (rawBits/32); -#endif if (binCountsInNalUnits >= threshold) { // need to add additional cabac zero words (each one accounts for 3 bytes (=00 00 03)) to increase numBytesInVclNalUnits -#if JVET_Q0436_CABAC_ZERO_WORD const std::size_t targetNumBytesInVclNalUnits = ((binCountsInNalUnits - (rawBits/32))*3+vclByteScaleFactor_x3-1)/vclByteScaleFactor_x3; -#else - const std::size_t targetNumBytesInVclNalUnits = ((binCountsInNalUnits - (rawBits/32))*3+31)/32; -#endif if (targetNumBytesInVclNalUnits>numBytesInVclNalUnits) // It should be! { @@ -3242,14 +3229,8 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic, ProfileLevelTierFeatures profileLevelTierFeatures; profileLevelTierFeatures.extractPTLInformation(*(pcSlice->getSPS())); validateMinCrRequirements(profileLevelTierFeatures, numBytesInVclNalUnits, pcPic, m_pcCfg); -#if JVET_Q0436_CABAC_ZERO_WORD // cabac_zero_words processing cabac_zero_word_padding(pcSlice, pcPic, binCountsInNalUnits, numBytesInVclNalUnits, accessUnit.back()->m_nalUnitData, m_pcCfg->getCabacZeroWordPaddingEnabled(), profileLevelTierFeatures); -#else - - // cabac_zero_words processing - cabac_zero_word_padding(pcSlice, pcPic, binCountsInNalUnits, numBytesInVclNalUnits, accessUnit.back()->m_nalUnitData, m_pcCfg->getCabacZeroWordPaddingEnabled()); -#endif } //-- For time output for each slice