Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR ENCODING AN IMAGE OR VIDEO WITH OPTIMIZED COMPRESSION EFFICIENCY PRESERVING IMAGE OR VIDEO FIDELITY
Document Type and Number:
WIPO Patent Application WO/2019/203973
Kind Code:
A1
Abstract:
The present principles relate to a method and device for encoding an image, simultaneously optimizing the compression efficiency and preserving high fidelity of resulting videos by adapting the quantization according to the brightness level. Dark areas and bright quantization are improved according to values of a set of parameters representative of luminance mapping and color correction operations on the image. The principles particularly apply to a single-layer high definition range video distribution system addressing direct backward compatibility.

Inventors:
OLIVIER YANNICK (FR)
ANDRIVON PIERRE (FR)
TOUZE DAVID (FR)
Application Number:
PCT/US2019/022864
Publication Date:
October 24, 2019
Filing Date:
March 19, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INTERDIGITAL VC HOLDINGS INC (US)
International Classes:
H04N19/126; H04N19/136; H04N19/176; H04N19/196; H04N19/46
Domestic Patent References:
WO2016199409A12016-12-15
WO2007055389A22007-05-18
Other References:
DE HAAN W ET AL: "Indication of SMPTE ST 2094-20 metadata in HEVC", 24. JCT-VC MEETING; 26-5-2016 - 1-6-2016; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-X0075, 25 May 2016 (2016-05-25), XP030118013
"High Dynamic Range Electro-Optical Transfer Function of Mastering Reference Displays, or SMPTE ST 2084", SMPTE 2014, 2014
DIAZ, R.; BLINSTEIN, S.; QU, S.: "Integrating HEVC Video Compression with a High Dynamic Range Video Pipeline", SMPTE MOTION IMAGING JOURNAL, vol. 125, no. 1, February 2016 (2016-02-01), pages 14 - 21, XP055438822, DOI: doi:10.5594/j18659
"Mastering Display Color Volume Metadata Supporting High Luminance and Wide Color Gamut Images", SMPTE ST 2086, 2014
"Advanced video coding for generic audiovisual Services", SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, RECOMMENDATION ITU-T H.264, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, January 2012 (2012-01-01)
"series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265", ITU-T H.265 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, October 2014 (2014-10-01)
Attorney, Agent or Firm:
DORINI, Brian J. et al. (US)
Download PDF:
Claims:
CLAIMS

1 . A method for encoding image data (I2) representative of an original image data, the method comprising:

obtaining a first parameter and a second parameter, said parameters being representative of a transfer function that determines image correction (200, 201 ) operations performed on the original image data, the transfer function being defined by a piece-wise curve constructed out of three parts where the lower and upper sections are linear, the steepness of the lower and upper sections of the curve being respectively determined by the first parameter and the second parameter,

determining an offset (66) for correcting the quantization step parameter from at least the image data and the first and second parameters, wherein a negative offset decreases the quantization step and a positive offset increases the quantization step, and

encoding the image data with a quantization parameter adjusted according to the determined offset (66).

2. The method of claim 1 further comprising determining the offset (66) for the first part of the piece-wise curve corresponding to dark areas by selecting a value in a first table according to an average luma value computed on a selected subset of the image data and the first parameter.

3. The method of claim 2 wherein the first table provides decreasing values of the offset (66) when the first parameter decreases below a first value and increasing values of the offset (66) when the first parameter increases above a second value.

4. The method of claim 3 wherein the first value is 1.0 and the second value is 2.0.

5. The method of claim 1 further comprising determining the offset (66) for the third part of the piece-wise curve corresponding to bright areas by selecting a value in a second table according to an average luma value computed on a selected subset of the image data and the second parameter.

6. The method of claim 5 wherein the second table provides decreasing values of the offset (66) when the second parameter decreases or when the average luma value decreases.

7. A device (70) for encoding image data (I2) representative of an original image data, the device comprising a processor (72) configured to:

obtain a first parameter and a second parameter, said parameters being representative of a transfer function that determines image correction (200, 201 ) operations performed on the original image data, the transfer function being defined by a piece-wise curve constructed out of three parts where the lower and upper sections are linear, the steepness of the lower and upper sections of the curve being respectively determined by the first parameter and the second parameter,

determine an offset (66) for correcting the quantization step parameter from at least the image data and the first and second parameters, wherein a negative offset decreases the quantization step and a positive offset increases the quantization step, and

encode the image data with a quantization parameter adjusted according to the determined offset (66).

8. The device of claim 7 further comprising determining the offset (66) for the first part of the piece-wise curve corresponding to dark areas by selecting a value in a first table according to an average luma value computed on a selected subset of the image data and the first parameter.

9. The device of claim 8 wherein the first table provides decreasing values of the offset (66) when the first parameter decreases below a first value and increasing values of the offset (66) when the first parameter increases above a second value.

10. The device of claim 9 wherein the first value is 1.0 and the second value is 2.0.

1 1 . The device of claim 7 further comprising determining the offset (66) for the third part of the piece-wise curve corresponding to bright areas by selecting a value in a second table according to an average luma value computed on a selected subset of the image data and the second parameter.

12. The device of claim 1 1 wherein the second table provides decreasing values of the offset (66) when the second parameter decreases or when the average luma value decreases.

13. The method of any of claims 1 to 6 or the device of any of claims 7 to 12 wherein the first parameter is the Shadow Gain Control parameter as defined in ETSI technical specification TS 103 433-1 V1.2.1 and the second parameter is the Highlight Gain Control parameter as defined in ETSI technical specification TS 103 433-1 V1.2.1 .

14. A computer program product comprising program code instructions to execute the steps of the method according to one of the claims 1 to 6 when this program is executed on a computer.

15. A non-transitory processor-readable medium whose program code instructions to execute the steps of the method according to one of the claims 1 to 6 when this program is executed on a computer.

Description:
1. Title

METHOD AND DEVICE FOR ENCODING AN IMAGE OR VIDEO WITH OPTIMIZED COMPRESSION EFFICIENCY PRESERVING IMAGE OR VIDEO FIDELITY

2. Field.

The present principles relate to distributing HDR video while simultaneously optimizing the compression efficiency and preserving high fidelity of resulting videos.

The present principles relate to optimizing the compression efficiency for distributing HDR video while preserving high fidelity of resulting videos. Such optimization is described in the context of a single-layer distribution system addressing direct backward compatibility as for example published in ETSI technical specification TS 103 433-1 V1 .2.1. but applies to other distribution systems using video compression techniques.

3. Background.

The present section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present principles that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present principles. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

In the following, image data refer to one or several arrays of samples (pixel values) in a specific image/video format which specifies all information relative to the pixel values of an image (or a video) and all information which may be used by a display and/or any other device to visualize and/or decode an image (or video) for example. An image comprises a first component, in the shape of a first array of samples, usually representative of luminance (or luma) of the image, and a second and third component, in the shape of other arrays of samples, usually representative of the color (or chroma) of the image. Or, equivalently, the same information may also be represented by a set of arrays of color samples, such as the traditional tri-chromatic RGB representation.

A pixel value is represented by a vector of C values, where C is the number of components. Each value of a vector is represented with a number of bits which defines a maximal dynamic range of the pixel values.

Standard-Dynamic-Range images (SDR images) are images whose luminance values are represented with a limited number of bits (typically 8). This limited representation does not allow correct rendering of small signal variations, in particular in dark and bright luminance ranges. In high-dynamic range images (HDR images), the signal representation is extended to maintain a high accuracy of the signal over its entire range. In HDR images, pixel values are usually represented in floating-point format (typically at least 10 bits per component, namely float or half-float), the most popular format being openEXR half-float format (16-bit per RGB component, i.e. 48 bits per pixel) or in integers with a long representation, typically at least 16 bits.

The arrival of the High Efficiency Video Coding (HEVC) standard ( ITU - T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265) enables the deployment of new video services with enhanced viewing experience, such as Ultra HD broadcast services. In addition to an increased spatial resolution, Ultra HD can bring a wider color gamut (WCG) and a higher dynamic range (HDR) than the Standard dynamic range (SDR) HD-TV currently deployed. Different solutions for the representation and coding of HDR/WCG video have been proposed (SMPTE 2014,“High Dynamic Range Electro-Optical Transfer Function of Mastering Reference Displays, or SMPTE ST 2084, 2014, or Diaz, R., Blinstein, S. and Qu, S.“Integrating HEVC Video Compression with a High Dynamic Range Video Pipeline”, SMPTE Motion Imaging Journal, Vol. 125, Issue 1. Feb, 2016, pp 14-21 ).

SDR backward compatibility with decoding and rendering devices is an important feature in some video distribution systems, such as broadcasting or multicasting systems. A solution based on a single layer coding/decoding process may be backward compatible, e.g. SDR compatible, and may leverage legacy distribution networks and services already in place.

Such a single layer based distribution solution enables both high quality HDR rendering on HDR-enabled Consumer Electronic (CE) devices, while also offering high quality SDR rendering on SDR-enabled CE devices. Such a solution is based on an encoded signal, e.g. SDR signal, and associated metadata (few bytes per video frame or scene) that can be used to reconstruct another signal, e.g. HDR signal, from a decoded signal, e.g. SDR signal. Metadata stored parameters values used for the reconstruction of the signal and may be static or dynamic. Static metadata means metadata that remains the same for a video (set of images) and/or a program.

Static metadata are valid for the whole video content (scene, movie, clip...) and may not depend on the image content. They may define, for example, image format or color space, color gamut. For instance, SMPTE ST 2086:2014, "Mastering Display Color Volume Metadata Supporting High Luminance and Wide Color Gamut Images" is such a kind of static metadata for use in production environments. The Mastering Display Colour Volume (MDCV) SEI (Supplemental Enhanced Information) message is the distribution flavor of ST 2086 for both H.264/AVC (“ Advanced video coding for generic audiovisual Services”, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Recommendation ITU-T H.264, Telecommunication Standardization Sector of ITU, January 2012) and HEVC video codecs.

Dynamic metadata are content-dependent, that is metadata can change with the image/video content, e.g. for each image or when each group of images. As an example, SMPTE ST 2094:2016 standards families, "Dynamic Metadata for Color Volume Transform" are dynamic metadata for use in production environment. SMPTE ST 2094-30 can be distributed along HEVC coded video stream thanks to the Colour Remapping Information (CRI) SEI message.

Other single layer based distribution solutions exist on distribution networks for which display adaptation dynamic metadata are delivered along with a legacy video signal. These single layer based distribution solutions may produce HDR 10-bit image data (e.g. image data which signal is represented as an HLG10 or PQ10 signal as specified in Rec. ITU-R BT.2100-0 "Recommendation ITU-R BT.2100-0, Image parameter values for high dynamic range television for use in production and international program exchange") and associated metadata from an input signal (typically 12 or 16 bits), encodes said HDR 10-bit image data using, for example an HEVC Main 10 profile encoding scheme, and reconstructs a video signal from a decoded video signal and said associated metadata. The dynamic range of the reconstructed signal being adapted according to the associated metadata that may depend on characteristics of a target display.

ETSI TS 103 433-1 V1 .2.1 published in August 2017 proposes a single layer video distribution solution that addresses direct backward compatibility i.e. it leverages SDR distribution networks and services already in place and enables high quality HDR rendering on HDR-enabled CE devices including high quality SDR rendering on SDR CE devices. Some elements of this specification are detailed below in the description of Fig.2.

A well-known challenge in video distribution system is the optimization of the encoding while maintaining a high level of quality of the reconstructed picture, i.e. without introducing compression artefacts. In this goal, some encoders propose to use adaptive quantization that may implement different strategies. For example, more bits can be assigned to regions with high level of details and less bits to regions with low level of details. However, generally these adaptations do not match very well with the characteristics of the human visual system. This is particularly true when the pixels have already been tone mapped and color-corrected to be used in a single-layer backward-compatible distribution system as detailed in the further sections. Moreover, the main challenge of such distribution system is to get accurate SDR images, in term of luminance and colors, comparing to the HDR input video while optimizing the compression efficiency for distributing HDR video. The SL-HDR1 preprocessor described hereafter basically converts the HDR input video signal into an SDR video signal and generates metadata to reconstruct the HDR video signal. It produces SDR video signal which is well adapted to standard video compression like HEVC or AVS2 but optimizing the fidelity of the SDR video can be negative for the compression efficiency. Indeed, depending of some characteristics of the input HDR, the Tone Mapping operation performed on the luminance signal to get accurate SDR image can be not optimal in term of signal quantization for the HEVC encoder. Using a HEVC encoder for compressing this SDR video may produce images in which bright or dark areas are being allocated too few or too many bits depending on the associated metadata. This may produce compression artefacts in black or bright areas in the SDR video and obviously in the HDR reconstructed video.

It can therefore be appreciated that there is a need for a solution for optimizing the compression efficiency in video distribution systems while preserving high SDR video fidelity. The present disclosure provides such a solution.

4. Summary.

The following presents a simplified summary of the present principles in order to provide a basic understanding of some aspects of the present principles. This summary is not an extensive overview of the present principles. It is not intended to identify key or critical elements of the present principles. The following summary merely presents some aspects of the present principles in a simplified form as a prelude to the more detailed description provided below.

The present principles set out to remedy at least one of the drawbacks of the prior art with a method and device for optimizing the compression efficiency for distributing HDR video while preserving high fidelity of reconstructed videos. They relate to a method and device for encoding an image, simultaneously optimizing the compression efficiency and preserving high fidelity of resulting videos by adapting the quantization according to the brightness level. Dark areas and bright quantization are improved according to values of a set of parameters representative of luminance mapping and color correction operations on the image. The principles particularly apply to a single-layer high definition range video distribution system addressing direct backward compatibility.

In a first aspect, the disclosure is directed to a method for encoding image data representative of an original image data, the method comprising: obtaining a set of parameters representative of luminance mapping and color correction operations on the original image data, determining an offset for correcting the quantization parameter from the image data and the set of parameters, and encoding the image data while adjusting the quantization parameter according to the offset.

In a second aspect, the disclosure is directed to a device for encoding image data representative of an original image data, the device comprising a processor configured to: obtain a set of parameters representative of luminance mapping and color correction operations on the original image data, determine an offset for correcting the quantization parameter from the image data and the set of parameters, and encode the image data while adjusting the quantization parameter according to the offset.

According to an embodiment of first or second aspect, the offset is determined by selecting a value in a first table according to an average luma value computed on a selected subset of the image data and a shadow gain control parameter from the set of parameters. According to an embodiment of first or second aspect the offset is determined by selecting a value in a second table according to an average luma value computed on a selected subset of the image data and a highlight gain control parameter from the set of parameters. According to an embodiment of first or second aspect, the first table provides, for dark areas, decreasing values of the offset when the shadow gain control parameter decreases below a first threshold and increasing values of the offset when the shadow gain control parameter increases above the first threshold. According to an embodiment of first or second aspect, the second table provides, for bright areas, decreasing values of the offset when the highlight gain control parameter decreases below a second threshold. According to an embodiment of first or second aspect, the first threshold is 1.0. According to an embodiment of first or second aspect, the second threshold is 2.0

In a third aspect, the disclosure is directed to a computer program product comprising program code instructions to execute the steps of the method according to first aspect when this program is executed on a computer.

In a fourth aspect, the disclosure is directed to a non-transitory processor- readable medium whose program code instructions to execute the steps of the method according to first aspect when this program is executed on a computer.

5. Brief Description of Drawings.

In the drawings, examples of the present principles are illustrated. It shows:

- Fig. 1 shows a high-level representation of an end-to-end workflow supporting content delivery to displays in accordance with an example of the present principles;

- Fig. 2 shows an end-to-end workflow supporting content production and delivery to HDR and SDR CE displays in accordance with a prior art solution;

- Fig. 3 shows an exemplary embodiment of an end-to-end workflow of Fig. 2 comprising an encoding optimization function in accordance with an embodiment of the present principles;

- Fig. 4 shows an exemplary embodiment of an end-to-end workflow of Fig. 2 comprising an encoding optimization function in accordance with another embodiment of the present principles;

- Fig. 5a shows an illustration of a perceptual transfer function;

- Fig. 5b shows an example of a piece-wise curve used for mapping;

- Fig. 5c shows an example of a curve used for converting back a signal to a linear light domain;

- Fig. 6 shows an exemplary embodiment of the saturation control function in accordance with an embodiment of the present principles; - Fig. 7 shows an example of an architecture of a device in accordance with an example of present principles;

Similar or same elements are referenced with the same reference numbers.

6. Description of Example of the present principles.

The present principles will be described more fully hereinafter with reference to the accompanying figures, in which examples of the present principles are shown. The present principles may, however, be embodied in many alternate forms and should not be construed as limited to the examples set forth herein. Accordingly, while the present principles are susceptible to various modifications and alternative forms, specific examples thereof are shown by way of examples in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the present principles to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present principles as defined by the claims.

The terminology used herein is for the purpose of describing particular examples only and is not intended to be limiting of the present principles. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises", "comprising," "includes" and/or "including" when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Moreover, when an element is referred to as being "responsive" or "connected" to another element, it can be directly responsive or connected to the other element, or intervening elements may be present. In contrast, when an element is referred to as being "directly responsive" or "directly connected" to other element, there are no intervening elements present. As used herein the term "and/or" includes any and all combinations of one or more of the associated listed items and may be abbreviated as"/". It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the teachings of the present principles. Although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows. Some examples are described with regard to block diagrams and operational flowcharts in which each block represents a circuit element, module, or portion of code which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in other implementations, the function(s) noted in the blocks may occur out of the order noted. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. Reference herein to“in accordance with an example” or“in an example” means that a particular feature, structure, or characteristic described in connection with the example can be included in at least one implementation of the present principles. The appearances of the phrase in accordance with an example” or“in an example” in various places in the specification are not necessarily all referring to the same example, nor are separate or alternative examples necessarily mutually exclusive of other examples. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims. While not explicitly described, the present examples and variants may be employed in any combination or sub-combination.

In the following, the capital symbols, for example (C1 , C2, C3), designate components of a first image, and lower-case symbols, for example (d , c2, c3), designate components of another image whose dynamic range of the luminance is lower than the dynamic range of the luminance of the first image. The dynamic range of the luminance of an image is the ratio between the maximum over the minimum of the luminance values of said image. Typically, the dynamic range of the luminance of a SDR image is 500

(100cd/m2 over0,2cd/m2) and 10000 (1000 cd/m2 over 0,1 cd/m2) foran HDR image. Prime symbols, in the following, for example (Y’=y , r,i =t/i',V’=V ), designate gamma-compressed components of a first image when those prime symbols are capital symbols and prime symbols, for example (y’,u’y), designate gamma-compressed components of a second image when those prime symbols are lower-case symbols.

The present principles are described for coding/decoding/reconstructing an image but extends to the coding/decoding/reconstruction of a sequence of images (video) because each image of the sequence is sequentially encoded/decoded/reconstructed as described below.

Fig. 1 shows a high-level representation of an end-to-end workflow supporting content delivery to displays with improved display adaptation feature in accordance with an example of the present principles. The device A is configured to implement a method for encoding an image or a video stream, the device B is configured to implement a method for decoding an image or video stream as described below, and the device C is configured to display the decoded image or video stream. The two remote devices A and B are communicating over a distribution network NET that is configured at least to provide the encoded image or video stream from device A to device B.

Device A being configured to implement an encoding method as described herein belongs to a set comprising a mobile device, a communication device, a game device, a tablet (or tablet computer), a computer device such as a laptop, a still image camera, a video camera, an encoding chip, a still image server and a video server (e.g. a broadcast server, a video-on-demand server or a web server). Device B being configured to implement a decoding method as described herein belongs to a set comprising a mobile device, a communication device, a game device, a computer device and a set top box. Device C being configured to implement a displaying method belongs to a set comprising a TV set (or television), a tablet (or tablet computer), a computer device such as a laptop, a display, a head-mounted display and a decoding chip.

In accordance with an example, the network is a broadcast network, adapted to broadcast still images or video images from device A to a plurality of decoding devices including the device B. DVB and ATSC based networks are examples of such broadcast networks. In accordance with another example, the network is a broadband network adapted to deliver still images or video images from device A to a plurality of decoding devices including the device B. Internet-based networks, GSM networks or TV over IP networks are examples of such broadband networks. In an exemplary embodiment, the end- to-end workflow uses a broadcast server for device A, a set top box for device B, a television for device C and a DVB terrestrial broadcast network. In an alternate embodiment, device B and C are combined in a single device, for example a television integrating set top box decoding functionalities. In an alternate embodiment, the distribution network NET is replaced by a physical packaged media on which the encoded image or video stream is stored. Physical package media comprise optical packaged media such a Blu-ray disc and UHD Blu-ray but also memory-based package media.

Fig. 2 shows an end-to-end workflow supporting content production and delivery to HDR and SDR CE displays in accordance with a prior art solution specified in ETSI TS 103 433-1 V1 .2.1. This workflow involves a single layer- based distribution solution with associated metadata and illustrates an example of the use of a method for reconstructing an image representative of original image data h from a decoded image data l 2 and a set of parameters SP computed from the image data as defined in the ETSI standard. Basically, this single layer based distribution solution comprises a pre-processing and a post-processing part.

At the pre-processing part, a pre-processing stage 20 decomposes the original image h in an output image f 2 and a set of parameters SP, and a switching step 24 determines if either the original image h or the output image 112 is encoded in the bitstream B (step 23). In step 23, the image l 2 may be encoded with any legacy video codec and the bitstream B is carried throughout an existing legacy distribution network with accompanying associated metadata (set of parameters SP) conveyed on a specific channel or embedded in the bitstream B. In a variant embodiment, the bitstream B with accompanying metadata are stored on a storage medium such a Blu-ray disk or a disk of a Set-Top-Box for example. In a variant, the accompanying associated metadata is carried by another specific channel or store on a separate storage medium.

Preferably, the video is coded with an HEVC codec such as the H.265/HEVC codec ( ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265) or H.264/AVC (“ Advanced video coding for generic audiovisual Services”, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Recommendation ITU-T H.264, Telecommunication Standardization Sector of ITU, January 2012). In the case the information data ID determines that the original image (possibly represented by the components (C1 , U’, V’) or a Y'CbCr 4:2:0 PQ10 or HLG10 video signal) is encoded in step 23, said original image may be encoded with the HEVC Main 10 profile.

In the case the information data ID determines that the output image h 2 is encoded in step 23, the output image I12, which can be represented as a Y'CbCr 4:2:0 gamma transfer characteristics (Standard Dynamic Range) signal may be encoded with any HEVC profile including Main 10 or Main profiles. The information data ID may be also conveyed as associated metadata (step 23). At the post-processing part, a decoded image T 2 is obtained from the bitstream B (step 1 1 ), a set of parameters SP is obtained as explained in Fig. 1 (step 10) and a post-processing stage 12, which is the functional inverse of the pre-processing stage 20, reconstructs an image from the decoded image T 2 and the set of parameters SP.

This single layer based distribution solution may also comprise optional format adapting steps 21 , 22, 25, 26. For example, in step 21 (optional), the format of the original image h may be adapted to a specific format (C1 ,U’,V’) of the input of the pre-processing stage 20, and in step 22 (optional), the format (c, u’, V) of the output image h 2 may also be adapted to a specific output format before encoding. In step 25, the format of the decoded image T 2 may be adapted to a specific format of the input of the post-processing stage 12, and in step 26, the image may be adapted to at least one characteristic of a targeted apparatus (e.g. a Set-Top-Box, a connected TV, HDR/SDR enabled CE device, a Blu-ray disc player) and/or an inverse gamut mapping may be used when the decoded image G 2 and the image or the original image are represented in different color spaces and/or gamut. Said format adaptation steps (21 , 22, 25, 26) may include color space conversion and/or color gamut mapping. Usual format adapting processes may be used such as RGB-to-YUV or YUV-to-RGB conversion, BT.709-to-BT.2020 or BT.2020-to-BT.709, down- sampling or up-sampling chroma components, etc. Note that the well-known YUV color space refers also to the well-known YCbCr in the prior art. ETSI TS 103 433-1 V1.2.1 provides an example of format adapting processes and inverse gamut mapping (Annex D). Said input format adaptation step 21 may also include adapting the bit depth of the original image to specific bit depth such as 10 bits for example, by applying a transfer function on the original image h. For example, a PQ or HLG transfer function may be used (Rec. ITU- R BT.2100-0).

In more details, the pre-processing stage 20 comprises steps 200-202. In step 200, a first component d of the output image h 2 is obtained by mapping a first component C1 of the original image h:

¾ = TM(C 1)

with TM being a mapping function. The mapping function TM may reduce or increase the dynamic range of the luminance of the original image and its inverse may increase or reduce the dynamic range of the luminance of an image.

In step 201 , a second and third component u’, of the output image h 2 are derived by correcting second and third components U’, V’ of the original image according to the first component c x . The correction of the chroma components may be maintained under control by tuning the parameters of the mapping. The color saturation and hue are thus under control. According to an embodiment of step 201 , the second and third components IT and V’ are divided by a scaling function /? 0 (¾) whose value depends on the first component c x . Mathematically speaking, the second and third components u’, v’ are given by:

u'] = 1 ru

v'J jS 0 (¾) ' Lv

Optionally, in step 202, the first component c x may be adjusted to further control the perceived saturation, as follows:

c = c x — max(0, a. u' + b. v')

where a and b are two parameters of the set of parameters SP. This step 202 allows to control the luminance of the output image h 2 to guarantee the perceived color matching between the colors of the output image h 2 and the colors of the original image . The set of parameters SP may comprise parameters relative to the mapping function TM or its inverse ITM, the scaling function /? 0 ( c i) and are determined to control the saturation.

These parameters are associated with dynamic metadata and carried in a bitstream, for example the bitstream B. The parameters a and b may also be carried in a bitstream.

In one embodiment, at the post-processing part, in step 10, a set of parameters SP is obtained. According to an embodiment of step 10, the set of parameters SP are carried by static/dynamic metadata obtained from a specific channel or from a bitstream, including the bitstream B, possibly store on a storage medium. In step 1 1 , a decoded image l 2 is obtained by decoding the bitstream B and the decoded image l 2 is then available for either an SDR or HDR enabled CE display. In more details, the post-processing stage 12 comprises steps 120-122. In optional step 120, the first component c x of the decoded image l 2 may be adjusted as follows:

c 1 =C + max(0, a. u' + b. v ') where a and b are two parameters of the set of parameters SP. In step 121 , the first component C1 of the image b is obtained by inverse-mapping the first component

C t ITM^)

In step 122, the second and third component U’, V’ of the image are derived by inverse correcting the second and third components u’, of the decoded image according to the component c x . According to an embodiment, a second and third components u’ and are multiplied by a scaling function /? 0 (¾) whose value depends on the first component Mathematically speaking, the two first and second components U’, V’ are given by:

According to a first exemplary embodiment of the method of Fig. 2, as illustrated in Fig. 3 at the pre-processing part, the first component C1 of the original image is a linear-light luminance component L obtained from the RGB component of the original image by:

R

C1 = L = A 1 G

3

and the second and third component U’, V’ are derived by applying a pseudo-gamma compression using square-root (close to BT.709 OETF) to the RGB components of the original image : 1024

In step 200, the first component y 1 of the output image \ is obtained by mapping said linear-light luminance component L:

Vi = TM(L)

In step 201 , the second and third component u’, V of the output image 112 are derived by correcting the first and second components U’, V’ according to the first component y x . In step 121 , a linear-light luminance component L of the image b is obtained by inverse-mapping the first component L = lTM(y t )

In step 122, the second and third component U’, V’ of the image are derived by inverse correcting the second and third components u’, of the output image l 2 according to the first component y 1 . According to an embodiment, the second and third components u’ and V are multiplied by a scaling function b 0 (g 1 ) whose value depends on the first component y 1 . Mathematically speaking, the two first and second components U’, V’ are given by:

According to a second exemplary embodiment of the method of Fig. 2, as illustrated in Fig. 4 at the pre-processing part, further comprising an improved display adaptation function, the first component C1 of the original image is a component Y’ obtained from the gamma-compressed RGB components of the original image by:

R'

Y' = A 1 G'

B'

and the second and third component U’, V’ by applying a gamma compression to the RGB components of the original image h : 1024

where g may be a gamma factor, preferably equal to 2.4. Note, the component Y’, which is a non-linear signal, is different of the linear-light luminance component L. In step 200, the first component y of the output image h 2 is obtained by mapping said component Y’:

In step 121 , a reconstructed component Y' is obtained by inverse- mapping the first component y'

U' = ITM(g )

where ITM is the inverse of the mapping function TM. The values of the reconstructed component Y' belong thus to the dynamic range of the values of the component Y’. In step 201 , the second and third component u’, Y of the output image 112 are derived by correcting the first and second components U’, V’ according to the first component y and the reconstructed component Y'. This step 201 allows to control the colors of the output image I12 and guarantees their matching to the colors of the original image . The correction of the chroma components may be maintain under control by tuning the parameters of the mapping (inverse mapping). The color saturation and hue are thus under control. Such a control is not possible, usually, when a non-parametric perceptual transfer function is used. According to an embodiment of step 201 , the second and third components u’ and Y are divided by a scaling function whose value depends on the ratio of the reconstructed component Y' over the component y'

with W is constant value depending on the color primaries of the original image h (equals to 1 .3 for BT.2020 for example).

At the post-processing part, in step 121 , a component Y’ of the image I 3 is obtained by inverse-mapping the first component y \

r = ITM(y )

In step 122, the second and third component U’, V’ of the image I 3 are derived by inverse correcting the second and third components u’, Y of the decoded image l 2 according to the first component y and the component Y 1 . According to an embodiment of step 122, a second and third components u’ and Y are multiplied by the scaling function /? 0 (y'i) . Mathematically speaking, the two first and second components U’, V’ are given by:

[ ] -* <*> £]

The mapping function TM of Fig 2, 3 and 4 is based on a perceptual transfer function, whose goal is to convert a component of an original image h into a component of an output image I12, thus reducing (or increasing) the dynamic range of the values of their luminance. The values of a component of an output image I12 belong thus to a lower (or greater) dynamic range than the values of the component of an original image . Said perceptual transfer function uses a limited set of control parameters.

Both embodiments of Fig 3 and Fig 4 use the encoding optimization function 23A detailed in the description of Fig 6 here below.

Fig. 5a shows an illustration of a perceptual transfer function which may be used for mapping luminance components but a similar perceptual transfer function for mapping luma components may be used. The mapping is controlled by a mastering display peak luminance parameter (equal to 5000cd/m 2 in Fig. 5a). To better control the black and white levels, a signal stretching between content-dependent black and white levels is applied. Then the converted signal is mapped using a piece-wise curve constructed out of three parts, as illustrated in Fig. 5b. The lower and upper sections are linear, the steepness being determined by the shadowGain and highlightGain parameters respectively. The mid-section is a parabola providing a smooth bridge between the two linear sections. The width of the cross-over is determined by the midToneWidthAdjFactor parameter. All the parameters controlling the mapping may be conveyed as metadata for example by using a SEI message as defined in JCTVC-W0133 to carry the SMPTE ST 2094-20 metadata.

Fig. 5c shows an example of the inverse of the perceptual transfer function TM (Fig. 5a) to illustrate how a perceptual optimized video signal may be converted back to the linear light domain based on a targeted legacy display maximum luminance, for example 100 cd/m 2 . In step 10 (Fig. 1), the set of parameters SP is obtained to reconstruct an image from a decoded image/^. These parameters may be obtained from metadata obtained from a bitstream, for example the bitstream B. ETSI TS 103 433-1 V1 .2.1 clause 6 provides an example of syntax of said metadata. The syntax of this standard is described for reconstructing an HDR video from an SDR video but this syntax may extend to the reconstruction of any image from any decoded image T 2. The post- processing (step 12) operates on an inverse mapping function ITM and a scaling function /? 0 (· ) that are derived from dynamic metadata because they depend on the first component ci. According to ETSI TS 103 433-1 V1.2.1 , said dynamic metadata may be conveyed according to either a so-called parameter-based mode or a table-based mode. The parameter-based mode may be of interest for distribution workflows which primary goal is to provide direct SDR backward compatible services with very low additional payload or bandwidth usage for carrying the dynamic metadata. The table-based mode may be of interest for workflows equipped with low-end terminals or when a higher level of adaptation is required for representing properly both HDR and SDR streams. In the parameter-based mode, dynamic metadata to be conveyed are luminance mapping parameters representative of the inverse function ITM, i.e. tmlnputSignalS/ac/cLeve/O/feef; tmlnputSignalWhiteLevelOffset; shadowGairr, highlightGairr, midToneWidthAdjFactor; tmOutputFineTuning parameters;

Moreover, other dynamic metadata to be conveyed are color correction parameters ( saturationGainNumVal , saturationGainX(i) and saturationGainY(i)) used to define the function /? 0 (. ) as described in ETSI TS 103 433-1 V1.2.1 clauses 6.3.5 and 6.3.6. The parameters a and b may be respectively carried/hidden in the saturationGain function parameters as explained above. These dynamic metadata may be conveyed using the HEVC SL-HDR Information (SL-HDRI) user data registered SEI message whose syntax is based on the SMPTE ST 2094-20 and ST 2094-30 specifications (ETSI TS 103 433-1 V1.2.1 Annex A.2). Typical dynamic metadata payload is about 25 bytes per scene. In step 101 , the SL-HDRI SEI message is parsed the SEI message to obtain mapping parameters and color-correction parameters. In step 12, the inverse mapping function ITM (so-called lutMapY) is reconstructed (derived) from the obtained mapping parameters (see ETSI TS 103 433-1 V1.2.1 clause 7.2.3.1 for more details). In step 12, the scaling function /? 0 (. ) (so-called lutCC) is also reconstructed (derived) from the obtained color-correction parameters (see ETSI TS 103 433-1 V1.2.1 clause 7.2.3.2 for more details). In the table-based mode, dynamic data to be conveyed are pivots points of a piece-wise linear curve representative of the inverse mapping function ITM. For example, the dynamic metadata are luminanceMappinaNum Val that indicates the number of the pivot points, luminanceMappingX that indicates the x values of the pivot points, and luminanceMappingY that indicates the y values of the pivot points (see ETSI TS 103 433-1 V1 .2.1 clauses 6.2.7 and 6.3.7 for more details). Moreover, other dynamic metadata to be conveyed may be pivots points of a piece-wise linear curve representative of the scaling function /? 0 (. ). For example, the dynamic metadata are cplprCprrectipnNum Val that indicates the number of pivot points, cplprCprrectipnX that indicates the x values of pivot points, and cplprCprrectipnY that indicates the y values of the pivot points (see ETSI TS 103 433-1 V1.2.1 clauses 6.2.8 and 6.3.8 for more details). These dynamic metadata may be conveyed using the HEVC SL-HDRI SEI message.

In step 102, the SL-HDRI SEI message is parsed to obtain the pivot points of a piece-wise linear curve representative of the inverse mapping function ITM and the pivot points of a piece-wise linear curve representative of the scaling function /? 0 (. ), and the chroma to luma injection parameters a and b.

In step 12, the inverse mapping function ITM is derived from those of pivot points relative to a piece-wise linear curve representative of the inverse mapping function ITM (see ETSI TS 103 433-1 V1.2.1 clause 7.2.3.3 for more details). In step 12, the scaling function /? 0 (. ), is also derived from those of said pivot points relative to a piece-wise linear curve representative of the scaling function /? 0 (. ), (see ETSI TS 103 433-1 V1.2.1 clause 7.2.3.4 for more details). Note that static metadata also used by the post-processing stage may be conveyed by SEI message. For example, the selection of either the parameter-based mode or table-based mode may be carried by the payloadMode information as specified by ETSI TS 103 433-1 V1.2.1 (clause A.2.2). Static metadata such as, for example, the color primaries or the maximum display mastering display luminance are conveyed by a Mastering Display Colour Volume (MDCV) SEI message as defined in AVC, HEVC.

According to an embodiment of step 103, the information data ID is explicitly signaled by a syntax element in a bitstream and thus obtained by parsing the bitstream. For example, said syntax element is a part of a SEI message. According to an embodiment, said information data ID identifies what is the processing applied to the original image h to process the set of parameters SP. According to this embodiment, the information data ID may then be used to deduce how to use the parameters to reconstruct the image (step 12). For example, when equal to 1 , the information data ID indicates that the set of parameters SP has been obtained by applying the pre-processing stage (step 20) to an original HDR image \ and that the decoded image l 2 is a SDR image. When equal to 2, the information data ID indicates that the parameters have been obtained by applying the pre-processing stage (step 20) to an HDR1 Obits image (input of step 20), that the decoded image G 2 is a HDR10 image, and the mapping function TM is a PQ transfer function. When equal to 3, the information data ID indicates that the parameters have been obtained by applying the pre-processing stage (step 20) to a HDR10 image (input of step 20), that the decoded image T 2 is an HLG10 image, and the mapping function TM is a HLG transfer function to the original image h.

According to an embodiment of step 103, the information data ID is implicitly signaled. For example, the syntax element transfer-characteristics present in the VUI of HEVC (annex E) or AVC (annex E) usually identifies a transfer function (mapping function TM) to be used. Because different single layer distribution solutions use different transfer function (PQ, HLG, ...), the syntax element transfer-characteristics may be used to identify implicitly the recovery mode to be used. The information data ID may also be implicitly signaled by a service defined at a higher transport or system layer. In accordance with another example, a peak luminance value and the color space of the image may be obtained by parsing the MDCV SEI message carried by the bitstream, and the information data ID may be deduced from specific combinations of peak luminance values and color spaces (color primaries).

On Fig. 1 -4, the modules are functional units, which may or not be in relation with distinguishable physical units. For example, these modules or some of them may be brought together in a unique component or circuit or contribute to functionalities of a software. A contrario, some modules may potentially be composed of separate physical entities. The apparatus which are compatible with the present principles are implemented using either pure hardware, for example using dedicated hardware such ASIC or FPGA orVLSI, respectively « Application Specific Integrated Circuit », « Field-Programmable Gate Array », « Very Large Scale Integration », or from several integrated electronic components embedded in a device or from a blend of hardware and software components.

Fig. 6 shows an exemplary embodiment of the encoding optimization function 23A in accordance with an embodiment of the present principles. The encoding optimization function 23A receives from image l 2 the luma information 61. The luma values are computed by the luma computing function 62 to determine an average value AVL of the luminance of a selected area of the image l 2 , for example a block of 64x64 pixels, 32x32 pixels or 16x16 pixels. This average value AVL 63 is combined with the set of parameters SP 65 by a mapping function 64 to determine an offset 66 for correcting the quantization parameter. This offset 66, conventionally named“dQP” or deltaQP, is added to the quantization parameter (QP) of the current picture or current picture structure (e.g. block) during encoding process. The resulting parameter (QP+dQP) defines the quantization step to be used by the encoder 23 when encoding the selected area of the image l 2 , as conventionally known by the person skilled in the art. Thus, correcting the quantization step with the offset 66 provides a local adaptation of the quantization by increasing or decreasing the quantization step and thus adding or removing details by assigning more or less bits to a block to be encoded. This results in improving the efficiency of the compression while preserving the fidelity of the original image. The encoder 23 is a conventional encoder providing such quantization adaptation feature. HEVC or AVS2 encoders are examples of encoders 23. The determination process may use a look-up table (LUT) or a function. According to an embodiment of the mapping function 64, the offset 66 is determined according to a value derived from the tone mapping function (as illustrated in fig 5b) as illustrated in Table 1 :

Table 1 - offset determination against AVL and SGC parameters wherein x MTA represents the input coordinate of the intersection point between the shadow gain control line and the highlight gain control line (as shown in Fig 5.b), SGC is the ShadowGainControl parameter computed in previous steps and present in the set of parameters SP, AVL is the average luma or luminance value of a selected area of the image, for example a block of pixels. The result of this mapping corresponds to an offset of the quantization parameter (QP) - associated to a portion of the picture - to a higher value (more destructive for texture) or lower value (more preservation of texture).

In dark areas of the picture, one is interested in parameter SGC.

Table 1 shows that for low values of the parameters SGC, the quantization step is offset by a negative dQP implying a lower QP which preserves more details of texture by assigning more bits to the pixels which values fall in this portion of the tone mapping curve controlled by SGC. Inversely, for higher values of the parameter SGC, the quantization step is coarser as QP is offset by a positive dQP resulting in a higher QP more destructive for texture details.

According to an embodiment of the mapping function 64, the offset 66 for correcting the quantization parameter is determined according to predetermined ranges of values, as illustrated in Table 2:

Table 2

In most real-world cases, the Highlight Gain Control (HGC) parameter of the set of parameters SP has a fixed value generally set to 2. For example, in the Table 1 , the last line corresponds to the upper part of the Tone mapping curve where AVL > x MTA resulting in a null value for the offset 66. According to an embodiment of the mapping function 64, the Highlight Gain Control (HGC) parameter of the set of parameters SP has a dynamic value, generally varying in a range of 1.6 to 2.0. In such embodiment, the offset 66 determined according to a value derived from the tone mapping function (as illustrated in fig 5b) as illustrated in Table 3:

In the manner of SGC above, bright pixels are responsive to HGC (highlight gain control) parameter. The result of this mapping is that for low values of HGC, the quantization step is corrected by a negative offset 66 for which the associated picture texture will be more preserved (assigning more bits) and for higher values of HGC the quantization step is not offset so that details are left unchanged. The quantization step in this later case, might be corrected by a positive offset 66 resulting in a coarser quantization step and a more aggressive quantization of the texture.

According to an embodiment of the mapping function 64, the offset 66 determined according to a predetermined range of values as illustrated in

Table 4:

The embodiments of table 1 or 2 and of table 3 or 4 may be combined together to adapt the offset 66 of the blocks whose pixels values have a low average luminance value (dark area) according to the Shadow Gain Control parameter and to adapt the offset 66 of the blocks whose pixels values have a high average luminance value (bright area) according to the Highlight Gain Control parameter, thus improving the encoded picture fidelity over the dynamic range.

In an embodiment, the encoding optimization function 23A is integrated into the encoding function 23, although both functions are described herein as separate functions.

Fig. 7 represents an exemplary architecture of a device 70 which may be configured to implement a method described in relation with Fig.1 to Fig.6. Device 70 comprises following elements that are linked together by a data and address bus 71 : a microprocessor 72 (or CPU), which is, for example, a DSP (or Digital Signal Processor), a ROM (or Read Only Memory) 73, a RAM (or Random Access Memory) 74, an I/O interface 75 for reception of data to transmit, from an application and optionally a battery 76. In accordance with an example, the battery 76 is external to the device. In each of mentioned memory, the word « register » used in the specification can correspond to area of small capacity (some bits) or to very large area (e.g. a whole program or large amount of received or decoded data). The ROM 73 comprises at least a program and parameters. The ROM 73 may store algorithms and instructions to perform techniques in accordance with present principles. When switched on, the CPU 72 uploads the program in the RAM 74 and executes the corresponding instructions. RAM 74 comprises, in a register, the program executed by the CPU 72 and uploaded after switch on of the device 70, input data in a register, intermediate data in different states of the method in a register, and other variables used for the execution of the method in a register.

The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

In accordance with an example, the input video or an original image of an input video is obtained from a source. For example, the source belongs to a set comprising a local memory (73 or 74), e.g. a video memory or a RAM (or Random Access Memory), a flash memory, a ROM (or Read Only Memory), a hard disk, a storage interface (75), e.g. an interface with a mass storage, a RAM, a flash memory, a ROM, an optical disc or a magnetic support, a communication interface (75), e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a I EEE 802.1 1 interface or a Bluetooth® interface); and an image capturing circuit (e.g. a sensor such as, for example, a CCD (or Charge-Coupled Device) or CMOS (or Complementary Metal-Oxide- Semiconductor)).

In accordance with examples, the bitstreams carrying on the metadata are sent to a destination. As an example, one of these bitstream or both are stored in a local or remote memory, e.g. a video memory or a RAM (74), a hard disk. In a variant, at least one of the bitstreams is sent to a storage interface (75), e.g. an interface with a mass storage, a flash memory, ROM, an optical disc or a magnetic support and/or transmitted over a communication interface (75), e.g. an interface to a point to point link, a communication bus, a point to multipoint link or a broadcast network.

In accordance with other examples, the bitstream carrying on the metadata is obtained from a source. Exemplarily, the bitstream is read from a local memory, e.g. a video memory (74), a RAM (74), a ROM (73), a flash memory (73) or a hard disk (73). In a variant, the bitstream is received from a storage interface (75), e.g. an interface with a mass storage, a RAM, a ROM, a flash memory, an optical disc or a magnetic support and/or received from a communication interface (75), e.g. an interface to a point to point link, a bus, a point to multipoint link or a broadcast network. In accordance with examples, device 70 being configured to implement the method as described above, belongs to a set comprising a mobile device, a communication device, a game device, a tablet (or tablet computer), a laptop, a still image camera, a video camera, an encoding/decoding chip, a television, a set-top-box, a display, a still image server and a video server (e.g. a broadcast server, a video-on-demand server or a web server).

Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set- top box, a laptop, a personal computer, a cell phone, a PDA, and any other device for processing an image or a video or other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.

Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) may be stored on a computer readable storage medium. A computer readable storage medium can take the form of a computer readable program product embodied in one or more computer readable medium(s) and having computer readable program code embodied thereon that is executable by a computer. A computer readable storage medium as used herein is considered a non-transitory storage medium given the inherent capability to store the information therein as well as the inherent capability to provide retrieval of the information therefrom. A computer readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. It is to be appreciated that the following, while providing more specific examples of computer readable storage mediums to which the present principles can be applied, is merely an illustrative and not exhaustive listing as is readily appreciated by one of ordinary skill in the art: a portable computer diskette; a hard disk; a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory); a portable compact disc read-only memory (CD-ROM); an optical storage device; a magnetic storage device; or any suitable combination of the foregoing.

The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.

As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the syntax of a described example of the present principles, or to carry as data the actual syntax-values written by a described example of the present principles. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.

A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.