Device and method for image warping

The image warping process addresses distortion on curved screens by using efficient algorithms, ensuring clear information display with minimal resource usage.

JP2025181720APending Publication Date: 2025-12-11SYNAPTICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025086098
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-25
Filing Date
2025-05-23
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Display devices with curved screens, such as automotive HUDs, suffer from image distortion due to curvature, making it difficult for users to extract information accurately.

Method used

An image warping process is performed using efficient algorithms to correct image distortion on curved screens without requiring complex calculations or high resource consumption, involving a display driver with an image warping circuit and driving circuit to generate corrected images.

Benefits of technology

The image warping process effectively reduces or eliminates distortion, enabling clear information extraction from curved display screens with reduced hardware and software resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025181720000001_ABST
    Figure 2025181720000001_ABST
Patent Text Reader

Abstract

To mitigate the effects of image distortion that may be caused by a curved display screen.SOLUTION: A display driver includes an image warping circuit and a drive circuit section. The image warping circuit performs image warping processing on input image data corresponding to an input image to generate resulting image data corresponding to a resulting image. The image warping processing may include determining first and second ratios corresponding to a target pixel in a quadrangular target cell defined in the resulting image. The target pixel is located at an intersection of a first line segment that divides a first pair of opposing sides of the target cell according to the first ratio and a second line segment that divides a second pair of opposing sides of the target cell according to the second ratio. Pixel data of the target pixel may be determined on the basis of pixel data of one or more pixels selected from pixels of the input image on the basis of the first and second ratios.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS: This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 63 / 654,358, filed May 31, 2024, which is incorporated herein by reference in its entirety.

[0002] The present disclosure relates generally to image processing, and more particularly to image warping performed with reduced hardware and / or software resources. [Background technology]

[0003] Some display devices are configured to display images on a curved display screen. One example is a head-up display (HUD) installed in an automobile. The automotive HUD may be configured to use the curved windshield as a display screen to display information that aids in driving the automobile, such as the vehicle's speed or navigation information. In another example, a large panel display device, such as a liquid crystal display (LCD) device or an organic light-emitting diode (OLED) display, may be configured to display images on a curved display panel.

[0004] One problem with using a curved display screen is that a user may perceive a distorted image. For example, if an in-vehicle HUD is configured to project a rectangular image onto a curved windshield, a user (e.g., a driver) may perceive a non-rectangular image with uneven sides. Image distortion caused by the curvature of the display screen may be undesirable for a user to properly extract information from the image. For example, if a distorted map is displayed on the display screen due to the curvature of the display screen, the user may not be able to correctly obtain location information from the displayed map. Therefore, there is a technical need to mitigate the effects of image distortion that may be caused by a curved display screen. Summary of the Invention

[0005] This Summary is provided to introduce a selection of concepts in a concise form that are further described below. It is not intended to necessarily identify key features or essential features of the present disclosure. The present disclosure may include various aspects and embodiments described below.

[0006] In general, in one aspect, the present disclosure provides a display driver including an image warping circuit and a driving circuit. The image warping circuit is configured to perform an image warping process on input image data corresponding to an input image to generate resultant image data corresponding to a resultant image. The driving circuit is configured to drive a display panel based on the resultant image data. Performing the image warping process may include determining a first ratio and a second ratio corresponding to a target pixel located at an intersection of a first line segment and a second line segment within a rectangular target cell defined in the resultant image. The first line segment connects a first point on a first side of the target cell that divides the first side according to the first ratio, and a second point on a second side opposite the first side of the target cell that divides the second side according to the first ratio. The second line segment connects a third point on a third side of the target cell that divides the third side according to the second ratio, and a fourth point on a fourth side opposite the third side of the target cell that divides the fourth side according to the second ratio. Performing the image warping process may further include determining pixel data of the target pixel based on pixel data of one or more pixels selected from the pixels of the input image based on the first ratio and the second ratio.

[0007] In another aspect, performing the image warping process may include defining a target grid that divides the resulting image into a plurality of first cells and defining a source grid that divides the input image into a plurality of second cells that respectively correspond to the plurality of first cells. Performing the image warping process may further include determining a position of an intersection between a horizontal line on which a target pixel of the resulting image is located and the target grid and storing intersection information indicating the position of the intersection in storage. Performing the image warping process may further include identifying a target cell in which the target pixel is located from the plurality of first cells based on the intersection information, and determining pixel data of the target pixel based on pixel data of the input image data of one or more pixels in a source cell of the plurality of first cells that corresponds to the target cell.

[0008] In another aspect, the present disclosure provides a method for driving a display panel. The method includes performing an image warping process on input image data corresponding to an input image to generate resultant image data corresponding to a resultant image. The method further includes driving the display panel based on the resultant image data. Performing the image warping process includes determining a first ratio and a second ratio corresponding to a target pixel located at an intersection of a first line segment and a second line segment within a rectangular target cell defined in the resultant image. The first line segment connects a first point on a first side of the target cell that divides the first side according to the first ratio and a second point on a second side opposite the first side of the target cell that divides the second side according to the first ratio. The second line segment connects a third point on a third side of the target cell that divides the third side according to the second ratio and a fourth point on a fourth side opposite the third side of the target cell that divides the fourth side according to the second ratio. The method further includes determining pixel data for the target pixel based on pixel data for one or more pixels selected from the pixels of the input image based on the first ratio and the second ratio.

[0009] Other features and aspects are described in more detail below with reference to the accompanying drawings. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 illustrates an example display system according to one or more embodiments.

[0011] [Figure 2] FIG. 2 illustrates an example of image warping to correct image distortion caused by display screen curvature, according to one or more embodiments.

[0012] [Figure 3] FIG. 3 illustrates an example process for image warping in accordance with one or more embodiments.

[0013] [Figure 4] FIG. 4 illustrates an example of generating target cells in a warped image from source cells in an input image, according to one or more embodiments.

[0014] [Figure 5A] FIG. 5A illustrates an example configuration of a projector system according to one or more embodiments.

[0015] [Figure 5B] FIG. 5B illustrates an example display panel configuration according to one or more embodiments.

[0016] [Figure 6] FIG. 6 illustrates an example of an input image and a resulting image produced by performing an image warping process, according to one or more embodiments.

[0017] [Figure 7] FIG. 7 illustrates an example configuration of an image warping circuit according to one or more embodiments.

[0018] [Figure 8] FIG. 8 illustrates an example of identifying a target cell and its corresponding source cell, according to one or more embodiments.

[0019] [Figure 9] FIG. 9 illustrates an example of calculating x and y coordinates of a target pixel corresponding location in an input image, according to one or more embodiments.

[0020] [Figure 10] FIG. 10 illustrates an example process for calculating the ratio a:b according to one or more embodiments.

[0021] [Figure 11A] FIG. 11A illustrates an example of an iteration for calculating the ratio a:b, according to one or more embodiments. [Figure 11B] FIG. 11B illustrates an example of an iteration for calculating the ratio a:b, according to one or more embodiments. [Figure 11C] FIG. 11C illustrates an example of an iteration for calculating the ratio a:b, according to one or more embodiments. [Figure 11D] FIG. 11D illustrates an example of an iteration for calculating the ratio a:b, according to one or more embodiments. [Figure 11E] FIG. 11E illustrates an example of an iteration for calculating the ratio a:b, according to one or more embodiments.

[0022] [Figure 12] FIG. 12 illustrates an example process for calculating the ratio c:d according to one or more embodiments.

[0023] [Figure 13] FIG. 13 illustrates an example of determining the ratio a:b and the ratio c:d according to one or more embodiments.

[0024] [Figure 14] FIG. 14 illustrates an example pixel mapping circuit configuration according to one or more embodiments.

[0025] [Figure 15]FIG. 15 illustrates an example of cell identification when generating resultant image data for the Nth horizontal line of a resultant image, according to one or more embodiments.

[0026] [Figure 16] FIG. 16 illustrates an example of cross-product based target cell identification in accordance with one or more embodiments.

[0027] [Figure 17] FIG. 17 illustrates an example method for cell identification according to one or more embodiments.

[0028] [Figure 18] FIG. 18 illustrates an example configuration of a cell identification circuit according to one or more embodiments.

[0029] [Figure 19] FIG. 19 illustrates an example process according to one or more embodiments.

[0030] To facilitate understanding, the same reference numbers have been used, where possible, to designate identical elements common to the figures. It is anticipated that elements disclosed in one embodiment may be beneficially used in other embodiments without specific mention. Reference numbers may be supplemented with subscripts to distinguish identical elements from one another. The drawings referred to herein should not be understood as being drawn to scale unless specifically noted. Additionally, the drawings are often simplified, with details or components omitted for clarity of presentation and explanation. The drawings and discussion are intended to illustrate the principles discussed below. DETAILED DESCRIPTION OF THE INVENTION

[0031] The following detailed description is exemplary in nature and is not intended to be limiting as to the disclosure and its application and uses.Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding background, summary, brief description of the drawings or the following detailed description.

[0032] In the following detailed description, numerous specific details are presented to provide a deeper understanding of the disclosed technology. However, it will be apparent to those skilled in the art that the disclosed technology may be practiced without the use of these specific details. In other instances, well-known configurations have not been described in detail to avoid unnecessarily complicating the description.

[0033] As used herein, the term "coupled" means directly connected or connected via one or more intervening components or circuits. Additionally, throughout the application, ordinal numbers (e.g., first, second, third, etc.) may be used as adjectives for elements (i.e., any nouns in the application). The use of ordinal numbers is not intended to imply or create a particular ordering of any elements, nor is it intended to limit any element to only a single element, unless expressly disclosed, for example, by the use of "before," "after," "single," and other similar terms. Rather, the use of ordinal numbers is intended to distinguish between elements. For example, a first element is distinct from a second element, and a first element may encompass more than one element and may follow (or precede) a second element in the ordering of elements.

[0034] Some display devices are configured to display images on a curved display screen. For example, an in-vehicle HUD may be configured to use a curved windshield as a display screen to display various information that assists in driving the vehicle, such as the vehicle's speed and navigation information, on the curved windshield. This allows the driver to view the displayed information with minimal eye movement. As another example, a large-panel display device, such as a liquid crystal display (LCD) device or an organic light-emitting diode (OLED) display, may be configured to display images on a curved display panel.

[0035] However, when an image is displayed on a curved display screen, a user may perceive a distorted image. For example, if an in-vehicle HUD is configured to project a rectangular image onto a curved windshield, a user (e.g., a driver) may observe a distorted, non-rectangular image with uneven sides. Image distortion caused by the curvature of the display screen may be undesirable for a user to properly extract information from the image. For example, if a distorted map is displayed on a curved windshield, a user may not be able to correctly obtain location information from the displayed map.

[0036] One solution to image distortion caused by display screen curvature is to use image warping, a type of image processing that corrects image distortion through geometric transformations. For example, in an automotive HUD application, it may be advantageous to perform image warping to generate a warped image that corrects for the curvature of the windshield so that the driver can clearly view the corrected image from any angle.

[0037] However, image warping may require complex calculations, which may lead to increased hardware / software resources, increased power consumption, and reduced processing speed. In one implementation, image warping may involve defining a grid on an input image to divide the input image into rectangular cells and applying a homography transformation (or projective transformation) to each cell. Homography transformations are based on coordinate transformations using a transformation matrix, but calculating the elements of the transformation matrix may require inverting a high-dimensional matrix (e.g., an 8×8 matrix) or solving a complex system of equations for each cell, which may undesirably increase computational costs such as hardware resources, software resources, and power consumption. The present disclosure provides various techniques for performing image warping using efficient algorithms and / or with reduced resources (e.g., without performing a homography transformation or solving a complex system of equations and / or without using a central processing unit (CPU) or a graphics processing unit (GPU)), thereby enabling a small circuit size and / or a low-power design.

[0038] FIG. 1 illustrates an example display system, generally designated 100, in accordance with one or more embodiments. Display system 100 is configured as an in-vehicle head-up display (HUD) for use in automobile 1000. In the illustrated embodiment, display system 100 uses a portion of automobile 1000's curved windshield 1010 as a display screen 110 and includes a projector system 200 configured to project an image onto display screen 110 from inside automobile 1000. In the illustrated embodiment, windshield 1010 is convex toward the front of automobile 1000, and therefore, when viewed by a user 1020 of display system 100 (e.g., the driver of automobile 1000), display screen 110 appears concavely curved. Thus, as shown in FIG. 2, when projector system 200 projects an original rectangular image onto display screen 110, user 1020 of display system 100 will observe a distorted image on display screen 110, with the image having concave sides. Image distortion may prevent the user 1020 from properly extracting visual information from the image displayed on the display screen 110, which may result in a poor user experience.

[0039] In one or more embodiments, display system 100 may be configured to correct image distortions that may be caused by the curvature of display screen 110 through image warping, as shown in the lower portion of Figure 2. In the illustrated embodiment, display system 100 is configured to perform an image warping process on input image 120 to generate corrected or warped image 130. Image warping may be performed to compensate for the curvature of display screen 110, such that the image distortion is corrected when warped image 130 is displayed on display screen 110 by projector system 200. Note that while the above-described embodiment is based on projector system 200 for an automotive HUD application, the present disclosure is applicable to any display system with a curved display screen.

[0040] 3 illustrates an example of an image warping process according to one or more embodiments. In one or more embodiments, image warping is performed based on a source grid 300 defined for an input image and a target grid 350 defined for a warped image. The source grid 300 includes a set of nodes 320 and line segments connecting two of the nodes 320, dividing the input image into rectangular cells (or polygons) 310. Similarly, the target grid 350 includes a set of nodes 370 and line segments connecting two of the nodes 370, dividing the warped image into rectangular cells 360. Each cell 310 in the input image is defined by four nodes 320 of the source grid 300 located at the corners (or vertices) of the cell 310, while each cell 360 in the warped image is defined by four nodes 370 of the target grid 350 located at the corners of the cell 360. For example, the top-right cell 310a of the input image is defined by the four nodes 320a at the corners of the top-right cell 310a, while the top-right cell 360a of the warped image is defined by the four nodes 370a at the corners of the top-right cell 360a. The cells 310 of the input image correspond one-to-one to the cells 360 of the warped image. The image warping process generates each cell 360 of the warped image by transforming the corresponding cell 310 of the input image. For example, image warping may generate the top-right cell 360a of the warped image by transforming the top-right cell 310a of the input image. In one or more embodiments, an x-y coordinate system is defined for each of the input image and the warped image. Here, the x coordinate indicates a horizontal position within the input image or the warped image, and the y coordinate indicates a vertical position within the input image or the warped image.

[0041] FIG. 4 illustrates an example of generating a cell of interest (hereinafter simply referred to as a "target cell 362") from a corresponding cell 310 (hereinafter simply referred to as a "source cell 312") in an input image, according to one or more embodiments. In FIG. 4, As, Bs, Cs, and Ds are four nodes that define the source cell 312 (i.e., corners of the source cell 312), and At, Bt, Ct, and Dt are four nodes that define the target cell 362 (i.e., corners of the target cell 362). In one or more embodiments, the x and y coordinates (x, y) within the target cell 362 are t , y t ) is calculated as follows. The target pixel Pt is a pixel in the warped image for which pixel data is to be generated by the image warping process. First, the x and y coordinates (x t ,y t ), the x and y coordinates of the corners As, Bs, Cs, and Ds of the source cell 312, and the x and y coordinates of the corners At, Bt, Ct, and Dt of the target cell 362, the x and y coordinates (x s ,y s ) is calculated. Next, the x and y coordinates (x s ,y s ) or nearby one or more pixels of the source cell 312, and determine pixel data of the target pixel Pt based on pixel data of the selected one or more pixels. s ,y s ) or the pixel closest to it) has x and y coordinates (x s ,y s ), and the pixel data of the target pixel Pt is determined to be equal to the pixel data of the selected pixel. s ,y s ) are selected from the source cell 312, and the pixel data of the selected pixels is calculated as x and y coordinates (x s ,y s) to determine pixel data for the target pixel Pt. This disclosure provides various techniques for performing the above-described image warping using efficient algorithms and / or with reduced hard resources.

[0042] FIG. 5A illustrates an example configuration of a projector system 200 of the display system 100 in accordance with one or more embodiments. In the illustrated embodiment, the projector system 200 includes a display driver 210, a transmissive display panel 220, and a backlight device 230. The display driver 210 may be configured as a display driver integrated circuit (DDIC), and the transmissive display panel 220 may be a transmissive LCD panel. The display driver 210 includes an image data buffer 240, image processing circuitry 250, and drive circuitry 260. The image data buffer 240 is configured to receive input image data corresponding to an input image (e.g., the input image shown in FIGS. 2 and 3 ) from an image source 500 and store the input image data. The image source 500 may be an application processor, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a microcontroller unit (MCU), or any other type of processor configured to generate input image data. The image processing circuit unit 250 is configured to obtain input image data from the image data buffer 240 and perform image processing on the input image data to generate processed image data. The drive circuit unit 260 is configured to drive the display panel 220 based on the processed image data. The backlight device 230 is configured to illuminate the transmissive display panel 220, and the light that passes through the display panel 220 forms a display image on the curved display screen 110, which is part of the windshield, as described in relation to FIG. 1.

[0043] FIG. 5B illustrates an example configuration of a display panel 220 according to one or more embodiments. In the illustrated embodiment, the display panel 220 includes an array of pixels 222, a plurality of gate lines (also referred to as "scan lines") 224, a plurality of source lines (also referred to as "data lines") 226, and a gate driver circuit 228. Each pixel 222 may include a red (R), green (G), and blue (B) subpixel, which are indicated by boxes labeled "R," "G," and "B" in FIG. 5B. Each subpixel may be located at the intersection of a respective gate line 224 and a respective source line 226 and coupled to each gate line 224 and each source line 226. Each subpixel is driven by the display driver 210 via each source line 226. In other embodiments, each pixel 222 may further include subpixels of colors other than red, green, and blue (e.g., yellow and white).

[0044] Returning to FIG. 5A , in one implementation, image processing circuitry 250 includes image warping circuitry 400 configured to perform an image warping process on input image data corresponding to an input image to generate resultant image data representing a resultant image. The input image data includes pixel data for each pixel of the input image, and the resultant image data includes pixel data for each pixel of the resultant image. In an embodiment in which pixels 222 of display panel 220 include R, G, and B subpixels, the pixel data for each pixel of the input image and the resultant image may include red (R), green (G), and blue (B) gradations for that pixel. Here, R, G, and B gradations may indicate luminance levels of the R, G, and B subpixels, respectively. In other embodiments, additional image processing may be applied to the input image data, and image warping circuitry 400 may be configured to perform the image warping process on image data generated by the additional image processing to generate warped image data.

[0045] FIG. 6 illustrates an example of an input image 600 and a resultant image 650 generated by performing an image warping process, according to one or more embodiments. The resultant image 650 includes a warped image 660 generated by performing image warping on the input image 600. In one or more embodiments, the image warping may be performed such that image distortion of a displayed image on a curved display screen 110 (as shown in FIGS. 1 and 5A ) is reduced or eliminated by projecting the warped image 660 onto the curved display screen 110. To facilitate image processing, the resultant image 650 may be formed as a rectangular image by additionally including one or more black pixel regions 670 filled with “black pixels.” As used herein, a “black pixel” refers to a pixel with a luminance of zero. In implementations in which the pixel data for each pixel of the resultant image data includes R, G, and B gradations, a “black pixel” may refer to a pixel with R, G, and B gradations all equal to zero. The one or more black pixel regions 670 are defined to fill in the portions of the resultant image 650 other than the warped image, such that the warped image 660 and the one or more black pixel regions 670 form a rectangular shape of the resultant image 650. In the illustrated embodiment, four black pixel regions 670 are disposed at the corners of the resultant image 650. The resultant image data representing the resultant image 650 may include pixel data for each pixel of the warped image 660 and pixel data for each pixel of the one or more black pixel regions 670, where the R, G, and B gradations are zero.

[0046] 5A , in one or more embodiments, image processing circuitry 250 may further include additional image processing circuitry 255 configured to apply one or more other image processes to the resulting image data received from image warping circuitry 400 to generate processed image data that is provided to driver circuitry 260. Examples of image processing that may be performed by additional image processing circuitry 255 include color adjustment (e.g., color gamut adjustment), image scaling, demurration correction, deburning, gamma conversion, etc. In other embodiments, additional image processing circuitry 255 may be omitted, and the resulting image data generated by image warping circuitry 400 may be used as the processed image data.

[0047] FIG. 7 illustrates an example configuration of an image warping circuit 400 according to one or more embodiments. In the illustrated embodiment, the image warping circuit 400 is configured to receive the x and y coordinates of a target pixel Pt, a target grid setting, and a source grid setting to perform an image warping process. The target pixel is a pixel of a result image on which the image warping process is currently being performed. The target grid setting indicates the configuration of a target grid (e.g., as shown in FIG. 3), and the source grid setting indicates the configuration of a source grid (e.g., as shown in FIG. 3). In one implementation, the target grid setting may include the x and y coordinates of each node of the target grid, and the source grid setting may include the x and y coordinates of each node of the source grid. In the embodiment illustrated in FIG. 7, the image warping circuit 400 includes a cell identification circuit 410, a pixel mapping circuit 420, and a pixel data acquisition circuit 430.

[0048] The cell identification circuit 410 determines the x and y coordinates of the target pixel (x t ,y t ) and the target grid setting, the cell identification circuit 410 is further configured to extract a target cell setting for the target cell from the target grid setting, extract a source cell setting for the corresponding source cell from the source grid setting, and provide the target cell setting and the source cell setting to the pixel mapping circuit 420. The target cell setting includes the x and y coordinates (x , y ) of the four nodes that define the target cell. At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ), (x Dt ,y Dt ), while the source cell configuration may contain the x and y coordinates (x As ,y As ), (x Bs ,yBs ), (x Cs ,y Cs ), (x Ds ,y Ds ) may be included.

[0049] FIG. 8 illustrates a graph of the x and y coordinates of a target pixel (x t ,y t 8 illustrates an example of identifying a target cell and its corresponding source cell based on the target grid settings (which may indicate the x and y coordinates of the nodes of the target grid). In FIG. 8, white dots indicate nodes of the source grid and the target grid. In the illustrated embodiment, based on the target grid settings (which may indicate the x and y coordinates of the nodes of the target grid), cell #5 of the warped image is identified as the target cell in which the target pixel Pt is located. Furthermore, cell #5 of the input image, which corresponds to cell #5 of the warped image, is identified as the source cell. The cell identification circuit 410 may be configured to provide the x and y coordinates of the four nodes of the target grid that define the target cell and the x and y coordinates of the four nodes of the source grid that define the source cell to the pixel mapping circuit 420.

[0050] 7, pixel mapping circuit 420 is configured to determine a "target pixel corresponding location" based on the location of the target pixel within the target cell, the target cell setting, and the source cell setting. As used herein, a "target pixel corresponding location" is a location in the input image that corresponds to the location of the target pixel in the result image. In the example of FIG. 8, the target pixel corresponding location, designated "Ps," is located in cell #5 of the input image. In one implementation, pixel mapping circuit 420 determines the x and y coordinates (x t ,y t ) and the target cell settings and the source cell settings, the x and y coordinates (x s ,y s As will be described later, the x and y coordinates (x s ,y s) is used to select one or more pixels of the source cell to reference when determining or calculating pixel data for the target pixel. The pixel mapping circuit 420 calculates the x and y coordinates (x s ,y s ) to the pixel data acquisition circuit 430.

[0051] The pixel data acquisition circuit 430 compares the input image data stored in the image data buffer 240 with the x and y coordinates (x s ,y s ) for the warped image included in the resultant image, the pixel data acquisition circuit 430 acquires pixel data of one or more selected pixels of the input image based on the x and y coordinates (x s ,y s ) from the image data buffer 240 based on the pixel data acquisition circuit 430, and generate pixel data for the target pixel of the warped image. Furthermore, the pixel data acquisition circuit 430 is configured to generate pixel data for each black pixel (e.g., R, G, B gradation is 0) in one or more black pixel regions included in the resultant image.

[0052] In some embodiments, the pixel data acquisition circuit 430 may be configured to acquire pixel data of a single pixel that is closest to the corresponding position of the target pixel in the input image from the input image data, and determine the pixel data of the target pixel in the warped image to be identical to the pixel data of the pixel that is closest to the corresponding position of the target pixel in the input image. In such an embodiment, the pixel data acquisition circuit 430 may acquire the x and y coordinates (x s ,y s) and accesses the image data buffer 240 using the determined read address. In another embodiment, the pixel data acquisition circuit 430 may be configured to acquire pixel data of two or more pixels (e.g., four pixels) closest to the pixel corresponding position in the input image from the input image data stored in the image data buffer 240, and obtain the x and y coordinates (x , y ) of the target pixel corresponding position. s ,y s ) and the positions of the two or more nearest neighboring pixels, to determine pixel data of the target pixel. In such an embodiment, the pixel data acquisition circuit 430 may be configured to determine the pixel data of the target pixel by interpolating the pixel data of the two or more nearest neighboring pixels. In such an embodiment, the pixel data acquisition circuit 430 may be configured to determine the x and y coordinates (x s ,y s ), and may be configured to determine read addresses for pixel data of the two or more nearest neighboring pixels, and access the image data buffer 240 using the read addresses thus determined.

[0053] 9 illustrates an example of calculating the x and y coordinates (xs, ys) of a target pixel corresponding position according to one or more embodiments. In FIG. 9, At, Bt, Ct, and Dt are four nodes (or four corners of the target cell) that define a target cell, and As, Bs, Cs, and Ds are four nodes (or four corners of the source cell) that define a source cell. Note that the target cell setting specifies the x and y coordinates of the nodes At, Bt, Ct, and Dt, and the source cell setting specifies the x and y coordinates of the nodes As, Bs, Cs, and Ds.

[0054] In one or more embodiments, the x and y coordinates (x s ,y s) includes calculating the ratios a:b and c:d corresponding to the target pixel Pt. Here, the target pixel Pt is located at the intersection of the line segments EtFt and GtHt, Et is the point dividing the side AtBt according to the ratio a:b, Ft is the point dividing the side CtDt according to the ratio a:b, Gt is the point dividing the side CtAt according to the ratio c:d, and Ht is the point dividing the side DtBt according to the ratio c:d. Note that the sides AtBt and CtDt are opposite each other, and the sides CtAt and DtBt are opposite each other. The x and y coordinates (x s ,y s ) is determined as the x and y coordinates of the intersection of the line segments EsFs and GsHs. Here, Es is the point that divides the side AsBs in the ratio a:b, Fs is the point that divides the side CsDs in the ratio a:b, Gs is the point that divides the side CsAs in the ratio c:d, and Hs is the point that divides the side DsBs in the ratio c:d. Note that the sides AsBs and CsDs are opposite each other, and the sides CsAs and DsBs are opposite each other. The x and y coordinates (x s ,y s ) is (1) the x and y coordinates of the target pixel in the resulting image (x t ,y t ), (2) the x and y coordinates (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ), (x Dt ,y Dt ), and (3) the x and y coordinates (x As ,y As ), (x Bs ,y Bs ), (x Cs ,y Cs ), (x Ds ,y Ds ) can be calculated based on

[0055] In one or more embodiments, the ratios a:b and c:d may be calculated using a binary search involving a predetermined number of iterations. Figure 10 illustrates an example process for calculating the ratio a:b according to one or more embodiments, and Figure 12 illustrates an example process for calculating the ratio c:d according to one or more embodiments. The calculation of the ratio a:b will be described first below.

[0056] In one or more embodiments, as shown in FIG. 10, the ratio a:b is calculated by using a midpoint connecting vector E0F0 connecting the midpoint E0 of the side AtBt and the midpoint F0 of the side CtDt. → This may be followed by determining the midpoint link vector E1F1 → , E2F2 → , …, E n F n → may be determined iteratively, where n is the number of iterations, and the midpoint-linked vector E k F k → is determined by the kth iteration, where k is an integer between 1 and n. → ~E4F4 → The ratio a:b is determined by the midpoint connection vector E n F n → Using the ratio AtE n :E n Bt(ratio CtF n :F n Dt).

[0057] In one or more embodiments, for k greater than or equal to 1 and less than or equal to n, the midpoint connection vector E k-1 F k-1 → to midpoint connection vector E k F k → may be determined as follows: When the target pixel Pt is connected to the midpoint connecting vector E k-1 F k-1 → If it is to the right of E k is point E k-1and the midpoint of the line segment connecting the first point on the side AtBt, Fk is the midpoint of the line segment connecting the point Fk-1 and the second point on the side CtDt, ​​and the midpoint connecting vector E k F k → is the midpoint connecting vector E k-1 F k-1 → As shown on the right side of k F k → Here, the first point is defined as points E0 to E k-2 of the midpoint-connected vector E (if there is more than one such point). k-1 F k-1 → Among one or more points to the right of and point At (i.e., angle At), point E k-1 The second point is the point closest to F0. k-2 of the midpoint-connected vector E (if there is more than one such point). k-1 F k-1 → and point Ct (i.e., corner Ct). Points E0 to E k-1 Both of these are midpoint-connected vectors E k-1 F k-1 → If the point is not to the right of the corner, then the corner At is selected as the first point. k-1 Both of these are midpoint-connected vectors E k-1 F k-1 → If the point is not to the right of the corner Ct, then the corner Ct is selected as the second point.

[0058] The target pixel Pt is the midpoint connection vector E k-1 F k-1 → If it is to the left of E k is point E k-1 and the third point on the side AtBt, and F k Point F k-1 and the fourth point on the side CtDt, ​​and the midpoint connecting vector E k F k → is the midpoint connecting vector E k-1 F k-1→ As shown on the left side of k F k → Here, the third point is defined as points E0 to E k-2 of the midpoint-connected vector E (if there is more than one such point). k-1 F k-1 → and point Bt (i.e., corner Bt), and the fourth point is selected from points F0 to F k-2 of the midpoint-connected vector E (if there is more than one such point). k-1 F k-1 → and point Dt (i.e., corner Dt). Points E0 to E k-2 Both of these are midpoint-connected vectors E k-1 F k-1 → If the point is not to the left of the point F, then the corner Bt is selected as the third point. k-2 Both of these are midpoint-connected vectors E k-1 F k-1 → If not to the left of, then corner Dt is selected as the fourth point.

[0059] Also, the target pixel Pt is k-1 F k-1 If it is above, the midpoint connecting vector E k F k → is the midpoint connecting vector E k-1 F k-1 → It is determined that the midpoint connecting vector E k F k → When the target pixel Pt and the line segment E k F k The distance between the target pixel Pt and the line segment E k-1 F k-1 is less than the distance between

[0060] In one or more embodiments, the target pixel Pt is connected to the midpoint connecting vector E k-1 Fk-1 → To determine whether it is on the right or left side of the vector E k-1 F k-1 → and E k-1 Pt → cross product of (which is

number

number

number

number

number

number

[0061] 11A-11E illustrate a midpoint-connected vector E0F0 → ~E4F4 → 11A, an example of a process for determining the midpoint connecting vector E0F0 is shown. → In iteration #1, the target pixel Pt is determined to be the midpoint connected vector E0F0 as shown in FIG. → Since it is on the right side of → is determined by the midpoint E1 of the line segment AtE0 and the midpoint F1 of the line segment CtF0.

number

[0062] The number of iterations, N, may be determined so that the ratio a:b can be determined with sufficient accuracy. In one or more embodiments, the number of iterations, N, is xt , y t , x s and y s where (x t ,y t ) is the x and y coordinates of the target pixel, and (x s ,y s ) is the x and y coordinates of the target pixel corresponding point. For example, x t , y t , x s and y s If each is represented by 12 bits, the number of iterations N may be 12.

[0063] In one or more embodiments, the ratio c:d may be determined in a similar manner to the ratio a:b. Referring to FIG. 12, the calculation of the ratio c:d is performed using the midpoint-connected vector G0H0 → Here, we can start by determining the midpoint link vector G0H0 → connects the midpoint G0 of the side DtBt and the midpoint H0 of the side CtAt. Next, the midpoint linking vector G1H1 → , G2H2 → , …, G n H n → is determined iteratively, where n is the number of iterations, and for any integer k between 1 and n, the midpoint-connected vector G k H k → is determined at the k-th iteration. Figure 12 shows the midpoint connection vector G0H0 → ~G3H3 → As mentioned above, the number of iterations is x t , y t , x s and y s where (x t ,y t ) is the x and y coordinates of the target pixel, and (x s ,y s ) are the x and y coordinates of the target pixel correspondence. The ratio c:d is the midpoint connection vector H determined by the last iteration. n G n → Using the ratio DtGn :G n Bt(ratioCtH n :H n At).

[0064] In one or more embodiments, for k greater than or equal to 1 and less than or equal to n, the midpoint linking vector E k-1 F k-1 → to midpoint connecting vector E k F k → In a similar way to determine the midpoint link vector G k H k → the midpoint connecting vector G k-1 H k-1 → The target pixel Pt may be determined as follows: k-1 H k-1 → If it is to the right of k Point G k-1 and the midpoint of the line segment connecting the first point on the side DtBt, and H k Point H k-1 and the second point on the side CtAt, and the midpoint connecting vector G k H k → is the midpoint connecting vector G k-1 H k-1 → As shown on the right side of the figure, the midpoint connecting vector G k H k → Here, the first point is defined as points G0 to G k-2 (if there is more than one such point) k-1 H k-1 → Point G among one or more points to the right of point Bt (i.e., angle Bt) k-1 The second point is the point closest to point H0. k-2 (if there is more than one such point) k-1 H k-1 The points G0 to G are selected from one or more points to the right of the point At (i.e., the corner At). k-1Both of these are midpoint connecting vectors G k-1 H k-1 → If the point is not on the right side of the point H, then the corner Bt is selected as the first point. k-1 Both of these are midpoint connecting vectors G k-1 H k-1 → If the angle At is not to the right of the

[0065] The target pixel Pt is the midpoint connecting vector G k-1 H k-1 → If it is to the left of k Point G k-1 and the third point on the side DtBt, and H k Point H k-1 and the fourth point on the side CtAt, and the midpoint connecting vector G k H k → is the midpoint connecting vector G k-1 H k-1 → As shown on the left side of the figure, the midpoint connecting vector G k H k → Here, the third point is defined as points G0 to G k-2 (if there is more than one such point) k-1 H k-1 → and point Dt (i.e., corner Dt), and the fourth point is selected from points H0 to H k-2 (if there is more than one such point) k-1 H k-1 → and point Dt (i.e., corner Dt). Points G0 to G k-2 Both of these are midpoint connecting vectors G k-1 H k-1 → If the point H0 is not to the left of the point Dt, the point Dt is selected as the third point. k-2 Both of these are midpoint connecting vectors G k-1 H k-1 →If not to the left of , then corner Ct is selected as the fourth point.

[0066] Furthermore, the target pixel Pt is k-1 H k-1 If it is above, the midpoint connecting vector G k H k → is the midpoint connecting vector G k-1 H k-1 → is determined identically to

[0067] 13 illustrates an example of determining the ratios a:b and c:d in accordance with one or more embodiments. In the illustrated embodiment, the ratio a:b is determined by the ratio AtE n :E n Bt(ratio CtF n :F n Dt) and the ratio c:d is determined as the ratio DtG n :G n Bt(ratioCtH n :H n The ratio a:b and the ratio c:d determined in this way are used to calculate the x and y coordinates (xs, ys) of the target pixel corresponding position, which is the position in the input image that corresponds to the position of the target pixel in the result image.

[0068] FIG. 14 illustrates an example configuration of a pixel mapping circuit 420 according to one or more embodiments. In the illustrated embodiment, the pixel mapping circuit 420 includes a binary search circuit 610 and a target pixel corresponding position calculation circuit 620. The binary search circuit 610 is configured to perform a binary search to determine the ratios a:b and c:d, as described above in connection with FIGS. 10-13. The target pixel corresponding position calculation circuit 620 calculates the x and y coordinates (x, y) of the four corners As, Bs, Cs, and Ds of the source cell, as described above in connection with FIG. As ,y As ), (x Bs ,y Bs ), (x Cs ,y Cs ) and (x Ds ,y Ds) and the ratios a:b and c:d, the x and y coordinates of the target pixel corresponding position (x s ,y s In one or more embodiments, the binary search circuit 610 may include first to n-th iteration circuits 630-1 to 630-n (three shown) connected in series, and a ratio calculation circuit 640.

[0069] The first iteration circuit 630-1 is configured to perform a first iteration of the binary search. More specifically, the first iteration circuit 630 performs the first iteration of the binary search, as described in connection with FIGS. 10, 11A, and 12, by finding the x and y coordinates of the target pixel (x t ,y t ) and the x and y coordinates of the four corners At, Bt, Ct, and Dt of the target cell (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ) and (x Dt ,y Dt The x and y coordinates of the midpoints E0, F0, G0 and H0 are calculated based on the midpoint connecting vector E0F0 → and midpoint connection vector G0H0 → The first iteration circuit 630-1 is further used to determine the x and y coordinates of the target pixel (x t ,y t ), the x and y coordinates of the midpoints E0, F0, G0 and H0, and the x and y coordinates of the four corners At, Bt, Ct and Dt of the target cell (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ) and (x Dt ,y Dt The x and y coordinates of the midpoints E1, F1, G1, and H1 are calculated based on the midpoint connecting vector E1F1. → and midpoint connecting vector G1H1 →The first iteration circuit 630-1 may be further configured to provide the x and y coordinates of the midpoints E1, F1, G1 and H1 to the second iteration circuit 630-2.

[0070] The second iteration circuit 630-2 to the n-th iteration circuit 630-N are configured to perform the second to n-th iterations of the binary search, respectively. For i between 2 and n, the iteration circuit 630-i finds the x and y coordinates (x t ,y t ), midpoint E i-1 , F i-1 , G i-1 and H i-1 and the x and y coordinates of the four corners At, Bt, Ct and Dt of the target cell (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ) and (x Dt ,y Dt ) based on the midpoint E i , F i , G i and H i The n-th iteration circuit 630-n is further configured to calculate the x and y coordinates of the midpoint E n , F n , G n and H n The ratio calculation circuit 640 is configured to provide the x and y coordinates of the midpoint E n , F n , G n and H n and the x and y coordinates of the four corners At, Bt, Ct and Dt of the target cell (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ) and (x Dt ,y Dt) and calculates the ratio a:b and the ratio c:d based on the x and y coordinates (x s ,y s ) to a target pixel corresponding position calculation circuit 620 configured to calculate the corresponding position of the target pixel.

[0071] Since the first to n-th iterative processes are each composed of simple arithmetic operations, the first to n-th iterative circuits 630-1 to 630-n can be implemented with an efficient circuit configuration, which reduces the circuit scale of the binary search circuit 610 and enables image warping to be performed with fewer hardware resources.

[0072] In various embodiments, the image warping circuit 400 (shown in FIGS. 5A and 7) may be configured to generate result image data of the result image in units of “horizontal lines.” Here, a “horizontal line” of the result image refers to a row of pixels arranged horizontally in the result image. Note that the position of a horizontal line in the result image can be represented by a y-coordinate. The “horizontal line” of the result image is displayed as a “horizontal” line on the display panel 220. Here, the “horizontal” direction on the display panel 220 is the direction in which rows of pixels 222 coupled to the same gate line 224 (see also FIG. 5B ) are arranged or positioned. In one implementation, pixels of a “horizontal line” of the result image may correspond to rows of pixels 222 coupled to the same gate line 224. A row of pixels 222 coupled to a certain gate line 224 may be driven based on pixel data of pixels of a corresponding “horizontal line” of the result image.

[0073] In one or more embodiments, the image warping circuit 400 is configured to generate pixel data for one horizontal line of the resultant image during one line period (or horizontal synchronization period). Here, the horizontal line of the resultant image for which pixel data is generated first in each frame period (or vertical synchronization period) is referred to as the "first horizontal line," and the horizontal line of the resultant image for which pixel data is generated second in each frame period is referred to as the "second horizontal line." The same applies to the remaining horizontal lines. Specifically, the horizontal line of the resultant image for which pixel data is generated Nth in each frame period (or vertical synchronization period) is referred to as the "Nth horizontal line," where N is a natural number between 1 and m, inclusive, and m is the number of horizontal lines in the resultant image.

[0074] FIG. 15 illustrates an example of cell identification performed by cell identification circuit 410 (shown in FIG. 7) when generating resultant image data for the Nth horizontal line of a resultant image incorporating a warped image, according to one or more embodiments. When generating resultant image data for the Nth horizontal line, pixels on the Nth horizontal line are sequentially selected as target pixels, and pixel data for the target pixels are calculated based on pixel data for one or more pixels of the input image selected for the target pixels. As described above, selecting the one or more pixels of the input image involves determining the x and y coordinates (x t ,y t) and the target grid setting, identifying a target cell in which the target pixel is located in the resulting image. This disclosure recognizes that an efficient target cell identification algorithm is highly beneficial because the target grid is not necessarily regularly defined and therefore the identified target cell may vary irregularly as target pixels are sequentially selected from the pixels on the Nth horizontal line. For example, in the example shown in FIG. 15 , when scanning the pixels on the Nth horizontal line from left to right to identify a target cell for each pixel on the Nth horizontal line, the target cell is first identified as cell #7 for a first set of pixels on the Nth horizontal line, then identified as cell #8 for a second set of pixels to the right of the first set of pixels, then identified as cell #2 for a third set of pixels to the right of the second set of pixels, and so on.

[0075] One method for identifying a target cell from a cell in the warped image is to use a cross product. Figure 16 shows an example of identifying a target cell based on a cross product, according to one or more embodiments. For a particular cell in the warped image, defined by corners A, B, D, and C in clockwise order, the target pixel Pt is found by the four vectors AB defined for that cell. → , B.D. → , D.C. → , CA → , this means that the target pixel Pt is located in the cell with corners A, B, D, and C. In other words, if the cross product

number

number

[0076] However, this cell identification method requires the calculation of the above cross product for each pixel in the warped image until the target cell is found. This can undesirably increase the amount of required calculations and hardware / software resources, resulting in increased power consumption and product costs. Below, we describe an embodiment that achieves cell identification while reducing the amount of calculations and hardware resources.

[0077] FIG. 17 illustrates an example of a cell identification method according to one or more embodiments. In FIG. 17, (p,q) is the node identifier (ID) of the node located in the pth row from the top and the qth column from the left of the target grid. For example, the node located in the first row from the top and the first column from the left is labeled (1,1). A line segment connecting two nodes may be referred to by the node IDs of the two nodes. For example, the line segment connecting node (1,1) and node (1,2) may be referred to as the line segment (1,1)-(1,2).

[0078] In one or more embodiments, cell identification circuit 410 may be configured to determine the location of an intersection of the Nth horizontal line with the target grid and use the intersection location to identify a target cell for each pixel on the Nth horizontal line. In an embodiment where the y-coordinate of the Nth horizontal line is yline_N, the intersection of the Nth horizontal line with the target grid is at a y-coordinate of yline_N on the line segment of the target grid that intersects with the Nth horizontal line, and the location of the intersection may be represented by the x-coordinate of the intersection. In the embodiment shown in FIG. 17, there are 14 intersections of the Nth horizontal line with the target grid, and the locations of these 14 intersections are represented by the x-coordinates x1 through x2 of the 14 intersections. 14For example, x1 is the x coordinate of the intersection of the Nth horizontal line and the line segment (1,2)-(1,3), x2 is the x coordinate of the intersection of the Nth horizontal line and the line segment (2,2)-(2,3), x3 is the x coordinate of the intersection of the Nth horizontal line and the line segment (2,2)-(3,2), etc.

[0079] The cell identification circuit 410 may be further configured to identify a cell adjacent to each intersection in the direction in which the pixels on the Nth horizontal line are scanned. When identifying a target cell for each pixel on the Nth horizontal line, in an embodiment in which the pixels on the Nth horizontal line are scanned in a rightward direction (i.e., from left to right), as shown in Figure 17, the cell identification circuit 410 may be configured to identify a cell adjacent to the right of each intersection. For example, the cell identification circuit 410 may be configured to determine that cell #7 is adjacent to the intersection having an x-coordinate of x1, cell #8 is adjacent to the intersection having an x-coordinate of x2, cell #2 is adjacent to the intersection having an x-coordinate of x3, etc.

[0080] The cell identification circuit 410 may be configured to store intersection information and neighboring cell information in storage. The intersection information may indicate the location of an intersection between the Nth horizontal line and the target grid. The neighboring cell information may indicate cells neighboring each intersection in a direction in which pixels on the Nth horizontal line are scanned. In one implementation, the storage of the cell identification circuit 410 may include a first FIFO, also referred to as an x-coordinate first-in-first-out (FIFO), and a second FIFO, also referred to as a cell ID FIFO. The x-coordinate FIFO (or the first FIFO) may be configured to store x-coordinates of intersections between the Nth horizontal line and the target grid, and the cell ID FIFO (or the second FIFO) may be configured to store cell IDs of cells neighboring each intersection. Table 1702 shows example data stored in the x-coordinate FIFO, and table 1704 shows example data stored in the cell ID FIFO.

[0081] In one or more embodiments, the determination and storage of the locations of intersections of the Nth horizontal line and the target grid and the cells adjacent to each intersection may be performed during a line period (or horizontal synchronization period) prior to the line period in which pixel data for the Nth horizontal line of the resulting image data is generated. In one implementation, the cell identification circuit 410 may be configured to determine and store the locations of intersections of the Nth horizontal line and the target grid and the cells adjacent to each intersection during the line period in which pixel data for the (N-1)th horizontal line is generated. This facilitates pipelined generation of the resulting image data, improving the efficiency of the image warping process.

[0082] In one or more embodiments, the cell identification circuit 410 may be configured to identify a target cell for each pixel on the Nth horizontal line based on the x-coordinates of the intersections of the Nth horizontal line and the target grid stored in the x-coordinate FIFO and the cell IDs identifying the cells adjacent to each intersection. In the example shown in FIG. 17, the cell identification circuit 410 may be configured to determine that pixels on the Nth horizontal line with x-coordinates less than x1 are outside the target grid and that no target cell exists at those pixels. The cell identification circuit 410 may be further configured to determine that the target cell is cell #7 for pixels on the Nth horizontal line with x-coordinates greater than x1 but less than x2, determine that the target cell is cell #8 for pixels on the Nth horizontal line with x-coordinates greater than x2 but less than x3, determine that the target cell is cell #2 for pixels on the Nth horizontal line with x-coordinates greater than x3 but less than x4, and so on. Since the calculation of the intersections and the determination of the cells adjacent to each intersection can be achieved through efficient computation, the required hardware resources and power consumption can be effectively reduced by identifying the target cell based on the intersection position between the stored Nth horizontal line and the target grid and the cell IDs of the cells adjacent to each intersection.

[0083] 18 illustrates an example configuration of cell identification circuit 410 in accordance with one or more embodiments. In the illustrated embodiment, cell identification circuit 410 includes intersection calculation circuit 710, storage 720, FIFO controller 730, and cell configuration extraction circuit 740. Storage 720 includes x-coordinate FIFO 722 and cell ID FIFO 724.

[0084] The intersection calculation circuit 710 is configured to receive the Y address of the Nth horizontal line and the target grid setting during a line period in which pixel data for the (N-1)th horizontal line of the resultant image data is generated, and to determine the X coordinates of each intersection between the Nth horizontal line and the target grid based on the Y address of the Nth horizontal line and the target grid setting. Note that the target grid setting may indicate the configuration of the target grid, including the x and y coordinates of each node of the target grid. The intersection calculation circuit 710 is further configured to sequentially enqueue the x coordinates of the intersections in the order of scanning the pixels on the Nth horizontal line into the x coordinate FIFO 722 and identify the target cell for each pixel. In the example shown in FIG. 17, x1 is first enqueued into the x coordinate FIFO 722, followed by x2, x3, ... The intersection calculation circuit 710 is further configured to identify cells adjacent to each intersection in the scanning direction (e.g., rightward in the embodiment shown in FIG. 17) during scanning of pixels on the Nth horizontal line, and sequentially enqueue the cell IDs of the cells adjacent to each intersection in the queue of the cell ID FIFO 724 in the order in which they were identified. In the example shown in FIG. 17, "7" is enqueued first in the queue of the cell ID FIFO 724, followed by "8" and "2." The identification and enqueuing of the x-coordinates of the intersections of the Nth horizontal line and the target grid, and the cell IDs of the cells adjacent to each intersection, are performed during the line period in which pixel data for the (N-1)th horizontal line of the resultant image data is generated.

[0085] The FIFO controller 730 calculates the x-coordinate x of the target pixel on the Nth horizontal line. tand the x-coordinate received from x-coordinate FIFO 722. In one implementation, FIFO controller 730 may control x-coordinate FIFO 722 and cell ID FIFO 724, thereby providing the cell ID of the target cell from cell ID FIFO 724 to cell configuration extraction circuit 740. In one implementation, FIFO controller 730 may be configured to operate as follows during identification of the target cell for a pixel on the Nth horizontal line.

[0086] At the start of a line period during which pixel data for the Nth horizontal line is generated, the x-coordinate at the head of the queue in x-coordinate FIFO 722 is the x-coordinate that was first enqueued, which is x1 in the example shown in Figure 17. After the start of a line period during which pixel data for the Nth horizontal line is generated, the x-coordinate of the target cell is sequentially increased to scan the pixels on the Nth horizontal line. In response to the x-coordinate of the target cell exceeding the x-coordinate (e.g., x1) received from x-coordinate FIFO 722, FIFO controller 730 provides a read request to cell ID FIFO 724, which then provides the cell ID at the head of the queue (e.g., "7" in the example shown in Figure 17) to cell setting extraction circuit 740 as the cell ID of the target cell. The FIFO controller 730 further causes the x coordinate FIFO 722 to dequeue the x coordinate at the head of the queue, thereby updating the x coordinate at the head of the queue to the x coordinate second enqueued in the queue of the x coordinate FIFO 722 (e.g., x2 in the example of FIG. 17). The FIFO controller 730 continues to cause the cell ID FIFO 724 to output the cell ID at the head of the queue (e.g., "7") until the x coordinate of the target cell exceeds the second enqueued z coordinate (e.g., x2).

[0087] In response to the x-coordinate of the target cell exceeding the second-enqueued x-coordinate (e.g., x2), the FIFO controller 730 causes the cell ID FIFO 724 to dequeue the cell ID at the head of the queue, thereby updating the cell ID at the head of the queue of the cell ID FIFO 724 to the second-enqueued cell ID (e.g., "8" in the example of FIG. 17). The FIFO controller 730 then sends a read request to the cell ID FIFO 724, thereby causing the cell ID FIFO 724 to provide the updated cell ID at the head of the queue (e.g., "8") as the cell ID of the target cell to the cell setting extraction circuit 740. The FIFO controller 730 then causes the x-coordinate FIFO 722 to dequeue the x-coordinate at the head of the queue, thereby updating the x-coordinate at the head of the queue to the third-enqueued x-coordinate (e.g., x3 in the example of FIG. 17). The FIFO controller 730 continues to supply the cell ID FIFO 724 with the cell ID at the top of the queue (e.g., "8") until the x coordinate of the target cell exceeds the third queued x coordinate (e.g., x3) in the queue of the x coordinate FIFO 722. After the x coordinate of the target cell exceeds the third queued x coordinate, the same process is repeated to determine target cells for all pixels on the Nth horizontal line.

[0088] The cell configuration extraction circuit 740 is configured to extract a target cell configuration from the target grid configuration based on the cell ID of the target cell received from the cell ID FIFO 724, and further to extract a source cell configuration of the source cell corresponding to the target cell from the source grid configuration. In one embodiment, the target cell configuration includes the x and y coordinates of the four corners of the target cell (x At ,y At ), (x Bt ,y Bt ), (x Ct ,y Ct ), (x Dt ,y Dt ), and the source settings include the x and y coordinates of the four corners of the source cell (x As ,y As ), (x Bs ,yBs ), (x Cs ,y Cs ), (x Ds ,y Ds The cell setting extraction circuit 740 is configured to provide the target cell setting and the source cell setting to the pixel mapping circuit 420, which in turn provides the x and y coordinates (x t ,y t ) and the target cell settings and the source cell settings, the x and y coordinates (x s ,y s ) is configured to calculate

[0089] Figure 19 is a flowchart illustrating an example process 1900 according to one or more embodiments. Process 1900 may be performed by display system 100 shown in Figures 1, 5A, and 5B. However, it will be understood that process 1900 may be performed using display systems including more and / or fewer components than those shown in Figures 1, 5A, and 5B, that the following steps may be performed in any suitable order, and that process 1900 may be performed in any suitable environment.

[0090] The process 1900 includes performing an image warping operation on input image data corresponding to an input image to generate resultant image data corresponding to a resultant image (e.g., the resultant image shown in FIG. 6) (1910), and driving a display panel (e.g., the display panel 220 shown in FIG. 5A) based on the resultant image data (1920).

[0091] Execution of the image warping process includes determining (1912) a first ratio (e.g., "a:b" in FIG. 14) and a second ratio (e.g., "c:d" in FIG. 14) corresponding to a target pixel (e.g., "Pt" in FIGS. 8 and 9) within a rectangular target cell defined in the result image, and determining (1914) pixel data of the target pixel based on pixel data of one or more pixels selected from the pixels of the input image based on the first ratio and the second ratio. In this procedure, the first ratio and the second ratio are determined using a first line segment (e.g., EtFt in FIG. 9) and a second line segment (e.g., GtHt in FIG. 9) so as to satisfy the following items (1), (2), and (3): (1) A first line segment and a second line segment are defined such that a target pixel is located at the intersection of the first line segment and the second line segment. (2) The first line segment connects a first point (e.g., Et shown in Figure 9) on a first side of the target cell that divides the first side according to a first ratio, and a second point (e.g., Ft shown in Figure 9) on a second side opposite the first side of the target cell that divides the second side according to the first ratio. (3) The second line segment connects a third point (e.g., Gt shown in Figure 9) on the third side of the target cell that divides the third side according to the second ratio, and a fourth point (e.g., Ht shown in Figure 9) on the fourth side opposite the third side of the target cell that divides the fourth side according to the second ratio.

[0092] The use of "a," "an," "the," "at least one," and similar reference words in the context of describing the present invention (particularly in the context of the claims below) should be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The use of a list of one or more items following the term "at least one" (e.g., "at least one of A and B") should be construed to mean one item selected from the listed items (A or B) or any combination of two or more of the listed items (A and B), unless otherwise stated herein or clearly contradicted by context. The terms "comprising," "having," "including," and "including" should be construed as open-ended terms (i.e., meaning "including, but not limited to"), unless otherwise indicated. The recitation of ranges of values ​​herein, unless otherwise stated herein, is intended to serve merely as a shorthand method of referring individually to each separate value falling within the range, and each separate value is incorporated herein as if set forth individually herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or clearly contradicted by context. Any examples provided herein, or the use of exemplary language (e.g., "such as"), are intended merely to better illustrate the invention and do not limit the scope of the invention unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention.

[0093] Exemplary embodiments have been described herein. Variations of those exemplary embodiments will become apparent to those skilled in the art upon reading the foregoing description. The inventors expect that those skilled in the art will adopt such variations as appropriate, and the inventors intend the invention to be practiced otherwise than as specifically described herein. Accordingly, this invention includes all variations and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.

Claims

1. an image warping circuit configured to perform an image warping operation on input image data corresponding to an input image to generate resultant image data corresponding to a resultant image; a drive circuit configured to drive a display panel based on the resultant image data; Equipped with performing the image warping process, determining a first ratio and a second ratio corresponding to a target pixel located at an intersection of a first line segment and a second line segment within a rectangular target cell defined in the resultant image; determining pixel data of the target pixel based on pixel data of one or more pixels selected from pixels of the input image based on the first ratio and the second ratio; Including, the first line segment connects a first point on a first side of the target cell that divides the first side according to the first ratio to a second point on a second side of the target cell opposite the first side that divides the second side according to the first ratio; the second line segment connects a third point on a third side of the target cell that divides the third side according to the second ratio to a fourth point on a fourth side of the target cell opposite the third side that divides the fourth side according to the second ratio; Display driver.

2. determining pixel data of the target pixel includes determining a target pixel corresponding position that is a position of an intersection of a third line segment and a fourth line segment within a rectangular source cell defined in the input image; the third line segment connects a fifth point on a fifth side of the source cell that divides the fifth side according to the first ratio to a sixth point on a sixth side of the source cell opposite the fifth side that divides the sixth side according to the first ratio; the fourth line segment connects a seventh point on a seventh side of the source cell that divides the seventh side according to the second ratio to an eighth point on an eighth side of the source cell opposite the seventh side that divides the eighth side according to the second ratio; selecting the one or more pixels based on the target pixel corresponding position; 2. The display driver according to claim 1.

3. the image warping circuitry is configured to determine the first ratio and the second ratio using a binary search; 2. The display driver according to claim 1.

4. the image warping circuitry: a plurality of repeating circuits coupled in series; a ratio calculation circuit configured to calculate the first ratio and the second ratio based on an output of a final iteration circuit of the plurality of iteration circuits coupled in series; Equipped with each iteration circuit configured to perform a respective iteration of a binary search, each respective iteration including calculation of midpoints located on the first, second, third and fourth edges of the target cell; 4. The display driver according to claim 3.

5. performing the image warping process further comprises: defining a target grid that divides the resulting image into a plurality of cells; determining a location of an intersection of the target grid with a horizontal line on which the target pixel is located; storing intersection information indicating the positions of the intersections in a storage; identifying a target cell from among the plurality of cells based on intersection information; Including, 2. The display driver according to claim 1.

6. the image warping circuit is configured to perform the image warping process such that the determination of the intersection point locations and the storage of the intersection point information are performed in a line period prior to a line period in which pixel data for pixels on the horizontal line of the resulting image data is generated.

6. The display driver according to claim 5.

7. performing the image warping process further comprises: determining a cell from the plurality of cells adjacent to each of the intersections; storing neighboring cell information indicating cells adjacent to each of the intersections in the storage; Including, the target cell is identified based on the neighboring cell information; 6. The display driver according to claim 5.

8. the image warping circuit is configured to perform the image warping process such that the determination of the cells adjacent to each of the intersection points and the storage of the adjacent cell information is performed in a line period prior to a line period in which pixel data for pixels on the horizontal line of the resulting image data is generated.

8. A display driver according to claim 7.

9. the drive circuitry is configured to drive the display panel to display a corrected image corresponding to the resultant image data on a curved display screen.

2. The display driver according to claim 1.

10. an image warping circuit configured to perform an image warping operation on input image data corresponding to an input image to generate resultant image data corresponding to a resultant image; a drive circuit configured to drive a display panel based on the resultant image data; Equipped with performing the image warping process, defining a target grid that divides the resulting image into a plurality of first cells; defining a source grid that divides the input image into a plurality of second cells that respectively correspond to the plurality of first cells; determining the location of an intersection of the target grid with a horizontal line on which a target pixel of the resulting image is located; storing intersection information indicating the positions of the intersections in a storage; identifying a target cell in which the target pixel is located from the plurality of first cells based on the intersection information; determining pixel data of the target pixel based on pixel data of input image data of one or more pixels in a source cell of the plurality of first cells corresponding to the target cell; Contains Display driver.

11. the image warping circuit is configured to perform the image warping process such that the determination of the intersection point locations and the storage of the intersection point information are performed in a line period prior to a line period in which pixel data for pixels on the horizontal line of the resulting image data is generated.

11. A display driver according to claim 10.

12. performing the image warping process further comprises: determining a cell from the plurality of first cells adjacent to each of the intersections; storing neighboring cell information indicating the cells adjacent to each of the intersections in the storage; Including, and identifying the target cell is further based on the neighboring cell information.

11. A display driver according to claim 10.

13. performing an image warping process on input image data corresponding to the input image to generate resultant image data corresponding to the resultant image; driving a display panel based on the resulting image data; Including, performing the image warping process, determining a first ratio and a second ratio corresponding to a target pixel located at an intersection of a first line segment and a second line segment within a rectangular target cell defined in the resultant image; determining pixel data of the target pixel based on pixel data of one or more pixels selected from pixels of the input image based on the first ratio and the second ratio; Including, the first line segment connects a first point on a first side of the target cell that divides the first side according to the first ratio to a second point on a second side of the target cell opposite the first side that divides the second side according to the first ratio; the second line segment connects a third point on a third side of the target cell that divides the third side according to the second ratio to a fourth point on a fourth side of the target cell opposite the third side that divides the fourth side according to the second ratio; method.

14. determining the pixel data for the target pixel; determining a target pixel corresponding position, which is a position of an intersection of a third line segment and a fourth line segment within a source cell of a rectangle defined in the input image; the third line segment connects a fifth point on a fifth side of the source cell that divides the fifth side according to the first ratio to a sixth point on a sixth side of the source cell opposite the fifth side that divides the sixth side according to the first ratio; the fourth line segment connects a seventh point on a seventh side of the source cell that divides the seventh side according to the second ratio to an eighth point on an eighth side of the source cell opposite the seventh side that divides the eighth side according to the second ratio; selecting the one or more pixels based on the target pixel corresponding positions; The method of claim 13.

15. A binary search is used to determine the first ratio and the second ratio. The method of claim 13.

16. performing the image warping process further comprises: defining a target grid that divides the resulting image into a plurality of cells; determining a location of an intersection of the target grid with a horizontal line on which the target pixel is located; storing intersection information indicating the positions of the intersections in a storage; identifying the target cell from among the plurality of cells based on the intersection information; Including, The method of claim 13.

17. determining the locations of the intersection points and storing the intersection point information is performed in a line period preceding a line period in which pixel data for pixels on the horizontal line of the resulting image data is generated; 17. The method of claim 16.

18. performing the image warping process further comprises: determining cells from the plurality of cells adjacent to each of the intersections; storing neighboring cell information indicating the cells adjacent to each of the intersections in the storage; Including, the target cell is identified based on the neighboring cell information; 17. The method of claim 16.

19. determining the cells adjacent to each of the intersection points and storing the adjacent cell information is performed in a line period prior to a line period in which pixel data for pixels on the horizontal line of the resulting image data is generated; 20. The method of claim 18.

20. and driving the display panel to display a corrected image corresponding to the resultant image data on a curved display screen. The method of claim 13.