AU748831B2 - A modified kernel for image interpolation - Google Patents
A modified kernel for image interpolation Download PDFInfo
- Publication number
- AU748831B2 AU748831B2 AU63023/99A AU6302399A AU748831B2 AU 748831 B2 AU748831 B2 AU 748831B2 AU 63023/99 A AU63023/99 A AU 63023/99A AU 6302399 A AU6302399 A AU 6302399A AU 748831 B2 AU748831 B2 AU 748831B2
- Authority
- AU
- Australia
- Prior art keywords
- kernel
- range
- computer readable
- readable medium
- values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 claims description 100
- 238000012545 processing Methods 0.000 claims description 25
- 230000001131 transforming effect Effects 0.000 claims description 22
- 230000002123 temporal effect Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 16
- 238000005070 sampling Methods 0.000 claims description 13
- 230000009466 transformation Effects 0.000 claims 6
- 239000004576 sand Substances 0.000 claims 1
- 230000004044 response Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012432 intermediate storage Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 102100035353 Cyclin-dependent kinase 2-associated protein 1 Human genes 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Description
PW
r Ja S&F Ref: 483290
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
Name and Address of Applicant Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome Ohta-ku Tokyo Japan Andrew Peter Bradley, Kai Huang Spruson Ferguson St Martins Tower 31 Market Street Sydney NSW 2000 A Modified Kernel for Image Interpolation ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU PP7797 [32] Application Date 18 December 1998 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815c A MODIFIED KERNEL FOR IMAGE INTERPOLATION Field of Invention The present invention relates to a method of resolution conversion of digital data and in particular digital image and video data. The invention also relates to a computer program product including a computer readable medium having recorded thereon a computer program for resolution conversion of digital data.
Background of Invention A filter function used in digital data resolution conversion is often called a convolution kernel, a filter kernel or just a kernel. When a kernel produces data that passes through original data points of a sampled signal, it is often called an interpolating kernel and when the interpolated data produced is not constrained to pass through the original data points it is often called an approximating kernel.
Prior art kernels for digital data resolution conversion include the nearest neighbour linear, quadratic and cubic kernels. Coefficient value versus pixel plots of these kernels are shown in Figs. 1 to 4 respectively. The NN kernel is the simplest method of interpolation, simply interpolating the image with the pixel value that is S spatially nearest to the required pixel value. This method works quite well when the scaling ratio is an integer multiple of the original data as it introduces no new values, ie.
no new colours, and preserves sharp edges. However, at other ratios the NN kernel has 20 the disadvantage of shifting edge locations which often produces visible distortions in the output image, especially in images containing text or fine line details. Linear :interpolation on the other hand allows for the introduction of new grey levels (or colours) that are effectively used to position edges at sub-pixel locations. This has the advantage of reducing the effect of shifted edge locations, however sharp edges can now appear to S 25 be blurred. Quadratic and cubic interpolation provide steeper step responses and therefore less edge blurring, however, the steeper response results in an overshoot on either side of the edge. These overshoots can make the edges in natural images appear sharper, but on text, fine lines, or on other computer generated graphics these overshoots are clearly CFP1520AU RC01 5 R:\elec\cisra\rc\rcl ]483290AU.doc visible and detract from the perceived image quality and text legibility. Step responses of these four kernels are shown in Figures 5 to 8.
A digital data resolution conversion method is known in which the parameters of a cubic kernel are adjusted so as to remove the overshoot in a step response using a two parameter Catmul-Rom cubic that has a kernel h(s) of the form: (2-3 b-c) s 3 s 2 s <l s 3 5c) s 2 4 b+4c),1<s <12 6 3 0, Otherwise (1) where s t At, the parameter b is fixed at b 0, whilst c is varied between 0, 0.5, and 1 dependent upon the edge strength (ie: the sharpness of the edge) measured using a 10 Laplacian of Gaussian (LOG) edge detector. At a sharp, edge c 0 and the resulting cubic is: 3 2s 3-3s1 2 s<1 h(s)= 0L Otherwise (2) ~There is however, a problem with using this kernel to interpolate image data when the resampled pixel displacement is not significantly different from the original 15 pixel displacement, say a re-sampling ratio of 10/11 or 11/10. In this case, pixels at the edges of text and other fine lines take on a grey value rather than the original black or white image values. This, again results in a perceived blurring of sharp edges and a reduction in the observed image quality.
It is an object of the present invention to ameliorate one or more disadvantages of the prior art.
CFP1101AU RC01 [I:\elec\cisra\rc\rcl]AUspeci.doc -3- Summary of the Invention According to one aspect of the invention there is provided a method of providing a representation of image data, the method comprising the following steps: accessing a plurality of discrete sample values of said image data; (ii) calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is constructed by transforming a kernel from a first range to a second range, and wherein said second range is less than said first range, wherein kernel values can be calculated over the said entire first range; and (iii) convolving said kernel values with said discrete sample values to provide a representation of said image data.
According to another aspect of the invention there is provided an apparatus for providing a representation of image data, the apparatus comprising: accessing means for accessing a plurality of discrete sample values of said image data; 15 calculating means for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is constructed by transforming a oooo kernel from a first range to a second range, and wherein said second range is less than said "first range, wherein kernel values can be calculated over the said entire first range; and convolving means for convolving said kernel values with said discrete sample 20 values to provide a representation of said image data.
According to a still further aspect of the present invention there is provided a computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of image data, said S"program comprising: code for accessing a plurality of discrete sample values of said image data; code for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is constructed by transforming a kernel from a CFP1101AU RC01 [I:\elec\cisra\rc\rcl ]AUspeci.doc first range to a second range, and wherein said second range is less than said first range, wherein kernel values can be calculated over the said entire first range; and code for convolving said kernel values with said discrete sample values to provide a representation of said image data.
According to a still further aspect of the present invention there is provided a method of representing image data, the method comprising the following steps: accessing a plurality of discrete sample values of said image data; (ii) calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is of the form: 1, -d<s<d 0, d) 2 s 0, s s-d s-d 2 s- 3 d 2 otherwise, 1 2d 1 2d and wherein s t At and 0 d 0.5; and (iii) convolving said kernel values with said discrete sample values to provide a representation of said image data.
According to a still further aspect of the present invention there is provided an S 15 apparatus for representing image data, the apparatus comprising: accessing means for accessing a plurality of discrete sample values of said image Sdata; calculating means for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is of the form: 1, -d<s<d 0, s 20 (1-d)<s Ss-d s-d 2 2 -3 otherwise, S-2d 2d S and wherein s t/At and 0 d 0.5; and 483290au.DOC convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data.
According to a still further aspect of the present invention there is provided a computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of representing image data, said program comprising: code for accessing a plurality of discrete sample values of said image data; code for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is of the form: 1, -d<s!d 0, (1 d) s 0, (1-d)>s 0, (1-d)<s 2s d3 1 2 Zs-dl S-d2 2-d 3 d otherwise, 1 2d 1- 2d and wherein s t /At and 0 d 0.5; and ~code for convolving said kernel values with said discrete sample values to provide a representation of said image data.
According to a still further aspect of the present invention there is provided a 15 method of transforming a kernel for image processing the method comprising the following steps: accessing a kernel for image processing; S(ii) transforming said kernel from a first range to a second range, wherein •5said second range is less than said first range; and (iii) storing said transformed kernel.
a..
According to a still further aspect of the present invention there is provided an apparatus for transforming a kernel for image processing, said apparatus comprising: accessing means for accessing a kernel for image processing; transforming means for transforming said kernel from a first range to a second SA /q range, wherein said second range is less than said first range; and 483290au.DOC -6storing means for storing said transformed kernel.
According to a still further aspect of the present invention there is provided a computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of transforming a kernel for image processing, said program comprising: code for accessing a kernel for image processing; code for transforming said kernel from a first range to a second range, wherein said second range is less than said first range; and code for storing said transformed kernel.
According to a still further aspect of the present invention there is provided a method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the method comprising the following steps: accessing said first set of data sample values; and (ii) performing the following operations for each data value of said second set; calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and Soo* convolving said kernel values with said discrete sample values of .0 20 said first data set to provide a current data value of said second set.
According to a still further aspect of the present invention there is provided an apparatus for converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the apparatus comprising: 25 access means for accessing said first set of data sample values; and processing means for performing the following operations for each data value of said second set; CFP1101AU RC01 [I :\elec\cisra\rc\rcl]AUspeci.doc -7calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
According to a still further aspect of the present invention there is provided a computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, said program comprising: code for accessing said first set of data sample values; and code for performing the following operations for each data value of said second set; calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
S"""Brief Description of the Drawings Embodiments of the invention are described with reference to the drawings, in which: oFig 1 shows a coefficient value versus pixel plot for a nearest neighbour kernel; Fig. 2 shows a coefficient value versus pixel plot for a linear kernel; Fig. shows a coefficient value versus pixel plot for a ar kernel; 2 Fig. 3 shows a coefficient value versus pixel plot for a quadratic kernel; Fig. 4 shows a coefficient value versus pixel plot for a cubic kernel; Fig. 5 shows a step response for a nearest neighbour kernel; Fig. 6 shows a step response for a linear kernel; :Fig. 7 shows a step response for a quadratic kernel; Fig. 7 shows a step response for a quadratic kernel; Fig. 8 shows a step response for a cubic kernel; CFP1101AU RC01 [I:\elec\cisra\rc\rc1 ]AUspeci.doc Fig. 9 is a flow diagram of a method of interpolating digital data in accordance with a preferred embodiment of the present invention; Fig. 10 shows a linear transform, of the cubic interpolation kernel of Fig. 4, from the range s to the range s' 1-d]; Fig. 11 shows a linear transform of a modified cubic kernel with various values of d in accordance with the present invention; Fig. 12 shows a general purpose computer upon which the method of the preferred embodiment can be practised; Fig. 13 shows the step response of a modified cubic kernel with various values of d in accordance with the present invention; and Fig. 14 shows a graph of the dead-zone parameter d, for varying values of temporal difference, in accordance with the preferred embodiment of the present invention.
Detailed Description Where reference is made in any one or more of the drawings to steps and/or features, which have the same reference numerals, those steps and/or features are for the purposes of the description the same, unless the contrary appears.
Fig. 9 is a flow diagram of a method of resampling image data in accordance with a preferred embodiment of the invention. The preferred method maintains the 20 appearance of sharp lines and text at arbitrary re-sampling ratios. The method o commences at step 102 where any necessary processes and parameters are initialised, such go as counters. At the next step 104, sample values in the formf(kAt) 0, 1, where At is the (constant) sampling rate, are retrieved for processing. The process continues at decision block 106, where a check is carried out to find out if the final 25 sample value, at t=T, has been calculated. If the final sample value has been calculated 0:i then the process will end. Otherwise, at the next step 108, kernel values h(T- kAt) are calculated in accordance with the kernel of the preferred embodiment, given by: CFP1101AU RC01 [I :\elec\cisra\rc\rcl ]AUspeci.doc 1, -d <s <d 0, d) s h(s) 0, d) s (3) 3 2 2 s-d s -d 2 s-d 3 -d 1 otherwise, 1- 2d 1- 2d where s= t/At is a normalised coordinate that has integer values at the sample points. In the preferred embodiment, the kernel parameter d has a default value of 0.2.
Alternatively, the user can select a desired value for d. Varying d allows the user to trade off edge sharpness with edge translation effects. In the next step 110, the sample values, f(kAt), are convolved with the kernel values h(T kAt), according to the finite convolution sum: g(T) -f(kAt)h(T-kAt), (4) at t=T. The process continues at step 112 where the result of the convolution sum, g(T), is output. The process will continue until the final sample value has been calculated.
The following paragraphs provide a more detailed explanation of the kernel according to the preferred embodiment.
Interpolation with a continuous kernel effectively gives a continuous function 15 that is an approximation off(t), and is given by the finite convolution sum: g(t) Ef(kAt)h(t-kAt).
The kernels are, by definition, of finite support and symmetrical about s 0. The kernel of the preferred embodiment is a modified cubic kernel and can be shown to be an interpolating kernel, where the interpolated function passes through the sample points of 20 the original function, as h(O) 1, while h(kAt) 0 for k 0 which ensure that g(kAt) =f(k At). From Equation any sample ofg(t) can be calculated using the continuous kernel, and a finite number of original sample points, f(kAt), adjacent to the sample being interpolated. For example, the conventional cubic kernel, defined by equation i requires the four adjacent sample points while the modified cubic kernel, defined by Equation requires only two.
The modified cubic kernel is what is known as a separable kernel. This means that the kernel can be applied to the image data in one of two equivalent ways: 483290au.DOC applying the convolution kernel to the rows of the image and then using these interpolated values to interpolate along the columns of the image (or vice-versa).
For example, the conventional cubic kernel has four coefficients and requires the four nearest samples for both the rows and the columns. The modified cubic however, has only two coefficients and requires only the two nearest samples. This technique however, has the disadvantage of requiring intermediate storage of interpolated values, which can make it not suitable for a hardware implementation for example.
(ii) A 2-dimensional kernel can be generated and then convolved directly with the image data. The 2-dimensional kernel is generated using matrix multiplication of the coefficient values calculated for the rows and the columns separately. For example, the conventional cubic kernel has 16 (4x4) coefficients while the modified cubic has only four, (2x2). These 2-dimensional blocks of coefficients are then convolved directly with the same size block of nearest neighbour image samples around the pixel being interpolated. This method has the advantage of not requiring any intermediate storage, but does require more multiplication operations.
The preferred method of generating the modified cubic interpolation kernel is to linearly transform the cubic interpolation kernel defined in Equation from the range s to the range s' as shown in Figure 10. This involves making the substitution s' (s 2d) so that the point s d becomes s' 0 and the s (1 -d) becomes s' 1. In this way, the original cubic is effectively compressed into the reduced range This effectively creates a symmetrical "dead- zone" at both the lower and upper ends of the kernel as illustrated in Fig. 10. When d 0, the function reduces to a conventional cubic kernel (with b 0, c 0) and when d 0.5, the NN kernel results. As explained above, varying d allows the user to trade off edge sharpness with edge 25 translation effects and gain the benefits of both the NN and cubic convolution whilst minimising their disadvantages. The modified cubic kernel is shown with various values of d in Figure 11. In the preferred embodiment a constant value of d 0.2 is used, however the scope of the preferred embodiment covers methods that vary d depending on re-sampling ratio or edge proximity. Figure 13 demonstrates the effect of varying d on the CFP1101AU RC01 [I :\elec\cisra\rc\rcl ]AUspeci.doc -11step response of the modified cubic kernel. For example, increasing d increases the slope of the step response and therefore increases the perceived edge sharpness.
The method is also particularly advantageous for interpolating image sequences, for example when changing the frame (or field) rate of a video sequence. This is because it only requires the two nearest frames to interpolate any intermediate frame, which minimises frame storage. In addition, the separable nature of the kernel means that the kernel can be applied along the rows, columns, and along the temporal domain in turn or alternatively a 3-dimensional kernel can be constructed and convolved the 3-dimensional video data. Various combinations of the above two schemes, which trade off memory storage and computational complexity, are also possible.
In another embodiment of the present invention the modified cubic kernel is adapted according to the temporal differences in a sequence of images, or video. At each pixel in the image sequence, the temporal difference 6 with the previous frame is calculated as follows: 6 I(x,y,t)-I(x,y,t-1)I This is then used to adapt the dead-zone parameter, d, according to d minro.5,max'0, m (6) where m is the slope parameter, where m>O, and (vw) are the coordinates of a point the function is constrained to pass through. Preferably, are set to be (128, 0.25), and a 20 slope parameter of m 320 is used, as illustrated in Fig. 14. In this way, when the temporal difference between pixels is small the conventional cubic kernel is used, whilst when temporal differences are large the nearest neighbor kernel is (effectively) used. The method then adapts the kernel shape with a gradual transition between the cubic and NN kernels at moderate temporal differences. This adaptation reduces the effects of motion 25 blur in video sequences that contain a large amount of motion.
The preferred embodiment is based on a modification of the cubic kernel defined **in Equation It is realised that the technique disclosed can be applied to any continuous kernel, such as the linear, quadratic, or weighted sinc kernels. However, the CFP1101AU RC01 [I:\elec\cisra\rc\rc1 ]AUspeci.doc -12linear, quadratic, and sinc kernels have fewer degrees of freedom than the cubic kernel and this results in a discontinuity, ie. a non-smooth transition, where the dead-zone joins the (transformed) original kernel. This discontinuity will therefore cause a discontinuity in the interpolated image data, which can not be desirable. However, the modified linear and quadratic kernels will have an advantage in terms of a simplified implementation and reduced computational complexity. The modified linear kernel, is given by: i d s 1-d I s-dl elsewhere 1-2d (7) where s t At is a normalised coordinate that has integer values at the sample points.
The method can also be applied to colour images and video sequences. For colour images the kernel can be applied to each of the colour planes independently, such as say RGB, YUV, YCbCr etc. If the modified cubic kernel is used adaptively on sharp image edges only, the kernel can be applied to all three colour planes when an edge is detected in any one of the colour planes, edge strength is calculated as the maximum of the edge strength in the three colour channels.
The kernel of the preferred embodiment can be used in conjunction with a plurality of other continuous kernels each optimised for different image features, such as smooth areas, textures, or sharp edged. As already described the modified cubic kernel disclosed is particularly advantageous when interpolating sharp edges. Therefore, a scheme that uses the conventional cubic (b 0, c 0.5) in smooth image areas, eg. when the image gradient is below a predetermined threshold, and the modified cubic kernel disclosed in the current invention would offer good performance.
Preferred Embodiment of Apparatus(s) .i The preferred method is preferably practiced using a conventional generalpurpose computer system, such as the system 1200 shown in Fig. 12, wherein the process 25 of Figs. 9 to 11 can be implemented as software executing on the computer. In particular, the steps of the method are effected by instructions in the software that are carried out by the steps of the method are effected by instructions in the software that are carried out by CFP1101AU RC01 [I :\elec\cisra\rc\rcl ]AUspeci.doc -13the computer. The software can be divided into two separate parts; one part for carrying out the method of the preferred embodiment; and another part to manage the user interface between the latter and the user. The software can be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for orientating a character stroke or n-dimensional finite space curves in accordance with the embodiments of the invention.
The computer system 1200 has a computer module 1202, a video display 1216, and input devices 1218, 1220. In addition, the computer system 1200 can have any of a number of other output devices including line printers, laser printers, plotters, and other reproduction devices connected to the computer module 1202. The computer system 1200 can be connected to one or more other computers via a communication interface 1208c using an appropriate communication channel 1230 such as a modem communications path, a computer network, or the like. The computer network can include a local area network (LAN), a wide area network (WAN), an Intranet, and/or the .o Internet S 20 The computer module 1202 has a central processing unit(s) (simply referred to as a processor hereinafter) 1204, a memory 1206 which can include random access memory (RAM) and read-only memory (ROM), input/output (IO) interfaces 1208, a video interface 1210, and one or more storage devices generally represented by a block 1212 in Fig. 12. The storage device(s) 1212 can include of one or more of the following: a floppy 25 disc, a hard disc drive, a magneto-optical disc drive, CD-ROM, magnetic tape or any other of a number of non-volatile storage devices well known to those skilled in the art.
Each of the components 1204 to 1212 is typically connected to one or more of the other devices via a bus 1214 that in turn has data, address, and control buses.
CFP1101AU RC01 U:\elec\cisra\rc\rcl ]AUspeci.doc -14- The video interface 1210 is connected to the video display 1216 and provides video signals from the computer 1202 for display on the video display 1216. User input to operate the computer 1202 can be provided by one or more input devices 1208. For example, an operator can use the keyboard 1218 and/or a pointing device such as the mouse 1220 to provide input to the computer 1202.
The system 1200 is simply provided for illustrative purposes and other configurations can be employed without departing from the scope and spirit of the invention. Exemplary computers on which the embodiment can be practiced include the IBM-PC/ATs or compatibles, one of the Macintosh (TM) family of PCs, Sun Sparcstation arrangements evolved therefrom. The foregoing are merely exemplary of the types of computers with which the embodiments of the invention can be practiced. Typically, the processes of the embodiments, described hereinafter, are resident as software or a program recorded on a hard disk drive (generally depicted as block 1212 in Fig. 12) as the computer readable medium, and read and controlled using the processor 1204.
Intermediate storage of the program and pixel data and any data fetched from the network can be accomplished using the semiconductor memory 1206, possibly in concert with the hard disk drive 1212.
In some instances, the program can be supplied to the user encoded on a CD- ROM or a floppy disk (both generally depicted by block 1212), or alternatively could be read by the user from the network via a modem device connected to the computer, for example. Still further, the software can also be loaded into the computer system 1200 .o from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing are merely exemplary of relevant computer readable mediums. Other computer readable mediums can be practiced without departing from the so...c scope and spirit of the invention.
CFP1101AU RC01 [:\elec\cisra\rc\rcl ]AUspeci.doc The preferred method can alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the steps of the method. Such dedicated hardware can include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
The foregoing only describes one embodiment of the present invention, however, modifications and/or changes can be made thereto by a person skilled in the art without departing from the scope and spirit of the invention.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including" and not "consisting only of'. Variations of the word comprising, such as "comprise" and "comprises" have corresponding meanings.
o *o *o CFP1101AU RC01 CI:\elec\cisra\rc\rcl ]AUspeci.doc
Claims (92)
1. A method of providing a representation of image data, the method comprising the following steps: accessing a plurality of discrete sample values of said image data; (ii) calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is constructed by transforming a kernel from a first range to a second range, and wherein said second range is less than said first range, wherein kernel values can be calculated over the said entire first range; and (iii) convolving said kernel values with said discrete sample values to provide a representation of said image data.
2. The method of according to claim 1, wherein said transformation is a linear transformation. 15 3. The method of according to claim 1, wherein said scaled kernel is constructed by shifting and scaling said kernel. S4. The method of according to claim 1, wherein said kernel is of the form: 2s\ -3s +1,s<l h(s)= 0, Otherwise 20 and wherein s t At.
5. The method according to claim 1, wherein said scaled kernel is of the form: 1, -d<s d 0, d) s 0, d) s s-d s-d 2 2 3 s-d 2 otherwise, 1-2d 1-2d Sand whereins t At and 0 5 d 483290au.DOC -17-
6. The method according to claim 5, wherein said first range is s and said second range is s 1
7. The method according to claim 1, wherein said image data is a portion of a sequence of image data signals.
8. The method according to claim 7, wherein a temporal difference between a previous image data signal and a current image data signal is calculated.
9. The method according to claim 5, wherein parameter d is varied according to said temporal difference. The method according to claim 5, wherein parameter d is varied according to a sampling ratio. oU
11. The method according to claim 5, wherein parameter d is varied according to C C: "edge proximity.
12. The method according to claim 1, wherein said kernel is a linear kernel. o• o 13. The method according to claim 1, wherein said kernel is a quadratic kernel.
14. The method according to claim 1, wherein said kernel is a weighted sinc kernel. An apparatus for providing a representation of image data, the apparatus comprising: Saccessing means for accessing a plurality of discrete sample values of said image Sdata; 483290au.DOC -18- calculating means for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is constructed by transforming a kernel from a first range to a second range, and wherein said second range is less than said first range, wherein kernel values can be calculated over the said entire first range; and convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data.
16. The apparatus according to claim 15, wherein said transformation is a linear transformation.
17. The apparatus according to claim 15, wherein said scaled kernel is constructed by shifting and scaling said kernel.
18. The apparatus according to claim 15, wherein said kernel is of the form: 2s 3-3s 2 +1sl 21s1 3 -31s1 2 +1,IsI h(s)= S 15 0, Otherwise and wherein s t At.
19. The apparatus according to claim 15, wherein said scaled kernel is of the form: S. 1, -d<s<d 2 s 0, d) s h(s) *o *3 2 s-d s-d 2 3 otherwise, 1- 2d 1- 2d 20 and wherein s t /At and 0 d The apparatus according to claim 19, wherein said first range is s and said second range is s 1 483290au.DOC -19-
21. The apparatus according to claim 15, wherein said image data is a portion of a sequence of image data signals.
22. The apparatus according to claim 21, wherein a temporal difference between a previous image data signal and a current image data signal is calculated.
23. The apparatus according to claim 19, wherein parameter d is varied according to said temporal difference.
24. The apparatus according to claim 19, wherein parameter d is varied according to a sampling ratio. The apparatus according to claim 19, wherein parameter d is varied according to edge proximity. Th
26. The apparatus according to claim 15, wherein said kernel is a linear kernel.
27. The apparatus according to claim 15, wherein said kernel is a quadratic kernel.
28. The apparatus according to claim 15, wherein said kernel is a weighted sinc kernel
29. A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of 25 image data, said program comprising: code for accessing a plurality of discrete sample values of said image data; code for calculating kernel values for each of said discrete sample values using a >%AL-~scaled kernel, wherein said scaled kernel is constructed by transforming a kernel from a 483290au.DOC first range to a second range, and wherein said second range is less than said first range, wherein kernel values can be calculated over the said entire first range; and code for convolving said kernel values with said discrete sample values to provide a representation of said image data. The computer readable medium of according to claim 29, wherein said transformation is a linear transformation.
31. The computer readable medium of according to claim 29, wherein said scaled kernel is constructed by shifting and scaling said kernel.
32. The computer readable medium of according to claim, wherein said kernel is of the form: 2s3 3 s 2 1,s1 h(s)= 0, Otherwise S 15 and wherein s t At.
33. The computer readable medium according to claim 29, wherein said scaled kernel is of the form: 1. 1, -d<s<d S0, d) >s s-d s-d 2 2. otherwise, 2d 1- 2d 20 and wherein s /At and 0 d
34. The computer readable medium according to claim 33, wherein said first range is s and said second range is s 1 483290au.DOC -21- The computer readable medium according to claim 29, wherein said image data is a portion of a sequence of image data signals.
36. The computer readable medium according to any claim 35, wherein a temporal difference between a previous image data signal and a current image data signal is calculated.
37. The computer readable medium according to claim 33, wherein parameter d is varied according to said temporal difference.
38. The computer readable medium according to claim 33, wherein parameter d is varied according to a sampling ratio.
39. The computer readable medium according to claim 33, wherein parameter d is varied according to edge proximity. o• The computer readable medium according to claim 29, wherein said kernel is a V6 linear kernel.
41. The computer readable medium according to claim 29, wherein said kernel is a "•quadratic kernel. 66
42. The computer readable medium according to claim 29, wherein said kernel is a 0000 weighted sinc kernel.
43. A method of representing image data, the method comprising the following steps: accessing a plurality of discrete sample values of said image data; 483290au.DOC -22- (ii) calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is of the form: 1, -d<s d 0, d) s 0, (1 -d)<s 3 2 2 s-ad s-d 2 -d 3 s- otherwise, 1- 2d 1- 2d h and wherein s t At and 0 d 0.5; and (iii) convolving said kernel values with said discrete sample values to provide a representation of said image data.
44. The method of according to claim 43, wherein said kernel is of the form: 2s 3 -3s 2 s<l 21s, 3 311 2 h(s)= 0, Otherwise 10 and wherein s t /At.
45. The method according to claim 43, wherein said scaled kernel is generated by Stransforming said kernel from a first range to a second range, and wherein said second range is less than said first range. S:
46. The method according to claim 43, wherein said first range is s and said o second range is s 1 S
47. An apparatus for representing image data, the apparatus comprising: accessing means for accessing a plurality of discrete sample values of said image data; A A& calculating means for calculating kernel values for each of said discrete sample C values using a scaled kernel, wherein said scaled kernel is of the form: 483290au.DOC -23- 1, -d<s<d 0, s 0, d) s 3 2 s-d s-d 2 2 2 3 1, otherwise, 1-2d 1-2d and wherein s t At and 0 d 0.5; and convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data.
48. The apparatus according to claim 47, wherein said kernel is of the form: 21s3 3 s 2 +1,s s1 h(s)= 0, Otherwise and wherein s t At.
49. The apparatus according to claim 47, wherein said scaled kernel is generated by transforming said kernel from a first range to a second range, and said second range is less than said first range. 0* 00 0
50. The apparatus according to claim 47, wherein said first range is s and said second range is s 1 0
51. A computer readable medium for storing a program for an apparatus which 0* processes data, said processing comprising a method of representing image data, said program comprising: 20 code for accessing a plurality of discrete sample values of said image data; code for calculating kernel values for each of said discrete sample values using a scaled kernel, wherein said scaled kernel is of the form: 483290au.DOC -24- 1, -d<s<d 0, s h(s) 0, s 3 2 Ss-d s-d 2 2s- 3 otherwise, 1-2d 1-2d and wherein s t At and 0 d 0.5; and code for convolving said kernel values with said discrete sample values to provide a representation of said image data.
52. The computer readable medium according to claim 51, wherein said kernel is of the form: 21sI3 31s 2 +1,IsI h(s)= 0, Otherwise and wherein s t At.
53. The computer readable medium according to claim 51, wherein said scaled kernel is generated by transforming said kernel from a first range to a second range, and wherein said second range is less than said first range.
54. The computer readable medium according to claim 51, wherein said first range is s and said second range is s 1 S* 55. A method of transforming a kernel for image processing the method comprising oo the following steps: 20 accessing a kernel for image processing; (ii) transforming said kernel from a first range to a second range, wherein said second range is less than said first range; and (iii) storing said transformed kernel. 483290au.DOC
56. The method of according to claim 55, wherein said kernel is of the form: 21s3-3s 2 +1,IsI< h(s)= 0, Otherwise and wherein s t At.
57. The method according to claim 55, wherein said transformed kernel is of the form: 1, -d<s<d 0, d) 2 s 0, (1-d)<s 3 2 2 s-d 3 -3 s-d 2 2 -3 otherwise, 1-2d 1-2d and wherein s t At and 0 d 10 58. The method according to claim 57, wherein said first range is s and said second range is s 1
59. The method according to claim 58, wherein parameter d is varied according to said temporal difference. The method according to claim 58, wherein parameter d is varied according to a sampling ratio. i.
61. The method according to claim 58, wherein parameter d is varied according to edge proximity.
62. The method according to claim 55, wherein the kernel is a linear kernel. CL) 63. The method according to claim 55, wherein the kernel is a quadratic kernel. 483290au.DOC -26-
64. The method according to claim 55, wherein the kernel is a weighted sinc kernel. An apparatus for transforming a kernel for image processing, said apparatus comprising: accessing means for accessing a kernel for image processing; transforming means for transforming said kernel from a first range to a second range, wherein said second range is less than said first range; and storing means for storing said transformed kernel.
66. The apparatus of according to claim 65, wherein said kernel is of the form: 21SI 3 31s1 2 +1,s, h(s)= 0, Otherwise and wherein s t At. 15 67. The apparatus according to claim 65, wherein said transformed kernel is of the form: 1, -d <s d s d) s h(s) 3 2 2 s-d d s-d otherwise, I1- 2d 1- 2d and wherein s t At and 0 d
68. The apparatus according to claim 67, wherein said first range is s and said second range is s 1 483290au.DOC -27-
69. The apparatus according to claim 67, wherein parameter d is varied according to said temporal difference. The apparatus according to claim 67, wherein parameter d is varied according to a sampling ratio.
71. The apparatus according to claim 67, wherein parameter d is varied according to edge proximity.
72. The apparatus according to claim 65, wherein the kernel is a linear kernel.
73. The apparatus according to claim 65, wherein the kernel is a quadratic kernel.
74. The apparatus according to claim 65, wherein the kernel is a weighted sinc 15 kernel. go 75. A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of transforming a kernel for image processing, said program comprising: 20 code for accessing a kernel for image processing; o• I•code for transforming said kernel from a first range to a second range, wherein said second range is less than said first range; and code for storing said transformed kernel.
76. The computer readable medium of according to claim 75, wherein said kernel is of the form: 483290au.DOC -28- 2s13-3s 2+1,sl h(s)= 0, Otherwise and wherein s t At.
77. The computer readable medium according to claim 75, wherein said transformed kernel is of the form: 1, -d<s<d 0, d) s h(s) 0, s 3 2 Ss-d s-d 2 2s-d 3 otherwise, 2d l- 2d and wherein s t At and 0 d 10 78. The computer readable medium according to claim 77, wherein said first range is s and said second range is s 1
79. The computer readable medium according to claim 77, wherein parameter d is varied according to said temporal difference.
80. The computer readable medium according to claim 77, wherein parameter d is varied according to a sampling ratio.
81. The computer readable medium according to claim 77, wherein parameter d is varied according to edge proximity.
82. The computer readable medium according to claim 75, wherein the kernel is a linear kernel. 483290au.DOC -29-
83. The computer readable medium according to claim 75, wherein the kernel is a quadratic kernel.
84. The computer readable medium according to claim 75, wherein the kernel is a weighted sinc kernel. A method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the method comprising the following steps: accessing said first set of data sample values; and (ii) performing the following operations for each data value of said second set; calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and 15 convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
86. The method of according to claim 85, wherein said second kernel is of the form: 2s3-3s 2 1,sl1 h(s)= L0, Otherwise and wherein s t At. The method according to claim 85, wherein said first kernel is of the form: 1, -d<s<d 0, d) 2 s h(s) 0, d) s 3 2 s-d s-d 2 s d 3 s- otherwise, 1- 2d 2d p and wherein s t /At and 0 d 483290au.DOC
88. The method according to claim 85, wherein said image is sampled to generate said first set of discrete data sample values.
89. The method according to claim 87, wherein parameter d is varied according to said temporal difference. The method according to claim 87, wherein parameter d is varied according to a sampling ratio.
91. The method according to claim 87, wherein parameter d is varied according to edge proximity.
92. The method according to claim 85, wherein the kernel is a linear kernel.
93. The method according to claim 85, wherein the kernel is a quadratic kernel.
94. The method according to claim 85, wherein the kernel is a weighted sinc kernel. 20 95. An apparatus for converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the apparatus comprising: access means for accessing said first set of data sample values; and •processing means for performing the following operations for each data value of said second set; calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and 483290au.DOC -31 convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
96. The apparatus according to claim 95, wherein said second kernel is of the form: 2s 3-3s2+1,IsI< h(s)= S0, Otherwise and wherein s t At.
97. The apparatus according to claim 95, wherein said first kernel is of the form: 1, -d<s<d 0, d) 2 s 0, d) s 3 2 2 s-d s-d 2 21 d -3 otherwise, 1-2d 1-2d 10 and wherein s t At and 0 d
98. The apparatus according to claim 95, wherein said image is sampled to generate said first set of discrete data sample values. 15 99. The apparatus according to claim 97, wherein parameter d is varied according to said temporal difference.
100. The apparatus according to claims 97, wherein parameter d is varied according to a sampling ratio.
101. The apparatus according to claim 97, wherein parameter d is varied according to edge proximity.
102. The apparatus according to claim 95, wherein the kernel is a linear kernel. 483290au.DOC -32-
103. The apparatus according to claim 95, wherein the kernel is a quadratic kernel.
104. The apparatus according to claim 95, wherein the kernel is a weighted sinc kernel.
105. A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, said program comprising: code for accessing said first set of data sample values; and code for performing the following operations for each data value of said second set; calculating kernel values for each of said discrete sample values of said first set, according to a first kernel, wherein said first kernel is constructed from a scaled version of a second kernel; and *999 o convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set. 20 106. The computer readable medium of according to claim 105, wherein said second .kernel is of the form: s3 12+1,ls~ -31s h(s)= see": Otherwise and wherein s t At.
107. The computer readable medium according to claim 105, wherein said first kernel is of the form: 483290au.DOC -33- 1, -d<s<d 0, s h 0, <s 2 s-d s-d 2 2 -3 +1, 1-2d 1-2d otherwise, Op 0@ 01.0 0* 4 00* .00. bg 0 o& 00 00 S *000 0r 4000 S. 0 and wherein s t At and 0 d
108. The computer readable medium according to claim 105, wherein said image is sampled to generate said first set of discrete data sample values.
109. The computer readable medium according to claim 107, wherein parameter d is varied according to said temporal difference.
110. The computer readable medium according to claim 107, wherein parameter d is varied according to a sampling ratio.
111. The computer readable medium according to claim 107, wherein parameter d is varied according to edge proximity.
112. The computer readable medium according to claim 105, wherein the kernel is a linear kernel.
113. The computer readable medium according to claim 105, wherein the kernel is a quadratic kernel.
114. The computer readable medium according to claim 105, wherein the kernel is a weighted sinc kernel. z o
115. A method of providing a representation of image data, substantially as herein described with reference to the accompanying drawings. 483290au.DOC I -34-
116. An apparatus for providing a representation of image data, substantially as herein described with reference to the accompanying drawings.
117. A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of image data, substantially as herein described with reference to the accompanying drawings. DATED this twelfth day of April 2002 Canon Kabushiki Kaisha Patent Attorneys for the Applicants SPRUSON FERGUSON *ooo 483290au.DOC
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU63023/99A AU748831B2 (en) | 1998-12-18 | 1999-12-01 | A modified kernel for image interpolation |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPP7797 | 1998-12-18 | ||
AUPP7797A AUPP779798A0 (en) | 1998-12-18 | 1998-12-18 | A modified kernel for image interpolation |
AU63023/99A AU748831B2 (en) | 1998-12-18 | 1999-12-01 | A modified kernel for image interpolation |
Publications (2)
Publication Number | Publication Date |
---|---|
AU6302399A AU6302399A (en) | 2000-06-22 |
AU748831B2 true AU748831B2 (en) | 2002-06-13 |
Family
ID=25633779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU63023/99A Ceased AU748831B2 (en) | 1998-12-18 | 1999-12-01 | A modified kernel for image interpolation |
Country Status (1)
Country | Link |
---|---|
AU (1) | AU748831B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996016380A1 (en) * | 1994-11-23 | 1996-05-30 | Minnesota Mining And Manufacturing Company | System and method for adaptive interpolation of image data |
GB2297216A (en) * | 1995-01-20 | 1996-07-24 | Eastman Kodak Co | Digital image interpolator using a plurality of interpolation kernels |
EP0908845A1 (en) * | 1997-10-09 | 1999-04-14 | Agfa-Gevaert N.V. | Image sharpening and re-sampling method |
-
1999
- 1999-12-01 AU AU63023/99A patent/AU748831B2/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996016380A1 (en) * | 1994-11-23 | 1996-05-30 | Minnesota Mining And Manufacturing Company | System and method for adaptive interpolation of image data |
GB2297216A (en) * | 1995-01-20 | 1996-07-24 | Eastman Kodak Co | Digital image interpolator using a plurality of interpolation kernels |
EP0908845A1 (en) * | 1997-10-09 | 1999-04-14 | Agfa-Gevaert N.V. | Image sharpening and re-sampling method |
Also Published As
Publication number | Publication date |
---|---|
AU6302399A (en) | 2000-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7054507B1 (en) | Method of kernel selection for image interpolation | |
US6928196B1 (en) | Method for kernel selection for image interpolation | |
US7151863B1 (en) | Color clamping | |
JP4431362B2 (en) | Method and system for removing artifacts in compressed images | |
CN100484188C (en) | Resolution-converting apparatus and method | |
US7149369B2 (en) | Method and system for image scaling | |
US6133901A (en) | Method and system for width independent antialiasing | |
EP1347411B1 (en) | Fractal image enlargement | |
US7061492B2 (en) | Text improvement | |
JPH09294204A (en) | Image processing unit and its method | |
US6748120B1 (en) | Steerable kernel for image interpolation | |
Arce et al. | Nonlinear filtering for image analysis and enhancement | |
JP4065462B2 (en) | Image processing apparatus and image processing method | |
Chang et al. | An image zooming technique based on vector quantization approximation | |
AU748831B2 (en) | A modified kernel for image interpolation | |
US6687417B1 (en) | Modified kernel for image interpolation | |
Luong et al. | Non-local image interpolation | |
US6795587B2 (en) | Image resizing using short asymmetric FIR filters | |
US6714210B1 (en) | Continuous kernel image interpolation | |
AU745562B2 (en) | A method of kernel selection for image interpolation | |
AU745082B2 (en) | A steerable kernel for image interpolation | |
Luong et al. | An image interpolation scheme for repetitive structures | |
AU730522B1 (en) | Continuous kernel image interpolation | |
Goswami | Comparison of image interpolation methods for image zooming | |
US20020093511A1 (en) | Apparatus and method for processing a digital image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FGA | Letters patent sealed or granted (standard patent) |