Skip to content

VideoDecoder bit exactness #903

@sprangerik

Description

@sprangerik

As far as I can tell, the spec today makes no explicit mention about bit-exactness of the output from a VideoDecoder.

A decoder by definition needs to have a bit-exact representation of the reconstructed state in each reference buffer, otherwise there will be video corruption in the form of prediction drift. However, some decoders may perform additional processing on a copy of the reconstructed state, before handing the frame to the user. The post-processing could be in the form of e.g. deblock or debanding algorithms, sharping/superres filters etc etc

I think it would be prudent to:

(1) Add spec language to indicate that the expected output of a decoder instance should be the bit-exact exact form.
(2) Add a field in VideoDecoderConfig that allows post processing to be turned on if supported.

With (1) it becomes trivial to create qualification tests as you can just use a hash the known output for each frame.
With (2) we optionally allow further enhancements to be applied, but only when desired.

It's debatable if (2) should just be an on/off toggle, or if something more fine grained is needed (e.g. a post processing "strength" slider, or even toggles for each kind of available filter).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions