Adaptive spatial variant interpolation for image upscaling
This disclosure describes adaptive spatial variant interpolation (SVI) techniques for image upscaling. In various embodiments, the interpolation techniques described in this disclosure may support low complexity upscaling of image while promoting high image quality, including enhanced sharpness, higher contrast and more accurate interpolation. The interpolation techniques may be applied using generalized finite impulse response (FIR) filters. In some embodiments, the interpolation techniques may be contentadaptive to provide more accurate interpolation while suppressing significant artifacts associated with sharp edges. In addition, the interpolation techniques may be readily applicable to upscaling of color imagery and video, e.g., in both YCbCr (luminance, blue chrominance, red chrominance) and RGB (red, green, blue) formats.
The disclosure relates to imaging and, more particularly, to interpolation techniques for image scaling.
BACKGROUNDDisplay devices present a variety of image information, including image information captured by digital video or still photo cameras, image information produced by software applications, video games, or other programs, image information obtained from video or still photo archives, or image information obtained from broadcast or streaming media. A display device may be integrated with, coupled to, or otherwise associated with a variety of devices, such as desktop or laptop computers, computer workstations, mobile devices such as personal digital assistants (PDAs) or mobile telephones, and dedicated viewing stations such as televisions. A display device may comprise a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, a projection display, or the like.
A display device maintains an inherent maximum resolution limited by the number of pixels capable of displaying the image information. In general, displays may produce a range of image resolution at or below the inherent maximum resolution. If the image information defines values for less than all of the display pixels, however, the device may scale the image information upward to a larger resolution. For example, a display device may produce additional pixels by interpolation to scale the image information to a larger format. As displays become larger, image scaling becomes increasingly important. For mobile applications, even though users may desire larger displays, channel limitations tend to reduce the amount of image information that can be transmitted to a mobile device, resulting in smaller format images. Hence, to consistently achieve larger formats, image upscaling is desirable for mobile applications.
Many techniques currently exist to interpolate pixel values to achieve image upscaling. Common interpolation techniques include bilinear interpolation, bicubic interpolation, cubic spline interpolation, and new edge directed interpolation (NEDI). While all of the above interpolation techniques are effective in upscaling the image information, artifacts such as blurring may result. In addition, some techniques, such as NEDI, may require complex calculations that consume an excessive amount of system resources, especially in small mobile devices. Further, some existing interpolation techniques may be unsuitable for color image information, resulting in color bleeding or other artifacts. In general, upscaling is challenging because more pixels have to be created by interpolating existing but limited information, possibly leading to blurriness in the output.
SUMMARYThis disclosure describes adaptive spatial variant interpolation (SVI) techniques for image upscaling. In various embodiments, the interpolation techniques described in this disclosure may support low complexity upscaling of image information while promoting high image quality, including enhanced sharpness, higher contrast and accurate interpolation. The interpolation techniques may be applied using generalized finite impulse response (FIR) filters. In some embodiments, the interpolation techniques may be contentadaptive to provide accurate interpolation while suppressing significant artifacts associated with sharp edges. In addition, the interpolation techniques may be readily applicable to upscaling of color imagery and video, e.g., in both YCbCr (luminance, blue chrominance, red chrominance) and RGB (red, green, blue) formats.
In one embodiment, the disclosure provides a method comprising determining a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image, determining an intensity (k) of a spatial variant interpolation filter based on the symmetry A, adjusting the spatial variant interpolation filter based on the intensity (k), and applying the spatial variant interpolation filter to interpolate the scaled pixel. In some embodiments, adjusting the spatial variant interpolation filter may include determining a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and adjusting the spatial variant interpolation filter based on the warped distance (s′).
In another embodiment, the disclosure provides a device comprising a memory that stores an image, and a processor that determines a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image, determines an intensity (k) of an interpolation filter based on the symmetry A, adjusts the interpolation filter based on the intensity (k), and applies applying the spatial variant interpolation filter to interpolate the scaled pixel. In some embodiments, the processor may determine a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and adjust the spatial variant interpolation filter based on the warped distance (s′).
The techniques described in this disclosure may be implemented in a hardware, software, firmware, or any combination thereof. If implemented in software, the software may be executed in a processor, such as a digital signal processor (DSP). The software that executes the techniques may be initially stored in a computer readable medium and loaded and executed in the processor. Accordingly, this disclosure also contemplates a computer readable medium comprising instructions to perform adaptive spatial variant interpolation techniques for image upscaling.
The details of one or more embodiments of the disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
In general, mobile device 10 is configured to apply adaptive spatial variant interpolation (SVI) techniques for image upscaling. In various embodiments, the interpolation techniques applied by mobile device 10 may support low complexity upscaling of image information while promoting high image quality, including enhanced sharpness, higher contrast and accurate interpolation. As will be described, the interpolation techniques may be applied using generalized finite impulse response (FIR) filters. In some embodiments, the interpolation techniques may be contentadaptive to provide accurate interpolation while suppressing significant artifacts associated with sharp edges. In addition, the interpolation techniques may be applicable to upscaling of color imagery and video. For example, the interpolation techniques may be applicable to color images and video in both YCbCr (luminance, blue chrominance, red chrominance) and RGB (red, green, blue) formats.
As will be described, in some embodiments, display processor 16 may be configured to adapt the intensity (k) of a filter response based on a plurality of neighboring pixels. The display processor 16 may first determine the symmetry (A) of a scaled pixel, i.e., a pixel that requires interpolation to determine its value, based on a plurality of neighboring pixels within the image information. Next, display processor 16 determines the intensity (k) of the filter response for the scaled pixel based on the symmetry (A) of the scaled pixel. Third, the display processor 16 determines a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response.
Display processor 16 then applies the filter based on the determined warped distance (s′) to perform spatial variant interpolation to determine the value of the scaled pixel. Because the adaptive upscaling techniques enable display processor 16 to adapt the intensity (k) of the filter response based on the values of the neighboring pixels, the display processor may generate upscaled image information, which includes the scaled pixel, with relatively higher clarity when compared to other upscaling techniques.
The adaptive upscaling techniques also may enable display processor 16 to upscale image information encoded according to one of a plurality of color formats. For example, if the image information is encoded according to the RGB color format, display processor 16 may determine the warped distance (s′) for the green (G) channel based on the symmetry (A) and the intensity (k). After making this determination, display processor 16 may apply the filter to interpolate the red (R), green (G), and blue (B) channel values of the scaled pixel based on the warped distance (s′) determined for the green (G) color channel. As another example, if the image information is encoded according to the YCbCr color format, display processor 16 may determine the warped distance (s′) for only the luminance (Y) color channel and apply the filter to only the Y channel to interpolate the Y channel value for the scaled pixel.
Mobile device 10 may be a mobile radiotelephone or satellite telephone, a personal digital assistant, or any other type of mobile device capable of manipulating and displaying image information. Mobile device 10 may be equipped with wireless and/or wired communication capabilities to receive and, optionally, transmit voice, video and/or data information. Processor 16 may be integrated with a modem that also handles demodulation and decoding of received image information, and optionally encoding and modulation of transmitted information.
Accordingly, mobile device 10 also may include appropriate transmit and receive electronics, e.g., for radio frequency, satellite, or infrared communication. Such electronics may include suitable filters, amplifiers, frequency upconverters, frequency downconverters, diplexers, and the like. Although mobile devices are described in this disclosure for purposes of illustration, the adaptive spatial variant interpolation techniques may be applicable to other devices that are not generally considered mobile, such as televisions, desktop computers, computer workstations, and the like.
In some embodiments, mobile device 10 may comprise an image capture device to capture image information as digital videos or digital still pictures. The image capture device may be a digital video camera, a digital still image camera, or a combination of both, and in these instances, the image capture device may be incorporated into mobile device 10, such as a mobile cellular telephone, to form a socalled camera phone or video phone. The image capture device preferably is equipped to capture color imagery, blackandwhite imagery, or both. In this disclosure, the terms “image,” “imagery,” “image information,” or similar terms may interchangeably refer to either video or still pictures.
With further reference to
Display processor 16 is coupled to memory 14 and display 18, e.g., via a system bus, memory bus, peripheral bus, or a combination thereof. In some embodiments, display processor 16 may take the form of a hardware accelerator embedded within a mobile station modem (MSM), and be responsible for transferring an upscaled image from an MSM memory subsystem to display 18. Also, in some embodiments, memory 14 may be embedded within display processor 16, such that memory 14 becomes a memory subsystem of display processor 16. Display processor 16 is responsible for transferring an updated image from memory 14 to display 18. Display processor 16 performs a set of operations on image information 20 obtained from a video or still photo capture device, from software applications, video games, or other programs, from a video or still picture archive, or from broadcast or streaming media. Exemplary operations include rotation, flipping, scaling, color conversion, gamma correction, blending, dithering, and other enhancements. Functional units for performing interpolation and other operations, such as those described above, may reside within a socalled video front end (VFE) of mobile device 10.
Processor 16 may be realized by one or more microprocessors, digital signal processors (DSPs), application specification integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent discrete or integrated logic circuitry. While not shown in
As described in more detail below, processor 16 applies spatial variant interpolation filter to image information 20 to generate upscaled image information 12 for display on display 18. Upscaling permits the image information 20 to be displayed at a higher resolution and larger size format. As examples, image information 20 can be spatially scaled upward from quarter common intermediate format (QCIF) to common intermediate format (CIF), from CIF to video graphics array (VGA), and/or from VGA to super VGA (SVGA). In this manner, a smaller image may be upscaled by spatial variant interpolation to provide a larger image for presentation on display 18. At the same time, interpolation techniques as described herein may be applied to maintain quality and reduce undesirable artifacts in the upscaled image.
To upscale image information 20, display processor 16 applies a filter first along the rows of the pixel values defined by image information 20 and second along the columns of the pixel values defined by image information 20. As it applies the filter, display processor 16 determines a symmetry (A) for the pixel value to be interpolated, i.e., a scaled pixel, based on a plurality of neighboring pixels within image information. The neighboring pixels may be selected to be within a predetermined distance of the pixel to be interpolated. Hence, the pixel to be interpolated is not originally present in the image data and needs to be interpolated based on pixels that are originally present in the image data. Interpolation of the pixel adds a pixel that increases the resolution of the image. A pixel to be interpolated may be referred to as the interpolated pixel or a scaled pixel. Interpolation of multiple pixels increases the overall resolution of the image and may permit spatial upscaling.
Next, display processor 16 determines an intensity (k) of the filter response for the scaled pixel based on the symmetry (A) of the scaled pixel and subsequently determines a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response. During this process, display processor 16 tailors or “adapts” the filter to the content of image information 20, and more specifically to the values of the neighboring pixel values defined by image information 20. After adapting the filter, display processor 16 applies the filter based on the determined warped distance (s′) to perform spatial variant interpolation (SVI) to determine the value of the scaled pixel.
Display processor 16 may determine the number of pixels values to interpolate by comparing the resolution of display 18 with that of image information 20. The difference between the display resolution and the resolution of image information 20 determines the amount of upscaling need to achieve the display resolution. After interpolating the value of each scaled pixel, display processor 16 stores these scaled pixel values with original pixel values defined by image information 20 as upscaled image information 12. In some embodiments, display processor 16 does not store these scaled pixel values but transmits these scaled pixel values as well as the original pixel values defined by image information 20 to drive display 18 as the scaled pixel values are determined. Upon completing the upscaling, display processor 16 transmits upscaled image information 12 to display 18 for display to the user.
Display 18 may comprise one of any of a variety of displays including a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, a projection display, and any display capable of displaying upscaled image information 12. Display 18 may be integrated with or coupled to device 10. Display 18 maintains an inherent display resolution controlled by the set number of pixels to display an image. Exemplary resolutions defined by the number of pixel columns by the number of pixel rows include 800 by 600 pixels, 1024 by 768 pixels, 1280 by 768 pixels, 1280 by 800 pixels, 1280 by 1024 pixels, 1600 by 1200 pixels, 1680 by 1050 pixels, 1920 by 1200 pixels, and any other arrangement of pixels. In some embodiments, a user of mobile device 10 may select one of a plurality of resolutions for display 18 so long as the selected resolution does not exceed the inherent maximum resolution of display 18. In other embodiments, a designer may hardcode a resolution for display 18, and typically selects the inherent maximum resolution as the hardcoded resolution.
The upscaling techniques described herein allow mobile device 10 to perform relatively low complexity linear interpolation that yields upscaled image information 12 of relatively high clarity, i.e., with relatively little blurriness. The upscaling technique implemented by mobile device 10 is of low complexity because it implements a linear interpolation method instead of more computationally intensive interpolation methods, such as NEDI. Moreover, the upscaling techniques enable mobile device 10 to produce this high clarity result, in part, because it enables mobile device 10 to adapt the intensity (k) of the filter response to the plurality of neighboring pixel values of image information 20, providing contentadaptive interpolation. Thus, this technique allows mobile device 10 to determine some of the scaled pixel values according to one intensity k while determining other of the scaled pixel values according to another intensity k′, as indicated by different groups of pixels that are neighbors to the particular pixel to be interpolated. Therefore, unlike some scaling techniques that define a constant, i.e., fixed, intensity for the filter response over the entire expanse of image information, the upscaling technique described herein adapts the intensity k to characteristics of image information 20 to provide higher clarity upscaled image information 12.
A fourtap FIR filter for use as filter 30 will be described for purpose of illustration. The pixel to be interpolated, denoted by x, is calculated based on four original pixels, denoted by x_{n+1}, x_{n−1}, x_{n+2}, and x_{n}. For a row of pixels, the indices n+1 and n+2 may denote pixels to the right of the pixel x to be interpolated, while the indices n and n−1 may denote pixels to the left of the pixel x to be interpolated. The value (amplitude or intensity) of the interpolated and original pixels is denoted by f(x). Using an FIR filter, the value of the interpolated pixel x is obtained by:
f(x)=F[s, f(x_{n−1}), f(x_{n}), f(x_{n+1}), f(x_{n+2})], (1)
where F[•] is a linear function, and s is the phase parameter: s=x−x_{n }(0≦s≦1, by defining the distance between two adjacent original pixels to be 1). This generalized function applies to any fourtap FIR filter, including bilinear (although it has only two taps), bicubic, cubicspline, and the like. For example, for upscaling at a ratio of 2, a single sample needs to be interpolated so that s=½. For an upscaling ratio of 4, there are three samples to interpolate and s=0.25, 0.5 and 0.75 for the three interpolated pixels, respectively.
Advantages of an FIR filter include simplicity, low computational complexity and capability of maintaining the values of the original samples. An FIR filter can be used for noninteger ratio scaling by simply adjusting the values of s. The value of s may be quantized into multiple levels (e.g., 32) between 0 and 1. Also, the coefficients for f(x_{n−1}), f(x_{n}), f(x_{n+1}), f(x_{n+2}) at different interpolation phases can be preprogrammed.
For an SVI technique, the distance s in equation (1) can be modified such that pixels close to edgeboundaries are interpolated in an edgeoriented fashion. Using a warpeddistance (WD) scheme, an SVI technique may be configured to apply an association rule that decides the side of the edge to which the interpolated pixel belongs. An exemplary association rule is given as:
For the convenience of hardware implementation, equation (2) above can be modified as follows:
A=(f(x_{n+1})−f(x_{n−1})−f(x_{n+2})−f(x_{n}))>>8. (3)
Equation (3) represents a simple rule of measuring the uniformity of pixel values on either side of an edge. If f(x_{n+1})−f(x_{n−1})≧f(x_{n+2})−f(x_{n}), the edge is more homogenous on the right side and the pixel to be interpolated should be associated with the right side. In this case, for a fourtap filter, more weight should be put on x_{n+1}, x_{n+2}. On the other hand, if f(x_{n+1})−f(x_{n−1})≦f(x_{n+2})−f(x_{n}), then the edge is more homogenous on the left side and the pixel to be interpolated should be associated with the left side. In this case, for a fourtap filter, more weight should be placed on x_{n}, x_{n−1}.
With further reference to
k=k_{0}, for 0≦A<A_{1};
k=k_{1}, for A_{1}≦A<A_{2};
. . .
k=k_{n−1}, for A_{n−1}≦A≦1, (4)

 where 0<A_{1}<A_{2}< . . . <A_{n−1}<1.
In equations (4) above, k represents the intensity of the filter response, k_{0}k_{n }denote predefined intensity values, and A_{0}A_{n }denote the edges of the zones of symmetry. The value k is varied based on the value of A, per equation (4), providing adjustment of the spatial variant interpolation filter response based on content characteristics of the image. In some embodiments, the k value may be selectively adjusted based on the A value in normal cases, or based on a fixed value if computational resources to compute A are scarce. As k is adaptive as a function of A, there may be different k values within the same image or video frame for different pixels to be interpolated. Notably, the value A may be expressed as an absolute value as it could be positive or negative.
 where 0<A_{1}<A_{2}< . . . <A_{n−1}<1.
In some embodiments, a frame may be characterized by a k map that assigns different values of k, e.g., to different areas, regions, pixel groups, or pixels. Hence, a frame may be preprocessed to determine values of k for predetermined regions. Then, the k value can be used for spatial variant interpolation for upscaled pixels, i.e., pixels to be interpolated, in each of those respective regions. In particular, the spatial variant interpolation technique may reference the k map to determine the particular k for a region as it produces one or more interpolated pixels in that region.
A designer may predefine lookup tables 26 by specifying values for k_{0}k_{n }and A_{0}A_{n}. In some embodiments, however, display processor 16 automatically adapts either or both of k_{0}k_{n }and A_{0}A_{n }to one or more exemplary conditions, such as the quality of image information 20 being upscaled, the identity or type of application requesting display 18 to display image information 20, and the level of available system resources within mobile device 10. Moreover, lookup tables 26 may comprise one or more lookup tables, or more generally, data structures, that store one or more associations. Display processor 16 may associate each of these independent lookup tables 26 with a different application that requests display 18 to display image information 20. Alternatively, display processor 16 may associate each of these independent lookup tables 26 with a varying level of system resource use and/or quality of image information 20.
Warped distance module 28 determines a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response from symmetry module 24 and lookup tables 26. Warped distance module 28 may determine the warped distance (s′) according to the following equation (5):
s′=s−kAs(s−1) (5)
where s denotes the distance of the scaled pixel to one of the plurality of neighboring pixels, A denotes the symmetry of the scaled pixel, and k denotes the intensity of the filter response for the scaled pixel. The value s′ provides a phase modification as a function of s, A and k. In turn, the value k is modified as a function of A. In some scenarios, if k is set to 0, the interpolation technique reverts to spatial invariant interpolation. Otherwise, varying values of k result in varying values of s′, and drive contentadaptive spatial variant interpolation (CASVI). The distance (s) between the scaled pixel to one of the plurality of neighboring pixels may be defined by either of the following equations (6):
s=x−x_{n},
1−s=x_{n+1} (6)
where x denotes the position of the scaled pixel, x_{n }denotes the position of the pixel to the left of the scaled pixel along the xaxis, and x_{n+1 }denotes the pixel to the right of the scaled pixel along the xaxis. As shown by equation (6), the distance between each pixel x_{n }and x_{n+1 }has been normalized to one.
Warped distance module 28 may determine the warped distance (s′) for instances where image information 20 includes color image information 20. If color image information 20 is encoded according to the RGB color format, for example, warped distance module 28 computes the warped distance (s′) for the green (G) channel only and transmits this warped distance (s′) for the green (G) channel to FIR filter 30 when interpolating all three color channel values, i.e., green (G), red (R), and blue (B) channels, of the scaled pixel. If color image information 20 is encoded according to the YCbCr color format, however, warped distance module 28 computes the warped distance (s′) for only the luminance (Y) channel and transmits this warped distance (s′) for the luminance (Y) channel to FIR filter 30 when interpolating the luminance (Y) channel value of the scaled pixel.
FIR filter 30 applies a filter based on the determined warped distance (s′) to perform spatial variant interpolation to determine the value of the scaled pixel. FIR filter 30 may apply a filter as described by the following equation (7) below:
where f(x) denotes the value of the scaled pixel, s′ denotes the warped distance, the plurality of neighboring pixels comprise pixels denoted by x_{n+1}, x_{n−1}, x_{n+2}, and x_{n}, and f(x_{n+1}), f(x_{n−1}), f(x_{n+2}), and f(x_{n}) denote the value associated with the respective pixels x_{n+1}, x_{n−1}, x_{n+2}, and x_{n}. Equation (7) describes spatialvariant bicubic interpolation that is content adaptive, or merely “adaptive,” because the intensity (k) of the filter response, which factors into the warped distance (s′), varies according to the values of the surrounding plurality of neighboring pixels, f(x_{n+1}), f(x_{n−1}), f(x_{n+2}), and f(x_{n}). Although described herein in reference to spatialvariant bicubic interpolation, the upscaling techniques described herein may allow for other levels of interpolation, such as bilinear interpolation, e.g., as described by equation (8) below:
f(x)=(1−s′)f(x_{n})+s′f(x_{n+1}) (8)
FIR filter 30 may also offer flexibility in that it may not always apply spatialvariant interpolation, but rather the more typical spatialinvariant bicubic interpolation in some circumstances. If one of the above lookup tables 26 specifies an intensity value equal to zero, whereupon the intensity (k) of the filter response is set to zero and the warped distance (s′) therefore equals the distance (s), FIR filter 30 applies a spatialinvariant bicubic filter according to equation (7) with s substituted for s′. Therefore, FIR filter 30 may adapt in such a manner as to perform spatialinvariant bicubic interpolation to image information 20 and such adaptation may occur after determining the quality of image information 20, the identity of an application that requested display 18 to display image information 20, and/or the available system resources of mobile device 10, as described above. In other words, in some cases, FIR filter 30 may be configured to apply spatial variant interpolation, but be adaptive to switch to spatial invariant interpolation under certain conditions.
As an illustration, the following values of k could be used for different absolute values of A to trigger either spatial variant interpolation or spatial invariant interpolation:
k=4, for 0≦A<0.45;
k=0, for 0.45≦A<1. (9)
The embodiment illustrated in
Once configured, mobile device 10 may interact with a user (not shown), whereupon the user may interact with one or more software programs, such as an application or game, and/or hardware components, such as a digital video camera or digital still image camera component. Through this interaction, the software program and/or hardware component may store image information 20 to memory 14, and display processor 16 may retrieve image information 20 from memory 14 for display on display 18 (32).
Upon retrieving image information 20, display processor 16 may perform a final set of operations, as described above. In particular, display processor 16 may upscale image information 20 according to the upscaling technique described herein. First, symmetry module 24 of display processor 16 may determine the symmetry (A) of the scaled pixel based on the neighboring pixel values (34). Symmetry module 24 may determine the symmetry (A) according to above equation (1) and as described below in reference to
In the example of
k=4, for 0≦A<0.45;
k=0, for 0.45≦A<1. (9)
Here, as mentioned above, the intensity k of the filter response equals the intensity value k_{0}, which equals 4, if the symmetry A is greater than or equal to 0 and less than A_{0}, which equals 0.45. The intensity k equals the intensity value k_{1}, which equals 0, if the symmetry A is greater than or equal to A_{0}, which equals 0.45, but less than 1. Because the symmetry A must lie between 0 and 1, only A_{0 }is required to delineate two zones of symmetry, and display processor 16 only needs to determine whether it lies within the first zone of symmetry (36). While described in reference to two zones of symmetry, two or more zones of symmetry may exist, as shown by equation (4), and the upscaling technique described herein should not be limited to strictly two zones of symmetry. The number and size of zones may be adaptive in some embodiments, e.g., based on availability of computing resources and other performance characteristics.
If the symmetry (A) lies within the first zone of symmetry (“YES” 36), i.e., 0≦A<0.45, lookup table 26 returns intensity value k_{0}, or 4, to warped distance module 28, which in turn sets the intensity k equal to 4 (38). After setting the intensity (k) to 4, warped distance module 28 determines the distance (s) between the scaled pixel and the neighboring pixels (40). Warped distance module 28 may compute the distance (s) according to equation (4) above. If image information 20 is encoded according to the RGB color format (“YES” 42), warped distance module 28 determines the warped distance (s′) for the green (G) channel (44). Warped distance module 28 may compute the warped distance (s′) for the green (G) channel according to the above equation (3). Warped distance module 28 sets the warped distance (s′) for each of the red (R) and blue (B) channels equal to the warped distance (s′) computed for the green (G) channel (46). The green (G) channel may be chosen to determine the phase modification term s′ to avoid gray imbalance and use the channel that appears most intense to the human eye.
If image information 20 is not encoded according to the RGB color format but according to the YCbCr color format (“NO” 42), warped distance module 28 determines the warped distance (s′) only for the luminance (Y) channel of image information 20 (48). While only the RGB and YCbCr color formats are discussed herein, other color formats may cause warped distance module 28 to compute warped distances for varying channels of these other color formants, and the upscaling technique described herein should not be strictly limited to the RGB and YCbCr color formats.
After determining the warped distance(s) (s′), warped distance module 28 provides the warped distance(s) (s′) to FIR filter 30. FIR filter 30 performs content adaptive spatial variant bicubic interpolation (50) via application of a filter that may conform to that described above by equation (5). FIR filter 30 performs this adaptive spatial variant bicubic interpolation on one or more channels of image information 20 to generate a scaled pixel value of upscaled image information 16. For example, if image information 20 is encoded according to the RGB color format, FIR filter 30 may perform this interpolation on the red (R), green (G), and blue (B) channels of image information 20, but uses only the warped distance (s′) determined for the green (G) channel. Interpolating all three RGB channels according to the warped distance (s′) determined for the green (G) channel typically lessens the likelihood of color bleeding in upscaled image information 12. As another example, if image information 20 is encoded according to the YCbCr color channel, FIR filter 30 may perform this interpolation on only the luminance (Y) channel of image information 20. FIR filter 30 only interpolates the Y channel in this example because it represents a true color intensity value while both the chromatic blue (Cb) and chromatic red (Cr) channels represent offsets and not true color values.
If, however, the symmetry lies within the second zone (“NO” 36), i.e., 0.45≦A<1, lookup table 26 returns intensity value k_{1}, or 0, to warped distance module 28, which in turn sets the intensity k equal to 0 (52). After setting the intensity (k) to 0, warped distance module 28 determines the distance (s) between the scaled pixel and the neighboring pixels (54). Warped distance module 28 may compute the distance (s) according to equation (4) above. In this instance, because k equals 0, warped distance module 28 may immediately set the warped distance (s′) equal to zero (0) (56). Warped distance module 28 may compute the warped distance (s′) according to the above equation (3), which when k equals 0, reduces equation (3) to s′=s.
When s′ equals s, FIR filter 30 performs spatial invariant bicubic interpolation (58), i.e., rather than spatial variant interpolation, via application of a filter that may be described by the above equation (5). Via application of the filter, FIR filter 30 generates a scaled pixel value of upscaled image information 12.
Upon interpolating a scaled pixel value, display processor 16 determines whether it has finished interpolating all necessary scaled pixel values (60). Typically, display processor 16 applies FIR filter 30 first along the rows of the pixel values defined by image information 20 and second along the columns of the pixel values defined by image information 20. Thus, display processor 16 finishes after applying FIR filter 30 along the last column of image information 20. If not finished (“NO” 60), display processor 20 applies FIR filter 30 to the next scaled pixel value but only after determining the symmetry (A), intensity (k), distance (s) and warped distance (s′) of this new scaled pixel (3460). However, if finished (“YES” 60), display processor 16 may transmit upscaled image information 12 for display on display 18.
Referring to
After determining the symmetry (A), symmetry module 28 accesses lookup tables 26 to determine the associated intensity value, as described above. If the symmetry (A) lies within the above described first zone of symmetry, i.e., if d_{1}−d_{2} is greater than or equal to 0 but less than 0.45, warped distance module 28 receives the first intensity value (k_{0}=4) from lookup table 26 and sets the intensity k=k_{0}. However, if the symmetry lies within the second zone of symmetry, i.e., if d_{1}−d_{2} is greater than or equal to 0.45 but less than 1, warped distance module 28 receives the second intensity value (k_{1}=0) from lookup table 26 and sets the intensity k=k_{1}. Next, warped distance module 28 determines the distance (s) 70 between scaled pixel x and pixel x, according to one of equations (4) above. If the intensity k equals 4, warped pixel module determines the warped distance (s′) according to the above equation (3). If the intensity k equals 0, warped pixel module determines that the warped distance (s′) equals the distance (s) and scaled pixel x is not warped. Upon calculating the warped distance (s′), display processor 16 applies FIR filter 30 to perform either of spatial variant or spatial invariant bicubic interpolation, as described above.
Referring to
After determining the symmetry (A), symmetry module 28 accesses lookup tables 26 to determine the associated intensity value, as described above. If the symmetry (A) lies within the above described first zone of symmetry, i.e., if d_{1}−d_{2} is greater than or equal to 0 but less than 0.45, warped distance module 28 receives the first intensity value (k_{0}=4) from lookup table 26 and sets the intensity k=k_{0}. However, if the symmetry lies within the second zone of symmetry, i.e., if d_{1}−d_{2} is greater than or equal to 0.45 but less than 1, warped distance module 28 receives the second intensity value (k_{1}=0) from lookup table 26 and sets the intensity k=k_{1}. Next, warped distance module 28 determines the distance (s) 76 between scaled pixel x and pixel x_{n }according to one of equations (4) above. If the intensity k equals 4, warped pixel module determines the warped distance (s′) according to the above equation (5). If the intensity k equals 0, warped pixel module determines that the warped distance (s′) equals the distance (s) and scaled pixel x is not warped. Upon calculating the warped distance (s′), display processor 16 applies FIR filter 30 to perform either of spatial variant or spatial invariant bicubic interpolation, as described above.
This disclosure describes adaptive spatial variant interpolation (SVI) techniques for image upscaling. In various embodiments, the interpolation techniques described in this disclosure may support low complexity upscaling of image information while promoting high image quality, including enhanced sharpness, higher contrast and accurate interpolation. The interpolation techniques may be applied using generalized finite impulse response (FIR) filters. In some embodiments, the interpolation techniques may be contentadaptive to provide accurate interpolation while suppressing significant artifacts associated with sharp edges. In addition, the interpolation techniques may be readily applicable to upscaling of color imagery and video, e.g., in both YCbCr (luminance, blue chrominance, red chrominance) and RGB (red, green, blue) formats.
The upscaling techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the techniques may be directed to a computerreadable medium comprising program code providing machineexecutable instructions, that when executed in a device that captures images, performs one or more of the techniques described herein. In that case, the computerreadable medium may comprise random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), readonly memory (ROM), nonvolatile random access memory (NVRAM), electrically erasable programmable readonly memory (EEPROM), FLASH memory, and the like.
The program code may be stored on memory in the form of computer readable instructions. In that case, a processor such as a microprocessor or digital signal processor (DSP) may execute instructions stored in memory in order to carry out one or more of the techniques described herein. In some cases, the techniques may be executed by a DSP that invokes various hardware components. In other cases, the techniques described in this disclosure may be implemented by a microprocessor, one or more application specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), or some other hardwaresoftware combination.
Various embodiments of the disclosure have been described. These and other embodiments are within the scope of the following claims.
Claims
1. A method comprising:
 determining a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image;
 determining an intensity (k) of a spatial variant interpolation filter based on the symmetry A;
 adjusting the spatial variant interpolation filter based on the intensity (k); and
 applying the spatial variant interpolation filter to interpolate the scaled pixel.
2. The method of claim 1, wherein adjusting the spatial variant interpolation filter includes determining a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and adjusting the spatial variant interpolation filter based on the warped distance (s′).
3. The method of claim 2, wherein determining the symmetry (A) of the scaled pixel comprises determining the symmetry (A) of the scaled pixel according to the equation: where the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(xn+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
 A=(f(xn+1)−f(xn−1)−f(xn+2)−f(xn))>>8
4. The method of claim 2, wherein determining the intensity (k) of the filter response comprises:
 determining whether the symmetry (A) resides within one of a plurality of zones (A0An);
 setting the intensity (k) to one of a plurality of intensity values (k0kn) associated with the one of the plurality of zones (A0An) in which the symmetry (A) lies.
5. The method of claim 4, further comprising selectively setting the intensity (k) to equal zero such that the warped distance (s′) equals a distance (s) from the scaled pixel to one of the neighboring pixels to transform the spatial variant interpolation filter into a spatial invariant interpolation filter, and applying the spatial invariant interpolation filter to interpolate the scaled pixel.
6. The method of claim 4, wherein setting the intensity (k) comprises:
 accessing one of a plurality of data structures that store the association of zones (A0An) to the plurality of intensity values (k0kn) based on the determined symmetry (A) to retrieve one of the plurality of intensity values (k0kn); and
 setting the intensity (k) to the retrieved one of the plurality of intensity values (k0kn).
7. The method of claim 6, wherein accessing one of the plurality of data structures comprises accessing one of the plurality of data structures based on one or more of available system resources, and a type of an application requesting the image.
8. The method of claim 2, wherein determining the intensity (k) of the filter response comprises:
 determining a quality of the image; and
 determining the intensity (k) of the filter response for the scaled pixel based on the determination of the quality of the image.
9. The method of claim 2, wherein determining the warped distance (s′) comprises determining the warped distance (s′) according to the equation: where s denotes the distance of the scaled pixel to one of the neighboring pixels, A denotes the symmetry of the scaled pixel, and k denotes the intensity of the filter response for the scaled pixel.
 s′=s−kAs(s−1)
10. The method of claim 2,
 wherein determining the warped distance (s′) comprises determining the warped distance (s′) for the green (G) channel of the image encoded according to the RGB color format, and
 wherein applying the filter comprises applying the filter to the red (R), green (G), and blue (B) channels based on the warped distance (s′) determined for the green (G) channel of the image to perform spatial variant interpolation to determine the value of the scaled pixel.
11. The method of claim 2,
 wherein determining the warped distance (s′) comprises determining the warped distance (s′) for the luminance (Y) channel of the image encoded according to the YCbCr color format;
 wherein applying the filter comprises applying the filter to the luminance (Y) channel based on the warped distance (s′) determined for the luminance (Y) channel to perform spatial variant interpolation to determine the value of the scaled pixel.
12. The method of claim 2, wherein applying the filter comprises applying a filter based on the determined warped distance (s′) to perform spatial variant bicubic interpolation to determine the value of the scaled pixel.
13. The method of claim 12, wherein applying the filter further comprises applying the filter described by the equation: f ( x ) = 1 2 (  s ′3 + 2 s ′2  s ′ ) f ( x n  1 ) + 1 2 ( 3 s ′3  5 s ′2 + 2 ) f ( x n ) + 1 2 (  3 s ′3 + 4 s ′2 + s ′ ) f ( x n + 1 ) + 1 2 ( s ′3  s ′2 ) f ( x n + 2 ) where f(x) denotes the value of the scaled pixel, s′ denotes the warped distance, the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(x+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
14. The method of claim 1, further comprising:
 generating upscaled image that includes the value of the scaled pixel; and
 displaying the upscaled image via a display.
15. A device comprising:
 a memory that stores an image; and
 a processor that determines a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image, determines an intensity (k) of an interpolation filter based on the symmetry A, adjusts the interpolation filter based on the intensity (k), and applies the spatial variant interpolation filter to interpolate the scaled pixel.
16. The device of claim 1, wherein the processor determines a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and adjusts the spatial variant interpolation filter based on the warped distance (s′).
17. The device of claim 16, wherein the processor determines the symmetry (A) of the scaled pixel according to the equation: where the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(xn+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
 A=(f(xn+1)−f(xn−1)−f(xn+2)−f(xn))>>8
18. The device of claim 16, wherein the processor determines whether the symmetry (A) resides within one of a plurality of zones (A0An), and sets the intensity (k) to one of a plurality of intensity values (k0kn) associated with the one of the plurality of zones (A0An) in which the symmetry (A) lies.
19. The device of claim 16, wherein the processor selectively sets the intensity (k) to equal zero such that the warped distance (s′) equals a distance (s) from the scaled pixel to one of the neighboring pixels to transform the spatial invariant interpolation filter into a spatial invariant interpolation filter, and applies the spatial invariant interpolation filter to interpolate the scaled pixel.
20. The device of claim 18, wherein the memory stores a plurality of data structures that store an association between zones of symmetry (A0An) and a plurality of intensity values (k0kn), and the processor accesses one of the plurality of data structures that stores the association of zones (A0An) to the plurality of intensity values (k0kn) based on the determined symmetry (A) to retrieve one of the plurality of intensity values (k0kn), and sets the intensity (k) to the retrieved one of the plurality of intensity values (k0kn).
21. The device of claim 20, wherein the processor accesses one of the plurality of data structures based on one or more of available system resources, and a type of application requesting the image.
22. The device of claim 16, wherein the processor determines quality of the image, and determines the intensity (k) of the filter response for the scaled pixel based on the determination of the quality of the image.
23. The device of claim 16, wherein the processor determines the warped distance (s′) according to the equation: where s denotes the distance of the scaled pixel to one of the neighboring pixels, A denotes the symmetry of the scaled pixel, and k denotes the intensity of the filter response for the scaled pixel.
 s′=s−kAs(s−1)
24. The device of claim 16, wherein the processor determines the warped distance (s′) for the green (G) channel of the image encoded according to the RGB color format, and applies the filter to the red (R), green (G), and blue (B) channels based on the warped distance (s′) determined for the green (G) channel of the image to perform spatial variant interpolation to determine the value of the scaled pixel.
25. The device of claim 16, wherein the processor determines the warped distance (s′) for the luminance (Y) channel of the image encoded according to the YCbCr color format, and applies the filter based on the warped distance (s′) determined for the luminance (Y) channel to perform spatial variant interpolation to determine the value of the scaled pixel.
26. The device of claim 16, wherein the processor applies the filter based on the determined warped distance (s′) to perform spatial variant bicubic interpolation to determine the value of the scaled pixel.
27. The device of claim 26, wherein the processor applies the filter described by the equation: f ( x ) = 1 2 (  s ′3 + 2 s ′2  s ′ ) f ( x n  1 ) + 1 2 ( 3 s ′3  5 s ′2 + 2 ) f ( x n ) + 1 2 (  3 s ′3 + 4 s ′2 + s ′ ) f ( x n + 1 ) + 1 2 ( s ′3  s ′2 ) f ( x n + 2 ) where f(x) denotes the value of the scaled pixel, s′ denotes the warped distance, the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(xn+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
28. The device of claim 16, further comprising a display to display upscaled image, wherein the processor generates the upscaled image that includes the value of the scaled pixel.
29. A computerreadable medium comprising instructions for causing a programmable processor to:
 determine a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image;
 determine an intensity (k) of a spatial variant interpolation filter based on the symmetry A;
 adjust the spatial variant interpolation filter based on the intensity (k); and
 apply the spatial variant interpolation filter to interpolate the scaled pixel.
30. The computerreadable medium of claim 27, wherein the instructions cause the processor to determine a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and adjust the spatial variant interpolation filter based on the warped distance (s′).
31. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine the symmetry (A) of the scaled pixel according to the equation: where the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(xn+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
 A=(f(xn+1)−f(xn−1)−f(xn+2)−f(xn))>>8
32. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine whether the symmetry (A) resides within one of a plurality of zones (A0An), and set the intensity (k) to one of a plurality of intensity values (k0kn) associated with the one of the plurality of zones (A0An) in which the symmetry (A) lies.
33. The computerreadable medium of claim 30, wherein the instructions cause the processor to selectively set the intensity (k) to equal zero such that the warped distance (s′) equals a distance (s) from the scaled pixel to one of the neighboring pixels to transform the spatial invariant interpolation filter into a spatial invariant interpolation filter, and apply the spatial invariant interpolation filter to interpolate the scaled pixel.
34. The computerreadable medium of claim 30, wherein the instructions cause the processor to access one of a plurality of data structures that store the association of zones (A0An) to the plurality of intensity values (k0kn) based on the determined symmetry (A) to retrieve one of the plurality of intensity values (k0kn), and set the intensity (k) to the retrieved one of the plurality of intensity values (k0kn).
35. The computerreadable medium of claim 34, wherein the instructions cause the processor to access one of the plurality of data structures based on one or more of available system resources, and an application requesting the image.
36. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine the quality of the image, and determine the intensity (k) of the filter response for the scaled pixel based on the determination of the quality of the image.
37. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine the warped distance (s′) according to the equation: where s denotes the distance of the scaled pixel to one of the neighboring pixels, A denotes the symmetry of the scaled pixel, and k denotes the intensity of the filter response for the scaled pixel.
 s′=s−kAs(s−1)
38. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine the warped distance (s′) for the green (G) channel of the image encoded according to the RGB color format, and apply the filter to the red (R), green (G), and blue (B) channels based on the warped distance (s′) determined for the green (G) channel of the image to perform spatial variant interpolation to determine the value of the scaled pixel.
39. The computerreadable medium of claim 30, wherein the instructions cause the processor to determine the warped distance (s′) for the luminance (Y) channel of the image encoded according to the YCbCr color format, and apply the filter to the luminance (Y) channel based on the warped distance (s′) determined for the luminance (Y) channel to perform spatial variant interpolation to determine the value of the scaled pixel.
40. The computerreadable medium of claim 30, wherein the instructions cause the processor to apply the filter based on the determined warped distance (s′) to perform spatial variant bicubic interpolation to determine the value of the scaled pixel.
41. The computerreadable medium of claim 30, wherein the instructions cause the processor to apply the filter described by the equation: f ( x ) = 1 2 (  s ′3 + 2 s ′2  s ′ ) f ( x n  1 ) + 1 2 ( 3 s ′3  5 s ′2 + 2 ) f ( x n ) + 1 2 (  3 s ′3 + 4 s ′2 + s ′ ) f ( x n + 1 ) + 1 2 ( s ′3  s ′2 ) f ( x n + 2 ) where f(x) denotes the value of the scaled pixel, s′ denotes the warped distance, the neighboring pixels comprise pixels denoted by xn+1, xn−1, xn+2, and xn, and f(xn+1), f(xn−1), f(xn+2), and f(xn) denote the value associated with the respective pixels xn+1, xn−1, xn+2, and xn.
42. The computerreadable medium of claim 30, further comprising instructions that cause the processor to generate upscaled image that includes the value of the scaled pixel, drive a display device to display the upscaled image.
43. A device comprising:
 means for determining a symmetry (A) of a scaled pixel in an image based on content characteristics of neighboring pixels in the image;
 means for determining an intensity (k) of a spatial variant interpolation filter based on the symmetry A;
 means for adjusting the spatial variant interpolation filter based on the intensity (k); and
 means for applying the spatial variant interpolation filter to interpolate the scaled pixel.
44. The device of claim 43, wherein the adjusting means includes means for determining a warped distance (s′) based on the symmetry (A) of the scaled pixel and the intensity (k) of the filter response, and means for adjusting the spatial variant interpolation filter based on the warped distance (s′).
Type: Application
Filed: Aug 9, 2006
Publication Date: Feb 14, 2008
Patent Grant number: 9013511
Inventors: Yi Liang (San Diego, CA), KingChung Lai (San Diego, CA), Khaled Helmi ElMaleh (San Diego, CA)
Application Number: 11/502,233