ffvvc / FFmpeg

VVC Decoder for ffmpeg
Other
46 stars 12 forks source link

Add AVX2 implementation of deblocking filter / port deblocking asm from HEVC #223

Open stone-d-chen opened 1 month ago

stone-d-chen commented 1 month ago

References

stone-d-chen commented 3 weeks ago

Chroma Deblocking Notes

VVC has three types of Chroma deblocking filter operations:

The filter choice depends on the CU/TU block side length (ortho to boundary being deblocked):

When $Sp = Sq = 1$ the short-tap (chroma_weak) is applied. This filter is identical to the (only) HEVC deblocking filter:

$$ \Delta_c = \left((q_0 - p_0 << 2) + p_1 - q_1 + 4\right) >> 3 $$

One general difficult with incremental implementation is that ff_vvc_deblock_horizontal calls a single function vvcdsp.lf.filter_chroma which implements the filter decision calculation -> filtering. If I can at least temporarily do some checks in ff_vvc_deblock_horizontal then I can call hevc's asm implementation directly.