US20040013320A1 - Apparatus and method of building an electronic database for resolution synthesis - Google Patents

Apparatus and method of building an electronic database for resolution synthesis Download PDF

Info

Publication number
US20040013320A1
US20040013320A1 US10/618,979 US61897903A US2004013320A1 US 20040013320 A1 US20040013320 A1 US 20040013320A1 US 61897903 A US61897903 A US 61897903A US 2004013320 A1 US2004013320 A1 US 2004013320A1
Authority
US
United States
Prior art keywords
resolution
vectors
image
vector
low
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.)
Abandoned
Application number
US10/618,979
Inventor
Brian Atkins
Charles Bouman
Jan Allebach
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/618,979 priority Critical patent/US20040013320A1/en
Publication of US20040013320A1 publication Critical patent/US20040013320A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation

Definitions

  • the invention relates to digital imaging. More specifically, the invention relates to interpolation of higher resolution images from lower-resolution imag s.
  • Image interpolation is performed routinely by printers and computers.
  • a printer might receive source image data having a fixed resolution of 75 dots per inch (dpi), yet the printer is commanded to print at a higher resolution such as 300 dpi. In such an instance, the printer performs interpolation on the source image data.
  • dpi dots per inch
  • a computer might perform interpolation in ord r to display an image compressed according to a lossy algorithm such as JPEG. Once the image is displayed, the computer might receive a user command to zoom in on a portion of the image to magnify a particular detail. In response to the us r command, the computer would perform interpolation on the pixels in that portion.
  • a lossy algorithm such as JPEG
  • Simple linear interpolation lacks the precision necessary to reproduce an image with quality at a higher resolution. Edges in the interpolated image have poor quality. Shading problems and jagged transitions can be viewed wh n an interpolated image is displayed or printed. The shading problems and jagg d transitions become even worse when a region of the interpolated image is magnified.
  • interpolation methods include edge-directed methods, fractal interpolation and methods that employ stochastic models.
  • edge-directed methods For an example of a method that employs a stochastic model, see Schultz et al., “A Bay sian approach to image expansion for improved definition,” IEEE Transactions on Image Processing, vol. 3, no. 3, pp. 233-242 (May, 1994). The method disclosed therein is computationally intensive.
  • the invention can be regarded as a method of generating an electronic database of interpolation parameters that can be used to produce high quality images.
  • the parameters can be computed from one or more training files.
  • a low-resolution file is computed from each training file.
  • a plurality of representative vectors from each low-resolution file are then computed.
  • a set of interpolation filters are computed for each of the representative vectors.
  • the interpolation filters and the representative vectors can be used to perform interpolation on a file other than the training file.
  • the method of generating the electronic database can be performed off-line.
  • th bulk of th computational activity has already been performed. Consequently, interpolation tim and m mory requirements are reduced.
  • the training file could be an image file.
  • the electronic database could be stored in a device such as computer or a printer.
  • FIG. 1 is a block diagram of a system according to the present invention, the system including a printer and first and second computers;
  • FIGS. 2 a , 2 b and 2 c are flowcharts of different ways in which the first computer sends an image to the printer and the printer prints an interpolated image;
  • FIG. 3 is an illustration of an image interpolation method according to the present invention.
  • FIG. 4 illustrates the generation of a cluster vector, which forms a part of the image interpolation method according to the present invention
  • FIG. 5 is an illustration of a non-linear filtering operation, which forms a part of the image interpolation method according to the present invention
  • FIG. 6 is a method of generating a database of parameters for the non-linear filtering operation.
  • FIG. 7 is a more generalized method of generating the database.
  • the present invention is embodied in a m thod of g n rating an electronic database of param ters us d for int rpolating higher resolution images from lower resolution images.
  • An interpolation method uses the parameters to produce images of high quality, yet the interpolation method is easy to implement in terms of processing power and memory requirements.
  • the electronic database can be used advantageously by a system including a computer and a printer.
  • the invention is not limited to generating a database for image interpolation by the computer or printer. More generally, the invention can be applied to th restoration or enhancement of speech, still images, video and other multidimensional data.
  • FIG. 1 shows a system 10 including a first computer 12 and a printer 14 that communicate over a cable 16 .
  • a resolution synthesis database 18 is stored in either computer memory 20 (e.g., a hard drive, an EEPROM) or in printer memory 22 (e.g., an EEPROM).
  • the database 18 provides resolution synth sis parameters that are used for interpolating higher resolution images from lower resolution images.
  • Resolution synthesis i.e., interpolation using the resolution synthesis database 18
  • the database 18 includes a first group of parameters for resolution synthesis at a first interpolation factor, a second group of parameters for resolution synthesis at a second interpolation factor, a third group for resolution synthesis at a third interpolation factor, and so on. Any positive integer could provide a suitable interpolation factor. If, for example, the image has a resolution of 75 dpi, but it will be printed at a resolution of 300 dpi, a group of resolution synthesis parameters corresponding to an interpolation factor of four will be accessed from the database 18 .
  • the database 18 can be generated off-line by the first computer 12 or another (second) computer 2 .
  • the second computer 2 includes a processor 4 and computer memory 6 .
  • a program 8 is stored in the memory 6 of the s cond computer 2 .
  • the program 8 includes a plurality of executable instructions that, wh n executed, instruct the processor 4 of the second computer 2 to gen rat th database 18 .
  • a method of generating the database 18 will b d scribed below in connection with FIGS. 6 and 7.
  • the database 18 is transferred from the second computer 2 to the computer memory 20 of the first computer 12 (via a CD ROM, for example) or to the printer memory 22 of the printer 14 .
  • the method of generating the database 18 is performed off-line. Since the bulk of the computational activity is done prior to the actual interpolation, interpolation tim and memory requirements of the first computer 12 and the printer 14 are reduced.
  • FIGS. 2 a , 2 b and 2 c illustrate three different examples in which the first computer 12 and the printer 14 us the database 18 to perform resolution synthesis.
  • the database 18 is stored in computer memory 20 .
  • a printer driver 19 instructs the first computer 12 to access the database 18 from its memory 20 (block 200 ), perform resolution synthesis on the source image file to compute an interpolated image (block 202 ), and send a file (block 204 ) including the interpolated image to the printer 14 for printing.
  • the database 18 is also stored in computer memory 20 , but the first computer 12 sends the source image file and a file including the database 18 to the printer 14 (block 210 ).
  • Und r instruction of a program 21 stored in the printer memory 22 the embedd d processor 26 of the printer 14 performs resolution synthesis on the source image file (bock 212 ) and prints out the interpolated image.
  • the database 18 is stored in the printer memory 22 .
  • the computer 12 sends only the source image file to the printer 14 (block 220 ), which performs resolution synthesis on the source image file (block 222 ) and prints out the interpolated image.
  • FIG. 3 illustrates a method of performing the resolution synthesis on a pixel L4 of an input image 30 .
  • An interpolation factor of 2 will be used by way of example.
  • a small observation window 32 is located about the pixel L4 to be interpolated (the “sampled pixel”) and encompasses neighboring pixels of the sampled pixel L4.
  • the observation window 32 provides suffici nt information for th sampl d pixel L4 to be classified and int rpolated
  • Th observation window 32 could be a 3 ⁇ 3 window, a 3 ⁇ 5 window, a 5 ⁇ 5 window, or larg r.
  • the observation window 32 will hereinafter be described as a 3 ⁇ 3 window centered about the sampled pixel L4.
  • observation vector L and a cluster vector y are extracted from the observation window 32 .
  • the observation vector L is extracted by stacking pixel values (e.g., intensity values of the luminance component) of the pixels in the observation window 32 .
  • pixel values e.g., intensity values of the luminance component
  • nine pixel values would be stacked into the observation vector L extracted from a 3 ⁇ 3 window.
  • Such an observation vector L would be represented as
  • the cluster vector y is extracted (by block 34 ) using a nonlinear process.
  • the cluster vector y contains information about a general type of image behavior (e.g., an edge, a smooth surface) in the observation window 32 .
  • a general type of image behavior e.g., an edge, a smooth surface
  • the eight nearest neighbors of the sampled pixel L4 are stacked into a first vector y1, where
  • a nominal value such as the value of the sampled pixel L4 is subtracted from each value in the first vector y1 to yield a second vector y2:
  • the second vector y2 indicates differences between the sampled pixel L4 and its neighboring pixels.
  • the cluster vector y is computed by scaling the second vector y2. Scaling can be performed by performing a projection operation f on the second vector y2.
  • p is any scalar between zero and one.
  • the scalar p can equal 0.25.
  • the projection function ultimately affects how well the edges and details are rendered in the interpolated image. Such generation of the cluster vector y is illustrated in FIG. 4.
  • a non-linear filtering operation is performed (by block 36 ) on th 9-dimensional observation vector L and the 8-dimensional cluster vector y. Parameters used to perform the non-linear filtering operation are accessed from the database 18 . An output of each non-linear filtering operation produces a 2 ⁇ 2 window 38 of interpolated pixels H0, H1, H2, H3.
  • the interpolation method can be applied to monochrome images and color images.
  • a color image is interpolated, cluster vectors from a luminance component of the color image are extracted, and the cluster vectors are us d to perform non-linear filtering in each of the constituent Red-Green-Blue plan s of the color image.
  • the same database parameters are used to perform non-linear filtering on the Red plane as are used to perform non-linear filtering on the Green and Blue planes.
  • FIG. 5 shows the non-linear filtering operation in detail.
  • Inputs include the resolution synthesis parameters stored in the database 18 .
  • the parameters included a number M of repr sentative vectors RV, a number M of class weightings CW, a variance VAR and a s t of int rpolation filter coeffici nts a and b.
  • Th representative v ctors RV, th relative class weights CW and th variance VAR will collectively be referred to hereinafter as a “classifier.”
  • Each representativ vector RV represents a different image behavior. Examples of image behavior include horizontal edges, vertical edges, angled edges, smooth textures, etc. There might be between 50 and 100 representative vectors RV stored in the database 18 .
  • the class weights CW correspond to how often the different representativ vectors RV or behaviors occur. They convey the relative frequencies of th representative vectors RV. Thus, the class weight for flat pixels would typically be quite large relative to the class weight for vertical edges.
  • the variance VAR is a positive number representing the level of variation within classes associated with the representative vectors.
  • the pixels in the input image 30 are sampled one at a time.
  • its observation vector L and its cluster vector y are also provided as inputs to the non-linear filtering operation.
  • the cluster vector y is classified to determine the type of image behavior within the observation window 32 (block 42 ). That is, the cluster vector y is classified to determine whether the sampled pixel is part of a horizontal edge, a smooth texture, etc.
  • y) for a cluster vector y can be computed as follows: p ⁇ ( j
  • Equation (7) y(m) is the m th element in the cluster vector y, and RV j (m) is the m th element in the j th representative vector RV.
  • Equations (6) and (7) are derived under the assumption that a particular behavior might encompass a population of cluster vectors, with certain cluster vectors being more likely to fall under that behavior than others.
  • a cluster vector extracted from such a window 32 would indicate with high probability that the sampled pixel in the observation window 32 is part of an edge. If, however, the pixels in the lower half of the observation window 32 are half-scale, the probability is not as high.
  • the equations (6) and (7) are derived under the assumption that the cluster vectors y are distributed as a multivariate Gaussian mixture. Tak n as a group, the distributions of the various behaviors form a Gaussian mixture model. The distributions overlap. Consequently, a cluster vector (such as the cluster vector for an observation window having the upper half of its pixels at full scale and the lower half of its pixels at half-scale) might indicate a behavior that falls under multiple distributions.
  • classification of a cluster vector y according to equations (6) and (7) is equivalent to computing probabilities of class membership in the Gaussian mixture model.
  • y) for a cluster vector y indicates a series of weightings or probabilities corresponding to the different behaviors and, therefore, the different representative vectors RV.
  • Classifying a cluster vector y reveals the set or sets of interpolation filters 44 that should be used to interpolate the sampled pixel.
  • Each set of interpolation filters 44 corresponds to a representative vector RV.
  • the corresponding observation vector L is filtered by th coeffici nts a(j,k), b(j,k) of the selected interpolation filter or filters 44 , and the output of each filter 44 is multiplied (by blocks 46 ) by the probability that the observation vector L is represented by the representative vectors RV corresponding to that interpolation filter. Products of the multiplication are summed together (block 48 ).
  • H(k) is the k th interpolated pixel in a vector h
  • a(j,k) and b(j,k) are scalars representing the filter coefficients for the j th class and the k th interpolated pixel.
  • a computation could be performed for each interpolation filter 44 , and outputs of all of the interpolation filters 44 could be multiplied by the classification parameter p(j
  • y) the classification parameter
  • a computation is to be performed for ach interpolation filter 44 , computational time might be excessive.
  • interpolating with representative vectors RV that are different from the image data might result in a waste of computational resources. Therefore, a different non-linear filtering operation might use the outputs of only one or two of the interpolation filters 44 . This different operation would be more computationally efficient if many interpolation filters 44 were involved.
  • FIG. 6 shows a training method of generating the resolution synthesis parameters for the electronic database 18 .
  • the parameters are computed from at least one, but preferably more than one training image.
  • Training images can include photo-quality color images, 600 dpi black and whit images, etc.
  • a collection of digital images are commonly available on photo CD and might provide a possible source for the training images.
  • the training method will hereinafter be described in connection with only a single training image.
  • the general premise of the training method is to generate a corrupted (e.g., low resolution) image from the training image and then compute a set of resolution synthesis parameters that can be used to predict or estimate th uncorrupted training image from the corrupted training image.
  • a corrupted e.g., low resolution
  • the training image is converted to a monochrome image, if necessary (block 100 ).
  • the training image is a color image, it can be converted to a representation having a single plane.
  • the luminance component of the color image can be extracted, whereby values of the pixels in the observation vector L would represent intensities of pixels in the luminance component.
  • a scaled-down or low resolution rendering of the monochrome imag is computed (step 102 ).
  • the interpolation factor dictates the level of image scaling. For an interpolation factor of two, each pixel in the low-resolution image is the average of the corresponding 2 ⁇ 2 block of pixels in the monochrome image.
  • LR ⁇ ( i , j ) T ⁇ ( 2 ⁇ i , 2 ⁇ j ) + T ⁇ ( 2 ⁇ i + 1 , 2 ⁇ j ) + T ⁇ ( 2 ⁇ i , 2 ⁇ j + 1 ) + T ⁇ ( 2 ⁇ i + 1 , 2 ⁇ j + 1 ) 4 ( 9 )
  • T(i,j) is the i th row and j th column of the training image. If the monochrom training image has a height of H pixels and a width of W pixels, the low-resolution image has a height of H/2 pixels and a width of L/2 pixels, the number of pix is being rounded down to an integer.
  • a sharpened high-resolution rendering of the monochrome image may also b computed (st p 104 ).
  • the high-resolution image can be sharpened using an unsharp mask.
  • is 1.0.
  • is a non-negative constant which controls the level of sharpening and A(i,j) is an average of the pixels in a neighborhood around pixel (i,j).
  • the dimensions of the sharpened, high-resolution image are the same as the dimensions of the monochrome image.
  • This step 104 is optional.
  • the uncorrupted training image can be used in place of the sharpened image. Howev r, sharpening the training image improves edge quality in the interpolated image without the need for post-processing.
  • the training method will be described in connection with the sharpened high-resolution image.
  • a number NCV of cluster vectors are then extracted from the low-resolution image (block 106 ).
  • the cluster vectors can be extracted from an observation window of any size and shape. Although the cluster vector extraction will b described hereinafter in connection with a 3 ⁇ 3 pixel observation window, a larger window such as a 5 ⁇ 5 pixel window could be used.
  • NCV of cluster vectors that may be extracted from th low resolution image
  • a reasonable rang of numbers of cluster vectors is between 25,000 and 100,000. Using 25,000 cluster vectors will yield a fair-quality classifier at moderate computational cost, whil using 100,000 cluster vectors will yield a high-quality classifier at significantly greater computational cost.
  • the cluster vector can be computed according to equations (2) to (5). However, it is not required to subtract the nominal value from the neighboring pixels in the first vector y1, nor is it required to scale the second vector y2. However, subtracting the nominal value and scaling will make it easier to discern the different types of cluster vectors.
  • the purpos and effect of scaling is to warp the space of all of the cluster vectors so that edges of different magnitude but similar orientation or shape are grouped together.
  • a number M is selected (block 108 ).
  • the number M represents the number of representative vectors that will be computed for the low-resolution image.
  • the number M might be between 50 and 100. Larger numbers M of representative vectors will allow for more freedom because a wider variety of behaviors can be represented and used for resolution synthesis. However, the larger numbers M of representative vectors will also require more memory and computational resources.
  • the classifier i.e., the representative vectors RV, the class weights CW and the variance VAR
  • a method of maximum likelihood estimation can be used to comput the classifier.
  • One instantiation of the method of maximum likelihood estimation is the well-known expectation-maximization (EM) algorithm applied to Gaussian mixture models.
  • EM expectation-maximization
  • initial values are selected for the classifier (block 110 ).
  • the superscripts “(0)” indicate initial (zeroth) values for the class weights CW.
  • RV i ( 0 ) y S2xi ( 13 )
  • the sampling period S2 ensures that the representative vectors RV 0 , . . . , RV M ⁇ 1 are initialized by cluster vectors from spatially different regions of the low-resolution image.
  • the cluster vectors are selected from spatially separate regions of the low resolution image (or from different images if multiple images are available for training) to encourage the formation of distinct representative vectors.
  • y i (m) is the m th element in the i th cluster vector
  • ⁇ overscore (y) ⁇ (m) is the sample mean of the m th element in the cluster vectors.
  • a log likelihood LL(kl) is computed for the initial values (block 112 ).
  • a log likelihood LL(yi;kl) for each cluster vector is calculated according to equations (16) and (17), and the log likelihood LL(kl) is computed by adding th log likelihoods of each cluster vectors according to equation (18):
  • the index kl indicates the kl th iteration (for example, LL(0) is the log likelihood for the initial values); y i (m) is the m th element in the i th cluster v ctor; RV j (kl) (m) is the m th element of the j th representative vector in the kl th iteration; LL(y i ; kl) is the log likelihood of an individual cluster vector y i during the kl th iteration; log is base e, and “exp” denotes the exponential function.
  • the log likelihood is a number that is analogous to a measure of the quality of the current values for the classifier. A higher log likelihood indicates a better “fit” for the classifier.
  • y i ;kl ⁇ 1) can be considered a measure of the extent to which a cluster vector y i belongs to the jth representative vector of the (kl ⁇ 1) th it ration.
  • NCV(kl) can be considered as an estimate of the number of cluster vectors in the jth class of the previous iteration.
  • Th updates in equations (21), (22) and (23) can be considered as sample statistics that are weighted and normalized in accordance with the classifications under the previous iteration.
  • a log likelihood LL(1) is computed for the updated classifier (block 116 ).
  • the log likelihood LL(1) for the updated classifier is also computed according to the equations (16), (17) and (18) above.
  • the decision can be made by taking the difference between the log likelihoods of the current and previous iterations LL(1) and LL(0) and comparing the difference to a threshold THRES.
  • the threshold THRES indicat s whether the likelihood is approaching a local maximum.
  • the threshold THRES can be computed as follows:
  • the log is base e. If the difference is greater than the threshold THRES, another update is performed (block 114 ). If the difference is less than the threshold THRES, the values of the kl th iteration for the classifier are stored in the database (block 120 ).
  • each filter design vector triplet includes a cluster vector y, an observation vector L which contains low-resolution pixels, and a vector h which contains high-resolution pixels. All three of these vectors y, L and h correspond to exactly one pixel in the low-resolution image.
  • the number NFDV of design triplets there may be as many filter d sign vector triplets available as th re are low-r solution image pix Is from which cluster v ctors may b extracted. Higher numbers NFDV of filt r d sign vector triplets will yield better results at th cost of incr ased computation. Satisfactory results can be obtained by using 500,000 filter design vector tripl ts, while better results can be obtained by using over 1,000,000 filter design vector triplets.
  • the high-resolution pixel vector h is computed by stacking a 2 ⁇ 2 block of high-resolution pixels which correspond to a pixel in the low-resolution image. Specifically for a low-resolution pixel LR(i,j) at location i,j in the low resolution image, the corresponding pixels in the 2 ⁇ 2 block of the high resolution image are at locations (2*i,2*j), (2*i+1, 2*j), (2*i, 2*j+1), and (2*i+1, 2*j+1).
  • the filter design triplets can be sampled from spatially different regions of the low-resolution image.
  • a sampling period S3 might be N/NFDV, where N is the total number of filter design vector triplets available.
  • the sample period S3 is truncated to an integer.
  • One by one, in the rastering order, a filter design vector triplet is extracted at every S3 th pixel in the low-resolution image.
  • Training statistics are computed for each representative vector (block 124 ).
  • mL j is a 9-dimensional vector and mh j is a 4-dimensional vector
  • GLL j is a 9 ⁇ 9 matrix
  • GhL j is a 4 ⁇ 9 matrix.
  • Sup rscript “t” denotes the v ctor transpos.
  • each interpolation filter produces a pixel in th high resolution image.
  • the vector a(j,k) is the kth row of a 4 ⁇ 9 matrix Aj
  • the scalar b(j,k) is the k th element in a 4-dimensional vector bj.
  • the matrix Aj and the vector bj can be computed according to equations (30) and (31).
  • Th superscript “ ⁇ 1” denotes taking the matrix inverse (or pseudo-inverse, if necessary).
  • the coefficients for the interpolation filters are stored in the databas 18 (block 128 ).
  • the database 18 can be stored on a medium such as CD-ROM for transfer to another computer, it can be transferred to another computer or print r via a network, or it can be programmed into an EEPROM of a printer (block 130 ).
  • the database 18 can be used as described above in connection with FIGS. 2 a to 2 c.
  • an interpolation method for producing high quality interpolated images and a training method for generating a database of parameters for the interpolation method.
  • the training method is run off-line in a computer.
  • the database of parameters need only be generated once, but it may be used many times by the interpolation method. Once the parameters have been generated, the interpolation method is easy to implement in terms of processing power and memory requirements.
  • FIG. 1 Although the system shown in FIG. 1 was described in connection with a printer, the system is not so limited. The invention could be applied to the Internet. For example, many web pages display thumbnails of images. Clicking on a thumbnail causes a higher resolution image to be downloaded. If a web brows r is capable of performing resolution synthesis according to th present invention, the higher resolution image need not be downloaded when the thumbnail is clicked. Instead, the web browser would access the database (from either its hard drive or the server) and generate a high-resolution image from the thumbnail. The high-resolution image would be displayed much faster than downloading a high resolution image file over a modem connection. Additionally, less server memory would be needed to store the web pages.
  • the invention can be used by any computer to increase resolution of a displayed image.
  • the interpolation method can be used by a computer to zoom in on an area of an image.
  • the zoomed-in area would hav smooth, continuous edges.
  • the invention is not limited to image processing.
  • the invention could be applied to the enhancement or restoration of speech, still image, video, and other multidimensional signals.
  • FIG. 7 shows a more generalized method of building a database that could be applied to resolution synthesis of speech or the restoration of images.
  • Resolution synthesis parameters are generated from at least one training file. All training files are inputted (block 300 ), low-resolution files are generated from the training files (block 302 ), and a plurality of representative vectors are computed from the low-resolution files (block 304 ).
  • a set of interpolation filters is generated for each of the representative vectors (block 306 ).
  • the interpolation filters and the representative vectors are stored in the database (block 308 ) and can be used later to perform data resolution synthesis on a file other than the training file.
  • the database can b used by a computer to restore or synthesize low-quality audio files containing speech. Similarly, if generated from training files including data representing a damaged image, the database can be used by a computer to restore the image.
  • the actual number NCV of cluster vectors will depend upon the computational power of the computer that is generating the database and the desired quality of the interpolated images. Increasing the number NCV of the cluster vectors will also increase the computational time. However, increasing the number NCV of cluster vectors will increase the amount of information used for interpolation and, therefore, will increase the quality of the interpolated image. Therefore, it might be feasible to use far more than 100,000 cluster vectors.
  • observation window gives all the information needed to interpolate a sampled pixel.
  • assumption will hold truer for larger observation windows. Therefore, it might be desirable to use an observation window that is larger than 3 ⁇ 3 pixels.
  • Generating the representative vectors is not limited to the expectation maximization technique. Any of a large number of suitable parameter optimization techniques could be used for generating representative vectors from a group of cluster vectors. Examples include conjugate gradient and gradi nt search techniques and simulating annealing.
  • Cluster vectors are not limited to the methods described above.
  • the cluster vectors could be generated by a wide variety of clustering methods such as iso-data clustering, K-means clustering, general vector quantization, and tree-structure quantization.
  • th inv ntion is not limited to the specific embodiments described and illustrated abov. Instead, th invention is construed according to the claims that follow.

Abstract

An electronic database for image interpolation is generated by a computer. The computer generates a low-resolution image from a training image, a plurality of representative vectors from the low-resolution image, and a plurality of interpolation filters corresponding to each of the representative vectors. The interpolation filters and the representative vectors are generated off-line and can be used to perform image interpolation on an image other than the training image. The database can be stored in a device such as computer or a printer.

Description

  • This is a continuation-in-part of Ser. No. 08/837,619 filed on Apr. 21, 1997.[0001]
  • BACKGROUND OF THE INVENTION
  • The invention relates to digital imaging. More specifically, the invention relates to interpolation of higher resolution images from lower-resolution imag s. [0002]
  • Image interpolation is performed routinely by printers and computers. In one instance, a printer might receive source image data having a fixed resolution of 75 dots per inch (dpi), yet the printer is commanded to print at a higher resolution such as 300 dpi. In such an instance, the printer performs interpolation on the source image data. [0003]
  • In another instance, a computer might perform interpolation in ord r to display an image compressed according to a lossy algorithm such as JPEG. Once the image is displayed, the computer might receive a user command to zoom in on a portion of the image to magnify a particular detail. In response to the us r command, the computer would perform interpolation on the pixels in that portion. [0004]
  • Simple linear interpolation lacks the precision necessary to reproduce an image with quality at a higher resolution. Edges in the interpolated image have poor quality. Shading problems and jagged transitions can be viewed wh n an interpolated image is displayed or printed. The shading problems and jagg d transitions become even worse when a region of the interpolated image is magnified. [0005]
  • Low order B-spline methods such as pixel replication and bilin ar interpolation are satisfactory in terms of interpolating smooth textures, and th y are easy to implement in terms of processing power and memory requirem nts. However, pixel replication tends to produce sharp edges that are not straight, and bilinear interpolation tend to produce images that include artifacts and relatively blurry lines. [0006]
  • Higher-ord r B-spline interpolation methods such as cubic B-spline interpolation tend to provide smooth, continuous images. However, smoothn ss and continuity come at a cost: increased computational power. Higher-order B-spline interpolation methods are computationally intensive. They also give ringing effects. Additionally, B-spline methods in general are linear methods and, therefore, are limited in terms of quality of the interpolation. [0007]
  • Other interpolation methods include edge-directed methods, fractal interpolation and methods that employ stochastic models. For an example of a method that employs a stochastic model, see Schultz et al., “A Bay sian approach to image expansion for improved definition,” IEEE Transactions on Image Processing, vol. 3, no. 3, pp. 233-242 (May, 1994). The method disclosed therein is computationally intensive. [0008]
  • There is a need for an image interpolation method that produces high quality images, yet is easy to implement in terms of processing power and memory requirements. [0009]
  • SUMMARY OF THE INVENTION
  • The invention can be regarded as a method of generating an electronic database of interpolation parameters that can be used to produce high quality images. The parameters can be computed from one or more training files. A low-resolution file is computed from each training file. A plurality of representative vectors from each low-resolution file are then computed. Next, a set of interpolation filters are computed for each of the representative vectors. The interpolation filters and the representative vectors can be used to perform interpolation on a file other than the training file. [0010]
  • The method of generating the electronic database can be performed off-line. Thus, by the time the parameters in the database are used for interpolating an image, th bulk of th computational activity has already been performed. Consequently, interpolation tim and m mory requirements are reduced. [0011]
  • The training file could be an image file. The electronic database could be stored in a device such as computer or a printer. [0012]
  • Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with th accompanying drawings, illustrating by way of example the principles of the invention.[0013]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a system according to the present invention, the system including a printer and first and second computers; [0014]
  • FIGS. 2[0015] a, 2 b and 2 c are flowcharts of different ways in which the first computer sends an image to the printer and the printer prints an interpolated image;
  • FIG. 3 is an illustration of an image interpolation method according to the present invention; [0016]
  • FIG. 4 illustrates the generation of a cluster vector, which forms a part of the image interpolation method according to the present invention; [0017]
  • FIG. 5 is an illustration of a non-linear filtering operation, which forms a part of the image interpolation method according to the present invention; [0018]
  • FIG. 6 is a method of generating a database of parameters for the non-linear filtering operation; and [0019]
  • FIG. 7 is a more generalized method of generating the database.[0020]
  • DETAILED DESCRIPTION OF THE INVENTION
  • As shown in the drawings for purposes of illustration, the present invention is embodied in a m thod of g n rating an electronic database of param ters us d for int rpolating higher resolution images from lower resolution images. An interpolation method uses the parameters to produce images of high quality, yet the interpolation method is easy to implement in terms of processing power and memory requirements. The electronic database can be used advantageously by a system including a computer and a printer. However, as will be discussed below, the invention is not limited to generating a database for image interpolation by the computer or printer. More generally, the invention can be applied to th restoration or enhancement of speech, still images, video and other multidimensional data. [0021]
  • FIG. 1 shows a [0022] system 10 including a first computer 12 and a printer 14 that communicate over a cable 16. A resolution synthesis database 18 is stored in either computer memory 20 (e.g., a hard drive, an EEPROM) or in printer memory 22 (e.g., an EEPROM). The database 18 provides resolution synth sis parameters that are used for interpolating higher resolution images from lower resolution images. Resolution synthesis (i.e., interpolation using the resolution synthesis database 18) can be performed by a host processor 24 in th first computer 12 or by an embedded processor 26 in the printer 14.
  • The [0023] database 18 includes a first group of parameters for resolution synthesis at a first interpolation factor, a second group of parameters for resolution synthesis at a second interpolation factor, a third group for resolution synthesis at a third interpolation factor, and so on. Any positive integer could provide a suitable interpolation factor. If, for example, the image has a resolution of 75 dpi, but it will be printed at a resolution of 300 dpi, a group of resolution synthesis parameters corresponding to an interpolation factor of four will be accessed from the database 18.
  • The [0024] database 18 can be generated off-line by the first computer 12 or another (second) computer 2. The second computer 2 includes a processor 4 and computer memory 6. A program 8 is stored in the memory 6 of the s cond computer 2. The program 8 includes a plurality of executable instructions that, wh n executed, instruct the processor 4 of the second computer 2 to gen rat th database 18. A method of generating the database 18 will b d scribed below in connection with FIGS. 6 and 7. Once computed, the database 18 is transferred from the second computer 2 to the computer memory 20 of the first computer 12 (via a CD ROM, for example) or to the printer memory 22 of the printer 14. The method of generating the database 18 is performed off-line. Since the bulk of the computational activity is done prior to the actual interpolation, interpolation tim and memory requirements of the first computer 12 and the printer 14 are reduced.
  • Additional reference is now made to FIGS. 2[0025] a, 2 b and 2 c, which illustrate three different examples in which the first computer 12 and the printer 14 us the database 18 to perform resolution synthesis. In the first example, as shown in FIG. 2a, the database 18 is stored in computer memory 20. To print an image in a source image file, a printer driver 19 instructs the first computer 12 to access the database 18 from its memory 20 (block 200), perform resolution synthesis on the source image file to compute an interpolated image (block 202), and send a file (block 204) including the interpolated image to the printer 14 for printing.
  • In the second example, as shown in FIG. 2[0026] b, the database 18 is also stored in computer memory 20, but the first computer 12 sends the source image file and a file including the database 18 to the printer 14 (block 210). Und r instruction of a program 21 stored in the printer memory 22, the embedd d processor 26 of the printer 14 performs resolution synthesis on the source image file (bock 212) and prints out the interpolated image.
  • In the third example, as shown in FIG. 2[0027] c, the database 18 is stored in the printer memory 22. The computer 12 sends only the source image file to the printer 14 (block 220), which performs resolution synthesis on the source image file (block 222) and prints out the interpolated image.
  • FIG. 3 illustrates a method of performing the resolution synthesis on a pixel L4 of an [0028] input image 30. An interpolation factor of 2 will be used by way of example. A small observation window 32 is located about the pixel L4 to be interpolated (the “sampled pixel”) and encompasses neighboring pixels of the sampled pixel L4. The observation window 32 provides suffici nt information for th sampl d pixel L4 to be classified and int rpolated Th observation window 32 could be a 3×3 window, a 3×5 window, a 5×5 window, or larg r. By way of example, however, the observation window 32 will hereinafter be described as a 3×3 window centered about the sampled pixel L4.
  • An observation vector L and a cluster vector y are extracted from the [0029] observation window 32. The observation vector L is extracted by stacking pixel values (e.g., intensity values of the luminance component) of the pixels in the observation window 32. Thus, nine pixel values would be stacked into the observation vector L extracted from a 3×3 window. Such an observation vector L would be represented as
  • L={L0, L1, L2, L3, L4, L5, L6, L7, L8}t  (1)
  • where t is a vector transpose. [0030]
  • The cluster vector y is extracted (by block [0031] 34) using a nonlinear process. The cluster vector y contains information about a general type of image behavior (e.g., an edge, a smooth surface) in the observation window 32. To begin cluster vector extraction for the 3×3 window shown in FIG. 3, the eight nearest neighbors of the sampled pixel L4 are stacked into a first vector y1, where
  • y1={L0, L1, L2, L3, L5, L6, L7, L8}t.  (2)
  • A nominal value such as the value of the sampled pixel L4 is subtracted from each value in the first vector y1 to yield a second vector y2: [0032]
  • y2={L0−L4, L1−L4, L2−L4, L3−L4, L5−L4, L6−L4, L7−L4, L8−L4}t  (3)
  • Thus, the second vector y2 indicates differences between the sampled pixel L4 and its neighboring pixels. The cluster vector y is computed by scaling the second vector y2. Scaling can be performed by performing a projection operation f on the second vector y2. A non-linear scaling operation might be perform d as follows: [0033] y2 = i = 0 i 4 i = 8 ( Li - L4 ) 2 ( 4 )
    Figure US20040013320A1-20040122-M00001
    y = f ( y2 ) = { y2 y2 p - 1 if y2 0 0 else ( 5 )
    Figure US20040013320A1-20040122-M00002
  • where p is any scalar between zero and one. For example, the scalar p can equal 0.25. The projection function ultimately affects how well the edges and details are rendered in the interpolated image. Such generation of the cluster vector y is illustrated in FIG. 4. [0034]
  • A non-linear filtering operation is performed (by block [0035] 36) on th 9-dimensional observation vector L and the 8-dimensional cluster vector y. Parameters used to perform the non-linear filtering operation are accessed from the database 18. An output of each non-linear filtering operation produces a 2×2 window 38 of interpolated pixels H0, H1, H2, H3.
  • Thus, interpolation of a single pixel L4 in the [0036] input image 30 has been described. To interpolate the other pixels in the input image 30, the observation window 32 is moved around from pixel to pixel in the input image 30. For each non-border pixel L4 in the input image 30, four interpolated pixels H0, H1, H2, H3 are produced by the non-linear filtering. Border pixels can be interpolated by substituting the closest known pixels for all unknown pixels. A border pixel might be a pixel that cannot be centered within the observation window 32. After all of the pixels in the input image 30 have been interpolated, there is an interp lated image 40 having a resolution twice that of the input image 30.
  • The interpolation method can be applied to monochrome images and color images. When a color image is interpolated, cluster vectors from a luminance component of the color image are extracted, and the cluster vectors are us d to perform non-linear filtering in each of the constituent Red-Green-Blue plan s of the color image. Thus, the same database parameters are used to perform non-linear filtering on the Red plane as are used to perform non-linear filtering on the Green and Blue planes. [0037]
  • FIG. 5 shows the non-linear filtering operation in detail. Inputs include the resolution synthesis parameters stored in the [0038] database 18. The parameters includ a number M of repr sentative vectors RV, a number M of class weightings CW, a variance VAR and a s t of int rpolation filter coeffici nts a and b. Th representative v ctors RV, th relative class weights CW and th variance VAR will collectively be referred to hereinafter as a “classifier.” Each representativ vector RV represents a different image behavior. Examples of image behavior include horizontal edges, vertical edges, angled edges, smooth textures, etc. There might be between 50 and 100 representative vectors RV stored in the database 18. Thus, there might be between 50 and 100 representative vectors RV that can be used to synthesize the interpolated image 40 from the input image 30. The class weights CW correspond to how often the different representativ vectors RV or behaviors occur. They convey the relative frequencies of th representative vectors RV. Thus, the class weight for flat pixels would typically be quite large relative to the class weight for vertical edges. The variance VAR is a positive number representing the level of variation within classes associated with the representative vectors.
  • The pixels in the [0039] input image 30 are sampled one at a time. When a pixel is sampled, its observation vector L and its cluster vector y are also provided as inputs to the non-linear filtering operation.
  • The cluster vector y is classified to determine the type of image behavior within the observation window [0040] 32 (block 42). That is, the cluster vector y is classified to determine whether the sampled pixel is part of a horizontal edge, a smooth texture, etc. A classification parameter p(j|y) is computed for j=0 to M−1 to indicate the representative vector RV or vectors RV that best represent the cluster vector of the sampled pixel. The classification parameter p(j|y) for a cluster vector y can be computed as follows: p ( j | y ) = CW j exp ( - y - RV j 2 2 VAR ) d = 0 M - 1 ( CW d ( - y - RV d 2 2 VAR ) ) ( 6 )
    Figure US20040013320A1-20040122-M00003
  • wh re [0041] y - RV j 2 = m = 0 7 ( y ( m ) - RV j ( m ) ) 2 ( 7 )
    Figure US20040013320A1-20040122-M00004
  • In equation (7), y(m) is the m[0042] th element in the cluster vector y, and RVj (m) is the mth element in the jth representative vector RV.
  • Equations (6) and (7) are derived under the assumption that a particular behavior might encompass a population of cluster vectors, with certain cluster vectors being more likely to fall under that behavior than others. Tak an example in which pixels in the upper half of the [0043] observation window 32 are at full intensity while pixels in the lower half of the observation window 32 are at zero intensity. A cluster vector extracted from such a window 32 would indicate with high probability that the sampled pixel in the observation window 32 is part of an edge. If, however, the pixels in the lower half of the observation window 32 are half-scale, the probability is not as high.
  • Moreover, the equations (6) and (7) are derived under the assumption that the cluster vectors y are distributed as a multivariate Gaussian mixture. Tak n as a group, the distributions of the various behaviors form a Gaussian mixture model. The distributions overlap. Consequently, a cluster vector (such as the cluster vector for an observation window having the upper half of its pixels at full scale and the lower half of its pixels at half-scale) might indicate a behavior that falls under multiple distributions. Thus, classification of a cluster vector y according to equations (6) and (7) is equivalent to computing probabilities of class membership in the Gaussian mixture model. The classification parameter p(j|y) for a cluster vector y indicates a series of weightings or probabilities corresponding to the different behaviors and, therefore, the different representative vectors RV. [0044]
  • Classifying a cluster vector y reveals the set or sets of interpolation filters [0045] 44 that should be used to interpolate the sampled pixel. Each set of interpolation filters 44 corresponds to a representative vector RV. After a cluster vector y has been classified, the corresponding observation vector L is filtered by th coeffici nts a(j,k), b(j,k) of the selected interpolation filter or filters 44, and the output of each filter 44 is multiplied (by blocks 46) by the probability that the observation vector L is represented by the representative vectors RV corresponding to that interpolation filter. Products of the multiplication are summed together (block 48). Thus, an interpolated pixel H(k) is computed as follows: H ( k ) = j = 0 M - 1 ( a ( j , k ) L + b ( j , k ) ) p ( j | y ) ( 8 )
    Figure US20040013320A1-20040122-M00005
  • for k=0, 1, 2, and 3, where H(k) is the k[0046] th interpolated pixel in a vector h, and a(j,k) and b(j,k) are scalars representing the filter coefficients for the jth class and the kth interpolated pixel.
  • A computation could be performed for each [0047] interpolation filter 44, and outputs of all of the interpolation filters 44 could be multiplied by the classification parameter p(j|y). However, if a computation is to be performed for ach interpolation filter 44, computational time might be excessive. Moreover, interpolating with representative vectors RV that are different from the image data might result in a waste of computational resources. Therefore, a different non-linear filtering operation might use the outputs of only one or two of the interpolation filters 44. This different operation would be more computationally efficient if many interpolation filters 44 were involved.
  • The interpolation method described in connection with FIGS. 3, 4 and [0048] 5 is also described in U.S. Ser. No. 08/837,619 filed Apr. 21, 1997 and entitled “Computerized Method for Improving Data Resolution.” U.S. Ser. No. 08/837,619, which is assigned to the assignee of the present invention, is incorporat d herein by reference.
  • FIG. 6 shows a training method of generating the resolution synthesis parameters for the [0049] electronic database 18. The parameters are computed from at least one, but preferably more than one training image. Training images can include photo-quality color images, 600 dpi black and whit images, etc. A collection of digital images are commonly available on photo CD and might provide a possible source for the training images. To simplify th d scription of the training method, the training method will hereinafter be described in connection with only a single training image.
  • The general premise of the training method is to generate a corrupted (e.g., low resolution) image from the training image and then compute a set of resolution synthesis parameters that can be used to predict or estimate th uncorrupted training image from the corrupted training image. [0050]
  • The training image is converted to a monochrome image, if necessary (block [0051] 100). For example, if the training image is a color image, it can be converted to a representation having a single plane. In the alternative, the luminance component of the color image can be extracted, whereby values of the pixels in the observation vector L would represent intensities of pixels in the luminance component.
  • A scaled-down or low resolution rendering of the monochrome imag is computed (step [0052] 102). The interpolation factor dictates the level of image scaling. For an interpolation factor of two, each pixel in the low-resolution image is the average of the corresponding 2×2 block of pixels in the monochrome image. Specifically, the pixel LR(i,j) in the ith row and jth column of the low-resolution image is computed according to equation (9): LR ( i , j ) = T ( 2 i , 2 j ) + T ( 2 i + 1 , 2 j ) + T ( 2 i , 2 j + 1 ) + T ( 2 i + 1 , 2 j + 1 ) 4 ( 9 )
    Figure US20040013320A1-20040122-M00006
  • where T(i,j) is the i[0053] th row and jth column of the training image. If the monochrom training image has a height of H pixels and a width of W pixels, the low-resolution image has a height of H/2 pixels and a width of L/2 pixels, the number of pix is being rounded down to an integer.
  • A sharpened high-resolution rendering of the monochrome image may also b computed (st p [0054] 104). The high-resolution image can be sharpened using an unsharp mask. A pixel SHR(i,j) in a sharp ned, high-resolution image can be computed as follows: A ( i , j ) = 1 9 m = - 1 1 n = - 1 1 T ( i + m , j + n ) ( 10 )
    Figure US20040013320A1-20040122-M00007
    SHR(i,j)=T(i,j)+λ(T(i,j)−A(i,j))  (11)
  • where λ is 1.0. Generally, λ is a non-negative constant which controls the level of sharpening and A(i,j) is an average of the pixels in a neighborhood around pixel (i,j). The dimensions of the sharpened, high-resolution image are the same as the dimensions of the monochrome image. This [0055] step 104 is optional. The uncorrupted training image can be used in place of the sharpened image. Howev r, sharpening the training image improves edge quality in the interpolated image without the need for post-processing. For exemplary purposes, the training method will be described in connection with the sharpened high-resolution image.
  • A number NCV of cluster vectors are then extracted from the low-resolution image (block [0056] 106). The cluster vectors can be extracted from an observation window of any size and shape. Although the cluster vector extraction will b described hereinafter in connection with a 3×3 pixel observation window, a larger window such as a 5×5 pixel window could be used.
  • As for the number NCV of cluster vectors that may be extracted from th low resolution image, there are as many cluster vectors available as there are low-resolution pixels that are not on an image border. A reasonable rang of numbers of cluster vectors is between 25,000 and 100,000. Using 25,000 cluster vectors will yield a fair-quality classifier at moderate computational cost, whil using 100,000 cluster vectors will yield a high-quality classifier at significantly greater computational cost. [0057]
  • The cluster vectors are extracted from spatially different regions of the low-resolution image. To ensure this, the pixels are sampled at a period S1=N/NCV, where N is the total number of cluster vectors available. The sampling period S1 is truncated to an integer. Thus, a cluster vector is extracted at every S1[0058] th pixel of th low-r solution image. Th pix is ar sampl d in a raster ordering, with the primary dir ction being from left to right and with the secondary dir ction b ing from top to bottom (th “rastering order”).
  • For a 3×3 observation window, the cluster vector can be computed according to equations (2) to (5). However, it is not required to subtract the nominal value from the neighboring pixels in the first vector y1, nor is it required to scale the second vector y2. However, subtracting the nominal value and scaling will make it easier to discern the different types of cluster vectors. The purpos and effect of scaling is to warp the space of all of the cluster vectors so that edges of different magnitude but similar orientation or shape are grouped together. [0059]
  • After the cluster vectors have been extracted, a number M is selected (block [0060] 108). The number M represents the number of representative vectors that will be computed for the low-resolution image. The number M might be between 50 and 100. Larger numbers M of representative vectors will allow for more freedom because a wider variety of behaviors can be represented and used for resolution synthesis. However, the larger numbers M of representative vectors will also require more memory and computational resources.
  • After the number M is selected, the classifier (i.e., the representative vectors RV, the class weights CW and the variance VAR) are computed ([0061] blocks 110 to 118). A method of maximum likelihood estimation can be used to comput the classifier. One instantiation of the method of maximum likelihood estimation is the well-known expectation-maximization (EM) algorithm applied to Gaussian mixture models. Initial values for the classifier are selected and then iteratively updated until a locally optimal set of parameters has been obtained.
  • Thus, initial values are selected for the classifier (block [0062] 110). The initial values for the class weights CW can be selected as follows: CW 0 ( 0 ) = 1 M , , CW M - 1 ( 0 ) = 1 M ( 12 )
    Figure US20040013320A1-20040122-M00008
  • The superscripts “(0)” indicate initial (zeroth) values for the class weights CW. Th class weights CW are positive numbers that add up 1. That is, CW[0063] 0>0, . . . , CWM−1>0 and ΣCWi=1 from i=0 to i=M−1.
  • Th initial valu s for th repres ntative vectors RV[0064] 0, . . . , RVM−1 can b s t equal to the cluster vectors sampled at every S2th pixel of th low resolution image, where the sampling period S2=NCV/M. Thus, RV i ( 0 ) = y S2xi ( 13 )
    Figure US20040013320A1-20040122-M00009
  • for i=0, . . . , M−1. The sampling period S2 ensures that the representative vectors RV[0065] 0, . . . , RVM−1 are initialized by cluster vectors from spatially different regions of the low-resolution image. The cluster vectors are selected from spatially separate regions of the low resolution image (or from different images if multiple images are available for training) to encourage the formation of distinct representative vectors.
  • The variance VAR can be initialized as follows: [0066] VAR ( 0 ) = 1 NCV × 8 m = 0 7 i = 0 NCV - 1 ( y i ( m ) - y _ ( m ) ) 2 ( 14 )
    Figure US20040013320A1-20040122-M00010
  • where y[0067] i(m) is the mth element in the ith cluster vector, and {overscore (y)}(m) is the sample mean of the mth element in the cluster vectors. The sample mean {overscore (y)}(m) can be calculated as follows. y _ ( m ) = 1 NCV i = 0 NCV - 1 y i ( m ) ( 15 )
    Figure US20040013320A1-20040122-M00011
  • Next a log likelihood LL(kl) is computed for the initial values (block [0068] 112). A log likelihood LL(yi;kl) for each cluster vector is calculated according to equations (16) and (17), and the log likelihood LL(kl) is computed by adding th log likelihoods of each cluster vectors according to equation (18): y i - RV j ( kl ) 2 = m = 0 7 ( y i ( m ) - RV j ( kl ) ( m ) ) 2 ( 16 ) LL ( y i ; kl ) = log [ j = 0 M - 1 CW j kl ( 2 π VAR ( kl ) ) 4 exp ( - 1 2 VAR ( kl ) y i - RV j ( kl ) 2 ) ] ( 17 ) LL ( kl ) = i = 0 NCV - 1 LL ( y i ; kl ) ( 18 )
    Figure US20040013320A1-20040122-M00012
  • where the index kl indicates the kl[0069] th iteration (for example, LL(0) is the log likelihood for the initial values); yi(m) is the mth element in the ith cluster v ctor; RVj (kl)(m) is the mth element of the jth representative vector in the klth iteration; LL(yi; kl) is the log likelihood of an individual cluster vector yi during the klth iteration; log is base e, and “exp” denotes the exponential function. The log likelihood is a number that is analogous to a measure of the quality of the current values for the classifier. A higher log likelihood indicates a better “fit” for the classifier.
  • After the log likelihood LL(0) is computed for the initial values of the classifier, the classifier is updated. The index kl is incremented (kl→kl+1) and the updates are made as follows. [0070] p ( j | y i ; kl - 1 ) = exp ( - y i - RV j ( kl - 1 ) 2 2 VAR ( kl - 1 ) ) CW j ( kl - 1 ) d = 0 M - 1 exp ( - y i - RV d ( kl - 1 ) 2 2 VAR ( kl - 1 ) ) CW d ( kl - 1 ) ( 19 ) NCV j ( kl ) = i = 0 NCV p ( j | y i ; kl - 1 ) ( 20 ) CW j ( kl ) = NCV j ( kl ) NCV ( 21 ) RV j ( kl ) = 1 NCV j ( kl ) i = 0 NCV - 1 y i p ( j | y i ; kl - 1 ) ( 22 ) VAR ( kl ) = 1 8 j = 0 M - 1 CW j ( kl ) NCV j ( kl ) i = 0 NCV - 1 y i - RV j ( kl ) 2 p ( j | y i ; kl - 1 ) ( 23 )
    Figure US20040013320A1-20040122-M00013
  • The parameter p(j|y[0071] i;kl−1) can be considered a measure of the extent to which a cluster vector yi belongs to the jth representative vector of the (kl−1)th it ration. NCV(kl) can be considered as an estimate of the number of cluster vectors in the jth class of the previous iteration. Th updates in equations (21), (22) and (23) can be considered as sample statistics that are weighted and normalized in accordance with the classifications under the previous iteration.
  • Next, a log likelihood LL(1) is computed for the updated classifier (block [0072] 116). The log likelihood LL(1) for the updated classifier is also computed according to the equations (16), (17) and (18) above.
  • A decision is then made as to whether the current values for the representative vectors RV, the class weights CW and the variance VAR are optimal (block [0073] 118). The decision can be made by taking the difference between the log likelihoods of the current and previous iterations LL(1) and LL(0) and comparing the difference to a threshold THRES. The threshold THRES indicat s whether the likelihood is approaching a local maximum. The threshold THRES can be computed as follows:
  • THRES=0.09×log(8×NCV)  (24)
  • where the log is base e. If the difference is greater than the threshold THRES, another update is performed (block [0074] 114). If the difference is less than the threshold THRES, the values of the klth iteration for the classifier are stored in the database (block 120).
  • After the classifier has been computed, the coefficients a, b for the interpolation filters are computed ([0075] blocks 122 to 126). A number NFDV of filter design triplets are computed from pixels in the low resolution image (block 122). Each filter design vector triplet includes a cluster vector y, an observation vector L which contains low-resolution pixels, and a vector h which contains high-resolution pixels. All three of these vectors y, L and h correspond to exactly one pixel in the low-resolution image. The set of filter design vector triplets will be referred to as { ( y i , L i , h i ) } NFDV - 1 i = 0 ,
    Figure US20040013320A1-20040122-M00014
  • where (y[0076] i,Li,hi) is the filter design vector tripl t for the ith pixel in the low-resolution image.
  • As for the number NFDV of design triplets, there may be as many filter d sign vector triplets available as th re are low-r solution image pix Is from which cluster v ctors may b extracted. Higher numbers NFDV of filt r d sign vector triplets will yield better results at th cost of incr ased computation. Satisfactory results can be obtained by using 500,000 filter design vector tripl ts, while better results can be obtained by using over 1,000,000 filter design vector triplets. [0077]
  • The high-resolution pixel vector h is computed by stacking a 2×2 block of high-resolution pixels which correspond to a pixel in the low-resolution image. Specifically for a low-resolution pixel LR(i,j) at location i,j in the low resolution image, the corresponding pixels in the 2×2 block of the high resolution image are at locations (2*i,2*j), (2*i+1, 2*j), (2*i, 2*j+1), and (2*i+1, 2*j+1). [0078]
  • The filter design triplets can be sampled from spatially different regions of the low-resolution image. A sampling period S3 might be N/NFDV, where N is the total number of filter design vector triplets available. The sample period S3 is truncated to an integer. One by one, in the rastering order, a filter design vector triplet is extracted at every S3[0079] th pixel in the low-resolution image.
  • Next, training statistics are computed for each representative vector (block [0080] 124). Training statistics for the jth representative vector can be computed as follows: NFDV j = i = 0 NFDV - 1 p ( j | y i ) ( 25 ) m L j = 1 NFDV j i = 0 NFDV - 1 L j p ( j | y i ) ( 26 ) mh j = 1 NFDV j i = 0 NFDV - 1 h i p ( j | y i ) ( 27 ) GLL j = 1 NFDV j i = 0 NFDV - 1 ( L i - m L j ) ( L i - m L j ) t p ( j | y i ) ( 28 ) GhL j = 1 NFDV j i = 0 NFDV - 1 ( h i - mh j ) ( L i - m L j ) t p ( j | y i ) ( 29 )
    Figure US20040013320A1-20040122-M00015
  • where mL[0081] j is a 9-dimensional vector and mhj is a 4-dimensional vector, GLLj is a 9×9 matrix, and GhLj is a 4×9 matrix. Sup rscript “t” denotes the v ctor transpos.
  • Finally, the coefficients a, b for th interpolation filters are computed from the training statistics (block [0082] 126). Each interpolation filter produces a pixel in th high resolution image. The set of interpolation filters can be represented as { { a ( j , k ) , b ( j , k ) } 3 k = 0 } M - 1 j = 0 ,
    Figure US20040013320A1-20040122-M00016
  • where k represents the k[0083] th output pixel in the high resolution image (for k=0, . . . 3). The vector a(j,k) is the kth row of a 4×9 matrix Aj, and the scalar b(j,k) is the kth element in a 4-dimensional vector bj. The matrix Aj and the vector bj can be computed according to equations (30) and (31). Th superscript “−1” denotes taking the matrix inverse (or pseudo-inverse, if necessary).
  • A j =GhL j(GLL j)−1  (30)
  • b j =mh j −GhL j(GLL j)−1 mL j  (31)
  • The coefficients for the interpolation filters are stored in the databas [0084] 18 (block 128). The database 18 can be stored on a medium such as CD-ROM for transfer to another computer, it can be transferred to another computer or print r via a network, or it can be programmed into an EEPROM of a printer (block 130). The database 18 can be used as described above in connection with FIGS. 2a to 2 c.
  • Thus disclosed are an interpolation method for producing high quality interpolated images and a training method for generating a database of parameters for the interpolation method. The training method is run off-line in a computer. The database of parameters need only be generated once, but it may be used many times by the interpolation method. Once the parameters have been generated, the interpolation method is easy to implement in terms of processing power and memory requirements. [0085]
  • Although the system shown in FIG. 1 was described in connection with a printer, the system is not so limited. The invention could be applied to the Internet. For example, many web pages display thumbnails of images. Clicking on a thumbnail causes a higher resolution image to be downloaded. If a web brows r is capable of performing resolution synthesis according to th present invention, the higher resolution image need not be downloaded when the thumbnail is clicked. Instead, the web browser would access the database (from either its hard drive or the server) and generate a high-resolution image from the thumbnail. The high-resolution image would be displayed much faster than downloading a high resolution image file over a modem connection. Additionally, less server memory would be needed to store the web pages. [0086]
  • The invention can be used by any computer to increase resolution of a displayed image. For example, the interpolation method can be used by a computer to zoom in on an area of an image. The zoomed-in area would hav smooth, continuous edges. [0087]
  • Moreover, the invention is not limited to image processing. The invention could be applied to the enhancement or restoration of speech, still image, video, and other multidimensional signals. [0088]
  • FIG. 7 shows a more generalized method of building a database that could be applied to resolution synthesis of speech or the restoration of images. Resolution synthesis parameters are generated from at least one training file. All training files are inputted (block [0089] 300), low-resolution files are generated from the training files (block 302), and a plurality of representative vectors are computed from the low-resolution files (block 304). A set of interpolation filters is generated for each of the representative vectors (block 306). The interpolation filters and the representative vectors are stored in the database (block 308) and can be used later to perform data resolution synthesis on a file other than the training file. If generated from training files including speech pattern data, the database can b used by a computer to restore or synthesize low-quality audio files containing speech. Similarly, if generated from training files including data representing a damaged image, the database can be used by a computer to restore the image.
  • Specific embodiments of the invention have been described and illustrat d above. However, the invention is not limited to these specific embodiments. Any number and type of training images can be used to create the database. The low-resolution imag s can be computed in any number of ways other than block av raging. The optional sharpened images can b computed in any numb r of ways other than unsharp masking. [0090]
  • The actual number NCV of cluster vectors will depend upon the computational power of the computer that is generating the database and the desired quality of the interpolated images. Increasing the number NCV of the cluster vectors will also increase the computational time. However, increasing the number NCV of cluster vectors will increase the amount of information used for interpolation and, therefore, will increase the quality of the interpolated image. Therefore, it might be feasible to use far more than 100,000 cluster vectors. [0091]
  • The same holds true of the number M of classes. Increasing the number M of classes will increase computation time. However, increasing the number of classes will increase the variety of behaviors that can be recognized and used to perform image interpolation. A single class could even be used, in which case the best class would be selected. If only a single class is selected, class weights would not have to be computed. [0092]
  • It is assumed that the observation window gives all the information needed to interpolate a sampled pixel. Of course, the assumption will hold truer for larger observation windows. Therefore, it might be desirable to use an observation window that is larger than 3×3 pixels. [0093]
  • Generating the representative vectors is not limited to the expectation maximization technique. Any of a large number of suitable parameter optimization techniques could be used for generating representative vectors from a group of cluster vectors. Examples include conjugate gradient and gradi nt search techniques and simulating annealing. [0094]
  • Generating the cluster vectors is not limited to the methods described above. The cluster vectors could be generated by a wide variety of clustering methods such as iso-data clustering, K-means clustering, general vector quantization, and tree-structure quantization. [0095]
  • Therefore, th inv ntion is not limited to the specific embodiments described and illustrated abov. Instead, th invention is construed according to the claims that follow. [0096]

Claims (45)

What is claimed is:
1. A method of building an electronic database for data resolution synthesis from at least one training file, the method comprising the steps of:
generating a low-resolution file from each training file;
generating a plurality of representative vectors from each low-resolution file; and
generating a set of interpolation filters for each of the representative vectors;
whereby the interpolation filters and the representative vectors can be used to perform data resolution synthesis on a file other than the training file.
2. The method of claim 1 wherein the representative vectors are generated by computing a number NCV of cluster vectors from each low-resolution file and using the cluster vectors to compute the representative vectors; and wherein low-resolution observation vectors, the cluster vectors, the representative vectors and a high-resolution file corresponding to each low-resolution file are used to compute the interpolation filters, whereby a high resolution file may be a training file.
3. The method of claim 2, further comprising the step of generating a sharpened high-resolution file, the sharpened high-resolution file being used to compute the interpolation filters.
4. The method of claim 2, wherein the representative vectors ar generated by using a maximum likelihood estimate.
5. The method of claim 4, wherein the vectors are generated by using an expectation maximization technique.
6. The m thod of claim 4, wherein a classifier including the representative v ctors is computed by initializing th classifier and updating the classifier until optimal values for the classifier have been obtained.
7. The method of claim 6, wherein the classifier further includ s a variance and a number M of class weights, and wherein the representative vectors, the class weights and the variance are computed simultaneously.
8. The method of claim 2, wherein each cluster vector is generat d by forming an observation window about sampled data in a low resolution file, extracting a vector including neighboring data of the sampled data, and scaling the vector.
9. The method of claim 2, wherein coefficients for the interpolation filters are computed by:
computing a number NFDV of filter design triplets from data in the low-resolution file, where NFDV is a positive integer, each filter design triplet corresponding to sampled data in the low-resolution file, each filter design triplet including an observation vector for the sampled data, a cluster vector for the sampled data, and a vector of high resolution data from a high-resolution file;
computing training statistics from the filter design triplets; and
computing the coefficients from the training statistics.
10. The method of claim 2, wherein the steps are run off-line in a computer.
11. The method of claim 1, wherein the interpolation filters are linear filters.
12. The m thod of claim 1, wherein the representative vectors are generated by using a parameter optimization technique.
13. A method of using a computer to compute a plurality of resolution synthesis parameters from a training image, the method comprising the steps of:
computing a low-resolution image from the training image;
computing a plurality of cluster vectors for a number NCV of pixels in the low-resolution image, where NCV is a positive integer;
using the cluster vectors to compute a number M of representative vectors for the low resolution image, where M is a positive integer that is less than NCV; and
using low-resolution observation vectors, the cluster vectors, the representative vectors and vectors from a high-resolution image to compute sets of interpolation filter coefficients corresponding to each of the representativ vectors;
whereby the high-resolution image may be the training image; and
whereby the interpolation filter coefficients and the number M of representative vectors are stored in the database for later interpolation of an image other than the training image.
14. The method of claim 13, wherein the number NCV is between 25,000 and 100,000, whereby between 25,000 and 100,000 cluster vectors are computed.
15. The method of claim 13, wherein each cluster vector for a non-border pixel is computed by extracting a first vector from a square observation window centered about a sampled pixel in the low-resolution image, and scaling the first vector.
16. Th method of claim 13, where the number M of r pres ntative vectors is between 50 and 100.
17. The method of claim 13, wherein the representative vectors are computed using a maximum likelihood estimate.
18. The method of claim 17, wherein a classifier including th representative vectors is computed by initializing the classifier and updating the classifier until optimal values for the classifier have been obtained.
19. The method of claim 13, wherein the representative vectors are computed using an expectation-maximization algorithm.
20. The method of claim 19, wherein the representative vectors are computed by:
setting initial values for a classifier including a number M of class weights, a variance and the number M of representative vectors;
computing a quality measure of how well the cluster vectors are represented by the initial values for the classifier;
updating the classifier;
recomputing the quality measure for the updated classifier; and
determining whether the cluster vectors are suitably represented by th updated classifier, the classifier being updated until the cluster vectors are suitably represented.
21. The method of claim 13, further comprising the st p of computing a sharpened high-resolution image from the training image, wherein the sharpened image is used along with low-resolution observation vectors, th cluster vectors and the representative vectors to compute the interpolation filter coefficients.
22. The method of claim 13, wherein the interpolation filter coefficients are computed by:
computing a number NFDV of filter design triplets from the low-resolution image, where NFDV is a positive integer, each filter design triplet corresponding to a sampled pixel in the low-resolution image, each filter design triplet including an observation vector for the sampled pixel, a cluster vector for the sampled pixel, and a vector of high-resolution pixels corresponding to the sampled pixel, the high-resolution pixels being taken from the high-resolution image;
computing training statistics from the filter design triplets; and
computing the coefficients from the training statistics.
23. The method of claim 22, wherein the number NFVD of filter design triplets is between 500,000 and 1,000,000, whereby between 500,000 and 1,000,000 filter design triplets are computed.
24. The method of claim 22, wherein the interpolation filter coefficients are computed for linear interpolation filters.
25. The method of claim 13, wherein the steps are run off-line in the computer.
26. The method of claim 25, wherein the database is stored for transfer to a second computer, whereby the second computer can access the database to perform image interpolation on images other than the training images.
27. The method of claim 25, wherein the database is stored in memory of a printer, whereby the printer can access the database to p rform image interpolation on images other than the training images.
28. The method of claim 13, wherein the repres ntativ vectors are generated by using a parameter optimization technique.
29. Apparatus comprising:
a processor; and
memory means for storing an electronic database and a plurality of executable instructions, the instructions, when executed, instructing the processor to access a training file; generate a low-resolution file from the training fil; generate a plurality of representative vectors from the low-resolution file; generate a set of interpolation filters for each of the representative vectors; and store the interpolation filters and the representative vectors in the memory means as part of the database.
30. The apparatus of claim 29, wherein the instructions instruct the processor to generate the representative vectors by computing a number NCV of cluster vectors from the low-resolution file, and using the cluster vectors to generate the representative vectors; and wherein the instructions instruct the processor to generate the interpolation filters from low-resolution observation vectors, the cluster vectors, the representative vectors and a plurality of vectors from a high-resolution file corresponding to the low-resolution file.
31. The apparatus of claim 30, wherein the instructions further instruct the processor to generate a sharpened high-resolution file from the training file, the sharpened high-resolution file being used to comput the interpolation filters.
32. The apparatus of claim 30, wherein the instructions instruct the processor to generate a classifier including the representative vectors by initializing the classifier and updating the classifier until optimal values for the classifier have been obtained.
33. The apparatus of claim 30, wherein the instructions instruct the processor to generate each cluster vector by forming an observation window about sampled data in the low-resolution file, extracting a vector including neighboring data of the sampled data, subtracting a value of the sampled data from values of the data in the vector; and scaling the vector.
34. The apparatus of claim 30, wherein the instructions instruct the processor to compute coefficients for the interpolation filters by:
computing a number NFDV of filter design triplets from data in the low-resolution file, where NFDV is a positive integer, each filter design triplet corresponding to sampled data in the low-resolution file, each filter design triplet including an observation vector for the sampled data, a cluster vector for th sampled data, and a vector of high resolution data from a high-resolution fil, the high resolution data corresponding to the sampled data;
computing training statistics from the filter design triplets; and
computing the coefficients from the training statistics.
35. The apparatus of claim 30, wherein the interpolation filters are linear filters.
36. An article of manufacture for instructing a processor to compute a resolution synthesis database from a training image, the article comprising:
computer memory; and
a plurality of executable instructions stored in the computer memory, the instructions, when executed, instructing the processor to compute a low-resolution image from the training image; compute a plurality of representative vectors from th low-resolution image; and comput a s t of int rpolation filt rs for ach of the representative vectors; whereby the interpolation filters and the repres ntative vectors form a part of the database.
37. The article of claim 36, wherein the instructions instruct the processor to compute the representative vectors by computing a number NCV of cluster vectors from the low-resolution image, and using the cluster vectors to compute the representative vectors; and wherein the instructions instruct the processor to compute the interpolation filters from low-resolution observation vectors, the cluster vectors, the representative vectors and vectors from a high-resolution image corresponding to the low-resolution image.
38. The article of claim 37, wherein the instructions further instruct the processor to compute a sharpened high-resolution image from the training image, the sharpened high-resolution file being used to compute the interpolation filters.
39. The article of claim 37, wherein the instructions instruct the processor to compute a classifier including the representative vectors by initializing the classifier and updating the classifier until optimal values for the classifier have been obtained.
40. The article of claim 37, wherein the instructions instruct the processor to compute each cluster vector by forming an observation window about a sampled pixel in the low-resolution image, extracting a vector including neighboring pixels of the sampled pixel, subtracting a value of the sampled pixel from values of the pixels in the vector; and scaling the vector.
41. The article of claim 37, wherein the instructions instruct the processor to compute coefficients for the interpolation filters by:
computing a numb r NFDV of filter design triplets from pix Is in th low-resolution image, where NFDV is a positive integ r, ach fift r design triplet corresponding to a sampled pixel in the low-resolution image, each filter design triplet including an observation vector for the sampled pixel, a cluster vector for the sampled pixel, and a vector of high resolution pixels from a high-resolution image, the high resolution pixels corresponding to the sampled pixel;
computing training statistics from the filter design triplets; and
computing the coefficients from the training statistics.
42. The article of claim 36, wherein the representative vectors are generated by using a parameter optimization technique.
43. An article of manufacture comprising:
computer memory; and
a database encoded in the computer memory, the database including a plurality of sets of resolution synthesis parameters, each set corresponding to an interpolation factor, each set including a classifier and a number M of resolution synthesis filters, each classifier including a number M of representative vectors, where M is a positive integer.
44. The article of claim 43, wherein each classifier further includes a variance and a number M of class weights.
45. The article of claim 43, wherein the number M is between 50 and 100.
US10/618,979 1997-04-21 2003-07-14 Apparatus and method of building an electronic database for resolution synthesis Abandoned US20040013320A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/618,979 US20040013320A1 (en) 1997-04-21 2003-07-14 Apparatus and method of building an electronic database for resolution synthesis

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/837,619 US6075926A (en) 1997-04-21 1997-04-21 Computerized method for improving data resolution
US09/064,638 US6466702B1 (en) 1997-04-21 1998-04-21 Apparatus and method of building an electronic database for resolution synthesis
US10/193,931 US6683998B2 (en) 1997-04-21 2002-07-11 Apparatus and method of building an electronic database for resolution synthesis
US10/618,979 US20040013320A1 (en) 1997-04-21 2003-07-14 Apparatus and method of building an electronic database for resolution synthesis

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US08/837,619 Continuation-In-Part US6075926A (en) 1997-04-21 1997-04-21 Computerized method for improving data resolution
US10/193,931 Continuation US6683998B2 (en) 1997-04-21 2002-07-11 Apparatus and method of building an electronic database for resolution synthesis

Publications (1)

Publication Number Publication Date
US20040013320A1 true US20040013320A1 (en) 2004-01-22

Family

ID=25274975

Family Applications (5)

Application Number Title Priority Date Filing Date
US08/837,619 Expired - Lifetime US6075926A (en) 1997-04-21 1997-04-21 Computerized method for improving data resolution
US09/064,638 Expired - Fee Related US6466702B1 (en) 1997-04-21 1998-04-21 Apparatus and method of building an electronic database for resolution synthesis
US09/318,201 Expired - Lifetime US6058248A (en) 1997-04-21 1999-05-25 Computerized method for improving data resolution
US10/193,931 Expired - Fee Related US6683998B2 (en) 1997-04-21 2002-07-11 Apparatus and method of building an electronic database for resolution synthesis
US10/618,979 Abandoned US20040013320A1 (en) 1997-04-21 2003-07-14 Apparatus and method of building an electronic database for resolution synthesis

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US08/837,619 Expired - Lifetime US6075926A (en) 1997-04-21 1997-04-21 Computerized method for improving data resolution
US09/064,638 Expired - Fee Related US6466702B1 (en) 1997-04-21 1998-04-21 Apparatus and method of building an electronic database for resolution synthesis
US09/318,201 Expired - Lifetime US6058248A (en) 1997-04-21 1999-05-25 Computerized method for improving data resolution
US10/193,931 Expired - Fee Related US6683998B2 (en) 1997-04-21 2002-07-11 Apparatus and method of building an electronic database for resolution synthesis

Country Status (4)

Country Link
US (5) US6075926A (en)
EP (1) EP0874330B1 (en)
JP (1) JPH10302059A (en)
DE (1) DE69822545T2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040161145A1 (en) * 2003-02-18 2004-08-19 Embler Gary L. Correlation-based color mosaic interpolation adjustment using luminance gradients
US20070172152A1 (en) * 2006-01-26 2007-07-26 Vestel Elektronik Sanayi Ve Ticaret A.S. Method and apparatus for adjusting the resolution of a digital image
US20070237425A1 (en) * 2006-04-11 2007-10-11 Yasunori Taguchi Image resolution increasing method and apparatus for the same
US20090074320A1 (en) * 2004-03-31 2009-03-19 Fujitsu Limited Image magnification device, image magnification method and computer readable medium storing an image magnification program
WO2013109281A1 (en) * 2012-01-19 2013-07-25 Hewlett-Packard Development Company, L.P. Right sizing enhanced content to generate optimized source content
US20160354216A1 (en) * 2012-09-10 2016-12-08 Zimmer, Inc. Transcutaneous implant for skeletal attachment of external prosthetic devices
US10652430B2 (en) * 2018-02-28 2020-05-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium to convert image data

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173968B1 (en) * 1997-05-07 2007-02-06 Siemens Aktiengesellschaft Method for coding and decoding a digitalized image
EP0883086B1 (en) * 1997-06-02 2004-04-07 Seiko Epson Corporation Edge-enhancement processing apparatus and method
JP3549720B2 (en) * 1998-01-28 2004-08-04 シャープ株式会社 Image processing device
US6208765B1 (en) * 1998-06-19 2001-03-27 Sarnoff Corporation Method and apparatus for improving image resolution
JP2000125267A (en) * 1998-10-13 2000-04-28 Sony Corp Interpolation arithmetic unit and its method
US7030917B2 (en) * 1998-10-23 2006-04-18 Hewlett-Packard Development Company, L.P. Image demosaicing and enhancement system
EP1157318B1 (en) * 1999-02-01 2003-05-21 Honeywell International Inc. Ground proximity warning system, method and computer program product for controllably altering the base width of an alert envelope
US6721457B1 (en) * 1999-08-27 2004-04-13 Hewlett-Packard Development Company, L.P. Method for enhancing digital images
KR100311482B1 (en) 1999-10-21 2001-10-18 구자홍 Method of filtering control of image bilinear interpolation
US6483605B1 (en) * 1999-12-07 2002-11-19 Destiny Technology Corporation Method for transforming an image from a resolution to a lower resolution
US7119915B2 (en) * 2000-02-21 2006-10-10 Canon Kabushiki Kaisha Communication apparatus and method
TW476212B (en) * 2000-07-12 2002-02-11 Ulead Systems Inc One-button-triggered image processing unit
CA2316610A1 (en) * 2000-08-21 2002-02-21 Finn Uredenhagen System and method for interpolating a target image from a source image
US20020047907A1 (en) * 2000-08-30 2002-04-25 Nikon Corporation Image processing apparatus and storage medium for storing image processing program
JP2004510369A (en) * 2000-09-20 2004-04-02 ニック マルチメディア インク Digital image sharpening system
US6834297B1 (en) * 2000-10-06 2004-12-21 Redline Networks, Inc. Web resource transfer acceleration system and method
JP4277446B2 (en) * 2000-12-26 2009-06-10 ソニー株式会社 INFORMATION SIGNAL PROCESSING DEVICE, INFORMATION SIGNAL PROCESSING METHOD, IMAGE SIGNAL PROCESSING DEVICE AND IMAGE DISPLAY DEVICE USING THE SAME
GB2371458A (en) * 2001-01-17 2002-07-24 Eastman Kodak Co Method of enlargement of a digital image
WO2002067235A2 (en) * 2001-02-21 2002-08-29 Koninklijke Philips Electronics N.V. Display system for processing a video signal
US6870956B2 (en) 2001-06-14 2005-03-22 Microsoft Corporation Method and apparatus for shot detection
US7110026B2 (en) * 2001-07-03 2006-09-19 Logitech Europe S.A. Image tagging for post processing
US7904454B2 (en) * 2001-07-16 2011-03-08 International Business Machines Corporation Database access security
US7127503B2 (en) * 2001-10-10 2006-10-24 Juniper Networks, Inc. Computer networking system, device, and method for improved speed in web page rendering
US7061490B2 (en) * 2001-12-31 2006-06-13 Polynarythink, Llc Multi-variate data and related presentation and analysis
US6927780B2 (en) * 2002-01-14 2005-08-09 Seiko Epson Corporation Fast text/graphics resolution improvement with chain-code table look-up
US6728396B2 (en) * 2002-02-25 2004-04-27 Catholic University Of America Independent component imaging
US7149369B2 (en) * 2002-04-23 2006-12-12 Hewlett-Packard Development Company, L.P. Method and system for image scaling
US6859204B2 (en) * 2002-07-01 2005-02-22 Xerox Corporation Dynamic threshold system for multiple raster content (MRC) representation of documents
US7148990B2 (en) * 2002-08-15 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for producing a photobook
US7098117B2 (en) * 2002-10-18 2006-08-29 The Regents Of The University Of Michigan Method of fabricating a package with substantially vertical feedthroughs for micromachined or MEMS devices
US7116716B2 (en) * 2002-11-01 2006-10-03 Microsoft Corporation Systems and methods for generating a motion attention model
US20040088723A1 (en) * 2002-11-01 2004-05-06 Yu-Fei Ma Systems and methods for generating a video summary
US7274741B2 (en) * 2002-11-01 2007-09-25 Microsoft Corporation Systems and methods for generating a comprehensive user attention model
US7127120B2 (en) * 2002-11-01 2006-10-24 Microsoft Corporation Systems and methods for automatically editing a video
US7561793B2 (en) * 2002-11-12 2009-07-14 Eastman Kodak Company User interface for controlling cropping in electronic camera
US6907194B2 (en) 2002-11-12 2005-06-14 Eastman Kodak Company Camera having continuously cropping viewfinder
US7006764B2 (en) * 2002-11-12 2006-02-28 Eastman Kodak Company User interface for controlling cropping in electronic camera
US7570390B2 (en) * 2003-01-09 2009-08-04 Sony Corporation Image processing device and method
US7164798B2 (en) * 2003-02-18 2007-01-16 Microsoft Corporation Learning-based automatic commercial content detection
US7260261B2 (en) * 2003-02-20 2007-08-21 Microsoft Corporation Systems and methods for enhanced image adaptation
US20040190786A1 (en) * 2003-03-24 2004-09-30 Khageshwar Thakur Method of image enhancement for an imaging apparatus
US7308158B2 (en) * 2003-06-20 2007-12-11 Eastman Kodak Company Imaging method and system
US7400761B2 (en) * 2003-09-30 2008-07-15 Microsoft Corporation Contrast-based image attention analysis framework
JP3767593B2 (en) * 2003-10-07 2006-04-19 三菱電機株式会社 Pixel interpolation circuit and pixel interpolation method
US7188310B2 (en) * 2003-10-09 2007-03-06 Hewlett-Packard Development Company, L.P. Automatic layout generation for photobooks
KR100553892B1 (en) * 2003-10-13 2006-02-24 삼성전자주식회사 Method and apparatus interpolating a digital image
US7471827B2 (en) * 2003-10-16 2008-12-30 Microsoft Corporation Automatic browsing path generation to present image areas with high attention value as a function of space and time
US20050100235A1 (en) * 2003-11-07 2005-05-12 Hao-Song Kong System and method for classifying and filtering pixels
US20050114382A1 (en) * 2003-11-26 2005-05-26 Lakshminarayan Choudur K. Method and system for data segmentation
US8659619B2 (en) 2004-03-26 2014-02-25 Intellectual Ventures Fund 83 Llc Display device and method for determining an area of importance in an original image
KR100634507B1 (en) * 2004-07-23 2006-10-16 삼성전자주식회사 Apparatus and method for rendering image, and computer-readable recording media for storing computer program controlling the apparatus
US9053754B2 (en) 2004-07-28 2015-06-09 Microsoft Technology Licensing, Llc Thumbnail generation and presentation for recorded TV programs
US7986372B2 (en) * 2004-08-02 2011-07-26 Microsoft Corporation Systems and methods for smart media content thumbnail extraction
JP4244027B2 (en) * 2004-09-14 2009-03-25 株式会社リコー Image processing apparatus, image forming apparatus, and digital still camera printing system
JP2006085233A (en) 2004-09-14 2006-03-30 Noritsu Koki Co Ltd Image processing device and image processing method
JP2006115078A (en) * 2004-10-13 2006-04-27 Matsushita Electric Ind Co Ltd Device and method for signal processing of image data
US7610400B2 (en) * 2004-11-23 2009-10-27 Juniper Networks, Inc. Rule-based networking device
US7327904B2 (en) * 2004-12-15 2008-02-05 Arcsoft, Inc. Pattern classification and filter design for increasing image resolution
TWI259145B (en) * 2004-12-29 2006-08-01 Ind Tech Res Inst Method for converting printing data and device using the same
US7548936B2 (en) 2005-01-12 2009-06-16 Microsoft Corporation Systems and methods to present web image search results for effective image browsing
US7321400B1 (en) 2005-02-22 2008-01-22 Kolorific, Inc. Method and apparatus for adaptive image data interpolation
US7634152B2 (en) * 2005-03-07 2009-12-15 Hewlett-Packard Development Company, L.P. System and method for correcting image vignetting
US7970788B2 (en) * 2005-08-02 2011-06-28 International Business Machines Corporation Selective local database access restriction
US20070112811A1 (en) * 2005-10-20 2007-05-17 Microsoft Corporation Architecture for scalable video coding applications
CN1953504B (en) * 2005-10-21 2010-09-29 意法半导体研发(上海)有限公司 An adaptive classification method for CFA image interpolation
US8180826B2 (en) 2005-10-31 2012-05-15 Microsoft Corporation Media sharing and authoring on the web
US7773813B2 (en) * 2005-10-31 2010-08-10 Microsoft Corporation Capture-intention detection for video content analysis
US8196032B2 (en) * 2005-11-01 2012-06-05 Microsoft Corporation Template-based multimedia authoring and sharing
US7933923B2 (en) * 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
US20070109324A1 (en) * 2005-11-16 2007-05-17 Qian Lin Interactive viewing of video
US7599918B2 (en) * 2005-12-29 2009-10-06 Microsoft Corporation Dynamic search with implicit user intention mining
WO2007132397A2 (en) * 2006-05-09 2007-11-22 Koninklijke Philips Electronics N.V. Up-scaling
WO2007139070A1 (en) 2006-05-29 2007-12-06 Panasonic Corporation Light source estimation device, light source estimation system, light source estimation method, device having increased image resolution, and method for increasing image resolution
US8023733B2 (en) 2006-06-08 2011-09-20 Panasonic Corporation Image processing device, image processing method, image processing program, and integrated circuit
JP4890974B2 (en) * 2006-06-29 2012-03-07 キヤノン株式会社 Image processing apparatus and image processing method
JP4926568B2 (en) * 2006-06-29 2012-05-09 キヤノン株式会社 Image processing apparatus, image processing method, and image processing program
US8374234B2 (en) * 2006-09-29 2013-02-12 Francis S. J. Munoz Digital scaling
US7941002B2 (en) * 2006-12-01 2011-05-10 Hewlett-Packard Development Company, L.P. Apparatus and methods of producing photorealistic image thumbnails
ATE488096T1 (en) * 2006-12-18 2010-11-15 Koninkl Philips Electronics Nv IMAGE COMPRESSION AND DECOMPRESSION
US8141100B2 (en) 2006-12-20 2012-03-20 International Business Machines Corporation Identifying attribute propagation for multi-tier processing
US8495367B2 (en) 2007-02-22 2013-07-23 International Business Machines Corporation Nondestructive interception of secure data in transit
US8396330B2 (en) * 2007-07-24 2013-03-12 Sharp Laboratories Of America, Inc. Image upscaling based upon directional interpolation
US8538203B2 (en) * 2007-07-24 2013-09-17 Sharp Laboratories Of America, Inc. Image upscaling technique
US8655108B2 (en) * 2007-09-19 2014-02-18 Sharp Laboratories Of America, Inc. Adaptive image up-scaling technique
US8139899B2 (en) * 2007-10-24 2012-03-20 Motorola Mobility, Inc. Increasing resolution of video images
US8261326B2 (en) 2008-04-25 2012-09-04 International Business Machines Corporation Network intrusion blocking security overlay
US7941004B2 (en) * 2008-04-30 2011-05-10 Nec Laboratories America, Inc. Super resolution using gaussian regression
US8351725B2 (en) * 2008-09-23 2013-01-08 Sharp Laboratories Of America, Inc. Image sharpening technique
US8289568B1 (en) 2009-02-19 2012-10-16 Hewlett-Packard Development Company, L.P. Printing using variable pixel-replication factors
US8391647B1 (en) * 2010-02-17 2013-03-05 Hewlett-Packard Development Company, L.P. Pixel replacement
US9600760B2 (en) * 2010-03-30 2017-03-21 Disney Enterprises, Inc. System and method for utilizing motion fields to predict evolution in dynamic scenes
US8494308B2 (en) 2011-03-10 2013-07-23 Sharp Laboratories Of America, Inc. Image upscaling based upon directional interpolation
US9503645B2 (en) 2012-05-24 2016-11-22 Mediatek Inc. Preview system for concurrently displaying multiple preview images generated based on input image generated by image capture apparatus and related preview method thereof
JP5935196B1 (en) * 2015-07-08 2016-06-15 Eizo株式会社 Image processing apparatus, display apparatus, and program
KR20200142883A (en) * 2019-06-13 2020-12-23 엘지이노텍 주식회사 Camera Device and Image Generation Method Of Camera Device
CN113099182B (en) * 2021-04-08 2022-11-22 西安应用光学研究所 Multi-window real-time scaling method based on airborne parallel processing architecture

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573789A (en) * 1968-12-13 1971-04-06 Ibm Method and apparatus for increasing image resolution
US4437122A (en) * 1981-09-12 1984-03-13 Xerox Corporation Low resolution raster images
JP2589298B2 (en) * 1987-01-28 1997-03-12 キヤノン株式会社 Decoding device for encoded image data
US4783840A (en) * 1987-12-04 1988-11-08 Polaroid Corporation Method for enhancing image data by noise reduction or sharpening
US4941190A (en) * 1988-07-15 1990-07-10 Minnesota Mining And Manufacturing Company Method and system for enhancement of a digitized image
GB2229059B (en) * 1989-03-07 1993-08-04 Sony Corp Obtaining access to a two-dimensional portion of a digital picture signal
CA2020627C (en) * 1989-07-07 1995-06-27 Yuzo Koike Image processing apparatus
US5282057A (en) * 1990-04-23 1994-01-25 Xerox Corporation Bit-map image resolution converter
GB9020079D0 (en) * 1990-09-14 1990-10-24 Crosfield Electronics Ltd Image enhancement
JPH05504433A (en) * 1990-12-31 1993-07-08 イー・アイ・デュポン・ドゥ・ヌムール・アンド・カンパニー How to resize images, design filters, and map pixels in output image space to resized input image space
US5270728A (en) * 1991-04-17 1993-12-14 Hewlett-Packard Company Raster imaging device speed-resolution product multiplying method and resulting pixel image data structure
IL115166A (en) * 1991-04-30 1997-02-18 Scitex Corp Ltd Apparatus and method for descreening
US5151783A (en) * 1991-06-05 1992-09-29 Faroudja Y C Digital television with enhancement
KR100206267B1 (en) * 1991-08-20 1999-07-01 윤종용 Contour emphasis circuit for image data of an image control apparatus
US5377018A (en) * 1992-06-22 1994-12-27 Media Vision Video compression and decompression using block selection and subdivision
JP2526532B2 (en) * 1992-10-14 1996-08-21 日本プレシジョン・サーキッツ株式会社 Digital filter for image processing
US5270836A (en) * 1992-11-25 1993-12-14 Xerox Corporation Resolution conversion of bitmap images
DE69433031T2 (en) * 1993-01-22 2004-04-22 Olympus Optical Co., Ltd. IMAGE PROCESSOR
US5394485A (en) * 1993-03-17 1995-02-28 Hewlett-Packard Company Method and apparatus for smoothed scaling of facsimile images
US5313287A (en) * 1993-04-30 1994-05-17 Hewlett-Packard Company Imposed weight matrix error diffusion halftoning of image data
US5717789A (en) * 1993-09-08 1998-02-10 California Institute Of Technology Image enhancement by non-linear extrapolation in frequency space
JP3488729B2 (en) * 1993-09-10 2004-01-19 富士ゼロックス株式会社 Color image processing method and apparatus
JP3590996B2 (en) * 1993-09-30 2004-11-17 ソニー株式会社 Hierarchical encoding and decoding apparatus for digital image signal
US5387985A (en) * 1993-12-17 1995-02-07 Xerox Corporation Non-integer image resolution conversion using statistically generated look-up tables
US5696845A (en) * 1993-12-17 1997-12-09 Xerox Corporation Method for design and implementation of an image resolution enhancement system that employs statistically generated look-up tables
US5579445A (en) * 1993-12-17 1996-11-26 Xerox Corporation Image resolution conversion method that employs statistically generated multiple morphological filters
US5446804A (en) * 1994-04-14 1995-08-29 Hewlett-Packard Company Magnifying digital image using edge mapping
US5539866A (en) * 1994-05-11 1996-07-23 Xerox Corporation Method and apparatus for accurately rendering half-bitted image pixels
AUPM701394A0 (en) * 1994-07-22 1994-08-18 Monash University A graphical display system
US5528339A (en) * 1994-08-26 1996-06-18 Eastman Kodak Company Color image reproduction of scenes with color enhancement and preferential tone mapping
US5671298A (en) * 1994-08-30 1997-09-23 Texas Instruments Incorporated Image scaling using cubic filters
US5552825A (en) * 1994-11-08 1996-09-03 Texas Instruments Incorporated Color resolution enhancement by using color camera and methods
EP0793836A1 (en) * 1994-11-23 1997-09-10 Imation Corp. System and method for adaptive interpolation of image data
US5689343A (en) * 1995-05-26 1997-11-18 Xerox Corporation Area mapping employing reference clusters for high quality noninteger resolution conversion with enhancement
DE69624046T2 (en) * 1995-07-13 2003-06-26 Fuji Photo Film Co Ltd Method and device for interpolating image signals
US5703618A (en) * 1995-11-22 1997-12-30 Cirrus Logic, Inc. Method and apparatus for upscaling video images when pixel data used for upscaling a source video image are unavailable
US5734802A (en) * 1996-02-29 1998-03-31 Xerox Corporation Blended look-up table for printing images with both pictorial and graphical elements
US5778158A (en) * 1996-03-04 1998-07-07 Hewlett-Packard Company High speed system for image scaling
US5758034A (en) * 1996-09-26 1998-05-26 Xerox Corporation Video path architecture including logic filters for resolution conversion of digital images

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040161145A1 (en) * 2003-02-18 2004-08-19 Embler Gary L. Correlation-based color mosaic interpolation adjustment using luminance gradients
US7133553B2 (en) * 2003-02-18 2006-11-07 Avago Technologies Sensor Ip Pte. Ltd. Correlation-based color mosaic interpolation adjustment using luminance gradients
US20090074320A1 (en) * 2004-03-31 2009-03-19 Fujitsu Limited Image magnification device, image magnification method and computer readable medium storing an image magnification program
US7953298B2 (en) * 2004-03-31 2011-05-31 Fujitsu Limited Image magnification device, image magnification method and computer readable medium storing an image magnification program
US20070172152A1 (en) * 2006-01-26 2007-07-26 Vestel Elektronik Sanayi Ve Ticaret A.S. Method and apparatus for adjusting the resolution of a digital image
US7738739B2 (en) * 2006-01-26 2010-06-15 Vestel Elektronik Sanayi Ve Ticaret A.S. Method and apparatus for adjusting the resolution of a digital image
US20070237425A1 (en) * 2006-04-11 2007-10-11 Yasunori Taguchi Image resolution increasing method and apparatus for the same
WO2013109281A1 (en) * 2012-01-19 2013-07-25 Hewlett-Packard Development Company, L.P. Right sizing enhanced content to generate optimized source content
US20160354216A1 (en) * 2012-09-10 2016-12-08 Zimmer, Inc. Transcutaneous implant for skeletal attachment of external prosthetic devices
US10652430B2 (en) * 2018-02-28 2020-05-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium to convert image data

Also Published As

Publication number Publication date
US6683998B2 (en) 2004-01-27
EP0874330A2 (en) 1998-10-28
JPH10302059A (en) 1998-11-13
US6466702B1 (en) 2002-10-15
US20030026504A1 (en) 2003-02-06
US6075926A (en) 2000-06-13
US6058248A (en) 2000-05-02
EP0874330A3 (en) 2000-05-03
EP0874330B1 (en) 2004-03-24
DE69822545D1 (en) 2004-04-29
DE69822545T2 (en) 2005-04-14

Similar Documents

Publication Publication Date Title
US6683998B2 (en) Apparatus and method of building an electronic database for resolution synthesis
Li et al. Efficient and explicit modelling of image hierarchies for image restoration
US6766067B2 (en) One-pass super-resolution images
US7822289B2 (en) Locally adapted hierarchical basis preconditioning
US5754697A (en) Selective document image data compression technique
EP1814075B1 (en) Method and apparatus for enhancing the resolution of a digital image
CN110136062B (en) Super-resolution reconstruction method combining semantic segmentation
CN102165491B (en) Image processing device and image processing method
US6681054B1 (en) Noise reduction method utilizing probabilistic weighting, apparatus, and program for digital image processing
CN109272452B (en) Method for learning super-resolution network based on group structure sub-band in wavelet domain
US20150093045A1 (en) Method and apparatus for performing hierarchical super-resolution of an input image
US20030198399A1 (en) Method and system for image scaling
US20020076120A1 (en) Resolution conversion for anti-aliased images using loose gray scale template matching
JPH07226844A (en) Method and system for transformation of image resolution using plurality of statistically generated morphological filters
CN108492270B (en) Super-resolution method based on fuzzy kernel estimation and variational reconstruction
CN109961407B (en) Face image restoration method based on face similarity
CN111008936A (en) Multispectral image panchromatic sharpening method
Jiang et al. Learning spectral and spatial features based on generative adversarial network for hyperspectral image super-resolution
CN114626984A (en) Super-resolution reconstruction method for Chinese text image
CN113096015A (en) Image super-resolution reconstruction method based on progressive sensing and ultra-lightweight network
JP4235306B2 (en) Low complexity, low memory consumption reverse dither method
Zhang et al. Image inverse halftoning and descreening: a review
CN111260585A (en) Image recovery method based on similar convex set projection algorithm
Biancardi et al. Improvements to image magnification
Suryanarayana et al. Deep Learned Singular Residual Network for Super Resolution Reconstruction.

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION