The disclosed technology generally relates to a display driver for controlling a display panel.
Display devices including display panels such as a light emitting diode (LED) display, organic light emitting diode (OLED) display, cathode ray tube (CRT) display, liquid crystal display (LCD), plasma display, and electroluminescence (EL) display are widely used in a variety of electronic systems, such as cellular phones, smartphones, notebook or desktop computers, netbook computers, tablet PCs, electronic book readers, personal digital assistants (PDAs), and vehicles including cars equipped with the display panels. Display states of a display panel may be controlled by a display driver. The display driver may be integrated with a touch driver to constitute, for example, a touch and display driver integrated (TDDI) circuitry/chip to be used in a touch display that has both display and touch detection functionality.
In general, in one aspect, one or more embodiments are directed towards a display driver. The display driver comprises: a memory configured to store a plurality of control points defining a curve associated with a display panel; and shape calculation circuitry configured to: determine, based on the plurality of control points, a first intersection point of the curve and a width of a first line associated with the display panel; and modify image data of an image based on the first intersection point.
In general, in one aspect, one or more embodiments are directed towards a method. The method comprises: storing a plurality of control points defining a curve associated with a display panel; determining, based on the plurality of control points, a first intersection point of the curve and a width of a line associated with the display panel; and modifying image data based on the first intersection point.
In general, in one aspect, one or more embodiments are directed towards a system. The system comprises: a processing device comprising image data; a display panel; and a display driver comprising: a memory configured to store a plurality of control points defining a curve associated with the display panel; and shape calculation circuitry configured to: determine, based on the plurality of control points, a first intersection point of the curve and a width of a line associated with the display panel; and modify the image data based on the first intersection point.
Other aspects of the embodiments will be apparent from the following description and the appended claims.
In the following detailed description of embodiments, numerous specific details are set forth in order to provide a more thorough understanding of the disclosed technology. However, it will be apparent to one of ordinary skill in the art that the disclosed technology may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
Throughout the application, ordinal numbers (e.g., first, second, third, etc.) may be used as an adjective for an element (i.e., any noun in the application). The use of ordinal numbers is not to imply or create any particular ordering of the elements nor to limit any element to being only a single element unless expressly disclosed, such as by the use of the terms “before”, “after”, “single”, and other such terminology. Rather, the use of ordinal numbers is to distinguish between the elements. By way of an example, a first element is distinct from a second element, and the first element may succeed (or precede) the second element in an ordering of elements.
Electronic devices (e.g., smartphones, tablet personal computers (PCs), etc.) may be equipped with display panels having shapes other than mere rectangles. For example, an electronic device may have a display panel with rounded corners. Additionally or alternatively, an electronic device may have a display panel with a concave portion at its top and/or bottom. A displayed image might not appear correctly if the image data has not been processed to fit the unique shape of the display panel. For example,
One or more embodiments provide a display driver for a display panel with a unique shape, a display device equipped with a display driver and a display panel, and a method that facilitates improved operation of the display panel. One or more embodiments provide a system and method for displaying an image on a display panel having a unique shape describe by one or more curves. The displayed image is less likely to have jagged edges, is less likely to suffer from color shift, and may be displayed without using addition memory (e.g., RAM) to store all of the image data corresponding to the unique shape.
In one or more embodiments, the display panel may have any shape. For example, the display panel (205) may have rounded corners. The display panel (205) may be a liquid crystal display (LCD). Additionally or alternatively, the display panel (205) may be an organic light emitting diode (OLED) display. The display panel (205) may include pixels formed of switching elements, such as thin film transistors (TFTs) and n-type or p-type metal-oxide-semiconductor field-effect transistors (MOSFETs), arranged in a grid pattern. The switching elements (i.e., pixels) may be connected to gate lines and data lines so as to individually switch on/off the pixels in response to driving signals from the display driver (220). A row or column of pixels may correspond to a line of the display panel (205). Moreover, each line may have a width corresponding to the height or width of a pixel.
In one or more embodiments, the display driver (220) includes instruction control circuitry (222), timing control circuitry (224), gate line driving circuitry (229), data line driving circuitry (228) including digital-analog converter (DAC) (not shown), and shape calculation circuitry (226). Each of these components (222, 224, 226, 228, 229) may be implemented in any combination of hardware and software. In one embodiment, the display driver (220) is a display driver integrated circuit (IC). In one or more embodiments, the instruction control circuitry (222) causes the timing control circuitry (224) to control the timing of driving of the gate lines of the display panel (205) by the gate line driving circuitry (229), and to control the timing of driving of the data lines of the display panel (205) by the data line driving circuitry (228).
In one or more embodiments, the shape calculation circuitry (226) processes image data for display on the display panel (205). For example, the display panel (205) may include many lines of pixels, and the shape calculation circuitry (226) may process image data for the display panel (205) on a line-by-line basis.
In one or more embodiments, the display panel (205) have a unique shape. All or some of the shapes (e.g., one or more rounded corners) may be described by one or more curves. The shape calculation circuitry (226) may calculate intersection points associated with the curve and the lines. These intersection points may be used to modify the image data to fit the display panel (205) such that the image is displayed without jagged edges or color shifts. In one or more embodiments, these modifications may include setting transparency values of the image and/or setting one or more regions of the image to black (discussed below).
In one or more embodiments, by setting the regions outside the rounded corner to black, the rounded corners will appear smoother when the image is displayed on the display panel.
Referring back to
In one or more embodiments, the memory (422) stores and outputs control points defining the one or more curves associated with the display panel (205). Each curve may be described by multiple (e.g., 3, 8, etc.) control points. In one or more embodiments, the display driver (220) processes image data on a line-by-line basis. In one or more embodiments, the memory (422) also stores and outputs the next line (e.g., the y-coordinate of the next line) to be processed based on signals (not shown) from the instruction control circuitry (222). The memory (422) may be implemented as one or more registers.
In one or more embodiments, each curve corresponds to a Bezier curve such as a quadratic Bezier curve.
Referring back to
In one or more embodiments, the intersection calculation circuitry (428) calculates the intersection point(s) of the next-line with one or more curves defined by the control points from the judging circuitry (424).
Those skilled in the art, having the benefit of this detailed description, will appreciate calculating the new points involves calculating midpoints. Moreover, as shown in
In the second step, the y-value of P4 is compared with the y-coordinate of the next line (as provided by the memory (422)).
In the third step, if the y-value of P4 is smaller than the y-coordinate of the next line (as shown in
These three steps are repeated until at least one of P3, P4, and P5 has a y-coordinate that equals (or approximately equals) the y-coordinate of the next line. This point (i.e., P3, P4, or P5) is the intersection point associated with the next line and the curve. In one or more embodiments, there may be multiple intersection points for a single line. In one or more embodiments, these intersection points are the switching points between drawing the line as all black and drawing the line accordingly to the original color(s) of the image.
In one or more embodiments, each line corresponds to a row of pixels. The height of these pixels in the row defines the width of the line. In such embodiments, when the image is drawn based on the intersection points, and there is only intersection point for the width of the line, the boundary between the image region that is all black and the image region that is in the original color(s) may be jagged.
In one or more embodiments, in order to draw the boundary with smooth gradation, the image around the boundary should be processed to be blurry. This type of processing may be referred to as anti-aliasing. In one or more embodiments, to perform anti-aliasing, the width of the line is divided into K (e.g., K=4) segments. The line N is considered to pass through one segment, the line N+0.25 is considered to pass through the next segment, the line N+0.5 is considered to pass through the next segment, and the line N+0.75 is considered to pass through the last segment. In such embodiments, the additional intersection points associated with the curve and lines N+0.25, N+0.5, and N+0.75 are calculated by the intersection calculation circuitry (428).
In one or more embodiments, the transparency calculation circuitry (434) calculates transparency values for the pixels near/on the boundary. The transparency calculation circuitry (434) may obtain the intersection points associated with the curve and the width of the line (e.g., intersection points with lines N, N+0.25, N+0.5, and N+0.75). The transparency value of a pixel may depend on the presence and location of an intersection point within the pixel (i.e., the pixel overlaps an intersection point). The transparency value of a pixel may also depend on the absence of an intersection point within the pixel.
In one or more embodiments, the transparency calculation circuitry (434) effectively partitions a pixel into multiple cells. If a line width is divided into K segments (e.g., K=4), the pixel may be partitioned into K×K cells. If a pixel of the line does not intersect with the curve, the pixel will be assigned either zero transparency or full transparency.
In one or more embodiments, the transparency calculation circuitry (434) scans each row of cells in a predetermined direction (e.g., from left to right, from right to left, etc.). Upon finding a cell with an intersection point (“hit cell”), all cells in the row before the hit cell are designated to be black cells. All cells in the row after the hit cell and the hit cell itself are designated to be white cells. This process is repeated for each row of cells in the line width. In one or more embodiments, the transparency value for a pixel is based on a count of the black cells in the pixel. In one or more embodiments, the transparency value for a pixel is based on the number of white cells in the pixel. In one or more embodiments, the transparency is based on a ratio associated with the total number of cells (i.e., the cardinality of cells) in the pixel (i.e., K2).
In this example, the cell in pixel B (702B) with the intersection point for line N+0.75 is a hit cell, the cell in pixel D (702D) with the intersection point for line N+0.5 is a hit cell, the cell in pixel F (702F) with the intersection point for line N+0.25 is a hit cell, and the cell in pixel H (702H) with the intersection point for line N is a hit cell. Moreover, in this example, the predetermined direction is from left to right. As shown in
Still referring to
In one or more embodiments, the blending circuitry (436) is configured to modify the image data corresponding to the current line, based on the transparency values from the transparency calculation circuitry (434). In one or more embodiments, the blending circuitry (436) modifies the image data such that the pixels of the current line that overlap the intersection points are displayed with the calculated transparency values. The blending circuitry (434) may also be configured modify the image data corresponding to the current line by setting one or more regions of the image (e.g., regions outside rounded corners, a concave portion at the top) all black. These modifications, which are the result of simple calculations, enable the image to be displayed on a display panel of a unique shape while reducing jagged edges and the likelihood of color shifts. Moreover, these modification are achieved without the need for additional memory (e.g., additional RAM) and with less power consumption.
Referring back to
Those skilled in the art, having the benefit of this detailed description, will appreciate that after the buffer (432) latches onto the intersection points, the intersection calculation circuitry (428) may start calculating intersection points for the next line, while the transparency calculation circuitry (434) may calculate transparency values for the current line based on the stored intersection points in the buffer (432).
In one or more embodiments, when the shape of the display panel includes small curves, the corner shapes might be corrupted because the repetition of the intersection calculations rounds down the decimal places. In one or more embodiments, to avoid such a corruption, the shape calculation circuitry (400) includes a multiplier (426) and a divider (430). The multiplier (426) may be disposed on the upstream side of the intersection calculation circuitry (428). The multiplier (426) may multiply the Y-coordinates of all the control points received from the judging circuitry (424) by a factor (β) and multiply the Y coordinate of the next line by the factor (β). The divider (430) may be disposed on the downstream side of the intersection calculation circuitry (428) and divide the calculation result of the intersection calculation circuitry (428) (i.e., the Y-coordinates of the intersection points) by the factor (β). In one or more embodiments, the factor β is previously determined such that the image is magnified and then reduced at an appropriate rate. This offsets the rounding down of decimal places performed by the intersection calculation circuitry (428).
In one or more embodiments,
Initially, control points defining a curve are obtained (STEP 1105). The curve may describe, at least in part, the unique shape of a display panel (e.g., a rounded corner of the panel display). In one or more embodiments, there are three control points for the curve: a starting point, an ending point, and a middle point. Although the starting point and the ending point are part of the curve, the curve might not pass through the middle point. Additionally or alternatively, any number of control points may be used. Moreover, the curve may correspond to a quadratic Bezier curve, a cubic Bezier curve, a quaternary Bezier curve, etc.
In STEP 1110, the control points and the y-coordinate of the next line are upscaled or multiplied by a factor STEP 1110 may be optional. In one or more embodiments, STEP 1110 is executed when the shape of the display panel has small curves that may be distorted due to rounding (e.g., by the intersection calculation circuitry (428)).
In STEP 1115, intersection points associated with the curve and the next line are calculated (e.g., by the intersection calculation circuitry (428)). The curve and the next line may intersect one or more times. As discussed above, the intersection point is a switching point between drawing the line in all black and drawing the line according to the original color(s) of the image. In one or more embodiments, the next line is divided into K segments (e.g., K=4), and an intersection point with the curve is calculated for each of the K segments. For example, in the case of line N and K=4, intersection points would be calculated for lines, N, N+0.25, N+0.5, and N+0.75.
In STEP 1120, the intersection points are downscaled or divided by the factor β. STEP 1120 may be optional and is only executed when STEP 1110 is executed.
In STEP 1125, the intersection points are latched. The intersection points may be latched by a buffer having flipflops. The intersection points may be latched in response to an activation of the Hsync signal to signal a new line.
In STEP 1130, transparency values are calculated based on the intersection points. As discussed above, a line of a display panel is associated with a row (or column) of pixels. Some of the pixels include the intersection points. If a pixel overlaps with an intersection point, the pixel may be partitioned into a K×K grid of cells (due to the line width being partitioned into K segments). In one or more embodiments, the transparency value for the pixel is determined based on the position of the intersection point within the cells of the pixel. The transparency value may specify a ratio of full transparency.
Still referring to STEP 1130, the image data is modified based on the transparency values. In one or more embodiments, the image data is modified such that the portions of the image corresponding to the pixels of the line are displayed according to the calculated transparency values. This reduces the likelihood that the displayed image will have jagged edges. In one or more embodiments, the image data corresponding to the line is also modified such that one or more regions of the displayed image (e.g., a region of the image outside a rounded corner described by the curve) is set to black.
Following STEP 1130, the line may be drawn on the display panel. The process depict in
Thus, the embodiments and examples set forth herein were presented in order to best explain various embodiments and their particular application(s) and to thereby enable those skilled in the art to make and use the embodiments. However, those skilled in the art will recognize that the foregoing description and examples have been presented for the purposes of illustration and example only. The description as set forth is not intended to be exhaustive or to be limiting to the precise form disclosed. This also reduces the likelihood that the displayed image will have jagged edges.
While many embodiments have been described, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be devised which do not depart from the scope. Accordingly, the scope of the invention should be limited only by the attached claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/061273 | 11/15/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62587362 | Nov 2017 | US |