Color transform for RGBG subpixel format

10861405 ยท 2020-12-08

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for directly converting Y.sub.0Y.sub.1CoCg or Y.sub.0Y.sub.1C.sub.bC.sub.r image data to RGBG image data is presented, along with a display device that includes a decoder configured to perform such conversion. The conversions may be performed as follows: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg ) and ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Co Cg ) Wherein is a scaling factor.

Claims

1. A method of displaying an RGBG-formatted image data, comprising: receiving, from a display driver, input image data in Y.sub.0Y.sub.1CoCg format; decoding the received input image data by applying the inverse-color transform as follows to generate a reconstructed image: determining a R value using Y.sub.0, Y.sub.1, Co, and Cg; determining a G.sub.0 value using Y.sub.0, Y.sub.1, and no more than one of Cg and Co; determining a B value using Y.sub.0, Y.sub.1, Co, and Cg; and determining a G.sub.1 value using Y.sub.0, Y.sub.1, and no more than one of Cg and Co; and providing the reconstructed image to a display device.

2. The method of claim 1, wherein the decoding is done as follows: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg ) wherein is a scaling factor.

3. A method of displaying an RGBG-formatted image data, comprising: receiving, from a display driver, input image data in Y.sub.0Y.sub.1CbCr format; decoding the received input image data by applying the inverse-color transform as follows to generate a reconstructed image: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Cb Cr ) wherein is a scaling factor; and providing the reconstructed image to a display device.

4. A method for color transform of an RGBG format image data, comprising: receiving the RGBG-format image data at a display driver, the RGBG-format image data including a red value (R), a blue value (B), a first green value (G.sub.0), and a second green value (G.sub.1); generating a double-luma format image data by: determining a first luma value based on R, B, and half of one of G.sub.0 or G.sub.1; determining a second luma value based on R, B, and half of the other one of G.sub.0 or G.sub.1; determining a first chroma value; and determining a second chroma value; and forwarding the double-luma format image data to be reconstructed and displayed on a device having a RGBG pixel layout.

5. The method of claim 4, wherein the first chroma value is a chroma orange value, further comprising determining the chroma orange value based on R and B but not G.sub.0 or G.sub.1.

6. The method of claim 4, wherein the second chroma value is a chroma green value, further comprising determining the chroma green value based on R, B, G.sub.0, and G.sub.1.

7. The method of claim 4, wherein the determining of the first luma value Y.sub.0, the second luma value Y.sub.1, the first chroma value Co, and the second chroma value Cg are done according to the following: ( Y 0 Y 1 Co Cg ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 1 2 0 - 1 2 0 - 1 4 1 4 - 1 4 1 4 ) ( R G 0 B G 1 ) wherein is a scaling factor.

8. The method of claim 4, wherein the first luma value, the second luma value, the first chroma value, and the second chroma value are applied to one basic unit.

9. The method of claim 4, further comprising conducting an inverse transform as follows: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg ) wherein is a scaling factor.

10. The method of claim 4, wherein the first chroma value is a chroma blue value, further comprising determining the chroma blue value based on G.sub.0, B, and G.sub.1 but not R.

11. The method of claim 4, wherein the second chroma value is a chroma red value, further comprising determining the chroma red value based on G.sub.0, and G.sub.1 but not B.

12. The method of claim 4, wherein the determining of the first luma value Y.sub.0, the second luma value Y.sub.1, the first chroma value Cb, and the second chroma value Cr are done according to the following: ( Y 0 Y 1 Cb Cr ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 0 - 1 2 1 - 1 2 1 - 1 2 0 - 1 2 ) ( R G 0 B G 1 ) wherein is a constant.

13. The method of claim 4, further comprising achieving an inverse transform as follows: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Cb Cr ) .

14. The method of claim 4, wherein: the first luma value is equal to R/4+G.sub.0/2+B/4+(G.sub.1*0) ; and the second luma value is equal to R/4+(G.sub.0*0)+B/4+G.sub.1/2 .

15. A display device comprising: a memory configured to receive a Y.sub.0Y.sub.1CoCg input image data from a display driver and temporarily store the Y.sub.0Y.sub.1CoCg formatted image data that is subjected to a color transform; and a decoder that converts the Y.sub.0Y.sub.1CoCg formatted image data to a reconstructed RG.sub.0BG.sub.1 formatted image data by: determining an R value using Y.sub.0, Y.sub.1, Co, and Cg; determining a G.sub.0 value using Y.sub.0, Y.sub.1, and no more than one of Cg and Co; determining a B value using Y.sub.0, Y.sub.1, Co, and Cg; and determining a G.sub.1 value using Y.sub.0, Y.sub.1, and no more than one of Cg and Co; and a display panel displaying the reconstructed RG.sub.0BG.sub.1 formatted image data.

16. The display device of claim 15, wherein the decoder converts the Y.sub.0Y.sub.1CoCg formatted image data to RG.sub.0BG.sub.1 formatted image data as follows: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg ) wherein is a constant.

17. The display device of claim 15, wherein the Y.sub.0Y.sub.1C.sub.oC.sub.g formatted image data is encoded as follows: ( Y 0 Y 1 Co Cg ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 1 2 0 - 1 2 0 - 1 4 1 4 - 1 4 1 4 ) ( R G 0 B G 1 ) .

18. A display device comprising: a memory configured to receive a Y.sub.0Y.sub.1CbCr input image data from a display driver and temporarily store a Y.sub.0Y.sub.1CbCr formatted image data that was subjected to a color transform; and a decoder that converts the Y.sub.0Y.sub.1CbCr formatted image data to RG.sub.0BG.sub.1 formatted image data as follows to generate a reconstructed image: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Cb Cr ) wherein is a constant; and a display panel displaying the reconstructed image.

19. The display device of claim 18, wherein the Y.sub.0Y.sub.1CbCr formatted image data is encoded as follows: ( Y 0 Y 1 Cb Cr ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 0 - 1 2 1 - 1 2 1 - 1 2 0 - 1 2 ) ( R G 0 B G 1 ) .

20. A non-transitory computer-readable storage medium comprising instructions that, when executed, receive image data in Y.sub.0Y.sub.1CoCg format from a display driver; convert the image data in Y.sub.0Y.sub.1CoCg format to image data in RG.sub.0BG.sub.1 format as follows to generate a reconstructed image: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg ) wherein is a constant; and cause the reconstructed image to be displayed on a display panel.

21. A non-transitory computer-readable storage medium comprising instructions that, when executed, receive image data in Y.sub.0Y.sub.1CbCr format from a display driver; convert the image data in Y.sub.0Y.sub.1CbCr format to image data in RG.sub.0BG.sub.1 format as follows to generate a reconstructed image: ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Cb Cr ) wherein is a constant; and cause the reconstructed image to be displayed on a display panel.

Description

DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 depicts a conventional RGB layout that includes the same number of R, G, and B sub-pixels.

(2) FIG. 2 depicts a conventional RGBG layout that includes twice as many G sub-pixels than R sub-pixels or B sub-pixels.

(3) FIG. 3A depicts two pixels in a conventional RGB layout.

(4) FIG. 3B depicts two pixels in a conventional RGBG layout.

(5) FIG. 4A and FIG. 4B depict different configurations for RGBG layouts.

(6) FIG. 5 depicts an example of a compression scheme with a color transform.

(7) FIG. 6 depicts an example of a basic unit in an RGBG format.

(8) FIGS. 7A and 7B depict other examples of RGBG format to which the above color transform may be applied.

(9) FIG. 8 depicts a block diagram of an example of a conventional display device.

DETAILED DESCRIPTION

(10) A method for a color transform applicable to RGBG format is presented. More specifically, a double-luma Y.sub.0Y.sub.1CoCg color transform and Y.sub.0Y.sub.1CbCr for RGBG format is presented. The inventive concept encompasses a direct transform applicable to RGBG, which is distinguishable from a two-step transform that involves first converting RGBG to an intermediate format such as RGB format and then applying a color transform such as YCoCg or YCbCr. In a two-step transform approach, RGBG to RGB conversion may be executed by setting unknown sub-pixels to zero or calculating based on interpolation. Conversion from RGBG to RGB increases the number of pixels by , and adversely impacts compression efficiency as there are more pixels to compress in RGB than in RGBG. The two-step transform approach also involves unnecessary computation that may be costly, and has latency or delay due to the intermediate RGBG to RGB format conversion. The direct color transform for RGBG that is disclosed herein overcomes these disadvantages associated with the two-step transform approach, thereby fundamentally changing the RGBG color transform process and dramatically improving the efficiency of the color transform. Furthermore, the direct color transform for RGBG that is disclosed herein is applicable to different formats/layouts of RGBG as long as a basic unit can be formed.

(11) The technique disclosed herein does not require an intermediate RGBG to RGB conversion. The direct Y.sub.0Y.sub.1CoCg color transform that is disclosed herein is easier to implement than the conventional transform because there are no floating-point calculations. As there are no division operations, the transform technique disclosed herein is hardware friendly.

(12) FIG. 5 depicts an example of a compression scheme with a color transform that may be executed by a display driver. As used herein, color transform or color space conversion refers to the transformation of an image from one color space to another. In the disclosure, color transform is described in the context of RGBG.fwdarw.Y.sub.0Y.sub.1CoCg conversion or RGBG.fwdarw.Y.sub.0Y.sub.1CbCr conversion as examples. In a format such as RGB or RGBG, there is a correlation between the channels R, G, and B such that there is interdependence between channels. The color transform on RGBG is applied prior to compression because compressing the RGBG itself is not optimal due to the existing correlation, and furthermore to prevent any complication of decoding process resulting from application of predictive coding where one component is predicted from another. The color transform process de-correlates the dependencies that exist between R, G, and B channels. After taking color transform, compression may be applied independently for each channel, which might simplify the decoding process.

(13) In one embodiment, the Decoder and the Inverse color transform blocks are incorporated into a display device, which receives a color-transformed encoded input image data. The input image data may be large. If the display device is high-resolution and it is combined with high bit depth (e.g., a 4K or 8K display panel combined with bit depth of 10 or 12 bits per component), the image data would have to be fed at a high bit-rate that may be difficult to achieve due to bandwidth limitations. In such cases, compression of the data facilitates the data feed to happen at a reduced rate that further translates into minimum power consumption. The display driver configuration that is suitable for implementing the inventive concept is well known.

(14) The color transform is performed before compression such that each component in Y.sub.0Y.sub.1CoCg, Y.sub.0Y.sub.1CbCr, YCoCg, or YCbCr is compressed independently. In the example shown in FIG. 5, color transform is performed on the RGBG input image such that the correlated components (e.g., R, G, and B) are mapped onto another space for efficient compression (via Color Transform). The color-transformed data is subjected to compression and encoded. The compressed representation of the input image data reaches a display device, and the decoding is typically performed at or near the display device that receives the encoded data. The decoded data is then inverse-color transformed back to RGBG/RGB format to generate a reconstructed image for the display device.

(15) For an RGB layout, popular color transforms include YCbCr and YCoCg, wherein Y=luma,

(16) Cb=chroma blue,

(17) Cr=chroma red,

(18) Co=chroma orange, and

(19) Cg=chroma green.

(20) YCoCg color transform, shown below, is generally computationally simpler than YCbCr transform:

(21) ( Y Cg Co ) = ( 1 4 1 2 1 4 - 1 4 1 2 - 1 4 1 2 0 - 1 2 ) ( R G B ) Forward transform ( R G B ) = ( 1 - 1 1 1 1 0 1 - 1 - 1 ) ( Y Cg Co ) Inverse transform

(22) In accordance with the inventive concept, a Y.sub.0Y.sub.1CoCg color transform is proposed to be applied directly to each basic unit of the RGBG format, i.e. without a conversion to the RGB format. The Y.sub.0Y.sub.1CoCg color transform is applied to each basic unit. A basic unit for an RGBG format contains two G, one R, and one B sub-pixels. FIG. 6 depicts an example of a basic unit in an RGBG format. Two Y luma values are calculated as there are two green sub-pixels in one basic unit.

(23) The forward transform for RGBG is as follows:

(24) ( Y 0 Y 1 Co Cg ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 1 2 0 - 1 2 0 - 1 4 1 4 - 1 4 1 4 ) ( R G 0 B G 1 )
wherein is a scaling factor or a constant, such as 1 or 2. As shown above, the first luma value Y.sub.0 is dependent on R, G.sub.0, and B sub-pixels. The second luma value Y.sub.1 is dependent on R, B, and G.sub.1. Chroma orange Co depends on R and B, and chroma green Cg depends on R, G.sub.0, B, and G.sub.1.

(25) The color transform may be mathematically lossless to avoid artifacts introduced in the reconstructed image due to color transformation. This is a lossless process, and the inverse transform is as follows:

(26) ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 1 - 1 3 2 - 1 2 0 1 1 2 1 2 - 1 - 1 - 1 2 3 2 0 1 ) ( Y 0 Y 1 Co Cg )

(27) FIGS. 7A and 7B depict other examples of RGBG format to which the above color transform may be applied. As shown above, the image data (RGB in this example, but could be in RGBG or any other color space) is subjected to the color transform before getting encoded (e.g., compressed). After the decoding (e.g., de-compression) is done, the inverse color transform is applied to obtain the reconstructed image.

(28) The double-luma Y.sub.0Y.sub.1CoCg color transform in accordance with the inventive concept distinguishes itself from YCoCg compression. For compressing YCoCg data, the general practice is to put more compression effort into chroma (Co, Cg) than to luma (Y), as the human vision is more sensitive to the luma than chroma On a similar note, for compressing the Y.sub.0Y.sub.1CoCg data, more focus may be put on the two luma channels than on the chroma channels (Co, Cg).

(29) The techniques disclosed herein may be applied to any Reversible Color Transform (RCT), such as Y.sub.0Y.sub.1CbCr transform. The forward transform for Y.sub.0Y.sub.1CbCr is as follows:

(30) ( Y 0 Y 1 Cb Cr ) = * ( 1 4 1 2 1 4 0 1 4 0 1 4 1 2 0 - 1 2 1 - 1 2 1 - 1 2 0 - 1 2 ) ( R G 0 B G 1 )
wherein is a constant.

(31) As this is a lossless process, the inverse transform is as follows:

(32) ( R G 0 B G 1 ) = 1 * ( 1 2 1 2 - 1 4 3 4 3 2 - 1 2 - 1 4 - 1 4 1 2 1 2 3 4 - 1 4 - 1 2 3 2 - 1 4 - 1 4 ) ( Y 0 Y 1 Cb Cr )

(33) In the Y.sub.0Y.sub.1CbCr transform, Y.sub.0 depends on R, G.sub.0, and B and Y1 depends on R, B, and G.sub.1, similarly to the Y.sub.0Y.sub.1CoCg transform shown above. Cb depends on G.sub.0, B, and G.sub.1 but not on R, and Cr depends on R, G.sub.0, and G.sub.1 but not on B.

(34) FIG. 8 depicts a block diagram of a conventional display device (e.g., TFT LCD). A plurality of column electrodes of the liquid crystal (LC) panel 16 are driven in parallel by a column driver bank 14 and a plurality of common row electrodes are driven by a row driver array 15 while being selected sequentially. An interface 12 is used as the interface between a microcontroller (not shown) and the display device 10. The interface function 12 is typically realized at the input side of a display timing controller 13. The column driver bank 14 drives the columns of the LC display and it includes N individual output buffers. The column driver bank 14 includes an array of column drivers. Typically, each column driver of the column driver bank 14 serves N column electrodes of the display panel 16 by providing analog output signals. The row driver array 15 comprises an array of row drivers. Each pixel of the display 16 is a switchable capacitor between a row and a column electrode. The display 16 may be a passive matrix LCD panel, although this is not a limitation of the inventive concept.

(35) As illustrated in FIG. 8, there is a buffer 17 located between the display timing controller 13 and the column driver bank 14. This buffer 17 (e.g., RAM) temporality stores image data after having been compressed in accordance with the inventive concept. Image data, which represent an image to be display on the display panel 16, are given by the timing controller 13 via the buffer 17 to the column driver 14 as serial data.

(36) The output of the buffer 17, after having been decompressed, may be sent to the column drivers inside the column driver bank 14. The data is transferred to the outputs of the column drivers in order to drive the display panel 16.

(37) The inventive concept disclosed herein improves the efficiency of compression, which is done to represent the same image data with fewer bits. The method disclosed herein is hardware-friendly, as no floating point calculations are needed. Furthermore, by avoiding the intermediate conversion of RGBG to RGB as mentioned above, any latency or delay is reduced.

(38) While the embodiments are described in terms of a method or technique, it should be understood that the disclosure may also cover an article of manufacture that includes a non-transitory computer readable medium on which computer-readable instructions for carrying out embodiments of the method are stored. The computer readable medium may include, for example, semiconductor, magnetic, opto-magnetic, optical, or other forms of computer readable medium for storing computer readable code. Further, the disclosure may also cover apparatuses for practicing embodiments of the inventive concept disclosed herein. Such apparatus may include circuits, dedicated and/or programmable, to carry out operations pertaining to embodiments.

(39) Examples of such apparatus include a general purpose computer and/or a dedicated computing device when appropriately programmed and may include a combination of a computer/computing device and dedicated/programmable hardware circuits (such as electrical, mechanical, and/or optical circuits) adapted for the various operations pertaining to the embodiments.

(40) It should be understood that the inventive concept can be practiced with modification and alteration within the spirit and scope of the disclosure. Furthermore, the inventive concept may be applied to the cases where compression is done using codecs not explicitly mentioned herein, such as DSC or VDC-M. The description is not intended to be exhaustive or to limit the inventive concept to the precise form disclosed.