System and method for subpixel rendering and display driver
11475822 · 2022-10-18
Assignee
Inventors
Cpc classification
G09G2300/0443
PHYSICS
G09G2320/0242
PHYSICS
G09G3/2077
PHYSICS
G09G2340/0457
PHYSICS
G09G2320/0673
PHYSICS
G09G3/20
PHYSICS
International classification
G09G3/20
PHYSICS
Abstract
A system and method for rendering subpixels comprising performing an eight-color halftoning process on the second image data to generate third image data which describe a grayscale value of each of an R subpixel, a G subpixel and a B subpixel of each pixel with one bit, generating the third image data by performing a dithering process on the second image data using a dither value selected from elements of the dither table, when the third image data associated with a pixel of interest of the display panel is generated, and driving the display panel in response to the third image data.
Claims
1. A method for driving a display panel, the method comprising: determining, by squaring input grayscale values, input-side squared grayscale values for pixels of input image data, wherein squaring the input grayscale values comprises squaring a first input grayscale value of the input grayscale values and squaring a second input grayscale value of the input grayscale values; calculating a first processed grayscale value based on the first squared input grayscale value and the second squared input grayscale value; generating output image data by independently correcting the input-side squared grayscale values based on correction values; and driving the display panel based on the output image data.
2. The method of claim 1, wherein squaring the input grayscale values comprises squaring a third input grayscale value of the input grayscale values, and wherein calculating the first processed grayscale value is further based on the third squared input grayscale value.
3. The method of claim 2, wherein squaring the input grayscale values further comprises squaring a fourth input grayscale value of the input grayscale values, and wherein the method further comprises: calculating a second processed grayscale value based on the third squared input grayscale value, and the fourth squared input grayscale value.
4. The method of claim 1 further comprising: determining the correction values based on a correction parameter and the input grayscale values.
5. The method of claim 4, wherein determining the correction values comprises: determining a first correction value of the correction values based on a combination of the first input grayscale value of the input grayscale values, the second input grayscale value of the input grayscale values, and a third input grayscale value of the input grayscale values, and the correction parameter, the first correction value is associated with a first pixel of the display panel.
6. The method of claim 5, wherein determining the correction values further comprises: determining a second correction value of the correction values based on a combination of the third input grayscale value and a fourth input grayscale value of the input grayscale values, and the correction parameter, the second correction value is associated with a second pixel of the display panel.
7. The method of claim 6, wherein the first input grayscale value corresponds to the first pixel, the second input grayscale value corresponds to the second pixel, the third input grayscale value corresponds to a third pixel of the display panel, and the fourth input grayscale value corresponds to a fourth pixel of the display panel.
8. A display driver comprising: subpixel rendering (SPR) circuitry configured to: determine, by squaring input grayscale values, input-side squared grayscale values for pixels of an input image, wherein squaring the input grayscale values comprises squaring a first input grayscale value of the input grayscale values and squaring a second input grayscale value of the input grayscale values; calculate a first processed grayscale value based on the first squared input grayscale value and the second squared input grayscale value; generate output image data by independently correcting the input-side squared grayscale values based on correction values; and drive circuitry configured to drive a display panel based on the output image data.
9. The display driver of claim 8, wherein squaring the input grayscale values comprises squaring a third input grayscale value of the input grayscale values, and wherein the SPR circuitry is further configured to: calculate the first processed grayscale value further based on the third squared input grayscale value.
10. The display driver of claim 9, wherein squaring the input grayscale values further comprises squaring a fourth input grayscale value of the input grayscale values, and wherein the SPR circuitry is further configured to: calculate a second processed grayscale value based on the third squared input grayscale value, and the fourth squared input grayscale value.
11. The display driver of claim 8, wherein the SPR circuitry is further configured to determine the correction values based on a correction parameter and the input grayscale values.
12. The display driver of claim 11, wherein determining the correction values comprises: determining a first correction value of the correction values based on a combination of the first input grayscale value of the input grayscale values, the second input grayscale value of the input grayscale values, and a third input grayscale value of the input grayscale values, and the correction parameter, the first correction value is associated with a first pixel of the display panel.
13. The display driver of claim 12, wherein determining the correction values further comprises: determining a second correction value of the correction values based on a combination of the third input grayscale value and a fourth input grayscale value of the input grayscale values, and the correction parameter, the second correction value is associated with a second pixel of the display panel.
14. The display driver of claim 13, wherein the first input grayscale value corresponds to the first pixel, the second input grayscale value corresponds to the second pixel, the third input grayscale value corresponds to a third pixel of the display panel, and the fourth input grayscale value corresponds to a fourth pixel of the display panel.
15. A display device comprising: a display panel; and a display driver configured to: determine, by squaring input grayscale values, input-side squared grayscale values for pixels of an input image, wherein squaring the input grayscale values comprises squaring a first input grayscale value of the input grayscale values and squaring a second input grayscale value of the input grayscale values; calculate a first processed grayscale value based on the first squared input grayscale value and the second squared input grayscale value; generate output image data by independently correcting the input-side squared grayscale values based on correction values; and drive the display panel based on the output image data.
16. The display device of claim 15, wherein squaring the input grayscale values comprises squaring a third input grayscale value of the input grayscale values, and wherein the display driver is further configured to: calculate the first processed grayscale value further based on the third squared input grayscale value.
17. The display device of claim 16, wherein squaring the input grayscale values further comprises squaring a fourth input grayscale value of the input grayscale values, and wherein the display driver is further configured to: calculate a second processed grayscale value based on the third squared input grayscale value, and the fourth squared input grayscale value.
18. The display device of claim 15, wherein the display driver is further configured to determine the correction values based on a correction parameter and the input grayscale values.
19. The display device of claim 18, wherein determining the correction values comprises: determining a first correction value of the correction values based on a combination of the first input grayscale value of the input grayscale values, the second input grayscale value of the input grayscale values, and a third input grayscale value of the input grayscale values, and the correction parameter, the first correction value is associated with a first pixel of the display panel.
20. The display device of claim 19, wherein determining the correction values further comprises: determining a second correction value of the correction values based on a combination of the third input grayscale value and a fourth input grayscale value of the input grayscale values, and the correction parameter, the second correction value is associated with a second pixel of the display panel.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
DETAILED DESCRIPTION
(16) In the following, a description is given of embodiments of the present disclosure with reference to the attached drawings.
(17) The display panel 1 includes gate lines 4, data lines 5, pixel circuits 6 and gate line drive circuitries 7. Each pixel circuit 6 is disposed at an intersection of a gate line 4 and a data line 5 and configured to display one of the red, green and blue colors. Pixel circuits 6 which display the red color are used as R subpixels. Similarly, pixel circuits 6 which display the green color are used as G subpixels, and pixel circuits 6 which display the blue color are used as B subpixels. When an OLED display panel is used as the display panel 1, in one embodiment, the pixel circuits 6 which display the red color may include an light emitting element which emits red light, the pixel circuits 6 which display the green color may include an light emitting element which emits green light, and the pixel circuits 6 which display the blue color may include an light emitting element which emits blue light.
(18) As illustrated in
(19) Referring back to
(20) The display driver 2 drives the display panel 1 in response to image data 32 and control data 33 received from a host 3 to display images on the display panel 1. The image data 32 describe the grayscale value of each subpixel of each pixel of an image to be displayed (or an original image). The control data 33 include commands and parameters used for controlling the display driver 2. An application processor, a CPU (central processing unit), a DSP (digital signal processor) or the like may be used as the host 3.
(21)
(22) The interface control circuitry 11 operates as follows. First, the interface control circuitry 11 forwards the image data 32 received from the host 3 to the image processing circuitry 12. The interface control circuitry 11 further stores various parameters included in the control data 33 into the register 16 and controls the respective circuitries of the display driver 2 in response to commands included in the control data 33.
(23) The image processing circuitry 12 performs a desired image data process on the image data 32 received from the interface control circuitry 11 to generate display data 34 used for driving the display panel 1. As described later In one embodiment, the image data process performed in the image processing circuitry 12 includes a subpixel rendering process. Details of the subpixel rendering process performed in the image processing circuitry 12 will be described later. The image data process performed in the image processing circuitry 12 may include processes other than the subpixel rendering process (e.g. color adjustment).
(24) The latch circuitry 13 latches the display data 34 from the image processing circuitry 12 and forwards the latched display data 34 to the data line drive circuitry 15.
(25) The grayscale voltage generator circuitry 14 generates a set of grayscale voltages respectively corresponding to the allowed values of the grayscale values described in the display data 34.
(26) The data line drive circuitry 15 drives the respective data lines 5 with the grayscale voltages corresponding to the values of the display data 34. In one embodiment, the data line drive circuitry 15 selects ones of the grayscale voltages received from the grayscale voltage generator circuitry 14 corresponding to the values of the display data 34, and drives the respective data lines 5 to the selected grayscale voltages.
(27) The register 16 stores therein various control parameters used to control the operation of the display driver 2. The register 16 is configured to be rewritable from outside of the display driver 2, for example, from the host 3. The control parameters stored in the register 16 include a correction parameter α used to control the subpixel rendering process performed in the image processing circuitry 12. The content and technical meaning of the correction parameter α will be described later In one embodiment.
(28)
(29) The input image data D.sub.IN supplied to the subpixel rendering circuitry 20 may be the image data 32 supplied to the image processing circuitry 12 from the interface control circuitry 11. Alternatively, image data obtained by performing desired image data processing on the image data 32 may be used as the input image data D.sub.IN. The output image data D.sub.OUT output from the subpixel rendering circuitry 20 may be used as the display data 34 supplied to the data line drive circuitry 15. Alternatively, image data obtained by performing desired image data processing on the output image data D.sub.OUT may be used as the display data 34 and supplied to the data line drive circuitry 15.
(30) In this embodiment, the subpixel rendering circuitry 20 includes a square calculation circuitry 21, a subpixel rendering calculation circuitry 22, a square root calculation circuitry 23, a correction value calculation circuitry 24 and an adder circuitry 25.
(31) The square calculation circuitry 21 calculates the square of the input grayscale value for each subpixel of each pixel of the input image. The value of the square of an input grayscale value may be referred to as the input-side squared grayscale value.
(32) The subpixel rendering calculation circuitry 22 calculates SPR-processed (subpixel rendering processed) squared grayscale value for each subpixel of each pixel of the output image, from the input-side squared grayscale value calculated for each subpixel of each pixel of the input image. The SPR-processed squared grayscale value approximately corresponds to the square of the grayscale value of each subpixel of each pixel of the output image. It should be noted however that, as will be understood from the following description, the square root of the SPR-processed squared grayscale value calculated for each subpixel of each pixel of the output image may not be used as the grayscale value of each subpixel of each pixel of the output image. The SPR-processed squared grayscale value of a subpixel of a specific color (for example, red, green or blue) of a specific pixel of the output image is calculated from the input-side squared grayscale values calculated for the subpixels of the specific color of the pixels of the input image corresponding to the specific pixel of the output image.
(33) The square root calculation circuitry 23 calculates the square root (that is, ½ power) of the SPR-processed squared grayscale value calculated for each subpixel of each pixel of the output image.
(34) The correction value calculation circuitry 24 calculates a correction value ΔD for each subpixel of each pixel of the output image. The correction parameter α stored in the register 16 is used to calculate the correction value ΔD. The calculated correction value ΔD is supplied to the adder circuitry 25.
(35) The adder circuitry 25 adds the correction value ΔD calculated for each subpixel of each pixel of the output image to the square root of the SPR-processed squared grayscale value calculated for each subpixel of each pixel of the output image. The output of the adder circuitry 25 is the output image data D.sub.OUT. The grayscale value of a specific subpixel of a specific pixel of the output image described in the output image data D.sub.OUT is calculated as the sum of the square root of the SPR-processed squared grayscale value calculated for the specific subpixel and the correction value ΔD calculated for the specific subpixel.
(36) As described above, a commonly-used subpixel rendering process includes a gamma conversion, an arithmetic process of image data, and an inverse-gamma conversion. The gamma conversion includes calculation of a γ power, and the inverse gamma conversion includes calculation of a 1/γ power, where γ is the gamma value. The circuit size of a circuit which performs the gamma conversion or the inverse gamma conversion is large as described above.
(37) The subpixel rendering circuitry 20 of this embodiment is configured so that square calculation (e.g., calculation to obtain a square) is performed in place of the gamma conversion and square root calculation (e.g., calculation to obtain a square root) is performed in place of the inverse gamma conversion, while the error caused by these calculations is compensated by adding the correction value ΔD. The square calculation and square root calculation can be implemented by a circuit of a smaller circuit size than that of a circuit which calculates a power. Although the use of the square calculation and the square root calculation in place of the gamma conversion and the inverse gamma conversion may cause an error, this error can be compensated by adding the correction value ΔD. Accordingly, the configuration of the subpixel rendering circuitry 20 of this embodiment effectively reduces the circuit size.
(38) In the following, the operation of the subpixel rendering circuitry 20 to generate the output image data D.sub.OUT is described for the case where the ratio of the number of the pixels of the input image to that of the output image is 3:2. In other embodiments, other ratios may be used.
(39)
(40) In the subpixel rendering process illustrated in
(41) For the case where k is zero, that is, for the calculation of the output image data D.sub.OUT associated with the leftmost pixel Pout #0 of the output image, pixel Pin #0 of the input image is positioned leftmost in the horizontal direction and pixel Pin #(−1) does not exist. To address this, the output image data D.sub.OUT associated with pixel Pout #0 of the output image is calculated by using the input image data D.sub.IN associated with pixel Pin #1, in place of the input image data D.sub.IN associated with pixel Pin #(−1). In other words, the output image data D.sub.OUT associated with pixel Pout #0 of the output image is calculated from the input image data D.sub.IN associated with pixels Pin #1, Pin #0, Pin #1 and Pin #2 of the input image. Also in this case, the output image data D.sub.OUT associated with two pixels Pout #0 and #1 of the output image can be virtually considered as being calculated from the input image data D.sub.IN associated with four pixels Pin #1, Pin #0, Pin #1 and Pin #2 of the input image.
(42) In various embodiment, the subpixel rendering process performed by the subpixel rendering circuitry 20, comprises calculating the output image data D.sub.OUT associated with two pixels Pout #(2k) and Pout #(2k+1) from the input image data D.sub.IN associated with four pixels Pin #(3k−1), Pin #(3k), Pin #(3k+1) and Pin #(3k+2). For example, the output image data D.sub.OUT of two pixels Pout #2 and Pout #3 of the output image are calculated from four pixels Pin #2, Pin #3, Pin #4 and Pin #5 of the input image in this subpixel rendering process. In various embodiments, for the case where k=0, the input image data D.sub.IN associated with pixel Pin #1 is used in place of the input image data D.sub.IN associated with pixel Pin #(−1).
(43) In one or more embodiments, the input image data D.sub.IN associated with the four pixels Pin #(3k−1), Pin #(3k), Pin #(3k+1) and Pin #(3k+2) of the input image may be referred to as the input image data D.sub.IN0, D.sub.IN1, D.sub.IN2 and D.sub.IN3, respectively. The input image data D.sub.IN0 describes the grayscale value R.sub.0 of the R subpixel of the pixel Pin #(3k−1), the grayscale value G.sub.0 of the G subpixel, and the grayscale value B.sub.0 of the B subpixel, and the input image data D.sub.IN1 describes the grayscale value R.sub.1 of the R subpixel of the pixel Pin #(3k), the grayscale value G.sub.1 of the G subpixel, and the grayscale value B.sub.1 of the B subpixel. Similarly, the input image data D.sub.IN2 describes the grayscale value R.sub.2 of the R subpixel of the pixel Pin #(3k+1), the grayscale value G.sub.2 of the G subpixel, and the grayscale value B.sub.2 of the B subpixel, and the input image data D.sub.IN3 describes the grayscale value R.sub.3 of the R subpixel of the pixel Pin #(3k+2), the grayscale value G.sub.3 of the G subpixel, and the grayscale value B.sub.3 of the B subpixel. In the various embodiments, the grayscale value R.sub.i of the R subpixel described in the input image data D.sub.INi, the grayscale value G.sub.i of the G subpixel and the grayscale value B.sub.i of the B subpixel may be referred to as input grayscale values R.sub.i, G.sub.i and B.sub.i, respectively, where i is an integer from zero to three.
(44) In some embodiments, the output image data D.sub.OUT associated with two pixels Pout #(2k) and Pout #(2k+1) of the output image may be referred to as the output image data D.sub.OUT0 and D.sub.OUT1. The output image data D.sub.OUT0 describes the grayscale value NewR.sub.0 of the R subpixel of the pixel Pout #(2k) of the output image, the grayscale value NewG.sub.0 of the G subpixel and the grayscale value NewB.sub.0 of the B subpixel, and the output image data D.sub.OUT1 describes the grayscale value NewR.sub.1 of the R subpixel of pixel Pout #(2k+1) of the output image, the grayscale value NewG.sub.1 of the G subpixel and the grayscale value NewB.sub.1 of the B subpixel. In one or more embodiments, the grayscale value NewR.sub.j of the R subpixel described in the output image data D.sub.OUTj, the grayscale value NewG.sub.j of the G subpixel and the grayscale value NewB.sub.j of the B subpixel may be referred to as output grayscale values NewR.sub.j, NewG.sub.j and NewB.sub.j, respectively, where j is zero or one.
(45)
(46) Input-side squared grayscale values R.sub.0.sup.2, R.sub.1.sup.2, R.sub.2.sup.2 and R.sub.3.sup.2, which are the squares of the input grayscale values R.sub.0, R.sub.1, R.sub.2 and R.sub.3, respectively (that is the grayscale values R.sub.0, R.sub.1, R.sub.2 and R.sub.3 of the R subpixels of pixels Pin #(3k−1), Pin #(3k), Pin #(3k+1) and Pin #(3k+2) of the input image) are calculated by the square calculation circuitry 21.
(47) SPR-processed squared grayscale values R.sub.SUB0.sup.2 and R.sub.SUB1.sup.2 of the R subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image are further calculated from the input-side squared grayscale values R.sub.0.sup.2, R.sub.1.sup.2, R.sub.2.sup.2 and R.sub.3.sup.2 by the subpixel rendering calculation circuitry 22. The SPR-processed squared grayscale values R.sub.SUB0.sup.2 and R.sub.SUB1.sup.2 are calculated in accordance with the following expressions (1a) and (1b):
(48)
(49) Furthermore, the square roots R.sub.SUB0 and R.sub.SUB1 of the SPR-processed squared grayscale values R.sub.SUB0.sup.2 and R.sub.SUB1.sup.2 of the R subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image are calculated by the square root calculation circuitry 23.
(50) Further, in some embodiments, the correction value calculation circuitry 24 calculates correction values ΔR.sub.0 and ΔR.sub.1 for the respective R subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image in accordance with the following expressions (2a) and (2b):
(51)
(52) The correction parameter α used in expressions (2a) and (2b) is stored in the register 16, and the correction value calculation circuitry 24 calculates the correction values ΔR.sub.0 and ΔR.sub.1 using the correction parameter α received from the register 16. The correction parameter α is calculated in accordance with the following expression (3a):
(53)
where γ is the gamma value of the display panel 1 (the gamma value set to the display driver 2), and MAX is the allowed maximum value of the grayscale value of each subpixel of each pixel in the input image data D.sub.IN and the output image data D.sub.OUT. In some embodiments, when both of the input image data D.sub.IN and the output image data D.sub.OUT describe the grayscale value of each subpixel of each pixel with eight bits, it holds:
MAX=255(=2.sup.8−1).
In this case, expression (3a) can be rewritten into the following expression (3b):
(54)
(55)
(56) The adder circuitry 25 calculates the output grayscale values NewR.sub.0 and NewR.sub.1 (that is, the grayscale values NewR.sub.0 and NewR.sub.1 of the R subpixels of pixels Pout #(2k) and Pout #(2k+1)) by adding the correction values ΔR.sub.0 and ΔR.sub.1 to the square roots R.sub.SUB0 and R.sub.SUB1 calculated for the R subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image, respectively. In other words, the adder circuitry 25 calculates the output grayscale values NewR.sub.0 and NewR.sub.1 in accordance with the following expressions (4a) and (4b):
NewR.sub.0=R.sub.SUB0+ΔR.sub.0, and (4a)
NewR.sub.1=R.sub.SUB1+αR.sub.1 (4b)
(57) According to the calculation described above, the output grayscale values NewR.sub.0 and NewR.sub.1 are resultantly calculated in accordance with the following expressions (5a) and (5b), as a whole of the subpixel rendering circuitry 20:
(58)
(59) In various embodiments, the calculation of the output grayscale values NewR.sub.0 and NewR.sub.1 in accordance with expressions (5a) and (5b) allows obtaining grayscale values approximate to those obtained by strictly performing a subpixel rendering process based on gamma conversion and inverse gamma conversion.
(60) In one or more embodiments, when a subpixel rendering process is strictly performed using gamma conversion and inverse gamma conversion, the output grayscale value NewR.sub.0 and NewR.sub.1 of the R subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image are calculated in accordance with the following expressions (6a) and (6b):
(61)
(62) When γ is approximately equal to two, the following approximation expressions (7a) and (7b) hold:
(63)
The right sides of expressions (5a) and (5b) can be obtained by substituting R.sub.0, R.sub.1, R.sub.2 and R.sub.3 into A, B, C and D of the right sides of expressions (7a) and (7b), respectively. This implies that an approximation can be achieved with a sufficient accuracy by calculating the output grayscale value NewR.sub.0 and NewR.sub.1 in accordance with expressions (5a) and (5b). According to an inventors' study, for a gamma value γ from 2.0 to 3.0, a sufficient accuracy can be achieved by calculating the output grayscale values NewR.sub.0 and NewR.sub.1 with a correction parameter α of seven bits in accordance with expressions (5a) and (5b).
(64) Expressions 8a and 8b illustrate a calculation example for the case where the gamma value γ of the display panel 1 is 2.2. When the gamma value γ is 2.2, the correction parameter α is set to “44” as understood from
(65)
The calculated output grayscale values NewR.sub.0 and NewR.sub.1 are equal to the values obtained by strictly performing the subpixel rendering process with gamma conversion and inverse gamma conversion.
(66) When the gamma value γ is 2.0, the correction parameter α calculated in accordance with expression (3a) or (3b) is infinite. In this case, in one embodiment, the correction values ΔR.sub.0 and ΔR.sub.1 may be calculated as zero by the correction value calculation circuitry 24. To achieve such operation, the display driver 2 may be configured such that a flag which is asserted when the gamma value γ is 2.0 is prepared in the register 16 and the correction value calculation circuitry 24 is configured to unconditionally set the correction values ΔR.sub.0 and ΔR.sub.1 to zero when the flag is asserted.
(67) The grayscale values NewG.sub.0 and NewG.sub.1 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image and the grayscale values NewB.sub.0 and NewB.sub.1 of the B subpixels are calculated in a similar way.
(68) In one embodiment, input-side squared grayscale values G.sub.0.sup.2, G.sub.1.sup.2, G.sub.2.sup.2 and G.sub.3.sup.2, which are squares of the grayscale values G.sub.0, G.sub.1, G.sub.2 and G.sub.3 of the G subpixels of pixels Pin #(3k−1), Pin #(3k), Pin #(3k+1) and Pin #(3k+2) of the input image, and input-side squared grayscale values B.sub.0.sup.2, B.sub.1.sup.2, B.sub.2.sup.2 and B.sub.3.sup.2, which are squares of the grayscale values B.sub.0, B.sub.1, B.sub.2 and B.sub.3 of the B subpixels, are calculated by the square calculation circuitry 21.
(69) SPR-processed squared grayscale values G.sub.SUB0.sup.2 and G.sub.SUB1.sup.2 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image are further calculated from the input-side squared grayscale values G.sub.0.sup.2, G.sub.1.sup.2, G.sub.2.sup.2 and G.sub.3.sup.2 by the subpixel rendering calculation circuitry 22, and SPR-processed squared grayscale values B.sub.SUB0.sup.2 and B.sub.SUB1.sup.2 of the B subpixels are calculated from the input-side squared grayscale values B.sub.0.sup.2, B.sub.1.sup.2, B.sub.2.sup.2 and B.sub.3.sup.2. The SPR-processed squared grayscale values G.sub.SUB0.sup.2, G.sub.SUB1.sup.2, B.sub.SUB0.sup.2 and B.sub.SUB1.sup.2 are calculated in accordance with the following expressions (9a), (9b), (10a) and (10b):
(70)
(71) Furthermore, the square roots G.sub.SUB0 and G.sub.SUB1 of the SPR-processed squared grayscale values G.sub.SUB0.sup.2 and G.sub.SUB1.sup.2 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image and the square roots B.sub.SUB0 and B.sub.SUB1 of the SPR-processed squared grayscale values B.sub.SUB0.sup.2 and B.sub.SUB1.sup.2 of the B subpixels are calculated by the square root calculation circuitry 23.
(72) Further, in some embodiments, the correction value calculation circuitry 24 calculates correction values ΔG.sub.0 and ΔG.sub.1 for the respective G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image in accordance with the following expressions (11a) and (11b) and calculates correction values ΔB.sub.0 and ΔB.sub.1 for the respective B subpixels in accordance with the following expressions (12a) and (12b):
(73)
(74) The adder circuitry 25 calculates the grayscale values NewG.sub.0 and NewG.sub.1 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image by adding the correction values ΔG.sub.0 and ΔG.sub.1 to the square roots G.sub.SUB0 and G.sub.SUB1 calculated for the G subpixels of pixels Pout #(2k) and Pout(2k+1) of the output image, respectively. Similarly, the adder circuitry 25 also calculates the grayscale values NewB.sub.0 and NewB.sub.1 of the B subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image by adding the correction values ΔB.sub.0 and ΔB.sub.1 to the square roots B.sub.SUB0 and B.sub.SUB1 calculated for the B subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image, respectively.
(75) In other words, the adder circuitry 25 calculates the grayscale values NewG.sub.0 and NewG.sub.1 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image and the grayscale values NewB.sub.0 and NewB.sub.1 of the B subpixels in accordance with the following expressions (13a), (13b) (14a) and (14b):
NewG.sub.0=G.sub.SUB0+ΔG.sub.0 ,(13a)
NewG.sub.1=G.sub.SUB1+ΔG.sub.1 ,(13b)
NewB.sub.0=B.sub.SUB0+ΔB.sub.0, and (14a)
NewB.sub.1=B.sub.SUB1+ΔB.sub.1 .(14b)
(76) According to the calculation described above, the grayscale values NewG.sub.0 and NewG.sub.1 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) of the output image and the grayscale values NewB.sub.0 and NewB.sub.1 of the B subpixels are resultantly calculated in accordance with the following expressions (15a), (15b), (16a) and (16b), as a whole of the subpixel rendering circuitry 20:
(77)
In various embodiments, the calculation of the grayscale values NewG.sub.0 and NewG.sub.1 of the G subpixels of pixels Pout #(2k) and Pout #(2k+1) and the grayscale values NewB.sub.0 and NewB.sub.1 of the B subpixels in accordance with expressions (15a), (15b), and (16a) and (16b) achieves a sufficiently accurate approximation.
(78) As described above, the subpixel rendering circuitry 20 of this embodiment is configured to perform square calculation in place of gamma conversion and perform square root calculation in place of inverse gamma conversion, while compensating the error caused by such operation by adding a correction value. Such configuration of the subpixel rendering circuitry 20 of this embodiment effectively reduces the circuit size thereof.
(79) In one embodiment, the subpixel rendering circuitry 20 of this embodiment also offers an advantage that the gamma value γ can be easily modified by modifying the correction parameter α stored in the register 16. When the register 16 can be rewritten from the host 3, the host 3 may access the register 16 to modify the correction parameter α stored in the register 16. For example, as is understood from
(80) Although the above-described embodiment recites the configuration in which output image data D.sub.OUT associated with two pixels of the output image are calculated from input image data D.sub.IN associated with four pixels of the input image, a subpixel rendering process may be generally achieved in a similar procedure also for the case where output image data D.sub.OUT associated with M pixels of the output image are calculated from input image data D.sub.IN associated with N pixels of the input image, for N being an integer two or more, and M being an integer satisfying 1≤M<N.
(81)
(82) In the subpixel rendering process illustrated in
(83) For the case where k is zero, that is, for the calculation of the output image data D.sub.OUT associated with the leftmost pixel Pout #0 of the output image, pixel Pin #0 of the input image is positioned leftmost in the horizontal direction and pixel Pin #(−1) does not exist. In various embodiments, to address this, the output image data D.sub.OUT associated with pixel Pout #0 of the output image is calculated by using the input image data D.sub.IN associated with pixel Pin #1, in place of the input image data D.sub.IN associated with pixel Pin #(−1). In other words, the output image data D.sub.OUT associated with pixel Pout #0 of the output image is calculated from the input image data D.sub.IN associated with pixels Pin #1, Pin #0 and Pin #1 of the input image. Also in this case, the output image data D.sub.OUT associated with pixel Pout #0 of the output image can be virtually considered as being calculated from the input image data D.sub.IN associated with three pixels Pin #1, Pin #0 and Pin #1 of the input image.
(84)
(85) Input-side squared grayscale values R.sub.0.sup.2, R.sub.1.sup.2 and R.sub.2.sup.2, which are the squares of the grayscale values R.sub.0, R.sub.1 and R.sub.2 of the R subpixels of pixels Pin #(2k−1), Pin #(2k) and Pin #(2k+1) of the input image (the input grayscale values R.sub.0, R.sub.1 and R.sub.2) are calculated by the square calculation circuitry 21.
(86) An SPR-processed squared grayscale values R.sub.SUB.sup.2 of the R subpixel of pixel Pout #k of the output image is then calculated from the input-side squared grayscale values R.sub.0.sup.2, R.sub.1.sup.2 and R.sub.2.sup.2 by the subpixel rendering calculation circuitry 22. The SPR-processed squared grayscale values R.sub.SUB.sup.2 is calculated in accordance with the following expression (17):
(87)
(88) Furthermore, the square root R.sub.SUB of the SPR-processed squared grayscale values R.sub.SUB.sup.2 of the R subpixel of pixel Pout #k of the output image is calculated by the square root calculation circuitry 23.
(89) Meanwhile, the correction value calculation circuitry 24 calculates a correction value ΔR in accordance with the following expression (18):
(90)
(91) The correction parameter α in expression (18) is stored in the register 16, and the correction value calculation circuitry 24 calculates the correction value ΔR using the correction parameter α received from the register 16.
(92) The adder circuitry 25 calculates the output grayscale value NewR (that is, the grayscale value NewR of the R subpixel of pixel Pout #k) by adding the correction values ΔR to the square root R.sub.SUB calculated for the R subpixel of pixel Pout #k of the output image. In other words, the adder circuitry 25 calculates the output grayscale value NewR in accordance with the following expressions (19):
NewR=R.sub.SUB+ΔR. (19)
(93) According to the calculation described above, the output grayscale value NewR is resultantly calculated in accordance with the following expression (20), as a whole of the subpixel rendering circuitry 20:
(94)
(95) The grayscale value NewG of the G subpixel of pixel Pout #k and the grayscale value NewB of the B subpixel are calculated in a similar way. It would be easily understood by a person skilled in the art from the above-described discussion that the calculation of the grayscale value NewR of the R subpixel of pixel Pout #k, the grayscale value NewG of the G subpixel and the grayscale value NewB of the B subpixel in this way achieves a sufficiently accurate approximation.
(96) In one embodiment, as illustrated in
(97) As illustrated, the display driver 2A includes an interface control circuitry 41, an image processing circuitry 42, a grayscale voltage generator circuitry 43, a data line drive circuitry 44, a timing control circuitry 45 and a panel interface circuitry 46.
(98) In various embodiments, the interface control circuitry 41 forwards the image data 32 received from the host 3 to the image processing circuitry 42. Additionally, the interface control circuitry 41 controls the respective circuitries of the display driver 2 in response to control parameters and commands included in the control data 33. The image processing circuitry 42 generates display data 34 used to drive the display panel 1 by performing image data processing on the image data 32 received from the interface control circuitry 41. The grayscale voltage generator circuitry 43 generates a set of grayscale voltages V.sub.0 to V.sub.M respectively corresponding to the allowed values of the grayscale values described in the display data 34. The data line drive circuitry 44 drives the respective data lines 5 with the grayscale voltages corresponding to the grayscale values described in the display data 34. In one embodiment, the data line drive circuitry 44 selects the grayscale voltages corresponding to the grayscale values described in the display data 34 for the respective data lines 5, from among the grayscale voltages V.sub.0 to V.sub.M received from the grayscale voltage generator circuitry 43, and drives the respective data lines 5 to the selected grayscale voltages. The timing control circuitry 45 performs timing control of the respective circuitries of the display driver 2 in response to control signals received from the interface control circuitry 41. The panel interface circuitry 46 supplies the gate control signals 31 to the gate line drive circuitries 7 of the display panel 1 to thereby control the gate line drive circuitries 7.
(99) In this embodiment, the grayscale voltage generator circuitry 43 is configured to stop generating the grayscale voltages corresponding to intermediate grayscale values (that is, the grayscale voltages other than the grayscale voltages corresponding to the allowed maximum and minimum grayscale values). Out of the grayscale voltages V.sub.0 to V.sub.M, the grayscale voltage V.sub.0 corresponds to the allowed minimum grayscale value and the grayscale voltage V.sub.M corresponds to the allowed maximum grayscale value. Accordingly, the grayscale voltages V.sub.1 to V.sub.M-1 respectively correspond to the intermediate grayscale values. In response to an instruction by the grayscale voltage control signals supplied from the interface control circuitry 41, the grayscale voltage generator circuitry 43 stops generating the grayscale voltages V.sub.1 to V.sub.M-1, which correspond to the intermediate grayscale values.
(100) In one or more embodiments, the gamma characteristics of the data line drive circuitry 44 depend on the distribution of the voltage levels of the grayscale voltages V.sub.0 to V.sub.M supplied from the grayscale voltage generator circuitry 43. To set the data line drive circuitry 44 to desired gamma characteristics, the distribution of the voltage levels of the grayscale voltages V.sub.0 to V.sub.M is determined in accordance with the desired gamma characteristics. The grayscale voltages V.sub.0 to V.sub.M generated by the grayscale voltage generator circuitry 43 are controlled by grayscale voltage control signals supplied from the interface control circuitry 41.
(101) The gamma characteristics of the entire display driver 2 are determined as a superposition of the gamma characteristics of the image processing performed in the image processing circuitry 42 and the gamma characteristics of the data line drive circuitry 44. To display an image with appropriate brightness, the gamma characteristics of the entire display driver 2 may be set to match the gamma characteristics of the display panel 1.
(102) In this embodiment, the image processing circuitry 42 is configured to perform a subpixel rendering process and an eight-color halftoning process. More specifically, the image processing circuitry 42 includes a subpixel rendering circuitry 47, an eight-color halftoning circuitry 48 and a selector 49 in this embodiment.
(103) The subpixel rendering circuitry 47 performs a subpixel rendering process on the image data 32 received from the interface control circuitry 41 to generate SPR-processed image data 35 and supplies the generated SPR-processed image data 35 to the eight-color halftoning circuitry 48 and the selector 49. Hereinafter, the image corresponding to the SPR-processed image data may be referred to as SPR-processed image. The subpixel rendering circuitry 47 also supplies the address indicating the position of each pixel in the SPR-processed image to the eight-color halftoning circuitry 48. When supplying an SPR-processed image data 35 associated with a certain pixel to the eight-color halftoning circuitry 48, the subpixel rendering circuitry 47 supplies the address of the pixel to the eight-color halftoning circuitry 48 in synchronization with the supply of this SPR-processed image data 35.
(104) In one embodiment, the subpixel rendering circuitry 47 may be configured similarly to the subpixel rendering circuitry 20 illustrated in
(105) The eight-color halftoning circuitry 48 generates binary image data 36 by performing an eight-color halftoning process on the SPR-processed image data 35.
(106) The selector 49 selects one of the SPR-processed image data 35 received from the subpixel rendering circuitry 47 and the binary image data 36 received from the eight-color halftoning circuitry 48, and supplies the selected image data to the data line drive circuitry 44 as the display data 34. The data line drive circuitry 44 drives the display panel 1 in response to the display data 34 received from the selector 49.
(107) In one or more embodiments, when causing the image processing circuitry 42 to perform the eight-color halftoning process, the interface control circuitry 41 supplies an image processing control signal to the image processing circuitry 42 to instruct to perform the eight-color halftoning process. The selector 49 selects the binary image data 36 in response to the image processing control signal. Additionally, the interface control circuitry 41 supplies the grayscale voltage control signals to the grayscale voltage generator circuitry 43 to instruct to stop generating the grayscale voltages V.sub.1 to V.sub.M-1, which correspond to the intermediate grayscale values. The grayscale voltage generator circuitry 43 stops generating the grayscale voltages V.sub.1 to V.sub.M-1, which correspond to the intermediate grayscale values, in response to the grayscale voltage control signals. This allows reducing the power consumption of the grayscale voltage generator circuitry 43. Note that, in some embodiments, the generation of the grayscale voltages V.sub.0 and V.sub.M, which correspond to the allowed minimum and maximum grayscale values, respectively, is continued even when the generation of the grayscale voltages V.sub.1 to V.sub.M-1, which correspond to the intermediate grayscale values, is stopped.
(108) Although
(109) In some embodiments, to achieve an eight-color halftoning process on multi-grayscale-level image data may be to determine whether each subpixel is to be “turned-on” or “turned off”, depending on the most significant bit of data indicating the grayscale value of the subpixel; note that the SPR-processed image data 35 are a sort of multi-grayscale-level image data. By “turning on” each subpixel of the pixel of interest when the most significant bit of the data indicating the grayscale value of the subpixel is “1” and “turning off” each subpixel when the most significant bit of the data indicating the grayscale value of the subpixel is “0”, it is possible to display an image in which the number of the allowed colors of each pixel is eight. This eight-color halftoning process, however, largely deteriorates the image quality, because spatial changes in the grayscale values in the image cannot be sufficiently represented.
(110) The eight-color halftoning process can be considered as a color reduction process which reduces an increased number of bits. Therefore, a dithering process, which is known as one of color reduction processes which effectively suppress image quality deterioration, may be a potential eight-color halftoning process. Performing a dithering process allows representing spatial changes in the grayscale values in the image and thereby reducing image quality deterioration. In some embodiments, a dithering process is achieved by adding a dither value determined in a random manner to image data and then truncating one or more lower bits. The term “random” referred herein means that the probabilities in which the dither value takes the respective allowed values are the same. For example, an eight-color halftoning process with respect to image data which represents the grayscale value of each subpixel with eight bits can be achieved by adding an eight-bit dither value to the image data of each subpixel (note that the resultant value is nine bits), and extracting the most significant bit (that is, truncating the lower eight bits).
(111) In various embodiments, generation of a dither value used in the dithering process is achieved by reading out a dither value from a dither table describing allowed dither values as elements, in response to the address of the pixel of interest.
(112) It should be noted that the setting of the gamma characteristics of the data line drive circuitry 44 with the distribution of the voltage levels of the grayscale voltages V.sub.0 to V.sub.M the does not work when an image is displayed in response to image data obtained through an eight-color halftoning process, because the displayed image only includes subpixels of the allowed maximum grayscale value and the allowed minimum value. When the eight-color halftoning process is performed, the grayscale voltages V.sub.1 to V.sub.M-1, which correspond to intermediate grayscale values, are not used and therefore the setting of the grayscale voltages V.sub.1 to V.sub.M-1 does not have any effects on the gamma characteristics of the data line drive circuitry 44.
(113) It should be also noted that, when an eight-color halftoning process is achieved through a dithering process with a dither value determined in a random way, such eight-color halftoning process is equivalent to image processing of a gamma value γ of one.
(114) When a dither processing is performed on image data associated with a certain subpixel with a dither value determined in a random manner, the probability in which the subpixel is “turned on” increases in proportion to the grayscale value specified by the image data associated with the subpixel. When the grayscale value specified for a certain subpixel is “0”, the probability in which the subpixel is “turned on” is 0%, and, when the grayscale value is “255”, the probability is 100%. For a grayscale value of “128”, the subpixel is “turned off” when the dither value is zero to 127, and “turned on” when the dither value is 128 to 255. In other words, for a grayscale value of “128”, the subpixel is “turned on” with a probability of 50% and “turned off” with a probability of 50%. Accordingly, the effective brightness level of the subpixel in the displayed image is 50% of the allowed maximum brightness level. As thus discussed, the probability in which a subpixel is “turned on” increases in proportion to the grayscale value specified for the subpixel and the effective brightness level of the subpixel in the displayed image also increases in proportion to the grayscale value specified for the subpixel. This implies that the gamma value of the dithering process with a dither value determined in a random way is one.
(115) Accordingly, the eight-color halftoning process achieved through a dithering process with a dither value determined in a random way may cause mismatching of the gamma characteristics of the entire display driver 2 and those of the display panel 1, and results in that the brightness level of each subpixel may not be appropriately represented in the displayed image, although the eight-color halftoning process can represent spatial changes in the grayscale values in the displayed image.
(116) The eight-color halftoning circuitry 48 of this embodiment is configured to perform an eight-color halftoning process based on a dithering process, while addressing this problem. In the following, a description is given of the configuration and operation of the eight-color halftoning circuitry 48 in this embodiment.
(117)
(118) The LUT circuitry 51 is a storage circuitry storing a dither table 53. The LUT circuitry 51 selects a dither value D.sub.DITHER from the elements of the dither table 53 in response to the X address and Y address of the pixel of interest supplied from the subpixel rendering circuitry 47 and supplies the selected dither value D.sub.DITHER to the adder circuitry 52. In
(119) In this embodiment, in which the grayscale values D.sub.SPR.sup.R, D.sub.SPR.sup.G and D.sub.SPR.sup.B of the R, G and B subpixels of each pixel are described with eight bits in the SPR-processed image data 35, each element of the dither table 53 takes an eight-bit value selected from “0” to “255”. The dither table 53 has elements of 16 rows and 16 columns. It should be noted however that, as described later In one embodiment, two or more elements may take the same value in the dither table 53 of the eight-color halftoning circuitry 48 illustrated in
(120) The adder circuitry 52 receives the SPR-processed image data 35 from the subpixel rendering circuitry 47 and adds the dither value supplied from the LUT circuitry 51 to the grayscale value of each subpixel of each pixel described in the SPR-processed image data 35. In one embodiment, for the R, G and B subpixels of the pixel of interest described in the SPR-processed image data 35, the adder circuitry 52 calculates the sums SUM.sup.R, SUM.sup.G and SUM.sup.B in accordance with the following expressions (21a) to (1c):
SUM.sup.R=D.sub.SPR.sup.R+D.sub.DITHER ,(21a)
SUM.sup.G=D.sub.SPR.sup.G+D.sub.DITHER, and (21b)
SUM.sup.B=D.sub.SPR.sup.B+D.sub.DITHER ,(21c)
where D.sub.SPR.sup.R is the grayscale value of the R subpixel of the pixel of interest described in the SPR-processed image data 35, D.sub.SPR.sup.G is the grayscale value of the G subpixel of the pixel of interest, and D.sub.SPR.sup.B is the grayscale value of the B subpixel of the pixel of interest. The most significant bits of the sums SUM.sup.R, SUM.sup.G and SUM.sup.B are output as the binary image data 36. It should be noted that each of the sums SUM.sup.R, SUM.sup.G and SUM.sup.B is a nine-bit value in this embodiment, in which each of the grayscale values D.sub.SPR.sup.R, D.sub.SPR.sup.G and D.sub.SPR.sup.B of the R, G and B subpixels described in the SPR-processed image data 35 is an eight-bit value and the dither value D.sub.DITHER is also an eight-bit value. The binary image data 36 indicates whether each of the R, G and B subpixels of each pixel is to be “turned on” or “turned off” with one bit, and the bits D.sub.BN.sup.R, D.sub.BN.sup.G and D.sub.BNB of the binary image data 36, which respectively correspond to the R, G and B subpixels of the pixel of interest, can be represented by the following expressions (22a) to (22c):
D.sub.BN.sup.R=MSB[SUM.sup.R], (22a)
D.sub.BN.sup.G=MSB[SUM.sup.G], and (22b)
D.sub.BN.sup.B=MSB[SUM.sup.B]. (22c)
(121) In the eight-color halftoning circuitry 48 illustrated in
(122) Discussed below is an example in which an eight-color halftoning process based on a dithering process is performed on the SPR-processed image data 35 which describe the grayscale values D.sub.SPR.sup.R, D.sub.SPR.sup.G and D.sub.SPR.sup.B of the R, G and B subpixels, by using an m-bit dither values D.sub.DITHER. The bit B.sub.BN.sup.k of the binary image data 36 is calculated as the most significant bit of the sum D.sub.SPR.sup.k+D.sub.DITHER, where k is any of “R”, “G” and “B”. In this case, the effective brightness level of a subpixel in the display image becomes (q/2.sup.m) times of the allowed maximum brightness level when the values of the elements of the dither table 53 are determined so that q of the 2.sup.m elements of the dither table 53 have a value equal to or more than 2.sup.m−p, for any allowed value p of the grayscale value D.sub.SPR.sup.k of each subpixel. In some embodiments, it is possible to achieve an eight-color halftoning process of the gamma characteristics of a gamma value γ, by defining q in accordance with the following expression (23):
(123)
where floor(x) is the floor function which gives the greatest integer that is less than or equal to x. The addition of the value 0.5 and the floor function floor(x) are merely introduced to provide rounding to an integer. The rounding may be achieved with a different method.
(124) When m is eight and the grayscale value D.sub.SPR.sup.k of a certain subpixel is 186, the brightness level of the subpixel is to be set to 0.5 (=128/256) times of the allowed maximum brightness level, to achieve the gamma characteristics of a gamma value of 2.2. In this case, the desired brightness level can be achieved for the subpixel, by defining p as 186 and q as 128, and designing the dither table 53 so that 128 of the 256 elements of the dither table 53 have a value equal to or more than 70.
(125)
(126)
(127) More specifically, the dither table 53 illustrated in
(128)
where α(i, j) is the value of the element in the i-th row and the j-th column of the dither table illustrated in
(129) In some embodiments, when the grayscale value D.sub.SPR.sup.k of each subpixel described in the SPR-processed image data 35 is an m-bit value and the dither value is also an m-bit value, a dither table 53 which achieves a dithering process of a gamma value γ can be generated through the following procedure:
(130) (1) Generate a first dither table in which the number of elements taking each allowed value is one (that is, N(p)=1 for any q), through a commonly-used method. Note that the first dither table has 2.sup.m elements; and
(131) (2) perform conversion on the first dither table thus generated in accordance with the following expression (26):
(132)
where α(i, j) is the value of the element in the i-th row and the j-th column of the first dither table, and β(i, j) is the value of the element in the i-th row and the j-th column of the second dither table obtained by this conversion.
(133)
(134) An eight-color halftoning process is then performed on the SPR-processed image data 35 by the eight-color halftoning circuitry 48. In the eight-color halftoning circuitry 48, the eight-color halftoning process is performed with the gamma characteristics of a gamma value of 2.2. As described above, when the grayscale value D.sub.SPR.sup.k of each subpixel is described as 186 in the SPR-processed image data 35, the brightness level of each subpixel is to be 50% (≈128/255) for the gamma characteristics of the gamma value of 2.2.
(135) In this embodiment, the LUT circuitry 51 selects the dither value D.sub.DITHER to be supplied to the adder circuitry 52 from the elements of the dither table 53 illustrated in
(136) Discussed in the following is the case where the above-described process is performed on the grayscale value D.sub.SPR.sup.k of each subpixel described in the SPR-processed image data 35 for pixels arrayed in 16 rows and 16 columns. When the dither table 53 illustrated in
(137) As discussed above, this embodiment provides image data processing technology which achieves both of a subpixel rendering process and an eight-color halftoning process. The eight-color halftoning of this embodiment allows representing spatial changes in the grayscale value in the displayed image and appropriately representing the brightness level of each pixel in the displayed image.
(138) Although embodiments of the present disclosure have been specifically described in the above, it would be understood to a person skilled in the art that the technologies of the present disclosure may be implemented with various modifications.