This application is a national stage application (under 35 U.S.C. § 371) of PCT/JP2006/302576 filed Feb. 8, 2006, which claims benefit of Japanese Application No. 2005-176056 filed Jun. 16, 2006, disclosure of which is incorporated herein by reference.
The present invention relates to an interpolation process circuit and, in particular, to an interpolation process circuit utilizing an FIR digital filter of the type that multiplies each tap signal by given filter coefficients on a tapped delay line made up of a plurality of delay devices, and then outputs the sum of these products.
In the prior art, a method by which pixel interpolation is used to increase the number of pixels and thereby increase horizontal and vertical resolution in order to improve the quality of a television picture is well-known. For this purpose, an image processing circuit which performs horizontal direction interpolation process and vertical direction interpolation process at high speed using hardware made up of simple circuits without using processors or the like has been proposed (in patent document 1, for instance).
Patent document 1: Japanese Patent Laid-Open No. 2000-148061
The image processing circuit disclosed in patent document 1, in an image for which the sampling frequency is an integer multiple of a line frequency, calculates a pixel value for an interpolating pixel that sits on a straight line connecting the two adjacent pixels which align diagonally at proximal positions sandwiching the focused pixel by averaging the pixel values of the focused pixel and the two adjacent pixels. Thus when performing interpolation process, it is possible to obtain a pixel value for the interpolating pixel using only three pixel values and a simple moving average value calculation.
To be more specific, if the pixel value of the focused pixel is a and the pixel data of the four adjacent pixels surrounding the focused pixel are b, c, d, and e in order around the focused pixel, the pixel values of the four interpolating pixels a0, a1, a2, a3 are calculated using a0=(8a+b−e)/8, a1=(8a+c−d)/8, a2=(8a+d−c)/8, a3=(8a+e−b)/8. These methods can realize the processing at high speed and double both the horizontal resolution and the vertical resolution with simple circuit configurations.
However, the technology disclosed in patent document 1 is limited to calculating the pixel values for the interpolating pixels by a simple moving average calculation using only three adjacent pixels in the case that the above-described special group of coefficients {−1, 8, 1} are used in the moving average calculation.
This special coefficient group {−1, 8, 1} corresponds to a part of the filter coefficients {−1, 1, 8, 8, 1, −1} disclosed in FIG. 1 of International Publication No. WO 2004/079905. The moving average calculation using the sequence of filter coefficients is expressed as shown in
Another possibility is to perform interpolation calculation using a coefficient sequence {−1, 0, 9, 16, 9, 0, −1}. The moving average calculation using this coefficient sequence is expressed as shown in
When the moving average calculation is performed using other sequences of coefficients shown in FIG. 1 of International Publication No. WO 2004/079905, a larger number of pixel values may be required. In order to use pixel values from the focused pixel and a plurality of adjacent pixels which surround the focused pixel in a moving average calculation, a frame memory with a large capacity is necessary. Further more, since the frame memories as many as the number of the pixel values used in the moving average calculation are required, a problem that a circuit scale became enlarged was occurred. Moreover, there was a problem that the calculation processing became more complex which unable the interpolation process to be performed at high speed.
The present invention was achieved to solve these problems, and has the object of enabling interpolation process using various coefficient sequences to be implemented at high speed using a simple circuit construction.
To solve the above-described problems, the interpolation process circuit of the present invention includes a three-tap FIR calculating part configured to output the sum of products resulting from multiplying data outputted from three taps in a tapped delay line by corresponding filter coefficients made up of a sequence of values in the ratio “−1, m, −1” and an n-tap FIR calculating part configured to output the sum of products resulting from multiplying data outputted from n taps in a tapped delay line by corresponding filter coefficients made up of a sequence of values obtained by performing a moving average calculation (n−1) times on “1”. The three-tap FIR calculating part and the n-tap FIR calculating part are then cascade connected.
In another aspect of the present invention, an emphasis calculating part is included for performing emphasis calculations in a relationship of “−1+kα, m−2kα, −1+kα” (where k may be any number) based on an inputted emphasis coefficient α on filter coefficients comprised of a numeric sequence in the ratio “−1, m, −1” in the three-tap FIR calculating part. The emphasis calculating part may perform emphasis calculations in a relationship of “x+kα, y−2kα, z+kα (where k may be any number) on the three pieces of data “x, y, z” sequentially outputted from the three-tap FIR calculating part.
According to the present invention having the above-described constructions, interpolation values can be obtained by a sum-of-products using various coefficient sequences with a combination of the three-tap FIR calculating part and n-tap FIR calculating part. Specifically, by changing the values of m and n, it is possible to calculate interpolation values by a sum-of-products using various coefficient sequences rather than being limited to specific coefficient sequences.
Moreover, the three-tap FIR calculating part at the input stage is always capable of calculating interpolation values by a sum-of-products using only three values, and therefore its calculation circuit can be small in scale. Moreover, if large capacity memories are required for the delay, three memories at most are sufficient in the present invention. As a result, the circuit can be small in scale. Since the number of taps to be used is very small, the calculation processing is simplified and the high speed interpolation process can be realized.
According to another characteristic of the present invention, the degree of emphasis on the three values used when performing the sum-of-products in the three-tap FIR calculating part can be easily varied using the emphasis coefficient α, and interpolation values can therefore be simply calculated with a sum-of-products using a wider variety of coefficient sequences.
The following describes a first embodiment of the present invention based on the drawings.
The D-type flip-flop 1 in the input stage functions as a buffer to hold input data for a single clock CK cycle. The three-tap FIR calculating part 2 sequentially delays input data outputted from the D-type flip-flop 1 using a tapped delay line made up of a plurality of delay devices, multiplies pieces of data outputted from the three taps in the tapped delay line by corresponding filter coefficients from an array of values in the ratio “−1, m, −1” (where m may be any number), and subsequently outputs a sum of the resulting products.
The three-tap FIR calculating part 2 is constructed from two cascade connected D-type flip-flops 2a-1 and 2a-2, three coefficient devices 2b-1 to 2b-3, and two adders 2c-1 and 2c-2. The two D-type flip-flops 2a-1 and 2a-2 sequentially delay the input data by a single clock (2CK) cycle. The clock (2CK) is a clock with a frequency which is double the frequency of the clock CK. Sequentially delaying the input data by 1 clock (2CK) cycle means that the input data is two-times oversampled.
The three coefficient devices 2b-1 to 2b-3 form products of the three pieces of data from the input/output taps of the D-type flip-flops 2a-1 and 2a-2 and the corresponding filter coefficients from the array of values provided in the ratio “−1, m, −1”. The two adders 2c-1 and 2c-2 add all the data outputted from the coefficient devices 2b-1 to 2b-3 and output the result. Note that in
The n-tap FIR calculating part 3 sequentially delays output data from the three-tap FIR calculating part 2 using a tapped delay line made up of a plurality of delay devices, multiplies pieces of data outputted from the n taps (where n is a natural number) in the tapped delay line by corresponding filter coefficients comprised of a prescribed sequence, and subsequently outputs a sum of the resulting products. Here, it is preferable that the prescribed sequence is obtained by (n−1) moving average calculations on “1”. In the example of
Here, the moving average to obtain an nth sequence refers to a calculation that is a weighted addition of the (n−1)th sequence and the (n−1)th sequence displaced by one sample (one clock) (with the total value of the weights being “1”). In other words, to obtain the jth filter coefficient in the nth sequence using the moving average calculation, a weighted sum of the jth data in the (n−1)th data sequence and the jth data in the (n−1)th data sequence that has been displaced by one sample is calculated.
For instance, the first value “0.5” at the start of the second sequence is obtained by calculating the sum of the first value in the first sequence, which is original data “1”, and preceding data “0” from one sample before and dividing by two. The second value “0.5” is obtained by calculating the sum of the second original data “0” in the first sequence and the preceding data “1” from one sample before and dividing by two. Note also, the first value “0.25” at the top of the third sequence is obtained by calculating the sum of the first value in the second sequence, which is the original data “0.5”, and the preceding data “0” from one sample before and dividing by two. The second value “0.5” is obtained by calculating the sum of the second original data “0.5” in the second sequence and the preceding data “0.5” from one sample before and dividing by two. The third value “0.25” is obtained by calculating the sum of the third original data “0” in the second sequence and the preceding data “0.5” from one sample before and dividing by two.
The n-tap FIR filter 3 is constructed from two cascade connected D-type flip-flops 3a-1 and 3a-2, three coefficient devices 3b-1 to 3b-3 and two adders 3c-1 to 3c-2. Each of the two D-type flip-flops 3a-1 and 3a-2 sequentially delays data inputted from the three-tap FIR calculating part by one clock (2CK) cycle. The three coefficient devices 3b-1 to 3b-3 form products of the three pieces of data from the input/output taps of the D-type flip-flops 3a-1 and 3a-2, and the corresponding filter coefficients {0.25, 0.5, 0.25}. The two adders 3c-1 and 3c-2 add all the data outputted from the coefficient devices 3b-1 to 3b-3 and outputs the result.
The specific details of sum-of-product calculations performed in the three-tap FIR calculating part 2 are shown in
For instance, to calculate the first value of the output data from the three-tap FIR calculating part 2, the three filter coefficients {−1, 4, −1} (arrangement surrounded by a dotted line indicated by symbol 31) of the three-tap FIR calculating part 2 and the value sequence {0, 0, 1} (arrangement surrounded by a dotted line indicated by symbol 32) which includes the first value of the input data and the two values preceding the first value are used and a calculation to obtain the sum of the products of corresponding values in the two arrangements is performed. In this case, the result of the calculation is (0×(−1)+0×4+1×(−1))=−1.
Then, to calculate the second value of the output data from the three-tap FIR calculating part 2, the three filter coefficients {−1, 4, −1} (arrangement surrounded by a dotted line indicated by symbol 31) of the three-tap FIR calculating part 2 and the three-value sequence {0, 1, 1} (arrangement surrounded by a dotted line indicated by symbol 33) which includes the second value of the input data and the two values preceding the second value are used and a calculation to obtain the sum of the products of corresponding values in the two arrangements is performed. In this case, the result of the calculation is (0×(−1)+1×4+1×(−1))=3. In the same way, the third value of the output data from the three-tap FIR calculating part 2 is calculated to be (1×(−1)+1×4+0×(−1))=3, and the fourth value is calculated to be (1×(−1)+0×4+1×(−1))=−1.
When the four data values {−1, 3, 3, −1} are inputted, the n-tap FIR calculating part 3 performs sum-of-products calculations between the four data values and the filter coefficients {0.25, 0.5, 0.25} and outputs a sequence in the ratio {−1, 1, 8, 8, 1, −1} (in
Specifically, the filter coefficients of the n-tap FIR calculating part 3 form the fixed three-value sequence {0.25, 0.5, 0.25} used in the sum-of-product calculations. The output data from the three-tap FIR calculating part 2, on the other hand, is the sequence {−1, 3, 3, −1} that is assumed to be preceded and followed by sequences of “0” and a three-value sequence (the same number as that of filter coefficients in the n-tap FIR calculating part 3) including “0” is used as the sequence in the sum-of-products calculations. To calculate the ith value of the output data from the n-tap FIR calculating part 3, the ith value of the output data from the three-tap FIR calculating part 2 and the preceding two values of the output data are used in the sum-of-products calculation.
As is clear from the above, the interpolation process circuit shown in
Here, the following describes slight changes to configurations of the n-tap FIR calculating part 3. For instance, as shown in
Further, when the four-value data {−1, 3, 3, −1} outputted from the three-tap FIR calculating part 2 is inputted to the next stage, the n-tap FIR calculating part 4 performs sum-of-products calculations between the four data values and the filter coefficients {0.125, 0.375, 0.375, 0.125} and outputs the resulting sequence in the ratio {−1, 0, 9, 16, 9, 0, −1} (in
As is clear from the above, the interpolation process circuit shown in
Furthermore, the construction including an n-tap FIR calculating part 5 shown in
Further, when the four-value data {−1, 3, 3, −1} outputted from the three-tap FIR calculating part 2 is inputted to the next stage, the n-tap FIR calculating part 5 performs sum-of-products calculations between the four data values and the filter coefficients {0.5, 0.5} and outputs the resulting sequence in the ratio {−1, 2, 6, 2, −1} (in
As described in detail above, according to the first embodiment, data interpolation using the various coefficient sequences shown in
In this type of finite-base impulse response, only the data within a local region having finite values other than “0” are to be paid attention. The data other than the local region need not be taken into consideration theoretically. It does not mean that the data other than the local region, which should be essentially taken into consideration at the interpolation calculations, is ignored. Therefore, the use of the coefficient sequences shown in
Further, according to the first embodiment, since only three input data are used to calculate the interpolation values, very few taps are required in the interpolation calculation, which results in the circuit with a reduced scale. Moreover, the processing performed by the circuit is extremely simple and so the interpolation process can be performed at high speed.
The interpolation process circuit of the above-describe first embodiment can be used to calculate the interpolation values from three consecutively inputted pieces of data. For instance, when the interpolation process circuit of the present embodiment is used as an image resolution improving circuit for improving the quality of television images, it is possible to obtain the interpolation pixel values by performing the sum-of-products calculations on three pixel values consecutively existing in a horizontal line. In other words, the use of the interpolation process circuit according to the first embodiment allows one-dimensional interpolation process of television images to be performed.
The following describes the second embodiment of the present invention.
The D-type flip-flop 11 in the input stage functions as a buffer to hold input data for a single clock CK cycle. The three-tap FIR calculating part 12 sequentially delays input data outputted from the D-type flip-flop 11 using a tapped delay line made up of a plurality of delay devices, multiplies pieces of data outputted from the three taps in the tapped delay line by corresponding filter coefficients from an array of values in the ratio “−1, m, −1” (where m may be any number), and subsequently outputs a sum of the resulting products.
The three-tap FIR calculating part 12 of the second embodiment includes two cascade connected D-type flip-flops 12a-1 and 12a-2, two coefficient devices 12b-1 and 12b-2, and two adders 12c-1 and 12c-2. Although the three-tap FIR calculating part 12 constructed in this way is slightly different from the three-tap FIR calculating part 2 shown in the first embodiment, the details of sum-of-products to be executed is exactly the same.
The differences in the construction are as follows. In the above-described first embodiment, the data outputted from the input tap of the D-type flip-flop 2a-1 in the first stage, and the data outputted from the output tap of the D-type flip-flop 2a-2 in the second stage are multiplied by a filter coefficient of −1, respectively, and the resulting products are then added.
On the other hand, in the second embodiment, the data outputted from the input tap of the D-type flip-flop 12a-1 in the first stage and the data outputted from the output tap of the D-type flip-flop 12a-2 in the second stage are first added using the adder 12c-1 and the resulting value is then multiplied by a filter coefficient of −1 using the coefficient device 12b-1.
In other words, the coefficient device 12b-1 shown in
The emphasis calculating part 20 including coefficient devices 20a and 20b, a subtractor 20c, and an adder 20d performs an emphasis calculation in a relationship of “−1+α/8, m−α/4, −1+α/8” on filter coefficients made up of the sequence in the ratio “−1, m, −1” in the three-tap FIR calculating part 12 based on an inputted emphasis coefficient α (where α may be any number). In this emphasis calculation, the same value (α/8 in the above-described case) is added to the coefficient values on both sides and the total of added values (α/4 in the above-described case) is subtracted from the center coefficient value. With these methods, the sum of the coefficient sequence is remained unchanged before and after emphasis (−1+m+(−1)=m−2, (−1+α/8)+(m−α/4)+(−1+α/8)=m−2).
In the emphasis calculating part 20, the coefficient device 20a multiplies an inputted emphasis coefficient α by the coefficient ¼. Further, the subtractor 20c subtracts the data outputted from the coefficient device 20a from the data outputted from the coefficient device 12b-2 which multiplies by the filter coefficient corresponding to “m” to obtain the result m−α/4. The coefficient device 20b multiplies the inputted emphasis coefficient α by the coefficient ⅛. The adder 20d adds the data outputted from the coefficient device 12b-1 which multiplies by the filter coefficients corresponding to “−1, −1” among “−1, m, −1” to the data outputted from the coefficient device 20b to obtain the result −1+α/8.
The n-tap FIR calculating part 13 sequentially delays data, on which the emphasis calculating part 20 has performed the emphasis calculation based on the emphasis coefficient α, outputted from the three-tap FIR calculating part 12 using the tapped delay line made up of a plurality of delay devices, multiplies pieces of data outputted from the four taps in the tapped delay line by corresponding filter coefficients of the sequence {0.125, 0.375, 0.375, 0.125} as shown in
The construction of the n-tap FIR calculating part 13 is the same as that of the n-tap FIR calculating part 4 in
The three-tap FIR calculating part 12 therefore performs a sum-of-products between the emphasized filter coefficients {−0.875, 3.75, −0.875} and the oversampled input data “1, 1” and outputs a four-value sequence of {−0.875, 2.875, 2.875 −0.875}. When the four data values are inputted, the n-tap FIR calculating part 13 performs sum-of-products calculations between the four data values and the filter coefficients {0.125, 0.375, 0.375, 0.125} and outputs a sequence in the ratio {−0.875, 0.25, 8.875 15.5, 8.875, 0.25, −0.875}. Note that when α=0, a sequence of values in the ratio {−1, 0, 9, 16, 9, 0, −1}, which is the same as in
As is clear from the above, the interpolation process circuit shown in
Note that, as described above, the sequence “−1, m, −1” has a finite-base impulse response. The impulse response of the sequence “−1+α/8, m−α/4, −1+α/8” obtained by the emphasis calculation using the emphasis coefficient α to the sequence having such characteristics is the finite-base function even if its amplitude is changed depending on the emphasis coefficient α (see
Also, in the second embodiment, it is possible to change the coefficient sequences used in the interpolation calculation by changing the construction of the n-tap FIR calculating part 13. At this point, the three-tap FIR calculating part 12 is fixed, and it is possible to perform interpolation using various coefficient sequences with only three input data values consistently.
As described in detail above, the second embodiment also allows data interpolation using various coefficient sequences to be performed by sum-of-products calculations that only ever use three input data values. Moreover, the strength of the emphasis for the three values used in the sum-of-products calculation in the three-tap FIR calculating part can be easily changed using the emphasis coefficient α, thereby interpolation values can be easily obtained by sum-of-products calculations using a wider variety of coefficient sequences. Furthermore, since the number of taps is extremely small, the scale of the circuit can be downsized. Also, since the processing is very simple, the interpolation process can be performed at high speed.
The present invention is not limited to the described example wherein the emphasis calculation is performed in a relationship of “−1+α/8, m−α/4, −1+α/8” on filter coefficients comprised of a sequence in the ratio “−1, m, −1” in the three-tap FIR calculating part 12. Provided that the total value of the coefficients in the sequence is unchanged before and after the emphasis, emphasis calculations other than the one described may be used. For instance, it is possible to perform emphasis calculations in a relationship of “−1+kα, m−2kα, −1+kα” (where k may be any number). Alternatively, when three pieces of data sequentially outputted from the three-tap FIR calculating part are denoted by “x, y, z”, the emphasis calculating part may perform emphasis calculations in a relationship of “x+kα, y−2kα, z+kα” on the three pieces of output data “x, y, z”.
The following describes the third embodiment of the present invention. In the above first and second embodiments, examples of one-dimensional interpolation process circuits for calculating interpolation values from three consecutively inputted pieces of data are described. In the third embodiment below, an example of a two-dimensional interpolation process circuits for calculating interpolation values from three discrete pieces of data is described. For instance, when the interpolation process circuit of the present embodiment is used as an image resolution improving circuit for improving the quality of television images, it is possible to obtain the interpolation pixel values from three pixel values discretely existing in three horizontal lines.
As shown in
The tapped delay line 21 is constructed from a plurality of delay devices and sequentially delays inputted data. The tapped delay line 21 is formed so as to output data from a plurality of predetermined taps thereon. When the focused pixel is in the pixel position e shown in
Of the data values outputted from the tapped delay line 21, the pixel values a, e, and i are inputted into the first data selector 22 and outputted sequentially to the three-tap FIR calculating part 12-1 via the D-type flip-flop 11-1. The pixel values c, e, and g are inputted to the second data selector 23 and outputted sequentially via the 1H delay circuit 25 and the D-type flip-flop 11-2 to the three-tap FIR calculating part 12-2.
The D-type flip-flops 11-1 and 11-2 have the same function as the D-type flip-flop 11 shown in
Note that although an example is described in which the n-tap FIR calculating parts 13-1 and 13-2 (n=4) are used, the n-tap FIR calculating part 3 (n=3) shown in
The third data selector 24 selects either the data outputted from the first n-tap FIR calculating part 13-1 or the data outputted from the second n-tap FIR calculating part 13-2 and outputs the selected data. Specifically, for odd clocks on odd lines and odd clocks on even lines, the data outputted from the first n-tap FIR calculating part 13-1 is selected. For even clocks on the odd lines and even clocks on the even lines, the data outputted from the second n-tap FIR calculating part 13-2 is selected.
According to the third embodiment with this construction, it is possible to construct a two-dimensional interpolation process circuit using tapped delay lines, three-tap FIR calculating parts, and n-tap FIR calculating parts in a basically similar way to the first embodiment. Thus, in any case, by changing the values of m and n, two-dimensional image interpolation process using various coefficient sequences can be performed by a sum-of-products calculation which only ever uses three input data values. Moreover, the strength of the emphasis for the three values used in the sum-of-products calculation in the three-tap FIR calculating part can be easily changed using the emphasis coefficient α, thereby allowing interpolation values to be easily calculated by sum-of-products calculations using a wider variety of coefficient sequences. Furthermore, since the number of taps is extremely small, the scale of the circuit can be downsized. Also, since the processing is very simple, the interpolation process can be performed at high speed.
Note that although in the first to third embodiments examples are described in which interpolation is performed by two-times oversampling of the input data, the present invention is not limited to such an arrangement. For instance, interpolation may be performed using four-times oversampling, eight-times oversampling or some other rate greater than two times. Alternatively, interpolation may be performed without oversampling.
When the input data is not oversampled, it is possible to realize interpolation calculations using the sequence of values shown in the example of
However, as is clear from a comparison of
In the above-described first to third embodiments, examples are described in which the interpolation process circuit is applied as an image resolution improving circuit for improving the quality of television images. However, the present invention is not limited to this application. For instance, it is possible to apply the present invention to a circuit for improving the quality of sound signals, a circuit for decompressing compressed data, and the like. The present invention can further be applied in all circuits in which data interpolation is necessary.
Further, the first to third embodiments are no more than example implementations of the present invention and should not be interpreted as limiting the technical scope of the present invention. Various other implementations are possible without departing from the main characteristics or spirit of the present invention.
The present invention is useful in an interpolation process circuit utilizing an FIR digital filter of the type that multiplies each tap signal on a tapped delay line made up of a plurality of delay devices by a corresponding filter coefficient and then outputs the sum of these products. The interpolation process circuit of the present invention can be applied to any circuit and apparatus for which data interpolation is necessary.
Number | Date | Country | Kind |
---|---|---|---|
2005-176056 | Jun 2005 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2006/302576 | 2/8/2006 | WO | 00 | 11/20/2007 |