-
Notifications
You must be signed in to change notification settings - Fork 158
Description
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).