Sign In to Follow Application
View All Documents & Correspondence

Image Encoder And Image Decoder

Abstract: An image encoder comprises an extreme value determiner a floating point to integer converter and an encoder. The extreme value determiner determines a minimal value and a maximal value of a floating point image value of each pixel of a part of an image an image or a group of images. The floating point to integer converter maps the floating point image value of each pixel to an integer image value wherein each integer image value lies in the predefined range of integer image values. The determined minimal floating point image value is mapped to a minimal integer image value of the predefined range of integer image values and the determined maximal floating point image value is mapped to a maximal integer image value of the predefined range of integer image values. Further the encoder encodes the integer image value of each pixel to obtain and provide encoded image data of the part of the image the image or the group of images.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
09 July 2012
Publication Number
07/2013
Publication Type
INA
Invention Field
ELECTRONICS
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2021-05-24
Renewal Date

Applicants

FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DER ANGEWANDTEN FORSCHUNG E.V.,
Hansastraβe 27c, 80686 Muenchen, Germany

Inventors

1. THOMA, Herbert
Geschwister-Scholl-Straße 1, 91058 Erlangen, GERMANY
2. MOTRA, Ajit
Gerhard-Hauptmann-Straße 11, 91058 Erlangen, GERMANY

Specification

Image Encoder and Image Decoder
Description
Embodiments according to the invention relate to image/video encoding or decoding and,
particularly, to an image encoder and an image decoder as well as a method for providing
encoded image data and a method for decoding image data.
The human eye can accommodate luminance in a single view over a range of about
100,000:1 and is capable of distinguishing about 10,000 colors at a given brightness. By
comparison, typical computer monitors have a luminance range less than 100:1 and cover
about half of the visible color gamut. Despite this difference, most digital image formats
are geared to the capabilities of conventional displays, rather than the characteristics of
human vision.
Recently, there has been an increased interest in high dynamic range (HDR) images, both
captured and synthetic, which permit extended processing and higher fidelity display
methods.
HDR images store scene referred images (e.g. "Krawczyk, G., Myszkowski, K., and
Seidel, H.-P. 2005 "Perceptual effects in real-time tone mapping." In SCCG '05: Proc. Of
the 2 1st Spring Conference on Computer Graphics, 195.202.") rather than display referred
images. Such images can cover a dynamic range from faint starlight (10 cd/m ) to bright
sunlight (108 cd/m2) . Eyes can simultaneously perceive dynamic range of five orders of
magnitude which is 100,000:1. In order to accommodate such a high dynamic range, most
commonly used HDR image formats like e.g. openEXR store images in a triplet of floating
point numbers per pixel.
A LogLuv transform (e.g. "Larson, G.W., "Overcoming Gamut and Dynamic Range
Limitations in Digital Images," Proceedings of the Sixth Color Imaging Conference,
November 1998.", "N. Adami, M. Okuda, "Effective color space representation for
wavelet based compression of HDR images," International Conference on Image Analysis
and Processing, Modena (2007)", "D. Springer, A. Kaup, „Lossy Compression of Floating
Point High Dynamic Range Images JPEG2000," International Conference on Image
Analysis and Processing, Modena (2007)") method transforms floating point pixels into
integer pixels. Such a scheme starts with transforming floating point RGB values into
device independent XYZ color space. Then, XYZ color space is transformed into integer
LogLuv color space. For Luminance channel a log based transformation is used. For color
channels CIEuv representation is used.
It is the object of the present invention to provide an improved coding concept for images
or videos, allowing to increase the image quality and/or reduce the necessary amount of
encoded image data.
This object is solved by an image encoder according to claim 1, an image decoder
according to claim 7, a method for providing encoded image data according to claim 11 or
a method for decoding image data according to claim 12.
An embodiment of the invention provides an image encoder comprising an extreme value
determiner, a floating point-to-integer converter and an encoder. The extreme value
determiner is configured to determine a minimal value and a maximal value of a floating
point image value of each pixel of a part of an image, an image or a group of images.
Further, the floating point-to-integer converter is configured to map the floating point
image value of each pixel to an integer image value. Each integer image value lies in a
predefined range of integer image values. The determine minimal floating point value is
mapped to a minimal integer image value of the predefined range of integer image values
and the determined maximal floating point value is mapped to a maximal integer image
value of the predefined range of integer image values. Additionally, the encoder is
configured to encode the integer image value of each pixel to obtain and provide encoded
image data of the part of the image, the image or the group of images.
Embodiments according to the present invention are based on the central idea that the
floating point to integer conversion is adapted to the distribution of floating point values of
pixels within a part of an image, an image or a group of images. In other words, a range of
floating point values is mapped to a range of integer values by which the range of integer
values may be dynamically adapted to the range of floating point values. By this, a better
resolution may be reached, if the floating point values are only distributed over a narrow
range of floating point values, compared with a concept using a static mapping. By
increasing the resolution of the floating point to integer conversion the image quality of
images with a narrow distribution of floating point values may be significantly improved.
Further a reduced amount of image data may be necessary for providing an increased
resolution for images with a narrow distribution of floating point values in comparison to
concepts using static mapping, since these known methods would have to provide the high
resolution for a whole allowed range of floating point values, which would increase the
amount of necessary image data significantly.
A further embodiment of the invention provides an image decoder comprising a decoder
and an integer-to-floating point converter. The decoder is configured to decode received
encoded image data to obtain an integer image value for each pixel of a part of an image,
an image or a group of images and to obtain a transform parameter of the part of the image,
the image or the group of the images. Further, the integer-to-floating point converter is
configured to map the integer image value of each pixel to a floating point image value
based on the transform parameter, wherein each floating point image value lies in a range
of floating point image values, wherein the range of the floating point image values
depends on the transform parameter.
The image decoder is based on the same central idea as the described image encoder. The
range of the integer image values is adapted to the range of floating point values of the
original image. Therefore, a transfer parameter is contained by the encoded image data to
consider the dynamic relation between the range of integer image values and the range of
floating point image values. So, a better resolution may be reached, if the floating point
values are only distributed over a narrow range of floating point values, compared with a
concept using a static mapping. By increasing the resolution of the floating point to integer
conversion the image quality of images with a narrow distribution of floating point values
may be significantly improved.
In some embodiments according to the invention the floating point image value of each
pixel and the integer image value of each pixel represents an luminance value of each
pixel. Often parts of images, images or groups of images contain pixels with luminance
values in a narrow range compared with the range of possible luminance values. Therefore,
an adaptation of the range of integer values to the range of floating point luminance values
may significantly improve the resolution, wherein the amount of image data is not
increased.
Some embodiments according to the invention relate to a determination of a logarithmic
value for the floating point value of each pixel, so that the floating point values are
distributed logarithmically through the range of integer values. By a logarithmic mapping
the human vision may be considered more accurate.
Embodiments according to the invention will be detailed subsequently referring to the
appended drawings, in which:
Fig. 1 is a block diagram of an image encoder;
Fig. 2 is a block diagram of an image encoder;
Fig. 3 is a block diagram of an image decoder;
Fig. 4 is a block diagram of an image decoder;
Fig. 5 is a block diagram of an image encoder and an image decoder;
Fig. 6a is a schematic illustration of a histogram of a luminance of an image after a
non-adaptive transformation;
Fig. 6b is a schematic illustration of a histogram of a luminance of an image after
adaptive transformation;
Fig. 7 is a flow chart of a method for providing encoded image data; and
Fig. 8 is a flow chart of a method for decoding image data.
In the following, the same reference numerals are partly used for objects and functional
units having the same or similar functional properties and the description thereof with
regard to a figure shall apply also to other figures in order to reduce redundancy in the
description of the embodiments.
Fig. 1 shows a block diagram of an image encoder 100 according to an embodiment of the
invention. The image encoder 100 comprises an extreme value determiner 110, a floating
point-to-integer converter 120 and an encoder 130. The extreme value determiner 110 is
connected to the floating point-to-integer converter 120 and the floating point-to-integer
converter 120 is connected to the encoder 130. The extreme value determiner 110
determines a minimal value 112 and a maximal value 114 of a floating point image value
102 of each pixel of a part of an image, an image or a group of images. Further, the
floating point-to-integer converter 120 maps the floating point image value 102 of each
pixel to an integer image value 122, wherein each integer image value 122 lies in a
predefined range of integer image values. The determined minimal floating point value 112
is mapped to a minimal integer image value of the predefined range of integer image
values and the determined maximal floating point value 114 is mapped to a maximal
integer image value of the predefined range of integer image values. Additionally, the
encoder 130 encodes the integer image values 122 of each pixel to obtain and provide
encoded image data 132 of the part of the image, the image or the group of the images.
The minimal value 1 2 and the maximal value 14 of the floating point image values
define a range of floating point image values. The floating point image values of all pixels
of the part of the image, the image or the group of images lie in this range of floating point
image values. This range of floating point values is mapped to the range of integer image
values by assigning the minimal floating point value 112 to a minimal integer image value
of the predefined range of integer image values and assigning the maximal floating point
value 114 to the maximal integer image value of the predefined range of integer image
values. In this way, a varying range of floating point image values may be mapped to a
constant predefined range of integer image values of the part of the image, the image or the
group of images.
For example, the predefined range of integer image values may reach from 0 to 255, from
0 to 1024, from 0 to 4096 or even more (starting from 0 is not mandatory). In other words,
the integer image values lying in the predefined range of integer image values may be, for
example, 8 bit, 9 bit, 10 bit, 12 bit or 14 bit (or even higher) integer values.
By using the described concept, a better resolution may be reached. By increasing the
resolution of the floating point to integer conversion the image quality of images with a
narrow distribution of floating point values may be significantly improved.
Further a reduced amount of image data may be necessary for providing an increased
resolution for images with a narrow distribution of floating point values in comparison to
concepts using static mapping, since these known methods would have to provide the high
resolution for the whole allowed range of floating point image values, which would
increase the amount of necessary image data significantly.
For example, the possible allowed floating point image values for an image may reach for
0 to 10,000, but the pixels of the image comprise only floating point image values from
7000 to 8000. Then a minimal value of 7000 and a maximal value of 8000 would be
determined. So, according to the described concept, only the floating point values between
7000 and 8000 would be mapped to the range of integer image values, which may reach,
for example, from 0 to 1000. In contrast, known methods would map the full range of
possible floating point image values, namely 0 to 10,000, to the range of integer image
values. Therefore, for this example, the resolution reached by the described concept would
be ten times higher than a resolution of a known method. Providing the same resolution
with a known static mapping would require a ten times larger range of integer image
values and therefore also an increased amount of image data.
A floating point image value may be any floating point color space parameter as, for
example, a parameter in the RGB color space (red, green, blue), a parameter in the CMY
color space (cyan, magenta, yellow), a parameter in the CMYK color space (cyan,
magenta, yellow, key), a parameter in the CIE-XYZ color space (CIE, International
Commission of an Illumination) or a parameter in the CIE-Luv color space.
An integer image value may be any integer color space parameter of a color space. For
example, an integer image value may be an integer color space parameter of the color
space also represented by the floating point image value.
The encoder 130 may be, for example, an entropy encoder, a differential encoder, an
MPEG-encoder an H.262 or H.264-encoder.
The extreme value determiner 110, the floating point-to-integer converter 120 and the
encoder 130 may be independent hardware units, part of a digital signal processor, a
microcontroller or a computer or a computer program or a software product for running on
a computer or a microcontroller.
The extreme value determiner 110 may determine a minimal value 112 and a maximal
value 1 4 for each part of an image, for each image of a group of images or for each group
of images of an image sequence or a video. In this way, the range of floating point image
values may be adapted dynamically to the range of integer image values. So, for each part
of an image, for each image or for each group of images, the resolution for the floating
point image value may be optimized. In connection with videos, images may be also called
frames.
In some embodiments according to the invention, the floating point-to-integer converter
120 may calculate at least one transfer parameter for the part of the image, the image or the
group of images. The transform parameter may indicate the link between the range of the
floating point image values and the range of the integer image values. Therefore, the
transform parameter may be calculated based on the determined minimal floating point
value and the determined maximal floating point value. Then, the floating point image
value 102 of each pixel of the part of the image, the image or the group of images may be
mapped based on the transform parameter. Additionally, the transform parameter may be
provided with the encoded image data 132 of the part of the image, the image or the group
of images. In this way, an image decoder may use the transform parameter in combination
with the integer image value of each pixel to reconstruct image.
According to another aspect, the floating point-to-integer converter 120 may determine a
logarithmic value of the floating point image value of each pixel and map the logarithmic
floating point image values to the integer image values, so that the floating point image
values are distributed logarithmically through the range of the integer image values. For
this, the determined minimal value may be a minimal positive value of the floating point
image values. By using a logarithmic scale for the distribution of the floating point image
values to the range of integer image values human vision may be better taken into account,
so that the achievable quality for the human perception may be improved.
Alternatively, the floating point image value of each pixel may of course also be mapped to
the integer image values without determining a logarithmic value in a non-logarithmic
way.
In some embodiments according to the invention, the floating point image value of each
pixel represents a luminance value of each pixel. Since the luminance value of pixels of a
part of an image, an image or a group of images are often limited to a restricted range of
values, an adaptation of the mapping of the range of the floating point image values to the
range of integer image values for floating point luminance image values may lead to a
significantly improved resolution.
Further, additionally to the floating point luminance image value, each pixel may comprise
two floating point chrominance image values as, for example, defined by the CIE-XYZ
color space or the CIE-Luv color space.
Additionally, an image encoder may also comprise a color space converter for
transforming color space parameters from one color space to color space parameters of
another color space.
Fig. 2 shows a block diagram of an image encoder 200 according to an embodiment of the
invention. The image encoder 200 is similar to the encoder shown in Fig. 1, but comprises
additionally a color space converter 210. The color space converter 210 is connected to the
extreme value determiner 110 and the floating point-to-integer converter 120. The color
space converter 210 may transform color space parameters 202 of any color space to color
space parameters of any other color space.
For example, the color space converter 210 may transform device dependent floating point
image data 202 (e.g. RGB color space parameters or CMYK color space parameters) to
device independent floating point image data 102 (e.g. CIE-XYZ color space parameters or
CIE-Luv color space parameters). In this example, the device dependent floating point
image data may comprise values of three floating point parameters for each pixel and the
device independent floating point data may comprise a floating point luminance image
value and two floating point chrominance image values for each pixel. An adaptive
mapping according to the proposed concept may be applied, for example, to all three color
space parameters or only to the floating point luminance image values.
The color space converter 210 may provide floating point color space parameters to the
extreme value determiner 110 and the floating point-to-integer converter 120, so that an
adaptive floating point-to-integer mapping or transformation according to the described
concept may be realized.
Fig. 3 shows a block diagram of an image decoder 300 according to an embodiment of the
invention. The image decoder 300 comprises a decoder 310 connected to an integer-tofloating
point converter 320. The decoder 310 decodes received encoded image data 302 to
obtain an integer image value 312 for each pixel of a part of an image, an image or a group
of images and to obtain a transform parameter 314 of the part of the image, the image or
the group of images. Further, the integer-to-floating point converter 320 maps the integer
image value 312 of each pixel to a floating point image value 322 based on the transform
parameter 314. Each floating point image value 322 lies in a range of floating point image
values, the range of floating point image values depending on the transform parameter 314.
The integer-to-floating point converter 320 maps the range of integer image values to the
range of floating point image values. Since the range of floating point image values
depends on the transform parameter 314 and may vary between different parts of images,
images or groups of images, the resolution of the mapping can be adapted to the range of
floating point image values contained by the part of the image, the image or the group of
images. In this way, a limited range of integer image values may be exploited more
efficiently. Especially parts of images, images or groups of images with a narrow range of
floating point images values can reach a high resolution for the floating point image values
with a relatively low amount of image data.
As already described for the image encoder, the integer image value of each pixel may be a
color space parameter of a color space (e.g. the luminance parameter of a CIE-Luv color
space) and the floating point image value may be a corresponding floating point color
space parameter of a color space (e.g. the Y component of the CIE-XYZ color space).
The transform parameter 314 may define a relation between a range of the integer image
values of the pixels and the range of floating point image values of the pixels. The
transform parameter 314 may be, for example, determined by an image encoder described
above.
The received encoded image data 302 may contain more than one transform parameter 314
for the mapping of the integer image values 312 to the floating point image values 322.
The decoder 310 and the integer-to-floating point converter 320 may be independent
hardware units, part of a digital signal processor, a computer or a microcontroller or a
computer program or software product for running on a computer or a microcontroller.
As described for the image encoder, the integer image values may represent logarithmic
values. This may be considered by the integer-to-floating point converter 320. In other
words, the integer-to-floating point converter 320 may map the integer image value of each
pixel to a floating point image value by considering the integer image values within an
exponent.
Further, following the description of the image encoder, the integer image value of each
pixel may represent, for example, a luminance value of each pixel. In this example, the
integer-to-floating point converter 320 may map these integer luminance image values to
floating point luminance image values.
According to another aspect, the image data 302 may comprise more than one integer
image value for each pixel. For example, the image data 302 may comprise three integer
image values for each pixel representing three color space parameters of a color space (e.g.
CIE-Luv color space). The mapping of the integer image values to the floating point image
values of at least one of these integer color space parameters depends on the transform
parameter in a way, that the range of floating point image values depends on the transform
parameter. For example, obtaining image values representing parameters of the CIE-Luv
color space, the luminance parameter may be mapped in an adaptive way according to the
described concept, while the chrominance parameters (u and v) may be mapped in an nonadaptive
way.
Additionally, the image decoder may comprise a color space converter for transforming
color space parameters (e.g. the floating point image value) of one color space to color
space parameters of another color space.
Fig. 4 shows a block diagram of an image decoder 400 according to an embodiment of the
invention. The image decoder 400 is similar to the decoder shown in Fig. 3, but comprises
additionally a color space converter 410. The integer-to-floating point converter 320 is
connected to this color space converter 410. The color space converter 410 may transform
color space parameters 322 of any color space to color space parameters of any other color
space.
For example, the color space converter 410 may transform device independent floating
point image data (e.g. color space parameters of a CIE-Luv color space or CIE-XYZ color
space) to device dependent floating point image data (e.g. color space parameters of an
RGB color space or an CMYK color space). For example, the device independent floating
point image data may comprise a floating point luminance image value and two floating
point chrominance image values for each pixel, which are transformed to three floating
point parameters for each pixel of the device dependent floating point image data.
Fig. 5 shows a block diagram of an image encoder 500 and a corresponding image decoder
550 according to an embodiment of the invention. In this example, the image encoder 500
comprises a LogLuv transformer 510 connected to an H.264 encoder 130. The LogLuv
transformer 10 comprises an extreme value determiner, a floating point-to-integer
converter and a color space converter.
The LogLuv transformer 510 receivers in this example high dynamic range image data
202. The high dynamic range image data 202 may be provided, for example, in a radiance
HDR format, a portable float map, a TIFF format (tagged image file format) or an
openEXR format (e.g. RGB 4:4:4). Additionally to the integer image values 122, the
LogLuv transformer 510 may provide three transform parameters 314 (a, b, c). The
transform parameters 314 may be encoded together with the integer image values 122 or
may be provided without encoding together with the encoded image data 132.
The image decoder 550 comprises an H.264 decoder 310 connected to an inverse LogLuv
transformer. The inverse LogLuv transformer comprises an integer-to-floating point
converter 320 and a color space converter 410. The inverse LogLuv transformer receives
decoded floating point image values 312 and three transform parameters 314 (a, b, c).
Based on the decoded floating point image values and the transform parameters 314, the
inverse LogLuv transformer provides in this example three device depending floating point
parameters for each pixel representing high dynamic range image data. The high dynamic
range image data may be provided in the same format as the input data of the image
encoder 500 (e.g. RGB 4:4:4) or another mentioned format.
In the following a more detailed example for the mapping or transformation, which is done
by an image encoder or an image decoder according to the described concept, is explained
based on the proposed scheme illustrated in Fig. 5.
In this example, the input image data is provided as RGB data. This RGB floating point
values may be transformed into device independent XYZ color space. Then minimum and
maximum values of luminance available in groups of frames, frames or parts of frames are
found. These values are then used to map the floating point luminance values into integer
values as, for example, per following equations.
For encoding the image data, which is also called forward transformation, the following
equations may be used:
X 0.497 0.339 0. 164 R
Y = 0.256 0.678 0.066 G
z 0.023 0. 113 0.864 B
X
y =
X +Y +Z X +Y +Z
4x y
v„ =
2x + 12^ + 3 2x + 12.y + 3
The decoding of the image data, which is also called inverse transformation, may be
defined by the following equations:
0,whenL =0
2 ' ,otherwise
u + 0.5 v„ +0.5
9u 4v
6w-16v + 12 6w-16v + 12
y y
R 2.690 - 1.276 -0.414 ~x
G = -1.022 1.978 0.044 Y
B 0.061 - 0.224 1. 163 z
or encoding and decoding the transform following transform parameters may be used:
2¾ - 2
(max(y)/ min _ positive^))
b = log2(min_positive Y
a
In this equations R, G and B are color space parameters of a device dependent color space,
X and Z are color space parameters of a device independent color space, Y is the floating
point luminance image value and x and y are two floating point chrominance image values
of a device independent color space. Further, L is the integer luminance image value, a, b
and c are transform parameters, ¾ is a number of bits per sample for a luma (luminance)
channel (number of bits per pixel of the integer luminance image value), ue and ve are two
integer chrominance image values, u and v are two floating point chrominance image
values and nc is the number of bits per sample for chroma (chrominance) channels (number
of bits per pixel of a integer chrominance image value).
The required number of bits per sample for the luma channel ¾ may be, for example, 1 or
14 bits, while 8 bits may be sufficient for number of bits per sample for the chroma
channels nc (which results in a constant c of 410).
In this example, floating point HDR images or video sequences may be transformed to
integer images or video sequences that are then encoded using a traditional video encoder.
The transform parameters a, b, c) may be transmitted as side information in order to
reconstruct the floating point HDR images or video sequences after decoding. These
parameters can be chosen per parts of a frame (image), frame or group of frames.
Parameter c may be, for example, set to a fixed value (e.g. 410, which represents 8 bits per
chroma sample). In that case c does not need to be sent along with the bit stream (encoded
image data).
The following two figures (Fig. 6a, 6b) show the range of integer values of a HDR video
frame after applying non-adaptive and adaptive log transform (according to the described
concept). Fig. 6a shows an example for a histogram of luminance using known nonadaptive
transformation. The x-axis indicates the luminance level and the y-axis illustrates
the number of pixels comprising the corresponding luminance level. Fittingly, Fig. 6b
shows an example for a histogram of luminance using an adaptive transformation. As
shown in Figure 6a, the non-adaptive log transform does not use all the available
luminance levels. On the other hand, Figure 6b shows that adaptive method uses more or
all available luminance levels in the images.
In this example, for chroma (chrominance) channels a CIEuv representation is proposed,
similar to non-adaptive transform method. However, other color transformations can also
be used. Chroma channels are/can also be transmitted with lower bits per sample than the
luma channel. Furthermore chroma subsampling like traditional 4:2:0 sampling can be
employed.
Further, sRGB color space is used in this example. But the described concept is equally
applicable to other color spaces like, for example, adobe RGB color space.
Some embodiments according to the invention relate to adaptive LogLuv transform for
high dynamic range (HDR) video/image compression.
More general the described concept relates to image/video encoding/decoding. It maps
floating point pixel values into integer values, taking into consideration the dynamic range
of frame or part of frame (image). Existing video codecs like e.g. H.264 consider pixels as
integer values. This transformation can be used along with existing encoder/decoder to
encode, for example, high dynamic range images or video sequences efficiently, but also
other image and video formats
In other words, for example, floating point high dynamic range images or video sequences
may be transformed to integer images of video sequences that are then encoded using a
traditional video encoder. The proposed float to integer transform is adaptive with regard
to the dynamic range of the luminance values of the high dynamic range images or video
sequences.
Compared to known methods, the proposed scheme may provide significantly better results
for individual frames/images not containing full dynamic range.
Fig. 7 shows a flow chart of a method 700 for providing encoded image data according to
an embodiment of the invention. The method 700 comprises determining 710 a minimal
value and a maximal value of a floating point image value of each pixel of a part of an
image, an image or a group of images. Further, the method 700 comprises mapping 720 the
floating point image value of each pixel to an integer image value. Each integer image
value lies in a predefined range of integer image values. The determined minimal floating
point value is mapped to a minimal integer image value of the predefined range of image
integer values and the determined maximal floating point value is mapped to a maximal
integer image value of the predefined range of integer image values. Additionally, the
method 700 comprises encoding 730 the integer image value of each pixel to obtain
encoded image data of the part of the image, the image or the group of images and
providing 740 the encoded image data.
Additionally, the method 700 may comprise further optional steps, which are mentioned
during the description of image encoders.
Fig. 8 shows a flow chart of a method 800 for decoding image data according to an
embodiment of the invention. The method 800 comprises decoding 810 received encoded
image data to obtain an integer image value for each pixel of a part of an image, an image
or a group of images and to obtain a transform parameter of the part of the image, the
image or the group of images. Further, the method 800 comprises mapping 820 the integer
image value of each pixel to a floating point image value based on the transform
parameter. Each floating point image value lies in a range of floating point image values.
The range of floating point image values depends on the transform parameter.
Additionally, the method 800 may comprise further optional steps described in connection
with image decoders.
Although some aspects of the described concept have been described in the context of an
apparatus, it is clear that these aspects also represent a description of the corresponding
method, where a block or device corresponds to a method step or a feature of a method
step. Analogously, aspects described in the context of a method step also represent a
description of a corresponding block or item or feature of a corresponding apparatus.
The inventive encoded image data can be stored on a digital storage medium or can be
transmitted on a transmission medium such as a wireless transmission medium or a wired
transmission medium such as the Internet.
Depending on certain implementation requirements, embodiments of the invention can be
implemented in hardware or in software. The implementation can be performed using a
digital storage medium, for example a floppy disk, a DVD, a Blue-Ray, a CD, a ROM, a
PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable
control signals stored thereon, which cooperate (or are capable of cooperating) with a
programmable computer system such that the respective method is performed. Therefore,
the digital storage medium may be computer readable.
Some embodiments according to the invention comprise a data carrier having
electronically readable control signals, which are capable of cooperating with a
programmable computer system, such that one of the methods described herein is
performed.
Generally, embodiments of the present invention can be implemented as a computer
program product with a program code, the program code being operative for performing
one of the methods when the computer program product runs on a computer. The program
code may for example be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods
described herein, stored on a machine readable carrier.
In other words, an embodiment of the inventive method is, therefore, a computer program
having a program code for performing one of the methods described herein, when the
computer program runs on a computer.
A further embodiment of the inventive methods is, therefore, a data carrier (or a digital
storage medium, or a computer-readable medium) comprising, recorded thereon, the
computer program for performing one of the methods described herein.
A further embodiment of the inventive method is, therefore, a data stream or a sequence of
signals representing the computer program for performing one of the methods described
herein. The data stream or the sequence of signals may for example be configured to be
transferred via a data communication connection, for example via the Internet.
A further embodiment comprises a processing means, for example a computer, or a
programmable logic device, configured to or adapted to perform one of the methods
described herein.
A further embodiment comprises a computer having installed thereon the computer
program for performing one of the methods described herein.
In some embodiments, a programmable logic device (for example a field programmable
gate array) may be used to perform some or all of the functionalities of the methods
described herein. In some embodiments, a field programmable gate array may cooperate
with a microprocessor in order to perform one of the methods described herein. Generally,
the methods are preferably performed by any hardware apparatus.
The above described embodiments are merely illustrative for the principles of the present
invention. It is understood that modifications and variations of the arrangements and the
details described herein will be apparent to others skilled in the art. It is the intent,
therefore, to be limited only by the scope of the impending patent claims and not by the
specific details presented by way of description and explanation of the embodiments
herein.
1/088960 PCT/EP2010/070915
Claims
Image encoder (100, 200, 500) comprising:
an extreme value determiner (110) configured to determine a minimal value ( 112)
and a maximal value ( 114) of a floating point image value (102) of each pixel of a
part of an image, an image or a group of images, wherein the floating point image
value of each pixel represents a luminance value of each pixel;
a floating point-to-integer converter (120) configured to map the floating point
image value (102) of each pixel to an integer image value (122), wherein each
integer image value (102) lies in a predefined range of integer image values,
wherein the determined minimal floating point image value ( 112) is mapped to a
minimal integer image value of the predefined range of integer image values and
the determined maximal floating point image value (114) is mapped to a maximal
integer image value of the predefined range of integer image values; and
an encoder (130) configured to encode the integer image value (122) of each pixel
to obtain and provide encoded image data (132) of the part of the image, the image
or the group of images.
Image encoder according to claim 1, wherein the extreme value determiner ( 110) is
configured to determine a minimal value (112) and a maximal value ( 114) for each
part of an image, for each image of a group of images or for each group of images
of an image sequence.
Image encoder according to claim 1 or 2, wherein the floating point-to-integer
converter (120) is configured to calculate at least one transform parameter for the
part of the image, the image or the group of images based on the determined
minimal floating point value ( 112) and the determined maximal floating point value
( 114), wherein the floating point value (102) of each pixel of the part of the image,
the image or the group of images is mapped based on the transform parameter, and
wherein the transform parameter is provided with the encoded image data (132) of
the part of the image, the image or the group of images.
Image encoder according to one of the claims 1-3, wherein the floating point-tointeger
converter (120) is configured to determine a logarithmic value of the
floating point image value (102) of each pixel and configured to map the
1/088960 PCT/EP2010/070915
logarithmic floating point image values to the integer image values, so that the
floating point image values are distributed logarithmically through the range of
integer image values, and wherein the determined minimal value ( 112) is a minimal
positive value of the floating point image values.
Image encoder according to one of the claims 1-4, comprising a color space
converter (210) configured to transform device dependent floating point image data
to device independent floating point image data, wherein the device dependent
floating point image data comprises values of three floating point parameters for
each pixel and the device independent floating point data comprises the floating
point luminance image value (102) and two floating point chrominance image
values for each pixel.
Image encoder according to one of the claims 1-5, comprising a color space
converter (210) configured to calculate the floating point luminance image value
(Y) and two floating point chrominance image values (x, y) for each pixel based on
RGB data (202) of each pixel according to the following equation:
X 0.497 0.339 0. 164 R
Y — 0.256 0.678 0.066 G
z 0.023 0 . 113 0.864 B
X Y
x =
X +Y +Z X + Y +Z
wherein R, G and B are color space parameters of a device dependent color space, X
and Z are color space parameters of a device independent color space, Y is the
floating point luminance image value (102) and x and y are two floating point
chrominance image values of a device independent color space,
wherein the floating point-to-integer converter (1 0) is configured to determine the
integer luminance image values (L, 122) for each pixel according to the following
equations:
1/088960 PCT/EP2010/070915
2¾ - 2
log2(max(r)/ min _ positive(Y))
b = log2(min ositive ))
a
wherein L is the integer luminance image value (122), a and b are transform
parameters, and ¾ is the number of bits per pixel of the integer luminance image
value,
and configured to determine two integer chrominance image values for each pixel
based on the two calculated floating point chrominance image values according to
equations:
2" - 1
c =
0,62
wherein ue and ve are two integer chrominance image values, c is a transform
parameter and nc is the number of bits per pixel of a integer chrominance image
value,
and wherein the encoder (130) is configured to encode the integer luminance image
value (L, 122) and the two integer chrominance image values ue, ve) of each pixel
to obtain and provide the encoded image data (132) of the part of the image, the
image or the group of images.
WO 2011/088960 PCT/EP2010/070915
7. Image decoder (300, 400, 550) comprising:
a decoder (310) configured to decode received encoded image data (302) to obtain
an integer image value (312) for each pixel of a part of an image, an image or a
group of images and to obtain a transform parameter (314) of the part of the image,
the image or the group of images, wherein the integer image value of each pixel
represents a luminance value of each pixel; and
an integer-to-floating point converter (320) configured to map the integer image
value (312) of each pixel to a floating point image value (322) based on the
transform parameter (314), wherein each floating point image value (322) lies in a
range of floating point image values, wherein the range of the floating point image
values depends on the transform parameter (314).
8. Image decoder according to claim 7, wherein the integer-to-floating point converter
(320) is configured to determine a floating point image value for a pixel based on
an exponentiation, wherein the exponent of the exponentiation is based on the
corresponding integer image value (312) of the pixel and the transform parameter
(314) of the part of the image, the image or the group of images.
9. Apparatus according to claim 7 or 8, comprising a color space converter (410)
configured to transform device independent floating point image data (322) to
device independent floating point image data (412), wherein the device independent
floating point image data (322) comprises a floating point luminance image value
(322) and two floating point chrominance image values for each pixel and the
device dependent floating point image data (412) comprises values of three floating
point parameters for each pixel.
10. Image decoder according to one of the claims 7-9, comprising a color space
converter (410), wherein the integer-to-floating point converter (320) is configured
to determine the floating point luminance image values (Y, 322) for each pixel
according to the following equations:
11/088960 PCT/EP2010/070915
_ 2¾ - 2
log2(max(y)/ min _ positive^))
b =—- log2(min_positive(Y))
a
wherein L is the integer luminance image value (312), Y is the floating point
luminance image value (322), a and b are transform parameters (314), and ¾ is the
number of bits per pixel of the integer luminance image value,
and configured to determine two floating point chrominance image values (x, y) for
each pixel based on two decoded integer chrominance image values (ue, ve)
according to equations:
u +0.5 v „ +0.5
9u 4v
x =
6 -16v + 12 6«-16v + 12
wherein ue and v are the two integer chrominance image values, c is a transform
parameter, x and y are the two floating point chrominance image values of a device
independent color space, u and v are two floating point chrominance image values
and nc is the number of bits per pixel of a integer chrominance image value,
and wherein the color space converter (410) is configured to calculate device
dependent RGB data of each pixel based on the floating point luminance image
value (Y, 322) and the two floating point chrominance image values (x, y) of each
pixel according to the following equations:
1/088960 PCT/EP2010/070915
X _ Yx Z _ Y(l-x--y)
y y
R 2.690 -1.276 - 0.414 ~x
G = -1.022 1.978 0.044 Y
B 0.061 -0.224 1. 163 z
wherein R, Gand Bare color space parameters of a device dependent color space
andXand Z are color space parameters of a device independent color space.
Method (700) for providing encoded image data, comprising:
determining (710) a minimal value and a maximal value of a floating point image
value of each pixel of a part of an image, an image or a group of images, wherein
the floating point image value of each pixel represents a luminance value of each
pixel;
mapping (720) the floating point image value of each pixel to an integer image
value, wherein each integer image value lies in a predefined range of integer image
values, wherein the determined minimal floating point image value is mapped to a
minimal integer image value of the predefined range of integer image values and
the determined maximal floating point image value is mapped to a maximal integer
image value of the predefined ranged of integer image values;
encoding (730) the integer image value of each pixel to obtain encoded image data
of the part of the image, the image or the group of images; and
providing (740) the encoded image data.
Method (800) for decoding image data, comprising:
decoding (810) received encoded image data to obtain an integer image value for
each pixel of a part of an image, an image or a group of images and to obtain a
transform parameter of the part of the image, the image or the group of images,
wherein the integer image value of each pixel represents a luminance value of each
pixel; and
1/088960 PCT/EP2010/070915
mapping (820) the integer image value of each pixel to a floating point image value
based on the transform parameter, wherein each floating point image value lies in a
range of floating point image values, wherein the range of floating point image
value depends on the transform parameter.
Computer program with a program code for performing the method according to
claim 11 or 12, when the computer program runs on a computer or a
microcontroller.

Documents

Application Documents

# Name Date
1 1670-KOLNP-2012.pdf 2012-07-10
2 1670-KOLNP-2012-(12-07-2012)-FORM-18.pdf 2012-07-12
3 1670-kolnp-2012-(9-7-2012)-FORM-5.pdf 2012-07-25
4 1670-kolnp-2012-(9-7-2012)-FORM-3.pdf 2012-07-25
5 1670-kolnp-2012-(9-7-2012)-FORM-2.pdf 2012-07-25
6 1670-kolnp-2012-(9-7-2012)-FORM-1.pdf 2012-07-25
7 1670-kolnp-2012-(9-7-2012)-CORRESPONDENCE.pdf 2012-07-25
8 1670-KOLNP-2012-(08-10-2012)-PA.pdf 2012-10-08
9 1670-KOLNP-2012-(08-10-2012)-CORRESPONDENCE.pdf 2012-10-08
10 1670-KOLNP-2012-(19-12-2012)-FORM 3.pdf 2012-12-19
11 1670-KOLNP-2012-(19-12-2012)-CORRESPONDENCE.pdf 2012-12-19
12 Other Patent Document [20-08-2016(online)].pdf 2016-08-20
13 Other Patent Document [17-02-2017(online)].pdf 2017-02-17
14 1670-KOLNP-2012-Information under section 8(2) (MANDATORY) [19-08-2017(online)].pdf 2017-08-19
15 1670-KOLNP-2012-Information under section 8(2) (MANDATORY) [20-02-2018(online)].pdf 2018-02-20
16 1670-KOLNP-2012-FER.pdf 2018-06-29
17 1670-KOLNP-2012-Proof of Right (MANDATORY) [06-10-2018(online)].pdf 2018-10-06
18 1670-KOLNP-2012-PETITION UNDER RULE 137 [15-12-2018(online)].pdf 2018-12-15
19 1670-KOLNP-2012-PETITION UNDER RULE 137 [15-12-2018(online)]-1.pdf 2018-12-15
20 1670-KOLNP-2012-FER_SER_REPLY [15-12-2018(online)].pdf 2018-12-15
21 1670-KOLNP-2012-DRAWING [15-12-2018(online)].pdf 2018-12-15
22 1670-KOLNP-2012-CLAIMS [15-12-2018(online)].pdf 2018-12-15
23 1670-KOLNP-2012-ABSTRACT [15-12-2018(online)].pdf 2018-12-15
24 1670-KOLNP-2012-Information under section 8(2) (MANDATORY) [20-02-2019(online)].pdf 2019-02-20
25 1670-KOLNP-2012-Information under section 8(2) (MANDATORY) [20-09-2019(online)].pdf 2019-09-20
26 1670-KOLNP-2012-Information under section 8(2) [12-02-2020(online)].pdf 2020-02-12
27 1670-KOLNP-2012-Information under section 8(2) [28-08-2020(online)].pdf 2020-08-28
28 1670-KOLNP-2012-Information under section 8(2) [05-02-2021(online)].pdf 2021-02-05
29 1670-KOLNP-2012-FORM-26 [19-02-2021(online)].pdf 2021-02-19
30 1670-KOLNP-2012-Correspondence to notify the Controller [19-02-2021(online)].pdf 2021-02-19
31 1670-KOLNP-2012-Written submissions and relevant documents [23-03-2021(online)].pdf 2021-03-23
32 1670-KOLNP-2012-PatentCertificate24-05-2021.pdf 2021-05-24
33 1670-KOLNP-2012-IntimationOfGrant24-05-2021.pdf 2021-05-24
34 1670-KOLNP-2012-US(14)-HearingNotice-(HearingDate-08-03-2021).pdf 2021-10-03
35 1670-KOLNP-2012-RELEVANT DOCUMENTS [08-09-2023(online)].pdf 2023-09-08

Search Strategy

1 1670_KOLNP_2012_21-03-2018.pdf

ERegister / Renewals

3rd: 28 Jul 2021

From 30/12/2012 - To 30/12/2013

4th: 28 Jul 2021

From 30/12/2013 - To 30/12/2014

5th: 28 Jul 2021

From 30/12/2014 - To 30/12/2015

6th: 28 Jul 2021

From 30/12/2015 - To 30/12/2016

7th: 28 Jul 2021

From 30/12/2016 - To 30/12/2017

8th: 28 Jul 2021

From 30/12/2017 - To 30/12/2018

9th: 28 Jul 2021

From 30/12/2018 - To 30/12/2019

10th: 28 Jul 2021

From 30/12/2019 - To 30/12/2020

11th: 28 Jul 2021

From 30/12/2020 - To 30/12/2021

12th: 28 Jul 2021

From 30/12/2021 - To 30/12/2022

13th: 30 Nov 2022

From 30/12/2022 - To 30/12/2023

14th: 15 Dec 2023

From 30/12/2023 - To 30/12/2024

15th: 17 Dec 2024

From 30/12/2024 - To 30/12/2025