Method and system for calibrating and controlling a display device

CN117012144BActive Publication Date: 2026-09-04PIXELWORKS SEMICON TECH SHANGHAI CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210989470.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-04-28
Filing Date
2022-08-17
Publication Date
2026-09-04
Estimated Expiration
2042-08-17

Smart Images

  • Figure CN117012144B_ABST
    Figure CN117012144B_ABST
Patent Text Reader

Abstract

A method for controlling display of an image on a display panel of a display device is provided, the method including determining a commanded luminance level for the display panel, generating an index lookup table (LUT) and a mura LUT based on a relationship between a pixel output and a pixel value for each pixel of the display panel for each of a plurality of luminance levels and the luminance level, the relationship being determined during a calibration phase and stored in a memory of the display device, determining an index value for each pixel of the display panel based on the index LUT, determining a corrected pixel value for each pixel based on the mura LUT and the index value, and sending the corrected pixel value to the pixel within the display device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The implementation schemes disclosed in this article relate to the field of emitting digital displays. Background Technology

[0002] Over the years, the quality of digital computer monitors has continuously improved, and extensive changes have occurred in their underlying technologies. Cathode ray tube (CRT) monitors have been rapidly replaced by increasingly advanced flat panel display technologies such as liquid crystal displays (LCDs) and light-emitting diodes (LEDs). Current technological advancements have made organic LED (OLED) displays increasingly prominent, especially in portable devices such as mobile phones.

[0003] All types of modern digital displays synthesize images using a pixel grid; each pixel contains three subpixels: red, green, and blue (RGB). A wide variety of colors and brightness values ​​can be obtained by changing the relative intensity of light in each subpixel. In some display technologies, the brightness of each subpixel is controlled by changing the voltage across the active component. In other display technologies such as LED and OLED, brightness is controlled by changing the current flowing through the active component. Summary of the Invention

[0004] The embodiments disclosed herein are used to calculate corrections for pixel values ​​and brightness levels of a display panel to help reduce color artifacts caused by nonlinear behavior in emitting displays.

[0005] It should be understood that the brief description provided above is intended to present the chosen concepts in a simplified form, as will be further described in the detailed embodiments. This does not imply identification of key or essential features of the claimed subject matter, the scope of which is uniquely defined by the claims appended to the detailed embodiments. Furthermore, the claimed subject matter is not limited to implementations that address any of the shortcomings mentioned above or in any part of this disclosure. Attached Figure Description

[0006] Figure 1 A diagram of the computing device, panel, and calibration device is shown.

[0007] Figure 2 A diagram showing an exemplary control circuit for an OLED device is provided.

[0008] Figure 3 Two graphs of the PWM curve are shown.

[0009] Figure 4 The graphs show the responses of two devices with an OLED panel.

[0010] Figure 5A method for calibrating an OLED panel according to an implementation scheme is shown.

[0011] Figure 6 A method for implementing OLED corrections generated during calibration in a computing device is shown.

[0012] Figure 7 A diagram of a LUT that can be used to correct the OLED response is shown.

[0013] Figure 8 The first graph shows the color difference between two different calibration techniques at different pixel values.

[0014] Figure 9 A second graph showing the color difference between two different calibration techniques at different pixel values ​​is presented. Detailed Implementation

[0015] Miniaturization of emissive display technologies has become increasingly prevalent compared to more traditional transmissive display technologies such as liquid crystal displays (LCDs). Specifically, light-emitting diode (LED) and organic LED (OLED) technologies are steadily replacing LCD technology in various devices such as televisions and mobile phones.

[0016] OLED displays continue to be popular due to their high brightness and near-infinite contrast ratio (e.g., the ratio between the brightest white a display can produce and the darkest black it can produce). OLED displays achieve this performance boost by being emission displays that allow individual pixels to be completely turned off. LCD displays, on the other hand, are transmissive displays, where liquid crystals are used to block the transmission of backlight, which in practice can result in imperfect black coloring and low contrast (e.g., because the darkest possible black is still relatively bright compared to the darkest possible black of most emission displays). Another key difference between LCDs and OLEDs is that LCDs use voltage to set light output (e.g., to emit light), while OLEDs use current. Using current makes the display more sensitive to variations in the manufacturing process. Variations in grayscale across different displays, or even across different pixels within the same display, can be clearly observed to influence the current flowing through the display elements during manufacturing. This difference is called a "mura" when, for the same control signal sent to the display controller, the visible brightness and grayscale change within the same display. "Mura" is a Japanese word meaning unevenness or lack of uniformity.

[0017] Emitting color displays are formed using devices such as diodes, where electrons flowing through the diode transition from a higher energy state to a lower energy state. This energy change releases a photon. The most common example of this is an LED. When an electron crosses a band gap (the energy gap between a high-energy state and a low-energy state), it releases a photon, the frequency of which is related to the band gap voltage. OLEDs behave similarly (in a more complex way). Current flows and the device emits light only when the voltage across the LED is above a threshold. Once the threshold is reached, current begins to flow, and the light output is roughly proportional to the current. However, the light output does not change linearly with the voltage across the OLED because there is a non-linear relationship between the current flowing through the OLED and the voltage across it. Therefore, the OLED control circuitry can be controlled to change the brightness output by directly controlling the current flowing through the OLED.

[0018] The current flowing through the OLEDs can be controlled via a Display Driver Integrated Circuit (DDIC), which directly drives each OLED by programming the current flowing through it. Typically, all OLEDs can be programmed within a short time frame (e.g., less than 1 / 60th of a second). The current, and therefore the light output, is controlled via two parameters sent to the DDIC of the OLED display: individual pixel output and overall display output. Individual pixels are programmed using current associated with their pixel value (PV). The overall display brightness is specified by a Brightness Level (BL) input to the DDIC. BL adjustments input to the DDIC can be represented by the DDIC by changing the relationship between the pixel value and the current flowing through it and / or by simultaneously turning all pixels in the panel on or off using a Pulse Width Modulation (PWM) waveform. In some examples, BL is related to the duty cycle of the PWM waveform (e.g., the amount of time per cycle for the desired current output of the PWM). Ideally, changes to BL should uniformly increase or decrease the visible brightness of all pixels on the panel, thus preserving the brightness ratio between different PVs. For example, the ratio between outputs of PV=16 and PV=128 should ideally remain constant regardless of the overall brightness level of the display. However, as described below, mura and color shift are common problems with OLED displays, especially when operating at lower overall brightness levels. Mura and color shift are caused by a variety of undesirable operating conditions.

[0019] To form a color image using OLED (or virtually any other) display technology, each pixel within the panel can be divided into three subpixels: red, green, and blue (collectively referred to as "RGB"). By varying the relative intensity of each of these subpixels, each pixel can reproduce the appearance of a variety of colors. Another source of non-ideal behavior in OLED displays is the non-uniform current response among the red, green, and blue subpixels; subpixels of different colors may behave differently relative to the same current.

[0020] Therefore, according to the implementation scheme disclosed herein, mura and / or color cast can be addressed by applying corrections to the PV input to the DDIC, resulting in uniform brightness and less severe color cast that can be observed in the panel after the DDIC programs each pixel. As described in further detail below, multiple lookup tables (LUTs) can be generated to apply corrections to the PV, which also depends on the BL.

[0021] The set of LUTs available for a computing device may also vary depending on the panel. Therefore, a method for calibrating a lookup table for mura and / or color shift correction is disclosed, wherein LUT calibration is performed by performing multiple measurements on the visible luminance emitted from the panel.

[0022] Figure 1 An exemplary figure 100 is shown corresponding to the interface between computing device 102 and panel 120, which may be an OLED display in the embodiments described herein.

[0023] The computing device 102 may include virtually any digital computing technology, including but not limited to portable computers, mobile phones, color televisions, etc. The computing device 102 includes a memory 104 and one or more processors 106. The memory 104 may include volatile memory (e.g., random access memory (RAM)) and / or non-volatile memory (e.g., hard disk drive (HDD)). The processor 106 may include one or more central processing units (CPUs) configured to execute machine instructions stored in the memory 104. To generate visual output, the computing device 102 may also include a graphics processing module 110, which may be a separate piece of hardware (e.g., a graphics processing unit (GPU)). In other examples, the graphics processing module 110 may include a set of instructions stored in the memory 104 and executed using the computing resources of the processor 106. In some examples, the graphics processing module 110 generates output usable with the panel 120 by generating a set of pixel values ​​output to the DDIC. In other words, the graphics processing module 110 converts data from the processor 106 into a series of pixel values ​​that can be used to program the panel 120.

[0024] To provide correction for the PV generated and output to panel 120, graphics processing module 110 also includes OLED correction module 112, which is configured to generate a correction to the original PV generated by graphics processing module 110. OLED correction module 112 can route the desired PV to a series of lookup tables (relative to the panel's blue line and subpixel colors) based on the panel's blue line and subpixel colors. Figure 6 (Further details to follow)

[0025] Panel 120 includes two main components: DDIC 122 and pixel grid 128. Each pixel contains three sub-pixels: red sub-pixel 130, green sub-pixel 132, and blue sub-pixel 134. Each sub-pixel includes a relative... Figure 2 The OLED circuitry is shown in further detail below. The brightness of each sub-pixel is set via a current mirror and a capacitor that stores the current flowing through the OLED.

[0026] The current flowing through each OLED is driven by a DDIC 122, which individually programs each OLED by allowing current to flow through a current mirror. The DDIC 122 can program the current flowing through each pixel (and sub-pixels). For example, the pixels of panel 128 can be arranged in a rectangular grid addressable by rows and columns. Rows and columns can be addressed via two switches, one for rows and the other for columns. In some examples, the DDIC can program an entire row of pixels 128 simultaneously, where rows to be programmed are selected sequentially (e.g., from the top row to the bottom row). The DDIC can also change the overall brightness of panel 120 by using different BLs. Different BLs input to the DDIC can allow the DDIC to apply PWM waveforms to all pixels 128 simultaneously.

[0027] In some examples, DDIC may also include a DDIC correction module 124, typically installed by the manufacturer of panel 120. The manufacturer of the panel (such as panel 120) may attempt to perform self-correction to reduce or eliminate mura and / or color shift effects in the panel. Generally, the nature of the DDIC correction performed by DDIC correction module 124 may not be readily apparent. Therefore, in some embodiments, the PV correction methods disclosed herein may take into account the PV correction performed by the DDIC correction module.

[0028] This can be achieved through calibration processes (such as relative to...) Figure 5The method 500, described in further detail, generates a calibration of the OLED control. Calibration can be performed by a calibration device 150, which can be coupled to both the panel 120 and the computing device 102 during calibration. The calibration device 150 is also a computing device, equipped with additional hardware. For example, it could be a machine operating within a factory that manufactures computing devices such as computing device 102.

[0029] The calibration device 150 includes a memory 152, which may include volatile and / or non-volatile memory. The memory 152 can be used to store measurement data 154 and the calibration module 156, wherein the measurement data may include, for example, measurement results from various different panels that can be used to generate calibration. In some examples, the measurement data 154 also includes a set of prototype EOTFs calculated from the obtained measurement results, which describe the output of a series of panels. The calibration module 156 may include a computer program designed to use the measurement data to generate calibration data. The program stored within the calibration module 156 can be executed using a processor 160. To obtain calibration data from each panel, the calibration device 150 also includes a camera 158, which may include virtually any digital camera device (e.g., a CCD camera) with sufficient resolution. The calibration data generated by the calibration module may include a set of lookup tables (LUTs), which may be transferred to the computing device 102 for use in the OLED calibration module 112.

[0030] Figure 2 Figure 200 shows a circuit configured to program and drive multiple OLED devices, each of which is configured to emit light in response to an electric current. Programming the OLED devices involves setting a current to flow through the device via a DDIC 250, which continues even after the DDIC 250 is disconnected from the OLED device. Figure 200 includes multiple OLED driver circuits 210, each of which includes an OLED device 212 and a current mirror 220. The current flowing through each OLED device is specified by the DDIC 250 (which is an example of a DDIC 122 within a panel). The actual current flowing through each OLED device 212 is provided by the current mirror 220, which is described in further detail below.

[0031] To power the DDIC 250 and the OLED driver circuitry 210, each is connected to a voltage (VCC) 202 at the common collector and to ground 204. Unless otherwise specified, the voltage referenced relative to ground 204 will be 0 volts, as defined herein. The voltage difference can be provided and maintained, for example, by connecting to a power supply to the panel.

[0032] To individually specify the brightness of each OLED device, each OLED driver circuit in these OLED driver circuits 210 includes a row switch 230 and a column switch 232. The row switch 230 and column switch 232 can be turned on or off by the DDIC 250 to select which OLED device is currently being set by the DDIC. For example, if the panel contains a rectangular pixel array arranged in 1080 rows of pixels, with each row containing 1920 pixels, the row switch can be used to select a specific row of pixels, and the column switch can be used to select a specific pixel within that specific row. In some examples, the column switch 232 can be used to select a specific sub-pixel within a specific pixel. In some examples, the row switch can be implemented as a delay line, and the column switch can have an additional digital-to-analog converter. When both the row switch 230 and column switch 232 are off, a setting current 258 is configured to flow into the current mirror 220 of the OLED driver circuit associated with that specific (sub)pixel. Otherwise (e.g., if the row switch 230 and / or column switch 232 are on), the setting current 258 does not flow into the current mirror 220. This can happen, for example, if the DDIC 250 is configured to program different OLED control circuits.

[0033] The current mirror 220 within each OLED driver circuit also includes a first transistor 222, a second transistor 224, and a setting capacitor 226. The first transistor 222 and the second transistor 224 may comprise a metal-oxide-semiconductor field-effect transistor (MOSFET) or virtually any other type of transistor technology. Continuing with the MOSFET transistor technology as an example, each of the first transistor 222 and the second transistor 224 may include a source, a drain, and an emitter. In some examples, the emitter of the first transistor 222 and the emitter of the second transistor 224 may also be connected to ground 204. The setting capacitor 226 is also connected to the first transistor 222 and the second transistor 224, and allows a setting current 258 to be stored within the current mirror 220 whenever both the row switch 230 and the column switch 232 are closed.

[0034] However, the configuration of the current mirror 220 and the connection between the DDIC 250 and each OLED driver circuit in the OLED driver circuit 210 may introduce several non-ideal effects. The connection between the first transistor 222, the second transistor 224, the row switch 230, and the column switch 232 may introduce non-ideal effects because parasitic capacitance may occur between the switches and transistors. Furthermore, the current flowing through the first and second transistors may vary non-linearly with pixel values. In many panel examples, each OLED driver circuit 210 within a row of pixels shares a ground 204. For example, row pixels may be connected to different grounds, but the close proximity of these grounds to each other creates parasitic capacitance 206, which may generate parasitic current to ground 204, thus diverting current away from the current mirror 220. Additionally, if the row and column switches do not close for a sufficiently long time, current can flow through the setting capacitor 226, which also leads to erroneous current being stored.

[0035] Manufacturing variations can further lead to non-ideal behavior in each OLED driver circuit. For example, each of the first transistor 222 and the second transistor 224 may have an associated threshold voltage, each of which must be satisfied for the current mirror 220 to drive the OLED device 212. Below the threshold voltage, the OLED device 212 will not emit light. Furthermore, variations in the capacitance of the setting capacitor 226 in different circuits can cause variations in the current flowing through the setting capacitor 226, resulting in different currents being driven through the OLED device 212.

[0036] To drive each OLED driver circuit in OLED driver circuitry 210, a set current 258 supplied by the DDIC can be provided via pulse width modulation (PWM). This can, for example, include oscillating the set voltage to generate a set current from a high value to ground. The frequency of the oscillation can be specified by a duty cycle, which can be, for example, specified as a fraction of the time the PWM waveform is at its high point. The duty cycle of the PWM waveform can be used to turn all OLED devices on and off simultaneously, and thus can be used to specify the panel's BL. It should be noted that, generally, a time offset (e.g., phase delay) can exist between the PWM waveforms driving different OLED devices. The amplitude of the PWM waveform can be adjusted individually when generating the output for each OLED driver circuit, and is therefore used in some examples to specify the PV. The following is relative to... Figure 3 Further details for different PWM cycles are shown.

[0037] Figure 3A first PWM curve 300 and a second PWM curve 350 are shown. Both the first and second PWM curves illustrate examples of the ideal and actual outputs from a PWM driver circuit that applies a voltage to an OLED driver circuit (such as one of the OLED driver circuits 210). Each shows the ideal and actual response of an OLED element (e.g., OLED device 212) to a PWM signal. The first PWM curve 300 shows the response of the OLED circuit at a first higher PV. The second PWM curve 350 shows the response of the OLED circuit at a second lower PV, where the maximum voltage is related to the current based on the desired PV. In the examples described below, the y-axis represents the voltage across OLED device 212.

[0038] The first PWM curve 300 includes a first ideal voltage 306 and a first actual voltage 308 that vary with time on the y-axis 326. The x-axis 328 represents time. The ideal voltage 306 ranges from ground (e.g., 0V, y=0) to a first maximum voltage 302, depending on the desired PV. For light to be emitted from the OLED device, the output voltage must reach a voltage threshold 304. After reaching the voltage threshold 304, the brightness of the OLED element is approximately proportional to the current flowing through it, as described above relative to... Figure 2 As explained, the current can be approximated as being roughly proportional to the voltage above a threshold. Although this relationship may not be linear, a higher voltage applied across the OLED element will result in a larger current flowing through it, meaning that adjusting the first maximum voltage 302 will affect the apparent brightness of the OLED element.

[0039] The first ideal voltage 306 comprises a first ideal pulse 310 generated by a first minimum duty cycle, which abruptly rises to a first maximum voltage 302 before returning to ground. Like other ideal pulses, the first ideal pulse 310 is substantially rectangular in the first PWM curve 300. The first actual pulse 312 has a more triangular shape, meaning that the first actual pulse 312 rises linearly before immediately decreasing linearly. The triangular shape of the first actual pulse 312 (and other actual pulses) is caused by the finite slew rate of the OLED driver circuitry and the parasitic capacitance of the PWM driver circuitry itself. However, the voltage of the first actual pulse 312 is above the voltage threshold 304 only for less than half the duration of the first ideal pulse 310. This indicates that at low duty cycles, parasitic capacitance causes the OLED to be off for most of the PWM pulse duration. At very low duty cycles and pixel values ​​(e.g., due to very low BL), it may be impossible to turn on the OLED at all, as will be explained in further detail in the second PWM curve 350 below.

[0040] The first PWM curve 300 includes a second ideal pulse 314 at a second higher duty cycle (e.g., higher than the first duty cycle of the first ideal pulse 310), allowing the voltage of the second actual pulse 316 to reach a first maximum voltage 302, plateau at the maximum voltage, and then linearly drop back to ground. The second actual pulse 316 is above the threshold voltage 304 for approximately 80% of the time that the second ideal pulse 314 is above the OLED threshold. Therefore, at longer duty cycles (e.g., higher BL), the second actual pulse 316 is above the threshold voltage 304 for a significant portion of the ideal pulse's duration. If the actual pulse is above the OLED threshold for a longer period, the display will appear brighter overall.

[0041] The first PWM curve 300 includes a third ideal pulse 318 having a third higher duty cycle, which is higher than the first duty cycle of the first ideal pulse and the second duty cycle of the second ideal pulse. The effect of the longer duty cycle of the third ideal pulse 318 is shown by the third actual pulse 320, which remains above the OLED threshold for approximately 90% of the duration of the third ideal pulse 318. This means that the actual PWM pulse achieves a brightness closer to that of the ideal pulse at a higher BL.

[0042] The first PWM curve 300 includes a fourth ideal pulse 322 with a fourth highest duty cycle (e.g., higher than the first, second, and third duty cycles) and may represent the ideal pulse corresponding to the highest BL. Unlike the first, second, and third ideal pulses, the fourth ideal pulse 322 starts from the first maximum voltage 302 and then briefly drops to ground before returning to the first maximum voltage 302. However, because the duty cycle of the fourth ideal pulse 322 is so high, the fourth actual pulse 324 will not reach a voltage below the threshold voltage 304. This means that the OLED element will periodically dim at approximately the fourth duty cycle rate, but will not turn off completely because the fourth actual pulse 324 is above the threshold voltage 304 for 100% of the duration of the fourth ideal pulse 322.

[0043] The second PWM curve 350 is characterized by a second ideal voltage 356 and a second actual voltage 358 with four pulses, these four pulses having the same four duty cycles as the first PWM curve 300, for example, the same four BLs. The second PWM curve 350 is also characterized by a second maximum voltage 352, which is lower than the first maximum voltage 302. Therefore, the second maximum voltage 352 can represent a PV lower than the first maximum voltage 302. Similar to the first PWM curve 300, the second PWM curve 350 plots the relationship between voltage (ideal and actual) on the y-axis 376 and time on the x-axis 378.

[0044] The second ideal voltage 356 is characterized by a first ideal pulse 360 ​​at a first duty cycle. However, the low duty cycle of the first ideal pulse 360 ​​and the limited switching rate of the OLED circuit cause the first actual pulse 362 to rise and fall without reaching the threshold voltage 304, meaning that the OLED element will not emit light. This indicates that at lower PV, a small BL may not even produce any emitted light.

[0045] The second ideal voltage 356 is characterized by a second ideal pulse 364 operating at a second duty cycle. The second actual pulse 366 is above the threshold 304 only for approximately 60% of the duration of the second ideal pulse 364 (which is less than the duration of the second actual pulse 316 relative to the first actual voltage 308). Similarly, the third ideal pulse 368 operating at a third duty cycle has a voltage above the voltage threshold 304 for approximately 80% of the duration of the third ideal pulse 368 (compared to 90% of the duration of the third actual pulse 320 relative to the first actual pulse 312).

[0046] The second ideal voltage 356 is characterized by a fourth ideal pulse 372 operating at a fourth duty cycle. In this case, the fourth actual pulse 374 is above the voltage threshold 304 only for approximately 50% of the duration of the fourth ideal pulse 372, meaning that the OLED begins to flicker on and off for low PV, even at high BL. This means that, especially for low PV, the overall brightness of the panel does not change linearly with BL.

[0047] The minimum brightness level (BL) required to fully open an OLED is called the luminance level threshold (BLT), and empirically, its behavior conforms to an equation of the following form:

[0048] BLT(PV) = a(PV) -b ,

[0049] Two of the fitting parameters, a and b, can typically depend on the properties of a given pixel, such as its location and parasitic capacitance. However, in practice, the value of b tends to remain constant across the entire panel, meaning that only the value of a tends to vary between pixels. Characterizing BLT as a function of PV (e.g., as described in the equation above) allows pixel outputs to be characterized as functions of PV and BL, such as EOTF as a function of PV and BL, which can be used to generate a corrected value of PV based on the desired brightness of the panel.

[0050] Figure 4A graph 400 is shown, illustrating exemplary theoretical luminance levels as a function of command BL for seven different command PVs. The seven response curves of graph 400 are theoretical examples of measurements that can be obtained from the same OLED driver circuit (e.g., an OLED driver circuit for a single subpixel). In graph 400, the theoretical output luminance is displayed on the y-axis 404, normalized for each pixel value such that for each pixel value, the maximum output luminance is 1 and the lowest measured luminance is 0. For example, for pixel value 255, the maximum output luminance of that pixel value could be the maximum luminance that the pixel can produce, while for pixel value 128, the maximum output luminance of that pixel value could be half of the maximum luminance that the pixel can produce, and when commanded for pixel value 255, it could be half of the maximum output luminance of that pixel. The x-axis 402 shows the normalized command BL, where the maximum BL (e.g., the maximum BL that can be output) is 1. The curve graph 400 includes a first curve 406 (e.g., PV = 255), a second curve 408 (e.g., PV = 100), a third curve 410 (e.g., PV = 50), a fourth curve 412 (e.g., PV = 33), a fifth curve 414 (e.g., PV = 25), a sixth curve 416 (e.g., PV = 20), and a seventh curve 418 (e.g., PV = 17).

[0051] Within a given OLED driver circuit, variations in the parasitic capacitance and / or threshold voltage of the transistors cause the measured luminance value (e.g., response) to have different dependencies compared to different commanded PVs. First curve 406 illustrates a substantially linear (ideal) dependency of the measured luminance on BL. Each of the other curves (e.g., second curves 408 through seventh curves 418) sequentially (e.g., in the order of second to seventh) shows an increasing deviation from the ideal linear dependency of the measured luminance on BL as PV decreases; for example, the non-linearity of the luminance response relative to BL increases. Furthermore, the response of each pixel within the panel can depend on the pixel's position within the panel and one or more parameters of the panel (e.g., parasitic capacitance, transistor threshold variation, etc.). Therefore, although... Figure 4 The luminance response curves for different PVs of a given pixel are shown, but different pixels on the same panel may exhibit different luminance response curves. However, each pixel may exhibit the same overall trend, namely, the deviation from the ideal linear curve increases as the pixel value decreases.

[0052] As mentioned above, in contrast to Figure 2 and Figure 3 The parasitic capacitance effect alters the ideal linear response of brightness levels from maximum to zero brightness to the following: brightness decreases to zero at non-zero brightness levels, and decreases to zero at a faster rate as the pixel value decreases. This is exemplified by, for example, according to BLT = a(PV).-b Having resolved the dependency of BLT on PV, the overall output of the pixel located at (x,y) under PV can be given, for example, by the following equation:

[0053] output = EOTF(x,y,BL,PV),

[0054] Here, EOTF is the EOTF, which depends on PV, BL, and BLT (which in turn is calculated from PV). In many cases, BL can be approximately constant because it is constant across all pixels within the panel and can change slowly relative to changes in PV. Keeping BL constant generates an EOTF for a given BL, denoted as EOTF. BL It still depends on PV:

[0055] output = EOTFM BL (x,y,PV).

[0056] Throughout this disclosure, subscript values ​​(such as BL above) indicate values ​​that remain constant. The EOTF for a given BL is the actual EOTF for a panel with a fixed BL, for example, the actual output of a panel with a command PV under a fixed BL. The behavior of this function can be non-linear, especially for low BL and low PV. However, the EOTF function can be corrected. BL Based on the matching standard EOTF, it is represented as EOTFS. BL Its behavior relative to the command PV can be more linear. The standard EOTF is independent of pixel position because it specifies a uniform output that should not change relative to pixel position. To perform correction, a corrected pixel value, denoted as PV′, can be found such that:

[0057] EOTF BL (x, y, PV′) = EOTFS BL (PV).

[0058] Therefore, the corrected pixel value PV′ can be commanded by the computing device and selected such that the measured output generated using the corrected pixel value PV′ matches the standard output under the desired PV. Assume that EOTF under a given BL has a suitable inverse function EOTF. BL,INV Then, by applying the inverse function to both sides of the above equation, the modified pixel value can be found, thus obtaining:

[0059] PV′(x, y, BL, PV) = EOTS BL,INV (x, y, EOTF) BL (x, y, PV′))=EOTF BL,INV (x, y, EOTFS) BL (PV))

[0060] Based on the equation above, the EOTF model for a given BL allows the calculation of a corrected pixel value PV′ from the desired PV. Sending the corrected pixel value PV′ to each pixel within the panel allows the panel to operate according to the standard EOTF. The corrected value PV′ is also called the mura value of the pixel, and is also denoted as MURA(x, y, BL, PV) in this paper.

[0061] Measuring the luminance response of each pixel at various pixel values ​​allows determining the relationship between the pixel output and luminance level of each pixel in the display panel (for each of the multiple pixel values). This relationship can be used to generate a corrected pixel value PV′ for each (sub)pixel within the panel, which allows the linear response of each pixel relative to the luminance level to be substantially more linear. As further detailed below, the correction can be given by a series of LUTs that take the command PV, the pixel's position, and BL as input to produce a more linear dependence of the measured luminance on PV. To measure (and thus correct) the panel's response, a calibration device is configured to measure the output of each pixel, generate corrections, and transmit these corrections to a computing device connected to a given panel, as further detailed below.

[0062] Alternatively, the BLT at any given PV can be determined by taking two measurements of the actual luminance at two different BLs. It is advantageous to determine the BL from two BLs because the output can be measured at a high BL, where the pixel output is approximately linear with respect to the BL. The BLT can then be calculated as the x-intercept of the approximately linear output.

[0063] For example, given a first BL BL1 and a second BL BL2, the measured output under the first BL is given by EOTFM(BL1, PV), and the measured output under the second BL is given by EOTFM(BL2, PV). In this case, the BLT for PV is given by:

[0064]

[0065] Since the first and second outputs each depend on PV, measuring BLT under two different PVs allows for the calculation of the equation BLT(PV) = a(PV). -b The first fitting parameter 'a' and the second fitting parameter 'b' are given in the equation. For example, given a first PV PV1 and a second PV PV2, the first BLT can be calculated using BLT(PV1), and the second BLT can be calculated using BLT(PV2) (e.g., using the equation above, where there are two BLs for each of the first and second PVs). The fitting parameters can be calculated using the following formula:

[0066]

[0067] It should be noted that in the equation above, the logarithm is the natural logarithm, but any other positive number can be used as the base of the logarithm without changing the calculation result (provided that all logarithms use the same base). Therefore, calculating the first and second fitting parameters allows for the calculation of BLT under all possible PVs. In general, the first and second fitting parameters also depend on the pixel location, because each pixel can have a different associated parasitic capacitance.

[0068] In practice, the value of the second fitting parameter b tends to remain constant throughout a given panel. Therefore, once the second fitting parameter b is determined, the value of the first fitting parameter a can be determined for each location within the panel, for example, by measuring a single BLT under a single PV. The BLT can be computed for each pixel for each PV, thus generating a correction for the PV. As will be explained in further detail below, the correction can be implemented in the form of a mura LUT that takes the pixel location (e.g., x and y values ​​representing its location) and the command PV as input. Therefore, a mura LUT can be used to generate a corrected pixel value PV′ for each command PV, each BL, and each spatial location of the pixel.

[0069] based on Figure 2 The OLED driver circuit described herein states that the output of the OLED element is a function of four variables: parasitic capacitance, threshold variation (e.g., variation in the activation threshold of the first and second transistors), PV, and BL. Threshold variation and parasitic capacitance have similar effects on the relationship between PV, BL, and output brightness. A larger threshold requires more time to reach a given capacitance threshold, and vice versa. Therefore, parasitic capacitance and transistor threshold can be considered as a single source of variation affecting the actual output. The EOTF, described, is given as a function of four variables, varying based on the position on the panel:

[0070] output=EOTF(x,y,BL,PV),

[0071] Here, x and y represent the column and row of a pixel, respectively. In some examples, x and y may represent the position of a group of pixels instead of the position of an individual pixel. EOTF takes pixel position, BL, and PV as inputs, which indirectly represent the properties of the electrical signal. For example, BL may represent the duty cycle of the PWM function used to drive all pixels in the panel at once, and PV may represent the current flowing through the pixel located at (x, y) relative to the current driving all pixels. As mentioned above, EOTF represents the measured light output of a pixel.

[0072] All possible values ​​of EOTF can be stored within a 4D LUT, so corrections performed based on EOTF utilize a 4D LUT (e.g., one input for x, one for y, one for BL, and one for PV). It should be noted that the LUT does not store correction values ​​for each individual pixel, but rather for groups of pixels. For example, pixels can be divided into 32 row groups and 64 column groups, meaning the LUT's y and x inputs can take 64 and 32 different values, respectively. The group to which each pixel (or subpixel) belongs is determined by its row and column. In some examples, the LUT can specify which row and column group a given pixel belongs to. If the output LUT has 32 buckets for output correction, 32 buckets for luminance, and separate tables for the three color channels, the total size of all tables exceeds 6 million entries. If each entry includes a numeric word (e.g., 2 bytes or 16 bits), the total size of all LUTs exceeds 6 million words (e.g., 12 megabytes). If each table is programmed for a single BL, approximately 96,000 words (192 kilobytes) would need to be stored, which is typically too much to be transferred from the graphics processing module to the OLED correction module in a single vertical blanking interval (VBI, e.g., the time between drawing the last row in one frame and drawing the first row in the next frame).

[0073] Given that the cause of output variation is similar regardless of the source (e.g., parasitic capacitance and / or threshold variation), the output is not explicitly dependent on the location itself, but rather on the parasitic / threshold at that location, thus allowing the output to be rewritten as:

[0074] output=MURA(x,y,BL,PV)=MURA′(I(x,y),PV),

[0075] Wherein, the 2D LUT I(x, y) represents the dependence of the output on the parasitic capacitance and threshold variation at position (x, y), and is called the indexed LUT. In some examples, the indexed LUT is generated for each spatial position using BLT, as described in further detail below with respect to method 500. The 2D LUT MURA′ represents the corrected output as a function of the indexed LUT, and is called the indexed mura LUT. The indexed mura LUT takes the index value (from the indexed LUT), BL, and PV as inputs and returns the output value of the corrected mura. Compared to storing a single 4D LUT (e.g., representing the EOTF-corrected mura LUT), transmitting the mura-corrected LUT and the indexed LUT separately can save space in the device's memory. Furthermore, the indexed mura LUT for a single BL (denoted as MURA′) BLThis is sufficient for use within a single brightness level, thus contrasting the need to update millions of words during MURA's transmission. BL Only a few thousand words need to be updated during transmission. For example, an indexed single BL mura LUT MURA′ can be transmitted quickly using a single constant BL. BL Furthermore, a new indexed single BL mura LUT can be sent at any time the BL changes. Since BL changes are relatively slower compared to PV changes, the indexed single BL mura LUT can be sent... BL Used as a suitable approximation of MURA′.

[0076] In many panel examples, the panel output is also affected by the use of gamma correction. Gamma correction can be performed by using a nonlinear output that is a power of γ proportional to the linear output. In many examples, this correction is performed within the panel and therefore affects the EOTF measurement (and thus the EOTF LUT). The gamma correction can be expressed using the EOTF LUT as follows:

[0077]

[0078] After applying correction, the output can be represented using the mura LUT, the indexed mura LUT, and the indexed LUT as follows:

[0079] output=MURA(x,y,BL,PV) 1 / γ =MURA′(I(x,y),PV) 1 / γ .

[0080] In most cases, γ ≥ 1 and γ can take non-integer values. Gamma correction can be used within the panel to, for example, improve the contrast in the image displayed on the panel. The value of γ is usually constant throughout the panel, but they can be adjusted by the user during panel operation (e.g., by the user giving commands for different values ​​of γ). The above equation can be used to account for gamma correction during OLED calibration, which will be relative to... Figure 5 Further details.

[0081] In many cases, non-ideal panel behavior can be corrected by changes implemented on the DDIC. These changes to the DDIC can be implemented by the panel manufacturer in an attempt to correct for the effects of nonlinear behavior in the panel. Generally, the nature of the correction performed by the DDIC may be unknown and may vary depending on the different BLs. Panel manufacturers may not disclose the nature of the correction made by the DDIC to the panel; instead, the correction can be addressed by measuring the output from the panel. To account for the correction performed by the DDIC, this paper discloses a method for performing adjustments using multiple prototype EOTFs derived from measurements of a large number of panels at different outputs.

[0082] Figure 5 A flowchart of a method 500 for generating a LUT that can be used to calibrate the response of an OLED within a panel, such as panel 120 connected to a computing device such as computing device 102. As described herein, the response of the OLED is the pixel output within the panel in response to commands PV, γ, BL, and pixel positions (e.g., x and y, rows and columns of pixels within the panel). Method 500 can be performed by a calibration device (such as calibration device 150). For example, method 500 can be stored in the memory of the calibration device (such as memory 152); method 500 is an example of calibration module 156 and can be performed using one or more processors (such as processor 160). Method 500 can take both measurement data (e.g., measurement data 154) and data from a camera (such as camera 158) as input. The camera can be used to measure multiple pixels on the panel (e.g., pixel 128 on the panel). At 510, the measurement data generated by the camera can be used to generate an EOTF for each pixel (or group of pixels) using a theoretical model. Alternatively or additionally, the measurement data can be combined with one or more prototype EOTFs to generate a set of EOTFs describing the behavior of the panel. These EOTFs can also be used to generate one or more mura LUTs, as well as a set of indexed LUTs and indexed mura LUTs, which can be transferred to a computing device and stored, for example, in the OLED correction module 112. Indexed mura LUTs and indexed LUTs use less computational resources compared to mura LUTs.

[0083] At 502, method 500 includes obtaining measurement results for several panels at multiple different gray levels and blue lines (BL). The measurement results are the response of the OLED devices within the panels. As used herein, gray level is a command PV, for which the red, green, and blue subpixels within each pixel are assigned the same input (e.g., a gray level is represented by the case where the PVs of the red, green, and blue subpixels of all pixels within the panel are each equal to 128). For each measurement, the BL and PV used for that measurement can be transmitted to a DDIC, such as DDIC 122 of the panel. In some examples, the calibration device can be communicatively coupled to the computing device and the panel, allowing the calibration device to directly specify the input. These measurement results can be stored in the measurement data of the calibration device.

[0084] A wide range of manufacturing variations can be represented by panels that can be selected for the measurements obtained at 502. The number of different interpolations used to obtain the measurements at 502 depends on how well the interpolation predicts the response at a moderate interpolation level. Figure 4 The theoretical model shown indicates that only two key BL values ​​are sufficient to generate accurate corrections. At 502, the measured grayscale and BL values ​​are far greater than those used to calibrate each panel. Measuring a large number of key BLs and grayscale values ​​allows for the identification of a set of key BLs and key grayscale values ​​at 503. For example, a set of BLs measured at 502 can range from 0 to a maximum value (e.g., 255) and can include almost all BLs in between, or a subset of BLs in between (e.g., 5 to 10 BLs). For each BL, measurements can be taken at several (e.g., more than 20) grayscale values, for example, by using a camera. Since the accuracy of the correction obtained from the LUT generated during method 500 can depend considerably on which specific grayscale values ​​are used, a sufficient number of grayscale measurements can be obtained at 502 to accurately calculate the remaining grayscale values ​​by interpolating the measured grayscale values. For each panel, measurements can also be obtained from multiple different pixels (e.g., 2 million pixels) or multiple different groups of pixels (e.g., 2,000 different groups of pixels, obtained by averaging the responses of all pixels within a given group of pixels).

[0085] If the EOTF response of the pixels within the panel is based on a known model (e.g., the model shown in curve 400 (see above)). Figure 4 Depending on the PV and BL, a few measurements are sufficient to predict the panel's EOTF response for almost all BL and PV. Estimating the (nonlinear) EOTF response for a given BL involves calculating the BLT for a given PV:

[0086]

[0087] Among them, BL maxFor the maximum possible BL (e.g., 255), output(PV, BL) is the uncorrected output given PV and BL, and output′(PV, BL) is the corrected output given PV and BL. It should be noted that, in general, each of the functions above also depends on x and y, but these functions are omitted for clarity.

[0088] As mentioned above, BLT = a(PV) -b , where a and b typically depend on x and y. However, in practice, the dependence of b on x and y is usually negligible. Furthermore, empirical evidence shows that the value of b varies insignificantly among panels of the same series (e.g., panels manufactured to the same specifications and subjected to the same DDIC correction). Therefore, for a given BL, output(PV, BL) depends only on the measurement of a, where a varies from panel to panel and from position on the panel. The theoretical model for the output as a function of PV is:

[0089] output γ = m(BL-BLT(PV)).

[0090] The equation above has two unknowns: m and BLT(PV). Therefore, if BL remains constant, the measurements for each pixel or group of pixels at two different luminance levels are sufficient to estimate the BLT (and thus sufficient to estimate the EOTF response at a given BL). As mentioned above, finding the BLT for two different PVs is sufficient to find the BLT for all possible PVs: BLT(PV) = a(PV). -b Furthermore, empirical evidence suggests that the value of b does not change significantly across a given panel. Therefore, the EOTF response of a panel can be determined with reasonable accuracy by storing only the value of a or only the transformed value based on a as an indexed LUT value.

[0091] At 503, method 500 includes determining key BLs and key PVs. Key BLs are selected such that interpolation between adjacent key BLs produces an accurate reconstruction of the EOTF. Key pixel values ​​are selected gray levels such that interpolation between key PVs using one or more prototype EOTFs (e.g., determined below at 505) produces an accurate reproduction of the measured EOTF obtained at 502. Identifying key PVs for each key BL value allows interpolation of values ​​between key PVs within each BL. The number of key PVs to be identified can be specified beforehand and / or adjusted based on observations of the EOTF response measured in 502. A set of key BLs is denoted as BLK. A set of key PVs for a specific key BL is denoted as PVK. BLThe key BLs and key PVs determined at 503 can be used to reduce the acquisition time of measurements from additional panels, because this set of key BLs may be much smaller than the BLs measured at 502 above, and the set of key PVs for each BL is smaller than the set of grayscales measured at 502 above.

[0092] Once the (nonlinear) EOTF response under several key BLs (e.g., two or three BLs) and several key PVs (e.g., two or three PVs for each key BL) is known, the time required to calibrate the panel can be greatly reduced because the panel calibrated according to the method described herein can be measured using only the inputs corresponding to the previously identified key BLs and key PVs.

[0093] At 504, method 500 includes determining a ranking value. As will be further explained below, the ranking value is the PV under which (non-linear) EOTF responses or mura LUT entries will be grouped and ranked, such that (non-linear) EOTF responses for adjacent PVs are highly correlated with the ranking value PV. This high correlation between the (non-linear) EOTF response and the ranking value PV allows for reliable prediction of the (non-linear) EOTF response across different PVs within the ranking value range. For example, Figure 4 The fourth curve 412 corresponds to a PV of 32, and in Figure 4 In the example shown, a single sorting value (e.g., PV = 32) is sufficient to generate the correction because (e.g., as in the first curve 406) a larger deviation from the ideal response is a result of a larger BLT value at that PV, and according to the model, the BLT of other pixel values ​​will also increase.

[0094] The sorting value can be determined empirically by plotting the measured pixel output (e.g., measured brightness) for the prototype EOTF (as determined at 505 and described below) as a function of the command PV for each grayscale; and selecting the PV under which the measured output has a wide range of outputs for the prototype EOTF indicating a large number of muras.

[0095] Choosing a ranking value allows for the prediction of EOTF changes in different pixels (or groups of pixels) at the ranking value using PVs close to the ranking value, and where there is a significant variation in the EOTF response at the ranking value. This can be determined, for example, by plotting the EOTF response (or corresponding mura LUT) of the prototype EOTF (determined at 505) within each of a set of recommended BLs. The results of the key BLs and key gray values, along with the determined ranking values ​​determined at 503 and 504 respectively, can be used to predict the measurement obtained at 502. A goodness-of-fit test (e.g., a chi-square test) can be applied to the predicted and measured EOTF responses. The ranking value can be determined based on the largest goodness-of-fit result. For panels conforming to a known model, a single BL is sufficient, with two or three key PVs selected within that BL. Whether a series of panels conforms to a known model can be determined empirically, for example, by examining a graph of the luminance response as a function of PV and BL. If a panel does not conform to a known model, the number of ranking values ​​can be increased to account for corrections performed via DDIC. In other examples, including cases where DDIC performs extensive corrections to the EOTF response, additional ordination values ​​may be used. A set of ordination values ​​is denoted as S.

[0096] At 505, method 500 includes determining one or more prototype EOTFs. For example, prototype EOTFs can be found by using a k-means clustering algorithm performed on the normalized measured EOTF responses obtained at 502 above. The number k of prototype EOTFs to be resolved can be a pre-set fixed quantity, such as 32 for each color channel and BL. Prototype EOTFs represent a variety of possible EOTF responses under different PVs and BLs. The k-means clustering algorithm generates a set of prototype EOTFs that minimizes variation within clusters and maximizes difference between clusters. Prototype EOTFs can be used instead of empirical or theoretical models by selecting which set of prototype EOTFs is closest using measurements under key BLs and key PVs, and then optimizing the selection through interpolation. The set of all prototype EOTFs (each depending on BL and PV) is denoted as {EOTFP}. i (PV, BL): 1 ≤ i ≤ k}.

[0097] Identifying the prototype EOTF at 505, along with determining the critical BL and critical PV at 503, allows for very few measurements of the EOTF response sufficient to correct the panel output. Therefore, the processes described above with respect to method 500 at 502, 503, 504, and 505 can be performed using a subgroup of representative panels from the same brand / model / manufacturer to identify the sorted values, critical BL, critical PV, and prototype EOTF under which measurements can be performed for each individual panel of that brand / model / manufacturer, thereby generating a LUT tailored to each panel. This LUT can be applied to correct the PV to ensure uniform pixel output intensity for each panel, as described below.

[0098] At 506, method 500 includes calibrating each panel, for example, all manufactured panels of the same type (or similar models conforming to the EOTF response) measured at 502. As the model of the response is identified or a set of prototype EOTFs is generated, a set of LUTs can be generated to correct the output response of each of the multiple panels calibrated at 506. The procedure for calibrating one panel is described below, and it should be understood that a similar procedure is performed for each panel being calibrated.

[0099] At 508, calibrating the panel involves measuring the panel's output under key BLs and key PVs. The key PV used to perform the measurement is the key PV determined for each key BL, as identified at 503 and 504 above. The panel being calibrated can be operated under key BLs and key PVs (via their DDIC), where measurements are taken on the panel under each key BL / key PV combination (e.g., using a camera). The panel's output can be measured for each pixel (or group of pixels) within the panel. The measured data can be stored in memory, such as the measurement data in the calibration device's memory. As mentioned above, BLK represents a set of key BLs. For each BL in the BLK, there is a group of PVKs. BL This represents a set of key PVs associated with a key BL. For a given pixel or group of pixels represented by (x, y), a set of measured EOTF responses is represented as EOTFM and is expressed by the following formula:

[0100] {EOTFM(x, y, BL, PV): BL∈BLK, PV∈PVK BL}

[0101] As will be discussed in further detail below, a relatively small set of measured EOTF responses is sufficient to predict the EOTF responses of almost all pixels on the panel with reasonable accuracy across all PVs and all BLs. To improve calibration accuracy, the measured EOTFs can be normalized. For example, a set of normalized measured EOTFs can be generated: {EOTFN(x, y, BL, PV): BL∈BLK, PV∈PVK} BL}, such that for all key BLs and all key PVs (PV∈PVK) BL ),

[0102]

[0103] At 510, method 500 includes determining the model parameters. The model parameters can be derived from a set of measurements obtained at 508. For example, if the BLT conforms to a simple model, such as... Figure 4 Based on the response of the panel as shown in the equation above, method 500 can determine the first fitting parameter a and the second fitting parameter b (e.g., using the equation described above). The fitting parameters can be used to determine the EOTF (as a function of PV) for each pixel for each BL at 512 below.

[0104] If the panel does not follow a simple model, for example, if correction is performed via DDIC, then the panel output measurements under the critical PV and critical BL, along with the panel's prototype EOTFs, are used to determine the EOTF for each pixel or group of pixels. Therefore, determining the model parameters involves identifying a subgroup of prototype EOTFs identified at 505. For example, least-squares minimization of the critical PV output measurements can be used to select one or more prototype EOTFs closest to the critical PV. For example, given a set of prototype EOTFs {EOTFP}... i Given the key BL, EOTF finds the closest prototype 1 ≤ i ≤ k (e.g., as identified above at 505 for a series of panels). This involves finding l distinct indices {i1, i2, ..., i...}. l}, making

[0105]

[0106] Minimize. Evaluate the above sum across all critical BLs, all critical PVs, and all spatial locations (x, y) within the panel. This is achieved by evaluating the above sum across all possible indices i and selecting l indices {i1, i2, ..., i...} corresponding to the l minimum values ​​of the above sum. lThe process involves finding the closest prototype EOTF for the sorted values. The number of prototype EOTFs selected can depend on several factors, including desired accuracy (e.g., the correlation between the commanded PV and the measured color), the extent of DDIC correction (e.g., a wider range of DDIC corrections can be appropriately corrected by using a larger number of prototype EOTFs), and the computational budget of the computing device being calibrated (e.g., fewer prototype EOTFs can be used during calibration if the computing device has limited memory available for storing prototype EOTFs and limited processors for performing interpolation calculations). As explained above, the key BL and key PV are selected from a large number of possible PVs and BLs to optimize the fit between the EOTF derived from the prototype EOTFs and the normalized EOTF.

[0107] At 512, method 500 includes estimating the EOTF based on parameters for each panel location and BL. This is applicable when the panel output follows a simple theoretical model, such as the output... γ =m(BL-BLT(PV)), which can calculate the value of BLT and m for each position and each PV on the panel.

[0108] If the panel does not follow a simple model, the l prototype EOTFs identified at 510 can be used to interpolate between the key BL and key PV to estimate the EOTF for each possible BL and each possible PV. For example, in a constant BL, the EOTF can be estimated as a function of the PV. In some examples, the prototype EOTFs can be interpolated between adjacent key BLs and adjacent key PVs to generate EOTF values ​​between them. The process of determining the model parameters and estimating the EOTF using the model parameters produces a set of interpolated EOTFs, denoted as {EOTFI}. BL (x, y, PV)}.

[0109] At 518, method 500 includes grouping the set of interpolated LUTs based on the output. The grouping process allows for the use of relatively small subgroups of interpolated EOTFs for OLED correction, compared to the set of all possible pixel locations. A number g can be predetermined (where g is less than the maximum number of possible pixel locations). For example, g = 33. For each sorted value PV, the spacing Δ can be defined using the interpolated EOTFS, the value of γ for the panel, and the value g, via the following formula. out :

[0110]

[0111] As shown, the maximum and minimum values ​​shown above are given by evaluating the interpolated EOTF across all possible PVs under each BL, and by selecting the minimum and maximum values ​​of the EOTF.

[0112] According to the spacing Δ defined above out A set of indexed output values ​​(referred to here as the output set) is given by the following formula:

[0113]

[0114] This is given for all values ​​of j such that 1 ≤ j ≤ g. The interpolated EOTF groupings involve finding the group index j for all sorted values ​​BL and all PVs such that...

[0115] (output BL,j -EOTFI BL (x, y, PV) 1 / γ ) 2

[0116] Minimize. Corresponding to a specific output. BL,j The set of all PVs is represented as group. BL,j The projection mapping P can be defined by the following equation:

[0117] P(PV) = j,

[0118] As explained above, index j is chosen such that PV∈group j .

[0119] Alternative methods for grouping are also possible, including principal component analysis, clustering, and other forms of grouping. For example, given g groups, k-means clustering can be used to form g groups in order to minimize the differences within each group and maximize the differences between the means of the different groups.

[0120] At 520, method 500 includes generating a set of averaged LUTs. For example, the LUTs in a given set (e.g., the set solved at 518) can be averaged to form a smoother response in each set of LUTs. For each set indexed by j, the averaged EOTF LUT (denoted as EOTFG) is... BL,j It is defined by the following formula:

[0121]

[0122] Where |group j | is a group j The size, for example, its EOTF is closest to the output. BL,jThe number of positions. In the case that a particular group is empty (e.g., does not contain PV), the average EOTF of the empty group can be selected as the next nearest non-empty group. Each group of EOTFLUTs is 2D, taking two inputs to represent the position of pixels on the panel. In some examples, index j can be permuted so that the output monotonically increases to increase the index. The index permutation used to form a monotonically ordered sequence of sorted values ​​allows the generation of index LUTs, which are then interpolated between the LUTs of the group.

[0123] At 522, method 500 includes generating a set of mura LUTs to correct the EOTF response. As described above, each LUT in this set of mura LUTs may correspond to a specific BL. As described above, for each BL, generating the corresponding mura LUT includes finding a LUT that corrects the response of the EOTF LUT, for example, so that the response of the pixel associated with the EOTF LUT matches the standard EOTF, denoted as EOTFS. Ideally, there should be no color distortion (e.g., mura) within the panel between different pixels. Therefore, in many examples, the standard EOTF is not dependent on pixel location. For each BL, mura can be corrected by imposing the following conditions:

[0124] output γ =EOTFS BL (PV) = EOTF BL (x, y, MURA) BL (x, y, PV)).

[0125] value MURA BL (x, y, PV) is a mura LUT for the pixel at the position specified by (x, y) given PV. A mura LUT can include LUTs whose entries represent the modified pixel values. As observed above, an EOTF LUT can be used to generate a mura LUT because computing all possible values ​​of EOTF allows computing the inverse EOTF, denoted as EOTF. BL,INV The inverse function may not be unique; for example, there may be more than one possible inverse EOTF. Applying the inverse EOTF to the above equation yields the following result:

[0126] MURA BL (x, y, PV) = EOTF BL,INV (EOTFS BL (PV)).

[0127] The above equation also implies that the mura LUT depends on the BL and the position (x, y) of the pixels within the panel. Therefore, a mura LUT represents the inverse function of the EOTF for a given BL, applied to the standard EOTF for that BL. For example, at high BL, the response can be relatively linear with respect to PV. At low BL, the response is highly non-linear with respect to low PV and linear with respect to high PV. Mura LUTs are typically 3D LUTs, but their size can be reduced by using indexed LUTs, as explained below. The inverse of the EOTF is performed with respect to PV while keeping the values ​​of x, y, and BL constant.

[0128] It should be noted that the mura LUT generation process performed at 522 can be performed at any point after the measurement results are obtained at 502 in method 500. That is, EOTF can be used to generate mura LUTs at any point during method 500 (including at 505). Generating mura correction at 505 will involve finding a set of prototype mura LUTs that can be used for grouping and sorting. Therefore, as explained above, any function applied to EOTF can be applied to mura LUTs, since both are nonlinear and monotonic. For example, mura LUTs can be estimated based on parameters at 512 to generate a set of interpolated mura LUTs. The interpolated mura LUTs can be used at 518 to group based on output values ​​to generate grouped mura LUTs, and the grouped mura LUTs can be used at 520 to generate an average mura LUT. Each of the steps above produces or uses a nonlinear function, with the sole assumption that it is monotonic, just as in the case of performing correction directly using EOTF, as explained above.

[0129] At 524, method 500 includes generating an indexed LUT and an indexed mura LUT. For each BL and each sorted value PVS, the indexed LUT is a 2D LUT that takes the x and y positions of pixels or subpixels within the panel as input (e.g., (x, y)) and returns an index value I. BL,PVS (x, y). Indexed mura LUT MURA′ for a given sorted value. BL,PVS Take the index value as input and return the mura value. For each possible BL, the number of indexed mura LUTs and the number of indexed LUTs are the same as the number of sorted values. Generate indexed LUTs such that the indexed mura LUTs at index value I... BL,PVSThe value at (x, y) is equal to the value of the mura LUT at (x, y) for all sorted values ​​PVS∈S. The average LUT generated at 520 is used to generate a set of indexed mura LUTs, which are sorted from the minimum to the maximum output value for each sorted value PVS. Index table entry I BL,PVS (x, y) is represented by the integer part i and the fractional part f, such that I BL,PVS (x, y) = i + f, 0 ≤ f ≤ 1, where i is an integer. Generate an indexed LUT and an indexed Mura LUT such that...

[0130] MURA′ BL,PVS (i, PVS) < MURA BL (x, y, PVS) < MURA′ BL,PVS (i+1, PVS)

[0131] and

[0132] MURA BL,PVS (x, y, PVS) = (1-f) * MURA′ BL,PVS (i, PVS) + f*MURA′ BLPVS (i+1, PVS)

[0133] This applies to all BLs and each sorted value PVS.

[0134] When PV equals the sort value PVS, the output of the mura LUT (which is a 3D LUT) is equal to the combination of two mura LUTs (e.g., mura values ​​from two indexed mura LUTs targeting adjacent index values). If MURA BL (x, y, PVS) < MURA′ BL,PVS (0, PVS), then I PVS (x, y) = 0. If MURA BL (x, y, PVS)>MURA′ BL,PVS (i max If (PVS), then I BL,PVS (x, y) = i max , where i max =max x,y,PVS I BL,PVS (x, y), for example i max This represents the maximum index value for a given BL.

[0135] Since changes to BLs are relatively slow compared to changes to PVs, mura correction can be performed by loading only a single set of indexed LUTs and a single set of indexed mura LUTs (e.g., corresponding to a single BL). Loading only indexed LUTs and indexed mura LUTs for a single BL allows for a reduction in the total amount of information stored compared to storing a 3D mura LUT for each BL. If the BL of the computing device changes, a different set of indexed LUTs and a different set of indexed mura LUTs can be loaded, as shown below relative to... Figure 6 Further details. Each indexed LUT and each indexed mura LUT comprises a 2D LUT. Generating indexed LUTs essentially allows pixels on the panel to be grouped by their EOTF response, rather than by their position on the screen, which reduces redundant information. For each BL, the set of all indexed LUTs is represented as {I BL,PVS : PVS∈S}, and the set of all indexed mura LUTs is represented as {MURA′}. BL,PVS :PVS∈S}.

[0136] At 526, method 500 includes storing an indexed LUT and an indexed mura LUT. For each BL and each sorted value, the corresponding indexed LUT and the corresponding indexed mura LUT can be stored in the memory of a computing device, for example, in an OLED correction module. (As shown in the context of...) Figure 6 and Figure 7 To elaborate further, the computing device uses an indexed LUT and an indexed muraLUT to generate a correction that takes into account non-ideal behavior in the OLED panel, and as explained above, the OLED correction module can be used to retrieve the indexed LUT and the indexed muraLUT whenever the BL changes. If the BL has not changed, the indexed LUT and muraLUT are not updated.

[0137] Therefore, method 500 provides calibration of the display panel of the display device. To calibrate the display panel, multiple key measurement operation points (including one or more key pixel values ​​under one or more key brightness values) can be determined from a set of representative test display panels, as described above with respect to 502 and 503. The set of test display panels may belong to the same model / manufacturer as the display panel being calibrated. Once the key measurement operation points are determined, the display panel is commanded to operate at each of the multiple key measurement operation points, and a corresponding measurement result of the light output of the display panel at each of the multiple key measurement operation points is obtained, as described above at 508. Each measurement result can be processed as described above at 510 to 524 to fill one or more correction lookup tables (LUTs) based on each measurement result of the light output. For example, the measurement results can be processed to generate one or more indexed LUTs and one or more indexed mural LUTs. The filled one or more correction LUTs are then stored in the memory of the display device, as described at 526. In some examples, multiple key measurement operating points can include a relatively small number of key measurement operating points, such as ten or fewer (e.g., three or fewer pixel values ​​at three or fewer brightness levels). In other examples, key measurement operating points may include only six or fewer (e.g., two or three pixel values ​​at one or two brightness values). Identifying key measurement operating points by analyzing a set of test display panels allows for fewer measurements to be performed when calibrating individual display panels. Since each manufactured display panel must be calibrated, the smaller number of measurements makes the disclosed process technically feasible.

[0138] In some examples, each corresponding measurement of the display panel's light output can be obtained by measuring the light output of the display panel using a CMOS imager. To further accelerate the calibration process, the CMOS imager can be automatically calibrated so that each calibrated display panel and the CMOS imager (e.g., a camera) do not need to be perfectly aligned. The CMOS imager can be automatically calibrated by: commanding the display panel to display a white image at maximum brightness; simultaneously measuring the light output of the display panel with the CMOS imager to obtain calibration image information while the display panel is displaying the white image at maximum brightness; and processing the calibration image information to generate an affine transformation. The affine transformation can then be applied to each corresponding measurement of the display panel's light output. Furthermore, in some examples, after applying the affine transformation, each corresponding measurement of the display panel's light output can be normalized using the calibration image information, and each normalized corresponding measurement can be averaged and downsampled to the resolution of one of one or more calibration LUTs (e.g., indexed LUTs). In some examples, an affine transformation may be applied to each measurement, and each affine-transformed measurement may be averaged and downsampled before the model parameters are determined at 510 (or any of the other processes described at 510 to 526).

[0139] Figure 6 A method 600 for implementing OLED calibration within a computing device (e.g., computing device 102) is illustrated. Method 600 may be stored in a graphics processing module (such as graphics processing module 110) and may include an OLED calibration module, such as OLED calibration module 112. Method 600 uses multiple LUTs containing calibration data, which may be generated by a calibration device (such as calibration device 150), for example, during the execution of method 500.

[0140] At 602, method 600 includes obtaining BL settings and a digital image. As described above, the BL settings specify the overall brightness of the panel. This BL can be specified, for example, through one or more settings within the operating system or graphics processing module of the computing device. The digital image can also come from the graphics processing module and can include an indexed set of command PVs, where each PV controls the brightness of a specific subpixel relative to the BL. The set of command PVs is indexed according to the spatial (e.g., row and column, such as x and y) position of each pixel and the color of the subpixel. For example, if the panel contains 1080 rows of pixels, with 1920 pixels per row, and each pixel contains three subpixels (e.g., red subpixel, green subpixel, and blue subpixel), then the digital image contains a total of 1920 × 1080 × 3 = 6,220,800 command PVs. Generally, each command PV can change between frames, for example, in the case where the panel is used to output a video consisting of many frames (each frame including a digital image). Compared to changes in PVs, changes in BL may not occur frequently.

[0141] At 604, method 600 includes retrieving indexed LUTs and mura LUTs based on BL. The number of indexed LUTs retrieved is the same as the number of indexed mura LUTs retrieved (which is the number of sorted values). The indexed LUTs and mura LUTs can be retrieved, for example, from the memory of a computing device. A set of indexed LUTs is represented as {I PVS : PVS∈S}, and a set of indexed muraLUTs is represented as {MURA′ PVS : PVS∈S}, where, as described above, S is the set of all sorted values. The multiple sets of indexed LUTs and indexed mura LUTs for each BL are those stored on the computing device by the calibration device at point 526 above.

[0142] At 608, method 600 includes: for each spatial location and color of the digital image (and thus corresponding to each spatial location and color / subpixel of the panel), obtaining an index value from each index LUT. The index LUTs are those determined at 604. Each pixel within the panel is specified by a location, e.g., (i, j), which is loaded into each index LUT among those determined at 604, e.g., into the index LUT corresponding to each sorted value in the sorted values ​​(e.g., I). PVS In (x, y)). If the ranges of i and j are different from those of x and y, then the values ​​of i and j will be scaled to the same range. After scaling, I PVS The fractional part of (x, y) is used for interpolation between the mura values ​​of adjacent indexed mura LUTs, which will be explained in more detail below.

[0143] As an example, for a single sorted value, a single indexed LUT and a single indexed muraLUT are loaded at position 604. For each position (x, y), the output of the indexed LUT is I. PVS (x, y) is one input to the indexed mura LUT; the other input is PV. The output of the indexed mura LUT is MURA′(I(x, y), PV).

[0144] For two or more sorted values, the number of indexed LUTs and indexed mura LUTs is as many as the number of sorted values. Based on PV, and based on the proximity of PV to the two closest PVs, two indexed LUT outputs from the indexed LUT outputs and two indexed mura LUT outputs from the indexed mura LUT outputs are selected and mixed. For example, if a set of sorted values ​​is S = {PVS1, PVS2, PVS3}, where PVS1 = 16, PVS2 = 128, PVS3 = 240, and the PV of a particular pixel is PV = 32, then the PV of that pixel lies between PVS1 and PVS2. Therefore, the output values ​​from the first index table... and output from the second index table Input into the first indexed mura LUT respectively The second indexed mura LUT In this context, the first indexed mura LUT corresponds to PVS1, and the second indexed mura LUT corresponds to PVS2. The outputs of the first indexed mura LUT and the second indexed mura LUT are respectively generated by... and Given. It should be noted that the same process described above can be used with any number of sort values ​​greater than or equal to two: for all PVs between two sort values, two indexed mura outputs output1 and output2 can be generated.

[0145] If the PV is lower than the minimum sort value, only the outputs of the indexed LUT and the indexed mura LUT corresponding to the minimum sort value are retrieved. Similarly, if the PV is higher than the maximum sort value, only the outputs of the indexed LUT and the indexed mura LUT corresponding to the maximum sort value are retrieved. If the PV is equal to the sort value, only the index value corresponding to the sort value and the indexed mura LUT value are obtained. In each of these cases, two outputs are generated and set to the same value: output1 = output2.

[0146] At position 611, PV and the sorting value are used to blend between two initial mura values, output1 and output2. For example, if linear interpolation is used with PV = 32 and two adjacent sorting values ​​PVS1 = 16 and PVS2 = 128, the blending ratio r is defined by the following formula:

[0147]

[0148] For pixel values ​​between two sorted values, the mura output is given by the following formula:

[0149] output=(1-r)*output1+r*output2.

[0150] In some examples, the fractional components of one or more index values ​​can be used for mixing. Since only two index mura LUT outputs are used at any given time, the number of index mura LUTs can be reduced to two, with each table storing only the index mura LUT entries between the two sort values ​​closest to the PV. As mentioned above, if the PV is higher than all sort values, lower than all sort values, or equal to one of the sort values, the mura correction value comes from a single initial output and is not mixed.

[0151] At 612, method 600 includes commanding the panel output based on the mura correction value. This includes inputting the mura correction value obtained at 610 from the mura correction LUT into the panel to correct non-ideal behavior. The corrected value is then sent to the panel, for example, to DDIC. In general, how the corrected value is sent to the panel can depend on the implementation. Three non-limiting examples are described below.

[0152] At 614, method 600 includes sending the corrected value to the panel. In this implementation, the mura-corrected value is sent directly from the mura LUT to the panel. Therefore, for each pixel, the index LUT and the mura-corrected LUT are found to be directly input into the DDIC to control the value of that pixel.

[0153] At 616, method 600 includes adding the corrected value to the PV and sending it to the panel. In this case, the mura correction LUT generates the value to be added to the PV before being sent. Storing the corrected value as the value to be added to the command PV may be optimal for certain behaviors of EOTF.

[0154] At 618, method 600 includes multiplying the corrected value by the PV and sending it to the panel. For each pixel, this includes obtaining the mura correction value, multiplying it by the PV, and sending the resulting product to the DDIC. Storing the correction value as the value to be multiplied by the command PV may be optimal for some behaviors of EOTF.

[0155] Figure 7 Figure 700 illustrates the inputs and outputs of different LUTs used to correct the behavior of an OLED panel and specifically correct the PV of a given pixel on the panel. The LUTs shown are examples of the LUTs described relative to methods 600 and 500 above. Therefore, the LUTs can be stored in the memory of a computing device (such as computing device 102). For example, the LUTs can be stored within an OLED correction module within the memory of the computing device.

[0156] Figure 700 includes pixel position 702. The pixel position may represent the row and column of the pixel to be adjusted, and may also include information about sub-pixels (e.g., red, green, or blue) that also need to be corrected. Figure 700 also includes a command PV 712 as input, which represents the desired PV of the pixel located at pixel position 702.

[0157] Pixel position 702 can be input into one or more index LUTs 704, which include one index LUT for each sort value. Index LUTs are loaded based on the BL; whenever the BL changes, a new set of index LUTs can be loaded. Pixel position can be a transformed value determined by the row and column indices of pixels in the panel. In the example shown in Figure 700, the index LUTs include sort value A index LUT 706, sort value B index LUT 708, and sort value C index LUT 710. The index LUTs generate multiple index values ​​(one index per sort value / LUT) as output, which can be used to perform mura correction using a set of indexed mura LUTs. In some examples, pixel position 702 can be loaded into only one or two index LUTs based on command PV712, as described above. For example, if sort value A is 16, sort value B is 128, sort value C is 240, and command PV is 32, then a first index value is generated by inputting pixel position 702 into sort value A index LUT 706, and a second index value is generated by inputting pixel position 702 into sort value B index LUT 708. In other cases, such as when PV equals one of the sort values, PV is lower than the minimum sort value, or if PV is higher than the maximum sort value, then only a single index value is generated, as described above.

[0158] Figure 700 includes an indexed mura LUT 714, which further includes an indexed mura LUT 716 for sorted value A, an indexed mura LUT 718 for sorted value B, and an indexed mura LUT 720 for sorted value C, for example, one indexed mura LUT for each sorted value. Index values ​​obtained from index LUT 704 (which may include, for example, one or two index values) can be input into the corresponding indexed mura LUT 714 to generate one or more initial mura values. Continuing the example above, if PV is 32, then the first index value (generated from index LUT 706 for sorted value A, and as a non-limiting example, it could be 6649) can be input into the indexed mura LUT 716 for sorted value A to generate the first initial mura value. Similarly, a second index value (generated from sort value B indexed LUT 708, and as a non-limiting example, it could be 199) can be input into sort value B indexed mura LUT 718 to generate a second initial mura value. In other examples, only a single initial mura LUT can be generated, for example, in the case of generating only a single index value. In the example presented herein, the first initial mura value could be 42, and the second initial mura value could be 52.

[0159] The first and second initial mura values ​​can be input into the blending 722, which calculates the blending ratio as described above to blend the two initial mura values. The blending ratio can be used to find a linear combination of the two initial mura values, thereby generating a mura correction value. In the case where only a single initial mura value is output from the indexed mura LUT 714, the single initial mura value is not blended with any other value, making the single initial mura value serve as the mura correction value. The output of the blending 722 is the corrected value. Using the example presented above, the command PV can be normalized, resulting in a normalized command PV of 0.12549 and a blending ratio r = (0.12549 - 0.06275) / (0.50196 - 0.06275) = 0.14286. Using the blending ratio and the two initial mura values, the corrected value can be calculated by weighted averaging using the following formula:

[0160] (1-0.14286)×42+0.14286×52=43.4286≈43.

[0161] The mura correction value generated by mixing 722 or derived from a single initial mura value can be sent to panel 724, as described above. Sending the mura correction value to the panel can include, for example, sending the mura correction value directly to the panel, multiplying the mura correction value by command PV 712 and then sending it to the panel, or adding the mura correction value to command PV 712 and then sending it to the panel. In the example presented herein, command PV 32 can be corrected to 43, which is the PV sent to the panel.

[0162] Figure 8 and Figure 9 Two graphs are shown: graph 800 and graph 900, detailing the color difference values ​​at BL=1 for several different PVs. BL=1 was chosen because it represents the "worst-case scenario," as mura distortion tends to be most pronounced with low BL. For high BL, such as BL=255, mura distortion tends to be less pronounced. As described herein, color difference can represent the Euclidean distance between the measured color and the commanded color; for example, if the triplet (R... M G M B M The ) represents the red (R), green (G), and blue (B) components of a color (e.g., as measured using a camera or colorimeter), while the triplet (R) represents the red (R), green (G), and blue (B) components. C G C B C If PV represents the red, green, and blue components of a color, then the color difference can be defined as:

[0163]

[0164] It should be noted that various other definitions of color difference exist, and different color space difference definitions can be used for different color space models. Color difference can be defined, for example, based on the hue, saturation, and / or contrast of a color. The color difference formula can also attempt to replicate the observable and typically normalized perceptible minimum difference (JND) so that a value of 1 is perceptible under ideal conditions. Therefore, color space difference is a measure of the accuracy of color correction. A color difference of zero indicates optimal color correction, because a color difference of zero means that the measured color is exactly equal to the command color.

[0165] The first graph 800 shows a first set of color differences, corresponding to two calibration methods for the panel: a conventional calibration and a calibration generated using the methods disclosed herein. The calibration performed using the methods disclosed herein, and shown in the first graph 800, was performed using approximately 20 different measurements under BL. As will be described in further detail below with respect to the second graph 900, fewer measurements are sufficient for adequate color calibration.

[0166] The first curve 800 includes an x-axis 802, which represents the command PV divided by 4. The command PV for each of the red, green, and blue subpixels is set to the same value; for example, the command PV represents the grayscale. The curve 800 includes a Y-axis 804, which represents JND. Four curves are shown in the curve 800: the first curve 810, the second curve 812, the third curve 814, and the fourth curve 816.

[0167] The first curve 810 represents the maximum color difference across all pixels in the panel, where the color difference is generated using the method disclosed herein. The first curve 810 is generated using a single sorted value of PV = 112, created using approximately 20 measurements of the panel. The maximum color difference (where the color difference is obtained for each pixel in the panel) represents the maximum deviation caused by mura.

[0168] The second curve 812 represents the average color difference across all pixels in the panel, where the color difference is generated using the method disclosed herein. The second curve 812 is generated using a single sorted value of PV = 112, created using approximately 20 measurements of the panel. The average color difference (where the color difference is obtained for each pixel in the panel) represents the average deviation caused by mura.

[0169] The third curve 814 shows the maximum color difference across all pixels in the panel, where the panel is calibrated using the average of all mura LUTs generated for the panel. This can form data compatible with hardware already included in most graphics processing modules (e.g., OLED calibration module 112) and is referred to as low-brightness color calibration, or LBCC. It should be noted that for almost all PVs, the color difference in the third curve 814 is greater than or equal to the color difference in the first curve 810 or the second curve 812, meaning that the method disclosed herein is used to generate smaller color differences, thus allowing for more accurate panel calibration. The average color difference using LBCC better represents the difference, as shown in the fourth curve 816.

[0170] The second graph 900 shows the first set of color differences, corresponding to two calibration methods for the panel: a conventional calibration and a calibration generated using the methods disclosed herein. The calibration performed using the methods disclosed herein, and shown in the second graph 900, was performed by using approximately five different measurements at the critical PV.

[0171] The second curve 900 includes an x-axis 902, which represents the command PV divided by 4. The command PV for each of the red, green, and blue subpixels is set to the same value; for example, the command PV represents grayscale. The second curve 900 includes a Y-axis 904, which represents JND. Four curves are shown in the second curve 900: the first curve 910, the second curve 912, the third curve 914, and the fourth curve 916.

[0172] The first curve 910 represents the maximum color difference across all pixels in the panel, where the color difference is generated using the method disclosed herein. The first curve 910 is generated using a single sorted value of PV = 112, created using five measurements of the panel. The maximum color difference (where the color difference is obtained for each pixel in the panel) represents the maximum deviation caused by mura.

[0173] The fourth curve 916 represents the average color difference across all pixels in the panel, where the color difference was generated using the method disclosed herein. The fourth curve 816 was generated using a single sorted value of PV = 112, and was created using five measurements of the panel. The average color difference (where the color difference is obtained for each pixel in the panel) represents the average deviation caused by mura.

[0174] Curve 914 shows the maximum color difference across all pixels in the panel, where the panel is calibrated using LBCC. It should be noted that for almost all PVs, the color difference in curve 914 is greater than or equal to the color difference in curve 910, and curve 912 is greater than or equal to curve 916. This means that the method disclosed herein is used to produce smaller color differences, thus allowing for more accurate panel calibration. The average color difference using LBCC better represents the difference, as shown in curve 914.

[0175] The common trend between LBCC calibration and calibration according to the method disclosed herein can be observed using 20 measurements (as shown in the first curve 800) or 5 measurements (as shown in the second curve 900). For example, each curve in both the first curve 800 and the second curve 900 reaches its maximum dE between PV = 32 and PV = 64. This is because, at low PV, parasitic capacitance within the panel causes a large amount of current to be diverted away from the current mirror, resulting in inaccurate colors being displayed. After this point, each curve drops (at different rates), indicating that commanding PV results in a more consistent measured output across the entire panel. The similar JND and consistent overall trend observed between the first curve 810, the second curve 812, the first curve 910, and the fourth curve 916 suggest that relatively few panel measurements are sufficient to generate a mura-corrected LUT that can be used to correct colors within the screen. Although more measurements (as shown in the first curve 800) produce slightly more accurate results, fewer measurements (as shown in the second curve 900) reduce the amount of time used to perform the calibration. In either case, the results are generally more accurate than calibration based on LBCC, and can be performed in less time. Performance can be further improved by increasing the number of sorted values ​​and / or selecting the sorted values ​​in an optimal manner.

[0176] Therefore, mura can be corrected by calibrating each individual panel as described above. Mura correction is determined for each pixel or group of pixels on each individual panel. In some examples, a group of pixels is set as the central area of ​​all pixels in the display panel or the display itself. In such examples, a mura LUT is determined only for each color from the measurements, and only low-brightness color shifts are corrected. That is, there is no longer an indexed LUT, and the same correction is applied regardless of the pixel's position within the panel. A region can be found by averaging measurements taken using an imaging sensor, or by using a colorimeter or spectrometer.

[0177] Performing the measurements described in this paper for mura correction in a high-volume manufacturing environment can be challenging. Current state-of-the-art panel calibrations only correct the response for a single brightness level, not for inhomogeneities. Even performing this level of correction takes less than 30 seconds and requires several test stations operating in parallel. Measurements for a single low brightness and low grayscale level can take several seconds, and therefore multiple measurements will ultimately take longer than current methods and require even more test stations operating in parallel. However, by using only a small number of measurements and a prototype EOTF to generate EOTFs for pixel locations, measurements can be performed at higher pixel values, making the longest measurement less than 1 second, and typically 100 milliseconds or less. If measurement and readout take 0.5 seconds, 60 measurements can be performed in the time it takes to perform the previous state-of-the-art calibration (e.g., 30 seconds). With approximately 5 measurements per backlight level (e.g., brightness level), 12 different backlight levels (e.g., brightness levels) can be measured.

[0178] Automatic camera calibration is also desirable. The goal of demura is to achieve the same color temperature across all backlight levels and grayscale, and the same uniformity as white at maximum brightness. Therefore, calibration is performed only for white at maximum brightness, along with three additional measurements for red, green, and blue at their maximum amplitude.

[0179] The white field is used to automatically locate the corners of the display, eliminating the need for perfect alignment. Corners are determined by finding two points along each side of the display, ignoring notches and camera holes, and then finding the intersection of four lines described by each pair of points, thus identifying four corners. Then, using the four corners found on the display, an affine transformation is created to map the display to a rectangle scaled to the size of the indexed LUT. This result is then downsampled to the size of the indexed LUT using averaging to improve SNR. During calibration, the same affine transformation and downsampling are applied to all other images.

[0180] To find points along the edges of the display, assume the panel is slightly centered in the image. Starting with offsets towards the top and bottom of the display, the average value of the image at each point can be determined to generate a threshold. Then, while moving towards the left and right edges of the display, the threshold can be based on the previous threshold and the image's value at that point. This compensates for vignetting in the original image. Edges of the display are indicated when the input is less than the threshold and pixels closer to the center are above the threshold. From the two points found on each edge, the slope and offset of the lines can be identified. The offset can be changed to be closer to the inside of the display to avoid rounded corners or camera holes, and moving along these two lines to find the top and bottom edges. Starting with the line depicting the bottom edge, the left and right edges can be identified again while moving inwards to obtain more accurate lines for the left and right edges. The intersection of the four lines depicting the edges can then be identified to obtain four points.

[0181] Using the downsampled version of the center region, the average values ​​of the white, red, green, and blue test patterns can be obtained. This allows the determination of the Color Calibration Matrix (CCMX) such that the camera output for the red test pattern has values ​​only in the red channel, the green test pattern has output only in the green channel, the blue test pattern has output only in the blue channel, and the white test pattern has equal values ​​for the red, green, and blue channels. CCMX is used during the processing of all other images. The method used is the same as that used to calibrate a colorimeter for a specific display, but RGB is used instead of XYZ in the algorithm.

[0182] If absolute calibration is desired, a colorimeter or spectrometer can be used on the same test pattern to determine the panel chromaticity that can be used to modify the CCMX.

[0183] The camera / sensor lens can operate at a large aperture to capture as much light as possible. For the working distance involved in calibration, noticeable vignetting may exist in the images. Vignetting can be pre-captured using a uniformly illuminated target or corrected during calibration. Since the uniformity of white at maximum brightness is considered acceptable, it can be used as a reference for uniformity. Therefore, all captured images can be normalized by dividing the image by the output of the capture. This corrects for captured vignetting and white balance because it ensures that for white, the normalized output has red = green = blue = 1.

[0184] To accelerate measurement speed, a color CMOS sensor is desired. These sensors use an RGB Bayer pattern to capture color images. The panel also has a spatial arrangement of RGB colors. For accurate color capture, the 2×2 Bayer pattern in the camera will need to be significantly smaller than the smallest OLED subpixel. The smallest subpixel can be smaller than the pixel under consideration. Size. In a pentile layout, the spacing of the green subpixels is considered the panel's resolution.

[0185] With high-end mobile devices having a panel resolution of approximately 1440×3200, capturing images would require a monochrome sensor with a resolution greater than 2880×6400, while a color sensor would need twice that resolution in both directions, i.e., 5760×12800. Most sensors have a 4:3 aspect ratio, which means a color sensor of 9600×12800, or 123 Mpix, is currently impractical. Therefore, the desired approach is to slightly defocus the camera so that the panel displays pure red when red is displayed (for a pentile arrangement, the maximum gap between subpixel pitches). This can be easily verified using a red test pattern capture.

[0186] Furthermore, defocusing the camera can reduce the impact of dust on the panel during measurement. If the captured white image is used as a reference for vignetting correction, the same correction will also correct for dust spots, as long as the dust does not completely block the light reaching the camera sensor.

[0187] Therefore, display panels used in mobile devices, tablets, laptops, or other display devices can be calibrated according to the methods described herein. These methods may include a simple model approach when the panel manufacturer has not applied its own calibration, or a prototype EOTF approach when the manufacturer applies its own calibration (unknown during calibration). For the simple model approach, a set of panels provided by the manufacturer, representing a range of possible responses, can be obtained, and the panels can be controlled to output light at several gray levels and several brightness levels, wherein measurements are taken at each gray level / brightness level combination. Based on these measurements, the gray levels (e.g., pixel values) and brightness levels that generate the most accurate parameters for the model can be identified. Then, for each panel being calibrated, the panel is measured at key pixel values ​​and brightness levels, and the parameters of the model are determined based on these measurements for each pixel. The EOTF is determined per pixel based on the parameters of the model. Optionally, an on-threshold (e.g., a brightness level threshold) can be estimated from the parameters, and the response of a pixel value at a given brightness level can be estimated from the on-threshold. A LUT for a corrected mura (per pixel) can be generated based on the estimated EOTF.

[0188] The LUTs generated as described above can be grouped based on LUT output values ​​for one or more input pixel values. Furthermore, an average LUT can be generated based on the grouped LUTs and arranged in a monotonic order to produce a 2DLUT for one or more pixel values ​​(sorted values). If more than one sorted value is identified, two or more groups of 2D LUTs are generated. These LUTs are mura LUTs. Because an average is used, the responses of the first and last LUTs can be adjusted so that interpolation is needed in later steps, rather than extrapolation (note that extrapolation can generally be used even when interpolation is employed).

[0189] Generate an index value for each spatial location on the panel, such that interpolation between one or more LUTs results in a 2DLUT output at the sorted value equal to the LUT generated based on the estimated EOTF for the spatial location on the panel. This set of index values ​​is the indexed LUT.

[0190] The prototype method can be similar, but can use more / different measurements. Representative panels can be measured at several gray levels and several brightness levels, similar to the simple model method. Measurement results can be normalized so that white (maximum output) equals one for each brightness level. For each BL, the average of multiple sets of EOTFs is identified for each brightness level and color channel.

[0191] Then, for each calibrated panel, several key pixel values ​​and BL levels are measured. These measurements are normalized such that white equals one for each group(s) of pixels(s). The EOTF for each group(s) of pixels(s) is estimated using these measurements, and a LUT for correcting the EOTF is determined. Alternatively, a non-linear version of the EOTF can be identified. The remainder of the process is the same as described for simple model-based methods (e.g., grouping LUTs, generating indexed LUTs).

[0192] Once the panel is calibrated, and during panel use, command pixel values ​​can be adjusted using the mura LUT / index LUT generated for that panel. For brightness level settings, if the actual brightness level setting does not have a set of LUTs, interpolation is used to calculate the values ​​of the index LUTs and mura LUTs from a set of index LUTs and mura LUTs. The calculated values ​​are loaded into the index LUTs and mura LUTs. If the data is stored and computed off-chip, the data is transferred and loaded.

[0193] For each spatial location and color channel of the image to be displayed, if the size of the index LUT is smaller than the panel resolution, interpolation is used to obtain the value in the index LUT. Using the values ​​from the index LUT and the pixel values, interpolation is used (if necessary) to obtain the value in the mura LUT. The value from the mura LUT is output to the panel, and / or the mura LUT may store the increment to be added to the input pixel value or the gain to be multiplied by the input pixel value.

[0194] Measurements performed at grayscale and brightness levels can be obtained using commercially available CMOS imagers (e.g., imagers designed for astronomical capture that support linear RGB measurements). Thermoelectric coolers can be used to provide stable operating temperatures and low noise. The camera (e.g., a CMOS imager) can be slightly defocused to eliminate moiré patterns between the RGB filters in the camera and the RGB subpixel layout of the panel.

[0195] For each panel (or at least once for a given panel model), in addition to measurements characterizing the panel, a full-field image of white, red, green, and blue (WRGB) can be captured. The WRGB image can be used to determine a correction matrix to eliminate crosstalk between the panel's RGB output and the imager's RGB filters. That is, when the panel displays red, the processed camera output is only red; when it displays green, only green; when it displays blue, only blue; and when it displays white, the red, green, and blue outputs are equal.

[0196] The maximum brightness level white image can be processed to find the affine transformation, making perfect camera alignment unnecessary. This affine transformation can be applied to all captures. The result can be normalized using the maximum brightness white image, then averaged and downsampled to the resolution of the indexed LUT.

[0197] The technique of generating mura-corrected LUTs and indexed LUTs based on the output brightness of OLED elements in a panel results in a more linear representation of the panel's output brightness relative to PV and pixel position. This reduces color and brightness uniformity among individual elements of the panel and makes each computational device used for calibration using the panel more uniform. This effect is particularly noticeable for gray shadows at low brightness, where color distortion is minimized.

[0198] This disclosure also provides support for a method for controlling the display of an image on a display panel of a display device, the method comprising: determining a command brightness level for the display panel; generating an index lookup table (LUT) and a mura LUT based on a relationship between pixel outputs and pixel values ​​for each of a plurality of brightness levels for each pixel of the display panel and the brightness level, the relationship being determined during a calibration phase and stored in the memory of the display device; determining an index value for each pixel of the display panel based on the index LUT; determining a mura value for the pixel based on the corresponding index value of each pixel of the display panel, the pixel value of the pixel, and the mura LUT, wherein the pixel value of the pixel is determined based on an image; and sending a corrected pixel value for each pixel to the display panel. In a first example of the method, the corrected pixel value is the output value of the mura LUT. In a second example of the method (optionally including the first example), the corrected pixel value includes a pixel value corrected by the output value of the mura LUT. In a third example of the method (optionally including one or both of the first and second examples), determining the index value of each pixel of the display panel based on the index LUT includes inputting each spatial location of the image into the index LUT, and wherein the index LUT is configured to output a corresponding index value for each spatial location. In a fourth example of the method (optionally including one or more or each of the first to third examples), the method further includes: for each pixel that does not directly correspond to a corresponding spatial location of the index LUT, performing interpolation on two or more index values ​​from the index LUT. In a fifth example of the method (optionally including one or more or each of the first to fourth examples), determining the mura value of a pixel based on the corresponding index value of each pixel of the display panel, the pixel value of that pixel, and the muraLUT includes: inputting the corresponding index value and the pixel value of each pixel as input into the mura LUT, and wherein the mura LUT is configured to output a corresponding mura value for each index value and pixel value.

[0199] This disclosure also provides support for a display device including: a display panel; a processor; and a memory storing instructions that, when a digital image is displayed on the display panel, can be executed by the processor to perform the following operations: determining a commanded brightness level for the display panel; generating an index lookup table (LUT) and a mura LUT based on a relationship between pixel outputs and pixel values ​​for each of a plurality of brightness values ​​for each pixel of the display panel and the brightness level, the relationship being determined during a calibration phase and stored in the memory of the display device; determining an index value for each pixel of the display panel based on the output from the index lookup table (LUT); determining a mura value for each pixel based on the corresponding index value of each pixel of the display panel, the pixel value of that pixel, and the output from the mura LUT, wherein the pixel value of that pixel is determined based on the digital image, wherein the index LUT and the mura LUT are filled based on the commanded brightness level; and sending the corrected pixel value of each pixel to the display panel. In a first example of the system, the corrected pixel value is the output value of the mura LUT. In a second example of the system (optionally including the first example), the corrected pixel value includes a pixel value corrected by the output value of the mura LUT. In a third example of the system (optionally including one or both of the first and second examples), determining the index value of each pixel of the display panel based on the index LUT includes inputting each spatial location of the image into the index LUT, and wherein the index LUT is configured to output a corresponding index value for each spatial location. In a fourth example of the system (optionally including one or more or each of the first to third examples), the system further includes: for each pixel that does not directly correspond to a corresponding spatial location of the image, performing interpolation on two or more index values ​​from the index LUT. In a fifth example of the system (optionally including one or more or each of the first to fourth examples), determining the mura value of a pixel based on the corresponding index value of each pixel of the display panel, the pixel value of that pixel, and the mura LUT includes: inputting the corresponding index value and the pixel value of each pixel as input into the mura LUT, and wherein the mura LUT is configured to output a corresponding mura value for each index value and pixel value. In the sixth example of the system (optionally including one or more or each of the first to fifth examples), the relationship is determined during the calibration phase by commanding the display panel to operate at multiple different pixel values ​​at each of one or more brightness values, and wherein the relationship is determined by using a camera to measure the pixel output of each pixel or group of pixels of the display panel at each commanded pixel value.In the seventh example of the system (optionally including one or more or each of the first to sixth examples), the multiple distinct pixel values ​​include two or three distinct pixel values, and one or more of the brightness values ​​include one, two or three brightness levels.

[0200] This disclosure also provides support for a method for calibrating a display panel of a display device, the method comprising: determining a plurality of key measurement operation points from a set of representative test display panels, the plurality of key measurement operation points including one or more key pixel values ​​under one or more key brightness values; commanding the display panel to operate at each of the plurality of key measurement operation points; obtaining a corresponding measurement result of the light output of the display panel at each of the plurality of key measurement operation points; filling one or more correction lookup tables (LUTs) based on each measurement result of the light output; and storing the filled one or more correction LUTs in the memory of the display device. In a first example of the method, the plurality of key measurement operation points includes only six or fewer key measurement operation points. In a second example of the method (optionally including the first example), obtaining each corresponding measurement result of the light output of the display panel includes measuring the light output of the display panel using a CMOS imager. In a third example of the method (optionally including one or both of the first and second examples), the method further includes: automatically calibrating the CMOS imager by: commanding the display panel to display a white image of maximum brightness; simultaneously with the display panel displaying the white image of maximum brightness, measuring the light output of the display panel with the CMOS imager to obtain calibration image information; and processing the calibration image information to generate an affine transformation. In a fourth example of the method (optionally including one or more or each of the first to third examples), the method further includes: applying the affine transformation to each corresponding measurement of the light output of the display panel. In a fifth example of the method (optionally including one or more or each of the first to fourth examples), the method further includes: after applying the affine transformation, normalizing each corresponding measurement of the light output of the display panel using the calibration image information, and averaging and downsampling each normalized corresponding measurement to the resolution of one of one or more calibration LUTs.

[0201] This disclosure also provides support for a method for controlling the display of an image on a display panel of a display device, the method comprising: determining a command brightness level for the display panel; populating one or more index lookup tables (LUTs) and one or more mura LUTs based on a relationship between pixel output and brightness level for each pixel value among a plurality of pixel values ​​of the display panel and the brightness level, the relationship being determined during a calibration phase and stored in the memory of the display device; determining a master index value from the one or more index LUTs for each command color of the image and at each spatial location of the display panel; inputting each master index value and the corresponding pixel value into the one or more mura LUTs to obtain a mura value for each pixel of the display panel, wherein each pixel value is determined according to the image; and issuing a command to the output of the display panel based on each mura value. In a first example of the method, the relationship between pixel output and brightness level for each pixel of the display panel for each of a plurality of pixel values ​​includes a first sorting value and a second sorting value, and wherein filling one or more index lookup tables (LUTs) and one or more mura LUTs includes: filling a first index LUT based on the first sorting value, filling a second index LUT based on the second sorting value, filling a first mura LUT based on the first sorting value, and filling a second mura LUT based on the second sorting value. In a second example of the method (optionally including the first example), determining the master index value includes: obtaining a first index value from the first index LUT; obtaining a second index value from the second index LUT; and determining the master index value based on each of the first index value, the second index value, the pixel value, and the first sorting value and the second sorting value. In a third example of the method (optionally including one or both of the first and second examples), determining the master index value based on each of the first index value, the second index value, the pixel value, and the first sort value and the second sort value further includes: normalizing the pixel value, the first sort value, and the second sort value; calculating a first difference between the normalized first sort value and the normalized pixel value; calculating a second difference between the normalized second sort value and the normalized pixel value; determining whether the first difference is less than or equal to the second difference; setting the first index value as the master index value in response to the first difference being less than or equal to the second difference; and setting the second index value as the master index value in response to the first difference being greater than the second difference. In a fourth example of the method (optionally including one or more or each of the first to third examples), obtaining the mura value for each pixel includes: inputting the master index value and the pixel value into each of the first mura LUT and the second mura LUT to obtain the first mura value and the second mura value; and mixing the first mura value and the second mura value to obtain the mura value.In the fifth example of the method (optionally including one or more or each of the first to fourth examples), commanding the output of the display panel based on each mura value includes sending each mura value to the display panel.

[0202] As used herein, elements or steps described in the singular and beginning with the words “an” or “a” should be understood to not exclude the plural form of the elements or steps, unless such exclusion is explicitly stated. Furthermore, references to “an embodiment” in this invention are not intended to exclude the existence of additional embodiments also incorporated into the described features. Moreover, unless explicitly stated to the contrary, an embodiment “comprising” or “having” a particular property may include additional such elements that do not have that property. Furthermore, the terms “first,” “second,” and “third,” etc., are used merely as illustrative marks and are not intended to impose numerical requirements or a particular order of position on their objects.

[0203] This written description uses examples to disclose the invention (including the best mode) and also enables those skilled in the art to practice the invention, including making and using any apparatus or system and performing any incorporated methods. The patentable scope of the invention is defined by the claims and may include other examples that would occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that are indistinguishable from the literal language of the claims, or if they include equivalent structural elements that are not substantially indistinguishable from the literal language of the claims.

Claims

1. A method for controlling the display of an image on a display panel of a display device, the method comprising: Determine the command brightness level for the display panel; Based on the relationship between the pixel output and pixel value for each of the multiple brightness levels of the display panel and the brightness levels, an index lookup table (LUT) and a mura LUT are generated. The relationship is determined during the calibration phase and stored in the memory of the display device. The index LUT represents the dependence of parasitic capacitance and threshold variation at the pixel location. The index value of each pixel of the display panel is determined based on the indexed LUT; The mura value of a pixel is determined based on the corresponding index value of each pixel of the display panel, the pixel value of the pixel, and the mura LUT, wherein the pixel value of the pixel is determined based on the image; as well as The corrected pixel value for each pixel is sent to the display panel; The method of determining the index value of each pixel of the display panel based on the index LUT includes: inputting each spatial position of the image into the index LUT, wherein the index LUT is configured to output the corresponding index value for each spatial position; The method further includes: for each pixel that does not directly correspond to a corresponding spatial location of the index LUT, performing interpolation on two or more index values ​​from the index LUT; The method of determining the mura value of a pixel based on the corresponding index value of each pixel of the display panel, the pixel value of the pixel, and the muraLUT includes: inputting the corresponding index value of each pixel and the pixel value of each pixel into the mura LUT as input, wherein the mura LUT is configured to output the corresponding mura value for each index value and pixel value.

2. The method of claim 1, wherein the corrected pixel value is the output value of the mura LUT, or the corrected pixel value includes pixel values ​​corrected by the output value of the mura LUT.

3. The method of claim 1, wherein the relationship is determined during the calibration phase by: commanding the display panel to operate at a plurality of different pixel values ​​at each of one or more brightness values, and wherein the relationship is determined by: using a camera to measure the pixel output of each pixel or group of pixels of the display panel at each commanded pixel value, wherein the plurality of different pixel values ​​includes two or three different pixel values, and wherein the one or more brightness values ​​includes one, two, or three brightness levels.

4. A display device, the display device comprising: Display panel; processor; as well as A memory that stores instructions that, when a digital image is displayed on the display panel, can be executed by the processor using the method of any one of claims 1-3.

5. A method for calibrating a display panel of a display device, the method comprising: Multiple key measurement operation points were determined from a set of representative test display panels, the multiple key measurement operation points including one or more key pixel values ​​under one or more key brightness values; The command instructs the display panel to operate at each of the plurality of key measurement operation points; Obtain the corresponding measurement results of the light output of the display panel at each of the plurality of key measurement operation points; Each measurement result of the light output is used to fill multiple correction lookup tables (LUTs), wherein the multiple correction LUTs include one or more index LUTs and one or more mura LUTs, the index LUTs representing the dependence of parasitic capacitance and threshold variation at the pixel location; The populated one or more indexed LUTs and one or more indexed mura LUTs are stored in the memory of the display device, wherein the one or more indexed mura LUTs are generated from the one or more mura LUTs; For each spatial location and color of the display panel, an index value is obtained from one of the one or more indexed LUTs, wherein the indexed LUT is retrieved based on the command brightness level of the pixel; Based on the index value corresponding to the pixel, the pixel value of the pixel, and the output of one of the one or more indexed mura LUTs, the mura correction value of each pixel in the display panel is determined, wherein the indexed mura LUT is obtained based on the command brightness level of the pixel; The corrected pixel value, determined based on the mura correction value for each pixel, is sent to the display panel.

6. The method of claim 5, wherein each corresponding measurement of the light output of the display panel comprises measuring the light output of the display panel using a CMOS imager.

7. The method of claim 6, further comprising automatically calibrating the CMOS imager by: commanding the display panel to display a white image at maximum brightness; and simultaneously measuring the light output of the display panel with the CMOS imager to obtain calibration image information while the display panel displays the white image at maximum brightness. The calibration image information is processed to generate an affine transformation; the affine transformation is applied to each corresponding measurement of the light output of the display panel; After applying the affine transformation, the corresponding measurement result of the light output of the display panel is normalized using the calibration image information; and each normalized corresponding measurement result is averaged and downsampled to the resolution of one of the one or more calibration LUTs.

Citation Information

Patent Citations

  • Gray scale data compensation method and device and driving chip

    CN111243512A

  • Display apparatus and method of driving the same

    US20150187303A1