Skip to content
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

Clarifies fallback strategy and editorial clean-up #4

Merged
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 33 additions & 22 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@

<body>
<section id="abstract">
<p>This specification defines a mechanism for storing images that use the Reference PQ EOTF specified in [[!BT2100-1]] in the Portable
Network Graphics (PNG) format (specified in [[!PNG]]), without modification to existing chunks or the introduction of new
chunks.</p>
<p>This specification defines a mechanism for storing images that use the Reference PQ EOTF specified in [[!BT2100-1]] in the
Portable Network Graphics (PNG) format (specified in [[!PNG]]), without modification to existing chunks or the introduction of
new chunks.</p>
</section>

<section id="sotd">
Expand All @@ -68,28 +68,38 @@ <h2>Introduction</h2>
commonly used for HDR images.</p>

<p>This specification uses the existing <code>iCCP</code> chunk to unambiguously signal the color system of an image that uses
the Reference PQ EOTF specified in [[!BT2100-1]]</p>
the Reference PQ EOTF specified in [[!BT2100-1]]. It also allows graceful processing by decoders that do not conform to this
specification by recommending fallback values for the <code>gAMA</code> chunk, <code>cHRM</code> chunk, and embedded ICC
profile.</p>
</section>

<section id="file">
<h2>PQ HDR PNG File</h2>

<p>The file shall conform to [[!PNG]].</p>
<p>The file SHALL conform to [[!PNG]].</p>

<p>The image type shall be <code>truecolor</code>.</p>
<p>The image type SHALL be <code>truecolor</code>.</p>

<p>The image shall conform to one of the Pixel Encoding Systems specified in the table below.</p>
<p>The image SHALL conform to one of the Pixel Encoding Systems specified in the table below.</p>

<p>The file shall contain an <code>iCCP</code> chunk whose profile name is set according to the table below.</p>
<p>The file SHALL contain an <code>iCCP</code> chunk, constrained as follows:</p>

<p>The embedded ICC profile of the <code>iCCP</code> chunk, the <code>cHRM</code> chunk and the <code>gAMA</code> chunk should
be set according to the table below.</p>
<ul>
<li>the profile name of the <code>iCCP</code> chunk SHALL be set as specified by the table below according to the Pixel
Encoding System of the image; and</li>

<p>The embedded ICC profile shall be compressed using Method 0, as specified in [[!PNG]].</p>
<li>the embedded ICC profile of the <code>iCCP</code> chunk SHOULD contained one of the ICC profiles specified by the table
below according to the Pixel Encoding System of the image; and</li>

<li>if present, he embedded ICC profile SHALL be compressed using Method 0, as specified in [[!PNG]].</li>
</ul>

<p>The <code>cHRM</code> chunk and the <code>gAMA</code> chunk of the file SHOULD be set as specified by the table below
according to the Pixel Encoding System of the image.</p>

<table id="hdr-systems" style="font-size:small;">
<caption>
HDR Systems
Pixel Encoding Systems
</caption>

<thead>
Expand All @@ -98,7 +108,7 @@ <h2>PQ HDR PNG File</h2>

<th><code>iCCP</code> Chunk Profile Name</th>

<th><code>iCCP</code> Chunk Embedded ICC Profile</th>
<th><code>iCCP</code> Chunk Embedded ICC Profile(s)</th>

<th><code>gAMA</code> Chunk</th>

Expand All @@ -113,7 +123,7 @@ <h2>PQ HDR PNG File</h2>
<td><code>ITUR_2100_PQ_FULL</code></td>

<td>
<a href="icc/ITUR_2100_PQ_FULL.icc">ITUR_2100_PQ_FULL.icc</a>
<a href="icc/ITUR_2100_PQ_FULL.icc">ITUR_2100_PQ_FULL.icc</a>
</td>

<td>15000</td>
Expand Down Expand Up @@ -183,16 +193,17 @@ <h2>PQ HDR PNG File</h2>
</tbody>
</table>

<p class="note">The <code>gAMA</code> and embedded ICC profile are provided solely for compatibility with processors that do
not conform to this specification.</p>
<p class="note">The <code>gAMA</code> chunk, <code>cHRM</code> chunk, and embedded ICC profile specified in the table above are
not necessarily accurate, and, even if accurate, their processing is not required to reproduce the image as intended by the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily? They are known to be inaccurate.
Suggest "... in the table above are inaccurate, due to limitations in ICC V4 with HDR images. However, their processing is not required ..."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@svgeesus Yes, at this point, all are inaccurate. I used not necessarily to keep the door open for some of these parameters to be accurate if/when more rows are added to the table in the future.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer to clearly state that the current ones are known to be very inaccurate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. cHRM is in fact accurate (it reflects Rec 2020 primaries), so I plan to revise the note to state that ICC and gamma are inaccurate.

author. They are provided for graceful fallback for implementations that do not recognize the semantics associated with a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Positioning these as fallback is good. I don't know if it is graceful however. You end up with an SDR image with a peak luminance of 80 cd/m^2,, right? So the whole thing looks super dim?

Copy link
Contributor

@svgeesus svgeesus Jul 4, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(That isn't a change request btw, just that I would like to understand the fallback better.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You end up with an SDR image with a peak luminance of 80 cd/m^2,, right?

Well SDR systems typically scale peak sRGB luminance to their peak luminance, so I would expect the same to apply here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant in the case where a system with HDR capability uses the fallback, because it does not follow this spec..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant in the case where a system with HDR capability uses the fallback, because it does not follow this spec..

I do not think it is possible to predict exactly what HDR systems will do when processing an ICC profile that was not designed for HDR systems... some might map the 80 nits of the ICC profile to what peak SDR luminance would be in SDR mode, others might map it to 80 nits and others might map it to peak HDR luminance.

<code>iCCP</code> Chunk Profile Names defined by this specification. Future versions of this specification might include
additional ICC profiles, e.g. to reflect improvements in ICC profile capabilities.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like that part, it allows a V5 profile to be added later which actually describes the image.


<p class="note">This specification does not constrain bit depth.</p>
</section>

<section class='appendix' class="informative">
<h2>Privacy and Security Considerations</h2>

See Section 13.4 at [[!PNG]].
</section>

<section class="informative">
<h2>Privacy and Security Considerations</h2>See Section 13.4 at [[!PNG]].
</section>
</body>
</html>