ffvvc / FFmpeg

VVC Decoder for ffmpeg
Other
50 stars 12 forks source link

Support fields #6

Open nuomi2021 opened 1 year ago

nuomi2021 commented 1 year ago

https://github.com/ffvvc/tests/tree/main/conformance/failed/FIELD

nuomi2021 commented 3 months ago

@frankplow could you help with this? This is related to vui_progressive_source_flag and vui_interlaced_source_flag in vui_parameters. we can follow the same thing in hevc. thank you

frankplow commented 3 months ago

👍 I will have a look

frankplow commented 3 months ago

Looks like we already decode the files fine. The problem is that the hashes in the conformance suite are taken of the output frames after being weaved for deinterlacing, whereas in FFmpeg it outputs a field at a time. If I add -vf weave to the command line in FFmpeg then the FIELD tests pass, although all other tests break of course. I am not sure if there is some way to use the VUI parameters to control filters from the ffmpeg CLI? If not I think I may have to rework the test runner so we can set additional ffmpeg flags on a per-bitstream basis.

nuomi2021 commented 3 months ago

How about hevc, we can follow the hevc's behavior. here may have some hevc interlaced clips: https://trac.ffmpeg.org/ticket/5514

frankplow commented 3 months ago

@nuomi2021

How about hevc, we can follow the hevc's behavior. here may have some hevc interlaced clips: https://trac.ffmpeg.org/ticket/5514

The case is the exact same for HEVC, note the proposed workaround at the end of that thread is to set -vf weave. It's not a matter of the decoder's capability, just convention of how the rawvideo output encoder works really. It doesn't seem that there are any easy flags which will enable -vf weave only if the interleaved flag is set in the VUI parameters unfortunately.

nuomi2021 commented 3 months ago

@frankplow , how about we just add the current ffmpeg output md5 to our test? and give some comments on the commit log thank you

frankplow commented 3 months ago

@frankplow , how about we just add the current ffmpeg output md5 to our test? and give some comments on the commit log thank you

Done in https://github.com/ffvvc/tests/pull/46.

If we want to add any of these to FATE, it is straightforward to add -vf weave to the command line for only those bitstreams. I suspect, however, that they are unlikely to be economic with regards to coverage/runtime as there is no interlaced-specific logic to exercise in the decoder.

nuomi2021 commented 3 months ago

Yes. not needed. Please help add 1 or 2 virtual boundary clips with the largest coverage to fate. thank you

nuomi2021 commented 2 months ago

Please help add 1 or 2 virtual boundary clips with the largest coverage to fate.

@frankplow , could you help this? thank you

frankplow commented 2 months ago

Sorry, been rather busy recently and my x86 desktop with gcov set up isn't running at the minute. I should have a chance in a week or so.

QSXW commented 1 month ago

Supported by https://github.com/ffvvc/FFmpeg/pull/257