The invention concerns a method and a device to encode video data, a device for decoding video data and a stream of digital data.
More precisely the invention is related to the encoding and decoding of color information in a scalable manner.
In recent years, many manufacturers are aiming at handling color information surpassing 8-bit at every aspect of the digital imaging pipeline, including digital capturing devices, pixel display devices, and digital interface standards. The state-of-the-art video coding technologies are also pushing ahead high bit depth coding. JVT standardized the high bit depth encoding, which is defined in H.264 Fidelity Range Extensions (FRExt) and currently supports the bit-depth up to 14 bits per sample (14-bit).
However, none of the existing high bit encoding techniques supports color bit depth scalable solution. Color bit depth scalability is potentially useful considering the fact that, in a considerably long period of time in the future, conventional eight bit depth and high bit depth digital imaging systems will simultaneously co-exist in consumer marketplaces. For instance, the following application issue becomes common when there are display devices that support different bit depths. Assume that two clients that have an 8-bit display device and a 12-bit display device respectively request for a raw video. To best match the performance of the terminal display, two versions of 8-bit and 12-bit are provided accordingly. Without scalable solution, it is necessary to encode the two versions separately to generate two bit streams. For the content delivery, one has to simulcast in a network or a communication channel, or put the 2 bit streams in one disk. Both ways are of low efficiency regarding both the compression ratio and the operational complexity. Another possible solution is to encode only the 12-bit version by H.264 FRExt profiles. At the client end, an 8-bit video can be extracted from the decoded 12-bit video. However, there are two drawbacks of this solution: first, both clients must have the H.264 high profile decoder to decode and display the video regardless whether 8-bit or 12-bit video is wanted; secondly, if the relationship between the 8-bit and 12-bit video is rather than truncation of the four least bits from the 12-bit video, extracting an 8-bit video from the decoded 12-bit video may cause video quality degradation, known as banding effects. Color bit depth scalable coding arrives at a balance among the coding efficiency, operation complexity and the flexibility.
To overcome at least one of these drawbacks, the invention proposes a device for encoding video data. According to the invention, the device comprises
In a preferred embodiment, said transformation data are related to at least one mathematical model.
Preferentially, said encoding is done in accordance with JVT-U201 standard.
In an advantageous embodiment, transformation data are encapsulated within a Supplemental Enhancement Information (SEI) message.
In a preferred embodiment, said message is inserted regularly or irregularly in the data stream, said transformation data comprised in said message being used for the prediction of the images following said inserted message until a new message is inserted.
Preferentially, said one layer corresponds to the low level layer, said scalability model layers corresponding each to the bit depth used for encoding said color information.
Preferentially, the mathematical model is chosen between:
The invention concerns also a system for decoding a bit stream of video data; According to this aspect of the invention, the system comprises
In a preferred embodiment the system comprises means to decode from said bit_stream at least one Supplemental Enhancement Information message related to color_bit_depth encoding of the data_stream.
According to another aspect, the invention concerns also a stream of digital data. According to this aspect of the invention, the stream of digital data comprises
Other characteristics and advantages of the invention will appear through the description of a non-limiting embodiment of the invention, which will be illustrated, with the help of the enclosed drawing.
a, 2b and 2c illustrate some mathematical models used in a two layers color bit-depth scalable model,
In the preferred embodiment described in reference to
One aim of the invention is to be able to encode one video data intended to be displayed on several high-end devices which supported color bit depth is different from one device to the other, without sending a plurality of video data.
In this preferred embodiment, a new Supplemental Enhancement Information (SEI) message is defined for sending color scalability information.
This message comprises transformation data enabling to obtain any level of the scalability model from the encoded level. To this end, the SEI message comprises one or a plurality of mathematical models describing how to predict one layer from another layer. Typically, the low layer being the layer which needs the less information to be coded, therefore which requires the less bandwidth, the low level data are encoded and the SEI message comprises the mathematical model to get the upper layers from the low level layers.
The mathematical models are described in reference to
a represents a piecewise linear curve, which is the simplest model that can be envisaged.
b represents another type of piecewise linear curve, comprising three segments of different gradient
c represents another mathematical model based on a polynomial function between the low bit depth data and the high bit depth data.
Next table gives an embodiment of the SEI message used for encapsulating the scalable color information mathematical models.
bit_depth_pred_id specifies the associated high bit depth layer that this SEI message applies to. The value of bit_depth_pred_id is derived from the identifier of the associated high bit depth layer. The associated low bit depth layer may be from the slice_header_in_scalable_extension( ) of the associated high bit depth layer.
low_bit_depth specifies the bit depth of the low bit depth image from which a predicted version of the high bit depth image is generated.
high_bit_depth specifies the bit depth of the high bit depth image.
case_id specifies the mathematical model that is utilized to predict the high bit depth image from the low bit depth image.
The next defined field corresponds to a look-up table correspondence between the low bit depth and the high bit depth, used only when case_id is equal to “0”.
high_mapped_value[i] specifies the value within the high bit depth data range that the value i within the low bit depth data range is mapped to. The number of bits that are used for representing the high_mapped_value is high_bit_depth.
The next defined fields correspond to a piecewise linear function between the low bit depth and the high bit depth, used only when case_id is equal to “1”.
num_joints specifies the number of joints in the piecewise linear curve.
low_joint_value[i] specifies the value in the low bit depth data corresponding to the i-th joint. The number of bits that are used for representing the low_joint_value is low_bit_depth.
high_joint_value[i] specifies the value in the high bit depth data corresponding to the i-th joint. The number of bits that are used for representing the high_joint_value is high_bit_depth.
The next defined fields correspond to a polynomial function between the low bit depth and the high bit depth, used only when case_id is equal to “2”.
num_items specifies the number of the items in the polynomial function.
item_power[i] specifies the power of the i-th item in the polynomial function.
item_coefficient[i] specifies the numerator of the coefficient of the i-th item in the polynomial function.
item_coefficient_base[i] specifies the base that is used to derive the coefficient of the i-th item in the polynomial function. The coefficient of the i-th item in the polynomial function is obtained by item_coefficient[i]/2item
The power and the coefficient of each item of this polynomial are transmitted in a descending order of the power.
This SEI message is inserted in the data stream by the encoder. One access unit may contain multiple bit depth prediction SEI messages that apply to different bit depth layers. The semantics of one bit depth prediction SEI message are valid until the presence of next bit depth prediction SEI message of the same bit_depth_pred_id.
One SEI message is relative to the NAL (standing for Network Adaptation Layer) units following this message, until a new SEI message is detected which will concern the NALs coming after. Therefore, it is possible to specify different bit-depth predictions for different NAL units as the bit_depth prediction is defined in the SEI message.
In the defined H.264/AVC scalable extension (SVC) standard, each layer is identified by a set of identifiers. Also, for each layer, its base picture is also identified by an identifier. Hence, at the decoder side, the decoded slice can correctly find its corresponding bit depth prediction SEI message according to the syntax element bit_depth_pred_id.
Back to
The bit-depth encoder provides a scalable encoded bitstream. Once received for being decoded and used, the scalable encoded bitstream is received on a bit stream extractor 2. The bit stream extractor 2 is in charge of separating the low layer bit stream from the scalable bit-stream. The extracted low layer bit stream is then decoded by a compliant H.264 decoder 4 in order to obtain the 8-bit colour encoded bit stream.
The n-bit depth color encoded bit-stream is sent to a bit depth scalable decoder 3.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2006/003564 | 12/25/2006 | WO | 00 | 1/24/2011 |