WO2023150224A1 - Display driver flicker reduction - Google Patents

Display driver flicker reduction Download PDF

Info

Publication number
WO2023150224A1
WO2023150224A1 PCT/US2023/012213 US2023012213W WO2023150224A1 WO 2023150224 A1 WO2023150224 A1 WO 2023150224A1 US 2023012213 W US2023012213 W US 2023012213W WO 2023150224 A1 WO2023150224 A1 WO 2023150224A1
Authority
WO
WIPO (PCT)
Prior art keywords
scan line
sequence
randomized
identifiers
image display
Prior art date
Application number
PCT/US2023/012213
Other languages
French (fr)
Inventor
Ajit Ninan
Original Assignee
Dolby Laboratories Licensing Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby Laboratories Licensing Corporation filed Critical Dolby Laboratories Licensing Corporation
Publication of WO2023150224A1 publication Critical patent/WO2023150224A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0202Addressing of scan or signal lines
    • G09G2310/0213Addressing of scan or signal lines controlling the sequence of the scanning lines with respect to the patterns to be displayed, e.g. to save power
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0247Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes

Definitions

  • the present invention relates generally to image rendering operations. More particularly, an embodiment of the present disclosure relates to display driver flicker reduction.
  • Pixels of an image display can be divided into multiple scan lines arrayed in a first spatial direction such as the vertical direction of the image display. Each scan line comprises a respective subset of pixels arrayed in a second spatial direction such as the horizontal direction of the image display.
  • the image display may be driven by a display driver to render a display image as a raster graphic image by updating or refreshing the multiple scan lines based on pixel values in the image - e.g., from top to bottom, etc. - along the first spatial direction within a frame time interval relating to a frame fresh rate of the image display.
  • intensity changes in light transmitting through the pixels to a viewer’ s eye are spatially and temporally influenced or modulated by the updating or refreshing of the scan lines along the first spatial direction at a scan line refresh rate.
  • the updating of the scan lines and the rendering of successive images - e.g., depicting dynamic motions or image details with relatively large local or global luminances or luminance differences, etc. - are performed along the first spatial direction at specific frequencies that are tied to (e.g., the same as, integer multiples of, etc.) the same frame fresh rates.
  • US 2008/0316158 Al discloses a driving method and apparatus for an LCD panel.
  • a random sequence is generated.
  • a selection is made from a plurality of predetermined gate-on sequences according to a corresponding value in the random sequence. For example, if the random sequence is composed of "0" and "1", the value "0" can be set to correspond to a first gate-on sequence Gl, G2, G3, G4, ..., G(2n-1), G2n, while “1” can be set to correspond to a second gate-on sequence G2, Gl, G4, G3, G2n, G(2n-1). This measure is said to reduce a vertical-line effect, so as to enhance image quality.
  • US 5,436,636 A discloses a display control device for a display unit that comprises a ferroelectric liquid crystal panel or the like.
  • the display control device includes a partial updating means for updating only a portion in which display contents have changed, and an entire updating means for updating a display of the entire picture surface of the display unit.
  • a refreshing operation is randomly performed according to contents of a conversion table.
  • the conversion table may comprise n tables. Each of the n tables stores address data of lines to be accessed on the display picture surface in accordance with respective addresses Q-N generated by an address counter.
  • the first table may store address data of the 900th, 821th, ..., 8th and 999th lines for addresses 0, 1, ..., N-l, N, respectively.
  • the address generation pattern in each table is said to be random and therefore does not have periodicity in driving respective lines.
  • a table from among the n tables stored in the conversion table is selected in accordance with header information set in an image data header register and temperature-flag information set in a temperature-flag register.
  • the header information is set in accordance with a kind of display image, such as characters, a line drawing, a natural image, or the like, and picture quality of the display picture surface.
  • the value of the header information that is, the table to be selected from the conversion table, may be changed by a user by means of a knob while watching a display picture surface.
  • FIG. 1 illustrates an example image display (or display panel);
  • FIG. 2A and FIG. 2B illustrate example image processing/rendering devices
  • FIG. 3 illustrates example random shuffling of a sequence of scan lines into a sequence of randomized scan lines
  • FIG. 4 illustrates an example process flow
  • FIG. 5 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented.
  • Example embodiments which relate to display driver flicker reduction, are described herein.
  • numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.
  • an image processing system e.g., a display device, a television, a mobile or non-mobile computing device operating with an image display, etc.
  • a display driver therein may render an image on an image display by scanning or driving pixels of scan lines of the image display in a time sequential order along a specific spatial direction of the image display.
  • the display driver may start scanning or driving the topmost scan line among all the scan lines of the image display from top to bottom until the bottommost scan line among all the scan lines of the image display.
  • the display driver may start scanning or driving the bottommost scan line among all the scan lines of the image display from bottom to top until the topmost scan line among all the scan lines of the image display.
  • the display driver may start scanning or driving the leftmost scan line among all the scan lines of the image display from left to right until the rightmost scan line among all the scan lines of the image display.
  • the display driver may start scanning or driving the rightmost scan line among all the scan lines of the image display from right to left until the leftmost scan line among all the scan lines of the image display.
  • the display driver may start scanning or driving a (first, etc.) scan line among all the scan lines of the image display following a cycle (or a cyclic order) until the last scan line of the cycle among all the scan lines of the image display.
  • the first scan line to be driven by the display driver may be an intermediate scan line
  • the next scan line may be a scan line below the first scan line, ... until the bottommost scan line.
  • the topmost scan line which is deemed as the next scan line to the bottommost scan line in the cycle, is driven by the display driver, followed by the line immediately below the topmost scan line, ...
  • an image processing system e.g., a display device, a television, a mobile or non-mobile computing device or a display driver therein operating with an image display may render an image on the image display by scanning or driving pixels of scan lines of the image display in a (randomized) time sequential order that does not follow, or is not along, any specific spatial direction - e.g., from top to bottom, from bottom to top, from left to right, from right to left, from the first scan line of a cycle to the last scan line of the cycle, etc. - of the image display.
  • the display driver starts scanning or driving the very first scan line that is selected randomly from among all the scan lines of the image display.
  • a subsequent scan line to be scanned or driven by the display driver - subsequent to scanning or driving the first scan line - is selected randomly from remaining scan lines of the image display, where the remaining scan lines include all the scan lines of the image display excluding any scan line(s) that have been scanned or driven for rendering the same image.
  • Example embodiments described herein relate to processing and/or rendering images.
  • An image that includes pixel values for pixels arranged in a two-dimensional array on an image display is received.
  • the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display.
  • the scan lines are indexed with a sequence of scan line identifiers.
  • a sequence of randomized scan line identifiers different from the sequence of scan line identifiers is determined.
  • Each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers.
  • Each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers.
  • the pixel values of the image are used to drive the scan lines of the image display according to a (scan line) time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display.
  • the time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order different from specified by the sequence of scan line identifiers.
  • the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers.
  • the sequence of randomized scan line identifiers is selected, either randomly at runtime or according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers.
  • a selection from among a plurality of pre-configured sequences of randomized scan line identifiers according to a predetermined selection sequence can include following the predetermined selection sequence sequentially, in a back-and-forth or roundrobin fashion, so that a new selection from among the plurality of pre-configured sequences of randomized scan line identifiers is made for each image frame or in each frame time interval.
  • mechanisms as described herein form a part of a media processing system, including but not limited to any of: cloud-based server, mobile device, virtual reality system, augmented reality system, head up display device, helmet mounted display device, CAVE-type system, wall-sized display, video game device, display device, media player, media server, media production system, camera systems, home-based systems, communication devices, video processing system, video codec system, studio system, streaming server, cloud-based content service system, a handheld device, game machine, television, cinema display, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer server, computer kiosk, or various other kinds of terminals and media processing units.
  • FIG. 1 illustrates an example image display (or display panel) 102 that comprises a plurality of pixels (one of which, for example, is a pixel 104).
  • the pixels are depicted as being rectangles arranged in an array pattern.
  • the pixels may be of different shapes other than rectangles.
  • the pixels may be arranged in different patterns (e.g., concentric pattern, a pattern randomized to a certain extent, spherical pattern, etc.) other than the array pattern.
  • Each pixel (e.g., 104, etc.) as described herein may comprise a set of three or more subpixels, which corresponds to a set of three or more different component or primary colors (or color primaries such as RGB or CMY in addition to zero or more other colors such as white) of a color space.
  • component or primary colors or color primaries such as RGB or CMY in addition to zero or more other colors such as white
  • the image display (102) is of a transmissive display type.
  • a pixel or a subpixel as described herein can be implemented as a light regulator, which can be set to a specific transmittance (or transparency level) among a plurality of different settable transmittances (or transparency levels) to regulate amounts of light transmitting through the light regulator toward a viewer of the image display (102).
  • the specific transmittance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102).
  • the digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102).
  • the respective light regulation driver used to drive the transmittance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel.
  • transmittance may refer to the amount of light flux exiting out of a light regulator, normalized by the amount of light flux entering into the light regulator.
  • the image display (102) is of a reflective display type.
  • a pixel or a subpixel as described herein can be implemented as a light regulator, which can be set to a specific reflectance among a plurality of different settable reflectances to regulate amounts of light reflecting from the light regulator toward a viewer of the image display (102).
  • the specific reflectance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102).
  • the digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102).
  • the respective light regulation driver used to drive the reflectance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel.
  • “reflectance” may refer to the amount of light flux reflected by a light reflector, normalized by the amount of light flux incident onto the light reflector.
  • the image display (102) is of an emissive display type.
  • a pixel or a subpixel as described herein can be implemented as a light emitter (e.g., a light emitting diode or LED, a micro LED, organic LED or OLED, etc.), which can be set to a specific light emittance (or emission level) among a plurality of different settable light emission levels to regulate amounts of light emitting from the light emitter toward a viewer of the image display (102).
  • a light emitter e.g., a light emitting diode or LED, a micro LED, organic LED or OLED, etc.
  • the specific light emittance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102).
  • the digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102).
  • the respective light regulation driver used to drive the emittance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel.
  • emittance may refer to the amount of light flux emitted from a light emitter.
  • the image display (102) may be one of the foregoing types of image displays, other types (e.g., image display types that include light regenerators such as quantum dots, etc.) of image displays, or any combinations of the foregoing types of image displays and/or other types of image displays.
  • pixels in the image display (102) are spatially arranged in a two-dimensional array.
  • the pixels of the image display (102) are divided into a plurality of scan lines (e.g., 114-1, 114-2, 114-3, etc.) arrayed in a first spatial direction such as the vertical direction (108) of the image display (102).
  • Each (e.g., 114-1, etc.) of the scan lines comprises a respective plurality of pixels spatially arranged or arrayed in a second spatial direction such as the horizontal direction (106) of the image display (102).
  • FIG. 2A illustrates an example image processing/rendering device 200 comprising an image receiver 202, an image buffer 204, a display timing controller 206, a scan line driver 210, light regulator drivers 214, etc.
  • the display timing controller (206) may include or operate with a scan line randomizer 208.
  • the image processing/rendering device (200) may be implemented in software, hardware, a combination of software and hardware, etc., with one or more computing processors. Some or all components of the image processing/rendering device (200) can be incorporated or partitioned into one or more of media devices, downstream media devices, display devices, media stream servers, mobile or non-mobile computing devices, etc.
  • the image receiver (202) may comprise software, hardware, a combination of software and hardware, etc., configured to receive an input video signal 220; decode or decompress the input video signal (220) into a sequence of (e.g., consecutive, sequential, etc.) decoded images; process the sequence of decoded images into a sequence of display images or images to be rendered on the image display (100); store some or all of the sequence of display images in the image buffer (204); and so on.
  • the input video signal (220) may be, but is not limited to only, any of: video signals, multi-layer video signals, coded bitstreams, video files, multimedia files, etc.
  • the sequence of display images may be rendered on the image display (100) in a plurality of (e.g., consecutive, sequential, etc.) frame time intervals.
  • Each display image in the sequence of display images may be rendered on the image display (100) during a respective frame time interval in the plurality of frame time intervals.
  • Each frame time interval in the plurality of frame time intervals may be determined based on a specific frame refresh rate at which the image display (100) renders display images.
  • Each display image in the sequence of display images may be determined or derived from a respective decoded image in the sequence of decoded images and/or may comprise a plurality of display pixel values (or digital drive values) for a plurality of pixels included in the image display (100).
  • Each display pixel value (or digital drive value) in the plurality of display pixel values (or digital drive values) may be specified for a respective pixel in the plurality of pixels and/or may be a composite value representing a set of three or more component pixel values for three or more components/channels of a display color space in which each display image in the sequence of display images is represented.
  • the input video signal (220) or image data encoded therein may be derived from any of a variety of media content sources such as image acquisition devices, cameras, media content servers, tangible media, studio systems, content databases, etc.
  • Example image data encoded in the input video signal (220) may include, but are not necessarily limited to only, any of: video clips, movies, TV program related image data, raw images, digital photos, video images, 3D images, non-3D images, computer-generated graphics, scene-referred images, device-referred images, images with various dynamic ranges, etc.
  • the input image data may be coded in any of a variety of color spaces such as RGB color spaces, YCbCr color spaces, perceptually quantized (PQ) color spaces, hybrid log gamma (HLG) color spaces, high dynamic range (HDR) color spaces, standard dynamic range (SDR) color spaces, etc.
  • each pixel value in an image represented in the input video signal (220) comprises component pixel (or subpixel) values for some or all channels defined in a color space such as red, green and blue color channels in a RGB color space, luma and chroma channels in a YCbCr color space, etc.
  • the input video signal (220) may be received by the image processing/rendering device (200) or the image receiver (202) therein through a network or data connection.
  • a network or data connection may refer to any of: network connections, digital data interfaces, local data connections, data interfaces with tangible storage media, data connections involving intermediate devices (e.g., transcoders, gateways, routers, switches, etc.), etc.
  • the display timing controller (206) comprises software, hardware, a combination of software and hardware, etc., configured to generate display timing control signals for starting, controlling and ending scan line selection, for fetching display pixel values (or digital drive values) for a current scan line, for generating or routing respective light regulator signals for pixels of the current scan line; route respective display timing control signals to other components of the image processing/rendering device (200) such as the scan line driver (210) and the light regulator drivers (214); etc.
  • Some or all of the display timing control signals may be generated by the display timing controller (206) based in part or in whole on timing or synchronization signals extracted from the input video signal (220).
  • the input video signal (220) may carry frame timing or synchronization signals and/or horizontal timing or synchronization signals, etc. These timing or synchronization signals may be used by the display timing controller (206) to generate some or all of the display timing control signals.
  • some or all of the display timing control signals may be (e.g., autonomously, etc.) generated by the display timing controller (206) without relying on timing or synchronization signals extracted from the input video signal (220).
  • the input video signal (220) carries or includes (e.g., explicit, etc.) timing or synchronization signals for driving scan line selections of a display image according to a sequence of scan lines along a specific spatial direction of the image display (100)
  • these timing or synchronization signals may be ignored and/or replaced by the display timing controller (206) with (modified or altered) timing or synchronization signals for driving scan line selections of a display image according to a sequence of randomized scan lines that does not follow, or is not along, any specific spatial direction of the image display (100).
  • the display timing controller (206) can use or generate (new) timing or synchronization signals for driving scan line selections of a display image according to a sequence of randomized scan lines that does not follow, or is not along, any specific spatial direction of the image display (100).
  • a sequence of randomized scan lines as described herein may be dynamically determined, generated and/or selected by the display timing controller (206) or the scan line randomizer (208) therein at runtime. Additionally, optionally or alternatively, a sequence of randomized scan lines as described herein may be selected from a plurality of preconfigured or pre-computed sequences of randomized scan lines by the display timing controller (206) or the scan line randomizer (208) therein at runtime.
  • the scan line driver (210) comprises software, hardware, a combination of software and hardware, etc., configured to generate scan line selection signals 216 for a current (or each) display image in the sequence of display images based in part or in whole on display timing control signals routed or received from the display timing controller (206); route the scan line selection signals (216) to the image display (100) to cause the image display (100) to select, update, activate or drive all the scan lines of the image display (100) in a temporal sequential order in according to (a specification of) the sequence of randomized scan lines; etc.
  • the sequence of randomized scan lines may be selected, updated, activated or driven in a sequence of (e.g., consecutive, sequential, etc.) scan line time intervals for rendering a display image.
  • the sequence of scan line time intervals is within a frame time interval used or allocated for rendering the display image.
  • Each scan line in the sequence of randomized scan lines may be selected, updated, activated or driven during a respective scan line time interval in the sequence of scan line time intervals.
  • a current (or each) scan line may be selected from the scan lines of the image display (100) according to a time sequential order set forth by the sequence of randomized scan lines.
  • the light regulator drivers (214) comprise software, hardware, a combination of software and hardware, etc., configured to fetch or load (e.g., a row of, etc.) display pixel or subpixel values (or digital drive values) in the current display image for pixels or subpixels of the current scan line based in part or in whole on display timing control signals routed or received from the display timing controller (206).
  • Each light regulator driver in the light regulator drivers (214) may fetch a respective display pixel or subpixel value (or digital drive value) in the display pixel or subpixel value (or digital drive values) for a respective pixel or subpixel of the current scan line.
  • the display pixel or subpixel values (digital drive values) for the current scan line may be loaded or routed to the pixels or subpixels of the current scan line of the image display (100) by way of light regulator signals (218) while the current scan line is being selected, updated, activated or driven by a current or respective scan line selection signal in the scan line selection signals (216).
  • Driving ICs or transistors in the image display (100) may convert these digital signals into analog light regulator driving signals or waveforms or amplitudes used to control specific luminances and/or chrominances of the pixels or subpixels of the current scan line of the image display (100).
  • the display pixel or subpixel values (digital drive values) for the current scan line may be first converted analog light regulator driving signals or waveforms or amplitudes used to control specific luminances and/or chrominances of the pixels or subpixels of the current scan line of the image display (100).
  • These analog light regulator driving signals or waveforms or amplitudes may then be loaded or routed to the pixels or subpixels of the current scan line of the image display (100) by way of light regulator signals (218) while the current scan line is being selected, updated, activated or driven by a current or respective scan line selection signal in the scan line selection signals (216). 4. RANDOM SCAN LINE SHUFFLING
  • FIG. 3 illustrates example random shuffling of a sequence of scan lines into a sequence of randomized scan lines.
  • this random shuffling operation may be performed by a display driver as described herein at run time.
  • this random shuffling operation can be performed by a device separate from the display driver to generate a specification of the sequence of randomized scan lines beforehand.
  • the pre-generated specification of the sequence of randomized scan lines may be configured or preconfigured in memory or cache accessible by the display driver, for example as one in a plurality of specifications of sequences of randomized scan lines configured or preconfigured in the memory or cache for the display driver to select or access.
  • an image display (e.g., 100 of FIG. 1, etc.) operating with an image processing/rendering device (e.g., 200 of FIG. 2A, etc.) that includes the display driver may include a plurality of scan lines 114 spatially arranged or arrayed along a first spatial direction (e.g., 108, vertical, horizontal, etc.), which may be referred to as a canonical direction.
  • a first spatial direction e.g., 108, vertical, horizontal, etc.
  • Each scan line e.g., 114-1, 114-2, 114-3, etc. of FIG. 1 in the plurality of scan lines (114) of the image display (100) includes a respective subsets of (a set of) pixels on the image display (100).
  • the total number of scan lines in the plurality of scan lines (114) of the image display (100) may be denoted or represented as an integer N, no less than a positive integer such as one of 2, 3,..., 256,..., 1024,..., 2048,..., 4096,..., 8192, etc.
  • the plurality of scan lines (114) may be assigned with a plurality of scan line identifiers 302 such as scan line ID 1, scan line ID 2, scan line ID 3, ..., scan line ID (i-2), scan line ID (i-1), scan line ID i, scan line ID (i+1), scan line ID (i+2), ..., scan line ID (N-2), scan line ID (N-l), scan line ID N.
  • the (very) first scan line along the first spatial direction (108) in the plurality of scan lines (114) may be assigned with scan line ID 1, immediately followed by the second scan line along the same spatial direction assigned with scan line ID 2, and so on - until the (very) last scan line, along the first spatial direction (108) in the plurality of scan lines (114), assigned with scan line ID N.
  • the plurality of scan line identifiers (302) collectively represents or specifies, for the plurality of scan lines (114), a sequence of scan lines along the first spatial direction (108).
  • a random shuffling operation, algorithm, method, subprocess, etc. may be applied to the plurality of scan line identifiers (302) to generate a plurality of random shuffled places or draws 304 for the plurality of scan line identifiers (302).
  • the plurality of random shuffled places or draws (304) may be respectively denoted or specified as RS(scan line ID 1), RS(scan line ID 2), RS(scan line ID 3), RS(scan line ID (i-2)), RS(scan line ID (i-1)), RS(scan line ID i), RS(scan line ID (i+1)), RS(scan line ID (i+2)), RS(scan line ID (N- 2)), RS(scan line ID (N-l)), RS(scan line ID N), where the random shuffling operation, algorithm, method, subprocess, etc., represents a (random shuffling) function denoted as RS().
  • Example random shuffling operations may include, but are not necessarily limited to any of those relating to one or more of: the Fisher- Yates shuffle method, the Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, etc.
  • the very first random shuffled place or draw among the plurality of random shuffled places or draws (304) may be randomly selected from among all (or N) scan line identifiers in the plurality of scan line identifiers (302).
  • the second random shuffled place or draw among the plurality of random shuffled places or draws (304) may be randomly selected from among all (or N) scan line identifiers, except for any previously selected or drawn scan line identifier(s), in the plurality of scan line identifiers (302).
  • This random shuffling operation can continue until the very last random shuffled place or draw as the last remaining scan line identifier in the plurality of scan line identifiers (302).
  • the plurality of random shuffled places or draws thus generated from the random shuffling collectively represent a specification of a sequence of randomized scan lines that are not spatially arranged or arrayed along any spatial direction of the image display (100).
  • the second step of the process flow described herein can be repeated to generate multiple specifications of multiple different sequences of randomized scan lines.
  • Each specification in the multiple specifications specifies a respective sequence of randomized scan lines in the multiple different sequences of randomized scan lines.
  • These 8192 scan lines may be assigned 8192 distinct scan line identifiers (e.g., 302 of FIG. 3, etc.) from 1 to 8192 ascending or ordered along the vertical direction.
  • these 8192 scan line identifiers collectively specify a sequence of scan lines along the vertical direction of the image display (100).
  • 8192 random shuffled places or draws (e.g., 304 of FIG.
  • the 8192 scan line identifiers representing the 8192 scan lines collectively specify a sequence of randomized scan lines that do not follow, or is not along, any spatial direction of the image display such as the vertical direction, the horizontal direction, the diagonal direction, a cyclic direction, etc.
  • the very first random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 839-th scan line (or a scan line with a scan line identifier 839).
  • the second random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 24-th scan line (or a scan line with a scan line identifier 24).
  • the third random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 1115-th scan line (or a scan line with a scan line identifier 1115).
  • the fourth random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 1001-th scan line (or a scan line with a scan line identifier 1001).
  • the fifth random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 452-th scan line (or a scan line with a scan line identifier 452). And so on.
  • a display driver as described herein selects, updates, activates or drives the scan lines in a temporal sequential order such as specified by the random shuffled places or draws (304).
  • the display driver selects, updates, activates or drives the 839-th scan line as the first scan line among the scan lines since the very first random shuffled place or draw goes to the scan line identifier 839; immediately followed by the 24-th scan line as the second scan line among the scan lines since the second random shuffled place or draw goes to the scan line identifier 24; immediately followed by the 1115-th scan line as the third scan line among the scan lines since the third random shuffled place or draw goes to the scan line identifier 1115; immediately followed by the 1001-th scan line as the fourth scan line among the scan lines since the fourth random shuffled place or draw goes to the scan line identifier 1001; immediately followed by the 452-th scan line as the fifth scan line among the scan lines since the fifth random
  • FIG. 2B illustrates another example image processing/rendering device 200-1 comprising the image receiver (202), the image buffer (204), a display timing controller 206- 1, the scan line driver (210), the light regulator drivers (214), etc.
  • the image processing/rendering device (200-1) may be implemented in software, hardware, a combination of software and hardware, etc., with one or more computing processors. Some or all components of the image processing/rendering device (200-1) can be incorporated or partitioned into one or more of media devices, downstream media devices, display devices, media stream servers, mobile or non-mobile computing devices, etc.
  • the display timing controller (206-1) in the image processing/rendering device (200-1) may include or operate with a randomized scan line sequence selector 222 and a randomized scan line sequence lookup table 224, the latter of which may be used to store a single (specification of) sequence of randomized scan lines or multiple (specifications of) sequences of randomized scan lines.
  • a plurality of (specifications of) sequences of randomized scan lines may be generated or pre-generated for all the scan lines (114) of the image display (100). These (specifications of) sequences of randomized scan lines may be configured or preconfigured in the randomized scan line sequence lookup table (224) before rendering the sequence of display images.
  • the display timing controller (206-1) can operate with the randomized scan line sequence selector (222) to select (e.g., sequentially, round-robin, randomly, etc.) a current (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224).
  • the randomized scan line sequence selector (222) may generate a random number or pseudo-random number for each display image, in the sequence of display images, to be rendered on the image display (100).
  • the sequence of display images may be indexed by a sequence of (e.g., consecutive, sequential, etc.) frame indexes.
  • the sequence of frame indexes may logically represent a sequence of time points or instances spanning a time duration (e.g., of a media program, etc.).
  • Each display image in the sequence of display images may be identified or assigned by a respective frame index in the sequence of frame indexes.
  • the randomized scan line sequence selector (222) may implement a random number or pseudo-random number generator using frame indexes as seed values.
  • the randomized scan line sequence selector (222) may identify or determine its assigned frame index in the sequence of frame indexes.
  • the assigned frame index for the current display image may be used as a seed value by the randomized scan line sequence selector (222) to generate a random number or a pseudo-random number.
  • the generated random or pseudo-random number - modulo the total number of (specifications of) sequences of randomized scan lines in the random scan line sequence lookup table (224) if applicable - may be used as a lookup key by the randomized scan line sequence selector (222) to select a specific (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224). Thereafter, the display timing controller (206-1) can select, update, activate or drive the scan lines of the image display (100) for rendering the current display image in a temporal sequential order as specified by the specific (specification of) sequence of randomized scan lines.
  • the assigned frame index for the current display image modulo the total number of (specifications of) sequences of randomized scan lines in the random scan line sequence lookup table (224) may be used as a lookup key by the randomized scan line sequence selector (222) to select a specific (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224).
  • the assigned frame index for the current display image may be used as a lookup key for a table storing a predetermined or predefined selection sequence, wherein each entry in the table indicates one of the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224).
  • the predetermined selection sequence stored in the table may start with the 1st, 3rd, 5th, ... sequence of randomized scan lines, and then proceed to the 2nd, 4th, 6th, ... sequence of randomized scan lines.
  • all scan lines of an image display or display panel may be selected, updated, activated or driven in a randomized scan line order for rendering a display image on the image display or display panel. It should be noted that, in various embodiments, some or all scan lines of an image display or display panel may be selected, updated, activated or driven in one or more randomized scan line orders. In an example, a proper subset of scan lines (e.g., a salient portion, a central portion, etc.) in all the scan lines of an image display may be selected, updated, activated or driven in a random order for rendering a display image on the image display.
  • a proper subset of scan lines e.g., a salient portion, a central portion, etc.
  • Remaining scan lines of the image display other than the subset of scan lines display may be selected, updated, activated or driven in a non-randomized scan line order such as from top to bottom or from one side to another side.
  • an image display or display panel may be partitioned to two or more spatial sections with their respective scan lines. For each spatial section of the spatial sections, the same or a different randomized scan line sequence may be used to select, update, activate or drive scan lines in the spatial section.
  • individual scan lines of an image display or display panel may be selected, updated, activated or driven in a randomized scan line order for rendering a display image on the image display or display panel.
  • some or all scan lines of an image display or display panel may be grouped into a plurality of scan line groups.
  • an individual scan line group may be randomly selected (or updated, activated or driven) from among the remaining non-updates scan line groups (all the scan line groups minus previously updates scan line groups) in a frame time interval.
  • a scan line group as described herein may include two or more scan lines.
  • Example scan lines in a scan line group may include (physically) adjacent scan lines or (physically) non-adjacent scan lines, in the image display.
  • an image processing/rendering device that includes a display driver herein may be separate from an image display or display panel. It should be noted that, in other embodiments, a display driver and/or some or all of an image processing/rendering device may be incorporated as a part of an image display or display panel.
  • FIG. 4 illustrates an example process flow according to an example embodiment of the present invention.
  • one or more computing devices or components may perform this process flow.
  • an image processing or rendering system e.g., 200 of FIG. 2A, 200-1 of FIG. 2B, etc. receives an image that includes pixel values for pixels arranged in a two-dimensional array on an image display.
  • the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display.
  • the scan lines are indexed with a sequence of scan line identifiers.
  • the system determines a sequence of randomized scan line identifiers different from the sequence of scan line identifiers.
  • Each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers.
  • Each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers.
  • the system uses the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display.
  • the time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order different from specified by the sequence of scan line identifiers.
  • the scan lines of the image display are to be scanned time sequentially along a specific spatial direction of the image display.
  • the scan lines of the image display are scanned time sequentially not along any specific spatial direction of the image display.
  • the first spatial direction of the image display is one of: a horizontal direction or a vertical direction, of the image display.
  • each scan line in the scan lines is uniquely identified by a respective scan line identifier in the sequence of scan line identifiers.
  • each scan line in the scan lines includes a subset of the pixels spatially arranged along a second spatial direction of the image display perpendicular to the first spatial direction.
  • the sequence of randomized scan line identifiers is generated from the sequence of scan line identifiers using one or more of: a Fisher- Yates shuffle method, a Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, a random shuffling method, etc.
  • the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers.
  • the sequence of randomized scan line identifiers is selected from among a plurality of pre-configured sequences of randomized scan line identifiers. [0081] In an embodiment, the sequence of randomized scan line identifiers is selected randomly at runtime from among a plurality of pre-configured sequences of randomized scan line identifiers. [0082] In an embodiment, the sequence of randomized scan line identifiers is selected, according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers.
  • the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of pre-configured sequences of randomized scan line identifiers in the lookup table is a random number generated at runtime.
  • the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of pre-configured sequences of randomized scan line identifiers in the lookup table.
  • the image is received in a sequence of images; the system is further configured to perform: receiving a second image that includes second pixel values for the pixels arranged in the two-dimensional array on the image display; determining a second sequence of randomized scan line identifiers different from each of the sequence of scan line identifiers and the sequence of randomized scan line identifiers, each scan line identifier in the second sequence of randomized scan line identifiers equaling a single scan line identifier in the sequence of scan line identifiers, each scan line identifier in the sequence of scan line identifiers equaling a single scan line identifier in the second sequence of randomized scan line identifiers; using the second pixel values of the image to drive the scan lines of the image display according to a second time sequential order specified by the second sequence of randomized scan line identifiers for rendering the image on the image display, the second time sequential order being different from each of the canonical time sequential order specified by the sequence of scan line identifiers and the time
  • each scan line in the scan lines of the image display is indexed with a respective scan line identifier in the sequence of scan line identifiers.
  • an apparatus, a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described.
  • a non-transitory computer readable storage medium stores software instructions, which when executed by one or more processors cause performance of a method as described herein.
  • the techniques described herein are implemented by one or more special-purpose computing devices.
  • the special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
  • ASICs application-specific integrated circuits
  • FPGAs field programmable gate arrays
  • Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques.
  • the special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
  • FIG. 5 is a block diagram that illustrates a computer system 500 upon which an example embodiment of the invention may be implemented.
  • Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a hardware processor 504 coupled with bus 502 for processing information.
  • Hardware processor 504 may be, for example, a general purpose microprocessor.
  • Computer system 500 also includes a main memory 506, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504.
  • Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504.
  • Such instructions when stored in non-transitory storage media accessible to processor 504, render computer system 500 into a special-purpose machine that is customized to perform the operations specified in the instructions.
  • Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504.
  • ROM read only memory
  • a storage device 510 such as a magnetic disk or optical disk, solid state RAM, is provided and coupled to bus 502 for storing information and instructions.
  • Computer system 500 may be coupled via bus 502 to a display 512, such as a liquid crystal display, for displaying information to a computer user.
  • An input device 514 is coupled to bus 502 for communicating information and command selections to processor 504.
  • cursor control 516 is Another type of user input device, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512.
  • Computer system 500 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510.
  • Volatile media includes dynamic memory, such as main memory 506.
  • storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
  • Storage media is distinct from but may be used in conjunction with transmission media.
  • Transmission media participates in transferring information between storage media.
  • transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502.
  • Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution.
  • the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 502.
  • Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions.
  • the instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.
  • Computer system 500 also includes a communication interface 518 coupled to bus 502.
  • Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522.
  • communication interface 518 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 520 typically provides data communication through one or more networks to other data devices.
  • network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526.
  • ISP 526 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 528.
  • Internet 528 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 520 and through communication interface 518, which carry the digital data to and from computer system 500, are example forms of transmission media.
  • Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518.
  • a server 530 might transmit a requested code for an application program through Internet 528, ISP 526, local network 522 and communication interface 518.
  • the received code may be executed by processor 504 as it is received, and/or stored in storage device 510, or other non-volatile storage for later execution.
  • EEE 1 A method for rendering images, comprising: receiving an image that includes pixel values for pixels arranged in a two-dimensional array on an image display, wherein the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display, wherein the scan lines are indexed with a sequence of scan line identifiers; determining a sequence of randomized scan line identifiers different from the sequence of scan line identifiers, wherein each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers; using the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display, wherein the time sequential order specified by the sequence of randomized scan line identifiers for
  • EEE 2 The method of EEE 1, wherein, according to the canonical time sequential order, the scan lines of the image display are to be scanned time sequentially along a specific spatial direction of the image display.
  • EEE 3 The method of EEE 1 or EEE 2, wherein, according to the time sequential order, the scan lines of the image display are scanned time sequentially not along any specific spatial direction of the image display.
  • EEE 4 The method of any of EEEs 1-3, wherein the first spatial direction of the image display is one of: a horizontal direction or a vertical direction, of the image display.
  • EEE 5 The method of any of EEEs 1-4, wherein each scan line in the scan lines is uniquely identified by a respective scan line identifier in the sequence of scan line identifiers.
  • EEE 6 The method of any of EEEs 1-5, wherein each scan line in the scan lines includes a subset of the pixels spatially arranged along a second spatial direction of the image display perpendicular to the first spatial direction.
  • EEE 7 The method of any of EEEs 1-6, wherein the sequence of randomized scan line identifiers is generated from the sequence of scan line identifiers using one or more of: a Fisher- Yates shuffle method, a Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, or a random shuffling method.
  • EEE 8 The method of any of EEEs 1-7, wherein the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers.
  • EEE 9 The method of any of EEEs 1-7, wherein the sequence of randomized scan line identifiers is selected from among a plurality of pre-configured sequences of randomized scan line identifiers.
  • EEE 10 The method of EEE 9, wherein the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; wherein a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of preconfigured sequences of randomized scan line identifiers in the lookup table is a random number generated at runtime.
  • EEE 11 The method of any of EEEs 1-10, wherein the image is received in a sequence of images; the method further comprising: receiving a second image that includes second pixel values for the pixels arranged in the two-dimensional array on the image display; determining a second sequence of randomized scan line identifiers different from each of the sequence of scan line identifiers and the sequence of randomized scan line identifiers, wherein each scan line identifier in the second sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the second sequence of randomized scan line identifiers; using the second pixel values of the image to drive the scan lines of the image display according to a second time sequential order specified by the second sequence of randomized scan line identifiers for rendering the image on the image display, wherein the second time sequential order is different from each of the canonical
  • EEE 12 The method of any of EEEs 1-11, wherein each scan line in the scan lines of the image display is indexed with a respective scan line identifier in the sequence of scan line identifiers.
  • EEE 13 A display driver circuit performing any of the methods as recited in EEEs 1-12.
  • EEE 14 An apparatus performing any of the methods as recited in EEEs 1-12.
  • EEE 15 A non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of the method recited in any of EEEs 1-12.

Abstract

An image is received. Pixels of an image display are divided into scan lines arranged along a first spatial direction of the image display. Scan lines of the image display are indexed with identifiers. A sequence of randomized identifiers is determined. Each identifier in the sequence of randomized identifiers represents a respective identifier for one of the scan lines. Pixel values of the image are used to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized identifiers for rendering the image on the image display. The time sequential order specified by the sequence of randomized identifiers is different from a time sequential order along a spatial direction of the image display. The sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers or is selected, either randomly at runtime or according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers.

Description

DISPLAY DRIVER FLICKER REDUCTION
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority of the following priority applications: US provisional application 63/305,873, filed 02 February 2022, and European patent application 22 156 274.7, filed 11 February 2022.
TECHNOLOGY
[0002] The present invention relates generally to image rendering operations. More particularly, an embodiment of the present disclosure relates to display driver flicker reduction.
BACKGROUND
[0003] Pixels of an image display can be divided into multiple scan lines arrayed in a first spatial direction such as the vertical direction of the image display. Each scan line comprises a respective subset of pixels arrayed in a second spatial direction such as the horizontal direction of the image display. The image display may be driven by a display driver to render a display image as a raster graphic image by updating or refreshing the multiple scan lines based on pixel values in the image - e.g., from top to bottom, etc. - along the first spatial direction within a frame time interval relating to a frame fresh rate of the image display. [0004] Hence, intensity changes in light transmitting through the pixels to a viewer’ s eye are spatially and temporally influenced or modulated by the updating or refreshing of the scan lines along the first spatial direction at a scan line refresh rate. The updating of the scan lines and the rendering of successive images - e.g., depicting dynamic motions or image details with relatively large local or global luminances or luminance differences, etc. - are performed along the first spatial direction at specific frequencies that are tied to (e.g., the same as, integer multiples of, etc.) the same frame fresh rates. As a result, a visually recognizable pattern of judder in the form of a scrolling type of visual artifact similar to flickers associated with the rolling shutter type of visual artifact can be conveyed to the eye, especially when the image display is a high dynamic range (HDR) display.
[0005] US 2008/0316158 Al discloses a driving method and apparatus for an LCD panel. A random sequence is generated. For each image frame, a selection is made from a plurality of predetermined gate-on sequences according to a corresponding value in the random sequence. For example, if the random sequence is composed of "0" and "1", the value "0" can be set to correspond to a first gate-on sequence Gl, G2, G3, G4, ..., G(2n-1), G2n, while "1" can be set to correspond to a second gate-on sequence G2, Gl, G4, G3, G2n, G(2n-1). This measure is said to reduce a vertical-line effect, so as to enhance image quality.
[0006] US 5,436,636 A discloses a display control device for a display unit that comprises a ferroelectric liquid crystal panel or the like. The display control device includes a partial updating means for updating only a portion in which display contents have changed, and an entire updating means for updating a display of the entire picture surface of the display unit. According to certain examples, a refreshing operation is randomly performed according to contents of a conversion table. The conversion table may comprise n tables. Each of the n tables stores address data of lines to be accessed on the display picture surface in accordance with respective addresses Q-N generated by an address counter. For example, the first table may store address data of the 900th, 821th, ..., 8th and 999th lines for addresses 0, 1, ..., N-l, N, respectively. The address generation pattern in each table is said to be random and therefore does not have periodicity in driving respective lines. A table from among the n tables stored in the conversion table is selected in accordance with header information set in an image data header register and temperature-flag information set in a temperature-flag register. The header information is set in accordance with a kind of display image, such as characters, a line drawing, a natural image, or the like, and picture quality of the display picture surface. The value of the header information, that is, the table to be selected from the conversion table, may be changed by a user by means of a knob while watching a display picture surface.
[0007] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Similarly, issues identified with respect to one or more approaches should not assume to have been recognized in any prior art on the basis of this section, unless otherwise indicated.
BRIEF DESCRIPTION OF DRAWINGS
[0008] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which: [0009] FIG. 1 illustrates an example image display (or display panel);
[0010] FIG. 2A and FIG. 2B illustrate example image processing/rendering devices;
[0011] FIG. 3 illustrates example random shuffling of a sequence of scan lines into a sequence of randomized scan lines;
[0012] FIG. 4 illustrates an example process flow; and [0013] FIG. 5 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0014] Example embodiments, which relate to display driver flicker reduction, are described herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.
[0015] Example embodiments are described herein according to the following outline:
1. GENERAL OVERVIEW
2. IMAGE DISPLAY AND SCANLINES
3. IMAGE PROCESSING/RENDERING DEVICE
4. RANDOM SCAN LINE SHUFFLING
5. PRE-CONFIGURING RANDOMIZED SCAN LINE
SEQUENCES
6. EXAMPLE PROCESS FLOWS
7. IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW
8. EQUIVALENTS , EXTENSIONS , ALTERNATIVES AND MISCELLANEOUS
1. GENERAL OVERVIEW
[0016] This overview presents a basic description of some aspects of an example embodiment of the present invention. It should be noted that this overview is not an extensive or exhaustive summary of aspects of the example embodiment. Moreover, it should be noted that this overview is not intended to be understood as identifying any particularly significant aspects or elements of the example embodiment, nor as delineating any scope of the example embodiment in particular, nor the invention in general. This overview merely presents some concepts that relate to the example embodiment in a condensed and simplified format, and should be understood as merely a conceptual prelude to a more detailed description of example embodiments that follows below. Note that, although separate embodiments are discussed herein, any combination of embodiments and/or partial embodiments discussed herein may be combined to form further embodiments. [0017] Under some approaches that do not implement techniques as described herein, an image processing system (e.g., a display device, a television, a mobile or non-mobile computing device operating with an image display, etc.) or a display driver therein may render an image on an image display by scanning or driving pixels of scan lines of the image display in a time sequential order along a specific spatial direction of the image display. In a first example, to render the image on the image display, the display driver may start scanning or driving the topmost scan line among all the scan lines of the image display from top to bottom until the bottommost scan line among all the scan lines of the image display. In a second example, to render the image on the image display, the display driver may start scanning or driving the bottommost scan line among all the scan lines of the image display from bottom to top until the topmost scan line among all the scan lines of the image display. In a third example, to render the image on the image display, the display driver may start scanning or driving the leftmost scan line among all the scan lines of the image display from left to right until the rightmost scan line among all the scan lines of the image display. In a fourth example, to render the image on the image display, the display driver may start scanning or driving the rightmost scan line among all the scan lines of the image display from right to left until the leftmost scan line among all the scan lines of the image display. In a fifth example, to render the image on the image display, the display driver may start scanning or driving a (first, etc.) scan line among all the scan lines of the image display following a cycle (or a cyclic order) until the last scan line of the cycle among all the scan lines of the image display. For instance, the first scan line to be driven by the display driver may be an intermediate scan line, the next scan line may be a scan line below the first scan line, ... until the bottommost scan line. After the bottommost scan line has been driven, the topmost scan line, which is deemed as the next scan line to the bottommost scan line in the cycle, is driven by the display driver, followed by the line immediately below the topmost scan line, ... until the scan line (which is deemed as the last scan line in the cycle) above the first scan line. [0018] As a result of updating scan lines on an image display from top to bottom/bottom to top or one side to another under approaches that do not implement techniques as described herein, a very recognizable pattern of judder or flicker may be visible to the eye of the human visual system (HVS), similar to a rolling shutter type of visual artifact. This can be a major problem for a wide variety of image displays, especially those of high dynamic range (HDR). [0019] In contrast, under techniques as described herein, an image processing system (e.g., a display device, a television, a mobile or non-mobile computing device or a display driver therein operating with an image display may render an image on the image display by scanning or driving pixels of scan lines of the image display in a (randomized) time sequential order that does not follow, or is not along, any specific spatial direction - e.g., from top to bottom, from bottom to top, from left to right, from right to left, from the first scan line of a cycle to the last scan line of the cycle, etc. - of the image display.
[0020] For example, under these techniques as described herein, to render the image on the image display, the display driver starts scanning or driving the very first scan line that is selected randomly from among all the scan lines of the image display. A subsequent scan line to be scanned or driven by the display driver - subsequent to scanning or driving the first scan line - is selected randomly from remaining scan lines of the image display, where the remaining scan lines include all the scan lines of the image display excluding any scan line(s) that have been scanned or driven for rendering the same image.
[0021] As a result of updating scan lines on an image display in random orders under techniques as described herein, no or little pattern of judder or flicker similar to a rolling shutter type of visual artifact may be visible to the eye of the HVS. Some or all of these techniques can be incorporated in a wide variety of image displays including but not limited to those of HDR for the purpose of preventing or significantly reducing scrolling type visual artifact or visible patterned judder/flicker.
[0022] Example embodiments described herein relate to processing and/or rendering images. An image that includes pixel values for pixels arranged in a two-dimensional array on an image display is received. The pixels are divided into scan lines spatially arranged along a first spatial direction of the image display. The scan lines are indexed with a sequence of scan line identifiers. A sequence of randomized scan line identifiers different from the sequence of scan line identifiers is determined. Each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers. Each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers. The pixel values of the image are used to drive the scan lines of the image display according to a (scan line) time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display. The time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order different from specified by the sequence of scan line identifiers.
[0023] In some example embodiments, the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers. In other sample embodiments, the sequence of randomized scan line identifiers is selected, either randomly at runtime or according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers. For example and without limitation, a selection from among a plurality of pre-configured sequences of randomized scan line identifiers according to a predetermined selection sequence can include following the predetermined selection sequence sequentially, in a back-and-forth or roundrobin fashion, so that a new selection from among the plurality of pre-configured sequences of randomized scan line identifiers is made for each image frame or in each frame time interval.
[0024] In some example embodiments, mechanisms as described herein form a part of a media processing system, including but not limited to any of: cloud-based server, mobile device, virtual reality system, augmented reality system, head up display device, helmet mounted display device, CAVE-type system, wall-sized display, video game device, display device, media player, media server, media production system, camera systems, home-based systems, communication devices, video processing system, video codec system, studio system, streaming server, cloud-based content service system, a handheld device, game machine, television, cinema display, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer server, computer kiosk, or various other kinds of terminals and media processing units.
[0025] Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.
2. IMAGE DISPLAY AND SCANLINES
[0026] FIG. 1 illustrates an example image display (or display panel) 102 that comprises a plurality of pixels (one of which, for example, is a pixel 104). For the purpose of illustration only, the pixels are depicted as being rectangles arranged in an array pattern. In various embodiments, the pixels may be of different shapes other than rectangles. Additionally, optionally, or alternatively, the pixels may be arranged in different patterns (e.g., concentric pattern, a pattern randomized to a certain extent, spherical pattern, etc.) other than the array pattern.
[0027] Each pixel (e.g., 104, etc.) as described herein may comprise a set of three or more subpixels, which corresponds to a set of three or more different component or primary colors (or color primaries such as RGB or CMY in addition to zero or more other colors such as white) of a color space.
[0028] In some embodiments, the image display (102) is of a transmissive display type. A pixel or a subpixel as described herein can be implemented as a light regulator, which can be set to a specific transmittance (or transparency level) among a plurality of different settable transmittances (or transparency levels) to regulate amounts of light transmitting through the light regulator toward a viewer of the image display (102). The specific transmittance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102). The digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102). Additionally, optionally or alternatively, the respective light regulation driver used to drive the transmittance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel. As used herein, “transmittance” may refer to the amount of light flux exiting out of a light regulator, normalized by the amount of light flux entering into the light regulator.
[0029] In some embodiments, the image display (102) is of a reflective display type. A pixel or a subpixel as described herein can be implemented as a light regulator, which can be set to a specific reflectance among a plurality of different settable reflectances to regulate amounts of light reflecting from the light regulator toward a viewer of the image display (102). The specific reflectance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102). The digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102). Additionally, optionally or alternatively, the respective light regulation driver used to drive the reflectance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel. As used herein, “reflectance” may refer to the amount of light flux reflected by a light reflector, normalized by the amount of light flux incident onto the light reflector.
[0030] In some embodiments, the image display (102) is of an emissive display type. A pixel or a subpixel as described herein can be implemented as a light emitter (e.g., a light emitting diode or LED, a micro LED, organic LED or OLED, etc.), which can be set to a specific light emittance (or emission level) among a plurality of different settable light emission levels to regulate amounts of light emitting from the light emitter toward a viewer of the image display (102). The specific light emittance may be set for the pixel or subpixel using a specific (e.g., electric current, voltage, analog, etc.) light regulation driving signal or waveform or amplitude generated by a respective light regulation driver of the image display (102) based in part or in whole on a digital drive value provided by a display driver (e.g., integrated circuit or IC, system on chip or SoC, field programmable gate array or FPGA, application specific IC or ASIC, etc.) operating with the image display (102). The digital drive value in turn may be derived by the display driver from a pixel or subpixel value specified for the pixel or subpixel in an image to be rendered on the image display (102). Additionally, optionally or alternatively, the respective light regulation driver used to drive the emittance level of the pixel or subpixel may be incorporated into the display driver that may be outside the display panel or the image display (102), instead of being included in the display panel with the pixel or subpixel. As used herein, “emittance” may refer to the amount of light flux emitted from a light emitter.
[0031] It should be noted that, in various embodiments, the image display (102) may be one of the foregoing types of image displays, other types (e.g., image display types that include light regenerators such as quantum dots, etc.) of image displays, or any combinations of the foregoing types of image displays and/or other types of image displays.
[0032] In some operational scenarios, pixels in the image display (102) are spatially arranged in a two-dimensional array. As illustrated in FIG. 1, the pixels of the image display (102) are divided into a plurality of scan lines (e.g., 114-1, 114-2, 114-3, etc.) arrayed in a first spatial direction such as the vertical direction (108) of the image display (102). Each (e.g., 114-1, etc.) of the scan lines comprises a respective plurality of pixels spatially arranged or arrayed in a second spatial direction such as the horizontal direction (106) of the image display (102).
3. IMAGE PROCESSING/RENDERING DEVICE
[0033] FIG. 2A illustrates an example image processing/rendering device 200 comprising an image receiver 202, an image buffer 204, a display timing controller 206, a scan line driver 210, light regulator drivers 214, etc. As shown, the display timing controller (206) may include or operate with a scan line randomizer 208. The image processing/rendering device (200) may be implemented in software, hardware, a combination of software and hardware, etc., with one or more computing processors. Some or all components of the image processing/rendering device (200) can be incorporated or partitioned into one or more of media devices, downstream media devices, display devices, media stream servers, mobile or non-mobile computing devices, etc.
[0034] In some operational scenarios, the image receiver (202) may comprise software, hardware, a combination of software and hardware, etc., configured to receive an input video signal 220; decode or decompress the input video signal (220) into a sequence of (e.g., consecutive, sequential, etc.) decoded images; process the sequence of decoded images into a sequence of display images or images to be rendered on the image display (100); store some or all of the sequence of display images in the image buffer (204); and so on. The input video signal (220) may be, but is not limited to only, any of: video signals, multi-layer video signals, coded bitstreams, video files, multimedia files, etc.
[0035] The sequence of display images may be rendered on the image display (100) in a plurality of (e.g., consecutive, sequential, etc.) frame time intervals. Each display image in the sequence of display images may be rendered on the image display (100) during a respective frame time interval in the plurality of frame time intervals. Each frame time interval in the plurality of frame time intervals may be determined based on a specific frame refresh rate at which the image display (100) renders display images.
[0036] Each display image in the sequence of display images may be determined or derived from a respective decoded image in the sequence of decoded images and/or may comprise a plurality of display pixel values (or digital drive values) for a plurality of pixels included in the image display (100). Each display pixel value (or digital drive value) in the plurality of display pixel values (or digital drive values) may be specified for a respective pixel in the plurality of pixels and/or may be a composite value representing a set of three or more component pixel values for three or more components/channels of a display color space in which each display image in the sequence of display images is represented.
[0037] The input video signal (220) or image data encoded therein may be derived from any of a variety of media content sources such as image acquisition devices, cameras, media content servers, tangible media, studio systems, content databases, etc. Example image data encoded in the input video signal (220) may include, but are not necessarily limited to only, any of: video clips, movies, TV program related image data, raw images, digital photos, video images, 3D images, non-3D images, computer-generated graphics, scene-referred images, device-referred images, images with various dynamic ranges, etc.
[0038] The input image data may be coded in any of a variety of color spaces such as RGB color spaces, YCbCr color spaces, perceptually quantized (PQ) color spaces, hybrid log gamma (HLG) color spaces, high dynamic range (HDR) color spaces, standard dynamic range (SDR) color spaces, etc. In an example, each pixel value in an image represented in the input video signal (220) comprises component pixel (or subpixel) values for some or all channels defined in a color space such as red, green and blue color channels in a RGB color space, luma and chroma channels in a YCbCr color space, etc.
[0039] The input video signal (220) may be received by the image processing/rendering device (200) or the image receiver (202) therein through a network or data connection. As used herein, a network or data connection may refer to any of: network connections, digital data interfaces, local data connections, data interfaces with tangible storage media, data connections involving intermediate devices (e.g., transcoders, gateways, routers, switches, etc.), etc.
[0040] In some operational scenarios, the display timing controller (206) comprises software, hardware, a combination of software and hardware, etc., configured to generate display timing control signals for starting, controlling and ending scan line selection, for fetching display pixel values (or digital drive values) for a current scan line, for generating or routing respective light regulator signals for pixels of the current scan line; route respective display timing control signals to other components of the image processing/rendering device (200) such as the scan line driver (210) and the light regulator drivers (214); etc.
[0041] Some or all of the display timing control signals may be generated by the display timing controller (206) based in part or in whole on timing or synchronization signals extracted from the input video signal (220). For example, the input video signal (220) may carry frame timing or synchronization signals and/or horizontal timing or synchronization signals, etc. These timing or synchronization signals may be used by the display timing controller (206) to generate some or all of the display timing control signals. Additionally, optionally or alternatively, some or all of the display timing control signals may be (e.g., autonomously, etc.) generated by the display timing controller (206) without relying on timing or synchronization signals extracted from the input video signal (220).
[0042] In some operational scenarios, in which the input video signal (220) carries or includes (e.g., explicit, etc.) timing or synchronization signals for driving scan line selections of a display image according to a sequence of scan lines along a specific spatial direction of the image display (100), these timing or synchronization signals may be ignored and/or replaced by the display timing controller (206) with (modified or altered) timing or synchronization signals for driving scan line selections of a display image according to a sequence of randomized scan lines that does not follow, or is not along, any specific spatial direction of the image display (100).
[0043] In some operational scenarios, in which the input video signal (220) does not carry or include (e.g., explicit, etc.) timing or synchronization signals for driving scan line selections of a display image according to a sequence of scan lines along a specific spatial direction of the image display (100), the display timing controller (206) can use or generate (new) timing or synchronization signals for driving scan line selections of a display image according to a sequence of randomized scan lines that does not follow, or is not along, any specific spatial direction of the image display (100).
[0044] A sequence of randomized scan lines as described herein may be dynamically determined, generated and/or selected by the display timing controller (206) or the scan line randomizer (208) therein at runtime. Additionally, optionally or alternatively, a sequence of randomized scan lines as described herein may be selected from a plurality of preconfigured or pre-computed sequences of randomized scan lines by the display timing controller (206) or the scan line randomizer (208) therein at runtime.
[0045] In some operational scenarios, the scan line driver (210) comprises software, hardware, a combination of software and hardware, etc., configured to generate scan line selection signals 216 for a current (or each) display image in the sequence of display images based in part or in whole on display timing control signals routed or received from the display timing controller (206); route the scan line selection signals (216) to the image display (100) to cause the image display (100) to select, update, activate or drive all the scan lines of the image display (100) in a temporal sequential order in according to (a specification of) the sequence of randomized scan lines; etc.
[0046] The sequence of randomized scan lines may be selected, updated, activated or driven in a sequence of (e.g., consecutive, sequential, etc.) scan line time intervals for rendering a display image. The sequence of scan line time intervals is within a frame time interval used or allocated for rendering the display image. Each scan line in the sequence of randomized scan lines may be selected, updated, activated or driven during a respective scan line time interval in the sequence of scan line time intervals.
[0047] During each scan line time interval in the sequence of scan line time intervals, a current (or each) scan line may be selected from the scan lines of the image display (100) according to a time sequential order set forth by the sequence of randomized scan lines. [0048] In some operational scenarios, the light regulator drivers (214) comprise software, hardware, a combination of software and hardware, etc., configured to fetch or load (e.g., a row of, etc.) display pixel or subpixel values (or digital drive values) in the current display image for pixels or subpixels of the current scan line based in part or in whole on display timing control signals routed or received from the display timing controller (206). Each light regulator driver in the light regulator drivers (214) may fetch a respective display pixel or subpixel value (or digital drive value) in the display pixel or subpixel value (or digital drive values) for a respective pixel or subpixel of the current scan line.
[0049] In some operational scenarios, in which a display driver - such as a combination of some or all of the image receiver (202), the display timing controller (206), the scan line driver (210), the light regulator drivers (214), optionally the image buffer (204), etc. - operates in a digital display driving mode, the display pixel or subpixel values (digital drive values) for the current scan line may be loaded or routed to the pixels or subpixels of the current scan line of the image display (100) by way of light regulator signals (218) while the current scan line is being selected, updated, activated or driven by a current or respective scan line selection signal in the scan line selection signals (216). Driving ICs or transistors in the image display (100) may convert these digital signals into analog light regulator driving signals or waveforms or amplitudes used to control specific luminances and/or chrominances of the pixels or subpixels of the current scan line of the image display (100).
[0050] In some operational scenarios, in which a display driver - such as a combination of some or all of the image receiver (202), the display timing controller (206), the scan line driver (210), the light regulator drivers (214), optionally the image buffer (204), etc. - operates in an analog display driving mode, the display pixel or subpixel values (digital drive values) for the current scan line may be first converted analog light regulator driving signals or waveforms or amplitudes used to control specific luminances and/or chrominances of the pixels or subpixels of the current scan line of the image display (100). These analog light regulator driving signals or waveforms or amplitudes may then be loaded or routed to the pixels or subpixels of the current scan line of the image display (100) by way of light regulator signals (218) while the current scan line is being selected, updated, activated or driven by a current or respective scan line selection signal in the scan line selection signals (216). 4. RANDOM SCAN LINE SHUFFLING
[0051] FIG. 3 illustrates example random shuffling of a sequence of scan lines into a sequence of randomized scan lines. In some operational scenarios, this random shuffling operation may be performed by a display driver as described herein at run time. In some other operational scenarios, this random shuffling operation can be performed by a device separate from the display driver to generate a specification of the sequence of randomized scan lines beforehand. The pre-generated specification of the sequence of randomized scan lines may be configured or preconfigured in memory or cache accessible by the display driver, for example as one in a plurality of specifications of sequences of randomized scan lines configured or preconfigured in the memory or cache for the display driver to select or access.
[0052] As shown, an image display (e.g., 100 of FIG. 1, etc.) operating with an image processing/rendering device (e.g., 200 of FIG. 2A, etc.) that includes the display driver may include a plurality of scan lines 114 spatially arranged or arrayed along a first spatial direction (e.g., 108, vertical, horizontal, etc.), which may be referred to as a canonical direction. Each scan line (e.g., 114-1, 114-2, 114-3, etc. of FIG. 1) in the plurality of scan lines (114) of the image display (100) includes a respective subsets of (a set of) pixels on the image display (100). The total number of scan lines in the plurality of scan lines (114) of the image display (100) may be denoted or represented as an integer N, no less than a positive integer such as one of 2, 3,..., 256,..., 1024,..., 2048,..., 4096,..., 8192, etc.
[0053] In a first step of a process flow for generating specifications of sequences of randomized scan lines, the plurality of scan lines (114) may be assigned with a plurality of scan line identifiers 302 such as scan line ID 1, scan line ID 2, scan line ID 3, ..., scan line ID (i-2), scan line ID (i-1), scan line ID i, scan line ID (i+1), scan line ID (i+2), ..., scan line ID (N-2), scan line ID (N-l), scan line ID N. More specifically, the (very) first scan line along the first spatial direction (108) in the plurality of scan lines (114) may be assigned with scan line ID 1, immediately followed by the second scan line along the same spatial direction assigned with scan line ID 2, and so on - until the (very) last scan line, along the first spatial direction (108) in the plurality of scan lines (114), assigned with scan line ID N. Hence, the plurality of scan line identifiers (302) collectively represents or specifies, for the plurality of scan lines (114), a sequence of scan lines along the first spatial direction (108).
[0054] In a second step (e.g., subsequent to the first step, etc.) of the process flow, a random shuffling operation, algorithm, method, subprocess, etc., may be applied to the plurality of scan line identifiers (302) to generate a plurality of random shuffled places or draws 304 for the plurality of scan line identifiers (302). The plurality of random shuffled places or draws (304) may be respectively denoted or specified as RS(scan line ID 1), RS(scan line ID 2), RS(scan line ID 3), RS(scan line ID (i-2)), RS(scan line ID (i-1)), RS(scan line ID i), RS(scan line ID (i+1)), RS(scan line ID (i+2)), RS(scan line ID (N- 2)), RS(scan line ID (N-l)), RS(scan line ID N), where the random shuffling operation, algorithm, method, subprocess, etc., represents a (random shuffling) function denoted as RS(...). Example random shuffling operations may include, but are not necessarily limited to any of those relating to one or more of: the Fisher- Yates shuffle method, the Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, etc.
[0055] For example, the very first random shuffled place or draw among the plurality of random shuffled places or draws (304) may be randomly selected from among all (or N) scan line identifiers in the plurality of scan line identifiers (302). The second random shuffled place or draw among the plurality of random shuffled places or draws (304) may be randomly selected from among all (or N) scan line identifiers, except for any previously selected or drawn scan line identifier(s), in the plurality of scan line identifiers (302). This random shuffling operation can continue until the very last random shuffled place or draw as the last remaining scan line identifier in the plurality of scan line identifiers (302). The plurality of random shuffled places or draws thus generated from the random shuffling collectively represent a specification of a sequence of randomized scan lines that are not spatially arranged or arrayed along any spatial direction of the image display (100).
[0056] Irrespective of how the random shuffling operation is performed, it is generally possible to determine, with a certain degree of confidence, whether a given sequence of scan line identifiers is indeed a randomized sequence, or rather has some apparent or hidden structure. Suitable tests for making such a determination are known. These tests include, for example and without limitation, statistical tests, tests based on transforms, and tests based on complexity.
[0057] In some operational scenarios, the second step of the process flow described herein can be repeated to generate multiple specifications of multiple different sequences of randomized scan lines. Each specification in the multiple specifications specifies a respective sequence of randomized scan lines in the multiple different sequences of randomized scan lines.
[0058] By way of illustration but not limitation, the image display (100) may include (N=) 8192 scan lines (e.g., 114 of FIG. 3, etc.) spatially arranged or arrayed along the vertical direction (e.g., 108 of FIG. 3, etc.) of the image display (100). These 8192 scan lines may be assigned 8192 distinct scan line identifiers (e.g., 302 of FIG. 3, etc.) from 1 to 8192 ascending or ordered along the vertical direction. Hence these 8192 scan line identifiers collectively specify a sequence of scan lines along the vertical direction of the image display (100). After random shuffling, 8192 random shuffled places or draws (e.g., 304 of FIG. 3, etc.) for the 8192 scan line identifiers representing the 8192 scan lines collectively specify a sequence of randomized scan lines that do not follow, or is not along, any spatial direction of the image display such as the vertical direction, the horizontal direction, the diagonal direction, a cyclic direction, etc. For example, the very first random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 839-th scan line (or a scan line with a scan line identifier 839). The second random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 24-th scan line (or a scan line with a scan line identifier 24). The third random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 1115-th scan line (or a scan line with a scan line identifier 1115). The fourth random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 1001-th scan line (or a scan line with a scan line identifier 1001). The fifth random shuffled place or draw among the 8192 random shuffled places or draws may goes to the 452-th scan line (or a scan line with a scan line identifier 452). And so on.
[0059] Instead of scanning the scan lines (114), a display driver as described herein selects, updates, activates or drives the scan lines in a temporal sequential order such as specified by the random shuffled places or draws (304). In the present example, the display driver selects, updates, activates or drives the 839-th scan line as the first scan line among the scan lines since the very first random shuffled place or draw goes to the scan line identifier 839; immediately followed by the 24-th scan line as the second scan line among the scan lines since the second random shuffled place or draw goes to the scan line identifier 24; immediately followed by the 1115-th scan line as the third scan line among the scan lines since the third random shuffled place or draw goes to the scan line identifier 1115; immediately followed by the 1001-th scan line as the fourth scan line among the scan lines since the fourth random shuffled place or draw goes to the scan line identifier 1001; immediately followed by the 452-th scan line as the fifth scan line among the scan lines since the fifth random shuffled place or draw goes to the scan line identifier 452; and so on.
5. PRE-CONFIGURING RANDOMIZED SCAN LINE SEQUENCES [0060] FIG. 2B illustrates another example image processing/rendering device 200-1 comprising the image receiver (202), the image buffer (204), a display timing controller 206- 1, the scan line driver (210), the light regulator drivers (214), etc. The image processing/rendering device (200-1) may be implemented in software, hardware, a combination of software and hardware, etc., with one or more computing processors. Some or all components of the image processing/rendering device (200-1) can be incorporated or partitioned into one or more of media devices, downstream media devices, display devices, media stream servers, mobile or non-mobile computing devices, etc.
[0061] As shown in FIG. 2B, instead of or in addition to including a scan line randomizer in a display timing controller such as 206 illustrated in FIG. 2A, the display timing controller (206-1) in the image processing/rendering device (200-1) may include or operate with a randomized scan line sequence selector 222 and a randomized scan line sequence lookup table 224, the latter of which may be used to store a single (specification of) sequence of randomized scan lines or multiple (specifications of) sequences of randomized scan lines. [0062] In a non-limiting example, a plurality of (specifications of) sequences of randomized scan lines may be generated or pre-generated for all the scan lines (114) of the image display (100). These (specifications of) sequences of randomized scan lines may be configured or preconfigured in the randomized scan line sequence lookup table (224) before rendering the sequence of display images.
[0063] At runtime for rendering the sequence of display images, the display timing controller (206-1) can operate with the randomized scan line sequence selector (222) to select (e.g., sequentially, round-robin, randomly, etc.) a current (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224).
[0064] By way of example but not limitation, the randomized scan line sequence selector (222) may generate a random number or pseudo-random number for each display image, in the sequence of display images, to be rendered on the image display (100). The sequence of display images may be indexed by a sequence of (e.g., consecutive, sequential, etc.) frame indexes. The sequence of frame indexes may logically represent a sequence of time points or instances spanning a time duration (e.g., of a media program, etc.). Each display image in the sequence of display images may be identified or assigned by a respective frame index in the sequence of frame indexes. The randomized scan line sequence selector (222) may implement a random number or pseudo-random number generator using frame indexes as seed values. For instance, for a current display image to be rendered on the image display (100), the randomized scan line sequence selector (222) may identify or determine its assigned frame index in the sequence of frame indexes. The assigned frame index for the current display image may be used as a seed value by the randomized scan line sequence selector (222) to generate a random number or a pseudo-random number. The generated random or pseudo-random number - modulo the total number of (specifications of) sequences of randomized scan lines in the random scan line sequence lookup table (224) if applicable - may be used as a lookup key by the randomized scan line sequence selector (222) to select a specific (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224). Thereafter, the display timing controller (206-1) can select, update, activate or drive the scan lines of the image display (100) for rendering the current display image in a temporal sequential order as specified by the specific (specification of) sequence of randomized scan lines.
[0065] As another example, the assigned frame index for the current display image modulo the total number of (specifications of) sequences of randomized scan lines in the random scan line sequence lookup table (224) may be used as a lookup key by the randomized scan line sequence selector (222) to select a specific (specification of) sequence of randomized scan lines from among the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224). This results in an embodiment which uses the available (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224) according to a predetermined sequential (in the present example, round-robin) selection sequence.
[0066] As yet another example, the assigned frame index for the current display image may be used as a lookup key for a table storing a predetermined or predefined selection sequence, wherein each entry in the table indicates one of the plurality of (specifications of) sequences of randomized scan lines in the randomized scan line sequence lookup table (224). For example and without limitation, the predetermined selection sequence stored in the table may start with the 1st, 3rd, 5th, ... sequence of randomized scan lines, and then proceed to the 2nd, 4th, 6th, ... sequence of randomized scan lines.
[0067] For the purpose of illustration only, it has been described that all scan lines of an image display or display panel may be selected, updated, activated or driven in a randomized scan line order for rendering a display image on the image display or display panel. It should be noted that, in various embodiments, some or all scan lines of an image display or display panel may be selected, updated, activated or driven in one or more randomized scan line orders. In an example, a proper subset of scan lines (e.g., a salient portion, a central portion, etc.) in all the scan lines of an image display may be selected, updated, activated or driven in a random order for rendering a display image on the image display. Remaining scan lines of the image display other than the subset of scan lines display may be selected, updated, activated or driven in a non-randomized scan line order such as from top to bottom or from one side to another side. In another example, an image display or display panel may be partitioned to two or more spatial sections with their respective scan lines. For each spatial section of the spatial sections, the same or a different randomized scan line sequence may be used to select, update, activate or drive scan lines in the spatial section.
[0068] For the purpose of illustration only, it has been described that individual scan lines of an image display or display panel may be selected, updated, activated or driven in a randomized scan line order for rendering a display image on the image display or display panel. It should be noted that, in other embodiments, some or all scan lines of an image display or display panel may be grouped into a plurality of scan line groups. Instead of selecting (or updating, activating or driving) an individual scan line randomly from remaining non-updated scan lines (all the scan lines minus previously updates scan lines) in a frame time interval, an individual scan line group may be randomly selected (or updated, activated or driven) from among the remaining non-updates scan line groups (all the scan line groups minus previously updates scan line groups) in a frame time interval. A scan line group as described herein may include two or more scan lines. Example scan lines in a scan line group may include (physically) adjacent scan lines or (physically) non-adjacent scan lines, in the image display.
[0069] For the purpose of illustration only, it has been described that an image processing/rendering device that includes a display driver herein may be separate from an image display or display panel. It should be noted that, in other embodiments, a display driver and/or some or all of an image processing/rendering device may be incorporated as a part of an image display or display panel.
6. EXAMPLE PROCESS FLOWS
[0070] FIG. 4 illustrates an example process flow according to an example embodiment of the present invention. In some example embodiments, one or more computing devices or components may perform this process flow. In block 402, an image processing or rendering system (e.g., 200 of FIG. 2A, 200-1 of FIG. 2B, etc.) receives an image that includes pixel values for pixels arranged in a two-dimensional array on an image display. The pixels are divided into scan lines spatially arranged along a first spatial direction of the image display. The scan lines are indexed with a sequence of scan line identifiers.
[0071] In block 404, the system determines a sequence of randomized scan line identifiers different from the sequence of scan line identifiers. Each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers. Each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers.
[0072] In block 406, the system uses the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display. The time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order different from specified by the sequence of scan line identifiers.
[0073] In an embodiment, according to the canonical time sequential order, the scan lines of the image display are to be scanned time sequentially along a specific spatial direction of the image display.
[0074] In an embodiment, according to the time sequential order, the scan lines of the image display are scanned time sequentially not along any specific spatial direction of the image display.
[0075] In an embodiment, the first spatial direction of the image display is one of: a horizontal direction or a vertical direction, of the image display.
[0076] In an embodiment, each scan line in the scan lines is uniquely identified by a respective scan line identifier in the sequence of scan line identifiers.
[0077] In an embodiment, each scan line in the scan lines includes a subset of the pixels spatially arranged along a second spatial direction of the image display perpendicular to the first spatial direction.
[0078] In an embodiment, the sequence of randomized scan line identifiers is generated from the sequence of scan line identifiers using one or more of: a Fisher- Yates shuffle method, a Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, a random shuffling method, etc.
[0079] In an embodiment, the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers.
[0080] In an embodiment, the sequence of randomized scan line identifiers is selected from among a plurality of pre-configured sequences of randomized scan line identifiers. [0081] In an embodiment, the sequence of randomized scan line identifiers is selected randomly at runtime from among a plurality of pre-configured sequences of randomized scan line identifiers. [0082] In an embodiment, the sequence of randomized scan line identifiers is selected, according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers.
[0083] In an embodiment, the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of pre-configured sequences of randomized scan line identifiers in the lookup table is a random number generated at runtime. [0084] In an embodiment, the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of pre-configured sequences of randomized scan line identifiers in the lookup table.
[0085] In an embodiment, the image is received in a sequence of images; the system is further configured to perform: receiving a second image that includes second pixel values for the pixels arranged in the two-dimensional array on the image display; determining a second sequence of randomized scan line identifiers different from each of the sequence of scan line identifiers and the sequence of randomized scan line identifiers, each scan line identifier in the second sequence of randomized scan line identifiers equaling a single scan line identifier in the sequence of scan line identifiers, each scan line identifier in the sequence of scan line identifiers equaling a single scan line identifier in the second sequence of randomized scan line identifiers; using the second pixel values of the image to drive the scan lines of the image display according to a second time sequential order specified by the second sequence of randomized scan line identifiers for rendering the image on the image display, the second time sequential order being different from each of the canonical time sequential order specified by the sequence of scan line identifiers and the time sequential order specified by the sequence of randomized scan line identifiers.
[0086] In an embodiment, each scan line in the scan lines of the image display is indexed with a respective scan line identifier in the sequence of scan line identifiers.
[0087] In various example embodiments, an apparatus, a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described. In an embodiment, a non-transitory computer readable storage medium stores software instructions, which when executed by one or more processors cause performance of a method as described herein. [0088] Note that, although separate embodiments are discussed herein, any combination of embodiments and/or partial embodiments discussed herein may be combined to form further embodiments.
7. IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW
[0089] According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application- specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
[0090] For example, FIG. 5 is a block diagram that illustrates a computer system 500 upon which an example embodiment of the invention may be implemented. Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a hardware processor 504 coupled with bus 502 for processing information. Hardware processor 504 may be, for example, a general purpose microprocessor.
[0091] Computer system 500 also includes a main memory 506, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504. Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504. Such instructions, when stored in non-transitory storage media accessible to processor 504, render computer system 500 into a special-purpose machine that is customized to perform the operations specified in the instructions.
[0092] Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504.
[0093] A storage device 510, such as a magnetic disk or optical disk, solid state RAM, is provided and coupled to bus 502 for storing information and instructions. [0094] Computer system 500 may be coupled via bus 502 to a display 512, such as a liquid crystal display, for displaying information to a computer user. An input device 514, including alphanumeric and other keys, is coupled to bus 502 for communicating information and command selections to processor 504. Another type of user input device is cursor control 516, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. [0095] Computer system 500 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
[0096] The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510. Volatile media includes dynamic memory, such as main memory 506. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
[0097] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. [0098] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 502. Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.
[0099] Computer system 500 also includes a communication interface 518 coupled to bus 502. Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522. For example, communication interface 518 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[00100] Network link 520 typically provides data communication through one or more networks to other data devices. For example, network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526. ISP 526 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 528. Local network 522 and Internet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 520 and through communication interface 518, which carry the digital data to and from computer system 500, are example forms of transmission media. [00101] Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518. In the Internet example, a server 530 might transmit a requested code for an application program through Internet 528, ISP 526, local network 522 and communication interface 518. [00102] The received code may be executed by processor 504 as it is received, and/or stored in storage device 510, or other non-volatile storage for later execution.
8. EQUIVALENTS , EXTENSIONS , ALTERNATIVES AND MISCELLANEOUS [00103] Various aspects of the present invention may be appreciated from the following Enumerated Example Embodiments (EEEs):
[00104] EEE 1: A method for rendering images, comprising: receiving an image that includes pixel values for pixels arranged in a two-dimensional array on an image display, wherein the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display, wherein the scan lines are indexed with a sequence of scan line identifiers; determining a sequence of randomized scan line identifiers different from the sequence of scan line identifiers, wherein each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers; using the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display, wherein the time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order different from specified by the sequence of scan line identifiers.
[00105] EEE 2: The method of EEE 1, wherein, according to the canonical time sequential order, the scan lines of the image display are to be scanned time sequentially along a specific spatial direction of the image display.
[00106] EEE 3: The method of EEE 1 or EEE 2, wherein, according to the time sequential order, the scan lines of the image display are scanned time sequentially not along any specific spatial direction of the image display.
[00107] EEE 4: The method of any of EEEs 1-3, wherein the first spatial direction of the image display is one of: a horizontal direction or a vertical direction, of the image display. [00108] EEE 5: The method of any of EEEs 1-4, wherein each scan line in the scan lines is uniquely identified by a respective scan line identifier in the sequence of scan line identifiers.
[00109] EEE 6: The method of any of EEEs 1-5, wherein each scan line in the scan lines includes a subset of the pixels spatially arranged along a second spatial direction of the image display perpendicular to the first spatial direction. [00110] EEE 7: The method of any of EEEs 1-6, wherein the sequence of randomized scan line identifiers is generated from the sequence of scan line identifiers using one or more of: a Fisher- Yates shuffle method, a Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, or a random shuffling method.
[00111] EEE 8: The method of any of EEEs 1-7, wherein the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers.
[00112] EEE 9: The method of any of EEEs 1-7, wherein the sequence of randomized scan line identifiers is selected from among a plurality of pre-configured sequences of randomized scan line identifiers.
[00113] EEE 10: The method of EEE 9, wherein the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; wherein a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of preconfigured sequences of randomized scan line identifiers in the lookup table is a random number generated at runtime.
[00114] EEE 11: The method of any of EEEs 1-10, wherein the image is received in a sequence of images; the method further comprising: receiving a second image that includes second pixel values for the pixels arranged in the two-dimensional array on the image display; determining a second sequence of randomized scan line identifiers different from each of the sequence of scan line identifiers and the sequence of randomized scan line identifiers, wherein each scan line identifier in the second sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the second sequence of randomized scan line identifiers; using the second pixel values of the image to drive the scan lines of the image display according to a second time sequential order specified by the second sequence of randomized scan line identifiers for rendering the image on the image display, wherein the second time sequential order is different from each of the canonical time sequential order specified by the sequence of scan line identifiers and the time sequential order specified by the sequence of randomized scan line identifiers.
[00115] EEE 12: The method of any of EEEs 1-11, wherein each scan line in the scan lines of the image display is indexed with a respective scan line identifier in the sequence of scan line identifiers. [00116] EEE 13: A display driver circuit performing any of the methods as recited in EEEs 1-12.
[00117] EEE 14: An apparatus performing any of the methods as recited in EEEs 1-12.
[00118] EEE 15: A non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of the method recited in any of EEEs 1-12.
[00119] In the foregoing specification, example embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMS A method for rendering images, comprising: receiving an image that includes pixel values for pixels arranged in a two-dimensional array on an image display, wherein the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display, wherein the scan lines are indexed with a sequence of scan line identifiers; determining a sequence of randomized scan line identifiers different from the sequence of scan line identifiers, wherein each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers; using the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display, wherein the time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order specified by the sequence of scan line identifiers; wherein the sequence of randomized scan line identifiers is dynamically generated at runtime from the sequence of scan line identifiers. A method for rendering images, comprising: receiving an image that includes pixel values for pixels arranged in a two-dimensional array on an image display, wherein the pixels are divided into scan lines spatially arranged along a first spatial direction of the image display, wherein the scan lines are indexed with a sequence of scan line identifiers; determining a sequence of randomized scan line identifiers different from the sequence of scan line identifiers, wherein each scan line identifier in the sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the sequence of randomized scan line identifiers; using the pixel values of the image to drive the scan lines of the image display according to a time sequential order specified by the sequence of randomized scan line identifiers for rendering the image on the image display, wherein the time sequential order specified by the sequence of randomized scan line identifiers is different from a canonical time sequential order specified by the sequence of scan line identifiers; wherein the sequence of randomized scan line identifiers is selected, either randomly at runtime or according to a predetermined selection sequence, from among a plurality of pre-configured sequences of randomized scan line identifiers. The method of Claim 2, wherein the sequence of randomized scan line identifiers is selected, according to the predetermined selection sequence, from among the plurality of pre-configured sequences of randomized scan line identifiers. The method of any of Claims 1-3, wherein the plurality of pre-configured sequences of randomized scan line identifiers is stored in a lookup table; wherein a lookup key used to select the sequence of randomized scan line identifiers from among the plurality of pre-configured sequences of randomized scan line identifiers in the lookup table. The method of any of Claims 1-4, wherein, according to the canonical time sequential order, the scan lines of the image display are to be scanned time sequentially along a specific spatial direction of the image display. The method of any of Claims 1-5, wherein, according to the time sequential order, the scan lines of the image display are scanned time sequentially not along any specific spatial direction of the image display. The method of any of Claims 1-6, wherein the first spatial direction of the image display is one of: a horizontal direction or a vertical direction, of the image display. The method of any of Claims 1-7, wherein each scan line in the scan lines is uniquely identified by a respective scan line identifier in the sequence of scan line identifiers. The method of any of Claims 1-8, wherein each scan line in the scan lines includes a subset of the pixels spatially arranged along a second spatial direction of the image display perpendicular to the first spatial direction. The method of any of Claims 1-9, wherein the sequence of randomized scan line identifiers is generated from the sequence of scan line identifiers using one or more of: a Fisher- Yates shuffle method, a Durstenfeld shuffle method, an in-place shuffle method, an inside-out shuffle method, or a random shuffling method. The method of any of Claims 1-10, wherein the image is received in a sequence of images; the method further comprising: receiving a second image that includes second pixel values for the pixels arranged in the two-dimensional array on the image display; determining a second sequence of randomized scan line identifiers different from each of the sequence of scan line identifiers and the sequence of randomized scan line identifiers, wherein each scan line identifier in the second sequence of randomized scan line identifiers equals a single scan line identifier in the sequence of scan line identifiers, wherein each scan line identifier in the sequence of scan line identifiers equals a single scan line identifier in the second sequence of randomized scan line identifiers; using the second pixel values of the image to drive the scan lines of the image display according to a second time sequential order specified by the second sequence of randomized scan line identifiers for rendering the image on the image display, wherein the second time sequential order is different from each of the canonical time sequential order specified by the sequence of scan line identifiers and the time sequential order specified by the sequence of randomized scan line identifiers. The method of any of Claims 1-11, wherein each scan line in the scan lines of the image display is indexed with a respective scan line identifier in the sequence of scan line identifiers. A display driver circuit performing any of the methods as recited in Claims 1-12. An apparatus performing any of the methods as recited in Claims 1-12. A non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-12.
PCT/US2023/012213 2022-02-02 2023-02-02 Display driver flicker reduction WO2023150224A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263305873P 2022-02-02 2022-02-02
US63/305,873 2022-02-02
EP22156274.7 2022-02-11
EP22156274 2022-02-11

Publications (1)

Publication Number Publication Date
WO2023150224A1 true WO2023150224A1 (en) 2023-08-10

Family

ID=85476132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/012213 WO2023150224A1 (en) 2022-02-02 2023-02-02 Display driver flicker reduction

Country Status (1)

Country Link
WO (1) WO2023150224A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436636A (en) 1990-04-20 1995-07-25 Canon Kabushiki Kaisha Display control device which restricts the start of partial updating in accordance with whether the number of lines to be updated exceeds a predetermined number
US20080316158A1 (en) 2007-06-23 2008-12-25 Wan-Ju Chang Driving Method and Apparatus for an LCD Panel

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436636A (en) 1990-04-20 1995-07-25 Canon Kabushiki Kaisha Display control device which restricts the start of partial updating in accordance with whether the number of lines to be updated exceeds a predetermined number
US20080316158A1 (en) 2007-06-23 2008-12-25 Wan-Ju Chang Driving Method and Apparatus for an LCD Panel

Similar Documents

Publication Publication Date Title
JP5357147B2 (en) Multi-primary conversion
CN109891381A (en) Dual path central fovea graphics pipeline
CN108109570A (en) Low resolution RGB for effectively transmitting is rendered
CN109844850A (en) The rendering of early stage sub-pixel
JP2009518682A (en) Display device and display method
JP2566670B2 (en) Color mapping device and method
CN103688287B (en) Make source images content-adaptive in the method for target indicator
JP2009512896A (en) Display device, display control device, and display method
US10720124B2 (en) Variable pixel rate display interfaces
JP2003528517A (en) Video image data processing method and apparatus for display on a display device
US20190384559A1 (en) Electronic apparatus and method for controlling thereof
WO2015045416A1 (en) Display method and display device
US8094172B2 (en) Image display device and liquid crystal television having distributed subframe image data to a plurality of pixels
CN106469039B (en) Image display method and system
CN112164373B (en) Driving method and device of display panel
JP2002287687A (en) Display method
WO2023150224A1 (en) Display driver flicker reduction
CN112698804A (en) Data display method, device, equipment and computer readable storage medium
US7091980B2 (en) System and method for communicating digital display data and auxiliary processing data within a computer graphics system
JP2002072994A (en) Method for processing image, image processor and recording medium with image processing program recorded thereon
US11282430B2 (en) Image display system
KR101701766B1 (en) Generation of subpixel values and light source control values for digital image processing, and image processing circuit for performing the generation
JP2003076341A (en) Sequential color display device
CN1643568A (en) Device for digital display of a video image
CN112041919B (en) Method for transmitting a monochrome digital image via a transmission interface comprising a plurality of transmission channels

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23708971

Country of ref document: EP

Kind code of ref document: A1