-
Notifications
You must be signed in to change notification settings - Fork 144
Revert "Add screen content coding tools as an encoder configuration" #752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
cc @fippo |
The reason for including per-codec SCC configuration settings was to be able to detect if they were supported. Our data shows that only a fraction of AV1 hardware acceleration implementations support screen content coding. Using |
You beat me to it and reverts are better ;-) |
@aboba's point is valid though. Quoting the spec:
|
Yes, I agree that, apart from inspecting the bitstream, developers won't have a way to check if screen content coding is actually in effect. But I don't think that it's going to be a key factor in their choice of the encoding configuration. In other words, it's unlikely that someone will say "well, if I can't have SCC on AV1 I'll rather use VP9 or H.264". |
Since software implementations of AV1 encode/decode support SCC, the problem arises in situations where a (non-compliant) AV1 hardware encoder or decoder lacks SCC support. In the case of a hardware encoder lacking SCC support, the result will be sending at a higher bitrate, but probably still lower than other codecs, so that there's no reason to switch codecs. However, if a hardware decoder doesn't support SCC, the result could be a decode failure. In that situation, it would make sense to turn off SCC on the encoder. But that requires knowledge of whether the (hw) encoder is encoding with SCC and also an indication that the decoder error was due to lack of SCC support. |
Such a fallback scenario might be handled by the decoder retrying the same frame with software though rather than making changes on the encoding side? (and such a fallback is measurable which ultimatively should lead to the bug being identified and fixed) |
For AV1 decoder SCC must be supported as part of conformance (unlike H.265 which contains SCC support in the form of a profile), so it is not likely for decoder to raise such "error". There are platforms that supports AV1 encoding, but does not allow you to turn on screen content tools. I think the knob here still makes sense to me. |
Given that we already expose SCC via |
@Djuffin SCC support is a conformance requirement for AV1 decoders, and so far we have not encountered AV1 decoders that do not support SCC. WebCodecs is supported in Safari Tech Preview, and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The question is whether the application can benefit from knowing that SCC encoding isn't supported (e.g. if a hardware encoder does not support SCC). If the application would switch to a software encoder to use SCC, then there is a potential benefit. But if hardware acceleration is required (e.g. for power management reasons) then the application will need to optimize along the lines of what a ContentHint would provide.
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: push, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
SHA: dcbf0ce Reason: workflow_dispatch, by Djuffin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
av1.forceScreenContentTools
was made practically obsolete by contentHint, which does the same but in a codec-agnostic way.It hasn't been implemented by any UA, and it's safe to remove from the spec.
This reverts commits:
b35c6a3
29f1a8a
Related issue: #646