id summary reporter owner description type status priority milestone component version resolution keywords cc 980 Issue on CCALF BD estimation XueweiMeng "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." defect closed minor VTM VTM-8.0 fixed ksuehring XiangLi fbossen jvet@…