WO2024220177A1 - Systems and methods for performing global dimming in artificial reality systems - Google Patents
Systems and methods for performing global dimming in artificial reality systems Download PDFInfo
- Publication number
- WO2024220177A1 WO2024220177A1 PCT/US2024/019578 US2024019578W WO2024220177A1 WO 2024220177 A1 WO2024220177 A1 WO 2024220177A1 US 2024019578 W US2024019578 W US 2024019578W WO 2024220177 A1 WO2024220177 A1 WO 2024220177A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- backlight
- backlight unit
- image frame
- global dimming
- intensity
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control 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
- G09G3/34—Control 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 by control of light from an independent source
- G09G3/3406—Control of illumination source
- G09G3/342—Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines
- G09G3/3426—Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines the different display panel areas being distributed in two dimensions, e.g. matrix
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control 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
- G09G3/34—Control 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 by control of light from an independent source
- G09G3/36—Control 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 by control of light from an independent source using liquid crystals
- G09G3/3607—Control 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 by control of light from an independent source using liquid crystals for displaying colours or for displaying grey scales with a specific pixel layout, e.g. using sub-pixels
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/10—Intensity circuits
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0233—Improving the luminance or brightness uniformity across the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0242—Compensation of deficiencies in the appearance of colours
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0271—Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/06—Adjustment of display parameters
- G09G2320/0626—Adjustment of display parameters for control of overall brightness
- G09G2320/0646—Modulation of illumination source brightness and image signal correlated to each other
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/06—Adjustment of display parameters
- G09G2320/0666—Adjustment of display parameters for control of colour parameters, e.g. colour temperature
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/16—Calculation or use of calculated indices related to luminance levels in display data
Definitions
- This disclosure generally relates to global dimming.
- the disclosure relates to a technique for performing global dimming in artificial reality systems, such as virtual reality (VR) headsets.
- VR virtual reality
- GD Global dimming
- LCD liquid crystal displays
- RGB red
- G green
- B blue
- Artificial reality is a form of reality that has been adjusted in some manner before presentation to a user, which may include, e.g., a virtual reality (VR), an augmented reality (AR), a mixed reality (MR), a hybrid reality, or some combination and/or derivatives thereof.
- Artificial reality content may include completely generated content or generated content combined with captured content (e.g., real-world photographs).
- the artificial reality content may include video, audio, haptic feedback, or some combination thereof, any of which may be presented in a single channel or in multiple channels (such as stereo video that produces a three-dimensional effect to the viewer).
- Artificial reality may be associated with applications, products, accessories, services, or some combination thereof, that are, e.g., used to create content in artificial reality and/or used in (e.g., perform activities in) an artificial reality.
- Artificial reality systems that provide artificial reality content may be implemented on various platforms, including a head-mounted device (HMD) connected to a host computer system, a standalone HMD, a mobile device or computing system, or any other hardware platform capable of providing artificial reality content to one or more viewers.
- HMD head-mounted device
- Embodiments described herein relate to performing global dimming for artificial reality systems. Particular embodiments describe an efficient method, algorithm, and/or technique to perform global dimming in addition to local dimming.
- the global dimming technique discussed herein is an extension to the local dimming (LD) technique discussed in U.S. Patent Application No. 17/713,965, filed 05 April 2022.
- a method implemented by a computing system, comprising: receiving a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; computing backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; computing a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
- Adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame may comprise: scaling up the color values of red, green, and blue (RGB) color components of the second image frame; and reducing the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
- RGB red, green, and blue
- Computing the backlight unit statistics of the first image frame may comprise: computing, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determining, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
- Computing the global dimming gain may comprise: generating an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determining, for a target percentile in the accumulated histogram, a threshold grayscale value; converting the threshold grayscale value to a particular backlight unit intensity using a lookup table; and computing the global dimming gain using the particular backlight unit intensity.
- the global dimming gain may be inversely proportional to the particular backlight unit intensity.
- the display may be associated with an artificial reality system.
- the artificial reality system may be a virtual reality headset.
- one or more computer- readable non-transitory storage media embodying software that is operable when executed to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
- the software may be further operable when executed to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
- RGB red, green, and blue
- the software may be further operable when executed to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
- the software may be further operable when executed to: generate an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity.
- the global dimming gain may be inversely proportional to the particular backlight unit intensity.
- the display may be associated with an artificial reality system.
- the artificial reality system may be a virtual reality headset.
- a system comprising: one or more processors; and one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
- the one or more processors may be further operable when executing the instructions to cause the system to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
- RGB red, green, and blue
- the one or more processors may be further operable when executing the instructions to cause the system to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
- the one or more processors may be further operable when executing the instructions to cause the system to: generate an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity.
- the global dimming gain may be inversely proportional to the particular backlight unit intensity.
- the display may be associated with an artificial reality system.
- image statistics e.g., backlight unit (BLU) stats
- BLU backlight unit
- RGB frame and BLU intensity for a current frame.
- data associated with BLU stats of the T1 frame is used to adjust the RGB values and backlight intensity for displaying the T 2 frame
- data associated with BLU stats of the T 2 frame is used to adjust the RGB values and backlight intensity for displaying the T 3 frame.
- the first frame T1 may be displayed at its original RGB value.
- the backlight intensity may still be adjusted, particularly in the low-level grayscale regions for local dimming.
- a global dimming and local dimming algorithm may calculate a global dimming gain based on image statistics (e.g., BLU stats) associated with an image frame.
- the calculated global dimming gain may be used to adjust RGB values and BLU intensity of a subsequent or next frame.
- the global dimming gain to scale up RGB values is inversely proportional to the BLU intensity. That is, the global dimming gain increases with decreasing BLU intensity.
- the BLU stats for the current frame results in a BLU intensity of 50%
- the global dimming gain for scaling up RGB values of next frame will be 2.0.
- the RGB values of the next frame will be doubled (e.g., multiplied by 2), but the BLU intensity for the backlight zones is reduced by 50%.
- some of the RGB values may be clipped at a certain value (e.g., 255). The amount of clipping may depend upon whether the aim is power saving or better visual quality, and the global dimming gain may be calculated accordingly.
- the GD/LD algorithm may calculate a new BLU intensity for a next or subsequent frame based on max RGB or gray values associated with BLU stats of the current frame.
- the GD/LD algorithm may compute the BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone.
- computing the BLU stats may include estimating a max RGB value for each backlight zone.
- An accumulated histogram is generated using the maximum gray values computed from the BLU stats. For a given percentile in the accumulated histogram, a threshold gray level value (e.g., 240) is taken.
- the threshold grayscale value may be converted into a new BLU intensity for the next or subsequent frame.
- the threshold may be converted into the new BLU intensity using a lookup table (LUT).
- the LUT may contain different BLU intensities corresponding to different threshold grayscale values.
- the GD/LD algorithm may use an appropriate LUT depending on whether its aim is power saving or better visual quality.
- a first LUT e.g., up-concave LUT
- a second LUT may be directed towards power savings as it results in a lower BLU intensity for a given threshold, which means a higher global dimming gain to scale up the RGB.
- the GD/LD algorithm may calculate a global dimming gain for scaling RGB values and adjusting backlight intensity of subsequent frame (e.g., frame n+1).
- the computed global dimming gain may be passed to the next or subsequent frame for processing.
- global dimming may be performed for a series of frames and iterations, where, at each iteration, RGB values and backlight intensity are globally adjusted for a current frame based on previous frame’s data (e.g., global dimming gain computed based on BLU stats of previous frame). Only the first frame in the series of frames is displayed according to its original RGB value.
- local dimming may also be performed at each iteration.
- a dramatic change in a global dimming gain (equivalently BLU intensity) from a previous global dimming gain may cause flickering. For example, if frames change dramatically from dark to bright, then it may cause flickering.
- a slow adaptation technique may be implemented using a queue or other techniques. Slow adaptation technique may be implemented based on the global dimming gains computed from previous frames and stored in a queue. The actual global dimming gain for the current frame under processing may be determined by taking an average value of all previous global dimming gains in the queue. With the slow adaptation technique discussed herein, flickering may be minimized. Also, depending on the size of the queue, flickering or amount of power save may be determined.
- any subject matter resulting from a deliberate reference back to any previous claims can be claimed as well, so that any combination of claims and the features thereof are disclosed and can be claimed regardless of the dependencies chosen in the attached claims.
- the subject-matter which can be claimed comprises not only the combinations of features as set out in the attached claims but also any other combination of features in the claims, wherein each feature mentioned in the claims can be combined with any other feature or combination of other features in the claims.
- any of the embodiments and features described or depicted herein can be claimed in a separate claim and/or in any combination with any embodiment or feature described or depicted herein or with any of the features of the attached claims.
- FIG. 1 A illustrates an example of global dimming.
- FIG. 1 B illustrates another example of global dimming.
- FIG. 2 illustrates example charts respectively showing RGB adjustment and BLU intensity adjustment for an image.
- FIG. 3 illustrates an example local dimming pipeline.
- FIG. 4 illustrates a modified pipeline for global dimming or a global dimming pipeline, in accordance with particular embodiments.
- FIG. 5 illustrates an example graph depicting an example correspondence between BLU intensities and gray levels.
- FIG. 6 illustrates example images depicting global dimming with different clipping levels.
- FIG. 7 illustrates example consecutive frames that may be displayed via a display system and on which global dimming may be performed.
- FIG. 8 illustrates an example slow adaptation technique to minimize artifacts associated with a plurality of frames.
- FIG. 9 illustrates an example method for global dimming, in accordance with particular embodiments.
- FIG. 10 illustrates an example of a display system.
- FIG. 11 illustrates an example network environment associated with a socialnetworking system, an augmented reality, or a virtual-reality system.
- FIG. 12 illustrates an example computer system.
- LD Local dimming
- LCD liquid crystal displays
- the LD technology ensures that the lights (e.g., backlight LEDs) with which the content is displayed are dimmed or completely turned off at specific moments so that a dark scene looks correct and black colors appear true black instead of gray.
- U.S. Patent Application No. 17/713,965, filed 05 April 2022 describes an improved local dimming pipeline (e.g., local dimming pipeline 300 shown in FIG. 3), technique, or algorithm for performing local dimming, especially for artificial-reality systems, such as AR/VR headsets.
- the LD algorithm (e.g., LD algorithm 321) computes backlight unit statistics (BLU stats) or backlight matrix without needing a specialized or dedicated hardware (e.g., a dedicated ASIC) as was required in a conventional or traditional pipeline for local dimming.
- the LD algorithm eliminates the feedback loop (e.g., sending the computed backlight matrix back to a graphics rendering source for RGB adjustments) of the conventional pipeline. Due to the elimination of the feedback loop, there is considerably low or no latency when displaying content, especially through AR/VR headsets.
- the LD algorithm eliminates RGB adjustments and need for additional hardware (e.g., dedicated ASIC) for the backlight computation, overall computational and/or power requirements are considerably reduced.
- the improved local dimming pipeline, technique, or algorithm achieves improved visual contrast with low power and latency requirements for low light regions or low gray levels (e.g., black regions in a display), however, it loses the capability to modulate backlight with RGB to achieve power savings for mid-gray contents (e.g., gray regions or mid-color regions in the display).
- the improved LD algorithm eliminates the feedback loop from a LD engine to a graphics engine for RGB adjustments, it loses the capability to adjust RGB to achieve power savings for midgray contents.
- a zone is a uniform 50% gray
- 100% backlight may need to be used to achieve target visual performance, as shown in FIG. 1A.
- This may not be power efficient especially for low- powered or resource-constrained devices, such as AR/VR devices.
- Power savings could be achieved by scaling the RGB to full white with 50% backlight on, as shown for example in FIG. 1 A.
- This is what global dimming does. That is, global dimming is a way to do both the RGB as well as backlight adjustments for power savings for mid-gray contents.
- RGB values e.g., LC transmittance
- FIGS. 1 A and 1 B More specifically, GD typically scales up RGB values and dim down the BLU intensity at the same time, so it may preserve visual quality while saving power consumption.
- FIG. 1A illustrates an example of global dimming.
- an example comparison is shown to illustrate the difference between a scenario 100 when no global dimming is used or applied and a scenario 120 when global dimming is applied.
- an image 102 is a uniform gray image with RGB values of 127 (e.g., R127, G127, B127).
- backlight unit (BLU) intensity is used to generate a display 106.
- RGB values of the input image 102 are scaled up to full white (e.g., R255, G255, B255), as indicated by reference numeral 122, and BLU intensity is reduced down to 50%, as indicated by reference numeral 124, to generate the same display 106.
- FIG. 1 B illustrates another example of global dimming. Similar to FIG. 1A, an example comparison is shown to illustrate the difference between a scenario 150 when no global dimming is applied and a scenario 160 when global dimming is applied.
- BLU intensity 100% (indicated by reference numeral 152) for an image 154 (without RGB adjustment) is used in orderto generate a display 156.
- BLU intensity is reduced to 70% (indicated by reference numeral 162) and RGB values of the image 154 are scaled up (indicated by reference numeral 164) to generate the same display 156.
- FIG. 2 illustrates example charts 210 and 220 respectively showing RGB adjustment and BLU intensity adjustment for an image 200.
- the most important point in global dimming is how to balance between scaling up RGB values and dimming down the BLU intensity.
- the image 200 mostly consists of mid or low gray values. This is represented by red histogram 212 in the chart 210.
- red histogram 212 in the chart 210.
- full BLU intensity of 100% may be used, as indicated by reference numeral 222.
- global dimming technique discussed herein may aggressively scale up RGB values, as shown by blue histogram 214. In return, it may reduce the BLU intensity considerably, as indicated by reference numeral 224.
- Particular embodiments discussed herein describes an efficient method, algorithm, and technique to perform global dimming in addition to local dimming.
- the technique for global dimming discussed herein is particularly suitable for artificial reality devices, such as AR/VR devices.
- the technique discussed herein is an extension to the local dimming pipeline, such as local dimming pipeline 300 shown in FIG. 3.
- local dimming pipeline 300 shown in FIG. 3.
- FIG. 3 illustrates an example local dimming pipeline 300.
- the pipeline 300 illustrates various operations performed by computing components of a display system (e.g., display system 1000) at various stages for local dimming.
- the pipeline 300 illustrates operations performed by a graphical processing unit (GPU) 302 and a central processing unit (CPU) 320 components of the display system, such as the artificial reality system 1000 shown in FIG. 10.
- GPU graphical processing unit
- CPU central processing unit
- a graphics rendering engine 303 of the GPU 302 of the display system may receive a RGB frame 304 from a particular source, such as a front-facing camera of the VR headset.
- Example frames that may be displayed through the VR headset are shown in FIG. 7.
- the graphics rendering engine discussed herein may be an asynchronous time warp (ATW) compositor that receives images (e.g., RGB frames) that are to be displayed to a user.
- the ATW compositor may make certain adjustments (e.g., move things around, distortion correction, aberration correction, etc.) to the images before displaying.
- the ATW compositor may ensure that the images to be displayed are at right places and compensate for any dropped frames.
- the graphics rendering engine 303 may store the RGB frame 304 in a front buffer 306.
- the front buffer 306 may be a dedicated memory or storage allocated to the GPU 302 for storing graphical content (e.g., images, videos, audio, frames, etc.).
- the GPU 302 may store the portion in a shared or mapped buffer 308.
- the GPU 302 may transfer the RGB frame 304 from the front buffer 306 to the mapped buffer 308 so that the CPU 320 may be able to process the RGB frame 304 to compute the backlight unit statistics (BLU stats) discussed herein.
- BLU stats backlight unit statistics
- the mapped buffer 308 may store a reduced resolution or downscaled version of the RGB frame 304.
- the mapped buffer 308 discussed herein may be a small resolution buffer that stores smaller/reduced resolution version of a RGB image for computing the BLU stats.
- Using the mapped buffer 308 is advantageous as it is computationally very efficient and cheap to compute the BLU stats by the CPU 320. For instance, the CPU 320 is required to perform computation for fewer pixels of a reduced RGB frame.
- a local dimming (LD) algorithm 321 running on the CPU 320 may receive the RGB frame 304 from the shared or mapped buffer 308 and perform a series of steps 322, 324, 326, and 328 in sequence to compute a backlight matrix 330.
- the first step 322 may be optional as the RGB frame 304 received from the mapped buffer 308 may already be downscaled. If it is not downscaled or further downscaling is needed, then in the first step 322, the LD algorithm 321 may generate a mipmap of the RGB frame 304. In some embodiments, generating the mipmap may include downscaling the resolution of the RGB frame 304 to a reduced resolution for efficient processing.
- the input resolution is significantly high and since there is no dedicated/specialized hardware (e.g., dedicated ASIC) for computing the backlighting like the traditional displays, the input resolution needs to be downscaled to a smaller resolution so that the RGB frame 304 may be processed with the CPU 320.
- the LD algorithm 321 may use 10x downscaling or 8x (e.g., 3 level) mip downsize to downscale the RGB frame 304.
- the value of downscaling may depend upon RGB resolution and number of backlight zones.
- the LD algorithm 321 may compute a zone statistic (also interchangeably referred to herein as BLU stats) for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone.
- the LD algorithm 321 may compute how bright a particular backlight zone is based on the RGB values of pixels within that zone.
- Each backlight zone may encompass a subset of pixels of the RGB frame 304. As an example and not by way of limitation, a backlight zone may encompass 100 pixels out of 1000 pixels that make up the RGB frame 304.
- the LD algorithm 321 may compute the BLU stats for a backlight zone by first averaging values of each of the RGB channels or color components across the pixels within the backlight zone and then taking a max value of the averaged RGB. Continuing the same 100 pixels example within the backlight zone, the LD algorithm 321 may compute an average R value by taking an average of the red value across the 100 pixels, an average G value by taking an average of the green value across the 100 pixels, and an average B value by taking an average of the blue value across the 100 pixels.
- the LD algorithm 321 may estimate the BLU stats for other backlight zones. In particular embodiments, the LD algorithm 321 estimates these BLU stats for the backlight zones so that a particular color may be displayed with its intended brightness and only those backlight zones whose BLU stats are equal to or lower than a certain threshold may be dimmed, as discussed in further detail below in step 326. For example, if there is a bright blue in a scene (e.g., represented by the RGB frame 304), then that bright blue may be displayed as is without any adjustment.
- the LD algorithm 321 may perform level mapping, which including mapping the zone statistics computed in step 324, for each backlight zone, to a brightness and/or dimming value using a particular technique.
- the brightness and/or dimming value for a backlight zone may correspond to a BLU intensity with which to power a particular LED in that zone. For example, if the brightness values are given between 0-100 and a brightness value for a zone is given 50, then BLU intensity of 50% is used to lighten up that zone.
- the LD algorithm 321 may use a custom-built lookup table (LUT) to map the statistics or BLU stats to a brightness value.
- LUT custom-built lookup table
- the lookup table may include predetermined brightness and/or dimming values corresponding to different BLU stats (e.g., max values) and the LD algorithm 321 may use this data to map each of the statistic or BLU stat associated with a backlight zone to a corresponding brightness/dimming value indicated in the lookup table.
- the LD algorithm 321 may also perform the level mapping 326 using a machine learning (ML) technique.
- ML machine learning
- a trained ML model may output brightness and/or dimming values corresponding to specific statistics/BLU stats.
- the ML model may be trained based on ground-truth statistics and their corresponding ground-truth brightness and/or dimming values.
- the LD algorithm 321 may use a gamma curve for low brightness zones (e.g., zones with low/dark gray levels) and saturate at certain threshold (e.g., max value less than or equal to 20). Stated differently, the LD algorithm 321 may find backlight zones whose max value is less than the certain threshold and only dim those zones to a particular brightness value using the lookup table. For instance, the backlight zones corresponding to dark or low gray levels in the RGB frame 304 may be dimmed by their corresponding brightness/dimming values in the lookup table, whereas medium and high gray levels may be left untouched or unadjusted.
- certain threshold e.g., max value less than or equal to 20
- the RGB does not need to be adjusted in the case of the local dimming pipeline 300.
- the local dimming pipeline 300 may not be able to achieve power savings for mid-gray contents. For example, if a zone is a uniform 50% gray (e.g., RGB values of 127), since RGB is not adjusted, 100% BLU intensity may be used to lit the zone and this may not be power efficient for low-powered or resource-constrained devices, such as AR/VR devices.
- global dimming e.g., adjusting both the RGB as well as backlight intensity
- a modified pipeline 400 for global dimming or global dimming pipeline 400 is shown and discussed in reference to at least FIG. 4.
- the level mapping step 326 may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones.
- Simply displaying based on the backlight matrix produced after the level mapping 326 may be prone to some artifacts.
- artifacts may include, for example and without limitation, backlight flickering artifacts due to head motion or moving objects in VR, over-dimming artifacts, and halo effects (e.g., light falling into darker areas surrounding an object, such as area around a bright moon that should actually be dark).
- the LD algorithm 321 may perform post filtering on the initial backlight matrix produced after the level mapping step 326 in order to correct one or more artifacts discussed above.
- the post filtering 328 may include the LD algorithm 321 spatially as well as temporally filtering or smoothening the brightness values in the initial backlight matrix to minimize the one or more artifacts.
- the LD algorithm 321 may perform the spatial filtering by using a spatial dilation and/or gaussian blur to minimize halo and over-dimming artifacts in the initial backlight matrix.
- the LD algorithm 321 may perform the temporal filtering by using recursive temporal averaging to remove backlight flickering artifacts occurring due to head motion or moving objects, especially in VR.
- the LD algorithm 321 Responsive to performing the last step i.e., post filtering 328 (e.g., spatial- temporal filtering), the LD algorithm 321 generates a final backlight matrix 330.
- the backlight matrix 330 may indicate by what amount (e.g., percentage) each backlight zone should be lit or dimmed by a BLU driver 332.
- the BLU driver 332 may output a backlight intensity 336 (e.g., brightness levels) for one or more LEDs of a display component.
- outputting the backlight intensity 336 may include the BLU driver 332 turning on/off a subset of LEDs in the display component.
- the backlight intensity 336 may include the BLU driver 332 dimming a brightness level of the subset of LEDs corresponding to low/dark gray level regions of the RGB frame 304.
- One or more backlight unit ICs (BLU-IC) 340 may be configured to control the backlight based on the backlight intensity 336 output by the BLU driver 332.
- a BLU-IC 340 may receive the backlight intensity information from the BLU driver 332 via a communication interface/bus, such as a serial peripheral interface (SPI).
- SPI serial peripheral interface
- a display processing unit (DPU) 334 may receive the RGB frame 304 from the front buffer 306 and may perform one or more post-processing steps on the RGB frame 304 to remove one or more artifacts or further improve image quality. It should be noted that the post-processing steps performed by the DPU 334 are not related to the local dimming discussed herein and these steps may only be performed to correct some artifacts resulting from certain components (e.g., optics, lens) of the display system.
- an image may be distorted due to lens distortions or chromatic aberrations resulting from light passing through optics (e.g., lens) of the VR headset and therefore, the DPU 334 may perform one or more post-processing steps on the RGB frame 304 to correct these lens distortions or effects of chromatic aberrations.
- optics e.g., lens
- the DPU 334 may output a display RGB 338.
- a display 350 may be generated.
- a set of integrated circuits (ICs) may be configured to generate the display 350 (e.g., output an image) based on the RGB frame output by the DPU 334 and the backlight intensity output by the BLU driver 332.
- ICs integrated circuits
- one or more display driver ICs (DDIC) 342 may be configured to control display panel(s) and produce a rich and vibrant display based on the display RGB 338 output by the DPU 334.
- a DDIC 342 may receive the RGB information 338 from the DPU 334 via a communication layer or interface, such as C-PHY.
- One or more backlight unit ICs (BLU-IC) 340 may be configured to control the backlight based on the backlight intensity 336 output by the BLU driver 332.
- a BLU-IC 340 may receive the backlight intensity information from the BLU driver 332 via a communication interface/bus, such as a serial peripheral interface (SPI).
- the resulting display 350 or image i.e., RGB + backlight
- the resulting image may be presented on a screen of the display system.
- the resulting image may be presented on a VR headset’s display.
- the local dimming pipeline 300 discussed above may be extended to perform global dimming to achieve additional power savings, especially for mid grayscale or mid gray level content.
- one or more components may be added and/or adjusted in the existing local dimming pipeline 300 to perform global dimming.
- One such modified pipeline capable of performing global dimming in addition to local dimming is shown and discussed with respect to FIG. 4.
- data associated with BLU stats of a previous frame is used to adjust RGB frame and BLU intensity for current frame.
- T1 is the first frame
- T2 is the second frame
- T3 is the third frame in a sequence of frames to be displayed
- data associated with BLU stats of the T1 frame is used to adjust the RGB values and backlight intensity for displaying the T 2 frame
- data associated with BLU stats of the T 2 frame is used to adjust the RGB values and backlight intensity for displaying the T 3 frame.
- the first frame T1 may be displayed at its original RGB value.
- the backlight intensity may still be adjusted, particularly in the low-level grayscale regions for local dimming, as discussed above for example in reference to FIG. 3. Detailed description with respect to how global dimming is performed is now discussed in reference to FIG. 4.
- FIG. 4 illustrates a modified pipeline 400 for global dimming or a global dimming pipeline 400.
- the global dimming pipeline 400 here is described with respect to two image frames 402a (frame n-1) and 402b (frame n), it should be understood that the pipeline 400 is not by any way limited to these frames and any number of image frames are possible and within the scope of the present disclosure.
- some of the reference numerals have been kept same throughout this disclosure for consistency, ease of understanding, and to refer to the same entities, components, and/or elements that have already been discussed and therefore, may not be repeated in its entirety again. However, the entities, components, and/or elements represented by these same reference numerals are not by any way limited to the scope or functionality discussed earlier and may incorporate additional scope or functionality.
- the frame 402a may come from a particular source, such as a front-facing camera of a VR headset.
- the graphics rendering engine 303 may be an ATW compositor that receives images (e.g., RGB frames 402a, 402b, ..., 402n) that are to be displayed to a user.
- the ATW compositor may make certain adjustments (e.g., move things around, distortion correction, aberration correction, etc.) to the images before displaying.
- the ATW compositor may ensure that the images to be displayed are at right places and compensate for any dropped frames.
- the first RGB frame 402a may be stored as is and without any adjustments in the front buffer 306.
- the DPU 334 may receive the RGB frame 402a from the front buffer 306 and may perform one or more post-processing steps discussed earlier on the RGB frame 402a to remove one or more artifacts or further improve image quality.
- the DPU 334 may output a display RGB 422a, which may be used along with backlight intensity 420a to generate a display 430a, as discussed in further detail below.
- the GPU 302 may store the portion in a shared or mapped buffer 308. For instance, the GPU 302 may transfer the RGB frame 402a from the front buffer 306 to a reduced resolution mapped buffer 308 so that the CPU 320 may be able to efficiently process the RGB frame 402a to compute BLU stats. Prior to storing the RGB frame 402a in the mapped buffer 308, the RGB frame 402a may be downscaled (e.g., Blit) for efficient processing by the CPU 320.
- the input resolution of the RGB frame 402a may be downscaled (e.g., 10x downscaling or 8x) to a smaller resolution so that the RGB frame 402a may be processed by the CPU 320 in a way that it reduces computational costs.
- the value of downscaling may depend upon RGB resolution and number of backlight zones.
- the RGB frame 402a may be segmented into separated image block (e.g., 504 blocks) for processing by the CPU 320.
- a global dimming (GD) and local dimming (LD) algorithm 410 (also interchangeably herein referred to as GD/LD algorithm 410) running on the CPU 320 may receive the reduced resolution RGB frame 402a’ from the mapped buffer 308.
- the GD/LD algorithm 410 may perform a series of steps 412a, 414a, 416a, and 418a to compute a backlight intensity for backlight zones (e.g., LEDs) and a global dimming gain or scale factor for next frame 402b (e.g., frame n).
- the GD/LD algorithm 410 may be configured to compute brightness level and maximum gray level of each image block for local dimming and global dimming in parallel for a better computation efficiency. Also, this computation may be carried out at multiple image blocks concurrently. It should be noted that although a downscaling step (e.g., downscale step 322 of FIG. 3) is not shown in the global dimming pipeline 400, the downscaling step may also be included and performed prior to backlight stats estimation step 412a.
- a downscaling step e.g., downscale step 322 of FIG. 3
- the GD/LD algorithm 410 may perform downscaling similar to the downscaling discussed in the downscale step 322 prior to the backlight stats estimation 412a.
- the GD/LD algorithm 410 may compute BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone.
- backlight stats estimation 412a may include estimating a max RGB value for each backlight zone, such as max RGB values shown in matrix 325 of FIG. 3.
- the BLU stats may be calculated based on original RGB values associated with a RGB frame. More specifically, the BLU stats are calculated based on original RGB values of the frame that was received by the graphics rendering engine 303 and not based on adjusted RGB values (e.g., scaled up RGB values due to global dimming).
- the BLU stats are estimated directly based on corresponding RGB values associated with the reduced resolution RGB frame 402a’.
- a RGB frame is adjusted (e.g., RGB values of frame are scaled up) as discussed in subsequent frames (e.g., frame n, n+1 , etc.)
- the RGB frame needs to be re-adjusted or re-scaled back to its original RGB values priorto estimating the BLU stats.
- An adjusted RGB frame (e.g., RGB values scaled up) may be re-adjusted back to its original RGB values based on global dimming gain or scale factor. This is further discussed in detail below with respect to backlight stats estimation step 412b performed for next frame 402b (e.g., frame n).
- the GD/LD algorithm 410 may perform global dimming gain calculation 414a and level mapping 416a. In some embodiments, steps 414a and 416a may be performed in parallel. In other embodiments, steps 414a and 416a may be performed in a sequential manner (i.e., one after the other). In the level mapping step 416a, the GD/LD algorithm 410 may map the zone statistics (e.g., BLU stats) computed in step 412a, for each backlight zone, to a brightness and/or dimming value using a particular technique.
- zone statistics e.g., BLU stats
- the brightness and/or dimming value for a backlight zone may correspond to a BLU intensity with which to power a particular LED in that zone. For example, if the grayscale values are given between 0-100 and a grayscale value for a zone is given 50, then BLU intensity of 60% is used to lighten up that zone.
- the BLU intensity with which the current frame 402a is displayed may depend upon global dimming gain and corresponding BLU intensity calculated based on previous frame’s BLU stats. Since there is no previous frame before the current frame 402a, the GD/LD algorithm 410 may calculate the BLU intensity forthe current frame 402a using a custom-built lookup table (LUT).
- LUT custom-built lookup table
- the GD/LD algorithm 410 may use the LUT to map the statistics or BLU stats to a brightness value or backlight intensity.
- the lookup table may include predetermined brightness and/or dimming values corresponding to different BLU stats (e.g., max values) and the GD/LD algorithm 410 may use this data to map each of the statistic or BLU stat associated with a backlight zone to a corresponding brightness/dimming value indicated in the lookup table.
- the GD/LD algorithm 410 may use a gamma curve for low brightness zones (e.g., zones with low/dark gray levels) and saturate at certain threshold (e.g., max value less than or equal to 20). Stated differently, the GD/LD algorithm 410 may find backlight zones whose max grayscale value (e.g., max RGB value) in the BLU stats is less than the certain threshold and only dim those zones to a particular brightness value using the lookup table. For instance, the backlight zones corresponding to dark or low gray levels may be dimmed by their corresponding brightness/dimming values in the lookup table, whereas medium and high gray levels may be left untouched.
- max grayscale value e.g., max RGB value
- the level mapping step 416a may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones.
- the initial backlight matrix may be representative of a BLU intensity with which to display the current frame 402a.
- Simply displaying based on the initial backlight matrix produced after the level mapping 416a may be prone to some artifacts (e.g., backlight flickering artifacts, over-dimming artifacts, halo effects, etc.).
- the GD/LD algorithm 410 may perform post filtering on the initial backlight matrix produced after the level mapping step 416a in order to correct one or more artifacts, as discussed elsewhere herein.
- the post filtering 418a may include the GD/LD algorithm 410 spatially as well as temporally filtering or smoothening the brightness values in the initial backlight matrix to minimize the one or more artifacts.
- the GD/LD algorithm 410 may perform the spatial filtering by using a spatial dilation and/or gaussian blur to minimize halo and overdimming artifacts in the initial backlight matrix.
- the GD/LD algorithm 410 may perform the temporal filtering by using recursive temporal averaging to remove backlight flickering artifacts occurring due to head motion or moving objects, especially in VR.
- the GD/LD algorithm 410 Responsive to performing the post filtering 418a (e.g., spatial-temporal filtering), the GD/LD algorithm 410 generates a final backlight matrix. Based on the final backlight matrix, a BLU driver (e.g., BLU driver 332) may output a backlight intensity 420a (e.g., brightness levels) that is used along with the display RGB 422a to generate the display 430a.
- the resulting display 430a i.e., RGB + backlight
- the GD/LD algorithm 410 may calculate a new BLU intensity for a subsequent/next frame (e.g., frame 402b or frame n) and a corresponding global dimming scale or gain factor to scale RGB values of the subsequent frame based on the BLU intensity.
- computations for global dimming discussed herein may be done in a time frame between two consecutive frames.
- the computations for global dimming e.g., scaling up RGB values
- the GD/LD algorithm 410 may calculate the global dimming scale or gain factor (Gain G o) for the subsequent frame based on following equation:
- the global dimming gain or scale factor to scale up RGB values is inversely proportional to the new BLU intensity. That is, the global dimming gain value increases with decreasing BLU intensity.
- the image statistics e.g., BLU stats
- the global dimming gain for scaling up RGB values of next frame 402b will be 2.0.
- the RGB values of the next frame 402b will be multiplied by 2 but the BLU intensity for the backlight zones is reduced by 50%.
- the new backlight intensity calculated for the next frame may be different from backlight intensity 420a that is used for displaying the current frame (e.g., frame 402a).
- the backlight intensity computed for the next frame e.g., frame 402b
- the backlight intensity used for the current frame e.g., frame 402a
- the GD/LD algorithm 410 may calculate the new backlight intensity for the next or subsequent frame (e.g., frame 402b or frame n) based on max RGB or gray values computed in the BLU stats estimation step 412a for the current frame (e.g., frame 402a or frame n-1).
- An accumulated histogram is generated using the maximum gray values computed from the BLU stats estimated step 412a.
- One such histogram 212 is shown for example in FIG. 2.
- a threshold gray level value (e.g., 240) is taken. Stated differently, the threshold could be chosen using the accumulated histogram by setting a target percentile.
- the target percentile for choosing the threshold may be determined in a heuristic way or what global dimming really aims at. For instance, the target percentile may be determined based on whether the goal is power saving or better visual quality.
- a particular lookup table (LUT) may be used for achieving the specific goal. For example, if the goal is better visual quality, then an up-concave LUT that is more conservative than a linear LUT may be used to determine the target percentile for choosing the threshold.
- a max value of all RGB values in the BLU stats may be used to choose the threshold. This may avoid clipping (e.g., RGB values saturating at a certain value such as 255), but this also may limit the power saving amount.
- the threshold grayscale value may be converted into a new BLU intensity for the next or subsequent frame.
- the threshold may be converted into the new BLU intensity using a LUT.
- the LUT may contain different BLU intensities corresponding to different threshold grayscale values.
- FIG. 5 One such example correspondence between the different BLU intensities and grayscale values is shown in FIG. 5.
- the LUT may contain a BLU intensity of 30% for threshold grayscale value of 75, a BLU intensity of 50% for threshold grayscale value of 127, a BLU intensity of 75% for threshold gray value of 200, a BLU intensity of 100% for threshold grayscale value of 255, etc.
- the GD/LD algorithm 410 may use the LUT for determining a BLU intensity corresponding to the threshold it has calculated earlier.
- different LUTs may contain varying or different BLU intensities for a same threshold grayscale value and the GD/LD algorithm 410 may use an appropriate LUT depending on whether its aim is power saving or better visual quality.
- a first LUT e.g., up-concave LUT
- a second LUT e.g., linear LUT
- FIG. 5 illustrates an example graph 500 depicting an example correspondence between BLU intensities and gray levels.
- the example correspondence depicted here may be according to a particular lookup table.
- the BLU intensity varies from 0-100, where 0 is the least/no BLU intensity and 100 is the highest BLU intensity.
- the BLU intensities are depicted in the Y-axis of the graph 500.
- the gray levels (0-255) have been normalized to range between 0-100, where 0 may represent a black image, 50 may represent a gray image, and 100 may represent a fully white image.
- the normalized gray levels are depicted in the X- axis of the graph 500. As depicted, the BLU intensity increases linearly with increasing normalized gray scale level.
- the BLU intensity may be different or behave differently for the same gray level according to a different LUT, as discussed above.
- the BLU intensity that may be used for a frame is 55%, as indicated by reference numeral 502.
- clipping level is set to 10%, which basically means that 10% of RGB values in an image frame may be clipped at a certain value (e.g., max RGB value of 255) when the RGB values are scaled up according to the global dimming gain that is calculated based on the 55% BLU intensity using equation (1).
- the amount of clipping depends on the target percentile that is chosen for the threshold grayscale. Also, the amount of clipping may generally increase with decreasing BLU intensity. More specifically, if the BLU intensity is low, then using equation (1), the global dimming gain by which the RGB values are scaled up will be high and therefore, there are high chances of more RGB values being clipped. As an example, if the BLU intensity is 50%, then using equation (1) above, the global dimming gain will be 2, which is used to scale up the RGB values of a frame by a factor of 2 (i.e., multiplying RGB values by 2).
- the original RGB values are already in higher range (e.g., 100-200), then a lot of values when scaled up will be clipped at a certain value (e.g., 255). Although, the reduced backlight intensity and corresponding large amount of clipping may achieve power savings, but the large amount of clipping may also lead to visual artifacts.
- the backlight intensity is high (e.g., 90%)
- the RGB values are only scaled up by a small amount (e.g., scaled up by 1.11 based on 90% BLU intensity). This may prevent clipping and achieve better visual quality, but on the downside may not be very power efficient as 90% backlight intensity is used to generate a display. Therefore, the new BLU intensity and corresponding global dimming gain may be computed based on whether the aim is power saving or better visual quality, and target percentile and LUT for the computation may be chosen accordingly.
- FIG. 6 illustrates example images 602, 604, 606, and 608 depicting global dimming with different clipping levels.
- image 602 is an original image i.e. , image with original RGB values and without any readjustments.
- the image 602 includes an area 603 with a group of high gray levels. These high gray levels may be clipped or converged to a certain value (e.g., 255) depending on a certain threshold.
- Image 604 is a readjusted image with 5% clipping and power saving of 15%.
- Image 606 is a readjusted image with 15% clipping and power saving of 24%.
- Image 608 is a readjusted image with 30% clipping and power saving of 36%.
- a global dimming gain 440a may be accordingly calculated using the equation (1) above.
- the global dimming gain 440a may then be passed to the next or subsequent frame 402b.
- the global dimming gain 440a may be passed to the GPU 302 for RGB adjustment as well as to the CPU 320 for backlight intensity adjustment.
- global dimming gain 440a global dimming may be performed for the next frame i.e., frame n or RGB frame 402b. The global dimming is now discussed below with respect to the frame 402b.
- the graphics rendering engine 303 may receive a second RGB frame 402b.
- the second RGB frame 402b may come after the first RGB frame 402a.
- the graphics rendering engine 303 may also receive the global dimming gain 440a, which has been calculated based on BLU stats of the previous frame 402a.
- the graphics rendering engine 303 may adjust the RGB values of the second frame 402b to generate an adjusted RGB frame 404b.
- adjusting the RGB values may include scaling up the RGB values of the second frame 402b.
- the second RGB frame 402b is a uniform gray image (e.g., RGB average value of 127) and the global dimming gain is 2, then all the RGB values of the frame 402b are globally scaled up by multiplying the RGB values by 2 (e.g., RGB values scaled up to 254). Stated differently, if the global dimming scalar or gain is 2, then all the RGB values are doubled in the linear RGB domain.
- the global dimming gain for the first frame e.g., 402a or frame n-1) is 1 , meaning that RGB values of the first frame do not change.
- ATW compositor and scaling up RGB are computationally expensive. As such, they are incorporated into a single process.
- some of the RGB values may be clipped at a certain value when scaled up.
- the amount of clipping may depend on whether one wants more power save or better visual quality. Different LUTs may be utilized depending on how much clipping (e.g., power save) is desired. For instance, a up-concave LUT is more conservative and may prevent clipping than a linear LUT because for a given normalized gray level, the up-concave LUT may result in a higher BLU intensity (e.g., meaning a low global dimming gain).
- the graphics rendering engine 303 may store adjusted GB frame 404b (e.g., frame with scaled up RGB values) in the front buffer 306.
- the DPU 334 may receive the adjusted RGB frame 404b from the front buffer 306 and may perform one or more postprocessing steps, as discussed elsewhere herein.
- the DPU 334 may output an adjusted display RGB 422b, which may be used along with adjusted backlight intensity 420b to generate a display 430b.
- the GPU 302 may transfer the adjusted RGB frame 404a from the front buffer 306 to the mapped buffer 308 so that the CPU 320 may be able to efficiently process the adjusted RGB frame 404a to compute BLU stats for current frame.
- the adjusted RGB frame 404b may be downscaled for efficient processing by the CPU 320.
- the GD/LD algorithm 410 running on the CPU 320 may receive a reduced resolution version of the adjusted RGB frame 404b from the mapped buffer 308.
- the CPU 320 may also receive the global dimming gain 440a (computed based on previous frame 402a), as indicated by reference numeral 450.
- the CPU 320 and/or the GD/LD algorithm 410 may use the global dimming gain 440a fortemporal filtering to minimize certain artifacts (e.g., flickering artifacts).
- the current frame e.g., frame n
- previous frame e.g., frame n-1
- the GD/LD algorithm 410 may perform temporal filtering based on the global dimming gain 440a calculated based on previous frame stats or data. [0091] In the backlight stats estimation step 412b, the GD/LD algorithm 410 may compute BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone. As discussed elsewhere herein, the backlight stats estimation 412b may include estimating a max RGB value for each backlight zone.
- the BLU stats may be calculated based on original RGB values associated with the RGB frame 402b. More specifically, the BLU stats are calculated based on original RGB values of the frame 402b that was received by the graphics rendering engine 303 and not based on adjusted RGB values associated with the adjusted RGB frame 404b received from the mapped buffer 308. To obtain the original RGB values, the GD/LD algorithm 410 upon receiving the adjusted RGB frame 404b may re-scale the RGB values associated with the adjusted RGB frame 404b by dividing the RGB values of the adjusted RGB frame 404b by the global dimming gain 440a. As an example, if the global dimming gain is 2, then the RGB values are divided by 2 to obtain the original RGB values for the adjusted RGB frame 404b.
- the GD/LD algorithm 410 may perform global dimming gain calculation 414b and level mapping 416b, as discussed elsewhere herein.
- the global dimming gain 440a may be incorporated into the level mapping 416b.
- the BLU intensity may be determined using equation (1) discussed above.
- the actual BLU intensity for the current frame e g., frame n
- This BLU intensity may be incorporated into the level mapping 416b to ensure that brightness and/or dimming values that are calculated in the level mapping 416b are adjusted according to this BLU intensity.
- brightness values or backlight intensity that is computed in the level mapping 416b for the current frame e.g., 402b or frame n
- the level mapping 416b for the current frame e.g., 402b or frame n
- the level mapping step 416b may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones.
- the initial backlight matrix may be representative of a BLU intensity with which to display the current frame 402b.
- Simply displaying based on the initial backlight matrix produced after the level mapping 416b may be prone to some artifacts (e.g., backlight flickering artifacts, over-dimming artifacts, halo effects, etc.).
- the GD/LD algorithm 410 may perform post filtering (e.g., spatial-temporal filtering) on the initial backlight matrix produced after the level mapping step 416a in order to correct one or more artifacts, as discussed elsewhere herein. Responsive to performing the post filtering 418b, the GD/LD algorithm 410 generates a final backlight matrix. Based on the final backlight matrix, a BLU driver (e.g., BLU driver 332) may output an adjusted backlight intensity 420b (e.g., backlight intensity globally adjusted based on global dimming gain received from previous frame) that is used along with the adjusted display RGB 422b to generate the display 430b.
- post filtering e.g., spatial-temporal filtering
- the GD/LD algorithm 410 may calculate a new BLU intensity for a subsequent/next frame (e.g., frame n+1) and a corresponding global dimming scale or gain 440b to scale RGB values of the subsequent frame based on the new BLU intensity.
- the GD/LD algorithm may compute the new BLU intensity based on selecting a threshold for a target percentile and then converting the threshold to the BLU intensity using a specific LUT. More specifically, an accumulated histogram is generated using the maximum gray values computed from the backlight stats estimation step 412b. For a given percentile, threshold may be taken.
- This threshold may be converted into a new BLU intensity using a LUT, as shown for example in FIG. 5.
- the global dimming gain 440b for scaling RGB values and adjusting backlight intensity of subsequent frame (e.g., frame n+1) may be calculated.
- the global dimming gain 440b may be calculated using equation (1) discussed above.
- the computed global dimming gain 440b is then passed to the next or subsequent frame for processing the next frame.
- global dimming may be performed for a series of frames and iterations, where, at each iteration, RGB values and backlight intensity are globally adjusted for a current frame based on previous frame’s data (e.g., global dimming gain computed based on BLU stats of previous frame). Only the first frame in the series of frames is displayed according to its original RGB value.
- local dimming (discussed with respect to FIG. 3) may also be performed at each iteration.
- a dramatic change in a global dimming gain may cause flickering.
- FIG. 7 illustrates three example consecutive frames To, T-i, and T 2 that may be displayed via a display system, such as display system 1000.
- Global dimming discussed herein may be performed on these frames. As shown in FIG. 7, the frames To, Ti, and T 2 change dramatically from dark (as shown in frame To) to bright (as shown in frame T 2 ). This may cause flickering.
- a slow adaptation technique may be implemented using a queue or other techniques.
- Slow adaptation technique may be implemented based on the global dimming gains computed from previous frames and stored in a queue, as shown for example in FIG. 8. So, the actual global dimming gain for the current frame under processing may be determined by taking an average value of all previous global dimming gains in the queue.
- FIG. 8 illustrates an example slow adaptation technique to minimize artifacts associated with a plurality of frames.
- FIG. 8 illustrates an example queue 800 to store global dimming gains associated with the plurality of frames To, Ti, T 2 , T 3 , and T N .
- slow adaptation technique may be implemented to minimize artifacts, such as flickering artifacts.
- the GD/LD algorithm 410 may calculate a global dimming gain of 2.00 to adjust the RGB values and backlight intensity of second frame T-i.
- the computed global dimming gain is stored in the queue 800.
- the GD/LD algorithm 410 may calculate a global dimming gain of 1.7 based on the previous frame T1 data. Instead of using the global dimming gain of 1.7, an average of current global dimming gain of 1.7 and previous global dimming gain(s) (e.g., 2) may instead be taken to determine a global dimming gain of 1 .85 to use forthe current frame i.e., T 2 .
- the GD/LD algorithm 410 may calculate a global dimming gain of 0.5 based on the previous frame T 2 data.
- an average of current global dimming gain of 0.5 and previous global dimming gains may be taken to determine a global dimming gain of 1.40 to use for the current frame i.e., T 3 .
- an average global dimming gain of 1.1 may be computed for frame TN.
- flickering may be minimized.
- flickering or amount of power save may be determined depending on the size of the queue (e.g., queue 800).
- the size of a queue that is used for slow adaptation technique may vary.
- VR devices e.g., display system 1000
- the severity of flickering artifacts may also increase.
- higher the frame rate higher are the changes of severe flickering artifacts. Therefore, depending on the frame rate of the device (e.g., display system 1000), the queue size (or the speed of slow adaptation) may be varied. For instance, if the frame rate increases, the queue size may also increase to minimize the flickering. But, at low frame rates, the queue size may decrease to achieve more power savings.
- FIG. 9 illustrates an example method 900 for global dimming, in accordance with particular embodiments.
- the method may begin at step 910, where a computing system may receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones.
- the sequence of image frames may be consecutive image frames, as shown, for example, frames To, T1, and T 2 in FIG. 7.
- Each of the sequence of image frames may include a plurality of color components, such as RGB color components or channels.
- the display may be associated with an artificial reality system, such as the artificial reality system 1000 shown in FIG. 10.
- the artificial reality system may be a virtual reality headset.
- the computing system may compute backlight unit statistics (i.e., BLU stats) of the first image frame.
- the backlight unit statistics may represent grayscale levels (e.g., RGB values) for the plurality of backlight zones.
- computing the backlight unit statistics may include computing, for each color component of a plurality of color components (e.g., RGB color components) in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones and then determining, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components, as discussed for example in the backlight stats estimation step 412a in FIG. 4.
- the computing system may compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame.
- computing the global dimming gain may include generating an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determining, for a target percentile in the accumulated histogram, a threshold grayscale value; converting the threshold grayscale value to a particular backlight unit intensity using a lookup table; and computing the global dimming gain using the particular backlight unit intensity, as discussed for example in the global dimming gain calculation step 414a in FIG. 4.
- the global dimming gain is inversely proportional to the particular backlight unit intensity, as shown in the equation (1) discussed herein.
- the computing system may adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
- adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame may include scaling up RGB color values of the second image frame and reducing the backlight unit intensity of the plurality of backlight zones for displaying the second image frame, as discussed for example with respect to RGB frame 402b in FIG. 4.
- Particular embodiments may repeat one or more steps of the method of FIG. 9, where appropriate.
- this disclosure describes and illustrates particular steps of the method of FIG. 9 as occurring in a particular order, this disclosure contemplates any suitable steps of the method of FIG. 9 occurring in any suitable order.
- this disclosure describes and illustrates an example method for global dimming, including the particular steps of the method of FIG. 9, this disclosure contemplates any suitable method for global dimming, including any suitable steps, which may include a subset of the steps of the method of FIG. 9, where appropriate.
- this disclosure describes and illustrates particular components, devices, or systems carrying out particular steps of the method of FIG. 9, this disclosure contemplates any suitable combination of any suitable components, devices, or systems carrying out any suitable steps of the method of FIG.
- FIG. 10 illustrates an example of a display system, in particular, an artificial reality system 1000 worn by a user 1002.
- the display system or the artificial reality system 1000 may be used to implement some of the embodiments/examples disclosed herein.
- the artificial reality system 1000 may be configured to operate as a virtual reality display, an augmented reality display, and/or a mixed reality display.
- the artificial reality system 1000 may comprise a head-mounted device (“HMD”) 1004, a controller 1006, and a computing system 1008.
- the HMD 1004 may be worn over the user’s eyes and provide visual content (e.g., VR or AR content) to the user 1002 through internal displays (not shown).
- the HMD 1004 may have two separate internal displays, one for each eye of the user 1002. As illustrated in FIG. 10, the HMD 1004 may completely cover the user’s field of view. By being the exclusive provider of visual information to the user 1002, the HMD 1004 achieves the goal of providing an immersive artificial-reality experience.
- the HMD 1004 may have external-facing cameras, such as the two forwardfacing cameras 1005A and 1005B shown in FIG. 10. While only two forward-facing cameras 1005A-B are shown, the HMD 1004 may have any number of cameras facing any direction (e.g., an upward-facing camera to capture the ceiling or room lighting, a downward-facing camera to capture a portion of the user’s face and/or body, a backward-facing camera to capture a portion of what’s behind the user, and/or an internal camera for capturing the user’s eye gaze for eye-tracking purposes).
- the external-facing cameras are configured to capture the physical environment around the user and may do so continuously to generate a sequence of frames (e.g., as a video).
- the 3D representation may be generated based on depth measurements of physical objects observed by the cameras 1005A-B. Depth may be measured in a variety of ways. In particular embodiments, depth may be computed based on stereo images. For example, the two forward-facing cameras 1005A-B may share an overlapping field of view and be configured to capture images simultaneously. As a result, the same physical object may be captured by both cameras 1005A-B at the same time. For example, a particular feature of an object may appear at one pixel PA in the image captured by camera 1005A, and the same feature may appear at another pixel PB in the image captured by camera 1005B.
- the depth measurement system could use triangulation techniques to compute the depth of the observed feature. For example, based on the camera 1005A’s position within a 3D space and the pixel location of p A relative to the camera 1005A’s field of view, a line could be projected from the camera 1005A and through the pixel p A . A similar line could be projected from the other camera 1005B and through the pixel p B . Since both pixels are supposed to correspond to the same physical feature, the two lines should intersect. The two intersecting lines and an imaginary line drawn between the two cameras 1005A and 1005B form a triangle, which could be used to compute the distance of the observed feature from either camera 1005A or 1005B or a point in space where the observed feature is located.
- the pose (e.g., position and orientation) of the HMD 1004 within the environment may be needed.
- the system 1000 would need to determine his position and orientation at any moment. Based on the pose of the HMD, the system 1000 may further determine the viewpoint of either of the cameras 1005A and 1005B or either of the user’s eyes.
- the HMD 1004 may be equipped with inertial-measurement units (“IMU”).
- IMU inertial-measurement units
- SLAM simultaneous localization and mapping
- the artificial reality system 1000 may further have one or more controllers 1006 that enable the user 1002 to provide inputs.
- the controller 1006 may communicate with the HMD 1004 or a separate computing unit 1008 via a wireless or wired connection.
- the controller 1006 may have any number of buttons or other mechanical input mechanisms.
- the controller 1006 may have an IMU so that the position of the controller 1006 may be tracked.
- the controller 1006 may further be tracked based on predetermined patterns on the controller.
- the controller 1006 may have several infrared LEDs or other known observable features that collectively form a predetermined pattern.
- the system 1000 may be able to capture an image of the predetermined pattern on the controller. Based on the observed orientation of those patterns, the system may compute the controller’s position and orientation relative to the sensor or camera.
- the artificial reality system 1000 may further include a computer unit 1008.
- the computer unit may be a stand-alone unit that is physically separate from the HMD 1004 or it may be integrated with the HMD 1004. In embodiments where the computer 1008 is a separate unit, it may be communicatively coupled to the HMD 1004 via a wireless or wired link.
- the computer 1008 may be a high-performance device, such as a desktop or laptop, or a resource-limited device, such as a mobile phone.
- a high-performance device may have a dedicated GPU and a high-capacity or constant power source.
- a resource-limited device on the other hand, may not have a GPU and may have limited battery capacity. As such, the algorithms that could be practically used by an artificial reality system 1000 depends on the capabilities of its computer unit 1008.
- FIG. 11 illustrates an example network environment 1 100 associated with an augmented reality (AR)Zvirtual reality (VR) system or a social-networking system.
- Network environment 1 100 includes a client system 1130, a VR (or AR) or social-networking system 1160, and a third-party system 1 170 connected to each other by a network 1 110.
- FIG. 1 1 illustrates a particular arrangement of client system 1 130, VR or social-networking system 1160, third-party system 1 170, and network 1 1 10, this disclosure contemplates any suitable arrangement of client system 1130, AR/VR or social-networking system 1 160, third- party system 1170, and network 1110.
- two or more of client system 1 130, ARA/R or social-networking system 1 160, and third-party system 1170 may be connected to each other directly, bypassing network 1 110.
- two or more of client system 1130, ARA/R or social-networking system 1 160, and third-party system 1170 may be physically or logically co-located with each other in whole or in part.
- FIG. 11 illustrates a particular number of client systems 1130, AR/VR or social-networking systems 1160, third-party systems 1 170, and networks 1 1 10, this disclosure contemplates any suitable number of client systems 1 130, ARA/R or social-networking systems 1 160, third-party systems 1170, and networks 11 10.
- network environment 1100 may include multiple client system 1130, ARA/R or social-networking systems 1160, third-party systems 1 170, and networks 1 110.
- Network 1 110 may include any suitable network 1 110.
- one or more portions of network 11 10 may include an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, or a combination of two or more of these.
- Network 1 1 10 may include one or more networks 1 110.
- Links 1150 may connect client system 1 130, AR/VR or social-networking system system 1160, and third-party system 1 170 to communication network 1 110 or to each other.
- This disclosure contemplates any suitable links 1 150.
- one or more links 1150 include one or more wireline (such as for example Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS)), wireless (such as for example Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)), or optical (such as for example Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH)) links.
- wireline such as for example Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS)
- wireless such as for example Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)
- optical such as for example Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH) links.
- SONET Synchronous Optical Network
- SDH
- one or more links 1 150 each include an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portion of the PSTN, a cellular technology-based network, a satellite communications technology-based network, another link 1 150, or a combination of two or more such links 1150.
- Links 1 150 need not necessarily be the same throughout network environment 1 100.
- One or more first links 1150 may differ in one or more respects from one or more second links 1150.
- client system 1130 may be an electronic device including hardware, software, or embedded logic components or a combination of two or more such components and capable of carrying out the appropriate functionalities implemented or supported by client system 1130.
- a client system 1130 may include a computer system such as a desktop computer, notebook or laptop computer, netbook, a tablet computer, e-book reader, GPS device, camera, personal digital assistant (PDA), handheld electronic device, cellular telephone, smartphone, augmented/virtual reality device, other suitable electronic device, or any suitable combination thereof.
- PDA personal digital assistant
- client system 1 130 may enable a network user at client system 1 130 to access network 11 10.
- a client system 1130 may enable its user to communicate with other users at other client systems 1130.
- client system 1130 may include a client application 1132 operable to provide various computing functionalities, services, and/or resources, and to send data to and receive data from the other entities of the network 11 10, such as the AR/VR or social-networking system 1 160 and/or the third-party system 1170.
- client application 1132 may be a social-networking application, an artificial-intelligence related application, a virtual reality application, an augmented reality application, an artificial reality or a mixed reality application, a camera application, a messaging application for messaging with users of a messaging network/system, a gaming application, an internet searching application, etc.
- the client application 1132 may be storable in a memory and executable by a processor of the client system 1130 to render user interfaces, receive user input, send data to and receive data from one or more of the AR/VR or socialnetworking system 1 160 and the third-party system 1 170.
- the client application 1132 may generate and present user interfaces to a user via a display of the client system 1 130.
- AR/VR or social-networking system 1 160 may be a network-addressable computing system that can host an online Virtual Reality environment, an augmented reality environment, or social network.
- AR/VR or social-networking system 1160 may generate, store, receive, and send social-networking data, such as, for example, user-profile data, concept-profile data, social-graph information, or other suitable data related to the online social network.
- Social-networking or AR/VR system 1 160 may be accessed by the other components of network environment 1100 either directly or via network 11 10.
- client system 1130 may access social-networking or AR/VR system 1 160 using a web browser, or a native application associated with socialnetworking or AR/VR system 1 160 (e.g., a mobile social-networking application, a messaging application, another suitable application, or any combination thereof) either directly or via network 1 1 10.
- social-networking or AR/VR system 1160 may include one or more servers 1162.
- Each server 1 162 may be a unitary server or a distributed server spanning multiple computers or multiple datacenters.
- Servers 1162 may be of various types, such as, for example and without limitation, a mapping server, web server, news server, mail server, message server, advertising server, file server, application server, exchange server, database server, proxy server, another server suitable for performing functions or processes described herein, or any combination thereof.
- each server 1 162 may include hardware, software, or embedded logic components or a combination of two or more such components for carrying out the appropriate functionalities implemented or supported by server 1162.
- social-networking or AR/VR system 1160 may include one or more data stores 1 164. Data stores 1 164 may be used to store various types of information. In particular embodiments, the information stored in data stores 1164 may be organized according to specific data structures.
- each data store 1164 may be a relational, columnar, correlation, or other suitable database.
- this disclosure describes or illustrates particular types of databases, this disclosure contemplates any suitable types of databases.
- Particular embodiments may provide interfaces that enable a client system 1 130, a social-networking or AR/VR system 1 160, or a third-party system 1170 to manage, retrieve, modify, add, or delete, the information stored in data store 1164.
- social-networking or AR/VR system 1 160 may store one or more social graphs in one or more data stores 1 164.
- a social graph may include multiple nodes — which may include multiple user nodes (each corresponding to a particular user) or multiple concept nodes (each corresponding to a particular concept) — and multiple edges connecting the nodes.
- Social-networking or AR/VR system 1160 may provide users of the online social network the ability to communicate and interact with other users.
- users may join the online social network via social-networking or AR/VR system 1 160 and then add connections (e.g., relationships) to a number of other users of social-networking or AR/VR system 1 160 to whom they want to be connected.
- the term “friend” may refer to any other user of social-networking or AR/VR system 1160 with whom a user has formed a connection, association, or relationship via social-networking or AR/VR system 1 160.
- social-networking or AR/VR system 1160 may provide users with the ability to take actions on various types of items or objects, supported by social-networking or AR/VR system 1 160.
- the items and objects may include groups or social networks to which users of social-networking or AR/VR system 1 160 may belong, events or calendar entries in which a user might be interested, computer-based applications that a user may use, transactions that allow users to buy or sell items via the service, interactions with advertisements that a user may perform, or other suitable items or objects.
- a user may interact with anything that is capable of being represented in social-networking or AR/VR system 1 160 or by an external system of third- party system 1 170, which is separate from social-networking or AR/VR system 1 160 and coupled to social-networking or AR/VR system 1 160 via a network 1 1 10.
- social-networking or AR/VR system 1 160 may be capable of linking a variety of entities.
- socialnetworking or AR/VR system 1 160 may enable users to interact with each other as well as receive content from third-party systems 1 170 or other entities, or to allow users to interact with these entities through an application programming interfaces (API) or other communication channels.
- API application programming interfaces
- a third-party system 1 170 may include one or more types of servers, one or more data stores, one or more interfaces, including but not limited to APIs, one or more web services, one or more content sources, one or more networks, or any other suitable components, e.g., that servers may communicate with.
- a third-party system 1170 may be operated by a different entity from an entity operating social-networking or AR/VR system 1 160.
- social-networking or AR/VR system 1160 and third-party systems 1170 may operate in conjunction with each other to provide social-networking services to users of social-networking or AR/VR system 1 160 or third-party systems 1 170.
- social-networking or AR/VR system 1 160 may provide a platform, or backbone, which other systems, such as third-party systems 1 170, may use to provide social-networking services and functionality to users across the Internet.
- a third-party system 1 170 may include a third-party content object provider.
- a third-party content object provider may include one or more sources of content objects, which may be communicated to a client system 1130.
- content objects may include information regarding things or activities of interest to the user, such as, for example, movie show times, movie reviews, restaurant reviews, restaurant menus, product information and reviews, or other suitable information.
- content objects may include incentive content objects, such as coupons, discount tickets, gift certificates, or other suitable incentive objects.
- social-networking or AR/VR system 1160 also includes user-generated content objects, which may enhance a user’s interactions with socialnetworking or AR/VR system 1 160.
- User-generated content may include anything a user can add, upload, send, or “post” to social-networking or AR/VR system 1160.
- Posts may include data such as status updates or other textual data, location information, photos, videos, links, music or other similar data or media.
- Content may also be added to social-networking or AR/VR system 1160 by a third-party through a “communication channel,” such as a newsfeed or stream.
- social-networking or AR/VR system 1160 may include a variety of servers, sub-systems, programs, modules, logs, and data stores.
- social-networking or AR/VR system 1160 may include one or more of the following: a web server, a mapping server, action logger, API-request server, relevance- and-ranking engine, content-object classifier, notification controller, action log, third-party- content-object-exposure log, inference module, authorization/privacy server, search module, advertisement-targeting module, user-interface module, user-profile store, connection store, third-party content store, or location store.
- Social-networking or AR/VR system 1 160 may also include suitable components such as network interfaces, security mechanisms, load balancers, failover servers, management-and-network-operations consoles, other suitable components, or any suitable combination thereof.
- socialnetworking or AR/VR system 1160 may include one or more user-profile stores for storing user profiles.
- a user profile may include, for example, biographic information, demographic information, behavioral information, social information, or other types of descriptive information, such as work experience, educational history, hobbies or preferences, interests, affinities, or location.
- Interest information may include interests related to one or more categories. Categories may be general or specific.
- a connection store may be used for storing connection information about users.
- the connection information may indicate users who have similar or common work experience, group memberships, hobbies, educational history, or are in any way related or share common attributes.
- the connection information may also include user- defined connections between different users and content (both internal and external).
- a web server may be used for linking social-networking or AR/VR system 1 160 to one or more client systems 1 130 or one or more third-party system 1170 via network 1 110.
- the web server may include a mail server or other messaging functionality for receiving and routing messages between social-networking or AR/VR system 1 160 and one or more client systems 1 130.
- An API-request server may allow a third-party system 1170 to access information from socialnetworking or AR/VR system 1160 by calling one or more APIs.
- An action logger may be used to receive communications from a web server about a user’s actions on or off socialnetworking or AR/VR system 1 160. In conjunction with the action log, a third-party-content- object log may be maintained of user exposures to third-party-content objects.
- a notification controller may provide information regarding content objects to a client system 1 130.
- Authorization servers may be used to enforce one or more privacy settings of the users of social-networking or ARA/R system 1160.
- a privacy setting of a user determines how particular information associated with a user can be shared.
- the authorization server may allow users to opt in to or opt out of having their actions logged by social-networking or ARA/R system 1 160 or shared with other systems (e.g., third-party system 1 170), such as, for example, by setting appropriate privacy settings.
- Third-party-content-object stores may be used to store content objects received from third parties, such as a third-party system 1 170.
- Location stores may be used for storing location information received from client systems 1 130 associated with users. Advertisement-pricing modules may combine social information, the current time, location information, or other suitable information to provide relevant advertisements, in the form of notifications, to a user.
- FIG. 12 illustrates an example computer system 1200.
- one or more computer systems 1200 perform one or more steps of one or more methods described or illustrated herein.
- one or more computer systems 1200 provide functionality described or illustrated herein.
- software running on one or more computer systems 1200 performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein.
- Particular embodiments include one or more portions of one or more computer systems 1200.
- reference to a computer system may encompass a computing device, and vice versa, where appropriate.
- reference to a computer system may encompass one or more computer systems, where appropriate.
- This disclosure contemplates any suitable number of computer systems 1200.
- This disclosure contemplates computer system 1200 taking any suitable physical form.
- computer system 1200 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented/virtual reality device, or a combination of two or more of these.
- SOC system-on-chip
- SBC single-board computer system
- COM computer-on-module
- SOM system-on-module
- desktop computer system such as, for example, a computer-on-module (COM) or system-on-module (SOM)
- laptop or notebook computer system such as, for example
- computer system 1200 may include one or more computer systems 1200; be unitary or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks.
- one or more computer systems 1200 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein.
- one or more computer systems 1200 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein.
- One or more computer systems 1200 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
- computer system 1200 includes a processor 1202, memory 1204, storage 1206, an input/output (I/O) interface 1208, a communication interface 1210, and a bus 1212.
- processor 1202 memory 1204, storage 1206, an input/output (I/O) interface 1208, a communication interface 1210, and a bus 1212.
- I/O input/output
- communication interface 1210 communication interface 1210
- bus 1212. bus 1212.
- processor 1202 includes hardware for executing instructions, such as those making up a computer program.
- processor 1202 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 1204, or storage 1206; decode and execute them; and then write one or more results to an internal register, an internal cache, memory 1204, or storage 1206.
- processor 1202 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 1202 including any suitable number of any suitable internal caches, where appropriate.
- processor 1202 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs).
- TLBs translation lookaside buffers
- Instructions in the instruction caches may be copies of instructions in memory 1204 or storage 1206, and the instruction caches may speed up retrieval of those instructions by processor 1202.
- Data in the data caches may be copies of data in memory 1204 or storage 1206 for instructions executing at processor 1202 to operate on; the results of previous instructions executed at processor 1202 for access by subsequent instructions executing at processor 1202 or for writing to memory 1204 or storage 1206; or other suitable data.
- the data caches may speed up read or write operations by processor 1202.
- the TLBs may speed up virtual- address translation for processor 1202.
- processor 1202 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 1202 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 1202 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors 1202. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
- ALUs arith
- memory 1204 includes main memory for storing instructions for processor 1202 to execute or data for processor 1202 to operate on.
- computer system 1200 may load instructions from storage 1206 or another source (such as, for example, another computer system 1200) to memory 1204.
- Processor 1202 may then load the instructions from memory 1204 to an internal register or internal cache.
- processor 1202 may retrieve the instructions from the internal register or internal cache and decode them.
- processor 1202 may write one or more results (which may be intermediate or final results) to the internal register or internal cache.
- Processor 1202 may then write one or more of those results to memory 1204.
- processor 1202 executes only instructions in one or more internal registers or internal caches or in memory 1204 (as opposed to storage 1206 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory 1204 (as opposed to storage 1206 or elsewhere).
- One or more memory buses (which may each include an address bus and a data bus) may couple processor 1202 to memory 1204.
- Bus 1212 may include one or more memory buses, as described below.
- one or more memory management units reside between processor 1202 and memory 1204 and facilitate accesses to memory 1204 requested by processor 1202.
- memory 1204 includes random access memory (RAM). This RAM may be volatile memory, where appropriate.
- this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM.
- Memory 1204 may include one or more memories 1204, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
- storage 1206 includes mass storage for data or instructions.
- storage 1206 may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these.
- Storage 1206 may include removable or non-removable (or fixed) media, where appropriate.
- Storage 1206 may be internal or external to computer system 1200, where appropriate.
- storage 1206 is non-volatile, solid-state memory.
- storage 1206 includes read-only memory (ROM).
- this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these.
- This disclosure contemplates mass storage 1206 taking any suitable physical form.
- Storage 1206 may include one or more storage control units facilitating communication between processor 1202 and storage 1206, where appropriate. Where appropriate, storage 1206 may include one or more storages 1206. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
- I/O interface 1208 includes hardware, software, or both, providing one or more interfaces for communication between computer system 1200 and one or more I/O devices.
- Computer system 1200 may include one or more of these I/O devices, where appropriate.
- One or more of these I/O devices may enable communication between a person and computer system 1200.
- an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these.
- An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 1208 for them.
- I/O interface 1208 may include one or more device or software drivers enabling processor 1202 to drive one or more of these I/O devices.
- I/O interface 1208 may include one or more I/O interfaces 1208, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
- communication interface 1210 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system 1200 and one or more other computer systems 1200 or one or more networks.
- communication interface 1210 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network.
- NIC network interface controller
- WNIC wireless NIC
- WI-FI network wireless network
- computer system 1200 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these.
- PAN personal area network
- LAN local area network
- WAN wide area network
- MAN metropolitan area network
- computer system 1200 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these.
- Computer system 1200 may include any suitable communication interface 1210 for any of these networks, where appropriate.
- Communication interface 1210 may include one or more communication interfaces 1210, where appropriate.
- bus 1212 includes hardware, software, or both coupling components of computer system 1200 to each other.
- bus 1212 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these.
- Bus 1212 may include one or more buses 1212, where appropriate.
- a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate.
- ICs semiconductor-based or other integrated circuits
- HDDs hard disk drives
- HHDs hybrid hard drives
- ODDs optical disc drives
- magneto-optical discs magneto-optical drives
- FDDs floppy diskettes
- FDDs floppy disk drives
- SSDs
- references in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative. Additionally, although this disclosure describes or illustrates particular embodiments as providing particular advantages, particular embodiments may provide none, some, or all of these advantages.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Liquid Crystal Display Device Control (AREA)
Abstract
A computing system may receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones. The computing system may compute backlight unit statistics of the first image frame. The backlight unit statistics may represent grayscale levels for the plurality of backlight zones. The computing system may compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame. The computing system may adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
Description
SYSTEMS AND METHODS FOR PERFORMING GLOBAL DIMMING
IN ARTIFICIAL REALITY SYSTEMS
TECHNICAL FIELD
[0001] This disclosure generally relates to global dimming. In particular, the disclosure relates to a technique for performing global dimming in artificial reality systems, such as virtual reality (VR) headsets.
BACKGROUND
[0002] Global dimming (GD) is a technique used in liquid crystal displays (LCD) to reduce power consumption of a backlight unit. When frame content to be displayed is not fully white, GD scales up the RGB values (e.g., LC transmittance) and scales down the backlight intensity to achieve the same final visual image at lower power cost. More specifically, GD typically scales up RGB values and dims down the BLU intensity at the same time, so it may preserve visual quality while saving power consumption.
[0003] In the conventional approaches for local and/or global dimming, red (R), green (G), and blue (B) (collectively herein referred to as RGB) information is provided by a graphics source, and a dedicated hardware (e.g., dedicated ASIC) computes a dimming or backlight matrix. The backlight matrix is then fed back to the graphics source so that the source may adjust the RGB for local and/or global dimming. An image may then be displayed based on the adjusted RGB and backlight intensity represented by the backlight matrix. The feedback loop (i.e., sending the backlight matrix back to the graphics source), however, introduces latency. Also, the RGB color adjustment consumes too much power. Performing such local and global dimming in artificial reality space is challenging.
[0004] Artificial reality is a form of reality that has been adjusted in some manner before presentation to a user, which may include, e.g., a virtual reality (VR), an augmented reality (AR), a mixed reality (MR), a hybrid reality, or some combination and/or derivatives thereof. Artificial reality content may include completely generated content or generated content combined with captured content (e.g., real-world photographs). The artificial reality content may include video, audio, haptic feedback, or some combination thereof, any of which may be presented in a single channel or in multiple channels (such as stereo video that produces a three-dimensional effect to the viewer). Artificial reality may be associated with applications, products, accessories, services, or some combination thereof, that are, e.g., used to create content in artificial reality and/or used in (e.g., perform activities in) an artificial reality. Artificial reality systems that provide artificial reality content may be implemented on various platforms, including a head-mounted device (HMD) connected to a host computer system, a standalone HMD, a mobile device or computing system, or any other hardware platform capable of providing artificial reality content to one or more viewers.
[0005] Performing local and global dimming in artificial reality space is challenging as
artificial reality systems (e.g., VR headsets) do not have a dedicated hardware for computing backlight unit statistics or backlight matrix, and therefore the computation needs to be performed by the standard system’s central processing unit (CPU). Additionally, low/no latency is an important factor when displaying content through these systems. Therefore, an improved solution or technique is needed, especially for VR headset displays, that can perform local dimming as well as global dimming with low latency and power requirements.
SUMMARY OF PARTICULAR EMBODIMENTS
[0006] Embodiments described herein relate to performing global dimming for artificial reality systems. Particular embodiments describe an efficient method, algorithm, and/or technique to perform global dimming in addition to local dimming. The global dimming technique discussed herein is an extension to the local dimming (LD) technique discussed in U.S. Patent Application No. 17/713,965, filed 05 April 2022.
[0007] In accordance with a first aspect, there is provided a method, implemented by a computing system, comprising: receiving a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; computing backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; computing a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
[0008] Adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame may comprise: scaling up the color values of red, green, and blue (RGB) color components of the second image frame; and reducing the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
[0009] Computing the backlight unit statistics of the first image frame may comprise: computing, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determining, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
[0010] Computing the global dimming gain may comprise: generating an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determining, for a target percentile in the accumulated histogram, a threshold grayscale value; converting the threshold grayscale value to a particular backlight unit intensity using a lookup table; and computing the global dimming gain using the particular backlight unit intensity.
[0011] The global dimming gain may be inversely proportional to the particular
backlight unit intensity.
[0012] The display may be associated with an artificial reality system.
[0013] The artificial reality system may be a virtual reality headset.
[0014] In accordance with a second aspect, there is provided one or more computer- readable non-transitory storage media embodying software that is operable when executed to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
[0015] To adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame, the software may be further operable when executed to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
[0016] To compute the backlight unit statistics of the first image frame, the software may be further operable when executed to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
[0017] To compute the global dimming gain, the software may be further operable when executed to: generate an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity.
[0018] The global dimming gain may be inversely proportional to the particular backlight unit intensity.
[0019] The display may be associated with an artificial reality system.
[0020] The artificial reality system may be a virtual reality headset.
[0021] In accordance with a third aspect, there is provided a system comprising: one or more processors; and one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed
by one or more of the processors to cause the system to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
[0022] To adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame, the one or more processors may be further operable when executing the instructions to cause the system to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
[0023] To compute the backlight unit statistics of the first image frame, the one or more processors may be further operable when executing the instructions to cause the system to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
[0024] To compute the global dimming gain, the one or more processors may be further operable when executing the instructions to cause the system to: generate an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity.
[0025] The global dimming gain may be inversely proportional to the particular backlight unit intensity.
[0026] The display may be associated with an artificial reality system.
[0027] At a high level, to perform global dimming, image statistics (e.g., backlight unit (BLU) stats) of a previous frame are used to adjust RGB frame and BLU intensity for a current frame. By way of an example and without limitation, if there are three frames Ti, T2, and T3, where T1 is the first frame, T2 is the second frame, and T3 is the third frame in a sequence of frames to be displayed, then data associated with BLU stats of the T1 frame is used to adjust the RGB values and backlight intensity for displaying the T2 frame, and data associated with BLU stats of the T2 frame is used to adjust the RGB values and backlight intensity for displaying the T3 frame. Here, the first frame T1 may be displayed at its original RGB value.
However, the backlight intensity may still be adjusted, particularly in the low-level grayscale regions for local dimming.
[0028] In particular embodiments, a global dimming and local dimming algorithm (also interchangeably herein referred to as GD/LD algorithm) discussed herein may calculate a global dimming gain based on image statistics (e.g., BLU stats) associated with an image frame. The calculated global dimming gain may be used to adjust RGB values and BLU intensity of a subsequent or next frame. The global dimming gain to scale up RGB values is inversely proportional to the BLU intensity. That is, the global dimming gain increases with decreasing BLU intensity. By way of an example, if the BLU stats for the current frame results in a BLU intensity of 50%, then the global dimming gain for scaling up RGB values of next frame will be 2.0. The RGB values of the next frame will be doubled (e.g., multiplied by 2), but the BLU intensity for the backlight zones is reduced by 50%. When scaling, some of the RGB values may be clipped at a certain value (e.g., 255). The amount of clipping may depend upon whether the aim is power saving or better visual quality, and the global dimming gain may be calculated accordingly.
[0029] In particular embodiments, the GD/LD algorithm may calculate a new BLU intensity for a next or subsequent frame based on max RGB or gray values associated with BLU stats of the current frame. The GD/LD algorithm may compute the BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone. In some embodiments, computing the BLU stats may include estimating a max RGB value for each backlight zone. An accumulated histogram is generated using the maximum gray values computed from the BLU stats. For a given percentile in the accumulated histogram, a threshold gray level value (e.g., 240) is taken. Once the threshold grayscale value is determined, it may be converted into a new BLU intensity for the next or subsequent frame. [0030] In particular embodiments, the threshold may be converted into the new BLU intensity using a lookup table (LUT). For instance, the LUT may contain different BLU intensities corresponding to different threshold grayscale values. The GD/LD algorithm may use an appropriate LUT depending on whether its aim is power saving or better visual quality. For instance, a first LUT (e.g., up-concave LUT) is directed towards better visual quality as it results in a higher BLU intensity for a given threshold, which means a low global dimming gain, and therefore low chances of clipping (e.g., values being clipped at highest RGB value 255) and occurrence of artifacts due to the clipping. Whereas a second LUT (e.g., linear LUT) may be directed towards power savings as it results in a lower BLU intensity for a given threshold, which means a higher global dimming gain to scale up the RGB.
[0031] Once a BLU intensity is calculated based on BLU stats of a current frame, the GD/LD algorithm may calculate a global dimming gain for scaling RGB values and adjusting backlight intensity of subsequent frame (e.g., frame n+1). The computed global dimming gain
may be passed to the next or subsequent frame for processing. In this way, global dimming may be performed for a series of frames and iterations, where, at each iteration, RGB values and backlight intensity are globally adjusted for a current frame based on previous frame’s data (e.g., global dimming gain computed based on BLU stats of previous frame). Only the first frame in the series of frames is displayed according to its original RGB value. In addition to the global dimming, local dimming may also be performed at each iteration.
[0032] In some embodiments, a dramatic change in a global dimming gain (equivalently BLU intensity) from a previous global dimming gain may cause flickering. For example, if frames change dramatically from dark to bright, then it may cause flickering. To prevent it from happening, a slow adaptation technique may be implemented using a queue or other techniques. Slow adaptation technique may be implemented based on the global dimming gains computed from previous frames and stored in a queue. The actual global dimming gain for the current frame under processing may be determined by taking an average value of all previous global dimming gains in the queue. With the slow adaptation technique discussed herein, flickering may be minimized. Also, depending on the size of the queue, flickering or amount of power save may be determined.
[0033] The embodiments disclosed herein are only examples, and the scope of this disclosure is not limited to them. Particular embodiments may include all, some, or none of the components, elements, features, functions, operations, or steps of the embodiments disclosed herein. Embodiments according to the invention are defined in the attached claims directed to a method, a storage medium, and a system. Any feature mentioned in one claim category, e.g., method, can be claimed in another claim category, e.g., system, as well. The dependencies or references back in the attached claims are chosen for formal reasons only. However, any subject matter resulting from a deliberate reference back to any previous claims (in particular multiple dependencies) can be claimed as well, so that any combination of claims and the features thereof are disclosed and can be claimed regardless of the dependencies chosen in the attached claims. The subject-matter which can be claimed comprises not only the combinations of features as set out in the attached claims but also any other combination of features in the claims, wherein each feature mentioned in the claims can be combined with any other feature or combination of other features in the claims. Furthermore, any of the embodiments and features described or depicted herein can be claimed in a separate claim and/or in any combination with any embodiment or feature described or depicted herein or with any of the features of the attached claims.
[0034] It will be appreciated that any features described herein as being suitable for incorporation into one or more aspects are intended to be generalizable across any and all aspects described herein. Other aspects of the present disclosure can be understood by those skilled in the art in light of the description, the claims and the drawings. The foregoing general
description and the following detailed description are exemplary and explanatory only and are not restrictive of the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0035] FIG. 1 A illustrates an example of global dimming.
[0036] FIG. 1 B illustrates another example of global dimming.
[0037] FIG. 2 illustrates example charts respectively showing RGB adjustment and BLU intensity adjustment for an image.
[0038] FIG. 3 illustrates an example local dimming pipeline.
[0039] FIG. 4 illustrates a modified pipeline for global dimming or a global dimming pipeline, in accordance with particular embodiments.
[0040] FIG. 5 illustrates an example graph depicting an example correspondence between BLU intensities and gray levels.
[0041] FIG. 6 illustrates example images depicting global dimming with different clipping levels.
[0042] FIG. 7 illustrates example consecutive frames that may be displayed via a display system and on which global dimming may be performed.
[0043] FIG. 8 illustrates an example slow adaptation technique to minimize artifacts associated with a plurality of frames.
[0044] FIG. 9 illustrates an example method for global dimming, in accordance with particular embodiments.
[0045] FIG. 10 illustrates an example of a display system.
[0046] FIG. 11 illustrates an example network environment associated with a socialnetworking system, an augmented reality, or a virtual-reality system.
[0047] FIG. 12 illustrates an example computer system.
DESCRIPTION OF EXAMPLE EMBODIMENTS
[0048] Local dimming (LD) is a technology for liquid crystal displays (LCD) to increase contrast ratio and improve visual quality. It controls and modulates the LC transmittance with backlight brightness to properly present content with high contrast. The LD technology ensures that the lights (e.g., backlight LEDs) with which the content is displayed are dimmed or completely turned off at specific moments so that a dark scene looks correct and black colors appear true black instead of gray. U.S. Patent Application No. 17/713,965, filed 05 April 2022 describes an improved local dimming pipeline (e.g., local dimming pipeline 300 shown in FIG. 3), technique, or algorithm for performing local dimming, especially for artificial-reality systems, such as AR/VR headsets. For instance, the LD algorithm (e.g., LD algorithm 321) computes backlight unit statistics (BLU stats) or backlight matrix without needing a specialized or dedicated hardware (e.g., a dedicated ASIC) as was required in a conventional or traditional pipeline for local dimming. Also, the LD algorithm eliminates the feedback loop (e.g., sending
the computed backlight matrix back to a graphics rendering source for RGB adjustments) of the conventional pipeline. Due to the elimination of the feedback loop, there is considerably low or no latency when displaying content, especially through AR/VR headsets. Furthermore, since the LD algorithm eliminates RGB adjustments and need for additional hardware (e.g., dedicated ASIC) for the backlight computation, overall computational and/or power requirements are considerably reduced.
[0049] While the improved local dimming pipeline, technique, or algorithm (discussed in reference to FIG. 3) achieves improved visual contrast with low power and latency requirements for low light regions or low gray levels (e.g., black regions in a display), however, it loses the capability to modulate backlight with RGB to achieve power savings for mid-gray contents (e.g., gray regions or mid-color regions in the display). Stated differently, because the improved LD algorithm eliminates the feedback loop from a LD engine to a graphics engine for RGB adjustments, it loses the capability to adjust RGB to achieve power savings for midgray contents. For example, if a zone is a uniform 50% gray, because RGB values are not adjusted in the local dimming pipeline, 100% backlight may need to be used to achieve target visual performance, as shown in FIG. 1A. This may not be power efficient especially for low- powered or resource-constrained devices, such as AR/VR devices. Power savings could be achieved by scaling the RGB to full white with 50% backlight on, as shown for example in FIG. 1 A. This is what global dimming does. That is, global dimming is a way to do both the RGB as well as backlight adjustments for power savings for mid-gray contents.
[0050] Global dimming (GD) (also interchangeably herein referred to as content adaptive backlight control) is a technique used in LCD to reduce the power consumption of the backlight unit. When frame content to be displayed is not fully white, GD scales up the RGB values (e.g., LC transmittance) and scales down the backlight intensity to achieve the same final visual image at lower power cost, as shown for example in FIGS. 1 A and 1 B. More specifically, GD typically scales up RGB values and dim down the BLU intensity at the same time, so it may preserve visual quality while saving power consumption. FIG. 1A illustrates an example of global dimming. An example comparison is shown to illustrate the difference between a scenario 100 when no global dimming is used or applied and a scenario 120 when global dimming is applied. As depicted, in the scenario 100 without global dimming, an image 102 is a uniform gray image with RGB values of 127 (e.g., R127, G127, B127). In order to output this image 102, backlight unit (BLU) intensity of 100% (indicated by reference numeral 104) is used to generate a display 106. Whereas in the scenario 120 with global dimming, RGB values of the input image 102 are scaled up to full white (e.g., R255, G255, B255), as indicated by reference numeral 122, and BLU intensity is reduced down to 50%, as indicated by reference numeral 124, to generate the same display 106.
[0051] FIG. 1 B illustrates another example of global dimming. Similar to FIG. 1A, an
example comparison is shown to illustrate the difference between a scenario 150 when no global dimming is applied and a scenario 160 when global dimming is applied. As depicted, in the scenario 150 without global dimming, BLU intensity of 100% (indicated by reference numeral 152) for an image 154 (without RGB adjustment) is used in orderto generate a display 156. Whereas in the scenario 160 with global dimming, BLU intensity is reduced to 70% (indicated by reference numeral 162) and RGB values of the image 154 are scaled up (indicated by reference numeral 164) to generate the same display 156.
[0052] To further describe the concept of global dimming, FIG. 2 illustrates example charts 210 and 220 respectively showing RGB adjustment and BLU intensity adjustment for an image 200. The most important point in global dimming is how to balance between scaling up RGB values and dimming down the BLU intensity. For example, the image 200 mostly consists of mid or low gray values. This is represented by red histogram 212 in the chart 210. To generate a display based on the RGB values represented by the red histogram 212, full BLU intensity of 100% may be used, as indicated by reference numeral 222. To achieve power savings, global dimming technique discussed herein (with respect to FIG. 4), may aggressively scale up RGB values, as shown by blue histogram 214. In return, it may reduce the BLU intensity considerably, as indicated by reference numeral 224.
[0053] Particular embodiments discussed herein describes an efficient method, algorithm, and technique to perform global dimming in addition to local dimming. The technique for global dimming discussed herein is particularly suitable for artificial reality devices, such as AR/VR devices. Furthermore, the technique discussed herein is an extension to the local dimming pipeline, such as local dimming pipeline 300 shown in FIG. 3. Before describing how the method or technique for global dimming is applied to the local dimming pipeline, it is important to first understand the local dimming pipeline and various components that are associated with this pipeline.
[0054] FIG. 3 illustrates an example local dimming pipeline 300. The pipeline 300 illustrates various operations performed by computing components of a display system (e.g., display system 1000) at various stages for local dimming. In particular embodiments, the pipeline 300 illustrates operations performed by a graphical processing unit (GPU) 302 and a central processing unit (CPU) 320 components of the display system, such as the artificial reality system 1000 shown in FIG. 10.
[0055] A graphics rendering engine 303 of the GPU 302 of the display system may receive a RGB frame 304 from a particular source, such as a front-facing camera of the VR headset. Example frames that may be displayed through the VR headset are shown in FIG. 7. In some embodiments, the graphics rendering engine discussed herein may be an asynchronous time warp (ATW) compositor that receives images (e.g., RGB frames) that are to be displayed to a user. The ATW compositor may make certain adjustments (e.g., move
things around, distortion correction, aberration correction, etc.) to the images before displaying. The ATW compositor may ensure that the images to be displayed are at right places and compensate for any dropped frames.
[0056] The graphics rendering engine 303 (e.g., ATW compositor) may store the RGB frame 304 in a front buffer 306. In particular embodiments, the front buffer 306 may be a dedicated memory or storage allocated to the GPU 302 for storing graphical content (e.g., images, videos, audio, frames, etc.). In order for the GPU 302 to share some portion of the graphical content with the CPU 320 for it to process, the GPU 302 may store the portion in a shared or mapped buffer 308. For instance, the GPU 302 may transfer the RGB frame 304 from the front buffer 306 to the mapped buffer 308 so that the CPU 320 may be able to process the RGB frame 304 to compute the backlight unit statistics (BLU stats) discussed herein. In some embodiments, the mapped buffer 308 may store a reduced resolution or downscaled version of the RGB frame 304. Stated differently, the mapped buffer 308 discussed herein may be a small resolution buffer that stores smaller/reduced resolution version of a RGB image for computing the BLU stats. Using the mapped buffer 308 is advantageous as it is computationally very efficient and cheap to compute the BLU stats by the CPU 320. For instance, the CPU 320 is required to perform computation for fewer pixels of a reduced RGB frame.
[0057] In particular embodiments, a local dimming (LD) algorithm 321 running on the CPU 320 may receive the RGB frame 304 from the shared or mapped buffer 308 and perform a series of steps 322, 324, 326, and 328 in sequence to compute a backlight matrix 330. In some embodiments, the first step 322 may be optional as the RGB frame 304 received from the mapped buffer 308 may already be downscaled. If it is not downscaled or further downscaling is needed, then in the first step 322, the LD algorithm 321 may generate a mipmap of the RGB frame 304. In some embodiments, generating the mipmap may include downscaling the resolution of the RGB frame 304 to a reduced resolution for efficient processing. For instance, the input resolution, especially in VR, is significantly high and since there is no dedicated/specialized hardware (e.g., dedicated ASIC) for computing the backlighting like the traditional displays, the input resolution needs to be downscaled to a smaller resolution so that the RGB frame 304 may be processed with the CPU 320. As an example and not by way of limitation, the LD algorithm 321 may use 10x downscaling or 8x (e.g., 3 level) mip downsize to downscale the RGB frame 304. In some embodiments, the value of downscaling may depend upon RGB resolution and number of backlight zones.
[0058] In the second step 324, the LD algorithm 321 may compute a zone statistic (also interchangeably referred to herein as BLU stats) for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone. In other words, the LD algorithm 321 may compute how bright a particular backlight zone is based on
the RGB values of pixels within that zone. Each backlight zone may encompass a subset of pixels of the RGB frame 304. As an example and not by way of limitation, a backlight zone may encompass 100 pixels out of 1000 pixels that make up the RGB frame 304. In particular embodiments, the LD algorithm 321 may compute the BLU stats for a backlight zone by first averaging values of each of the RGB channels or color components across the pixels within the backlight zone and then taking a max value of the averaged RGB. Continuing the same 100 pixels example within the backlight zone, the LD algorithm 321 may compute an average R value by taking an average of the red value across the 100 pixels, an average G value by taking an average of the green value across the 100 pixels, and an average B value by taking an average of the blue value across the 100 pixels. In this example, let’s assume the average R value comes out to 10, the average G value comes out to 15, and the average B value comes out to 75, then the LD algorithm takes the max value i.e., 75 as the statistic or BLU stat for the particular backlight zone. Similarly, the LD algorithm 321 may estimate the BLU stats for other backlight zones. In particular embodiments, the LD algorithm 321 estimates these BLU stats for the backlight zones so that a particular color may be displayed with its intended brightness and only those backlight zones whose BLU stats are equal to or lower than a certain threshold may be dimmed, as discussed in further detail below in step 326. For example, if there is a bright blue in a scene (e.g., represented by the RGB frame 304), then that bright blue may be displayed as is without any adjustment.
[0059] In the third step 326, the LD algorithm 321 may perform level mapping, which including mapping the zone statistics computed in step 324, for each backlight zone, to a brightness and/or dimming value using a particular technique. The brightness and/or dimming value for a backlight zone may correspond to a BLU intensity with which to power a particular LED in that zone. For example, if the brightness values are given between 0-100 and a brightness value for a zone is given 50, then BLU intensity of 50% is used to lighten up that zone. In particular embodiments, the LD algorithm 321 may use a custom-built lookup table (LUT) to map the statistics or BLU stats to a brightness value. For instance, the lookup table may include predetermined brightness and/or dimming values corresponding to different BLU stats (e.g., max values) and the LD algorithm 321 may use this data to map each of the statistic or BLU stat associated with a backlight zone to a corresponding brightness/dimming value indicated in the lookup table. In some embodiments, the LD algorithm 321 may also perform the level mapping 326 using a machine learning (ML) technique. For instance, a trained ML model may output brightness and/or dimming values corresponding to specific statistics/BLU stats. The ML model may be trained based on ground-truth statistics and their corresponding ground-truth brightness and/or dimming values.
[0060] In some embodiments, during the level mapping operation especially in the case of local dimming, the LD algorithm 321 may use a gamma curve for low brightness zones
(e.g., zones with low/dark gray levels) and saturate at certain threshold (e.g., max value less than or equal to 20). Stated differently, the LD algorithm 321 may find backlight zones whose max value is less than the certain threshold and only dim those zones to a particular brightness value using the lookup table. For instance, the backlight zones corresponding to dark or low gray levels in the RGB frame 304 may be dimmed by their corresponding brightness/dimming values in the lookup table, whereas medium and high gray levels may be left untouched or unadjusted. Since the LD algorithm 321 does not adjust the backlight of medium and/or high grayscales, the RGB does not need to be adjusted in the case of the local dimming pipeline 300. However, as stated earlier, since the RGB are not adjusted, the local dimming pipeline 300 may not be able to achieve power savings for mid-gray contents. For example, if a zone is a uniform 50% gray (e.g., RGB values of 127), since RGB is not adjusted, 100% BLU intensity may be used to lit the zone and this may not be power efficient for low-powered or resource-constrained devices, such as AR/VR devices. To achieve power savings for midgray content, global dimming (e.g., adjusting both the RGB as well as backlight intensity) is needed. A modified pipeline 400 for global dimming or global dimming pipeline 400 is shown and discussed in reference to at least FIG. 4.
[0061] In particular embodiment, the level mapping step 326 may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones. Simply displaying based on the backlight matrix produced after the level mapping 326 may be prone to some artifacts. These artifacts may include, for example and without limitation, backlight flickering artifacts due to head motion or moving objects in VR, over-dimming artifacts, and halo effects (e.g., light falling into darker areas surrounding an object, such as area around a bright moon that should actually be dark). [0062] In the fourth step 328, the LD algorithm 321 may perform post filtering on the initial backlight matrix produced after the level mapping step 326 in order to correct one or more artifacts discussed above. In particular embodiments, the post filtering 328 may include the LD algorithm 321 spatially as well as temporally filtering or smoothening the brightness values in the initial backlight matrix to minimize the one or more artifacts. As an example and not by way of limitation, the LD algorithm 321 may perform the spatial filtering by using a spatial dilation and/or gaussian blur to minimize halo and over-dimming artifacts in the initial backlight matrix. The LD algorithm 321 may perform the temporal filtering by using recursive temporal averaging to remove backlight flickering artifacts occurring due to head motion or moving objects, especially in VR.
[0063] Responsive to performing the last step i.e., post filtering 328 (e.g., spatial- temporal filtering), the LD algorithm 321 generates a final backlight matrix 330. The backlight matrix 330 may indicate by what amount (e.g., percentage) each backlight zone should be lit or dimmed by a BLU driver 332. Based on the backlight matrix 330, the BLU driver 332 may
output a backlight intensity 336 (e.g., brightness levels) for one or more LEDs of a display component. In some embodiments, outputting the backlight intensity 336 may include the BLU driver 332 turning on/off a subset of LEDs in the display component. In the case of local dimming, the backlight intensity 336 may include the BLU driver 332 dimming a brightness level of the subset of LEDs corresponding to low/dark gray level regions of the RGB frame 304. One or more backlight unit ICs (BLU-IC) 340 may be configured to control the backlight based on the backlight intensity 336 output by the BLU driver 332. In particular embodiments, a BLU-IC 340 may receive the backlight intensity information from the BLU driver 332 via a communication interface/bus, such as a serial peripheral interface (SPI).
[0064] In some embodiments, in addition to computing the backlight matrix 330, a display processing unit (DPU) 334 may receive the RGB frame 304 from the front buffer 306 and may perform one or more post-processing steps on the RGB frame 304 to remove one or more artifacts or further improve image quality. It should be noted that the post-processing steps performed by the DPU 334 are not related to the local dimming discussed herein and these steps may only be performed to correct some artifacts resulting from certain components (e.g., optics, lens) of the display system. As an example and without limitation, an image may be distorted due to lens distortions or chromatic aberrations resulting from light passing through optics (e.g., lens) of the VR headset and therefore, the DPU 334 may perform one or more post-processing steps on the RGB frame 304 to correct these lens distortions or effects of chromatic aberrations.
[0065] The DPU 334 may output a display RGB 338. Using the backlight intensity 336 output by the BLU driver 332 and the display RGB 338 output by the DPU 334, a display 350 may be generated. For generating the display 350, a set of integrated circuits (ICs) may be configured to generate the display 350 (e.g., output an image) based on the RGB frame output by the DPU 334 and the backlight intensity output by the BLU driver 332. For instance, one or more display driver ICs (DDIC) 342 may be configured to control display panel(s) and produce a rich and vibrant display based on the display RGB 338 output by the DPU 334. In particular embodiments, a DDIC 342 may receive the RGB information 338 from the DPU 334 via a communication layer or interface, such as C-PHY. One or more backlight unit ICs (BLU-IC) 340 may be configured to control the backlight based on the backlight intensity 336 output by the BLU driver 332. In particular embodiments, a BLU-IC 340 may receive the backlight intensity information from the BLU driver 332 via a communication interface/bus, such as a serial peripheral interface (SPI). In some embodiments, the resulting display 350 or image (i.e., RGB + backlight) may be presented on a screen of the display system. As an example and not by way of limitation, the resulting image may be presented on a VR headset’s display. [0066] The local dimming pipeline 300 discussed above may be extended to perform global dimming to achieve additional power savings, especially for mid grayscale or mid gray
level content. In particular embodiments, one or more components may be added and/or adjusted in the existing local dimming pipeline 300 to perform global dimming. One such modified pipeline capable of performing global dimming in addition to local dimming is shown and discussed with respect to FIG. 4. At a high level, to perform global dimming, data associated with BLU stats of a previous frame is used to adjust RGB frame and BLU intensity for current frame. By way of an example and without limitation, if there are three frames Ti, T2, and T3, where T1 is the first frame, T2 is the second frame, and T3 is the third frame in a sequence of frames to be displayed, then data associated with BLU stats of the T1 frame is used to adjust the RGB values and backlight intensity for displaying the T2 frame, and data associated with BLU stats of the T2 frame is used to adjust the RGB values and backlight intensity for displaying the T3 frame. Here, the first frame T1 may be displayed at its original RGB value. However, the backlight intensity may still be adjusted, particularly in the low-level grayscale regions for local dimming, as discussed above for example in reference to FIG. 3. Detailed description with respect to how global dimming is performed is now discussed in reference to FIG. 4.
[0067] FIG. 4 illustrates a modified pipeline 400 for global dimming or a global dimming pipeline 400. Although, the global dimming pipeline 400 here is described with respect to two image frames 402a (frame n-1) and 402b (frame n), it should be understood that the pipeline 400 is not by any way limited to these frames and any number of image frames are possible and within the scope of the present disclosure. Also, it should be noted that some of the reference numerals have been kept same throughout this disclosure for consistency, ease of understanding, and to refer to the same entities, components, and/or elements that have already been discussed and therefore, may not be repeated in its entirety again. However, the entities, components, and/or elements represented by these same reference numerals are not by any way limited to the scope or functionality discussed earlier and may incorporate additional scope or functionality.
[0068] As depicted, the graphics rendering engine 303 (e.g., ATW compositor) may receive a first RGB frame 402a (e.g., frame n-1 , where n= 1 ). The frame 402a may come from a particular source, such as a front-facing camera of a VR headset. As discussed elsewhere herein, the graphics rendering engine 303 may be an ATW compositor that receives images (e.g., RGB frames 402a, 402b, ..., 402n) that are to be displayed to a user. The ATW compositor may make certain adjustments (e.g., move things around, distortion correction, aberration correction, etc.) to the images before displaying. The ATW compositor may ensure that the images to be displayed are at right places and compensate for any dropped frames. [0069] Since there is no prior data available for the first RGB frame 402a, the first RGB frame 402a may be stored as is and without any adjustments in the front buffer 306. The DPU 334 may receive the RGB frame 402a from the front buffer 306 and may perform one or more
post-processing steps discussed earlier on the RGB frame 402a to remove one or more artifacts or further improve image quality. The DPU 334 may output a display RGB 422a, which may be used along with backlight intensity 420a to generate a display 430a, as discussed in further detail below.
[0070] In order for the GPU 302 to share some portion of the graphical content with the CPU 320 for it to process, the GPU 302 may store the portion in a shared or mapped buffer 308. For instance, the GPU 302 may transfer the RGB frame 402a from the front buffer 306 to a reduced resolution mapped buffer 308 so that the CPU 320 may be able to efficiently process the RGB frame 402a to compute BLU stats. Prior to storing the RGB frame 402a in the mapped buffer 308, the RGB frame 402a may be downscaled (e.g., Blit) for efficient processing by the CPU 320. For instance, the input resolution of the RGB frame 402a may be downscaled (e.g., 10x downscaling or 8x) to a smaller resolution so that the RGB frame 402a may be processed by the CPU 320 in a way that it reduces computational costs. In some embodiments, the value of downscaling may depend upon RGB resolution and number of backlight zones. Also, to reduce the computational costs, the RGB frame 402a may be segmented into separated image block (e.g., 504 blocks) for processing by the CPU 320.
[0071] In particular embodiments, a global dimming (GD) and local dimming (LD) algorithm 410 (also interchangeably herein referred to as GD/LD algorithm 410) running on the CPU 320 may receive the reduced resolution RGB frame 402a’ from the mapped buffer 308. The GD/LD algorithm 410 may perform a series of steps 412a, 414a, 416a, and 418a to compute a backlight intensity for backlight zones (e.g., LEDs) and a global dimming gain or scale factor for next frame 402b (e.g., frame n). In particular embodiments, the GD/LD algorithm 410 may be configured to compute brightness level and maximum gray level of each image block for local dimming and global dimming in parallel for a better computation efficiency. Also, this computation may be carried out at multiple image blocks concurrently. It should be noted that although a downscaling step (e.g., downscale step 322 of FIG. 3) is not shown in the global dimming pipeline 400, the downscaling step may also be included and performed prior to backlight stats estimation step 412a. For instance, if the RGB frame 402a’ is not sufficiently downscaled or further downscaling is needed, then the GD/LD algorithm 410 may perform downscaling similar to the downscaling discussed in the downscale step 322 prior to the backlight stats estimation 412a.
[0072] In the backlight stats estimation step 412a, the GD/LD algorithm 410 may compute BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone. As discussed with respect to step 324 in FIG. 3, backlight stats estimation 412a may include estimating a max RGB value for each backlight zone, such as max RGB values shown in matrix 325 of FIG. 3. In some embodiments, the BLU stats may be calculated based on original RGB values associated with a RGB frame.
More specifically, the BLU stats are calculated based on original RGB values of the frame that was received by the graphics rendering engine 303 and not based on adjusted RGB values (e.g., scaled up RGB values due to global dimming). Since there are no RGB adjustments made in the first frame 402a, the BLU stats are estimated directly based on corresponding RGB values associated with the reduced resolution RGB frame 402a’. However, if a RGB frame is adjusted (e.g., RGB values of frame are scaled up) as discussed in subsequent frames (e.g., frame n, n+1 , etc.), then the RGB frame needs to be re-adjusted or re-scaled back to its original RGB values priorto estimating the BLU stats. An adjusted RGB frame (e.g., RGB values scaled up) may be re-adjusted back to its original RGB values based on global dimming gain or scale factor. This is further discussed in detail below with respect to backlight stats estimation step 412b performed for next frame 402b (e.g., frame n).
[0073] Responsive to estimating the BLU stats, the GD/LD algorithm 410 may perform global dimming gain calculation 414a and level mapping 416a. In some embodiments, steps 414a and 416a may be performed in parallel. In other embodiments, steps 414a and 416a may be performed in a sequential manner (i.e., one after the other). In the level mapping step 416a, the GD/LD algorithm 410 may map the zone statistics (e.g., BLU stats) computed in step 412a, for each backlight zone, to a brightness and/or dimming value using a particular technique. The brightness and/or dimming value for a backlight zone may correspond to a BLU intensity with which to power a particular LED in that zone. For example, if the grayscale values are given between 0-100 and a grayscale value for a zone is given 50, then BLU intensity of 60% is used to lighten up that zone. In particular embodiments, the BLU intensity with which the current frame 402a is displayed may depend upon global dimming gain and corresponding BLU intensity calculated based on previous frame’s BLU stats. Since there is no previous frame before the current frame 402a, the GD/LD algorithm 410 may calculate the BLU intensity forthe current frame 402a using a custom-built lookup table (LUT). For instance, the GD/LD algorithm 410 may use the LUT to map the statistics or BLU stats to a brightness value or backlight intensity. For instance, the lookup table may include predetermined brightness and/or dimming values corresponding to different BLU stats (e.g., max values) and the GD/LD algorithm 410 may use this data to map each of the statistic or BLU stat associated with a backlight zone to a corresponding brightness/dimming value indicated in the lookup table.
[0074] In some embodiments, to perform local dimming in addition to global dimming discussed herein, the GD/LD algorithm 410 may use a gamma curve for low brightness zones (e.g., zones with low/dark gray levels) and saturate at certain threshold (e.g., max value less than or equal to 20). Stated differently, the GD/LD algorithm 410 may find backlight zones whose max grayscale value (e.g., max RGB value) in the BLU stats is less than the certain threshold and only dim those zones to a particular brightness value using the lookup table.
For instance, the backlight zones corresponding to dark or low gray levels may be dimmed by their corresponding brightness/dimming values in the lookup table, whereas medium and high gray levels may be left untouched.
[0075] In particular embodiment, the level mapping step 416a may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones. The initial backlight matrix may be representative of a BLU intensity with which to display the current frame 402a. Simply displaying based on the initial backlight matrix produced after the level mapping 416a may be prone to some artifacts (e.g., backlight flickering artifacts, over-dimming artifacts, halo effects, etc.).
[0076] In the post filtering step 418a, the GD/LD algorithm 410 may perform post filtering on the initial backlight matrix produced after the level mapping step 416a in order to correct one or more artifacts, as discussed elsewhere herein. In particular embodiments, the post filtering 418a may include the GD/LD algorithm 410 spatially as well as temporally filtering or smoothening the brightness values in the initial backlight matrix to minimize the one or more artifacts. As an example and not by way of limitation, the GD/LD algorithm 410 may perform the spatial filtering by using a spatial dilation and/or gaussian blur to minimize halo and overdimming artifacts in the initial backlight matrix. The GD/LD algorithm 410 may perform the temporal filtering by using recursive temporal averaging to remove backlight flickering artifacts occurring due to head motion or moving objects, especially in VR.
[0077] Responsive to performing the post filtering 418a (e.g., spatial-temporal filtering), the GD/LD algorithm 410 generates a final backlight matrix. Based on the final backlight matrix, a BLU driver (e.g., BLU driver 332) may output a backlight intensity 420a (e.g., brightness levels) that is used along with the display RGB 422a to generate the display 430a. The resulting display 430a (i.e., RGB + backlight) may be presented on a screen of the display system, such as display system 1000.
[0078] In the global dimming gain calculation 414a, the GD/LD algorithm 410 may calculate a new BLU intensity for a subsequent/next frame (e.g., frame 402b or frame n) and a corresponding global dimming scale or gain factor to scale RGB values of the subsequent frame based on the BLU intensity. In some embodiments, computations for global dimming discussed herein may be done in a time frame between two consecutive frames. For example, the computations for global dimming (e.g., scaling up RGB values) may be done between frame n-1 and frame n or frame n and frame n+1. In particular embodiments, the GD/LD algorithm 410 may calculate the global dimming scale or gain factor (GainGo) for the subsequent frame based on following equation:
1
GainGD = T N; —ew Blu ; I -ntensity (1)
[0079] As depicted in the above equation, the global dimming gain or scale factor to scale up RGB values is inversely proportional to the new BLU intensity. That is, the global dimming gain value increases with decreasing BLU intensity. By way of an example, if the image statistics (e.g., BLU stats) for the current frame 402a results in a new BLU intensity of 50%, then the global dimming gain for scaling up RGB values of next frame 402b will be 2.0. The RGB values of the next frame 402b will be multiplied by 2 but the BLU intensity for the backlight zones is reduced by 50%. It should be noted that the new backlight intensity calculated for the next frame may be different from backlight intensity 420a that is used for displaying the current frame (e.g., frame 402a). For example, the backlight intensity computed for the next frame (e.g., frame 402b) may be 50%, whereas the backlight intensity used for the current frame (e.g., frame 402a) may be 70%.
[0080] In particular embodiments, the GD/LD algorithm 410 may calculate the new backlight intensity for the next or subsequent frame (e.g., frame 402b or frame n) based on max RGB or gray values computed in the BLU stats estimation step 412a for the current frame (e.g., frame 402a or frame n-1). An accumulated histogram is generated using the maximum gray values computed from the BLU stats estimated step 412a. One such histogram 212 is shown for example in FIG. 2. For a given percentile in the accumulated histogram, a threshold gray level value (e.g., 240) is taken. Stated differently, the threshold could be chosen using the accumulated histogram by setting a target percentile. For example, if the target percentile is set to 90%, then gray level corresponding to the 90th percentile of the accumulated histogram is taken as the threshold. In particular embodiments, the target percentile for choosing the threshold may be determined in a heuristic way or what global dimming really aims at. For instance, the target percentile may be determined based on whether the goal is power saving or better visual quality. A particular lookup table (LUT) may be used for achieving the specific goal. For example, if the goal is better visual quality, then an up-concave LUT that is more conservative than a linear LUT may be used to determine the target percentile for choosing the threshold. In some embodiments, a max value of all RGB values in the BLU stats may be used to choose the threshold. This may avoid clipping (e.g., RGB values saturating at a certain value such as 255), but this also may limit the power saving amount.
[0081] Once the threshold grayscale value is determined, it may be converted into a new BLU intensity for the next or subsequent frame. In some embodiments, the threshold may be converted into the new BLU intensity using a LUT. For instance, the LUT may contain different BLU intensities corresponding to different threshold grayscale values. One such example correspondence between the different BLU intensities and grayscale values is shown in FIG. 5. By way of an example and without limitation, the LUT may contain a BLU intensity of 30% for threshold grayscale value of 75, a BLU intensity of 50% for threshold grayscale value of 127, a BLU intensity of 75% for threshold gray value of 200, a BLU intensity of 100%
for threshold grayscale value of 255, etc. The GD/LD algorithm 410 may use the LUT for determining a BLU intensity corresponding to the threshold it has calculated earlier. In some embodiments, different LUTs may contain varying or different BLU intensities for a same threshold grayscale value and the GD/LD algorithm 410 may use an appropriate LUT depending on whether its aim is power saving or better visual quality. For instance, a first LUT (e.g., up-concave LUT) is directed towards better visual quality as it results in a higher BLU intensity for a given threshold, which means a low global dimming gain, and therefore low chances of clipping (e.g., values being clipped at highest RGB value 255) and occurrence of artifacts due to the clipping. Whereas a second LUT (e.g., linear LUT) may be directed towards power savings as it results in a lower BLU intensity for a given threshold, which means a higher global dimming gain to scale up the RGB.
[0082] FIG. 5 illustrates an example graph 500 depicting an example correspondence between BLU intensities and gray levels. The example correspondence depicted here may be according to a particular lookup table. The BLU intensity varies from 0-100, where 0 is the least/no BLU intensity and 100 is the highest BLU intensity. Here, the BLU intensities are depicted in the Y-axis of the graph 500. The gray levels (0-255) have been normalized to range between 0-100, where 0 may represent a black image, 50 may represent a gray image, and 100 may represent a fully white image. The normalized gray levels are depicted in the X- axis of the graph 500. As depicted, the BLU intensity increases linearly with increasing normalized gray scale level. This may be the case with one of the LUTs. However, it should be noted that the BLU intensity may be different or behave differently for the same gray level according to a different LUT, as discussed above. As depicted, for a normalized gray level of 35, the BLU intensity that may be used for a frame is 55%, as indicated by reference numeral 502. Also, for the BLU intensity 55%, clipping level is set to 10%, which basically means that 10% of RGB values in an image frame may be clipped at a certain value (e.g., max RGB value of 255) when the RGB values are scaled up according to the global dimming gain that is calculated based on the 55% BLU intensity using equation (1).
[0083] Generally, the amount of clipping depends on the target percentile that is chosen for the threshold grayscale. Also, the amount of clipping may generally increase with decreasing BLU intensity. More specifically, if the BLU intensity is low, then using equation (1), the global dimming gain by which the RGB values are scaled up will be high and therefore, there are high chances of more RGB values being clipped. As an example, if the BLU intensity is 50%, then using equation (1) above, the global dimming gain will be 2, which is used to scale up the RGB values of a frame by a factor of 2 (i.e., multiplying RGB values by 2). If the original RGB values are already in higher range (e.g., 100-200), then a lot of values when scaled up will be clipped at a certain value (e.g., 255). Although, the reduced backlight intensity and corresponding large amount of clipping may achieve power savings, but the large amount
of clipping may also lead to visual artifacts. Whereas, if the backlight intensity is high (e.g., 90%), then the RGB values are only scaled up by a small amount (e.g., scaled up by 1.11 based on 90% BLU intensity). This may prevent clipping and achieve better visual quality, but on the downside may not be very power efficient as 90% backlight intensity is used to generate a display. Therefore, the new BLU intensity and corresponding global dimming gain may be computed based on whether the aim is power saving or better visual quality, and target percentile and LUT for the computation may be chosen accordingly.
[0084] FIG. 6 illustrates example images 602, 604, 606, and 608 depicting global dimming with different clipping levels. Specifically, image 602 is an original image i.e. , image with original RGB values and without any readjustments. The image 602 includes an area 603 with a group of high gray levels. These high gray levels may be clipped or converged to a certain value (e.g., 255) depending on a certain threshold. Image 604 is a readjusted image with 5% clipping and power saving of 15%. Image 606 is a readjusted image with 15% clipping and power saving of 24%. Image 608 is a readjusted image with 30% clipping and power saving of 36%. As can be observed from these images 604, 606, and 608, power savings increases with the amount of clipping. However, it should be noted that while increased power savings may be achieved with increased clipping, visual quality may suffer due to the increased clipping. As such, the amount of clipping may depend on whether one wants more power save or better visual quality.
[0085] Referring back to global dimming gain calculation step 414a, once a BLU intensity for the next frame is calculated as discussed above, a global dimming gain 440a may be accordingly calculated using the equation (1) above. The global dimming gain 440a may then be passed to the next or subsequent frame 402b. As depicted in FIG. 4, the global dimming gain 440a may be passed to the GPU 302 for RGB adjustment as well as to the CPU 320 for backlight intensity adjustment. Using the global dimming gain 440a, global dimming may be performed for the next frame i.e., frame n or RGB frame 402b. The global dimming is now discussed below with respect to the frame 402b.
[0086] As depicted, the graphics rendering engine 303 (e.g., ATW compositor) may receive a second RGB frame 402b. The second RGB frame 402b may come after the first RGB frame 402a. The graphics rendering engine 303 may also receive the global dimming gain 440a, which has been calculated based on BLU stats of the previous frame 402a. Using the global dimming gain 440a, the graphics rendering engine 303 may adjust the RGB values of the second frame 402b to generate an adjusted RGB frame 404b. In particular embodiments, adjusting the RGB values may include scaling up the RGB values of the second frame 402b. By way of an example and without limitation, if the second RGB frame 402b is a uniform gray image (e.g., RGB average value of 127) and the global dimming gain is 2, then all the RGB values of the frame 402b are globally scaled up by multiplying the RGB values by
2 (e.g., RGB values scaled up to 254). Stated differently, if the global dimming scalar or gain is 2, then all the RGB values are doubled in the linear RGB domain. It should be noted that the global dimming gain for the first frame (e.g., 402a or frame n-1) is 1 , meaning that RGB values of the first frame do not change. Also, it should be noted that ATW compositor and scaling up RGB are computationally expensive. As such, they are incorporated into a single process.
[0087] As discussed earlier, some of the RGB values may be clipped at a certain value when scaled up. The amount of clipping may depend on whether one wants more power save or better visual quality. Different LUTs may be utilized depending on how much clipping (e.g., power save) is desired. For instance, a up-concave LUT is more conservative and may prevent clipping than a linear LUT because for a given normalized gray level, the up-concave LUT may result in a higher BLU intensity (e.g., meaning a low global dimming gain).
[0088] The graphics rendering engine 303 may store adjusted GB frame 404b (e.g., frame with scaled up RGB values) in the front buffer 306. The DPU 334 may receive the adjusted RGB frame 404b from the front buffer 306 and may perform one or more postprocessing steps, as discussed elsewhere herein. The DPU 334 may output an adjusted display RGB 422b, which may be used along with adjusted backlight intensity 420b to generate a display 430b.
[0089] To compute the adjusted backlight intensity 420b and a new backlight intensity for subsequent frame (e.g., frame n+1), the GPU 302 may transfer the adjusted RGB frame 404a from the front buffer 306 to the mapped buffer 308 so that the CPU 320 may be able to efficiently process the adjusted RGB frame 404a to compute BLU stats for current frame. As discussed elsewhere herein, prior to storing the adjusted RGB frame 404b in the mapped buffer 308, the adjusted RGB frame 404b may be downscaled for efficient processing by the CPU 320.
[0090] In particular embodiments, the GD/LD algorithm 410 running on the CPU 320 may receive a reduced resolution version of the adjusted RGB frame 404b from the mapped buffer 308. The CPU 320 may also receive the global dimming gain 440a (computed based on previous frame 402a), as indicated by reference numeral 450. In some embodiments, the CPU 320 and/or the GD/LD algorithm 410 may use the global dimming gain 440a fortemporal filtering to minimize certain artifacts (e.g., flickering artifacts). For example, the current frame (e.g., frame n) may be considerably different from previous frame (e.g., frame n-1) and this would cause flickering. Also, since the current frame is downscaled from its original resolution to a smaller resolution, some information may be missing that would again cause some flickering. Therefore, to reduce these flickering artifacts, the GD/LD algorithm 410 may perform temporal filtering based on the global dimming gain 440a calculated based on previous frame stats or data.
[0091] In the backlight stats estimation step 412b, the GD/LD algorithm 410 may compute BLU stats for each backlight zone to represent a grayscale or brightness level of a portion of the image within that backlight zone. As discussed elsewhere herein, the backlight stats estimation 412b may include estimating a max RGB value for each backlight zone. The BLU stats may be calculated based on original RGB values associated with the RGB frame 402b. More specifically, the BLU stats are calculated based on original RGB values of the frame 402b that was received by the graphics rendering engine 303 and not based on adjusted RGB values associated with the adjusted RGB frame 404b received from the mapped buffer 308. To obtain the original RGB values, the GD/LD algorithm 410 upon receiving the adjusted RGB frame 404b may re-scale the RGB values associated with the adjusted RGB frame 404b by dividing the RGB values of the adjusted RGB frame 404b by the global dimming gain 440a. As an example, if the global dimming gain is 2, then the RGB values are divided by 2 to obtain the original RGB values for the adjusted RGB frame 404b.
[0092] Responsive to estimating the BLU stats, the GD/LD algorithm 410 may perform global dimming gain calculation 414b and level mapping 416b, as discussed elsewhere herein. In particular embodiments, the global dimming gain 440a may be incorporated into the level mapping 416b. From the global dimming gain 440a, the BLU intensity may be determined using equation (1) discussed above. The actual BLU intensity for the current frame (e g., frame n) may be calculated as the inverse of the global dimming gain 440a. This BLU intensity may be incorporated into the level mapping 416b to ensure that brightness and/or dimming values that are calculated in the level mapping 416b are adjusted according to this BLU intensity. For example, if the BLU intensity associated with the global dimming gain 440a is 50%, then brightness values or backlight intensity that is computed in the level mapping 416b for the current frame (e.g., 402b or frame n) is globally reduced by 50% (e.g., all brightness values are reduced by 50%).
[0093] The level mapping step 416b may output an initial backlight matrix, which may include an array of brightness and/or dimming values corresponding to a plurality of backlight zones. The initial backlight matrix may be representative of a BLU intensity with which to display the current frame 402b. Simply displaying based on the initial backlight matrix produced after the level mapping 416b may be prone to some artifacts (e.g., backlight flickering artifacts, over-dimming artifacts, halo effects, etc.). In the post filtering step 418b, the GD/LD algorithm 410 may perform post filtering (e.g., spatial-temporal filtering) on the initial backlight matrix produced after the level mapping step 416a in order to correct one or more artifacts, as discussed elsewhere herein. Responsive to performing the post filtering 418b, the GD/LD algorithm 410 generates a final backlight matrix. Based on the final backlight matrix, a BLU driver (e.g., BLU driver 332) may output an adjusted backlight intensity 420b (e.g., backlight intensity globally adjusted based on global dimming gain received from
previous frame) that is used along with the adjusted display RGB 422b to generate the display 430b.
[0094] In the global dimming gain calculation 414a, the GD/LD algorithm 410 may calculate a new BLU intensity for a subsequent/next frame (e.g., frame n+1) and a corresponding global dimming scale or gain 440b to scale RGB values of the subsequent frame based on the new BLU intensity. The GD/LD algorithm may compute the new BLU intensity based on selecting a threshold for a target percentile and then converting the threshold to the BLU intensity using a specific LUT. More specifically, an accumulated histogram is generated using the maximum gray values computed from the backlight stats estimation step 412b. For a given percentile, threshold may be taken. This threshold may be converted into a new BLU intensity using a LUT, as shown for example in FIG. 5. From this new BLU intensity, the global dimming gain 440b for scaling RGB values and adjusting backlight intensity of subsequent frame (e.g., frame n+1) may be calculated. The global dimming gain 440b may be calculated using equation (1) discussed above. The computed global dimming gain 440b is then passed to the next or subsequent frame for processing the next frame. In this way, global dimming may be performed for a series of frames and iterations, where, at each iteration, RGB values and backlight intensity are globally adjusted for a current frame based on previous frame’s data (e.g., global dimming gain computed based on BLU stats of previous frame). Only the first frame in the series of frames is displayed according to its original RGB value. In addition to the global dimming, local dimming (discussed with respect to FIG. 3) may also be performed at each iteration.
[0095] In some embodiments, a dramatic change in a global dimming gain (equivalently BLU intensity) from a previous global dimming gain may cause flickering. For example, if frames change dramatically from dark to bright, then it may cause flickering. One such example scenario is depicted in FIG. 7. FIG. 7 illustrates three example consecutive frames To, T-i, and T2 that may be displayed via a display system, such as display system 1000. Global dimming discussed herein may be performed on these frames. As shown in FIG. 7, the frames To, Ti, and T2 change dramatically from dark (as shown in frame To) to bright (as shown in frame T2). This may cause flickering. To prevent it from happening, a slow adaptation technique may be implemented using a queue or other techniques. Slow adaptation technique may be implemented based on the global dimming gains computed from previous frames and stored in a queue, as shown for example in FIG. 8. So, the actual global dimming gain for the current frame under processing may be determined by taking an average value of all previous global dimming gains in the queue.
[0096] FIG. 8 illustrates an example slow adaptation technique to minimize artifacts associated with a plurality of frames. Specifically, FIG. 8 illustrates an example queue 800 to store global dimming gains associated with the plurality of frames To, Ti, T2, T3, and TN. Using
the queue 800, slow adaptation technique may be implemented to minimize artifacts, such as flickering artifacts. As illustrated, there is no global dimming gain stored in the queue 800 for the first frame since there is no previous frame data. Based on the first frame To data (e.g., BLU stats), the GD/LD algorithm 410 may calculate a global dimming gain of 2.00 to adjust the RGB values and backlight intensity of second frame T-i. The computed global dimming gain is stored in the queue 800. For the next frame T2, the GD/LD algorithm 410 may calculate a global dimming gain of 1.7 based on the previous frame T1 data. Instead of using the global dimming gain of 1.7, an average of current global dimming gain of 1.7 and previous global dimming gain(s) (e.g., 2) may instead be taken to determine a global dimming gain of 1 .85 to use forthe current frame i.e., T2. Forthe next frame T3, the GD/LD algorithm 410 may calculate a global dimming gain of 0.5 based on the previous frame T2 data. Since there is significant difference between the current global dimming gain and previous gain, an average of current global dimming gain of 0.5 and previous global dimming gains (e.g., 2.0 and 1.7) may be taken to determine a global dimming gain of 1.40 to use for the current frame i.e., T3. Similarly, an average global dimming gain of 1.1 may be computed for frame TN. With the slow adaptation technique discussed herein, flickering may be minimized. Also, depending on the size of the queue (e.g., queue 800), flickering or amount of power save may be determined.
[0097] In some embodiments, the size of a queue that is used for slow adaptation technique may vary. For instance, VR devices (e.g., display system 1000) may support multiple frames rates, for example, 60Hz, 72Hz, 90Hz, 120Hz, etc. As the frame rate increases, the severity of flickering artifacts may also increase. Stated differently, higher the frame rate, higher are the changes of severe flickering artifacts. Therefore, depending on the frame rate of the device (e.g., display system 1000), the queue size (or the speed of slow adaptation) may be varied. For instance, if the frame rate increases, the queue size may also increase to minimize the flickering. But, at low frame rates, the queue size may decrease to achieve more power savings.
[0098] FIG. 9 illustrates an example method 900 for global dimming, in accordance with particular embodiments. The method may begin at step 910, where a computing system may receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones. The sequence of image frames may be consecutive image frames, as shown, for example, frames To, T1, and T2 in FIG. 7. Each of the sequence of image frames may include a plurality of color components, such as RGB color components or channels. The display may be associated with an artificial reality system, such as the artificial reality system 1000 shown in FIG. 10. The artificial reality system may be a virtual reality headset.
[0099] At step 920, the computing system may compute backlight unit statistics (i.e., BLU stats) of the first image frame. The backlight unit statistics may represent grayscale levels
(e.g., RGB values) for the plurality of backlight zones. In particular embodiments, computing the backlight unit statistics may include computing, for each color component of a plurality of color components (e.g., RGB color components) in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones and then determining, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components, as discussed for example in the backlight stats estimation step 412a in FIG. 4.
[0100] At step 930, the computing system may compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame. In particular embodiments, computing the global dimming gain may include generating an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determining, for a target percentile in the accumulated histogram, a threshold grayscale value; converting the threshold grayscale value to a particular backlight unit intensity using a lookup table; and computing the global dimming gain using the particular backlight unit intensity, as discussed for example in the global dimming gain calculation step 414a in FIG. 4. In particular embodiments, the global dimming gain is inversely proportional to the particular backlight unit intensity, as shown in the equation (1) discussed herein.
[0101] At step 940, the computing system may adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame. In particular embodiments, adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame may include scaling up RGB color values of the second image frame and reducing the backlight unit intensity of the plurality of backlight zones for displaying the second image frame, as discussed for example with respect to RGB frame 402b in FIG. 4.
[0102] Particular embodiments may repeat one or more steps of the method of FIG. 9, where appropriate. Although this disclosure describes and illustrates particular steps of the method of FIG. 9 as occurring in a particular order, this disclosure contemplates any suitable steps of the method of FIG. 9 occurring in any suitable order. Moreover, although this disclosure describes and illustrates an example method for global dimming, including the particular steps of the method of FIG. 9, this disclosure contemplates any suitable method for global dimming, including any suitable steps, which may include a subset of the steps of the method of FIG. 9, where appropriate. Furthermore, although this disclosure describes and illustrates particular components, devices, or systems carrying out particular steps of the method of FIG. 9, this disclosure contemplates any suitable combination of any suitable components, devices, or systems carrying out any suitable steps of the method of FIG. 9.
[0103] FIG. 10 illustrates an example of a display system, in particular, an artificial reality system 1000 worn by a user 1002. The display system or the artificial reality system 1000 may be used to implement some of the embodiments/examples disclosed herein. The artificial reality system 1000 may be configured to operate as a virtual reality display, an augmented reality display, and/or a mixed reality display. In particular embodiments, the artificial reality system 1000 may comprise a head-mounted device (“HMD”) 1004, a controller 1006, and a computing system 1008. The HMD 1004 may be worn over the user’s eyes and provide visual content (e.g., VR or AR content) to the user 1002 through internal displays (not shown). The HMD 1004 may have two separate internal displays, one for each eye of the user 1002. As illustrated in FIG. 10, the HMD 1004 may completely cover the user’s field of view. By being the exclusive provider of visual information to the user 1002, the HMD 1004 achieves the goal of providing an immersive artificial-reality experience.
[0104] The HMD 1004 may have external-facing cameras, such as the two forwardfacing cameras 1005A and 1005B shown in FIG. 10. While only two forward-facing cameras 1005A-B are shown, the HMD 1004 may have any number of cameras facing any direction (e.g., an upward-facing camera to capture the ceiling or room lighting, a downward-facing camera to capture a portion of the user’s face and/or body, a backward-facing camera to capture a portion of what’s behind the user, and/or an internal camera for capturing the user’s eye gaze for eye-tracking purposes). The external-facing cameras are configured to capture the physical environment around the user and may do so continuously to generate a sequence of frames (e.g., as a video).
[0105] The 3D representation may be generated based on depth measurements of physical objects observed by the cameras 1005A-B. Depth may be measured in a variety of ways. In particular embodiments, depth may be computed based on stereo images. For example, the two forward-facing cameras 1005A-B may share an overlapping field of view and be configured to capture images simultaneously. As a result, the same physical object may be captured by both cameras 1005A-B at the same time. For example, a particular feature of an object may appear at one pixel PA in the image captured by camera 1005A, and the same feature may appear at another pixel PB in the image captured by camera 1005B. As long as the depth measurement system knows that the two pixels correspond to the same feature, it could use triangulation techniques to compute the depth of the observed feature. For example, based on the camera 1005A’s position within a 3D space and the pixel location of pA relative to the camera 1005A’s field of view, a line could be projected from the camera 1005A and through the pixel pA. A similar line could be projected from the other camera 1005B and through the pixel pB. Since both pixels are supposed to correspond to the same physical feature, the two lines should intersect. The two intersecting lines and an imaginary line drawn between the two cameras 1005A and 1005B form a triangle, which could be used to compute
the distance of the observed feature from either camera 1005A or 1005B or a point in space where the observed feature is located.
[0106] In particular embodiments, the pose (e.g., position and orientation) of the HMD 1004 within the environment may be needed. For example, in order to render the appropriate display for the user 1002 while he is moving about in a virtual environment, the system 1000 would need to determine his position and orientation at any moment. Based on the pose of the HMD, the system 1000 may further determine the viewpoint of either of the cameras 1005A and 1005B or either of the user’s eyes. In particular embodiments, the HMD 1004 may be equipped with inertial-measurement units (“IMU”). The data generated by the IMU, along with the stereo imagery captured by the external-facing cameras 1005A-B, allow the system 1000 to compute the pose of the HMD 1004 using, for example, SLAM (simultaneous localization and mapping) or other suitable techniques.
[0107] In particular embodiments, the artificial reality system 1000 may further have one or more controllers 1006 that enable the user 1002 to provide inputs. The controller 1006 may communicate with the HMD 1004 or a separate computing unit 1008 via a wireless or wired connection. The controller 1006 may have any number of buttons or other mechanical input mechanisms. In addition, the controller 1006 may have an IMU so that the position of the controller 1006 may be tracked. The controller 1006 may further be tracked based on predetermined patterns on the controller. For example, the controller 1006 may have several infrared LEDs or other known observable features that collectively form a predetermined pattern. Using a sensor or camera, the system 1000 may be able to capture an image of the predetermined pattern on the controller. Based on the observed orientation of those patterns, the system may compute the controller’s position and orientation relative to the sensor or camera.
[0108] The artificial reality system 1000 may further include a computer unit 1008. The computer unit may be a stand-alone unit that is physically separate from the HMD 1004 or it may be integrated with the HMD 1004. In embodiments where the computer 1008 is a separate unit, it may be communicatively coupled to the HMD 1004 via a wireless or wired link. The computer 1008 may be a high-performance device, such as a desktop or laptop, or a resource-limited device, such as a mobile phone. A high-performance device may have a dedicated GPU and a high-capacity or constant power source. A resource-limited device, on the other hand, may not have a GPU and may have limited battery capacity. As such, the algorithms that could be practically used by an artificial reality system 1000 depends on the capabilities of its computer unit 1008.
[0109] FIG. 11 illustrates an example network environment 1 100 associated with an augmented reality (AR)Zvirtual reality (VR) system or a social-networking system. Network environment 1 100 includes a client system 1130, a VR (or AR) or social-networking system
1160, and a third-party system 1 170 connected to each other by a network 1 110. Although FIG. 1 1 illustrates a particular arrangement of client system 1 130, VR or social-networking system 1160, third-party system 1 170, and network 1 1 10, this disclosure contemplates any suitable arrangement of client system 1130, AR/VR or social-networking system 1 160, third- party system 1170, and network 1110. As an example and not by way of limitation, two or more of client system 1 130, ARA/R or social-networking system 1 160, and third-party system 1170 may be connected to each other directly, bypassing network 1 110. As another example, two or more of client system 1130, ARA/R or social-networking system 1 160, and third-party system 1170 may be physically or logically co-located with each other in whole or in part. Moreover, although FIG. 11 illustrates a particular number of client systems 1130, AR/VR or social-networking systems 1160, third-party systems 1 170, and networks 1 1 10, this disclosure contemplates any suitable number of client systems 1 130, ARA/R or social-networking systems 1 160, third-party systems 1170, and networks 11 10. As an example and not by way of limitation, network environment 1100 may include multiple client system 1130, ARA/R or social-networking systems 1160, third-party systems 1 170, and networks 1 110.
[0110] This disclosure contemplates any suitable network 1 110. As an example and not by way of limitation, one or more portions of network 11 10 may include an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, or a combination of two or more of these. Network 1 1 10 may include one or more networks 1 110.
[0111] Links 1150 may connect client system 1 130, AR/VR or social-networking system system 1160, and third-party system 1 170 to communication network 1 110 or to each other. This disclosure contemplates any suitable links 1 150. In particular embodiments, one or more links 1150 include one or more wireline (such as for example Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS)), wireless (such as for example Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)), or optical (such as for example Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH)) links. In particular embodiments, one or more links 1 150 each include an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portion of the PSTN, a cellular technology-based network, a satellite communications technology-based network, another link 1 150, or a combination of two or more such links 1150. Links 1 150 need not necessarily be the same throughout network environment 1 100. One or more first links 1150 may differ in one or more respects from one or more second links 1150.
[0112] In particular embodiments, client system 1130 may be an electronic device
including hardware, software, or embedded logic components or a combination of two or more such components and capable of carrying out the appropriate functionalities implemented or supported by client system 1130. As an example and not by way of limitation, a client system 1130 may include a computer system such as a desktop computer, notebook or laptop computer, netbook, a tablet computer, e-book reader, GPS device, camera, personal digital assistant (PDA), handheld electronic device, cellular telephone, smartphone, augmented/virtual reality device, other suitable electronic device, or any suitable combination thereof. This disclosure contemplates any suitable client systems 1130. A client system 1 130 may enable a network user at client system 1 130 to access network 11 10. A client system 1130 may enable its user to communicate with other users at other client systems 1130.
[0113] In particular embodiments, client system 1130 may include a client application 1132 operable to provide various computing functionalities, services, and/or resources, and to send data to and receive data from the other entities of the network 11 10, such as the AR/VR or social-networking system 1 160 and/or the third-party system 1170. For example, the client application 1132 may be a social-networking application, an artificial-intelligence related application, a virtual reality application, an augmented reality application, an artificial reality or a mixed reality application, a camera application, a messaging application for messaging with users of a messaging network/system, a gaming application, an internet searching application, etc.
[0114] In particular embodiments, the client application 1132 may be storable in a memory and executable by a processor of the client system 1130 to render user interfaces, receive user input, send data to and receive data from one or more of the AR/VR or socialnetworking system 1 160 and the third-party system 1 170. The client application 1132 may generate and present user interfaces to a user via a display of the client system 1 130.
[0115] In particular embodiments, AR/VR or social-networking system 1 160 may be a network-addressable computing system that can host an online Virtual Reality environment, an augmented reality environment, or social network. AR/VR or social-networking system 1160 may generate, store, receive, and send social-networking data, such as, for example, user-profile data, concept-profile data, social-graph information, or other suitable data related to the online social network. Social-networking or AR/VR system 1 160 may be accessed by the other components of network environment 1100 either directly or via network 11 10. As an example and not by way of limitation, client system 1130 may access social-networking or AR/VR system 1 160 using a web browser, or a native application associated with socialnetworking or AR/VR system 1 160 (e.g., a mobile social-networking application, a messaging application, another suitable application, or any combination thereof) either directly or via network 1 1 10. In particular embodiments, social-networking or AR/VR system 1160 may include one or more servers 1162. Each server 1 162 may be a unitary server or a distributed
server spanning multiple computers or multiple datacenters. Servers 1162 may be of various types, such as, for example and without limitation, a mapping server, web server, news server, mail server, message server, advertising server, file server, application server, exchange server, database server, proxy server, another server suitable for performing functions or processes described herein, or any combination thereof. In particular embodiments, each server 1 162 may include hardware, software, or embedded logic components or a combination of two or more such components for carrying out the appropriate functionalities implemented or supported by server 1162. In particular embodiments, social-networking or AR/VR system 1160 may include one or more data stores 1 164. Data stores 1 164 may be used to store various types of information. In particular embodiments, the information stored in data stores 1164 may be organized according to specific data structures. In particular embodiments, each data store 1164 may be a relational, columnar, correlation, or other suitable database. Although this disclosure describes or illustrates particular types of databases, this disclosure contemplates any suitable types of databases. Particular embodiments may provide interfaces that enable a client system 1 130, a social-networking or AR/VR system 1 160, or a third-party system 1170 to manage, retrieve, modify, add, or delete, the information stored in data store 1164.
[0116] In particular embodiments, social-networking or AR/VR system 1 160 may store one or more social graphs in one or more data stores 1 164. In particular embodiments, a social graph may include multiple nodes — which may include multiple user nodes (each corresponding to a particular user) or multiple concept nodes (each corresponding to a particular concept) — and multiple edges connecting the nodes. Social-networking or AR/VR system 1160 may provide users of the online social network the ability to communicate and interact with other users. In particular embodiments, users may join the online social network via social-networking or AR/VR system 1 160 and then add connections (e.g., relationships) to a number of other users of social-networking or AR/VR system 1 160 to whom they want to be connected. Herein, the term “friend” may refer to any other user of social-networking or AR/VR system 1160 with whom a user has formed a connection, association, or relationship via social-networking or AR/VR system 1 160.
[0117] In particular embodiments, social-networking or AR/VR system 1160 may provide users with the ability to take actions on various types of items or objects, supported by social-networking or AR/VR system 1 160. As an example and not by way of limitation, the items and objects may include groups or social networks to which users of social-networking or AR/VR system 1 160 may belong, events or calendar entries in which a user might be interested, computer-based applications that a user may use, transactions that allow users to buy or sell items via the service, interactions with advertisements that a user may perform, or other suitable items or objects. A user may interact with anything that is capable of being
represented in social-networking or AR/VR system 1 160 or by an external system of third- party system 1 170, which is separate from social-networking or AR/VR system 1 160 and coupled to social-networking or AR/VR system 1 160 via a network 1 1 10.
[0118] In particular embodiments, social-networking or AR/VR system 1 160 may be capable of linking a variety of entities. As an example and not by way of limitation, socialnetworking or AR/VR system 1 160 may enable users to interact with each other as well as receive content from third-party systems 1 170 or other entities, or to allow users to interact with these entities through an application programming interfaces (API) or other communication channels.
[0119] In particular embodiments, a third-party system 1 170 may include one or more types of servers, one or more data stores, one or more interfaces, including but not limited to APIs, one or more web services, one or more content sources, one or more networks, or any other suitable components, e.g., that servers may communicate with. A third-party system 1170 may be operated by a different entity from an entity operating social-networking or AR/VR system 1 160. In particular embodiments, however, social-networking or AR/VR system 1160 and third-party systems 1170 may operate in conjunction with each other to provide social-networking services to users of social-networking or AR/VR system 1 160 or third-party systems 1 170. In this sense, social-networking or AR/VR system 1 160 may provide a platform, or backbone, which other systems, such as third-party systems 1 170, may use to provide social-networking services and functionality to users across the Internet.
[0120] In particular embodiments, a third-party system 1 170 may include a third-party content object provider. A third-party content object provider may include one or more sources of content objects, which may be communicated to a client system 1130. As an example and not by way of limitation, content objects may include information regarding things or activities of interest to the user, such as, for example, movie show times, movie reviews, restaurant reviews, restaurant menus, product information and reviews, or other suitable information. As another example and not by way of limitation, content objects may include incentive content objects, such as coupons, discount tickets, gift certificates, or other suitable incentive objects. [0121] In particular embodiments, social-networking or AR/VR system 1160 also includes user-generated content objects, which may enhance a user’s interactions with socialnetworking or AR/VR system 1 160. User-generated content may include anything a user can add, upload, send, or “post” to social-networking or AR/VR system 1160. As an example and not by way of limitation, a user communicates posts to social-networking or AR/VR system 1160 from a client system 1 130. Posts may include data such as status updates or other textual data, location information, photos, videos, links, music or other similar data or media. Content may also be added to social-networking or AR/VR system 1160 by a third-party through a “communication channel," such as a newsfeed or stream.
[0122] In particular embodiments, social-networking or AR/VR system 1160 may include a variety of servers, sub-systems, programs, modules, logs, and data stores. In particular embodiments, social-networking or AR/VR system 1160 may include one or more of the following: a web server, a mapping server, action logger, API-request server, relevance- and-ranking engine, content-object classifier, notification controller, action log, third-party- content-object-exposure log, inference module, authorization/privacy server, search module, advertisement-targeting module, user-interface module, user-profile store, connection store, third-party content store, or location store. Social-networking or AR/VR system 1 160 may also include suitable components such as network interfaces, security mechanisms, load balancers, failover servers, management-and-network-operations consoles, other suitable components, or any suitable combination thereof. In particular embodiments, socialnetworking or AR/VR system 1160 may include one or more user-profile stores for storing user profiles. A user profile may include, for example, biographic information, demographic information, behavioral information, social information, or other types of descriptive information, such as work experience, educational history, hobbies or preferences, interests, affinities, or location. Interest information may include interests related to one or more categories. Categories may be general or specific. As an example and not by way of limitation, if a user “likes” an article about a brand of shoes the category may be the brand, or the general category of “shoes” or “clothing.” A connection store may be used for storing connection information about users. The connection information may indicate users who have similar or common work experience, group memberships, hobbies, educational history, or are in any way related or share common attributes. The connection information may also include user- defined connections between different users and content (both internal and external). A web server may be used for linking social-networking or AR/VR system 1 160 to one or more client systems 1 130 or one or more third-party system 1170 via network 1 110. The web server may include a mail server or other messaging functionality for receiving and routing messages between social-networking or AR/VR system 1 160 and one or more client systems 1 130. An API-request server may allow a third-party system 1170 to access information from socialnetworking or AR/VR system 1160 by calling one or more APIs. An action logger may be used to receive communications from a web server about a user’s actions on or off socialnetworking or AR/VR system 1 160. In conjunction with the action log, a third-party-content- object log may be maintained of user exposures to third-party-content objects. A notification controller may provide information regarding content objects to a client system 1 130. Information may be pushed to a client system 1130 as notifications, or information may be pulled from client system 1 130 responsive to a request received from client system 1130. Authorization servers may be used to enforce one or more privacy settings of the users of social-networking or ARA/R system 1160. A privacy setting of a user determines how
particular information associated with a user can be shared. The authorization server may allow users to opt in to or opt out of having their actions logged by social-networking or ARA/R system 1 160 or shared with other systems (e.g., third-party system 1 170), such as, for example, by setting appropriate privacy settings. Third-party-content-object stores may be used to store content objects received from third parties, such as a third-party system 1 170. Location stores may be used for storing location information received from client systems 1 130 associated with users. Advertisement-pricing modules may combine social information, the current time, location information, or other suitable information to provide relevant advertisements, in the form of notifications, to a user.
[0123] FIG. 12 illustrates an example computer system 1200. In particular embodiments, one or more computer systems 1200 perform one or more steps of one or more methods described or illustrated herein. In particular embodiments, one or more computer systems 1200 provide functionality described or illustrated herein. In particular embodiments, software running on one or more computer systems 1200 performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Particular embodiments include one or more portions of one or more computer systems 1200. Herein, reference to a computer system may encompass a computing device, and vice versa, where appropriate. Moreover, reference to a computer system may encompass one or more computer systems, where appropriate.
[0124] This disclosure contemplates any suitable number of computer systems 1200. This disclosure contemplates computer system 1200 taking any suitable physical form. As example and not by way of limitation, computer system 1200 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented/virtual reality device, or a combination of two or more of these. Where appropriate, computer system 1200 may include one or more computer systems 1200; be unitary or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 1200 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems 1200 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 1200 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
[0125] In particular embodiments, computer system 1200 includes a processor 1202, memory 1204, storage 1206, an input/output (I/O) interface 1208, a communication interface 1210, and a bus 1212. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
[0126] In particular embodiments, processor 1202 includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor 1202 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 1204, or storage 1206; decode and execute them; and then write one or more results to an internal register, an internal cache, memory 1204, or storage 1206. In particular embodiments, processor 1202 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 1202 including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor 1202 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory 1204 or storage 1206, and the instruction caches may speed up retrieval of those instructions by processor 1202. Data in the data caches may be copies of data in memory 1204 or storage 1206 for instructions executing at processor 1202 to operate on; the results of previous instructions executed at processor 1202 for access by subsequent instructions executing at processor 1202 or for writing to memory 1204 or storage 1206; or other suitable data. The data caches may speed up read or write operations by processor 1202. The TLBs may speed up virtual- address translation for processor 1202. In particular embodiments, processor 1202 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 1202 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 1202 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors 1202. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
[0127] In particular embodiments, memory 1204 includes main memory for storing instructions for processor 1202 to execute or data for processor 1202 to operate on. As an example and not by way of limitation, computer system 1200 may load instructions from storage 1206 or another source (such as, for example, another computer system 1200) to memory 1204. Processor 1202 may then load the instructions from memory 1204 to an internal register or internal cache. To execute the instructions, processor 1202 may retrieve the instructions from the internal register or internal cache and decode them. During or after
execution of the instructions, processor 1202 may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor 1202 may then write one or more of those results to memory 1204. In particular embodiments, processor 1202 executes only instructions in one or more internal registers or internal caches or in memory 1204 (as opposed to storage 1206 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory 1204 (as opposed to storage 1206 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 1202 to memory 1204. Bus 1212 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor 1202 and memory 1204 and facilitate accesses to memory 1204 requested by processor 1202. In particular embodiments, memory 1204 includes random access memory (RAM). This RAM may be volatile memory, where appropriate. Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory 1204 may include one or more memories 1204, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
[0128] In particular embodiments, storage 1206 includes mass storage for data or instructions. As an example and not by way of limitation, storage 1206 may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage 1206 may include removable or non-removable (or fixed) media, where appropriate. Storage 1206 may be internal or external to computer system 1200, where appropriate. In particular embodiments, storage 1206 is non-volatile, solid-state memory. In particular embodiments, storage 1206 includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplates mass storage 1206 taking any suitable physical form. Storage 1206 may include one or more storage control units facilitating communication between processor 1202 and storage 1206, where appropriate. Where appropriate, storage 1206 may include one or more storages 1206. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
[0129] In particular embodiments, I/O interface 1208 includes hardware, software, or both, providing one or more interfaces for communication between computer system 1200 and one or more I/O devices. Computer system 1200 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication
between a person and computer system 1200. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 1208 for them. Where appropriate, I/O interface 1208 may include one or more device or software drivers enabling processor 1202 to drive one or more of these I/O devices. I/O interface 1208 may include one or more I/O interfaces 1208, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
[0130] In particular embodiments, communication interface 1210 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system 1200 and one or more other computer systems 1200 or one or more networks. As an example and not by way of limitation, communication interface 1210 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface 1210 for it. As an example and not by way of limitation, computer system 1200 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system 1200 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these. Computer system 1200 may include any suitable communication interface 1210 for any of these networks, where appropriate. Communication interface 1210 may include one or more communication interfaces 1210, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
[0131] In particular embodiments, bus 1212 includes hardware, software, or both coupling components of computer system 1200 to each other. As an example and not by way of limitation, bus 1212 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an
INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus 1212 may include one or more buses 1212, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
[0132] Herein, a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
[0133] Herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context.
[0134] The scope of this disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend within the scope of the appended claims. Moreover, although this disclosure describes and illustrates respective embodiments herein as including particular components, elements, feature, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would comprehend within the scope of the appended claims. Furthermore, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative. Additionally,
although this disclosure describes or illustrates particular embodiments as providing particular advantages, particular embodiments may provide none, some, or all of these advantages.
Claims
1. A method, implemented by a computing system, comprising: receiving a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; computing backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; computing a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
2. The method of Claim 1 , wherein adjusting, using the global dimming gain, the color values and the backlight unit intensity of the second image frame comprises: scaling up the color values of red, green, and blue (RGB) color components of the second image frame; and reducing the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
3. The method of Claim 1 or Claim 2, wherein computing the backlight unit statistics of the first image frame comprises: computing, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determining, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
4. The method of any preceding Claim, wherein computing the global dimming gain comprises: generating an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determining, for a target percentile in the accumulated histogram, a threshold grayscale value; converting the threshold grayscale value to a particular backlight unit intensity using a lookup table; and computing the global dimming gain using the particular backlight unit intensity; optionally, wherein the global dimming gain is inversely proportional to the particular backlight unit intensity.
5. The method of any preceding Claim, wherein the display is associated with an
artificial reality system; optionally, wherein the artificial reality system is a virtual reality headset.
6. One or more computer-readable non-transitory storage media embodying software that is operable when executed to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
7. The media of Claim 6, wherein to adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame, the software is further operable when executed to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
8. The media of Claim 6 or Claim 7, wherein to compute the backlight unit statistics of the first image frame, the software is further operable when executed to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
9. The media of any one of Claims 6 to 8, wherein to compute the global dimming gain, the software is further operable when executed to: generate an accumulated histogram based on maximum grayscale values determined for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity; optionally, wherein the global dimming gain is inversely proportional to the particular
backlight unit intensity.
10. The media of any one of Claims 6 to 9, wherein the display is associated with an artificial reality system; optionally, wherein the artificial reality system is a virtual reality headset.
11 . A system comprising: one or more processors; and one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to: receive a first image frame of a sequence of image frames to be shown on a display having a plurality of backlight zones; compute backlight unit statistics of the first image frame, the backlight unit statistics representing grayscale levels for the plurality of backlight zones; compute a global dimming gain for adjusting color values and backlight unit intensity of a second image frame of the sequence of image frames based on the backlight unit statistics of the first image frame; and adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame.
12. The system of Claim 1 1 , wherein to adjust, using the global dimming gain, the color values and the backlight unit intensity of the second image frame, the one or more processors are further operable when executing the instructions to cause the system to: scale up the color values of red, green, and blue (RGB) color components of the second image frame; and reduce the backlight unit intensity of the plurality of backlight zones for displaying the second image frame.
13. The system of Claim 1 1 or Claim 12, wherein to compute the backlight unit statistics of the first image frame, the one or more processors are further operable when executing the instructions to cause the system to: compute, for each color component of a plurality of color components in the first image frame, an average grayscale value of the color component across a plurality of pixels within each backlight zone of the plurality of backlight zones; and determine, for each color backlight zone, a maximum grayscale value among average values of the plurality of color components.
14. The system of any one of Claims 11 to 13, wherein to compute the global dimming gain, the one or more processors are further operable when executing the instructions to cause the system to: generate an accumulated histogram based on maximum grayscale values determined
for the plurality of backlight zones during computation of the backlight unit statistics; determine, for a target percentile in the accumulated histogram, a threshold grayscale value; convert the threshold grayscale value to a particular backlight unit intensity using a lookup table; and compute the global dimming gain using the particular backlight unit intensity; optionally, wherein the global dimming gain is inversely proportional to the particular backlight unit intensity.
15. The system of any one of Claims 11 to 14, wherein the display is associated with an artificial reality system.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/301,629 US12288531B2 (en) | 2023-04-17 | 2023-04-17 | Systems and methods for performing global dimming in artificial reality systems |
| US18/301,629 | 2023-04-17 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024220177A1 true WO2024220177A1 (en) | 2024-10-24 |
Family
ID=90719633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/019578 Ceased WO2024220177A1 (en) | 2023-04-17 | 2024-03-12 | Systems and methods for performing global dimming in artificial reality systems |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US12288531B2 (en) |
| WO (1) | WO2024220177A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2025011395A (en) * | 2023-07-11 | 2025-01-24 | セイコーエプソン株式会社 | Circuit device and display system |
| US20250349269A1 (en) * | 2024-05-10 | 2025-11-13 | Faurecia Irystec, Inc. | Backlight extraction and control for local dimming display |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110128302A1 (en) * | 2009-11-30 | 2011-06-02 | Byoungchul Cho | Liquid crystal display and local dimming control control method thereof |
| US20120086713A1 (en) * | 2010-10-08 | 2012-04-12 | Byoungchul Cho | Liquid crystal display and local dimming control method thereof |
| US20210193058A1 (en) * | 2019-12-19 | 2021-06-24 | Silicon Works Co., Ltd. | Image data processing apparatus and method for implementing local dimming |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7176878B2 (en) | 2002-12-11 | 2007-02-13 | Nvidia Corporation | Backlight dimming and LCD amplitude boost |
| US20080218467A1 (en) | 2007-03-05 | 2008-09-11 | Himax Technologies Limited | Backlight controller and scaling factor using full range search and local range search method |
| US20090322800A1 (en) * | 2008-06-25 | 2009-12-31 | Dolby Laboratories Licensing Corporation | Method and apparatus in various embodiments for hdr implementation in display devices |
| US8289265B2 (en) | 2008-07-15 | 2012-10-16 | Himax Technologies Limited | Backlight controller, display device using the same and method for controlling backlight module |
| US10665181B2 (en) | 2017-06-28 | 2020-05-26 | Apple Inc. | Backlights with dynamic dimming ranges |
| WO2010135438A1 (en) | 2009-05-20 | 2010-11-25 | Marvell World Trade Ltd. | Liquid crystal display backlight control |
| KR101341020B1 (en) | 2009-12-11 | 2013-12-13 | 엘지디스플레이 주식회사 | Method for driving local dimming of liquid crystal display device and apparatus thereof |
| TWI517126B (en) | 2009-12-16 | 2016-01-11 | 杜比實驗室特許公司 | Method and system for backlight control using statistical attributes of image data blocks |
| US9135864B2 (en) * | 2010-05-14 | 2015-09-15 | Dolby Laboratories Licensing Corporation | Systems and methods for accurately representing high contrast imagery on high dynamic range display systems |
| WO2011162040A1 (en) | 2010-06-23 | 2011-12-29 | シャープ株式会社 | Image display device and image display method |
| WO2013056117A1 (en) | 2011-10-13 | 2013-04-18 | Dolby Laboratories Licensing Corporation | Methods and apparatus for backlighting dual modulation display devices |
| CN104995903B (en) * | 2013-02-21 | 2019-07-09 | 皇家飞利浦有限公司 | Improved HDR image encoding and decoding method and device |
| RU2704882C2 (en) | 2013-11-04 | 2019-10-31 | Долби Лэборетериз Лайсенсинг Корпорейшн | Single- and multi-modulation projection systems with global brightness control |
| CN115359567A (en) * | 2014-06-14 | 2022-11-18 | 奇跃公司 | Method and system for generating virtual and augmented reality |
| US10726801B2 (en) * | 2015-04-17 | 2020-07-28 | Microsoft Technology Licensing, Llc | Display defect compensation with localized backlighting |
| US10803828B2 (en) | 2017-02-24 | 2020-10-13 | Apple Inc. | Locally adaptive backlight control |
| US20210299879A1 (en) * | 2018-10-27 | 2021-09-30 | Gilbert Pinter | Machine vision systems, illumination sources for use in machine vision systems, and components for use in the illumination sources |
| US10699673B2 (en) | 2018-11-19 | 2020-06-30 | Facebook Technologies, Llc | Apparatus, systems, and methods for local dimming in brightness-controlled environments |
| US10964275B2 (en) | 2019-04-18 | 2021-03-30 | Apple Inc. | Displays with adjustable direct-lit backlight units and adaptive processing |
| CN110120021B (en) | 2019-05-05 | 2021-04-09 | 腾讯科技(深圳)有限公司 | Image brightness adjusting method and device, storage medium and electronic device |
| CN113257162B (en) | 2020-02-12 | 2022-12-27 | 北京小米移动软件有限公司 | Screen brightness adjusting method and device and storage medium |
| WO2021194266A1 (en) * | 2020-03-26 | 2021-09-30 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
| CN114464143B (en) | 2020-11-10 | 2023-07-18 | 上海天马微电子有限公司 | Method for controlling backlight source of display device and display device |
| CN114530125B (en) | 2020-11-24 | 2024-01-16 | 上海天马微电子有限公司 | Method for controlling backlight source of display device and display device |
| JP7460913B2 (en) | 2021-02-26 | 2024-04-03 | 日亜化学工業株式会社 | Image display method and image display device |
| US11837181B2 (en) | 2021-02-26 | 2023-12-05 | Nichia Corporation | Color balancing in display of multiple images |
-
2023
- 2023-04-17 US US18/301,629 patent/US12288531B2/en active Active
-
2024
- 2024-03-12 WO PCT/US2024/019578 patent/WO2024220177A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110128302A1 (en) * | 2009-11-30 | 2011-06-02 | Byoungchul Cho | Liquid crystal display and local dimming control control method thereof |
| US20120086713A1 (en) * | 2010-10-08 | 2012-04-12 | Byoungchul Cho | Liquid crystal display and local dimming control method thereof |
| US20210193058A1 (en) * | 2019-12-19 | 2021-06-24 | Silicon Works Co., Ltd. | Image data processing apparatus and method for implementing local dimming |
Also Published As
| Publication number | Publication date |
|---|---|
| US12288531B2 (en) | 2025-04-29 |
| US20240347013A1 (en) | 2024-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11961431B2 (en) | Display processing circuitry | |
| US11037531B2 (en) | Neural reconstruction of sequential frames | |
| US11335077B1 (en) | Generating and modifying representations of dynamic objects in an artificial reality environment | |
| US11854230B2 (en) | Physical keyboard tracking | |
| US11451758B1 (en) | Systems, methods, and media for colorizing grayscale images | |
| US20220326527A1 (en) | Display System Optimization | |
| US12288531B2 (en) | Systems and methods for performing global dimming in artificial reality systems | |
| US20230162436A1 (en) | Generating and modifying an artificial reality environment using occlusion surfaces at predetermined distances | |
| KR20150093592A (en) | Method of and apparatus for generating an overdrive frame for a display | |
| US20230113746A1 (en) | Display peak power management for artificial reality systems | |
| KR20210010517A (en) | Posture correction | |
| EP4451092A1 (en) | Gaze based auto exposure control algorithm | |
| US20220230352A1 (en) | System and methods for graphics rendering and tracking | |
| EP4443869A1 (en) | Foveal region processing for artificial reality devices | |
| TW202303374A (en) | High quality ui elements with frame extrapolation | |
| US20240062508A1 (en) | Monochrome and Color Images Fusion for Artificial Reality Systems | |
| US20230317023A1 (en) | Local dimming for artificial reality systems | |
| US20240371112A1 (en) | Augmented reality capture | |
| US10063834B2 (en) | Method and apparatus for providing video enhancements for display images | |
| US20230386057A1 (en) | Electronic apparatus and image processing method thereof | |
| US20240071042A1 (en) | Removing Artifacts in Images Caused by Light Emitted by Electronic Screens | |
| US20230215074A1 (en) | Rendering workload management for extended reality | |
| CN115914493A (en) | Method and system for enhancing the quality of frame sequence | |
| CN111583163A (en) | AR-based face image processing method, device, equipment and storage medium | |
| US12488414B1 (en) | Generating different versions of visual content for display |
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: 24717505 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 24717505 Country of ref document: EP Kind code of ref document: A1 |