-
Notifications
You must be signed in to change notification settings - Fork 11
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
Testing cICP
#312
Comments
TweakPNG may add support for |
Chromium has |
What you described is nearly exactly what is already being tested here: There is a Does that mean we can close this? |
We could, although I would prefer to see more than one test; and I want to track non-browser implementations like TweakPNG too. So I prefer to keep it open. |
Thanks for the heads-up! Yes I see it in the darktable 4.2.0 announcement:
|
I raised a Bugzilla issue on Firefox for |
Mozilla Request for standards position for |
The ImageSharp image library for .NET has added PNG cICP support |
At the 8 Jan 2024 PNG WG meeting it was concluded that Leaving the issue open to collect latest implementation status, for the implementation report. |
I have a PR for a test that combines APNG and |
PR is now merged, as hoped Chrome (and Edge) pass while Firefox and Safari do not |
From the documentation for oxipng, an optimizer written in rust:
So clearly, it supports |
CSS Color 4, in the section Color Space of Tagged Images, now includes the test results for the PNG cICP tests. |
I added a WPT PR to test that |
This is now merged. Chrome 123 on Linux 20, and Edge 123 on Win 10 both pass. Safari TP 188 on macOS 13.6 is reported as failing, because it needs macOS 14 for CICP support. Firefox 125 on Linux 20 fails because they don't implement |
libavif has an open issue |
@svgeesus Chris: The libavif issue AOMediaCodec/libavif#1421 that you mentioned in #312 (comment) covers conversion of AVIF to both PNG and JPEG. The PNG part of that libavif issue is already fixed. So for PNG that issue should be considered closed. |
Affinity 2.4 supports |
I tested the Video Full Range Flag in both Chrome and Safari. Neither one seems to respect it: pixel values were the same regardless of whether it was set to zero or one (Firefox was the same... but that's expected since it doesn't have cICP support yet.) |
I see several Chrome CICP bugs one of which relates to Full-Range AVIF. Probably best to open a separate issue for PNG Full/Narrow range CICP. |
That’s been true of most applications (even for video wrapped movies).
|
This feels like a tricky one. However, that then forces the question "Then should it be part of the spec?" For legacy broadcast, it does seem important. That's why it is part of H.273 in the first place. To me, the tradeoff is "Almost all users don't need this, so we should drop it..." vs. "...but then we're not using real CICP / H.273." Perhaps we could still reference H.273 for all CICP values and just drop that field. So maybe the key is for us to make it a note and reference H.273 but to not require strict enforcement on the values? |
The difference between a cICP chunk taking 16 bytes versus 14 bytes (once counting the chunk header and CRC) doesn't really seem like enough justification to diverge from the base specification. I'd say that the spec should only require that decoders support full-range images, given that that's what major implementations are planning on doing. Leaving the text as-is would likely create pointless engineering work for implementers who don't realize quite how rare narrow-range images are. Though I'm not quite sure how to word it in the spec so that web browsers which ignore the flag as well as legacy broadcast folks' software can both be considered conformant. |
If we say that narrow-range images are poorly supported and should not be created, we effectively require creation/conversion tools to convert narrow-range images to full range, which is lossy due to quantization error. |
The definition of reference image is a full-range image (although it does not explicitly use that term, and probably should): it clearly maps 0, not 16, to black for example. |
This can be tested in WPT by converting full-range sRGB values to one of the common encodings (such as 2100 PQ, 2100 HLG, Display P3, linear sRGB) and making a PNG with those values and the appropriate
cICP
chunk. A pass displays the same colors as an sRGB reference image.For non-browser support, detecting and correctly decoding the chunk demonstrates support.
The text was updated successfully, but these errors were encountered: