This application claims the benefit under 35 U.S.C. §365 of International Application PCT/US2007/020295, filed Sep. 19, 2007, which was published in accordance with PCT article 21(2) on Mar. 26, 2009, in English.
Upscaling, a.k.a. upconversion, enlarges the resolution of an image by increasing the number of vertical and horizontal scanline lines. Upscaling is an important problem for many post-production applications. For example, many of the previous TV shows and movies are in SD (Standard Definition) format. In order to play the SD movies in today's HD (High Definition) displays or TVs, it is desirable to convert the SD movies to HD format, which has larger resolution than the SD format. Another exemplary application for upscaling is for display controllers, which need an upscaling component to convert the input image size to the native resolution of the display.
During the upscaling process, because the size of the resulting image is larger than that of the original one, additional pixels have to be inserted into the image, resulting in potential visible artifacts. Traditionally, filters are applied before upscaling to remove the artifacts resulting from pixel insertion. However, in many conventional upscaling algorithms, filters are uniformly applied across the image plane regardless of the local image content such as edges, resulting in blur of details.
Therefore, a need exists for techniques for scaling images without producing unwanted artifacts. Furthermore, a need exists for techniques for upscaling images without loss of quality of the images.
A system and method for scaling images are provided. An upscaling algorithm or function is employed that increases the size of an image and then filters the upscaled image to remove aliasing artifacts. During the filtering process the edges of objects in the upscaled image are detected and different filter frequency responses are provided for the detected edges. Providing different filter frequency responses for the detected edges preserves more details for line images. The system and method of the present disclosure utilizes an adaptive upscaling algorithm or function which increases the size of an image by inserting additional pixels into the image and preserves the image details according to the local geometry, i.e., the detected edges.
According to one aspect of the present disclosure, a method for scaling an image is provided, the method including acquiring an image of a first size, detecting the geometry of the image, scaling the image to a second size, and filtering the scaled image with at least one filter based on the detected geometry.
In one aspect, the detecting step includes detecting edges of objects in the image. In another aspect, the detecting step further includes generating a first edge map including an edge magnitude for each pixel in the image, and generating a second edge map including an edge direction for each pixel in the image.
In a further aspect, the method further includes generating a plurality of filters, each of the plurality of filters having a different direction, wherein the filtering step includes selecting for each pixel at least one filter having substantially the same edge direction as the edge direction of the pixel. The generating a plurality of filters includes generating a one-dimensional horizontal filter with a first cut-off frequency, generating a one-dimensional vertical filter with a second cut-off frequency less than the first frequency, performing an outer product function on the horizontal and vertical filter to generate a two-dimensional filter, and rotating the two-dimensional filter into a plurality of different directions and storing at least one filter for each of the plurality of different directions.
According to another aspect of the present disclosure, a system for scaling an image of a first size is provided. The system includes a geometry detector configured for detecting the geometry of the image, a scaler module configured for scaling the image to a second size, and a sampling module configured for filtering the scaled image with at least one filter based on the detected geometry.
In a further aspect of the present disclosure, a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for scaling an image is provided, the method including acquiring an image of a first size, detecting the geometry of the image, scaling the image to a second size, and filtering the scaled image with at least one filter based on the detected geometry.
These, and other aspects, features and advantages of the present disclosure will be described or become apparent from the following detailed description of the preferred embodiments, which is to be read in connection with the accompanying drawings.
In the drawings, wherein like reference numerals denote similar elements throughout the views:
It should be understood that the drawing(s) is for purposes of illustrating the concepts of the disclosure and is not necessarily the only possible configuration for illustrating the disclosure.
It should be understood that the elements shown in the FIGS. may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces.
The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its spirit and scope.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read only memory (“ROM”) for storing software, random access memory (“RAM”), and nonvolatile storage.
Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner which the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.
A system and method for scaling images are provided. An upscaling algorithm or function is employed that increases the size of an image and then filters the upscaled image to remove aliasing artifacts. During the filtering process the edges of objects in the upscaled image are detected, e.g., geometry detection, and different filter frequency responses are provided for the detected edges. The presented upscaling algorithm or function is an extension of the traditional multi-rate 2D signal processing based resizing algorithm, which is optimal in the sense of signal preservation in frequency domain. As a result, as long as the geometry detection is accurate, the performance in terms of quality of the upscaling algorithm or function of the present disclosure will be better than those of the previous algorithms based on the standard multi-rate signal processing alone.
Below, a conventional scaling algorithm or function based on multi-rate signal processing theory will be described and then a system and method employing an enhanced upscaling algorithm or function based on the multi-rate signal processing principle in accordance with the present disclosure will be described.
In image scaling based on multi-rate signal processing, the size change of an image is realized by removing or inserting pixels into the image. As a result, it is inevitable to lose information during the resizing process. The principle of the scaling algorithm or function design is to preserve the image signal as much as possible and avoid the introduction of extra signals that do not belong to the original image. It is more convenient to work in frequency domain rather than spatial domain. In frequency domain, the principle is to preserve the frequency component of the original image, and avoid the introduction of extra frequency components. The principle is the fundamental of the multi-rate signal processing theory, which concerns about the sampling rate change of signals.
More specifically, a general image scaler follows the three steps illustrated in
According to the multi-rate signal processing theory, if the scaling ratio is N/M, where N and M is co-prime, then the optimal cut-off frequency of the ideal low-pass filter should be π/max(M,N). N/M defines a unique scaling ratio, for example 1/2 means downscaling by 2; a 2/1 ratio means upscaling by 2.
The change of frequency response along the processing chain for the standard scaling system is illustrated in
The scaling algorithm or function employed by the conventional scaling system is illustrated in
In step 16, a horizontal filter is generated with a cut-off frequency equal to π/max(M,N). Scaling is performed in the x direction, i.e., the horizontal direction, at step 18, and the horizontal filter is applied. Next, in step 20, a vertical filter is generated with a cut-off frequency equal to π/max(L,P). Scaling is performed in the y direction, i.e., the vertical direction, at step 22, and the vertical filter is applied. The output for each filter at each pixel is then stored at each pixel location to produce a result image in step 24.
In the conventional scaling algorithm of
The system and method of the present disclosure employs an adaptive upscaling algorithm or function that adapts the filter frequency response to the local geometry of the image content, and therefore, preserves more details and is more effective to remove aliasing components. For example, if the local geometry is a line or edge, then the filter should be rotated to have the same direction as the edge, or to be parallel to the edge, which will result in an elongated frequency response (e.g., a Fourier transform magnitude) perpendicular to the edge direction. The orientation of the filter frequency response is to be perpendicular to an edge direction, so that the filter bandwidth is lower along the edge direction.
Returning now to the Figures, exemplary system components according to an embodiment of the present disclosure are shown in
Scanned film prints are input to a post-processing apparatus 102, e.g., a computer. The computer is implemented on any of the various known computer platforms having hardware such as one or more central processing units (CPU), memory 110 such as random access memory (RAM) and/or read only memory (ROM) and input/output (I/O) user interface(s) 112 such as a keyboard, cursor control device (e.g., a mouse, joystick, etc.) and display device. The computer platform also includes an operating system and micro instruction code. The various processes and functions described herein may either be part of the micro instruction code or part of a software application program (or a combination thereof) which is executed via the operating system. In one embodiment, the software application program is tangibly embodied on a program storage device, which may be uploaded to and executed by any suitable machine such as post-processing apparatus 102. In addition, various other peripheral devices may be connected to the computer platform by various interfaces and bus structures, such a parallel port, serial port or universal serial bus (USB). Other peripheral devices may include additional storage devices 124 and a printer 128. The printer 128 may be employed for printing a revised or marked-up version of the film 126, e.g., a HD version of the film.
Alternatively, files/film prints already in computer-readable form 106 (e.g., digital cinema, which for example, may be stored on external hard drive 124) may be directly input into the computer 102. Note that the term “film” used herein may refer to either film prints or digital cinema.
A software program includes a scaler module 114 stored in the memory 110 for scaling images. The scaler module 114 is configured for scaling the image from a first size (M×L) to a second size (N×P). The scaler module 114 includes a geometry detector 116 for detecting the geometry of objects in the image. In one embodiment, the geometry detector 116 may be configured as an edge detector. The edge detector will generate two edge maps for each image: a magnitude map and an orientation map. Each map will contain information for each pixel of the original image.
A filter generator 118 is provided to generate a plurality of filters, each of the plurality of filters having a different direction. The scaler module 114 also includes a sampling module 120 configured for filtering the scaled image with at least one filter based on the detected geometry.
It is to be appreciated that whether the film is scanned or already in digital format, the digital file of the film will include indications or information on locations of the frames, e.g., a frame number, time from start of the film, etc. Each frame of the digital video file will include one image, e.g., I1, I2, . . . In.
Once the image or images have been acquired, there are three paths of processing: Geometry Detection Path, Filter Generation Path and Image Scaling Path. Geometry detection and filter generation are conducted before the sampling and filtering processes of the image scaling path as will be described below.
In the geometry detection path, an edge detection function, e.g., a canny edge detection function, is applied by the geometry detector 116 to detect the edges in the image at step 204. An edge map is generated for the image including magnitude and orientation information for each pixel in the image. Two edge maps, i.e. two grayscale images, are generated for each image: a magnitude map and a direction map. For upscaling, at step 206, the edge maps have to be enlarged to the size identical to the size of the resulting image. The edge map resizing can be realized by any conventional image resizer. In step 208, the edge map is clamped, that is a threshold is set to the edge magnitude. If the edge magnitude is below the threshold, then the magnitude is set to zero. This is intended to avoid spurious edges if the edge magnitude is small.
The filter generation path is used to generate filters with different directions via filter generator 118. Initially, in step 210, a size, e.g., N×P, is selected for the original image to be scaled to. In step 212, M and N are made co-prime to each other and L and P are made co-prime to each other. M,N,L,P specifies the scaling ratio, which is M/N in horizontal direction and L/P in the vertical direction. In many multimedia applications, the aspect ratio of an image should be preserved during scaling, therefore, typically M=N, and L=P.
In step 214, a bank of 2D filters with different directions is generated. The number of 2D filters is determined empirically. A larger number will result in more computation, however, a smaller number may result in some artifacts. If 8 directions or orientations are used, 9 filters need to be generated. One of the 9 filters is for regular filtering, i.e., an unrotated filter, if no edge is detected. The filter generation procedure is illustrated in
In the image scaling path, the image is first re-sampled to the specified size at step 216. In the re-sampling step, pixels with zero values (i.e. black color or grayscale) are inserted in the image. Then, in step 218, the generated edge maps are used to sample each pixel of the image and to determine the optimal filtering for each sampled pixel as illustrated in
The sampling method will be repeated for each pixel in the image and the results for all the pixels will be stored in a result image at step 220. A plurality of upscaled images may then be stored on storage device 124 as a high definition film 130.
The upscaling algorithm or function of the present disclosure has been implemented in C++, although other programming languages and methods may be employed to implement of the principles of the present disclosure.
Although the embodiment which incorporates the teachings of the present disclosure has been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings. Having described preferred embodiments for a system and method for scaling images (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the disclosure disclosed which are within the scope of the disclosure as outlined by the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2007/020295 | 9/19/2007 | WO | 00 | 3/18/2010 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2009/038559 | 3/26/2009 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4951144 | DesJardins | Aug 1990 | A |
5294998 | Piovoso | Mar 1994 | A |
5343309 | Roetling | Aug 1994 | A |
5446502 | Lebowsky | Aug 1995 | A |
5506913 | Ibison et al. | Apr 1996 | A |
5953464 | Harrington | Sep 1999 | A |
6788353 | Wredenhagen et al. | Sep 2004 | B2 |
7142729 | Wredenhagen et al. | Nov 2006 | B2 |
7149369 | Atkins | Dec 2006 | B2 |
7230742 | Kuwata et al. | Jun 2007 | B1 |
7519235 | Georgiev | Apr 2009 | B1 |
7817871 | Chaudhury et al. | Oct 2010 | B2 |
7876979 | Lee et al. | Jan 2011 | B2 |
20030198386 | Luo | Oct 2003 | A1 |
20050041871 | Abe | Feb 2005 | A1 |
20060115176 | Kanamori et al. | Jun 2006 | A1 |
20080055338 | Wei et al. | Mar 2008 | A1 |
20080112640 | Park et al. | May 2008 | A1 |
20080123998 | Gomi et al. | May 2008 | A1 |
Number | Date | Country |
---|---|---|
0 550 231 | Jul 1993 | EP |
1 054 350 | Nov 2000 | EP |
1 748 386 | Jan 2007 | EP |
1 816 602 | Aug 2007 | EP |
HE102294170 | May 1990 | JP |
HE105504433 | Jul 1993 | JP |
HE106500220 | Jan 1994 | JP |
HE106225150 | Aug 1994 | JP |
HE106251127 | Sep 1994 | JP |
9171552 | Jun 1997 | JP |
2000242774 | Sep 2000 | JP |
2000253238 | Sep 2000 | JP |
2001160139 | Jun 2001 | JP |
2002185795 | Jun 2002 | JP |
2002319020 | Oct 2002 | JP |
2003125196 | Apr 2003 | JP |
2003196651 | Jul 2003 | JP |
2004207923 | Jul 2004 | JP |
2005182199 | Jul 2005 | JP |
2005523530 | Aug 2005 | JP |
2006 251850 | Sep 2006 | JP |
2006252108 | Sep 2006 | JP |
2007034723 | Feb 2007 | JP |
2007140684 | Jul 2007 | JP |
WO2006022729 | Mar 2006 | WO |
WO2007054931 | May 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20100260433 A1 | Oct 2010 | US |