Source: https://patents.google.com/patent/US8830275B2/en
Timestamp: 2019-05-22 14:04:04
Document Index: 774585375

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60']

US8830275B2 - Methods and systems for sub-pixel rendering with gamma adjustment - Google Patents
Methods and systems for sub-pixel rendering with gamma adjustment Download PDF
US8830275B2
US8830275B2 US11/750,112 US75011207A US8830275B2 US 8830275 B2 US8830275 B2 US 8830275B2 US 75011207 A US75011207 A US 75011207A US 8830275 B2 US8830275 B2 US 8830275B2
US11/750,112
US20070285442A1 (en
2001-05-09 Priority to US29014301P priority Critical
2001-05-09 Priority to US29008601P priority
2001-08-08 Priority to US31113801P priority
2001-08-15 Priority to US31295501P priority
2001-08-15 Priority to US31294601P priority
2001-08-23 Priority to US31462201P priority
2001-09-07 Priority to US31812901P priority
2002-05-17 Priority to US10/150,355 priority patent/US7221381B2/en
2007-05-17 Priority to US11/750,112 priority patent/US8830275B2/en
2007-05-17 Application filed by Samsung Display Co Ltd filed Critical Samsung Display Co Ltd
2007-08-24 Assigned to CLAIRVOYANTE, INC reassignment CLAIRVOYANTE, INC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HIGGINS, MICHAEL FRANCIS
2007-12-13 Publication of US20070285442A1 publication Critical patent/US20070285442A1/en
2014-09-09 Publication of US8830275B2 publication Critical patent/US8830275B2/en
A hardware-implemented function evaluator performs mathematical calculations at high speeds to generate data values in place of an LUT. The disclosed embodiments can generate a small number of output values from a large number of input values. The calculations can use functions that are monotonically increasing such as, for example, square root, power curves, and trigonometric functions.
This application is a divisional of and claims priority to U.S. patent application Ser. No. 10/150,355, filed on May 17, 2002 and entitled “METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING WITH GAMMA ADJUSTMENT,” which published as U.S. Patent Application Publication No. 2003/0103058, and is now issued as U.S. Pat. No. 7,221,381. U.S. patent application Ser. No. 10/150,355 is a continuation-in-part and claims priority to U.S. patent application Ser. No. 10/051,612, entitled “CONVERSION OF A SUB-PIXEL FORMAT DATA TO ANOTHER SUB-PIXEL DATA FORMAT,” filed on Jan. 16, 2002, published as US Patent Publication No. 2003/0034992 (hereafter referred to as “the '992 application’) and now issued as U.S. Pat. No. 7,123,277 B2. U.S. patent application Ser. No. 10/150,355 also claims priority to U.S. Provisional Patent Application No. 60/311,138, entitled “IMPROVED GAMMA TABLES,” filed on Aug. 8, 2001; U.S. Provisional Patent Application No. 60/312,955, entitled “CLOCKING BLACK PIXELS FOR EDGES,” filed on Aug. 15, 2001; U.S. Provisional Application No. 60/312,946, entitled “HARDWARE RENDERING FOR PENTILE STRUCTURES,” filed on Aug. 15, 2001; U.S. Provisional Application No. 60/314,622, entitled “SHARPENING SUB-PIXEL FILTER,” filed on Aug. 23, 2001; and U.S. Provisional Patent Application No. 60/318,129, entitled “HIGH SPEED MATHEMATICAL FUNCTION EVALUATOR,” filed on Sep. 7, 2001, which are all hereby expressly incorporated herein by reference. U.S. patent application Ser. No. 10/051,612 claims priority to U.S. Provisional Patent Application No. 60/290,086, entitled “CONVERSION OF RGB PIXEL FORMAT DATA TO PENTILE MATRIX SUB-PIXEL DATA FORMAT,” filed on May 9, 2001; U.S. Provisional Patent Application No. 60/290,087, entitled “CALCULATING FILTER KERNEL VALUES FOR DIFFERENT SCALED MODES,” filed on May 9, 2001; U.S. Provisional Patent Application No. 60/290,143, entitled “SCALING SUB-PIXEL RENDERING ON PENTILE MATRIX,” filed on May 9, 2001; and U.S. Provisional Patent Application No. 60/313,054, entitled “RGB STRIPE SUB-PIXEL RENDERING DETECTION,” filed on Aug. 16, 2001, which are all hereby expressly incorporated herein by reference. U.S. Patent Application Publication Nos. 2003/0103058 and 2003/0034992 are also hereby expressly incorporated herein by reference.
FIG. 13 illustrates the effective red sampling points 51 that correspond to the red reconstruction points 35 of FIG. 11 and to the red reconstruction points 25 of FIG. 7, and the effective sampling areas 50, 52, 53, and 54 for the red color plane 48. The sampling points 51 form a square grid array at 450 to the display boundary. Thus, within the central array of the sampling grid, the sampling areas form a square grid. Because of ‘edge effects’ where the square grid would overlap the boundary of the display, the shapes are adjusted to keep the same area and minimize the boundary perimeter of each sample (e.g., 54). Inspection of the sample areas will reveal that sample areas 50 have the same area as sample areas 52, however, sample areas 54 has slightly greater area, while sample areas 53 in the corners have slightly less. This does introduce an error, in that the varying data within the sample areas 53 will be over represented while varying data in sample areas 54 will be under represented. However, in a display of hundreds of thousands to millions of emitters, the error will be minimal and lost in the corners of the image.
Center Areas: Vout (CxRy) = 0.5_Vin (CxRy) + 0.125_Vin
(Cx−1Ry) + 0.125_Vin (CxRy+1) + 0.125_Vin
(Cx+1Ry) + 0.125_Vin (CxRy−1)
Lower Edge: Vout (CxRy) = 0.5_Vin (CxRy) + 0.1875_Vin
(Cx−1Ry) + 0.1875_Vin (CxRy+1) + 0.125_Vin
(Cx+1Ry)
Upper Edge: Vout (CxR1) = 0.5_Vin (CxR1) + 0.1875_Vin
(Cx−1R1) + 0.125_Vin (CxR2) + 0.1875_Vin
(Cx+1R1)
Right Edge: Vout (CxRy) = 0.5_Vin (CxRy) + 0.125_Vin
(Cx−1Ry) + 0.1875_Vin (CxRy+1) + 0.1875_Vin
(CxRy−1)
Left Edge: Vout (C1Ry) = 0.5_Vin (C1Ry) + 0.1875_Vin
(C1Ry+1) + 0.125_Vin (C2Ry) + 0.1875_Vin
(C1Ry−1)
Upper Right Vout (CxRy) = 0.5714_Vin (CxRy) + 0.2143_Vin
Hand Corner: (Cx−1Ry) + 0.2143_Vin (CxRy+1)
Upper Left Vout (C1R1) = 0.5714_Vin (C1R1) + 0.2143_Vin
Hand Corner: (C1R2) + 0.2143_Vin (C2R1)
Lower Left Vout (CxRy) = 0.5714_Vin (CxRy) + 0.2143_Vin
Hand Corner: (Cx+1Ry) + 0.2143_Vin (CxRy−1)
Lower Right Vout (CxRy) = 0.5714_Vin (CxRy) + 0.2143_Vin
Hand Corner: (Cx−1Ry) + 0.2143_Vin (CxRy−1)
Upper Edge, Vout (C2R1) = 0.4706_Vin (C2R1) + 0.2353_Vin
Left Hand (C1R1) + 0.1176_Vin (C2R2) + 0.1765_Vin (C3R1)
Left Edge, Vout (C1R2) = 0.4706_Vin (C1R2) + 0.1765_Vin
Upper Near (C1R3) + 0.1176_Vin (C2R2) + 0.2353_Vin (C1R1)
Left Edge, Vout (C1Ry) = 0.4706_Vin (C1Ry) + 0.2353_Vin
Lower Near (C1Ry+1) + 0.1176_Vin (C2Ry) + 0.1765_Vin
Corner: (C1Ry−1)
Lower Edge, Vout (C2Ry) = 0.4706_Vin (C2Ry) + 0.2353_Vin
Left Hand (C1Ry) + 0.1765_Vin (C3Ry) + 0.1176_Vin
Near Corner: (C2Ry−1) + 0.125_Vin (CxRy−1)
Lower Edge, Vout (CxRy) = 0.4706_Vin (CxRy) + 0.1765_Vin
Right Hand (Cx−1Ry) + 0.2353_Vin (Cx+1Ry) + 0.1176_Vin
Near Corner: (CxRy−1)
Right Edge, Vout (CxRy) = 0.4706_Vin (CxRy) + 0.1176_Vin
Lower Near (Cx−1Ry) + 0.2353_Vin (CxRy+1) + 0.1765_Vin
Corner: (CxRy−1)
Right Edge, Vout (CxR2) = 0.4706_Vin (CxR2) + 0.1176_Vin
Upper Near (Cx−1R2) + 0.1765_Vin (CxR3) + 0.2353_Vin
Corner: (CxR1)
Upper Edge, Vout (CxR1) = 0.4706_Vin (CxR1) + 0.1765_Vin
Right Hand (Cx−1R1) + 0.1176_Vin (CxR2) + 0.2353_Vin
Near Corner: (Cx+1R1)
V out ⁡ ( C x + _ ⁢ R y + _ ) = ⁢ 0.015625 ⁢ _V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y ) + ⁢ 0.234375 ⁢ _V i ⁢ ⁢ n ⁢ ( C x ⁢ R y ) + 0.234375 ⁢ _V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ) + ⁢ 0.015625 ⁢ _V i ⁢ ⁢ n ⁢ ( C x + 2 ⁢ R y ) + ⁢ 0.015625 ⁢ _V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y + - 1 ) + ⁢ 0.234375 ⁢ _V i ⁢ ⁢ n ⁢ ( C x ⁢ R y + 1 ) + ⁢ 0.234375 ⁢ _V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y + 1 ) + ⁢ 0.015625 ⁢ _V i ⁢ ⁢ n ⁢ ( C X + 2 ⁢ R y + 1 ) .
⅛ 11/16  1/32
The methods illustrated in FIGS. 46, 49, and 51 provide gamma compensation or adjustment in conjunction with the above sub-pixel rendering techniques. These three methods for providing gamma adjustment with sub-pixel rendering can achieve the right color balance of images on a display. The methods of FIGS. 49 and 51 may also further improve the output brightness or luminance by improving the output contrast ratio. Specifically, FIG. 46 illustrates a method of applying a precondition-gamma prior to sub-pixel rendering; FIG. 49 illustrates a method for gamma-adjusted sub-pixel rendering; and FIG. 51 illustrates a method for gamma-adjusted sub-pixel rendering with an omega function. The advantages of these methods will be discussed below. The methods of FIGS. 46, 49, and 51 can be implemented in hardware, firmware, or software, as described in detail regarding FIGS. 52A through FIG. 72. The reader is referred to U.S. Patent Application Publication 2003/0085906, the publication of the parent application, for an example of exemplary software code which may be used to implement the sub-pixel rendering methods disclosed herein.
V out ⁡ ( C x ⁢ R y ) = ⁢ 0.5 × g - 1 ⁡ ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) + 0.125 × g - 1 ⁢ ( V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ 0.125 × g - 1 ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) + 0.125 × ⁢ g - 1 ⁡ ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) ) + 0.125 × g - 1 ⁡ ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) )
After steps 306 and 308, the sub-pixel rendered data Vout is subjected to post-gamma correction for a given display gamma function (step 310). A display gamma function is referred to here as f(x) and can represent a non-unity gamma function
typically of the form f(x)=xY′, where the constant Y′ corresponds to a behavior characteristic of the display device, e.g., for a liquid crystal display (LCD). To achieve linearity for sub-pixel rendering, the display gamma function is identified and cancelled with a post-gamma correction function f−1(x), which can be generated by calculating the inverse of f(x). Post-gamma correction allows the sub-pixel rendered data to produce appropriate output luminances corresponding to nonlinear response of the human eye. Thereafter, the post-gamma corrected data is output to the display (step 312). The above method of FIG. 46 of applying precondition-gamma prior to sub-pixel rendering can provide proper color balance for all spatial frequencies. The method of FIG. 46 can also provide the right brightness or luminance level at least for low spatial frequencies. In one embodiment, the technique of FIGS. 67-70 is used to generate the post-gamma correction function f−1(x), except that in FIGS. 67-70 it is referred to thereat as g−1(x).
For the gamma-adjusted sub-pixel rendering method 350 of FIG. 49, a concept of “local average (a)” is introduced with reference to FIG. 48. The concept of a local average is that the luminance of a sub-pixel should be balanced with its surrounding sub-pixels. For each edge term (Vin(Cx−1Ry−1), Vin(CxRy−1), Vin(Cx+1Ry−1), Vin(Cx−1Ry), Vin(Cx+1Ry), Vin(Cx−1Ry+1), Vin(CxRy+1), Vin(Cx+1Ry+1)), the local average is defined as an average with the center term (Vin(CxRy)). For the center term, the local average is defined as an average with all the edge terms surrounding the center term weighted by corresponding coefficient terms of the filter kernel. For example, (Vin(Cx−1Ry)+Vin(CxRy))÷2 is the local average for Vin(Cx−1Ry), and (Vin(Cx−1Ry)+Vin(CxRy+1)+Vin(Cx+1Ry)+Vin(CxRy−1)+4×Vin(CxRy))÷8 is the local average for the center term with the filter kernel of:
Referring to FIG. 49, initially, sampled input data Vin of nine implied sample areas 280, e.g., as shown in FIG. 42, is received (step 352). Next, the local average (α) for each of the eight edge terms is calculated using each edge term Vin and the center term Vin (step 354). Based on these local averages, a “pre-gamma” correction is performed as a calculation of g−1(α)=αγ−1 by using, e.g., a pre-gamma LUT (step 356). The pre-gamma correction function is g−1(x)=xγ−1. It should be noted that xγ−1 is used instead of xy because the gamma-adjusted sub-pixel rendering makes x (in this case Vin) multiplied later in steps 366 and 368. The result of the pre-gamma correction for each edge term is multiplied by a corresponding coefficient term CK, which is received from a filter kernel coefficient table 360 (step 358).
g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) + 4 × V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ⁢ ÷ . ⁢ 8 ) ( 1 ) ( ( g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ⁢ ÷ . ⁢ 2 ) + g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ⁢ ÷ . ⁢ 4 ) ( 2 )
V out ⁡ ( C x ⁢ R y ) = ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) × 0.5 × g - 1 ( ( V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) + V i ⁢ ⁢ n ⁢ ( C x ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) + 4 × V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 8 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) × 0.125 × g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) × 0.125 × ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) × 0.125 × g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) × 0.125 × ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 )
V out ⁡ ( C x ⁢ R y ) = ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x ⁢ ⁢ R y - 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) + V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) × ⁢ 0.125 × g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) × 0.125 × g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) × ⁢ 0.125 × g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) × 0.125 × g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x ⁢ R y - 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) .
V out ⁡ ( C x + 1 / 2 ⁢ R y ⁢ ) = ⁢ + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ⁢ ) × 0.5 × g - 1 ( ( 4 × V i ⁢ ⁢ n ⁢ ( C x ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x - 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) ⁢ V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) ) ÷ 8 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) × 0.5 × ⁢ g - 1 ( ( 4 × V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁢ ( C x ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y - 1 ) + V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x + 2 ⁢ R y ) ) ÷ 8 ) .
V out ⁡ ( C x + 1 / 2 ⁢ R y ) = ⁢ + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) × 0.5 × ⁢ ( ( g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x - 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ⁢ ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ⁢ ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁢ ( C x ⁢ R y - 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ⁢ ) × ⁢ 0.5 × ( ( g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁢ ( C x + 1 ⁢ R y ⁢ ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y + 1 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 2 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y - 1 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) .
V out ⁡ ( C x + 1 / 2 ⁢ R y ) = ⁢ + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y + 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + g - 1 ( ( V i ⁢ ⁢ n ⁡ ( C x ⁢ R y - 1 ) + ⁢ V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ÷ 3 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) × 0.5 × ⁢ ( ( g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) + V i ⁢ ⁢ n ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y + 1 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y - 1 ) + V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) ) ÷ 3 ) .
Vout(CxRy) = Vin(CxRy) × 0.75 ×
((2 × g−1((Vin(Cx−1 Ry) + Vin(CxRy)) ÷ 2) + 2 ×
g−1((Vin(CxRy+1) + Vin(CxRy)) ÷ 2) +
2 × g−1((Vin(Cx+1Ry) + Vin(CxRy)) ÷ 2) + 2 ×
g−1((Vin(CxRy−1) + Vin(CxRy)) ÷ 2) +
g−1((Vin(Cx−1Ry+1) + Vin(CxRy)) ÷ 2) +
g−1((Vin(Cx+1Ry+1) + Vin(CxRy)) ÷ 2) +
g−1((Vin(Cx+1Ry−1) + Vin(CxRy)) ÷ 2) +
g−1((Vin(Cx−1Ry−1) + Vin(CxRy)) ÷ 2)) ÷ 12) +
Vin(Cx−1Ry) × 0.125 × g−1((Vin(Cx−1Ry) + Vin(CxRy)) ÷ 2) +
Vin(CxRy+1) × 0.125 × g−1((Vin(CxRy+1) + Vin(CxRy)) ÷ 2) +
Vin(Cx+1Ry) × 0.125 × g−1((Vin(Cx+1Ry) + Vin(CxRy)) ÷ 2) +
Vin(CxRy−1) × 0.125 × g−1((Vin(CxRy−1) + Vin(CxRy)) ÷ 2) −
Vin(Cx−1Ry+1) × 0.0625 × g−1((Vin(Cx−1Ry+1) + Vin(CxRy)) ÷ 2) −
Vin(Cx+1Ry+1) × 0.0625 × g−1((Vin(Cx+1Ry+1) + Vin(CxRy)) ÷ 2) −
Vin(Cx+1Ry−1) × 0.0625 × g−1((Vin(Cx+1Ry−1) + Vin(CxRy)) ÷ 2) −
Vin(Cx+1Ry−1) × 0.0625 × g−1((Vin(Cx+1Ry−1) + Vin(CxRy)) ÷ 2).
To further increase the image quality, the sharpening coefficients including the four corners and the center may use the opposite color input image values. This type of sharpening is called cross color sharpening, since the sharpening coefficients use input image values the color of which is opposite to that for the rendering coefficients. The cross color sharpening can reduce the tendency of sharpened saturated colored lines or text to look dotted. Even though the opposite color, rather than the same color, performs the sharpening, the total energy does not change in either luminance or chrominance, and the color remains the same. This is because the sharpening coefficients cause energy of the opposite color to be moved toward the center, but balance to zero (−x−x+4x−x−x=0).
V out ⁡ ( C x ⁢ R y ) = ⁢ V in ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ( ( V in ⁡ ( C x - 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ ⁢ 2 ) + g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ R y + 1 ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x + 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ R y - 1 ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) + ⁢ V in ⁡ ( C x - 1 ⁢ R y ) × 0.125 × g - 1 ( ( V in ⁡ ( C x - 1 ⁢ R y ) + ⁢ V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V in ⁡ ( C x ⁢ R y + 1 ) × 0.125 × ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ R y + 1 ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y ) × ⁢ 0.125 × g - 1 ⁡ ( ( V in ⁡ ( C x + 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y - 1 ) × 0.125 × g - 1 ( ( V in ⁡ ( C x ⁢ R y - 1 ) + ⁢ V in ⁡ ( C x ⁢ R y ) ) ÷ 2 )
(wherein the above Vin are either entirely Red or entirely Green values)
+ V in ⁡ ( C x ⁢ R y ) × 0.125 - V in ⁡ ( C x - 1 ⁢ R y + 1 ) × 0.03125 - V in ⁡ ( C x + 1 ⁢ R y + 1 ) × 0.03125 - V in ⁡ ( C x + 1 ⁢ R y - 1 ) × 0.03125 - V in ⁡ ( C x - 1 ⁢ R y - 1 ) × 0.03125
(wherein the above Vin are entirely Green or Red, respectively and opposed to the Vin selection in the section above)
V out ⁡ ( C x ⁢ R y ) = ⁢ V in ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ( ( V in ⁡ ( C x - 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ ⁢ 2 ) + g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ R y + 1 ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x + 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ ⁢ R y ⁢ - ⁢ 1 ) + V in ⁡ ( C x ⁢ ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) + ⁢ V in ⁡ ( C x - 1 ⁢ R y ) × 0.125 × g - 1 ( ( V in ⁡ ( C x - 1 ⁢ R y ) + ⁢ V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V in ⁡ ( C x ⁢ R y + 1 ) × 0.125 × ⁢ g - 1 ⁡ ( ( V in ⁡ ( C x ⁢ R y + 1 ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y ) × ⁢ 0.125 × g - 1 ⁡ ( ( V in ⁡ ( C x + 1 ⁢ R y ) + V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y - 1 ) × 0.125 × g - 1 ( ( V in ⁡ ( C x ⁢ R y - 1 ) + ⁢ V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) + V in ⁡ ( C x ⁢ R y ) × 0.0625 - ⁢ V in ⁡ ( C x - 1 ⁢ R y + 1 ) × 0.015625 - V in ⁡ ( C x + 1 ⁢ R y + 1 ) × ⁢ 0.015625 - V in ⁡ ( C x + 1 ⁢ R y - 1 ) × 0.015625 - ⁢ V in ⁡ ( C x - 1 ⁢ R y - 1 ) × 0.015625
+ V in ⁡ ( C x ⁢ R y ) × 0.0625 - V in ⁡ ( C x - 1 ⁢ R y + 1 ) × 0.015625 - V in ⁡ ( C x + 1 ⁢ R y + 1 ) × 0.015625 - V in ⁡ ( C x + 1 ⁢ R y - 1 ) × 0.015625 - V in ⁡ ( C x - 1 ⁢ R y - 1 ) × 0.015625
(wherein the above Vin are entirely Green or Red, respectively and opposed to the Vin selection in the section above).
FIG. 51 shows a method 400 including a series of steps having gamma-adjusted sub-pixel rendering. Basically, the omega function, w(x)=x1/ω (step 404), is inserted after receiving input data Vin (step 402) and before subjecting the data to the local average calculation (step 406). The omega-corrected local average (β), which is output from step 406, is subjected to the inverse omega function, w−1(x)=xω, in the “pre-gamma” correction (step 408). Therefore, step 408 is called “pre-gamma with omega” correction, and the calculation of g−1w−1 is performed as g−1(w−1(β))=(βω)γ−1, for example, by referring to a pre-gamma with omega table in the form of a LUT.
If the two local input values are represented by “V1” and “V2”, the local average (α) and the omega-corrected local average (β) are as follows:
(V 1 +V 2)/2=α and
(w(V 1)+w(V 2))/2=β.
When V1=V2, β=w(α). Therefore, at low spatial frequencies,
g −1 w −1(β)=g −1 w −1(w(α))=g(α).
V 1 ≠V 2 and
g −1 w −1(β)≠g −1(α).
V out =ΣV in ×C K ×g −1 w −1((w(V 1)+w(V 2))/2)
V out ⁡ ( C x ⁢ R y ) = ⁢ V in ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) ) ÷ 4 ) + V in ⁡ ( C x - 1 ⁢ R y ) × 0.125 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ ⁢ R y ⁢ + ⁢ 1 ) × 0.125 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ⁢ ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y ) × 0.125 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x ⁢ + ⁢ 1 ⁢ ⁢ R y ) ) + w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y - 1 ) × 0.125 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 )
V out ⁡ ( C x ⁢ R y ) = ⁢ V in ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) ) ÷ 4 ) + V in ⁡ ( C x - 1 ⁢ R y ) × 0.125 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ ⁢ R y ⁢ + ⁢ 1 ) × 0.125 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ⁢ ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y ) × 0.125 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x ⁢ + ⁢ 1 ⁢ ⁢ R y ) ) + w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y - 1 ) × 0.125 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x ⁢ R y ) × 4 ⁢ ⁢ x - ⁢ ( V in ⁡ ( C x - 1 ⁢ R y + 1 ) × x - V in ⁡ ( C x + 1 ⁢ R y + 1 ) × ⁢ x - V in ⁡ ( C x + 1 ⁢ R y - 1 ) × x - V in ⁡ ( C x - 1 ⁢ R y - 1 ) × x
V out ⁡ ( C x + 1 / 2 ⁢ ⁢ R y ) = ⁢ + V in ⁡ ( C x ⁢ R y ) × 0.5 × ( ( g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ÷ 2 ) ) ÷ 4 ) + V in ⁡ ( C x + 1 ⁢ R y ) × 0.5 × ⁢ ( ( g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y + 1 ) ) + w ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 2 ⁢ R y ) ) + w ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y - 1 ) ) + w ⁡ ( V i ⁢ ⁢ n ⁡ ( C x + 1 ⁢ R y ) ) ÷ 2 ) ) ÷ 4 )
V out ⁡ ( C c ⁢ R r ) = ⁢ V in ⁡ ( C x ⁢ R y ) × c 22 × ( ( g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) ) ÷ 4 ) + V in ⁡ ( C x - 1 ⁢ R y ) × c 12 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y + 1 ) × c 23 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y ) × c 32 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁢ ( C x + 1 ⁢ R y ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x ⁢ R y - 1 ) × c 21 × ⁢ g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x - 1 ⁢ R y + 1 ) × c 13 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y + 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x + 1 ⁢ R y + 1 ) × c 33 × g - 1 ⁢ w - 1 ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y + 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x + 1 ⁢ R y - 1 ) × c 31 × ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y - 1 ) ) + ⁢ w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ V in ⁡ ( C x - 1 ⁢ R y - 1 ) × c 11 × g - 1 ⁢ w - 1 ( ( w ⁢ ( V in ⁡ ( C x - 1 ⁢ R y - 1 ) ) + ⁢ w ⁢ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + V in ⁡ ( C x ⁢ R y ) × 4 ⁢ ⁢ x - ⁢ V in ⁡ ( C x - 1 ⁢ R y + 1 ) × x - V in ⁡ ( C x + 1 ⁢ R y + 1 ) × x - ⁢ V in ⁡ ( C x + 1 ⁢ R y - 1 ) × x - V in ⁡ ( C x - 1 ⁢ R y - 1 ) × x .
V out ⁡ ( C c + 1 / 2 ⁢ ⁢ R r ) = ⁢ V in ⁡ ( C x ⁢ R y ) × c 22 × R + V in ⁡ ( C x + 1 ⁢ R y ) × c 32 × ⁢ R + V in ⁡ ( C x - 1 ⁢ R y ) × c 12 × R + V in ⁡ ( C x ⁢ R y - 1 ) × ⁢ c 21 × R + V in ⁡ ( C x + 1 ⁢ R y - 1 ) × c 31 × R + ⁢ V in ⁡ ( C x - 1 ⁢ R y - 1 ) × c 11 × R , ⁢ where ⁢ ⁢ R = ⁢ ( ( g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x - 1 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y + 1 ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x ⁢ R y - 1 ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) ) ) + ⁢ ( ( g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y + 1 ) ) + w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁢ w - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 2 ⁢ R y ) ) + w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) ) ÷ 2 ) + ⁢ g - 1 ⁡ ( ( w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y - 1 ) ) + w ⁡ ( V in ⁡ ( C x + 1 ⁢ R y ) ) ) ÷ 2 ) ) ÷ ⁢ 2 ) ) ÷ 8 ) .
Precondition gamma processing block 516 processes the image data from timing buffer and control block 514 to perform step 304 of FIG. 46 that calculates the function g−1(x)=xy on the input image data Vin where the values for the function at a given y can be obtained from a precondition-gamma table. The image data Vin in which precondition-gamma has been applied is stored in line buffers at line buffer block 518. In one example, three line buffers can be used to store three lines of input image data such as that shown in FIG. 55. Other examples of storing and processing image data are shown in FIGS. 56-60.
Referring to FIG. 54A, processing blocks 512, 514, 518, and 519 operate in the same manner as the same processing blocks in