The present application relates generally to systems and methods for displaying graphics in a computing device, and in particular, to systems and methods for displaying graphics in a portable or mobile device.
Modern mobile devices such as smart phones, tablet computers or other handheld or wearable computing devices provide their human users a variety of functionality such as communication, productivity, and entertainment, enabled in part by software including a mobile device's operating system and numerous available mobile applications (“apps”) that can be installed on top of the operating system. Some mobile devices are equipped with a large, high resolution, high refresh rate display that can provide a user an enhanced visual experience, for example when playing mobile gaming apps on the mobile devices.
Some embodiments are directed to a method for displaying a series of images by a computing device that comprises a graphic command module and a scene detection module. The method comprises receiving, by the scene detection module, a first graphic command output representing a first image from the graphic command module; and determining, by the scene detection module, a quality score of the first image based on the first graphic command output and a scale factor based on the quality score.
Some embodiments are directed to a computing device comprising a graphic command module configured to provide a graphic command output; a scene detection module coupled to the graphic command module and configured to: receive a first graphic command output representing a first image from the graphic command module; and determine a quality score of the first image based on the first graphic command output and a scale factor based on the quality score.
Some embodiments are directed to an apparatus comprising at least one display interface; at least one computer-readable storage device having stored thereon executable instructions; and at least one processor programmed by the executable instructions to perform a method comprising acts of: receiving a first graphic command output configured to cause a first image to be displayed by the at least one display interface; determining a quality score of the first image based on the first graphic command output and a scale factor based on the quality score.
Various aspects and embodiments will be described with reference to the following figures. It should be appreciated that the figures are not necessarily drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing.
Aspects of the present application relate to a graphics scene detection technique that provides an adaptive scale factor dependent on an image quality, such that certain images may be downscaled prior to being displayed to preserve system resources without significantly affecting image quality for a user.
Certain mobile apps such as mobile gaming apps command a significant amount of system resources such as graphics processing power, memory storage, and power consumption due in part to the amount of computation for rendering images each having a large number of pixels at high refresh rates for displaying to the user. This is particularly the case when an app is trying to maintain a high framerate per second (FPS) while displaying high resolution games using a large data bandwidth and computing power. When system resources become limited, a gaming app may no longer be able to sustain the FPS, leading to dropped frames, glitches, or other artifacts that may negatively impact a user's experience playing the mobile game.
The inventors have recognized and appreciated that certain images may be presented at a lower resolution to a user without being perceived as lower image quality. Some aspects of the present application provide a scene detection module in a computing device that determines a quality score from a graphic command output for an image. Depending on the quality score, the scene detection module may output a quality-aware scale factor that can be applied to reduce the pixel resolution of an image before displaying the image to a user. As a result, the computing device may be improved by saving system resources including memory bandwidth, processing power for other apps or instances, without negatively affecting a user's visual perception of the scene.
In some embodiments, the scene detection module may determine the quality score for an image using a perceptual image quality metric. A predetermined threshold may be provided such that when the quality score exceeds the threshold, it is deemed that the image has sufficiently high quality that displaying a downscaled version of the image with a lower pixel resolution may not be perceived as low quality to a user, and a scale factor for downscaling the image may be selected as a result. In some embodiments where a scale factor is already applied, an even lower, more aggressive scale factor may be selected by the scene detection module upon determination that the quality score exceeds the predetermined threshold to further reduce system resource consumption. The predetermined threshold need not be a constant value for all images and in some embodiments, the predetermined threshold may be dynamically adjusted based on one or more criteria during operation of the methods disclosed herein.
In some embodiments, the quality score may be determined by comparing an input image with a rescaled image. The rescaled image may be generated by first downscaling the input image by a scale factor to obtain an intermediate image. The intermediate image may have a lower pixel resolution than the input image. Subsequently, the intermediate image is upscaled to the same pixel resolution as the original input image and as the rescaled image. Because information in certain pixels are lost during the downscaling step to obtain the intermediate image, the rescaled image will demand less system resources for rendering compared to the original image. If the rescaled image is perceived as sufficiently close to the original input image such that the quality score exceeds the predetermined threshold, then the scene detection module may output the scale factor to apply further downscaling to the image. If the quality score does not exceed the threshold, the scene detection module may revert to a previous, less aggressive scale factor as output.
In some embodiments, the quality score may be determined by calculating a peak signal to noise ratio (PSNR) function between the input image and the rescaled version of the input image, although any suitable image quality metric may be used to determine the quality score.
Some aspects are directed to how the computing device utilizes the scale factor outputted by the scene detection module based on a first graphic command output to modify a second graphic command output. In some embodiments, a resolution controller is provided that receives the output scale factor from the scene detection module. The resolution controller may be coupled to a graphic command module that generates graphic command outputs. The resolution controller may supply additional commands to the graphic command module such that the second graphic command output is downscaled before being displayed to the user. In one example, the resolution controller may change a size of a framebuffer for a second image represented by the second graphic command output based on the scale factor.
The aspects and embodiments described above, as well as additional aspects and embodiments, are described further below. These aspects and/or embodiments may be used individually, all together, or in any combination of two or more, as the disclosure is not limited in this respect.
Computing device 10 includes a central processing unit (CPU) 12 having one or more processors, a graphics processing unit (GPU) 14 having one or more graphics processors, and a non-transitory computer-readable storage medium 16 that may include, for example, volatile and/or non-volatile memory. The memory 16 may store one or more instructions to program the CPU 12 and/or GPU 14 to perform any of the functions described herein. The computing device 10 may have one or more input devices and/or output devices, such as user input interface 18 and output interface 17 as illustrated in
Also as shown in
In some embodiments, computing device 10 may be a mobile device and the output interface 17 may include a high pixel resolution display. A pixel resolution may refer to pixel counts along both axis of a rectangular display surface e.g., a vertical axis and a horizontal an axis, or along a width and a height directions, or along a row and a column directions. The display may have a pixel resolution of 720p or 1,280×720, 1080p or 1,920×1,080, 2K or at least 2,048 pixels along one axis, UHD or 3,840×2,160, 4K or at least 4,096 pixels along one axis, 8K or at least 7,680 pixels along one axis, 10K or at least 10,240 pixels along one axis, or having higher or lower number of pixels along either axis than those enumerated. The display may support a frame rate, namely the frequency at which consecutive images or frames are displayed, of at least 24 FPS, at least 30 FPS, at least 48 FPS, at least 60 FPS, at least 120 FPS, at least 240 FPS, between 30 and 240 FPS, or any suitable frame rate.
Some embodiments as described below are directed to methods that can be executed by the CPU 12 and/or GPU 14 based on instructions that are stored on non-transitory storage medium 16. Such instructions may be software, program code, and firmware. Certain embodiments may be embodied in one or more modules. A module may be a software module embodied in instructions stored in a non-transitory machine-readable medium. A module may also alternatively or additionally be a hardware-implemented module, which is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In some embodiments, components within computing system 10 including one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain methods as described herein.
Still referring to
In
The original input image 337 and the resized image 335 are compared using a PSNR function at act 339. The result of the PSNR function, or the PSNR value between input image 337 and resized image 335 is provided as a quality score 332. In general, a higher PSNR value relates to a better image quality. At block 338, the PSNR value is compared to a predetermined threshold to determine the output scale factor. In the example shown, if the PSNR value is greater than the threshold, the output scale factor is selected to be the next scale factor of 0.5× applied during the act of downscaling 331A, as the quality score appears to indicate that the scaled image will be acceptable to the user, and thus the next scale factor is acceptable. On the other hand, if the PSNR value is equal to or exceeds the threshold, the comparison result suggests that the resized image 335 after scaled by the next scale factor at step 331A is not acceptable. As a result, a different scale factor will be selected as output. As shown in the example in
In some embodiments, the scene detection module keeps a list of previously used scale factors, for example 1×, 0.9×, 0.8×, 0.7×, 0.6×. When it is determined that a next scale factor of 0.5× does not provide a satisfactory quality score, the process 500A illustrated in
Depending on the result of a comparison of the quality score with the predetermined threshold, the scene detection module may select an output scale factor in any one of a number of ways. In some embodiments, it is not necessary that the output scale factor is selected between two choices, and in some embodiments the output scale factor may be a function of the quality score. For example, a more aggressive scale factor may be selected for output if the quality score indicates a higher quality rescaled image compared to the original input image. It is also not necessary that an output scale factor be a downscaling scale factor. For example, sometimes it may be determined that no scale factor is to be applied at all, or namely, a scale factor of 1 is to be used to preserve perceived image quality by a user for some images.
The threshold value for comparison with the quality score at block 338 may be determined in a number of ways. For example, the threshold value may be pre-determined by calibrating with images of known precepted quality by an average user. The pre-determined threshold value may be stored in one of the memory 16 prior during manufacturing of the computing device. In other examples, the pre-determined threshold value needs not be a constant and may be updated after shipment of the computing device to a user, for example to accommodate the user's person preference.
In
In
As shown in Table 1, during each iteration the logic table 450 is invoked, the next scale factor may be adjusted in increments of 0.1× depending on the comparison result in block 438 of the current iteration, as well as the comparison result in block 438 in a previous iteration. If for example both the current comparison result and the previous iteration's comparison result are “reject,” the scale factor increases 0.1× such that a less aggressive downscaling is applied to the input image to preserve image quality. The feedback loop in process 500C may continue to iterate until finally the next scale factor reverts to 1.0×.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art.
Such alterations, modifications, and improvements are intended to be part of this disclosure and are intended to be within the scope of the invention. Further, though advantages of the present invention are indicated, it should be appreciated that not every embodiment of the technology described herein will include every described advantage. Some embodiments may not implement any features described as advantageous herein and in some instances one or more of the described features may be implemented to achieve further embodiments. Accordingly, the foregoing description and drawings are by way of example only.
Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
This application claims the benefit under 35 U.S.C. 119(e) of U.S. Provisional Application Ser. No. 63/223,080, filed Jul. 19, 2021, entitled “GRAPHICS FUSION TECHNOLOGY SCENE DETECTION AND RESOLUTION CONTROLLER,” which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63223080 | Jul 2021 | US |