Method and system of human visual system-sensitive quality evaluation of images
By employing a weighted frequency metric that emphasizes low-frequency elements in the frequency domain, the method addresses the inadequacy of existing quality evaluation metrics for synthetic images, resulting in a more accurate reflection of human visual system perception.
Patent Information
- Application Number
- PCT/CN2023/118199
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-12
- Publication Date
- 2025-03-20
AI Technical Summary
Existing methods for evaluating the quality of synthetic images generated for virtual reality displays do not adequately account for the human visual system (HVS), leading to quality ratings that differ significantly from human perception.
The development of a weighted frequency metric, specifically a frequency weight peak signal-to-noise ratio (FW-PSNR) metric, which adapts to the complex characteristics of images by applying larger frequency weights to low-frequency elements in the frequency domain data, thereby better reflecting HVS perception.
This approach provides a more accurate and reliable objective quality metric that aligns with subjective HVS perception, enabling more effective training of algorithms for generating high-quality synthetic images.
Smart Images

Figure CN2023118199_20032025_PF_FP_ABST
Abstract
Description
METHOD AND SYSTEM OF HUMAN VISUAL SYSTEM-SENSITIVE QUALITY EVALUATION OF IMAGESBACKGROUND
[0001] Virtual or synthetic views can be generated by using image data from multiple images captured by one or more cameras. The synthetic views can be used to provide virtual reality (VR) displays with a desired perspective between the perspectives of the captured images. Evaluating the quality of the synthetic images in order to train the synthetic image generation algorithms, however, is difficult because known evaluation metrics, such as those that use signal-to-noise ratios, do not adequately factor the human visual system (HVS) . As a result, conventional objective quality ratings can be drastically different than what a person would intuitively consider the quality of a synthetic image.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The material described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements. In the figures:
[0003] FIG. 1A is a target image to demonstrate the sensitivity of the human visual system;
[0004] FIG. 1B is a synthesized image with depth corruption to compare to the image of FIG. 1A;
[0005] FIG. 1C is a synthesized image with texture noise to compare to the images of FIGS. 1A and 1B;
[0006] FIG. 2 is a schematic diagram of an image quality evaluation system according to at least one of the implementations herein;
[0007] FIG. 3 is a schematic diagram of an image quality evaluation device according to at least one of the implementations herein;
[0008] FIG. 4 is a flow chart of a method of human visual system (HVS) sensitive image quality evaluation according to at least one of the implementations herein;
[0009] FIGS. 5A-5B is a detailed flow chart of a method of human visual system (HVS) sensitive image quality evaluation according to at least one of the implementations herein;
[0010] FIG. 6A is a target image to demonstrate the HVS sensitive image quality evaluation according to at least one of the implementations herein;
[0011] FIG. 6B is a test image to be compared to the target image of FIG. 6A;
[0012] FIG. 6C is a distortion map between the target and test images of FIGS. 6A and 6B and without pixel shift desensitizing;
[0013] FIG. 6D is a distortion map between the target and test images of FIGS. 6A and 6B with pixel shift desensitizing according to at least one of the implementations herein;
[0014] FIG. 7A is a distortion map with depth corruption and between the images of FIGS. 6A and 6B according to at least one of the implementations disclosed herein;
[0015] FIG. 7B is a 2D spectrogram of the distortion map of FIG. 7A according to at least one of the implementations disclosed herein;
[0016] FIG. 7C is a distortion map with texture noise and between the images of FIGS. 6A and 6C according to at least one of the implementations disclosed herein;
[0017] FIG. 7D is a 2D spectrogram of the distortion map of FIG. 7C according to at least one of the implementations disclosed herein;
[0018] FIG. 7E is a close-up spatial domain version of the spectrogram of FIG. 7B showing low frequency distortion according to at least one of the implementations herein;
[0019] FIG. 7F is a close-up spatial domain version of the spectrogram of FIG. 7B showing high frequency distortion according to at least one of the implementations herein;
[0020] FIG. 7G is a close-up spatial domain version of the spectrogram of FIG. 7D showing low frequency distortion according to at least one of the implementations herein;
[0021] FIG. 7H is a close-up spatial domain version of the spectrogram of FIG. 7D showing high frequency distortion according to at least one of the implementations herein;
[0022] FIGS. 8A-8D are images of varying quality used during experiments to compare various image quality evaluation methods;
[0023] FIG. 9 is an illustrative diagram of an example system;
[0024] FIG. 10 is another illustrative diagram of an example system; and
[0025] FIG. 11 illustrates an example device, all arranged in accordance with at least some implementations of the present disclosure.DETAILED DESCRIPTION
[0026] One or more implementations are now described with reference to the enclosed figures. While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. Persons skilled in the relevant art will recognize that other configurations and arrangements may be employed without departing from the spirit and scope of the description. It will be apparent to those skilled in the relevant art that techniques and / or arrangements described herein also may be employed in a variety of other systems and applications other than what is described herein.
[0027] While the following description sets forth various implementations that may be manifested in architectures such as system-on-a-chip (SoC) architectures for example, implementation of the techniques and / or arrangements described herein are not restricted to particular architectures and / or computing systems and may be implemented by any architecture and / or computing system for similar purposes. For instance, various architectures employing, for example, multiple integrated circuit (IC) chips and / or packages, and / or various computing devices and / or consumer electronic (CE) devices such as servers, desktops, laptops, set top boxes, smartphones, tablets, camera arrays, and virtual reality (VR) or augmented reality (AR) headsets or other display devices, etc. may implement at least parts of the techniques and / or arrangements described herein. Further, while the following description may set forth numerous specific details such as logic implementations, types and interrelationships of system components, logic partitioning / integration choices, etc., claimed subject matter may be practiced without such specific details. In other instances, some material such as, for example, control structures and full software instruction sequences, may not be shown in detail in order not to obscure the material disclosed herein.
[0028] The material disclosed herein may be implemented in hardware, firmware, software, or any combination thereof. The material disclosed herein may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any medium and / or mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device) . For example, a machine-readable medium may include read only memory (ROM) ; random access memory (RAM) ; magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc. ) , and others. In another form, a non-transitory article, such as a non-transitory computer readable medium, may be used with any of the examples mentioned above or other examples except that it does not include a transitory signal per se. It does include those elements other than a signal per se that may hold data temporarily in a “transitory” fashion such as RAM and so forth.
[0029] References in the specification to "one implementation" , "an implementation" , "an example implementation" , etc., indicate that the implementation described may include a particular feature, structure, or characteristic, but every implementation may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same implementation. Further, when a particular feature, structure, or characteristic is described in connection with an implementation, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other implementations whether or not explicitly described herein.
[0030] Methods, devices, apparatuses, computing platforms, media, and articles are described herein related to human visual system-sensitive quality evaluation of images.
[0031] Many objective quality measurements are used to evaluate synthetic images. Synthetic image generation and motion tracking techniques are used to render virtual view images from known pre-collected reference views for example. Such image generation often results in ghost effects, folds, and holes for example, which usually can be accurately assessed by conventional noise ratio metrics used to evaluate image quality. These previous objective metrics, however, often yield quality scores contrary to what the human visual system (HVS) would intuitively expect. Specifically, although peak signal-to-noise ratio (PSNR) has been widely used in synthetic image quality evaluation, PSNR evaluation algorithms often assume pixel-wise independence and use element-wise measurement methods. For example, such objective measurements usually over emphasize small pixel shifts where brightness or color values are erroneously shifted a small number of pixels on an image. Such pixel shifts are not easily noticed by the human eye. Also, the object algorithms do not adequately factor relatively large areas of brightness and color inconsistency that is easily detected by the human eye when caused by generative processing of virtually synthesized images.
[0032] One evaluation technique that attempts to better factor the HVS uses pre-trained convolutional neural networks to evaluate image quality. This technique calculates the distances between deep embedded features from the networks. Such deep-learning-based metrics are adequate for perceptual similarity judgments on general images, but do not provide sufficient consistent high precision to determine quality of virtual view images with high quality (such as 4K or 8K) based on HVS perception.
[0033] Other PSNR-based metrics do factor HVS. One such evaluation technique uses discrete cosine transform (DCT) coefficients of the image data directly to provide more sensitivity to low frequency distributions. Specifically, such PSNR-HVS techniques apply the DCT transformation directly to the original and distorted images, meaning such DCTs describe the images themselves. Thus, this, technique has no way to adequately handle overemphasis of pixel shift and no way to prioritize distribution of color inconsistencies. In other words, the coefficients in a PSNR-HVS system are frequencies of image data (image chroma or luminance values) changes directly, which is inadequate to analyze distributions of color or brightness inconsistencies or distortions. An immersive PSNR evaluation technique desensitizes PSNR to pixel shifts and global component differences which are unnoticeable to the viewers, but does not factor distribution (or frequency) of distortions which is visible to the HVS, thereby resulting in inaccurate subjective evaluations..
[0034] To resolve these issues, the present method and system generate image quality evaluation metrics, and particularly a frequency weight may be used to compute a weighted frequency metric, that is in one form, a frequency weight peak signal-to-noise ratio (FW-PSNR) metric. The weighted frequency metric is an objective quality metric that adapts to complex characteristics of an image or a video. By one form, the objective weighted frequency metric may be used with generated or synthetic images that were modified from an original image or is a virtual image generated from multiple source images. The weighted frequency metric may be an objective score that reflects subjective HVS perception of color or intensity balancing errors, or other types of errors, introduced by video processing and virtual view generation for example. By one example form, the greater the weighted frequency metric score, the better the subjective quality of the image being evaluated.
[0035] The weighted frequency metric can accurately characterize HVS perception by analyzing distributions of distortions (or contrasts) in color or luminance between an image being evaluated and a target or ground truth image. Specifically, a distortion map between the two images shows changes (or contrast) in brightness and color from one image to another image. Features may be used to generate the distortion map to desensitize the distortion map to small pixel shift and global component differences in order to increase the accuracy of the resulting metric. Thus, the distortion map may be created for marking errors that are sensitive to the human eye substantially or exclusively. The distortion map then may be converted to the frequency domain where changes in brightness and color (or in other words, distortions) at small pixel intervals (or small spatial areas between changes) show as high frequencies in the frequency domain or on a spectrogram (e.g., analogous to shorter wavelengths) , but where low frequency areas have more uniform brightness and / or color over relatively larger pixel areas between changes in brightness or color distortion (which is analogous to longer wavelengths) . The human visual system is more sensitive to the low frequency changes. Thus, when distortions or contrast in color or brightness occur at low frequency areas of an image, this is more noticeable to a person than contrast or distortions at a high frequency. Contrast herein refers to a change in color or brightness from an image being evaluated to another image being used for comparison to determine distortions.
[0036] Referring to FIG. 1 for example, a ground truth image 100 is shown next to a synthesized image 102 with low frequency depth corruption 106 and 108, and a synthesized image 104 with high frequency texture noise. The texture noise image 104 appears to have better subjective HVS quality even though many color consistency errors may exist throughout the image (such as every 4th pixel as a random example) . The depth corruption image 102 appears of lesser quality because the distortion is concentrated in several parts 106 and 108 (or in other words, the concentrated area has low frequency distortion) , and when the distortion is more uniform (not changing) over the concentrated area, this is more likely to draw the attention of a person’s eyes.
[0037] The weighted frequency metric is generated by applying larger frequency weights to the low frequency elements in frequency domain data, which may be in the form of a 2D spectrogram. The frequency weights may be applied when computing a representative error of the distortion, such as a mean square error factoring frequency weights (MSEFW) . The error then can be used to compute an objective frequency weighted metric score such as an FW-PSNR score for the image being analyzed. Other details are provided below.
[0038] The increased accuracy and reliability in this objective metric based on subjective HVS perception will permit significantly more accurate training of algorithms, such as with machine learning or neural network training, that generate the synthetic or other generated images to be displayed to a user. This may result in a much improved user experience in many different image display contexts, or greater image data accuracy when the image data is generated for analysis whether or not the images are to be displayed.
[0039] It also should be noted that the generation of the weighted frequency metric is adaptable to be used with many different types of frequency transforms as long as the resulting frequency domain data indicates low and high frequencies of distortions as described herein.
[0040] Referring now to FIG. 2, an image processing device or system 200 may be provided to generate the frequency weighted metric described herein. This metric may be used to evaluate the algorithms, devices, systems, and so forth that generated the image to be evaluated in the first place, although the metric may not be limited to such use.
[0041] The device 200 receives images 202 including an image to be evaluated and an image for comparison, which may be a target or ground truth image for this example but could be other types of images. The images 202 may be at least one pair of images where the images are separate pictures, or alternatively the generated and / or target image may be frames in a video sequence where one or more of the frames are to be analyzed. By one example, the images may be synthetic or virtual images such as for VR, AR, MR, or any other image that is a virtual view for positions between source camera positions. Such multi-view devices and notably, camera arrays, may provide visual applications including virtual navigation of a scene such as outside-in rendering from multiple views of an object (e.g., volume rendering) , generation of stereoscopic panoramas whether from two stereo cameras or from circular configurations of camera arrays (e.g., inside-out rendering for VR) , interactive multi-view video applications (e.g., teleconferencing) , etc. For synthetic views, the techniques to generate a metric discussed herein may be used in any context where a virtual image is to be generated for a view position that is between the view positions of at least two known input images. The input images 202 may be attained in any suitable manners such as image capture via cameras, image or graphics rendering, or such input images may be received from memory or another device for processing. For another example, synthetic images from super resolution reconstruction (i.e., upscaling interpolation) may benefit from the operations described herein as well since super resolution also has distortions after reconstruction. By one form, any image may be used for the evaluation as long as image data (whether from a source image or somewhere else) of a target image can be compared to the image data of the image being evaluated to form a distortion map.
[0042] The images 202 are then analyzed in two separate direction branches where the direction refers to a pixel-shift desensitizing operation used to generate the distortion maps. Here, a branch I→J 204 compares a pixel location of the generated image I to a search area of pixels on the target image J, while a branch J→I 206 compares a pixel location of the target image J to a search area of pixels on the generated image I. The comparisons are performed to find a minimum difference within the search areas to eliminate pixel differences that are highly unlikely to be noticed be the human eye and should not influence an HVS-sensitive distortion map. This is explained in greater detail below.
[0043] The following operations described with branch 204 are the same as that performed with branch 206 unless a difference in operation is described. The images 202 also may have image data in a color space such as RGB, YUV, and others including grey scales and so forth. The metric analysis may be performed separately for each color channel on each branch 204 and 206. By one form, the analysis is more accurate in a certain color space such as YUV where brightness is separated from color because the brightness information of the luminance (Y) has far more impact on the image detail discerned than colors (U, V) . In this case, a color conversion unit (not shown) may convert other color spaces such as RGB to YUV before separating the images 202 into color channels. A color space channel splitter 208 then may split the image data into its color channels, such as Y, U, and V, where each channel has a surface of image data of the respective color and brightness (Y, U, or V) .
[0044] Each channel may have a FW metric channel unit 210, 212, or 214 and numbered 1 to 3 here that generates a channel score that is subsequently combined into a single image score by an image score SI→J unit 216. It will be understood that three FW metric channel units are shown here for explanatory purposes and to clearly explain parallel operations of the channels, but in fact, only one such unit (or units less than the number of channels) may process all three color space channels, whether sequentially or simultaneously. Each FW metric channel unit 210, 212, and 214 has corresponding channel surface versions 222 and 224 of the target and generated images 202. A distortion map 226 is then generated using the channel surface versions 222 and 224. The distortion map 226 is converted into frequency domain data, here in the form of a 2D spectrogram 228. Magnitude values form the 2D spectrogram 228 are then weighted by frequency weights (represented here by its own weight spectrogram 230) to generate an error measurement that is in turn used to generate a channel score. This is performed the same or similar for each channel except that the channel surfaces have different image data depending on the channel. Once each channel has a channel score, the channel scores are combined by the image score unit 216.
[0045] Similarly, the branch 206 performs the same operations as branch 204 except generation of the distortion map is different as to the direction of the search for minimum pixel differences as mentioned above. The result here too is an image score generated by an image score SJ→I unit 218.
[0046] Thereafter, a direction selection unit 220 selects between the two direction image scores according to at least one criterium. By one example, the minimum direction image score is used as the final score for evaluation of the generated image of the input images 202.
[0047] Referring to FIG. 3, an image processing device or system 300 may be used to generate HSV sensitive weighted frequency metrics as described herein. By one example, form an image to be evaluated and a comparison image may be received and split into color space channels as described with system 200. Thus, a target channel surface 302 and a generated channel surface 304 both may be a single channel version of the same channel and respectively of target and generated images with a multi-channel color space. The operations described herein are repeated for each channel, such as with Y, U, and V channels.
[0048] The system 300 may have a distortion map unit 306 to indicate differences between the generated and target surfaces, a frequency transform unit 312 to convert the distortion map into the frequency domain, and an FW metric unit 314 to apply frequency weights to the distortion frequencies of the frequency domain to generate the HSV-sensitive weighted frequency channel score, and then combine the channel scores into an image score.
[0049] The distortion unit 306 has a global component difference (GCD) unit 308 and a Dmap-neighbor unit 310. The GCD unit 308 generates a global component difference (or distortion or representation) that usually is not visible to the human eye, and the Dmap-neighbor unit 310 determines the minimum difference between one pixel of one of the channel surfaces (target or generated) and multiple pixels in a pixel-shift search area of the other of the channel surfaces (target or generated) , thereby defining the direction of the channel being processed. The Dmap-neighbor unit 310 performs a search in the search area for the pixel with the minimum difference to a pixel on the opposite channel surface, and this is repeated for each pixel location on the channel surface currently being analyzed one pixel at a time and opposite to the search areas. The resulting distortion map for each channel is transformed into the frequency domain such as by 2D fast Fourier transform (2D FFT) by one example.
[0050] The FW metric unit 314 has a weight coefficient unit 316 that computes frequency weights, an error unit 318 that computes a representative error, such as an MSEFW, of the distortion map and by applying the frequency weights to frequency magnitudes of the frequency domain data. The computed error is then input to a channel score unit 320 to generate a channel score. These operations are repeated for each channel, either separately in parallel simultaneously with separate hardware, firmware, and / or software operations, or with shared hardware, firmware, and / or software used sequentially one channel after another, or in a context-switching manner as desired.
[0051] Once each channel provides a channel score from the channel score unit 320, an image score unit 322 combines the channel scores into a single image score. Also as mentioned with system 200, these operations are performed for two pixel shift searching directions and performed by the Dmap-neighbor unit 310. Once an image score is generated for both directions, a direction selection unit 324 than may select which of the direction image scores is to represent the generated image, and this may be performed by using at least one criterium. By one form, the minimum image score is selected as the score for the generated image being evaluated, although one or more other criteria could be used as well.
[0052] System or device 300 may be implemented in any suitable form factor device such as a server, personal computer, a laptop computer, a tablet, a phablet, a smart phone, a digital camera, a gaming console, a wearable device such as virtual reality (VR) head mounted displays (HDMs) , a display device, an all-in-one device, a two-in-one device, or the like. For one example, one or more of the components of device 300 may be incorporated into any multi-camera consumer or commercial electronic device to evaluate the images including in commercial telepresence systems featuring multiple cameras, or in virtual reality (VR) systems, and so forth.
[0053] Referring to FIG. 4, an example process 400 for human visual system-sensitive quality evaluation of images is arranged in accordance with at least some implementations of the present disclosure, and may include one or more operations 402–410, generally numbered evenly. Furthermore, process 400 may be described herein with reference to systems or devices 200, 300, 900, 1000, or 1100 of FIGS. 2, 3, and 9-11 respectively.
[0054] Process 400 may include “receive at least one first image having pixel image data” 402. Thus, the evaluation process may be directed to a single image to be evaluated or multiple images such as frames in a video sequence. The first image may be a generated or synthetic image constructed from source camera views and into a new perspective for the first image. Otherwise, super resolution images, or other types of images as desired may be the first image as long as a target (or ground truth) or other second image is available to be compared to the first image to be evaluated. The first image may have a multi-channel color space where the metric generation may proceed separately for each channel. Thus, the first image may be divided into channel surfaces or images before generating a distortion map for each channel. The second image that may be the target or ground truth image (or other image) for comparison is treated the same as the first image.
[0055] Process 400 may include “generate at least one distortion map between at least one version of the first image and at least one version of a second image. ” 404. Thus, to adequately characterize distributions of distortions, a distortion map may be generated between the first image to be evaluated and the second image. The distortion map may be generated by using an algorithm that desensitizes the map to small pixel shifts and global color or brightness component differences (GCDs) that are not usually noticed by the human eye to further increase the accuracy of the HVS-sensitive metric. As mentioned, a neighborhood or search area may be used on one of the first or second images to find a pixel that is a minimum difference to a pixel on the other of the first or second images. This search is performed for each pixel on the other image with a result that pixel shifts that are not visible to the human eye are removed as a factor in the analysis. The direction of the search (from first image to second image with search areas, or second image to first image with search areas) is reversed in a separate parallel analysis of the same images to obtain two directional image scores as described above with system 200 and 300. The generation of the distortion map also removes the GCD that is usually not visible to the human eye and that may be in a form of a single representative (such as an average) per pixel distortion or difference for an entire channel surface (or image) .
[0056] Regarding the term version, when no other descriptor is provided, a version of an image refers to any format of image data that represents or forms that image including pixel image data such as chroma or brightness values, image data in a specific color space (RGB, YUV, grey scale, and so forth) , resolution or scaling formats, versions with pre-processing such as denoising, corrections, enhancements, and so forth, particular image data processed values such as gradation values, depth values, and so forth, to name a few examples. The term version also may refer to intermediate neural network values output from a neural network layer when relevant.
[0057] Process 400 next may include “convert the distortion map into frequency domain data” 406, where the distortion map is converted into frequency domain data instead of only performing analysis directly on the image data (the chroma or luminance values) or by only analyzing the distortion map data directly. By one form, Fourier transform is used as the transform algorithm, but DCT, DST, or other types of frequency transforms could be used instead. By one form, fast Fourier transform (FFT) is used. By one example, the conversion to the frequency domain data may include generation of a 2D Fourier transform type of spectrogram or spectrum that characterizes the overall regularity of the distortion map. If the distortion of the original image is more concentrated (or more uniform) in space (spatial area) , then a larger concentrated space on a frequency spectrum will have a smaller low-frequency magnitude in the frequency domain data. As mentioned, low frequencies in the frequency spectrum are related to slowly varying distortion (which indicates distortion of the same type in a relatively large spatial area) while high frequencies reflect sharp transitions in distortion (or small spatial areas between changes in distortion) . In other words, the high frequencies occur when there are many changes in distortion in a relatively small pixel area of the distortion map. Such high frequency changes can be described as changes of distortion type that are usually scattered and separate distortions. Thus, the frequency spectrum emphasizes and / or characterizes the spatial distributions of distortion that significantly reflect HVS perception.
[0058] From this, it will be appreciated that may different types of transform from the spatial domain to the frequency domain can be used as long as distortion distributions are revealed in the frequency domain that can indicate low frequencies to be emphasized by the frequency weights.
[0059] Process 400 may include “determine at least one weighted frequency” 408, and this may include “apply the frequency weights to a version of the frequency domain data” 410. Specifically, weighted frequencies can be computed when computing an error to represent the distortions. This is performed by applying frequency weights to frequency magnitudes of the frequency domain space and that emphasize low frequencies as with HVS perception of the frequency domain data. Such an error may be a mean square error that factors the frequency weights (MSEFW) computed as a weighted means. The error then can be used to compute a score that is the weighted frequency metric. By one example, the error, based on the weighted frequencies, is used in a PSNR type of equation to compute the score as a FW-PSNR score. Scores may be computed for separate color space channels and then combined into a single image score.
[0060] Referring to FIGS. 5A-5B, an example process 500 for human visual system-sensitive quality evaluation of images, arranged in accordance with at least some implementations of the present disclosure, may include one or more operations 502–546, generally numbered evenly. Furthermore, process 500 may be described herein with reference to systems or devices 200, 300, 900, 1000, or 1100 of FIGS. 2, 3, and 9-11 respectively.
[0061] Process 500 may include “receive a generated image” 502, and “receive a target image” 504, as already described above with systems 200 and 300, and process 400.
[0062] Process 500 may include “pre-process the images” 506. Here any pre-processing of the generated image may be performed when necessary as long as such pre-processing does not reduce the accuracy of the evaluation. Such pre-processing could include resizing, cropping and rotation.
[0063] Process 500 may include “divide images into color space channels” 508. Also, as mentioned, the images may be divided into Y, U, and V color space channel surfaces for example. Any color space can be used as long as it can represent the colors that the human eye can perceive. Also as mentioned, color space conversion may be performed as a preliminary operation when the received images have various color spaces that are converted to the desired color space, such as YUV color space, for best results.
[0064] Process 500 may include “generate a channel distortion map” 510. Particularly, conventional distortion maps for PSNR calculate distortion in chroma or luminance value between a test image and a ground truth image at each pixel position with the same coordinates on the two images, referred to as point-to-point distortion. This captures small pixel shifts that the human eye ignores but that have an enormous impact on a resulting PSNR quality metric. Thus, the distortion map generated herein may use particular algorithms to desensitize the distortion map to distortions that are not noticed by the human eye and to have the distortion map clearly characterize or mark errors people will pay attention to at individual pixel positions. A distortion map may be generated separately for each different color space channel, such as Y, U, and V channels, using the divided channel surfaces or images.
[0065] Thus, operation 510 may include “determine GCD” 512. Since the human visual system is more sensitive to contrast than overall brightness or color differences, an overall or global difference can be determined and removed from the distortion map. This may involve calculating a global component difference (GCD) between two single-channel images I, J, and then subtracting the GCD from the remainder of the distortions to remove the overall or global distortion. The GCD may be calculated as follows:
[0066] where generated channel image I and target channel image J represent the color or brightness channel values (such as 0 to 255, or normalized values thereof) , where H and W represent the height and width of the image or channel surface respectively, and x and y represent the pixel position. The result is a single average per pixel global difference GCD for an entire image or channel surface.
[0067] Providing the distortion map 510 also may include “determine pixel shift minimum matches” 514. As described above, in a virtual viewpoint image synthesis, pixel positions in an image may be shifted. HVS is not sensitive to these small pixel shifts. One example solution used here is to search for the best match in a smaller neighborhood of the corresponding image position. This is reflected in the calculation of the distortion map which has operation 510 including “compute distortion map data” 516 and that is expressed as:
[0068] where B is the radius of the neighborhood of width W x height H to be searched by iterating through all positions in the search area as indicated by Jw. h, which represents the pixel shift distances. The size of the neighborhood (or search area or pixel shift area) W, H, and radius B are related to the image size, viewing distance, and subjective judgment criteria. Specifically, the neighborhood size is set by experimentation and by one form is 2 to 5 for non-high resolution images, and 5-10 for high resolution images. To compute the individual distortion map values then in the current example, each pixel location w, h of a neighborhood on image J may be tested to determine if it has a value closest to the value at pixel location x, y of image I to be the distortion distance. The minimized absolute distortion difference, while also subtracting out the GCD, then may be set as the distortion map value. This is repeated for each separate color space channel for direction I→J, and then repeated separately again for the opposite direction J→I where image I will have the search areas.
[0069] Referring to FIGS. 6A-6D as an example, Y channel images or surfaces are shown including a ground truth image 600, a generated image 602 to be evaluated, a distortion map 604 that includes distortions due to pixel shift, and a distortion map 606 that is desensitized to pixel shifts as in the present method. The ground truth and generated images 600 and 602 visually are very similar, except for some errors at the edges of the generated image 602. The distortion map 604 includes or marks many distortions that are not visible to the human eye. This is significant information that becomes mislabeled and factored in typical HSV sensitive analysis. The distortion map 606 desensitized by using the techniques described above, more clearly includes or marks distortions visible to HSV perception while dropping the other non-visible (to the HVS) distortions.
[0070] Process 500 may include “convert distortion map to frequency domain data” 518. This may involve applying 2D FFT to the distortion map to generate a 2D spectrogram with vertical and horizonal frequency values that may be in the form of complex numbers (a+ bi) . Thus, initially each element location (u, v for a frequency spectrum of size U, V) on a frequency spectrum has a horizontal complex value and a vertical complex value. These two-component initial complex values at each element location on a frequency spectrum may be combined such as averaged or some other combination to form a single complex value at each element location. Also as mentioned, the frequencies of the 2D spectrogram reduce in value as the element is closer to the center of the spectrogram. Thus, the outer edge of the spectrogram has the highest frequencies. Also as mentioned, many different transforms can be used, whether a different type of Fourier transform such as DFT, or other transforms such as DCT or DST for example as long as high and low frequencies can adequately characterize distortion distributions from the distortion map.
[0071] Once the distortion map is transformed into frequency domain data of the frequency domain, frequency analysis can be performed to generate a channel score. This may then have process 500 include “determine frequency weight coefficients” 520, where the frequency weights (or coefficients) will be used to compute a representative error, such as an MSE, of the distortion map. Thus, process 500 may include “compute spectral horizontal and vertical component weight factors” 522.
[0072] where s is a horizontal weight component factor, t is a vertical weight component factor, (U, V) is the frequency domain spectrogram width and height respectively, and (u, v) is a spectral element coordinate on the spectrogram. The negative of the exponent normalizes the frequency weight wu, v from 0 to 1. The functions (3a) with (3b) and (3c) of the weight components s and t may be a Gaussian functions that provide a larger weight as the element is positioned closer to the center of the spectrogram forming the frequency domain data, although other functions could be used instead as long as low frequencies are being provided the larger weights.
[0073] Operation 522 also may optionally include “apply image scaling constant” 524. For images of different sizes (when the generated image is a different size than the target image or the source images are different in sizes for example) , the weight functions (3b) and (3c) are scaled by a fixed scaling constant σ. The scaling constant σ may be set depending on the image sizes and may be set by experimentation. Thus, for evaluating the images of different sizes that have different width and / or height (X, Y) , and in turn resulting different frequency domain spectrum width (U) and / or height (V) , the scaling factor σ performs rescaling by adjusting coordinate values of either or both of the images to a same scale. Alternatively, weight component factors s and t may be rescaled instead, such as into a larger range, for example.
[0074] Referring to FIGS. 7A-7H for an example of frequencies in the frequency domain data, an image 700 is a distortion map of the synthetic image 202 with depth-related corruption and image 702 is a 2D frequency spectrogram of the distortion map 700. An image 704 is a spatial domain close-up from an inverse conversion of spectrogram 702 to isolate low frequencies, while an image 706 is a spatial domain close-up from an inverse conversion of spectrogram 702 to isolate high frequencies.
[0075] Likewise, image 708 is a distortion map of synthetic image 204 with texture-related noise, and generated by using the operations disclosed herein. An image 710 is a 2D frequency spectrogram of the distortion map 708. An image 712 is a spatial domain close-up from an inverse conversion of spectrogram 710 to isolate low frequencies, while an image 714 is a spatial domain close-up from an inverse conversion of spectrogram 710 to isolate high frequencies.
[0076] As can be seen, the energy of spectrogram 702 is concentrated in the low-frequency part as shown on spectrum image 702 and versus the texture noise energy on spectrum 710. This difference is even more clear when comparing the spatial domain images 704 to 712, and 706 to 714.
[0077] Process 500 may include “determine frequency domain channel error” 526, and this may include “compute weighted frequency magnitudes” 528. Particularly, according to energy conservation, the energy of the distortion map is equal to energy of the spectral image obtained by the Fourier transform. Higher weights may be applied to the low-frequency components to compute the weighted sum as the mean squared error in a weighted means equation as follows:
[0078] where FD is the frequency domain image of the distortion map, u, v represent spectral coordinates, and U, V are the width and height of the spectrogram, respectively. represents the energy of FD (u, v) which is converted from the complex number of the spectrogram into a frequency magnitude by applying L2 normalization, and the frequency weights wu, v are obtained from equation (3a) . It should be noted that herein for these examples, a weighted frequency then is the frequency weight wu, v applied to the frequency magnitude FD (u, v) . Since FFT is performed on the distortion map which is the difference between two images and therefore of relatively small values, the frequency magnitude may be squared to compute the MSE to avoid computing issues such as underflow. Operation 526 then may include “compute channel error” 530, and to compute the MSEFW that is an average error value for the entire channel surface or image (or part thereof) . This is repeated separately for each channel as well. Other types of errors could be used instead such as MAE.
[0079] Process 500 may include “determine channel scores” 532, where the channel score may be computed by using a metric equation, such as a PSNR type of equation. Here, the channel score on one channel is calculated as a FW-PSNR as follows.
[0080] Thus, operation 532 may include “input channel error into metric equation” 534, where Eq. (5) is a PSNR equation using the MSEFW, and where 2b -1 is a maximum possible value on the initial test or synthetic image being evaluated, which by one example is 255, and b here is the bit depth of that image being evaluated, which is either 8 or 16 by one example.
[0081] The operation 532 also may include “repeat for each channel” 536. The channel score generation may be repeated for each color space channel being used to generate channel scores of scoreY, scoreU, and scoreV for a YUV color space in the present example.
[0082] Process 500 next may include “determine image score as FW metric” 538. Here, the channel scores of the same pixel shift search direction (such as I→J) may be combined. A single total score or metric combining all channels for the same pixel shift measurement direction may be computed as follows:
[0083] where the weights WY, WU, and WV are color space channel ratio weights, which for YUV may be pre-set as Y: U: V=3.5: 1: 1. Other ratios may be used depending on the color space. Thus, equation (6) may include “apply color space ratio weights to channel scores” 540, and “combine weighted channel scores” 542 to generate the image score SI→J.
[0084] Process 500 may include “repeat for opposite pixel shift desensitizing direction” 544, and to generate an image score SJ→I as described above with equation (6) .
[0085] Thereafter, process 500 may include “select metric among multiple direction metrics” 546. This decision may be determined by using at least one criterium. By one example, the selection between image scores SI→J and SJ→I is to simply use the minimum value: FWPSNR=min (SI→J, SJ→I) (7)
[0086] Thereafter, the FW-PSNR score for an image may be used to train neural networks or other algorithms generating a synthetic image for example, where the higher the score, the better such a network or algorithm is outputting images that will be determined by a person viewing the image to have a higher subjective quality even though the FW-PSNR is an objective score. Otherwise, the FW-PSNR score may be used to evaluate reconstruction images like super resolution reconstruction and image inpainting.
[0087] Experiments
[0088] An institute of electronic and numeric technologies (IETR) dataset is a Depth-Image-Based-Rendering (DIBR) synthesized image database with associated subjective scores. Ten scenes and seven state-of-the-art DIBR algorithms, including interview synthesis and single-view-based synthesis methods, are included in this database. It contains a total of 140 images and the corresponding subjective scores.
[0089] Experiments on the IETR dataset show that the FW-PSNR metric is more effective than the traditional metrics. In the experiment, parameters were set to pixel shift search radius B = 3, scaling constant σ = 10, wY: wu: wv = 3.5: 1: 1 (for YUV color space) . PSNR, PSNR-HVS, Structural Similarity Index Measure (SSIM) , and Learned Perceptual Image Patch Similarity (LPIPS) are used for comparison.
[0090] Referring to FIG. 8, the testing results were demonstrated by using four synthetic images 800, 802, 804, and 806 from the IETR DIBR database, where ground truth known subjective HVS-sensitivity image quality is from best to worst in the order as numbered.
[0091] The present method (FW-PSNR) and four comparison methods were used to measure the image quality. Table 1 shows the measurement results. The score of LPIPS is negatively correlated with the image quality (the lower the score, the worse the image quality) , and the other methods are the opposite.
[0092] Table 1: The measurement results:
[0093] The measurements of the FW-PSNR method disclosed herein are consistent with the actual subjective quality of the images. LPIPS considers image 804 to be the worst result. PSNR, SSIM, and PSNR-HVS have very low scores for image 802, which may be caused by a slight shift in image pixels. Compared with the other methods, the disclosed measurement results of FW-PSNR are closer to correct subjective perception and correctly rated the quality of the images relative to each other.
[0094] The performance of the objective metrics described above can be evaluated by their correlation with subjective quality scores. Three coefficients were used including Pearson linear correlation coefficient (PLCC) , Spearman rank-order correlation coefficient (SROCC) , and Kendall rank-order correlation coefficient (KROCC) .
[0095] Nonlinear regression was performed on objective scores before using PLCC. PLCC reflects the linear relationship between regression data and subjective scores. si, piare regression data and subjective score respectively. is the average value.
[0096] SROCC reflects the monotonicity of the metric methods, which is calculated by the difference in data ranking for each group. xi, yi respectively represent the ranking of the i -th group of data in the subjective and objective scores where di=xi-yi.
[0097] KROCC reflects the rank consistency of two sets of data. In two sets of data containing N elements, the data at any position i, j (i≠j) constitutes a data pair [ (xi, yi) (xj, yj) ] , and it has a total of data pairs. The number of concordant ( [xi<xj and yi<yj] or [xi>xj and yi>yj] ) data pairs is C. The number of discordant data pairs is D.
[0098] The closer the three coefficient values are to 1, the higher the performance of the objective metrics. Table 2 shows the correlation coefficients calculated on 140 images. FW-PSNR showed more accurate evaluation results compared with LPIPS, SSIM, PSNR, and PSNR-HVS.
[0099] Table 2: correlation coefficients results
[0100] While implementation of the example processes discussed herein may include the undertaking of all operations shown in the order illustrated, the present disclosure is not limited in this regard and, in various examples, implementation of the example processes herein may include only a subset of the operations shown, operations performed in a different order than illustrated, or additional operations.
[0101] In addition, any one or more of the operations discussed herein may be undertaken in response to instructions provided by one or more computer program products. Such program products may include signal bearing media providing instructions that, when executed by, for example, a processor, may provide the functionality described herein. The computer program products may be provided in any form of one or more machine-readable media. Thus, for example, a processor including one or more graphics processing unit (s) or processor core (s) may undertake one or more of the blocks of the example processes herein in response to program code and / or instructions or instruction sets conveyed to the processor by one or more machine-readable media. In general, a machine-readable medium may convey software in the form of program code and / or instructions or instruction sets that may cause any of the devices and / or systems described herein to implement at least portions of the operations discussed herein and / or any portions of the devices, systems, or any module or component as discussed herein.
[0102] As used in any implementation described herein, the term “module” refers to any combination of software logic, firmware logic, hardware logic, and / or circuitry configured to provide the functionality described herein. The software may be embodied as a software package, code and / or instruction set or instructions, and “hardware” , as used in any implementation described herein, may include, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, fixed function circuitry, execution unit circuitry, and / or firmware that stores instructions executed by programmable circuitry. The modules may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC) , system on-chip (SoC) , and so forth.
[0103] As used in any implementation described herein, the term “logic unit” refers to any combination of firmware logic and / or hardware logic configured to provide the functionality described herein. The logic units may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC) , system on-chip (SoC) , and so forth. For example, a logic unit may be embodied in logic circuitry for the implementation of firmware or hardware of the coding systems discussed herein. One of ordinary skill in the art will appreciate that operations performed by hardware and / or firmware may alternatively be implemented via software, which may be embodied as a software package, code and / or instruction set or instructions, and also appreciate that a logic unit also may utilize a portion of software to implement its functionality.
[0104] As used in any implementation described herein, the term “component” may refer to a module or to a logic unit, as these terms are described above. Accordingly, the term “component” may refer to any combination of software logic, firmware logic, and / or hardware logic configured to provide the functionality described herein. For example, one of ordinary skill in the art will appreciate that operations performed by hardware and / or firmware may alternatively be implemented via a software module, which may be embodied as a software package, code and / or instruction set, and also appreciate that a logic unit may also utilize a portion of software to implement its functionality. Component herein also may refer to processors and other specific hardware devices.
[0105] The terms “circuit” or “circuitry, ” as used in any implementation herein, may comprise or form, for example, singly or in any combination, hardwired circuitry, programmable circuitry such as computer processors comprising one or more individual instruction processing cores, state machine circuitry, and / or firmware that stores instructions executed by programmable circuitry. The circuitry may include a processor ( “processor circuitry” ) and / or controller configured to execute one or more instructions to perform one or more operations described herein. The instructions may be embodied as, for example, an application, software, firmware, etc. configured to cause the circuitry to perform any of the aforementioned operations. Software may be embodied as a software package, code, instructions, instruction sets and / or data recorded on a computer-readable storage device. Software may be embodied or implemented to include any number of processes, and processes, in turn, may be embodied or implemented to include any number of threads, etc., in a hierarchical fashion. Firmware may be embodied as code, instructions or instruction sets and / or data that are hard-coded (e.g., nonvolatile) in memory devices. The circuitry may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC) , an application-specific integrated circuit (ASIC) , a system-on-a-chip (SoC) , desktop computers, laptop computers, tablet computers, servers, smartphones, etc. Other implementations may be implemented as software executed by a programmable control device. In such cases, the terms “circuit” or “circuitry” are intended to include a combination of software and hardware such as a programmable control device or a processor capable of executing the software. As described herein, various implementations may be implemented using hardware elements, software elements, or any combination thereof that form the circuits, circuitry, processor circuitry. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth) , integrated circuits, application specific integrated circuits (ASIC) , programmable logic devices (PLD) , digital signal processors (DSP) , field programmable gate array (FPGA) , logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth.
[0106] Referring to FIG. 9, an example image processing system 900 for evaluating images in accordance with at least some implementations of the present disclosure. As shown in FIG. 9, system 900 may include processor (s) formed by processor circuitry 950 which may or may not include one or more image signal processors (ISP) 952, and a memory store (s) 954.
[0107] Also as shown, system 900 may have logic units or modules 904 including a pre-processing unit 906 that may process image data from an imaging device 902, such as one or more cameras, on a device with modules 904, or communicating with the modules 904. The pre-processing unit 906 may pre-process image data from cameras 902 to provide the images to a frequency weight image evaluation unit 908 and specifically to a synthetic image generation unit 910 to generate synthetic images to be evaluated and subsequently for display or other use. The synthetic image generation unit may have algorithms such as for neural networks to be evaluated by providing the FW-PSNR metric described herein. A target image unit 912 may generate target images or access ground truth images from memory 954 and for comparison to the synthetic images. To analyze the images, the frequency weight image evaluation unit 908 may have the distortion map unit 306, the frequency transform unit 312, and the FW metric unit 314 and components thereof as described above in FIG. 3.
[0108] System 900 also may have an antenna 956 for transmitting or receiving image data, a coder 958 for encoding or decoding the image data, and a display 960 with a screen capable of showing an image 962.
[0109] The names of the units here may have the same or similar names to that of device 200 or 300 such that the units perform the same or similar tasks as those on device 200 or 300. Otherwise, the operation of the units is described as needed in the processes detailed herein.
[0110] In some examples, one or more or portions of the operations of processes 400 and 500 may be implemented via ISP 952. In other examples, one or more or portions of the operations are implemented via a central processor forming processor (s) of processor circuitry 950, an image processing unit, an image processing pipeline, an image signal processor 952, or the like. In some examples, one or more or portions of the frequency weight image evaluation unit 908 are implemented in hardware as a system-on-a-chip (SoC) or other specific purpose hardware or other shared hardware. In some examples, one or more or portions of the frequency weight image evaluation unit 908 are implemented in hardware via a field programmable gate array (FPGA) .
[0111] Processor circuitry 950 and image signal processor 952 may include any number and type of image or graphics processing units that may provide the operations as discussed herein. Such operations may be implemented via software or hardware or a combination thereof. For example, image signal processor 952 may include circuitry dedicated to manipulate and / or analyze images obtained from memory 954. Central processor 950 may include any number and type of processing units or modules that may provide control and other high level functions for system 900 and / or provide any operations as discussed herein.
[0112] Memory 954 may be any type of memory such as volatile memory (e.g., Static Random Access Memory (SRAM) , Dynamic Random Access Memory (DRAM) , etc. ) or non-volatile memory (e.g., hard drives, flash memory, etc. ) , and so forth. In a non-limiting example, memory 954 may be implemented by cache memory. In an implementation, one or more or portions of the frequency weight image evaluation unit 908 are implemented via an execution unit (EU) of processor circuitry 950. The EU may include, for example, programmable logic or circuitry such as a logic core or cores that may provide a wide array of programmable logic functions. In an implementation, one or more or portions of the frequency weight image evaluation unit 908 are implemented via dedicated hardware such as fixed function circuitry or the like. Fixed function circuitry may include dedicated logic or circuitry and may provide a set of fixed function entry points that may map to the dedicated logic for a fixed purpose or function.
[0113] Various components of the systems described herein may be implemented in software, firmware, and / or hardware and / or any combination thereof. For example, various components of the devices or systems discussed herein may be provided, at least in part, by hardware of a computing System-on-a-Chip (SoC) such as may be found in a computing system such as, for example, a smart phone or camera array. Those skilled in the art may recognize that systems described herein may include additional components that have not been depicted in the corresponding figures. For example, the systems discussed herein may include additional components that have not been depicted in the interest of clarity.
[0114] Referring to FIG. 10, an example system 1000 is arranged in accordance with at least some implementations of the present disclosure. In various implementations, system 1000 may be a mobile device system although system 1000 is not limited to this context. For example, system 1000 may be incorporated into a personal computer (PC) , laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA) , cellular telephone, combination cellular telephone / PDA, television, smart device (e.g., smart phone, smart tablet or smart television) , mobile internet device (MID) , messaging device, data communication device, cameras (e.g. point-and-shoot cameras, super-zoom cameras, digital single-lens reflex (DSLR) cameras) , a surveillance camera, a surveillance system including a camera, and so forth. Otherwise, at least part of system 1000 may be on one or more servers.
[0115] In various implementations, system 1000 includes a platform 1002 coupled to a display 1020. Platform 1002 may receive content from a content device such as content services device (s) 1030 or content delivery device (s) 1040 or other content sources such as image sensors 1019. For example, platform 1002 may receive image data as discussed herein from image sensors 1019 or any other content source. A navigation controller 1050 including one or more navigation features may be used to interact with, for example, platform 1002 and / or display 1020. Each of these components is described in greater detail below.
[0116] In various implementations, platform 1002 may include any combination of a chipset 1005, processor 1010, memory 1012, antenna, storage 1014, graphics subsystem 1015, applications 1016, image signal processor 1017 and / or radio 1018. Chipset 1005 may provide intercommunication among processor 1010, memory 1012, storage 1014, graphics subsystem 1015, applications 1016, image signal processor 1017 and / or radio 1018. For example, chipset 1005 may include a storage adapter (not depicted) capable of providing intercommunication with storage 1014.
[0117] Processor 1010 may be implemented as a Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processors, x86 instruction set compatible processors, multi-core, or any other microprocessor or central processing unit (CPU) . In various implementations, processor 1010 may be dual-core processor (s) , dual-core mobile processor (s) , and so forth.
[0118] Memory 1012 may be implemented as a volatile memory device such as, but not limited to, a Random Access Memory (RAM) , Dynamic Random Access Memory (DRAM) , or Static RAM (SRAM) .
[0119] Storage 1014 may be implemented as a non-volatile storage device such as, but not limited to, a magnetic disk drive, optical disk drive, tape drive, an internal storage device, an attached storage device, flash memory, battery backed-up SDRAM (synchronous DRAM) , and / or a network accessible storage device. In various implementations, storage 1014 may include technology to increase the storage performance enhanced protection for valuable digital media when multiple hard drives are included, for example.
[0120] Image signal processor 1017 may be implemented as a specialized digital signal processor or the like used for image processing. In some examples, image signal processor 1017 may be implemented based on a single instruction multiple data or multiple instruction multiple data architecture or the like. In some examples, image signal processor 1017 may be characterized as a media processor. As discussed herein, image signal processor 1017 may be implemented based on a system on a chip architecture and / or based on a multi-core architecture.
[0121] Graphics subsystem 1015 may perform processing of images such as still or video for display. Graphics subsystem 1015 may be a graphics processing unit (GPU) or a visual processing unit (VPU) , for example. An analog or digital interface may be used to communicatively couple graphics subsystem 1015 and display 1020. For example, the interface may be any of a High- Definition Multimedia Interface, DisplayPort, wireless HDMI, and / or wireless HD compliant techniques. Graphics subsystem 1015 may be integrated into processor 1010 or chipset 1005. In some implementations, graphics subsystem 1015 may be a stand-alone device communicatively coupled to chipset 1005.
[0122] The graphics and / or video processing techniques described herein may be implemented in various hardware architectures. For example, graphics and / or video functionality may be integrated within a chipset. Alternatively, a discrete graphics and / or video processor may be used. As still another implementation, the graphics and / or video functions may be provided by a general purpose processor, including a multi-core processor. In further implementations, the functions may be implemented in a consumer electronics device.
[0123] Radio 1018 may include one or more radios capable of transmitting and receiving signals using various suitable wireless communications techniques. Such techniques may involve communications across one or more wireless networks. Example wireless networks include (but are not limited to) wireless local area networks (WLANs) , wireless personal area networks (WPANs) , wireless metropolitan area network (WMANs) , cellular networks, and satellite networks. In communicating across such networks, radio 1018 may operate in accordance with one or more applicable standards in any version.
[0124] In various implementations, display 1020 may include any television type monitor or display. Display 1020 may include, for example, a computer display screen, touch screen display, video monitor, television-like device, and / or a television. Display 1020 may be digital and / or analog. In various implementations, display 1020 may be a holographic display. Also, display 1020 may be a transparent surface that may receive a visual projection. Such projections may convey various forms of information, images, and / or objects. For example, such projections may be a visual overlay for a mobile augmented reality (MAR) application. Under the control of one or more software applications 1016, platform 1002 may display user interface 1022 on display 1020.
[0125] In various implementations, content services device (s) 1030 may be hosted by any national, international and / or independent service and thus accessible to platform 1002 via the Internet, for example. Content services device (s) 1030 may be coupled to platform 1002 and / or to display 1020. Platform 1002 and / or content services device (s) 1030 may be coupled to a network 1060 to communicate (e.g., send and / or receive) media information to and from network 1060. Content delivery device (s) 1040 also may be coupled to platform 1002 and / or to display 1020.
[0126] Image sensors 1019 may include any suitable image sensors that may provide image data based on a scene. For example, image sensors 1019 may include a semiconductor charge coupled device (CCD) based sensor, a complimentary metal-oxide-semiconductor (CMOS) based sensor, an N-type metal-oxide-semiconductor (NMOS) based sensor, or the like. For example, image sensors 1019 may include any device that may detect information of a scene to generate image data.
[0127] In various implementations, content services device (s) 1030 may include a cable television box, personal computer, network, telephone, Internet enabled devices or appliance capable of delivering digital information and / or content, and any other similar device capable of uni-directionally or bi-directionally communicating content between content providers and platform 1002 and / display 1020, via network 1060 or directly. It will be appreciated that the content may be communicated uni-directionally and / or bi-directionally to and from any one of the components in system 1000 and a content provider via network 1060. Examples of content may include any media information including, for example, video, music, medical and gaming information, and so forth.
[0128] Content services device (s) 1030 may receive content such as cable television programming including media information, digital information, and / or other content. Examples of content providers may include any cable or satellite television or radio or Internet content providers. The provided examples are not meant to limit implementations in accordance with the present disclosure in any way.
[0129] In various implementations, platform 1002 may receive control signals from navigation controller 1050 having one or more navigation features. The navigation features of navigation controller 1050 may be used to interact with user interface 1022, for example. In various implementations, navigation controller 1050 may be a pointing device that may be a computer hardware component (specifically, a human interface device) that allows a user to input spatial (e.g., continuous and multi-dimensional) data into a computer. Many systems such as graphical user interfaces (GUI) , and televisions and monitors allow the user to control and provide data to the computer or television using physical gestures.
[0130] Movements of the navigation features of navigation controller 1050 may be replicated on a display (e.g., display 1020) by movements of a pointer, cursor, focus ring, or other visual indicators displayed on the display. For example, under the control of software applications 1016, the navigation features located on navigation controller 1050 may be mapped to virtual navigation features displayed on user interface 1022, for example. In various implementations, navigation controller 1050 may not be a separate component but may be integrated into platform 1002 and / or display 1020. The present disclosure, however, is not limited to the elements or in the context shown or described herein.
[0131] In various implementations, drivers (not shown) may include technology to enable users to instantly turn on and off platform 1002 like a television with the touch of a button after initial boot-up, when enabled, for example. Program logic may allow platform 1002 to stream content to media adaptors or other content services device (s) 1030 or content delivery device (s) 1040 even when the platform is turned “off. ” In addition, chipset 1005 may include hardware and / or software support for 5.1 surround sound audio and / or high definition 7.1 surround sound audio, for example. Drivers may include a graphics driver for integrated graphics platforms. In various implementations, the graphics driver may comprise a peripheral component interconnect (PCI) Express graphics card.
[0132] In various implementations, any one or more of the components shown in system 1000 may be integrated. For example, platform 1002 and content services device (s) 1030 may be integrated, or platform 1002 and content delivery device (s) 1040 may be integrated, or platform 1002, content services device (s) 1030, and content delivery device (s) 1040 may be integrated, for example. In various implementations, platform 1002 and display 1020 may be an integrated unit. Display 1020 and content service device (s) 1030 may be integrated, or display 1020 and content delivery device (s) 1040 may be integrated, for example. These examples are not meant to limit the present disclosure.
[0133] In various implementations, system 1000 may be implemented as a wireless system, a wired system, or a combination of both. When implemented as a wireless system, system 1000 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, and so forth. An example of wireless shared media may include portions of a wireless spectrum, such as the RF spectrum and so forth. When implemented as a wired system, system 1000 may include components and interfaces suitable for communicating over wired communications media, such as input / output (I / O) adapters, physical connectors to connect the I / O adapter with a corresponding wired communications medium, a network interface card (NIC) , disc controller, video controller, audio controller, and the like. Examples of wired communications media may include a wire, cable, metal leads, printed circuit board (PCB) , backplane, switch fabric, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, and so forth.
[0134] Platform 1002 may establish one or more logical or physical channels to communicate information. The information may include media information and control information. Media information may refer to any data representing content meant for a user. Examples of content may include, for example, data from a voice conversation, videoconference, streaming video, electronic mail ( “email” ) message, voice mail message, alphanumeric symbols, graphics, image, video, text and so forth. Data from a voice conversation may be, for example, speech information, silence periods, background noise, comfort noise, tones and so forth. Control information may refer to any data representing commands, instructions or control words meant for an automated system. For example, control information may be used to route media information through a system, or instruct a node to process the media information in a predetermined manner. The implementations, however, are not limited to the elements or in the context shown or described in FIG. 10.
[0135] As described above, system 1000 may be embodied in varying physical styles or form factors. FIG. 11 illustrates an example small form factor device 1100, arranged in accordance with at least some implementations of the present disclosure. In some examples, system 900 or 1000 may be implemented via device 1100. In other examples, other systems, components, or modules discussed herein or portions thereof may be implemented via device 1100. In various implementations, for example, device 1100 may be implemented as a mobile computing device having wireless capabilities. A mobile computing device may refer to any device having a processing system and a mobile power source or supply, such as one or more batteries, for example.
[0136] Examples of a mobile computing device may include a personal computer (PC) , laptop computer, ultra-laptop computer, tablet, touch pad, portable computer, handheld computer, palmtop computer, personal digital assistant (PDA) , cellular telephone, combination cellular telephone / PDA, smart device (e.g., smartphone, smart tablet or smart mobile television) , mobile internet device (MID) , messaging device, data communication device, cameras (e.g. point-and-shoot cameras, super-zoom cameras, digital single-lens reflex (DSLR) cameras) , and so forth.
[0137] Examples of a mobile computing device also may include computers that are arranged to be implemented by a motor vehicle or robot, or worn by a person, such as wrist computers, finger computers, ring computers, eyeglass computers, belt-clip computers, arm-band computers, shoe computers, clothing computers, and other wearable computers. In various implementations, for example, a mobile computing device may be implemented as a smartphone capable of executing computer applications, as well as voice communications and / or data communications. Although some implementations may be described with a mobile computing device implemented as a smartphone by way of example, it may be appreciated that other implementations may be implemented using other wireless mobile computing devices as well. The implementations are not limited in this context.
[0138] As shown in FIG. 11, device 1100 may include a housing with a front 1101 and a back 1102. Device 1100 includes a display 1104, an input / output (I / O) device 1106, a camera 1121, a camera 1122, and an integrated antenna 1108. In some implementations, device 1100 does not include cameras 1121 and 1122, and device 1100 attains input image data (e.g., any input image data discussed herein) from another device. Device 1100 also may include navigation features 1112. I / O device 1106 may include any suitable I / O device for entering information into a mobile computing device. Examples for I / O device 1106 may include an alphanumeric keyboard, a numeric keypad, a touch pad, input keys, buttons, switches, microphones, speakers, voice recognition device and software, and so forth. Information also may be entered into device 1100 by way of microphone (not shown) , or may be digitized by a voice recognition device. As shown, device 1100 may include cameras 1121, 1122, and a flash 1110 integrated into back 1102 (or elsewhere) of device 1100. In other examples, cameras 1121, 1122, and flash 1110 may be integrated into front 1101 of device 1100 or both front and back sets of cameras may be provided.
[0139] Various implementations may be implemented using hardware elements, software elements, or a combination of both. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth) , integrated circuits, application specific integrated circuits (ASIC) , programmable logic devices (PLD) , digital signal processors (DSP) , field programmable gate array (FPGA) , logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application program interfaces (API) , instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an implementation is implemented using hardware elements and / or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints.
[0140] One or more aspects of at least one implementation may be implemented by representative instructions stored on a machine-readable medium which represents various logic within the processor, which when read by a machine causes the machine to fabricate logic to perform the techniques described herein. Such representations, known as IP cores may be stored on a tangible, machine readable medium and supplied to various customers or manufacturing facilities to load into the fabrication machines that actually make the logic or processor.
[0141] While certain features set forth herein have been described with reference to various implementations, this description is not intended to be construed in a limiting sense. Hence, various modifications of the implementations described herein, as well as other implementations, which are apparent to persons skilled in the art to which the present disclosure pertains are deemed to lie within the spirit and scope of the present disclosure.
[0142] The following examples pertain to additional implementations.
[0143] In an example 1, a method of image processing comprises receiving at least one first image having pixel image data; generating at least one distortion map between at least one version of the first image and at least one version of a second image; converting the distortion map into frequency domain data; and determining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.
[0144] In an example 2, the subject matter of example 1, wherein values of the frequency weights at least partly depend on a distribution of color contrast distortions or brightness contrast distortions or both on the distortion map.
[0145] In an example 3, the subject matter of example 1 or 2, wherein the determining comprises applying a larger weight as a size of an area of uniform distortion increases on the distortion map.
[0146] In an example 4, the subject matter of any one of examples 1-3, wherein the determining comprises applying a larger weight as a frequency magnitude of the frequency domain data reduces in value.
[0147] In an example 5, the subject matter of any one of examples 1-4, wherein the frequency domain data comprises a 2D frequency spectrum with low frequencies in a middle of the spectrum, and wherein the weights are computed to be larger as spectral coordinates are closer to the middle.
[0148] In an example 6, the subject matter of any one of examples 1-5, wherein the generating comprises computing a global component difference (GCD) that is a representative per pixel distortion of a whole first image and relative to the second image.
[0149] In an example 7, the subject matter of any one of examples 1-6, wherein the generating comprises determining a pixel shift-desensitized distortion between a first pixel on one of the first or second images and a second pixel on a pixel area of the other of the first or second images, wherein the determining a pixel shift-desensitized distortion comprises searching the pixel area to find the second pixel having a minimum difference to the first pixel and within the pixel area.
[0150] In an example 8, the subject matter of example 7, wherein the searching is performed separately on both images to respectively generate two different single pixel-to-search-area directions to generate multiple different direction weighted frequency metrics.
[0151] In an example 9, the subject matter of example 8, comprising using at least one criterium to select a single weighted frequency metric among the multiple direction weighted frequency metrics.
[0152] In an example 10, the subject matter of any one of examples 1-9, wherein the first image has a color space format with multiple channels, and wherein the generating and converting is applied separately to individual channels.
[0153] In an example 11, the subject matter of example 10, wherein the determining comprises generating channel scores each at least partly based on weighted frequency magnitudes from the frequency domain data of a different one of the multiple channels; and combining the channel scores to form a single image score.
[0154] In an example 12, A computer-implemented system comprises memory; and processor circuitry communicatively coupled to the memory, the processor circuitry being arranged to operate by: receiving at least one first image having pixel image data; generating at least one distortion map between at least one version of the first image and at least one version of a target second image; converting the distortion map into frequency domain data; and determining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.
[0155] In an example 13, the subject matter of example 12, wherein the determining comprises generating separate frequency weight components using spectral coordinates and a size of a spectrum of the frequency domain data; and combining the frequency weight components to generate a single frequency weight.
[0156] In an example 14, the subject matter of example 12 or 13, wherein a horizontal spectral coordinate and horizontal size of the spectrum are used to form a horizontal frequency weight component, and wherein a vertical spectral coordinate and vertical size of the spectrum are used to form a vertical frequency weight component.
[0157] In an example 15, the subject matter of any one of examples 12-14, wherein the first and second images are not the same size; and wherein the determining comprises applying a scaling constant to separate frequency weight components.
[0158] In an example 16, at least one non-transitory machine readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to operate by: receiving at least one synthetic image having pixel image data; generating at least one distortion map between at least one version of the synthetic image and at least one version of a target image; converting the distortion map into frequency domain data; and determining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.
[0159] In an example 17, the subject matter of example 16, wherein the determining comprises computing a weighted means of frequency magnitudes generated by using the frequency domain data.
[0160] In an example 18, the subject matter of example 17, wherein the frequency magnitudes are generated by performing an L2 normalization of complex number values of the frequency domain data.
[0161] In an example 19, the subject matter of example 16, wherein the determining comprises computing a weighted means of frequency magnitudes generated by using the frequency domain data, wherein the frequency magnitudes are weighted by the frequency weights, wherein the frequency weights are larger as the frequency magnitudes become smaller.
[0162] In an example 20, the subject matter of example 19, wherein the determining comprises computing a score using the weighted means in a peak signal-to-noise ratio (PSNR) equation.
[0163] In one example, a device, apparatus, or system includes means to perform a method according to any one of the above implementations.
[0164] In another example, at least one machine readable medium includes a plurality of instructions that in response to being executed on a computing device, cause the computing device to perform a method according to any one of the above implementations.
[0165] It will be recognized that the implementations are not limited to the implementations so described, but can be practiced with modification and alteration without departing from the scope of the appended claims. For example, the above implementations may include specific combination of features. However, the above implementations are not limited in this regard and, in various implementations, the above implementations may include the undertaking only a subset of such features, undertaking a different order of such features, undertaking a different combination of such features, and / or undertaking additional features than those features explicitly listed. The scope of the implementations should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims
1.A method of image processing, comprising:receiving at least one first image having pixel image data;generating at least one distortion map between at least one version of the first image and at least one version of a second image;converting the distortion map into frequency domain data; anddetermining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.2.The method of claim 1, wherein values of the frequency weights at least partly depend on a distribution of color contrast distortions or brightness contrast distortions or both on the distortion map.3.The method of claim 1 or 2, wherein the determining comprises applying a larger weight as a size of an area of uniform distortion increases on the distortion map.4.The method of any one of claims 1-3, wherein the determining comprises applying a larger weight as a frequency magnitude of the frequency domain data reduces in value.5.The method of any one of claims 1-4, wherein the frequency domain data comprises a 2D frequency spectrum with low frequencies in a middle of the spectrum, and wherein the weights are computed to be larger as spectral coordinates are closer to the middle.6.The method of any one of claims 1-5, wherein the generating comprises computing a global component difference (GCD) that is a representative per pixel distortion of a whole first image and relative to the second image.7.The method of any one of claims 1-6, wherein the generating comprises determining a pixel shift-desensitized distortion between a first pixel on one of the first or second images and a second pixel on a pixel area of the other of the first or second images, wherein the determining a pixel shift-desensitized distortion comprises searching the pixel area to find the second pixel having a minimum difference to the first pixel and within the pixel area.8.The method of claim 7, wherein the searching is performed separately on both images to respectively generate two different single pixel-to-search-area directions to generate multiple different direction weighted frequency metrics.9.The method of claim 8, comprising using at least one criterium to select a single weighted frequency metric among the multiple direction weighted frequency metrics.10.The method of any one of claims 1-9, wherein the first image has a color space format with multiple channels, and wherein the generating and converting is applied separately to individual channels.11.The method of claim 10, wherein the determining comprises generating channel scores each at least partly based on weighted frequency magnitudes from the frequency domain data of a different one of the multiple channels; and combining the channel scores to form a single image score.12.A computer-implemented system, comprising:memory; andprocessor circuitry communicatively coupled to the memory, the processor circuitry being arranged to operate by:receiving at least one first image having pixel image data;generating at least one distortion map between at least one version of the first image and at least one version of a target second image;converting the distortion map into frequency domain data; anddetermining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.13.The system of claim 12, wherein the determining comprises generating separate frequency weight components using spectral coordinates and a size of a spectrum of the frequency domain data; and combining the frequency weight components to generate a single frequency weight.14.The system of claim 12 or 13, wherein a horizontal spectral coordinate and horizontal size of the spectrum are used to form a horizontal frequency weight component, and wherein a vertical spectral coordinate and vertical size of the spectrum are used to form a vertical frequency weight component.15.The system of any one of claims 12-14, wherein the first and second images are not the same size; and wherein the determining comprises applying a scaling constant to separate frequency weight components.16.At least one non-transitory machine readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to operate by:receiving at least one synthetic image having pixel image data;generating at least one distortion map between at least one version of the synthetic image and at least one version of a target image;converting the distortion map into frequency domain data; anddetermining at least one weighted frequency metric comprising applying frequency weights to a version of the frequency domain data.17.The medium of claim 16, wherein the determining comprises computing a weighted means of frequency magnitudes generated by using the frequency domain data.18.The medium of claim 17, wherein the frequency magnitudes are generated by performing an L2 normalization of complex number values of the frequency domain data.19.The medium of claim 16, wherein the determining comprises computing a weighted means of frequency magnitudes generated by using the frequency domain data, wherein the frequency magnitudes are weighted by the frequency weights, wherein the frequency weights are larger as the frequency magnitudes become smaller.20.The medium of claim 19, wherein the determining comprises computing a score using the weighted means in a peak signal-to-noise ratio (PSNR) equation.
Citation Information
Patent Citations
Image coding / decoding method and apparatus
CN101379831A
Image retargeting quality assessment
CN105009107A
Video Fildelity Measure
US20210409725A1
Enhanced real-time visual quality metric generation for video coding
US20220086466A1