Signal Processing - March 2016 - 121
gamma applied to the base and extension
layers respectively. U B has the objective
to linearize the base layer, while W B
intends to better distribute values closer
to zero in the extension layer. The scalar
v is an exposure parameter that scales
the luminance of the output image to
optimize the split between base and
extension layers.
Profile C also employs a sum to
merge base and extension images, but
here U C not only approximates an
inverse gamma transformation, but
implements a global inverse tone-mapping procedure that approximates the
(possibly local) tone-mapping operator
(TMO) that was used to create the LDR
image. The extension layer is encoded in
the logarithmic domain directly, avoiding
an additional transformation. Finally, log
and exp are substituted by piecewise linear approximations that are implicitly
defined by reinterpreting the bit-pattern
of the half-logarithmic IEEE representation of floating-point numbers as integers. It is then easily seen that this simple
"casting" between number formats
implements two functions } log and
} exp that behave approximately like
their precise mathematical counterparts,
though they provide the additional
advantage of being exactly invertible.
The reconstruction algorithm for profile
C can then be written:
t C (CB (x, y))
I (x, y) = } exp (U
+ RE (x, y) - 2 15 (1, 1, 1) T ), (3)
t C (x) = } log (U C (x)), in which
where U
U C is the global inverse tone-mapping
approximation. 2 15 is an offset shift to
make the extension image symmetric
around zero. The code stream never specifies U C directly, but rather includes a
t C in the form of a
representation of U
lookup-table, allowing to skip the timeconsuming computation of the logarithm.
Lossless coding
An important feature of profile C is that it
allows implementations operating entirely with integers until the very last step,
where the exponential generates floatingpoint output. All of these operations,
including the exponential mapping, are
exactly invertible. Part 8 of JPEG XT
defines now on this basis a lossless coding engine by fully specifying the DCT
in the base layer, and by bypassing the
DCT entirely in the extension layer. The
reader may now verify that the entire
operation chain has, indeed, an exact
inverse as the coding residual the decoder
requires for a given DCT and a given
base image is exactly predictable by the
encoder, and, hence, can be computed
ahead to generate exactly the required
sample values.
Transport
Residual coding and refinement coding
create additional code streams that need
to be incorporated into the legacy JPEG
syntax such that current decoders are
able to see only the legacy LDR image
and skip over the extension layers. A
JPEG XT code stream may thus contain
up to three side channels for image information: 1) a refinement code stream, 2) a
residual code stream, and 3) a residualrefinement code stream. Accounting for
the potential presence of an opacity layer,
as defined in Part 9 of the standard, up to
four additional code streams may be further included: 1) an alpha channel, 2) a
residual alpha channel, 3) an alpha channel refinement, and 4) a residual alpha
channel refinement. This information is
added to the metadata that configures the
postprocessing chain of the decoder.
The legacy JPEG syntax already
includes a generic extension mechanism
by using so-called application-specific
(APP) markers JPEG XT reserves one of
them. However, APP markers do not
carry the data directly. Instead, their payload consists of so-called boxes that yield
a better and cleaner structure of its contents. Boxes are not new to JPEG XT;
they were previously introduced by the
Moving Picture Experts Group (MPEG)
and JPEG 2000. The payload data of a
box is prefixed by a type and a size such
that decoders unaware of a specific box
type may simply ignore it. In summary,
the JPEG XT file format is a JPEG code
stream with APP markers whose contents, when reassembled at the decoder,
make up a single box, or a superbox containing multiple other boxes (Figure 3).
This is necessary because the capacity of
IEEE Signal Processing Magazine
|
March 2016
|
a single APP marker is limited to
64 Kbytes, whereas a box may be larger
and span across several APP markers.
Instructions describing how to assemble
markers into boxes is included in the first
bytes of the marker data itself. Legacy
decoders will simply skip over the markers, and will also ignore all boxes and
their data.
The payload data of the boxes
includes the metadata defining the postprocessor in the decoder or the entropycoded data of refinement and residual
code streams. The decoder picks out the
data it requires for its operation based on
the type signaled in the header of the box.
Testing and performances
The challenge of testing backward-compatible HDR compression is that the
compression performance does not
depend only on a single quality control
parameter, but also on the quality settings
for the base layer and on the choice of
the TMO, which produces this layer.
Therefore, the performance of JPEG XT
needs to be evaluated using a comprehensive set of varying parameters and on
a data set that covers a large set of standard's use cases.
The JPEG committee has carried out
a large number of experiments, using
both subjective and objective methodologies, to asses the capability of the JPEG
XT. A set of 12 objective quality metrics
were tested on 106 HDR images (resolutions range from full HD to 4K) covering
a high range of scenes typically captured
in HDR images, including indoor, outdoor scenes, architecture, landscapes,
portraits, frames from HDR video, and
computer-generated images. All images
were carefully selected by experts in
HDR imaging from these publicly available data sets: Fairchild's HDR Photographic Survey [8] and EPFL's data set of
HDR images [9].
Since a TMO can be freely selected
for encoding and its selection is not part
of JPEG XT specifications, we tested five
different commonly used operators: 1) a
simple gamma-based operator gamma,
2) a global logarithmic TMO [4]
drago03, 3) a global version of the photographic operator [10] reihard02, 4) an
operator optimized for encoding [11]
121
Table of Contents for the Digital Edition of Signal Processing - March 2016
Signal Processing - March 2016 - Cover1
Signal Processing - March 2016 - Cover2
Signal Processing - March 2016 - 1
Signal Processing - March 2016 - 2
Signal Processing - March 2016 - 3
Signal Processing - March 2016 - 4
Signal Processing - March 2016 - 5
Signal Processing - March 2016 - 6
Signal Processing - March 2016 - 7
Signal Processing - March 2016 - 8
Signal Processing - March 2016 - 9
Signal Processing - March 2016 - 10
Signal Processing - March 2016 - 11
Signal Processing - March 2016 - 12
Signal Processing - March 2016 - 13
Signal Processing - March 2016 - 14
Signal Processing - March 2016 - 15
Signal Processing - March 2016 - 16
Signal Processing - March 2016 - 17
Signal Processing - March 2016 - 18
Signal Processing - March 2016 - 19
Signal Processing - March 2016 - 20
Signal Processing - March 2016 - 21
Signal Processing - March 2016 - 22
Signal Processing - March 2016 - 23
Signal Processing - March 2016 - 24
Signal Processing - March 2016 - 25
Signal Processing - March 2016 - 26
Signal Processing - March 2016 - 27
Signal Processing - March 2016 - 28
Signal Processing - March 2016 - 29
Signal Processing - March 2016 - 30
Signal Processing - March 2016 - 31
Signal Processing - March 2016 - 32
Signal Processing - March 2016 - 33
Signal Processing - March 2016 - 34
Signal Processing - March 2016 - 35
Signal Processing - March 2016 - 36
Signal Processing - March 2016 - 37
Signal Processing - March 2016 - 38
Signal Processing - March 2016 - 39
Signal Processing - March 2016 - 40
Signal Processing - March 2016 - 41
Signal Processing - March 2016 - 42
Signal Processing - March 2016 - 43
Signal Processing - March 2016 - 44
Signal Processing - March 2016 - 45
Signal Processing - March 2016 - 46
Signal Processing - March 2016 - 47
Signal Processing - March 2016 - 48
Signal Processing - March 2016 - 49
Signal Processing - March 2016 - 50
Signal Processing - March 2016 - 51
Signal Processing - March 2016 - 52
Signal Processing - March 2016 - 53
Signal Processing - March 2016 - 54
Signal Processing - March 2016 - 55
Signal Processing - March 2016 - 56
Signal Processing - March 2016 - 57
Signal Processing - March 2016 - 58
Signal Processing - March 2016 - 59
Signal Processing - March 2016 - 60
Signal Processing - March 2016 - 61
Signal Processing - March 2016 - 62
Signal Processing - March 2016 - 63
Signal Processing - March 2016 - 64
Signal Processing - March 2016 - 65
Signal Processing - March 2016 - 66
Signal Processing - March 2016 - 67
Signal Processing - March 2016 - 68
Signal Processing - March 2016 - 69
Signal Processing - March 2016 - 70
Signal Processing - March 2016 - 71
Signal Processing - March 2016 - 72
Signal Processing - March 2016 - 73
Signal Processing - March 2016 - 74
Signal Processing - March 2016 - 75
Signal Processing - March 2016 - 76
Signal Processing - March 2016 - 77
Signal Processing - March 2016 - 78
Signal Processing - March 2016 - 79
Signal Processing - March 2016 - 80
Signal Processing - March 2016 - 81
Signal Processing - March 2016 - 82
Signal Processing - March 2016 - 83
Signal Processing - March 2016 - 84
Signal Processing - March 2016 - 85
Signal Processing - March 2016 - 86
Signal Processing - March 2016 - 87
Signal Processing - March 2016 - 88
Signal Processing - March 2016 - 89
Signal Processing - March 2016 - 90
Signal Processing - March 2016 - 91
Signal Processing - March 2016 - 92
Signal Processing - March 2016 - 93
Signal Processing - March 2016 - 94
Signal Processing - March 2016 - 95
Signal Processing - March 2016 - 96
Signal Processing - March 2016 - 97
Signal Processing - March 2016 - 98
Signal Processing - March 2016 - 99
Signal Processing - March 2016 - 100
Signal Processing - March 2016 - 101
Signal Processing - March 2016 - 102
Signal Processing - March 2016 - 103
Signal Processing - March 2016 - 104
Signal Processing - March 2016 - 105
Signal Processing - March 2016 - 106
Signal Processing - March 2016 - 107
Signal Processing - March 2016 - 108
Signal Processing - March 2016 - 109
Signal Processing - March 2016 - 110
Signal Processing - March 2016 - 111
Signal Processing - March 2016 - 112
Signal Processing - March 2016 - 113
Signal Processing - March 2016 - 114
Signal Processing - March 2016 - 115
Signal Processing - March 2016 - 116
Signal Processing - March 2016 - 117
Signal Processing - March 2016 - 118
Signal Processing - March 2016 - 119
Signal Processing - March 2016 - 120
Signal Processing - March 2016 - 121
Signal Processing - March 2016 - 122
Signal Processing - March 2016 - 123
Signal Processing - March 2016 - 124
Signal Processing - March 2016 - 125
Signal Processing - March 2016 - 126
Signal Processing - March 2016 - 127
Signal Processing - March 2016 - 128
Signal Processing - March 2016 - Cover3
Signal Processing - March 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com