ffvvc / FFmpeg

VVC Decoder for ffmpeg
Other
48 stars 12 forks source link

Add Intra Buffer Copy Support #169

Closed QSXW closed 4 months ago

nuomi2021 commented 6 months ago

@QSXW , thank you for the patch. Seems all IBC clips have failed. Could you help check? thank you https://github.com/ffvvc/FFmpeg/actions/runs/7233384009/job/19714328903?pr=169#step:11:235

QSXW commented 6 months ago

@QSXW , thank you for the patch. Seems all IBC clips have failed. Could you help check? thank you https://github.com/ffvvc/FFmpeg/actions/runs/7233384009/job/19714328903?pr=169#step:11:235

Sure. It's to be finished. However, I get some weird problem here. I need to fill virtual ibc buffer by the reconstructed pixels. See fill_ibc_buffer

And copy the ibc buffer in the inter prediction stage. See intra_block_copy

I suppose the decode pipeline should works like: recon -> fill_ibc_buffer -> inter -> intra_block_copy, but looks like it is inter -> intra_block_copy -> recon -> fill_ibc_buffer. Do you have any idea about it?

nuomi2021 commented 6 months ago

IBC may need current CTU's left and up CTUs decoded. It need some tricks to make sure it. Please set the thread number to 1 in vvcdec.c. check whether it works as you expected or not. if yes, maybe you need to listen to the current frame's progress. see: https://github.com/ffvvc/FFmpeg/blob/main/libavcodec/vvc/vvc_thread.c#L240C13-L240C34

nuomi2021 commented 4 months ago

replaced by https://patchwork.ffmpeg.org/project/ffmpeg/patch/TYSPR06MB6433D9436D9F75AEB1A2B5D2AA562@TYSPR06MB6433.apcprd06.prod.outlook.com/

thank you @QSXW