WO2012121412A1 - Methods of image upscaling based upon directional interpolation - Google Patents
Methods of image upscaling based upon directional interpolation Download PDFInfo
- Publication number
- WO2012121412A1 WO2012121412A1 PCT/JP2012/056488 JP2012056488W WO2012121412A1 WO 2012121412 A1 WO2012121412 A1 WO 2012121412A1 JP 2012056488 W JP2012056488 W JP 2012056488W WO 2012121412 A1 WO2012121412 A1 WO 2012121412A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pixels
- interpolation
- pixel
- image
- technique
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
Definitions
- the present invention relates to methods of image upscaling based upon directional interpolation .
- Digital video is typically represented as a series of images or frames , each of which contains an array of pixels.
- Each pixel includes information, such as intensity and/ or color information .
- each pixel is represented as a set of three colors, each of which is defined by eight bit color values .
- Pixel information within a frame may be missing such as boundary conditions that may result when executing a video conversion process, such as the conversion between interlaced television field signals and progressive frame signals .
- a frame may be at a first resolution, such as standard definition , which is desirable to convert to a second resolution, such as high definition .
- Standard techniques for pixel interpolation are based on the application of classical linear filters. However, such techniques introduce various visual artifacts such as blurring of sharp edge patterns and detailed texture patterns in the image, ringing along edge contours, as well jaggedness along edge contours. Such artifacts generally cannot be avoided when standard linear filtering techniques are used for interpolation. Therefore , there is a need for improved techniques for pixel interpolation, such as techniques that are adaptive to local image patterns .
- An improved technique for pixel interpolation is generally referred to as an edge-directed interpolation which seeks to generate a value for a missing pixel by extending the patterns in selected directions, expressed as edges which exist in the surrounding pixels of an image frame.
- edges which exist in the surrounding pixels of an image frame.
- it is difficult to determine the existence of an edge in an image and the direction of such an edge in an image. Erroneous estimates of the direction can lead to new visual artifacts in the image after interpolation. Therefore, there is a need for a robust technique for estimating the direction of a local edge pattern in an image.
- an image upscaling technique with low computational complexity that can outperform standard linear filtering techniques in terms of visual quality.
- a method for interpolation comprising:
- step (e) determining interpolated pixels for an output image having more pixels than said input image based upon said interpolated pixels of step (c) and step (d) .
- FIG. 1 is a block diagram of an image upscaling technique.
- FIG. 2 illustrates a 7 by 7 window for the interpolation of pixels.
- FIG.3 illustrates direction interpolation.
- An output pixel uses its nearest input pixel's edge orientation as its interpolation direction. All the output pixels in the shadow square share the same interpolation direction.
- FIG. 4 illustrates an interpolation technique for -45 degrees.
- FIG. 5 illustrates an interpolation technique for -26.6 degrees.
- FIG. 6 illustrates an interpolation technique for -18.4 degrees.
- FIG. 7 illustrates an interpolation technique for +0 degrees.
- FIG. 8 illustrates an interpolation technique for +18.4 degrees.
- FIG. 9 illustrates an interpolation technique for +26.6 degrees.
- FIG. 10 illustrates an interpolation technique for +45 degrees.
- FIG. 11 illustrates an interpolation technique for +63.4 degrees.
- FIG. 12 illustrates an interpolation technique for +71.6 degrees.
- FIG. 13 illustrates an interpolation technique for +90 degrees.
- FIG. 14 illustrates an interpolation technique for + 108.4 degrees .
- FIG . 15 illustrates an interpolation technique for + 1 16.6 degrees .
- FIG. 16 illustrates an interpolation technique for finding four pixels of parallelograms.
- the four pixels that define the X- and Y-parallelograms are illustrated.
- the X-parallelogram is at the top and Y-parallelogram is at the bottom.
- the estimating is based upon a gradient.
- the estimating is based upon a 5 by 5 window.
- the estimating is performed upon a majority of said plurality of pixels of said image .
- the estimating is based upon the luminance of said image .
- the method comprising determining a reliability measure that said edge direction is suitable .
- the reliability measure is a weighted reliability measure .
- a plurality of said estimations are stored in a buffer.
- a selected one of said estimations closest to a desired output pixel for said interpolation is selected.
- the interpolation includes no iterations .
- the interpolation uses one of a plurality of pre-selected sets of pixels and weights.
- the interpolation uses a closest one of said estimations .
- the estimating of said edge direction is based on a plurality of pixels proximate said first pixel.
- the interpolating is based upon the pixels in a 9 by 9 window centered around said first pixel.
- the estimating and interpolating is based upon the pixels of different sized windows centered around said first pixel.
- the determining of said interpolated pixels is based on said reliability measure .
- an exemplary image upscaling technique includes directional based interpolation.
- the technique includes a window of image pixels 100 such as a 5 by 5 set of pixels (25 total pixels) .
- the image upscaling technique is applied to each pixel of the image, with the 5 by 5 window of pixels being sequentially centered around each pixel of the image, such as in a raster scan fashion .
- the upscaling technique preferably estimates the edge orientation of the central pixel of the 5 by 5 window based upon the luminance Y component of the color image, even if no edge exists in the window.
- the window of image pixels 100 is preferably moved around the image in a predefined manner such that the input image containing MxN pixels results in an output image greater than MxN pixels. The movement may be based on using a line buffer 105. It is noted that a larger or smaller window of pixels may alternatively be used. A preferred window is a square window of pixels. It is also noted that a window with other shapes may alternatively be used, such as a rectangular window, or a diamond shaped window, or octagonal shaped window, and so forth.
- the 5 by 5 window may be used to estimate an orientation 110 (direction) of an edge at or near the central pixel.
- the orientation estimation 110 of the edges may use any suitable technique, such as using a gradient technique, to determine an orientation 125.
- the gradient estimation for a MxN block of pixels may be based upon:
- G x (M,N) and G y (M,N are the x- and y-gradients at ( ,N).
- G y (M , N) (p(M+l, N-l) + 2p(M+ ⁇ , N) + p(M+ ⁇ , N+l))
- a reliability score 120 may be determined which estimates the likelihood that the orientation estimation 110 has determined an actual edge.
- the reliability score may be based on checking the agreement between an estimated angle and its 8 neighbors in a 3x3 window, i.e., reliability _ score— - n)— ⁇ ( ⁇ , y)) - 1
- the reliability score may be a non-binary scaler between 0 and 1, with 8 quantization levels. Any other reliability measure may likewise be used.
- the output of the orientation estimation 110 may be refined by an orientation refinement technique.
- the orientation refinement may use a different technique from the orientation estimation 110 to select from among the best candidate(s) from the orientation estimation 110.
- the orientation refinement reduces the likelihood of the orientation estimation 110 being in error as a result of local minimums in the estimation process.
- a set of orientations 125 for a group of pixels may be stored in a line buffer 130. In this manner, a plurality of orientations 125 will be available, as needed, for further image analysis without having to recalculate the orientations for a previously processed pixel.
- a set of reliability score 120 may be stored in a line buffer 140. In this manner, a plurality of reliability scores 120 will be available , as needed, for further image analysis without having to recalculate the orientations for a previously processed pixel.
- a location determination process 150 may be used to determine, based upon the desired location of the output pixel position 160 , the orientation 125 of which pixel 170 of the input image should be used to determine the value of the output pixel position 160.
- the selected pixel 170 is the one closest to a pixel location in the input image .
- the location determination process 150 may further, based upon the desired location of the output pixel position 160 , obtain a selected set of pixels 180 of the input image that may be used to determine the pixel value of the output pixel position 160.
- a near continuous set of output positions may be selected, such as those that are not merely a multiple of 2.
- a direction based interpolation technique 185 uses the pixel data 190 from the line buffer 105 together with the orientation of the selected pixel 200 from the line buffer 130 in combination with the output pixel position 160. Based upon the input information to the directional interpolation 185, a set multiple input image pixels 2 10 are selected from which to determine the value at the output pixel position 160.
- the set of multiple input pixels 2 10 is preferably 4 forming an enclosed loop, preferably in the shape of a parallelogram.
- the process further selects appropriate weights for the set of multiple input pixels 2 10 suitable to provide a value at the output pixel position 160.
- the angular interpolation can be performed on a finer basis.
- a technique that includes a flexible set of locations used to select the value for the desired output pixel position further based upon the orientation, a near continuous set of output positions may be selected, such as those that are not merely a multiple of 2.
- the directional based interpolation technique 185 uses the pixel locations and the corresponding weights 2 10 together with the input pixel data 190 to determine an appropriate weighted average 220 for the desired output pixel position 160.
- the result of the directional based interpolation technique 185 is a value 230 for the output pixel position 160.
- the directional interpolation 185 does not provide accurate results , such as in the case that there is no defined edge within the 5 by 5 window or the pixel is near the edge of an image.
- the upscaling technique may provide a fallback interpolation 240 that is not based to such a degree upon the determination of edges. For those are not on the edge , non- directional interpolation approach is preferred .
- There are many such interpolation techniques which may or may not be content adaptive .
- Lanczo s linear filter may be used :
- every output pixel position 160 may be interpolated twice , namely, a directional technique 1 85 and a fallback technique 240.
- a blending mixes 250 together the two techniques based on the re spective reliability measure
- the fallback interpolation 240 may be multiplied by 1 minus the reliability measure which is added to the directional interpolation multiplied by the reliability measure .
- the output 270 is a combination of the directional interpolation 1 85 and the fallback interpolation 240. This process is repeated for all the desired output pixel positions .
- the result of the technique is the ability of selecting any desired output image resolution, and being capable of scaling substantially any input image resolution to that desired output image resolution .
- the implementation of the system may use any suitable technique .
- the rate at which the orientation estimation is performed may be at a slower rate than the interpolation technique which is performed at a higher rate . This difference in rates facilitates more efficient data throughput for the upscaling of the image .
- the orientation estimation 1 10 by may use gradients to estimate one or more pixels around the center pixel.
- the technique may quantize the edge orientation into a plurality of different directions to make a determination of where the edge may exist, if any.
- the angles are preferably not evenly distributed to facilitate the construction of interpolation parallelograms so that the 4 corners of the parallelograms snap to the input pixel grids .
- the quantization may include coefficients (most of them are preferably zero) for performing the interpolation along the edge orientation, not across the edge orientation.
- the plurality of different directions may include, for example , 12 different directions defined as, -45 degrees (FIG. 4) , -26.6 degrees (FIG. 5) , - 18.4 degrees (FIG. 6) , 0 degrees (FIG. 7) , + 18.4 degrees (FIG. 8) , +26.6 degrees (FIG. 9) , +45 degrees (FIG. 10) , +63.4 degrees (FIG. 1 1 ) , +71 .6 degrees (FIG. 12) , +90 degrees (FIG. 13) , + 108.4 degrees (FIG. 14) , and + 1 16.6 degrees (FIG . 15) .
- Each direction may be indexed with an index from 0 to 1 1 , with direction with index 0 corresponding to -45 degrees, with index 1 corresponding to - 26.6 degrees, with index 2 corresponding to - 18.4 degrees, with index 3 corresponding to 0 degrees, with index 4 corresponding to + 18.4 degrees, with index 5 corresponding to +26.6 degrees, with index 6 corresponding to +45 degrees, with index 7 corresponding to +63.4 degrees, with index 8 corresponding to +7 1 .6 degrees, with index 9 corresponding to +90 degrees , with index 10 corresponding to + 108.4 degrees, and with index 1 1 corresponding to + 1 16.6 degrees .
- multiple parallelograms may be formed so that the new pixels are either inside the parallelograms or on the boundaries. The new pixels are interpolated using these parallelograms by averaging of pixels at either 4 corner points of a parallelogram, or by averaging pixels at 2 points in the 5 by 5 window. Other pixel selection techniques and calculation techniques may likewise be used.
- the directional interpolation process 185 includes three steps to determine the intensity value of a desired output position:
- the output pixels can be anywhere .
- the directional interpolation module should determine the interpolation direction for any given output position. This may be simplified by using the edge orientation of the nearest input pixel estimated in the last phase as the interpolation direction. More specifically, for the position of T at (x, y) , the nearest input pixel is at (M , N) . Using math terms,
- FIG . 3 illustrates an edge orientation at (M , N) with an edge orientation represented by angle index 1 1 , so the interpolation direction is 1 16.6 ° .
- the direction interpolation module determines its 4 nearest pixels along the interpolation direction for any given output position. These 4 nearest input pixels form a parallelogram skewing along the interpolation direction. Illustrated in Figure 3 , output position T has an interpolation direction of 1 16.6 ° , so P I , P2 , P3 , and P4 are T's four nearest input pixels along this direction, and they form a parallelogram. Two sides of the parallelogram have the angle of 1 16.6 ° , the others are vertical. It is worthwhile to point out that although the input pixel at (M ,N) determines T's interpolation direction, (M, N) might be outside of the interpolation parallelogram, as shown in FIG . 3.
- FIGS . 4- 15, as previously described, illustrate the interpolation parallelograms of all the 12 interpolation directions for all the output pixels in the ⁇ 0.5 range of (M , N) .
- the parallelograms may have the following characteristics :
- the same interpolation position may be in different parallelograms if its interpolation direction changes;
- X-parallelograms are for angle indexes 0- 5 , whose top and bottom sides are parallel to the X-axis
- the preferred maximal window requirement is a 9x9 window at the input resolution .
- Determining the 4 pixels P I P2 P3 P4 along an interpolation direction for a given arbitrary output position T at (x, y) is illustrated in FIG. 16, which is different for both X- and Y-parallelograms .
- This technique is equally applicable for all other selection of multiple pixel values, such as those illustrated in FIGS . 4- 15.
- AD is the same as the x-coordinate difference between PI and P3
- AD is the same as the y-coordinate difference between PI and P3.
- C has the coordinate as (x, floor(y)). Then A has the coordinate as (x+AC, floor(y))
- Y-parallelogram C has the coordinate as (floor(x), y). Then A has the coordinate as (floor(x), y+AC).
- the directional interpolation technique interpolates the intensity value of T from intensity values of
- the system To interpolate the pixel along the direction, as illustrated in FIG. 3, the system first define lines AB and EF that are parallel to P1P3 and P1P2 respectively. The cross point of AB and EF is T. Then the system may define the interpolation equation as:
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
A method for interpolation includes receiving an input image having a plurality of pixels and estimating an edge direction proximate a first pixel of the input image using a first technique from a plurality of discrete potential directions. Interpolating pixels using a substantially arbitrary scaling factor proximate the first pixel based upon the estimated edge direction and interpolating pixels using substantially arbitrary scaling factor proximate the first pixel based upon another technique not based upon the estimated edge direction. The interpolated pixels are determined for an output image having more pixels than the input image based upon the interpolated pixels of directional interpolation (185) and non-directional interpolation (240).
Description
DESCRIPTION
TITLE OF INVENTION : METHODS OF IMAGE UPSCALING BASED UPON DIRECTIONAL INTERPOLATION TECHNICAL FIELD
The present invention relates to methods of image upscaling based upon directional interpolation .
BACKGROUND ART
Digital video is typically represented as a series of images or frames , each of which contains an array of pixels. Each pixel includes information, such as intensity and/ or color information . In many cases, each pixel is represented as a set of three colors, each of which is defined by eight bit color values .
Pixel information within a frame may be missing such as boundary conditions that may result when executing a video conversion process, such as the conversion between interlaced television field signals and progressive frame signals . In other cases, a frame may be at a first resolution, such as standard definition , which is desirable to convert to a second resolution, such as high definition .
Standard techniques for pixel interpolation are based on the application of classical linear filters. However, such techniques introduce various visual artifacts such as blurring
of sharp edge patterns and detailed texture patterns in the image, ringing along edge contours, as well jaggedness along edge contours. Such artifacts generally cannot be avoided when standard linear filtering techniques are used for interpolation. Therefore , there is a need for improved techniques for pixel interpolation, such as techniques that are adaptive to local image patterns .
An improved technique for pixel interpolation is generally referred to as an edge-directed interpolation which seeks to generate a value for a missing pixel by extending the patterns in selected directions, expressed as edges which exist in the surrounding pixels of an image frame. Unfortunately, it is difficult to determine the existence of an edge in an image and the direction of such an edge in an image. Erroneous estimates of the direction can lead to new visual artifacts in the image after interpolation. Therefore, there is a need for a robust technique for estimating the direction of a local edge pattern in an image. Furthermore, there is a need for an image upscaling technique with low computational complexity that can outperform standard linear filtering techniques in terms of visual quality.
The foregoing and other objectives, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention, taken in conjunction with the accompanying
drawings .
SUMMARY OF INVENTION
According to one aspect of the invention, there is provided a method for interpolation comprising:
(a) receiving an input image having a plurality of pixels;
(b) estimating an edge direction proximate a first pixel of said input image using a first technique from a plurality of discrete potential directions;
(c) interpolating pixels using a substantially arbitrary scaling factor proximate said first pixel based upon said estimated edge direction;
(d) another interpolating pixels using substantially arbitrary scaling factor proximate said first pixel based upon another technique not based upon said estimated edge direction;
(e) determining interpolated pixels for an output image having more pixels than said input image based upon said interpolated pixels of step (c) and step (d) .
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram of an image upscaling technique.
FIG. 2 illustrates a 7 by 7 window for the interpolation
of pixels. The 12 estimated angles defined in a 7 by 7 window.
FIG.3 illustrates direction interpolation. An output pixel uses its nearest input pixel's edge orientation as its interpolation direction. All the output pixels in the shadow square share the same interpolation direction.
FIG. 4 illustrates an interpolation technique for -45 degrees.
FIG. 5 illustrates an interpolation technique for -26.6 degrees.
FIG. 6 illustrates an interpolation technique for -18.4 degrees.
FIG. 7 illustrates an interpolation technique for +0 degrees.
FIG. 8 illustrates an interpolation technique for +18.4 degrees.
FIG. 9 illustrates an interpolation technique for +26.6 degrees.
FIG. 10 illustrates an interpolation technique for +45 degrees.
FIG. 11 illustrates an interpolation technique for +63.4 degrees.
FIG. 12 illustrates an interpolation technique for +71.6 degrees.
FIG. 13 illustrates an interpolation technique for +90 degrees.
FIG. 14 illustrates an interpolation technique for + 108.4 degrees .
FIG . 15 illustrates an interpolation technique for + 1 16.6 degrees .
FIG. 16 illustrates an interpolation technique for finding four pixels of parallelograms. The four pixels that define the X- and Y-parallelograms are illustrated. The X-parallelogram is at the top and Y-parallelogram is at the bottom. DESCRIPTION OF EMBODIMENTS
The estimating is based upon a gradient.
The estimating is based upon a 5 by 5 window.
The estimating is performed upon a majority of said plurality of pixels of said image .
The estimating is based upon the luminance of said image .
The method comprising determining a reliability measure that said edge direction is suitable .
The reliability measure is a weighted reliability measure . A plurality of said estimations are stored in a buffer.
A selected one of said estimations closest to a desired output pixel for said interpolation is selected.
The interpolation includes no iterations .
The interpolation uses one of a plurality of pre-selected sets of pixels and weights.
The interpolation uses a closest one of said estimations .
The estimating of said edge direction is based on a plurality of pixels proximate said first pixel.
The interpolating is based upon the pixels in a 9 by 9 window centered around said first pixel.
The estimating and interpolating is based upon the pixels of different sized windows centered around said first pixel.
The determining of said interpolated pixels is based on said reliability measure .
Referring to FIG . 1 , an exemplary image upscaling technique includes directional based interpolation. The technique includes a window of image pixels 100 such as a 5 by 5 set of pixels (25 total pixels) . Preferably the image upscaling technique is applied to each pixel of the image, with the 5 by 5 window of pixels being sequentially centered around each pixel of the image, such as in a raster scan fashion . The upscaling technique preferably estimates the edge orientation of the central pixel of the 5 by 5 window based upon the luminance Y component of the color image, even if no edge exists in the window. For example , Y can be calculated from RGB using the definition by CCIR709 = 0.2 126R + 0.7 152G + 0.0722B . The window of image pixels 100 is preferably moved around the image in a predefined manner such that the input image containing MxN pixels
results in an output image greater than MxN pixels. The movement may be based on using a line buffer 105. It is noted that a larger or smaller window of pixels may alternatively be used. A preferred window is a square window of pixels. It is also noted that a window with other shapes may alternatively be used, such as a rectangular window, or a diamond shaped window, or octagonal shaped window, and so forth.
The 5 by 5 window may be used to estimate an orientation 110 (direction) of an edge at or near the central pixel. The orientation estimation 110 of the edges may use any suitable technique, such as using a gradient technique, to determine an orientation 125.
where Gx (M,N) and Gy (M,N are the x- and y-gradients at ( ,N).
One technique to calculate the gradients is based upon a Sobel operator, namely:
GX(M ,N) = (}(M-\, N+l) + 2p(M,N+l) + p(M+l, N +1))
-< ( -1,N-1) + 2p(M, N-l) + p(M+l, N-l))
Gy (M , N) = (p(M+l, N-l) + 2p(M+\, N) + p(M+\, N+l))
-(p(M -l,N -1) + 2p(M -I, N) + p(M -1, N+l))
where ρ(Μ-Ι,Ν-Ι) is pixel's intensity at ( -1,N-1), etc.
A reliability score 120 may be determined which estimates the likelihood that the orientation estimation 110 has determined an actual edge. The reliability score may be based on checking the agreement between an estimated angle and its 8 neighbors in a 3x3 window, i.e., reliability _ score— - n)— θ(χ, y)) - 1
The above equation illustrates that the reliability score may be a non-binary scaler between 0 and 1, with 8 quantization levels. Any other reliability measure may likewise be used.
Optionally, the output of the orientation estimation 110 may be refined by an orientation refinement technique. The orientation refinement may use a different technique from the orientation estimation 110 to select from among the best candidate(s) from the orientation estimation 110. The orientation refinement reduces the likelihood of the orientation estimation 110 being in error as a result of local minimums in the estimation process.
A set of orientations 125 for a group of pixels may be stored in a line buffer 130. In this manner, a plurality of orientations 125 will be available, as needed, for further image analysis without having to recalculate the orientations for a previously processed pixel. Likewise, a set of reliability
score 120 may be stored in a line buffer 140. In this manner, a plurality of reliability scores 120 will be available , as needed, for further image analysis without having to recalculate the orientations for a previously processed pixel.
A location determination process 150 may be used to determine, based upon the desired location of the output pixel position 160 , the orientation 125 of which pixel 170 of the input image should be used to determine the value of the output pixel position 160. Preferably, the selected pixel 170 is the one closest to a pixel location in the input image . The location determination process 150 may further, based upon the desired location of the output pixel position 160 , obtain a selected set of pixels 180 of the input image that may be used to determine the pixel value of the output pixel position 160. By using a technique that includes a flexible set of locations to select an orientation and the appropriate set of input image pixel values, a near continuous set of output positions may be selected, such as those that are not merely a multiple of 2.
A direction based interpolation technique 185 uses the pixel data 190 from the line buffer 105 together with the orientation of the selected pixel 200 from the line buffer 130 in combination with the output pixel position 160. Based upon the input information to the directional interpolation 185, a set multiple input image pixels 2 10 are selected from which to determine the value at the output pixel position 160.
The set of multiple input pixels 2 10 is preferably 4 forming an enclosed loop, preferably in the shape of a parallelogram. In addition to selecting the set of multiple input pixels, the process further selects appropriate weights for the set of multiple input pixels 2 10 suitable to provide a value at the output pixel position 160. By using a larger set of pixel data 190 , such as a 9x9 set of pixel data, the angular interpolation can be performed on a finer basis. By using a technique that includes a flexible set of locations used to select the value for the desired output pixel position , further based upon the orientation, a near continuous set of output positions may be selected, such as those that are not merely a multiple of 2.
The directional based interpolation technique 185 uses the pixel locations and the corresponding weights 2 10 together with the input pixel data 190 to determine an appropriate weighted average 220 for the desired output pixel position 160. The result of the directional based interpolation technique 185 is a value 230 for the output pixel position 160.
In some cases, the directional interpolation 185 does not provide accurate results , such as in the case that there is no defined edge within the 5 by 5 window or the pixel is near the edge of an image. The upscaling technique may provide a fallback interpolation 240 that is not based to such a degree upon the determination of edges. For those are not on the
edge , non- directional interpolation approach is preferred . There are many such interpolation techniques , which may or may not be content adaptive . As one of the many embodiments , Lanczo s linear filter may be used :
°NDI (*> y) =∑∑ {wi p( floor (x) + i, floor (y) + j))
where P is the input pixel .
Thus every output pixel position 160 may be interpolated twice , namely, a directional technique 1 85 and a fallback technique 240. A blending mixes 250 together the two techniques based on the re spective reliability measure
260 :
Ofinai(x,y) reliability _ _score* O Di+ ( l - reliability_score) * ONDi Using the reliability measure 260 as a basis for determining an appropriate output 270 , the fallback interpolation 240 may be multiplied by 1 minus the reliability measure which is added to the directional interpolation multiplied by the reliability measure . In this manner, the output 270 is a combination of the directional interpolation 1 85 and the fallback interpolation 240. This process is repeated for all the desired output pixel positions . The result of the technique is the ability of selecting any desired output image resolution, and being capable of scaling substantially any input image resolution to that desired output image resolution .
The implementation of the system may use any suitable
technique . In one implementation, the rate at which the orientation estimation is performed may be at a slower rate than the interpolation technique which is performed at a higher rate . This difference in rates facilitates more efficient data throughput for the upscaling of the image .
Referring to FIG. 2 , the orientation estimation 1 10 by may use gradients to estimate one or more pixels around the center pixel. The technique may quantize the edge orientation into a plurality of different directions to make a determination of where the edge may exist, if any. The angles are preferably not evenly distributed to facilitate the construction of interpolation parallelograms so that the 4 corners of the parallelograms snap to the input pixel grids . The quantization may include coefficients (most of them are preferably zero) for performing the interpolation along the edge orientation, not across the edge orientation.
The plurality of different directions may include, for example , 12 different directions defined as, -45 degrees (FIG. 4) , -26.6 degrees (FIG. 5) , - 18.4 degrees (FIG. 6) , 0 degrees (FIG. 7) , + 18.4 degrees (FIG. 8) , +26.6 degrees (FIG. 9) , +45 degrees (FIG. 10) , +63.4 degrees (FIG. 1 1 ) , +71 .6 degrees (FIG. 12) , +90 degrees (FIG. 13) , + 108.4 degrees (FIG. 14) , and + 1 16.6 degrees (FIG . 15) . Each direction may be indexed with an index from 0 to 1 1 , with direction with index 0 corresponding to -45 degrees, with index 1 corresponding to -
26.6 degrees, with index 2 corresponding to - 18.4 degrees, with index 3 corresponding to 0 degrees, with index 4 corresponding to + 18.4 degrees, with index 5 corresponding to +26.6 degrees, with index 6 corresponding to +45 degrees, with index 7 corresponding to +63.4 degrees, with index 8 corresponding to +7 1 .6 degrees, with index 9 corresponding to +90 degrees , with index 10 corresponding to + 108.4 degrees, and with index 1 1 corresponding to + 1 16.6 degrees . Along a direction, multiple parallelograms may be formed so that the new pixels are either inside the parallelograms or on the boundaries. The new pixels are interpolated using these parallelograms by averaging of pixels at either 4 corner points of a parallelogram, or by averaging pixels at 2 points in the 5 by 5 window. Other pixel selection techniques and calculation techniques may likewise be used.
As previously described, the directional interpolation process 185 includes three steps to determine the intensity value of a desired output position:
( 1 ) determine the proper interpolation direction;
(2) determine the proper pixels to form a parallelogram for interpolation; and
(3) interpolating in the parallelogram along the interpolation direction.
With an arbitrary scaling factor previously described, the output pixels can be anywhere . As the first step, the
directional interpolation module should determine the interpolation direction for any given output position. This may be simplified by using the edge orientation of the nearest input pixel estimated in the last phase as the interpolation direction. More specifically, for the position of T at (x, y) , the nearest input pixel is at (M , N) . Using math terms,
M=round(x)
N=round(y)
All the output pixels in the ±0.5 range of (M, N) share the same interpolation direction. FIG . 3 illustrates an edge orientation at (M , N) with an edge orientation represented by angle index 1 1 , so the interpolation direction is 1 16.6 ° .
In the second step, the direction interpolation module determines its 4 nearest pixels along the interpolation direction for any given output position. These 4 nearest input pixels form a parallelogram skewing along the interpolation direction. Illustrated in Figure 3 , output position T has an interpolation direction of 1 16.6 ° , so P I , P2 , P3 , and P4 are T's four nearest input pixels along this direction, and they form a parallelogram. Two sides of the parallelogram have the angle of 1 16.6 ° , the others are vertical. It is worthwhile to point out that although the input pixel at (M ,N) determines T's interpolation direction, (M, N) might be outside of the interpolation parallelogram, as shown in FIG . 3.
FIGS . 4- 15, as previously described, illustrate the
interpolation parallelograms of all the 12 interpolation directions for all the output pixels in the ±0.5 range of (M , N) . The parallelograms may have the following characteristics :
( 1 ) the same interpolation position may be in different parallelograms if its interpolation direction changes;
(2) The output positions in the ±0.5 range of (M , N) share the same interpolation direction, but they may be interpolated in different parallelograms.
There are two sides of parallelograms :
( 1 ) X-parallelograms are for angle indexes 0- 5 , whose top and bottom sides are parallel to the X-axis
(2) Y-parallelograms are for angle indexes 6- 1 1 , whose left and right sides are parallel to the Y-axis
Different interpolation directions have different preferable window size requirement, and the preferred maximal window requirement is a 9x9 window at the input resolution .
Determining the 4 pixels P I P2 P3 P4 along an interpolation direction for a given arbitrary output position T at (x, y) is illustrated in FIG. 16, which is different for both X- and Y-parallelograms . This technique is equally applicable for all other selection of multiple pixel values, such as those illustrated in FIGS . 4- 15. Initially one may construct a triangle ABD in x- and y-parallelograms, respectively. Then calculate AC, the distance between A and C .
It may be observed that AC=AD*CT/BD. In x- parallelograms, AD is the same as the x-coordinate difference between PI and P3; in y-parallelograms, AD is the same as the y-coordinate difference between PI and P3. Specifically,
In X-parallelograms, CT=y-floor(y) ; in Y-parallelograms, CT=x-floor(x) . In both x- and y-parallelograms, BD=1. Therefore,
X- parallelogram: AC=AD*(y-floor(y))
Y-parallelogram: AC=AD*(x-floor(x))
Calculate the coordinates of A,
X-parallelogram: C has the coordinate as (x, floor(y)). Then A has the coordinate as (x+AC, floor(y))
Y-parallelogram: C has the coordinate as (floor(x), y). Then A has the coordinate as (floor(x), y+AC).
From coordinates of A to determine coordinates of PI, P2, P3, P4
X-parallelogram: Pl = (floor(x+AC), floor(y))
P2 = (floor(x+AC)+l, floor(y))
P3 = (floor(x+AC)+AD, floor(y)+l)
P4 = (floor(x+AC)+AD+ 1 , floor(y)+ 1)
Y-parallelogram: Pl = (floor(x), floor(y+AC))
P2 = (floor(x), floor(y+AC)+l)
P3 = (floor(x)+l, floor(y+AC)+AD)
P4 = (floor(x)+l, floor(y+AC)+AD+l)
In the third step, the directional interpolation technique interpolates the intensity value of T from intensity values of
PI, P2, P3, and P4. To interpolate the pixel along the direction, as illustrated in FIG. 3, the system first define lines AB and EF that are parallel to P1P3 and P1P2 respectively. The cross point of AB and EF is T. Then the system may define the interpolation equation as:
ODl( ,y) =W1P1+W2P2 + W3P3+W4P4
where wi, W2, w3, w4 are
wi = areaTBFP4
W2=areaTBEP3
W3=areaTAFP2
W4=areaTAEPi = 1 -W1-W2-W3
X- and Y-parallelograms are different in calculation of these weights:
X- parallelogram:
wi = (l- x-AC +floor(x+AC))*(l-y+floor(y))
W2 = ( x+AC -floor(x+AC))*(l-y+floor(y))
W3 = (l- x-AC +floor(x+AC))*(y-floor(y))
Y-parallelogram:
i = (l-x+floor(x))*(l- y-AC +floor(y+AC)) w2 = (l-x+floor(x))*( y+AC -floor(y+AC))
w3 = (x-floor(x) )*( 1 - y-AC +floor(y+AC)) The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.
The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding equivalents of the . features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow.
Claims
1 . A method for interpolation comprising:
(a) receiving an input image having a plurality of pixels;
(b) estimating an edge direction proximate a first pixel of said input image using a first technique from a plurality of discrete potential directions;
(c) . interpolating pixels using a substantially arbitrary scaling factor proximate said first pixel based upon said estimated edge direction;
(d) another interpolating pixels using substantially arbitrary scaling factor proximate said first pixel based upon another technique not based upon said estimated edge direction;
(e) determining interpolated pixels for an output image having more pixels than said input image based upon said interpolated pixels of step (c) and step (d) .
2. The method of claim 1 wherein said estimating is based upon a gradient.
3. The method of claim 1 wherein said estimating is based upon a 5 by 5 window.
4. The method of claim 1 wherein said estimating is performed upon a majority of said plurality of pixels of said image.
5. The method of claim 1 wherein said estimating is based upon the luminance of said image .
6. The method of claim 1 further comprising determining a reliability measure that said edge direction is suitable .
7. The method of claim 6 wherein said reliability measure is a weighted reliability measure .
8. The method of claim 1 wherein a plurality of said estimations are stored in a buffer.
9. The method of claim 8 wherein a selected one of said estimations closest to a desired output pixel for said interpolation is selected.
10. The method of claim 1 wherein said interpolation includes no iterations .
1 1 . The method of claim 1 wherein said interpolation uses one of a plurality of pre-selected sets of pixels and weights .
12. The method of claim 1 1 wherein said interpolation uses a closest one of said estimations .
13. The method of claim 1 wherein said estimating of said edge direction is based on a plurality of pixels proximate said first pixel .
14. The method of claim 1 wherein said interpolating is based upon the pixels in a 9 by 9 window centered around said first pixel.
15. The method of claim 1 wherein said estimating and interpolating is based upon the pixels of different sized windows centered around said first pixel.
16. The method of claim 6 wherein said determining of said interpolated pixels is based on said reliability measure .
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/045,338 | 2011-03-10 | ||
| US13/045,338 US8494308B2 (en) | 2011-03-10 | 2011-03-10 | Image upscaling based upon directional interpolation |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012121412A1 true WO2012121412A1 (en) | 2012-09-13 |
Family
ID=46795656
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2012/056488 Ceased WO2012121412A1 (en) | 2011-03-10 | 2012-03-07 | Methods of image upscaling based upon directional interpolation |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8494308B2 (en) |
| WO (1) | WO2012121412A1 (en) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI427611B (en) * | 2010-09-07 | 2014-02-21 | Innolux Corp | Overdriving value generating method |
| US8891906B2 (en) * | 2012-07-05 | 2014-11-18 | Intel Corporation | Pixel-adaptive interpolation algorithm for image upscaling |
| JP6469398B2 (en) * | 2014-09-19 | 2019-02-13 | 株式会社デンソーテン | Image processing apparatus, image processing method, and program |
| JP6469397B2 (en) * | 2014-09-19 | 2019-02-13 | 株式会社デンソーテン | Image processing apparatus, image processing method, and program |
| US10861131B2 (en) * | 2017-12-28 | 2020-12-08 | Samsung Electronics Co., Ltd. | Image magnifying apparatus |
| US10762604B2 (en) | 2018-08-02 | 2020-09-01 | Apple Inc. | Chrominance and luminance enhancing systems and methods |
| US10719916B2 (en) | 2018-08-02 | 2020-07-21 | Apple Inc. | Statistical noise estimation systems and methods |
| US11024012B2 (en) | 2018-08-02 | 2021-06-01 | Apple Inc. | Directional scaling systems and methods |
| US11321813B2 (en) | 2018-08-02 | 2022-05-03 | Apple Inc. | Angular detection using sum of absolute difference statistics systems and methods |
| US11265446B2 (en) * | 2018-10-18 | 2022-03-01 | Sony Corporation | Frame handling for ML-based upscaling |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05233794A (en) * | 1992-02-20 | 1993-09-10 | Hitachi Ltd | Enlarging method and apparatus for enlarging multi-valued natural image digital image |
| JP2004153668A (en) * | 2002-10-31 | 2004-05-27 | Sony Corp | Image processing apparatus and method, recording medium, and program |
| JP2005332130A (en) * | 2004-05-19 | 2005-12-02 | Sony Corp | Image processing apparatus, image processing method, program for image processing method, and recording medium recording program for image processing method |
| JP2005341337A (en) * | 2004-05-28 | 2005-12-08 | Sharp Corp | Pixel interpolation direction detection device, pixel interpolation device, and video signal processing device |
| JP2008176795A (en) * | 2007-01-22 | 2008-07-31 | Sharp Corp | Image processing apparatus, image processing method, image processing apparatus control program, and computer-readable recording medium recording the program |
| JP2010039672A (en) * | 2008-08-04 | 2010-02-18 | Mitsubishi Electric Corp | Magnified image generation apparatus |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100360206B1 (en) | 1992-12-10 | 2003-02-11 | 소니 가부시끼 가이샤 | Image signal converter |
| US6075926A (en) | 1997-04-21 | 2000-06-13 | Hewlett-Packard Company | Computerized method for improving data resolution |
| AU1048399A (en) | 1997-11-10 | 1999-05-31 | Gentech Corporation | System and method for generating super-resolution-enhanced mosaic images |
| JP4093621B2 (en) | 1997-12-25 | 2008-06-04 | ソニー株式会社 | Image conversion apparatus, image conversion method, learning apparatus, and learning method |
| US6766067B2 (en) | 2001-04-20 | 2004-07-20 | Mitsubishi Electric Research Laboratories, Inc. | One-pass super-resolution images |
| WO2002089046A1 (en) | 2001-04-26 | 2002-11-07 | Georgia Tech Research Corporation | Video enhancement using multiple frame techniques |
| US7239428B2 (en) | 2001-06-11 | 2007-07-03 | Solectronics, Llc | Method of super image resolution |
| WO2003103178A1 (en) | 2002-05-29 | 2003-12-11 | Pixonics, Inc. | Video interpolation coding |
| US7106914B2 (en) | 2003-02-27 | 2006-09-12 | Microsoft Corporation | Bayesian image super resolution |
| US7218796B2 (en) | 2003-04-30 | 2007-05-15 | Microsoft Corporation | Patch-based video super-resolution |
| KR100543466B1 (en) * | 2003-11-13 | 2006-01-20 | 삼성전자주식회사 | Image interpolation device and method |
| JP4239094B2 (en) * | 2004-03-03 | 2009-03-18 | ノーリツ鋼機株式会社 | Image processing apparatus, method, and program |
| KR100648308B1 (en) * | 2004-08-12 | 2006-11-23 | 삼성전자주식회사 | Resolution conversion method and device |
| US7613363B2 (en) | 2005-06-23 | 2009-11-03 | Microsoft Corp. | Image superresolution through edge extraction and contrast enhancement |
-
2011
- 2011-03-10 US US13/045,338 patent/US8494308B2/en not_active Expired - Fee Related
-
2012
- 2012-03-07 WO PCT/JP2012/056488 patent/WO2012121412A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05233794A (en) * | 1992-02-20 | 1993-09-10 | Hitachi Ltd | Enlarging method and apparatus for enlarging multi-valued natural image digital image |
| JP2004153668A (en) * | 2002-10-31 | 2004-05-27 | Sony Corp | Image processing apparatus and method, recording medium, and program |
| JP2005332130A (en) * | 2004-05-19 | 2005-12-02 | Sony Corp | Image processing apparatus, image processing method, program for image processing method, and recording medium recording program for image processing method |
| JP2005341337A (en) * | 2004-05-28 | 2005-12-08 | Sharp Corp | Pixel interpolation direction detection device, pixel interpolation device, and video signal processing device |
| JP2008176795A (en) * | 2007-01-22 | 2008-07-31 | Sharp Corp | Image processing apparatus, image processing method, image processing apparatus control program, and computer-readable recording medium recording the program |
| JP2010039672A (en) * | 2008-08-04 | 2010-02-18 | Mitsubishi Electric Corp | Magnified image generation apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| US20120230608A1 (en) | 2012-09-13 |
| US8494308B2 (en) | 2013-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8494308B2 (en) | Image upscaling based upon directional interpolation | |
| JP4727720B2 (en) | Image processing method and image processing apparatus | |
| US8396330B2 (en) | Image upscaling based upon directional interpolation | |
| US8335394B2 (en) | Image processing method for boundary resolution enhancement | |
| US8175417B2 (en) | Apparatus, method, and computer-readable recording medium for pixel interpolation | |
| CN104700360B (en) | Image-scaling method and system based on edge self-adaption | |
| KR20160064953A (en) | Image processing device, image processing method and program | |
| US20160225125A1 (en) | Image Interpolation Method and Image Interpolation Apparatus | |
| CN101911113A (en) | Resizing a sequence of images | |
| JP4659036B2 (en) | Edge adaptive image enlargement enhancement system and method | |
| US20090226097A1 (en) | Image processing apparatus | |
| US20130050272A1 (en) | Two-dimensional super resolution scaling | |
| CN104700361B (en) | Image interpolation method and system based on rim detection | |
| US9519952B2 (en) | Image processing apparatus and method | |
| US8830395B2 (en) | Systems and methods for adaptive scaling of digital images | |
| US20210012459A1 (en) | Image processing method and apparatus | |
| US8929675B2 (en) | Image processing device for video noise reduction | |
| US10410326B2 (en) | Image anti-aliasing system | |
| US7796191B1 (en) | Edge-preserving vertical interpolation | |
| US9928577B2 (en) | Image correction apparatus and image correction method | |
| JP4868249B2 (en) | Video signal processing device | |
| WO2016154970A1 (en) | Method and system for image interpolation based on edge detection | |
| JP2009147937A (en) | Method for generating a distance representing the direction of an edge in a video picture, corresponding device, and use of the method for deinterlacing or format conversion | |
| JP2015106318A (en) | Image processing apparatus and image processing method | |
| JP2006526832A (en) | Image interpolation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12754935 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12754935 Country of ref document: EP Kind code of ref document: A1 |

