Description
Abstract
This proposal is about indicating technical rendering hints (for HDR images in the UltraHDR format) to Image API Clients.
Background
As a proof of concept I've created a static Image API endpoint delivering HDR enable content, you can read more about it and have a look in my blog.
Since it's only a PoC it shows a 70s wallpaper, since it's from my domain, there are other use cases for HDR scientific images, like:
- Image analysis
- Fluorescence photography
The tiles aren't just JPEGs, but UltraHDR images. This format allows to add a so called gainmap to the image. To be backwards compatible the format is still JPEG with an embedded image, as specified in MPO.
Keep in mind that you'll only see a SDR image, if the requirements (see below) aren't meet. This is actually a feature since it allows transparent fallback if those aren't provided (this is also a reason for this proposal: a Viewer needs to know whether it should hinting those requirements).
Displaying UltraHDR images needs to have the following requirements to be fulfilled:
- The device needs to have a HDR capable screen.
- The browser need to have HDR support - currently only recent Chromium-based browsers
Currently the combination of a Apple Silicon notebook or desktop and Google Chrome is the most likely working combination. Windows devices usually need to have HDR enabled explicitly. Have a look at the page created by photographer HDR evangelist Greg Benz.
Since the HDR support of the browser (currently) needs a specific initialisation of the viewer, some sort of indicator / flag is needed to:
- Init the client element (
canvas
) - Check the requirements and indicate missing support to the user, maybe giving hints on browser and display settings.
- Expectation management of user experience
Possible solutions
Current implementation: Using supports
of Image API 2.0
Since the current implementation is using the Python module iiif
with a custom tiler backend the example uses the Image API 2.0. This allows to use supports
with the URI https://christianmahnke.de/iiif-hdr/
.
"supports": [
"https://christianmahnke.de/iiif-hdr/"
]
Image API 3.0
In Image API 3.0 the best field is certainly extraFeatures
.
Summary
- HDR on the web is already there - support will broaden over the next years
- Implementors might want to use this possibility to present either "spiced up" versions of their contents or the "real" (OpenEXR comes to mind) images.
- Currently it's not possible to hint the requirements for display devices in a standardised way.
Further questions / discussion
- Is there enough interest to define an extension?
- Since every UltraHDR image is a valid JPEG the example above didn't define contents as a
format
(orextraFormats
), this is of cause open for discussion. - Since every UltraHDR image is (technically, not in a viewer) a MPO is a JPEG - might it be worthwhile to consider adding support for both formats?
- Might it be worthwhile to abstract from the format and think about general HDR indication (in the Presentation API) which could also be used for 3D objects?
- Might it be worthwhile to abstract from the format and think about general indication of colorspace intents?