Opened 4 years ago

Closed 4 years ago

#980 closed defect (fixed)

Issue on CCALF BD estimation

Reported by: XueweiMeng Owned by:
Priority: minor Milestone:
Component: VTM Version: VTM-8.0
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

In VTM-8.0 CCALF function "deriveCcAlfFilter", line 3855 to 3865

          if (referencingExistingAps)
          {
            curTotalRate += 1 + 3 + lengthUvlc(ccAlfFilterCount - 1); // +1 for enable flag, +3 APS ID in slice header
          }
          else
          {
            curTotalRate += getCoeffRateCcAlf(ccAlfFilterCoeff, ccAlfFilterIdxEnabled, ccAlfFilterCount, compID) + 1 + lengthUvlc(ccAlfFilterCount - 1)
            + 7;   // +1 for the enable flag, +7 two 3-bit APS ID, one in slice header/one in APS, a 1-bit
            // new filter flags (ignore shared cost such as other new-filter flags/NALU header/RBSP
            // terminating bit/byte alignment bits)
          }

For CCALF, if referencingExistingAps, ccAlfFilterCount will not be signaled. Otherwise, one ccAlfFilterCount will be signaled per chroma component. So I think the estimation of curTotalRate should be as follows,

if (referencingExistingAps)
          {
            curTotalRate += 1 + 3; // +1 for enable flag, +3 APS ID in slice header
          }
          else
          {
            curTotalRate += getCoeffRateCcAlf(ccAlfFilterCoeff, ccAlfFilterIdxEnabled, ccAlfFilterCount, compID) + 1
            + 7;   // +1 for the enable flag, +7 two 3-bit APS ID, one in slice header/one in APS, a 1-bit
            // new filter flags (ignore shared cost such as other new-filter flags/NALU header/RBSP
            // terminating bit/byte alignment bits)
          }

And I wonder why there are two APS IDs needed to be signaled when not referencingExistingAps. And if the APS ID in APS should be signaled, the bit is 5, not 3.

If needed, I will prepare a merge request soon.

Change history (2)

comment:1 Changed 4 years ago by kiranmisra

Thanks for reporting the issue and offer to submit a merge request. These seem like good improvements. Please feel free to make a corresponding merge request. Note - When not referencingExistingAps, one ID is signaled in slice header and the other is part of APS. Seems like the +7 in else part may need to be modified to +9 as well.

comment:2 Changed 4 years ago by fbossen

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.