The present invention relates to an image processing system and method for encoding/decoding an image.
Many image compression coding techniques have been proposed since a storage medium having a very large size is required to save an image with high resolution and high pixel precision as a raw image.
For example, a technique for saving/transferring X-ray medical images in an electronic format, and using them in diagnosis has been proposed. In the medical field, images preferably have highest possible resolution, and an effective image compression method is demanded.
On the other hand, various techniques for canceling noise appearing in images have been proposed and are used in various fields.
However, no technique for effectively reducing noise in the image encoding/decoding process has been proposed yet.
For example, in an image sensing device using X-rays, the X-ray dosage upon image sensing is preferably as small as possible in consideration of the influences on a patient. But an image sensed with a small X-ray dosage contains many quantization noise components, which disturb diagnosis. As a method of reducing such quantization noise in a medical image, a method that exploits multiresolution analysis is known, as disclosed in Japanese Patent Laid-Open No. 09-212623. According to this technique, it is possible to remove noise based on the multiresolution analysis result of an image. However, in order to incorporate such method in a conventional apparatus, a noise removal process must be added. Also, when this method is combined with image coding, flexible adjustment of image quality is disturbed upon display.
The present invention has been made in consideration of the conventional problems, and has as its object to provide an image processing system, image processing apparatus, and image processing method, which can remove noise contained in an original image upon compressing/decompressing an image.
In order to achieve the above object, an image processing system according to the present invention is an image processing system for encoding and decoding an image, comprising:
an encoding device for encoding an image in units of bit planes to generate a code sequence; and
a decoding device for decoding the code sequence in units of bit planes to generate an image,
wherein noise in an image is removed by deleting data of bit planes of levels lower than a lower-limit bit plane in the encoding device and/or the decoding device.
Another image processing system according to the present invention is an image processing system for encoding and decoding an image, comprising:
an encoding device for generating a code sequence by generating transform coefficients in units of a plurality of frequency ranges by means of frequency transformation of an image, and encoding the transform coefficients; and
a decoding device for restoring the transform coefficients from the code sequence, reclaiming a reference image on the basis of the transform coefficients of a given frequency range of the restored transform coefficients, and removing noise by processing the transform coefficients of the frequency ranges other than the given frequency range on the basis of the reference image.
An image processing apparatus according to the present invention is an image processing apparatus for encoding an image, which generates a code sequence by encoding an image in units of bit planes, and removes noise on the image by deleting data of bit planes of levels lower than a lower-limit bit plane.
Another image processing apparatus according to the present invention is an image processing apparatus for decoding an image, which reclaims an image by decoding an image in units of bit planes, and removes noise on the image by deleting data of bit planes of levels lower than a lower-limit bit plane.
Still another image processing apparatus according to the present invention is an image processing apparatus for decoding an image, which restores transform coefficients from a code sequence obtained by computing and encoding frequency transforms of an image, and reclaims a reference image on the basis of the transform coefficients of a given frequency range of the restored transform coefficients, and
removes noise by processing the transform coefficients of frequency ranges other than the given frequency range on the basis of the reference image.
An image processing method according to the present invention is an image processing method for encoding and decoding an image, comprising:
an encoding step of encoding an image in units of bit planes to generate a code sequence; and
a decoding step of decoding the code sequence in units of bit planes to generate an image,
wherein noise on an image is removed by deleting data of bit planes of levels lower than a lower-limit bit plane in the encoding step and/or the decoding step.
Another image processing method according to the present invention is an image processing method for decoding an image, comprising:
a step of restoring transform coefficients from a code sequence obtained by computing and encoding frequency transforms of an image, and reclaiming a reference image on the basis of the transform coefficients of a given frequency range of the restored transform coefficients; and
a step of removing noise by processing the transform coefficients of frequency ranges other than the given frequency range on the basis of the reference image.
A computer program product according to the present invention embodies a program for implementing an image processing method for encoding and decoding an image, and the program comprises:
program code for a encoding step of encoding an image in units of bit planes to generate a code sequence; and
program code for a decoding step of decoding the code sequence in units of bit planes to generate an image,
wherein noise on an image is removed by deleting data of bit planes of levels lower than a lower-limit bit plane in the encoding step and/or the decoding step.
Another computer program product according to the present invention embodies a program for implementing an image processing method for decoding an image, and the program comprises:
program code for a step of restoring transform coefficients from a code sequence obtained by computing and encoding frequency transforms of an image, and reclaiming a reference image on the basis of the transform coefficients of a given frequency range of the restored transform coefficients; and
program code for a step of removing noise by processing the transform coefficients of frequency ranges other than the given frequency range on the basis of the reference image.
A computer data signal according to the present invention is embodied in a propagating wave, is used for implementing an image processing method for encoding and decoding an image, and comprises:
code signals used in an encoding step of encoding an image in units of bit planes to generate a code sequence; and
code signals used in a decoding step of decoding the code sequence in units of bit planes to generate an image,
wherein noise on an image is removed by deleting data of bit planes of levels lower than a lower-limit bit plane in the encoding step and/or the decoding step.
Another computer data signal according to the present invention is embodied in a propagating wave, is used for implementing an image processing method for decoding an image, and comprises:
code signals used in a step of restoring transform coefficients from a code sequence obtained by computing and encoding frequency transforms of an image, and reclaiming a reference image on the basis of the transform coefficients of a given frequency range of the restored transform coefficients; and
code signals used in a step of removing noise by processing the transform coefficients of frequency ranges other than the given frequency range on the basis of the reference image.
Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.
Preferred embodiments of the present invention will be exemplified in detail hereinafter with reference to the accompanying drawings. Note that the scope of the present invention is not limited to the relative positions of building components, the processing order, and the like described in these embodiments unless otherwise specified.
[First Embodiment]
An image processing system for executing a series of processes when medical images are processed as an electronic format according to the first embodiment of the present invention will be described.
An encoding device 2 in
An image signal that has undergone compression encoding is outputted as a code sequence to a file output device 3. The file output device 3 forms a file format by appending information required for diagnosis (e.g., a patient's name, image sensing conditions, and the like) to the code sequence that has undergone compression encoding by the encoding device 2, and outputs the file to a storage/transfer device 4. The storage/transfer device 4 stores the converted data having the predetermined format as a file or transfers it to another device.
Note that a storage medium uses a hard disk, MO, or the like, and a network or the like is used upon transfer. The following process is done to display the stored/transferred data.
The file output from the storage/transfer device 4 is read by a file input device 5, and after required information is extracted from the file, the code sequence is outputted to a decoding device 6. The decoding device 6 decodes the input code sequence to reclaim an original image signal, and outputs that signal to an image display device 7. The image display device 7 displays the input image signal, which is used in, e.g., diagnosis.
Details of the encoding process in the image processing system according to this embodiment will be explained below using the flow chart in
In step S1201, an image signal is input from the image input device, and is outputted to the encoding device 2.
In step S1202, a discrete wavelet transformer 201(
The internal arrangement of the encoding device 2 will be described in detail below.
The discrete wavelet transformer 201 executes a two-dimensional discrete wavelet transform process of the image signal input from the image input device 1, and computes and outputs transform coefficients.
d(n)=x(2n+1)−floor((x(2n)+x(2n+2))/2) (1)
s(n)=x(2n)+floor((d(n−1)+d(n))/4) (2)
where x(n) is an image signal at address n to be transformed, and floor(x) is a function of returning a maximum integer smaller than x.
With this process, the linear discrete wavelet transform process is done for an image signal. Since two-dimensional discrete wavelet transformation is implemented by sequentially executing linear discrete wavelet transformation in the horizontal and vertical directions of an image and its details are known to those who are skilled in the art, a description thereof will be omitted.
The entropy encoder 202 decomposes the input transform coefficients into bit planes, executes binary arithmetic coding in units of bit planes, and outputs code sequences.
S=ceil(log2(abs(M))) (3)
where ceil(x) is the smallest one of integers equal to or larger than x. This process corresponds to step S1203 in
In
Also, S indicates the number of bits required for expressing a maximum quantization index, and is computed by equation (3) above. The code sequence generated in this manner is outputted to the file output device 3.
In the aforementioned processes, since an image signal is expressed as coefficients of integers as a result of arithmetic operations of equations (1) and (2), and no information loss occurs in the subsequent entropy encoder 202, an original image can be completely reclaimed by decoding the generated code sequence (reversible compression).
In step S1207 in
Details of the decoding process in the image processing system according to this embodiment will be explained below using the flow chart in
In step S1301, the file stored by the storage/transfer device 4 is read by the file input device 5 (
The code input unit 601 receives a code sequence, analyzes the headers (MH and TH) included in that sequence to extract parameters required for the subsequent processes, and controls the flow of processes if necessary or outputs required parameters to the subsequent processing units. The bitstreams included in the code sequence are output to the entropy decoder 602.
The entropy decoder 602 decodes the bitstreams in units of bit planes and outputs the decoding result to the inverse discrete wavelet transformer 603.
Also, the entropy decoder 602 determines transform coefficient values to be output to the inverse discrete wavelet transformer 603 on the basis of the X-ray dosage input from the file input device 5. The entropy decoder 602 computes a noise amount ε determined from the X-ray dosage by a predetermined method (step S1303), and then computes a lower-limit bit plane L (step S1304) by:
L=ceil(log2(ε))+1; ε≧1 (4)
L=0; ε=0 (5)
where ε is expressed by an integer equal to or larger than 1. The entropy decoder 602 checks subbands to which the restored transform coefficients belong (step S1305). If the coefficient of interest belongs to a subband other than LL, the entropy decoder 602 aborts bit plane decoding in 801 at an L bit plane (lower-limit bit plane upon decoding), sets zero in all bits contained in subsequent bit planes up to the LSB (step S1306), and outputs them to the subsequent inverse discrete wavelet transformer 603. For example, when the lower-limit bit plane L is 1 in the coefficient distribution indicated by 801, since all transform coefficients contained in the LSB are replaced by zero, coefficient values to be output to the inverse discrete wavelet transformer 603 are 12, 6, and 2.
When the restored transform coefficient belongs to an LL subband, all bit planes are decoded ordinarily (step S1307).
x′(2n)=s′(n)−floor((d′(n−1)+d′(n))/4) (6)
x′(2n+1)=d′(n)+floor((x′(2n)+x′(2n+2))/2) (7)
With the aforementioned processes, the image is reclaimed, and is outputted to and displayed on the image display device 7 which comprises a CRT, liquid crystal display, or the like (step S1309).
As described above, according to this embodiment, transform coefficients obtained by a discrete wavelet transform process of an image are encoded in units of bit planes in turn from the MSB bit plane. In a process for decoding this code sequence, a bit plane corresponding to the value of the noise amount ε is used as a lower-limit bit plane upon decoding. In this manner, when an image contains noise, a decoded image from which noise components are removed can be obtained.
Note that the lower-limit bit plane may be determined in units of subbands.
Note also that the program codes according to the flow charts shown in
[Second Embodiment]
In the decoding device of the first embodiment, the lower-limit bit plane of the transform coefficient to be decoded is controlled in accordance with the noise amount ε. But in some cases, a noise removal process need be controlled more flexibly. As the second embodiment of the present invention devised to this end, a decoding device having an arrangement for implementing a noise removal process by finer control will be explained. Since the arrangement of the overall image processing system and building components other than the decoding device 6 are the same as those in the first embodiment, a description thereof will be omitted.
Referring to
c′=c; abs(c)>2L (8)
c′=sign(c)(abs(c)−T); abs(c)≦2L (9)
for transform coefficients of subbands other than LL from a predetermined threshold value T based on the noise component ε, and outputs the computed coefficients.
The inverse discrete wavelet transformer 603 computes inverse transforms using c′, and outputs a reclaimed image to the image display device 7.
With the aforementioned processes, transform coefficients contained in bit planes below the bit plane L undergo a threshold value process by setting a predetermined threshold value, thus achieving a noise removal process at finer level in the decoding process.
The process for correcting transform coefficients using equations (8) and (9) can be executed before step S1308 in
In the first and second embodiments, transform coefficients are directly entropy-encoded upon encoding. Alternatively, quantization may be done prior to entropy encoding. In this case, dequantization is done after entropy decoding in the decoding process.
[Third Embodiment]
An image processing system according to the third embodiment of the present invention will be described below.
Since the schematic arrangement and functions of the image processing system according to this embodiment are basically the same as those described in the first embodiment using
In this embodiment, the encoding device 2 and decoding device 6 have different internal arrangements from those in the first embodiment. Hence, these differences will be mainly explained below.
Since the discrete wavelet transformer 201 has the same arrangement and functions as those described in the first embodiment using
The quantizer 203 quantizes the input coefficients by a predetermined quantization step, and outputs indices (quantization indices) corresponding to the quantized values. In this case, quantization is described by:
q=sign(c)floor(abs(c)/Δ) (10)
sign(c)=1; c≧0 (11)
sign(c)=−1; c<0 (12)
where q is the quantization index, c is a coefficient to be quantized, and Δ is the quantization step. In this embodiment, the value Δ includes “1” and, in this case, no quantization is done in practice. The obtained quantization indices are output to the entropy encoder 202.
The region designation unit 204 determines an ROI (Region Of Interest) in an image to be encoded, and generates mask information indicating coefficients that belong to the ROI upon computing the discrete wavelet transforms of the input image. In this embodiment, a region defined by coefficients equal to or higher than a predetermined value of those in an LL subband in the subband structure shown in
Furthermore,
If bit planes shown in, e.g.,
That is,
In this manner, all bit planes of the ROIs in a given subband do not overlap those of quantization indices of a non-ROI region.
More specifically, the entropy encoder 202 computes a shift value B therefor. Furthermore, the entropy encoder 202 changes quantization indices based on the mask information input from the region designation unit 204 by:
q′=q×2B; m=1 (13)
q′=q; m=0 (14)
where m is the mask value at the position of the quantization index of interest.
With the aforementioned process, only the quantization indices which belong to the ROIs designated by the region designation unit 204 are shifted up by B bits and, after that, the entropy encoder 202 encodes in units of bit planes.
The entropy encoder 202 decomposes the quantization indices into bit planes in units of rectangular regions (to be referred to as code blocks hereinafter) obtained by segmenting a subband into a predetermined size in correspondence with the input quantization indices, and makes binary arithmetic coding in units of bit planes, thus outputting bitstreams.
The entropy encoder 202 scans the entire subband to obtain a maximum value M, and computes the number S of bits required to express a quantization index indicating the maximum value M as in the first embodiment. Furthermore, the entropy encoder 202 similarly computes the maximum number SB of bits from a maximum quantization index value in each code block.
SB=ceil(log2(abs(MB))) (15)
In 161 of
Note that each bit plane undergoes a one-pass process, but may undergo processes in a plurality of passes.
In the aforementioned quantization index encoding process, the entropy encoder 202 shifts up quantization index values that belong to the ROIs by B bits, and then encodes in turn from the MSB bit plane. In this manner, bits of quantization indices of the ROIs occupy the former half of encoded data in each code block.
Furthermore, the codes of each bit plane are set in units of code blocks, as shown in the lower column in
Note that data of bits equal to or larger than the number SB of bits of a code block (the number SB of bits), the number of bits of which is less than S, are processed as zero.
The code sequence formed in this manner is outputted to the file output device 3.
The file output device 3 forms a file to be saved or transferred on the basis of the code sequence input from the encoding device 2, and various data input from the image input device 1, as in the first embodiment. Various data include the name of the patient to be sensed, image sensing date, X-ray dosage upon image sensing, and the like. These data are combined with the aforementioned code sequence, and are output to the storage/transfer device 4 as a single file. The storage/transfer device 4 stores the input file or outputs it to an external apparatus via, e.g., a network in accordance with the purpose intended.
The operation upon displaying an image in the decoding device of this embodiment will be explained below. An image file stored by the storage/transfer device 4 is read by the file input device 5 as in the first embodiment. The file input device 5 analyzes the input file and separates the file into an appended information part, and a code sequence generated by the encoding device 2, and outputs the code sequence to the decoding device 6 for a decoding process.
The internal arrangement of the decoding device 6 will be explained below. The functions of respective units will be explained first, and the overall operation of the decoding device 6 will then be explained.
Since the code input unit 601 has the same arrangement and functions as those in the first embodiment, a description thereof will be omitted.
Unlike in the first embodiment, the entropy decoder 602 according to this embodiment sets a lower-limit bit plane to be decoded upon decoding bit planes, and aborts a decoding process of bit planes below the lower-limit bit plane. After the lower-limit bit plane is decoded, restored quantization indices are shifted down (i.e., to the LSB side). That is, on the basis of the bit shift value B of the corresponding subband read out from the tile header TH, a quantization index that assumes a value exceeding 2B is shifted down by:
q=q′/2B; q′≠0 (16)
q=0; q′=0 (17)
where q is the quantization index after the shift down process, q′ is the quantization index before the shift down process, and B is the bit shift value read out from the tile header. With this process, the quantization indices which are shifted up, as shown in
In a dequantization process, the dequantizer 604 sets zero in bits contained in bit planes which are not decoded, and restores discrete wavelet transform coefficients by:
c′=Δ×q; q≠0 (18)
c′=0; q=0 (19)
where q is the quantization index, and Δ is the quantization step, which is the same value used upon encoding. c′ is the restored discrete wavelet transform coefficient.
The inverse discrete wavelet transformer 603 executes the same two-dimensional inverse discrete wavelet transformation as that described in the first embodiment using
Since the forward and inverse discrete wavelet transform processes given by equations (13), (14), (18), and (19) satisfy a perfect reconstruction condition, the restored image signal x′ matches the original image signal x as long as the quantization step Δ is “1” and all bit planes are decoded in bit plane decoding in this embodiment.
The flow chart of the image encoding process shown in
The encoding device 2 generates discrete wavelet transformation of an image signal input from the image input device 1 (step S1601). The region designation unit 204 determines an ROI by the aforementioned method on the basis of coefficient values in an LL subband of those generated by the discrete wavelet transformation, and generates mask information indicating the ROI (step S1602).
All coefficients obtained in step S1601 are quantized by the quantizer 203 to generate quantization indices (step S1603). The entropy encoder 202 computes a shift value B of quantization indices by the method mentioned above (step S1604). The entropy encoder 202 specifies quantization indices within the ROI of those generated in step S1603 using the mask information generated in step S1602, and shifts the specified quantization indices within the ROI by the shift value B obtained in step S1604 (step S1605).
The quantization indices of each bit plane obtained as a result of the aforementioned process undergo binary arithmetic coding in units of code blocks (step S1606). A bitstream shown in
The flow chart of the image decoding process in the decoding device shown in
The file input device 5 separates the input file into a code sequence contained therein, and the information appended by the file output device 3 (step S100). The decoding device 6 reads out only codes corresponding to the LL subband from the code sequence, decodes and dequantizes these codes to restore coefficients of the LL subband, and stores the coefficients in a memory (not shown) (step S101).
The decoding device 6 then reads out a code sequence corresponding to one subband from the subsequent code sequence (step S102). This subband is one of those containing high-pass coefficients other than LL.
The decoding device 6 sets and stores a lower-limit bit plane, which is used to decode discrete wavelet transform coefficients belonging to a non-ROI region, on the basis of the coefficients of the LL subband stored in the memory (not shown) (step S103). In the method of setting the lower-limit bit plane position, for example, the average value of the coefficient values in the LL subband is used.
The entropy decoder 602 decodes all bit planes of quantization indices which are contained in the code sequence of the subband read in step S102 and belong to the ROI (step S104). That is, the decoder 602 reclaims quantization indices contained in the ROI from the code sequence of the subband read in step S102. In this way, portions indicated by the ROI in
Furthermore, the entropy decoder 602 decodes codes corresponding to one bit plane of quantization indices that belong to the non-ROI region so as to reconstruct that bit plane (step S105).
It is checked if the bit plane reconstructed in step S105 is the lower-limit bit plane determined in step S103 (step S106). If the reconstructed bit plane is the lower-limit bit plane, the flow advances to step S107; otherwise, the flow returns to step S105 to proceed with a decoding process of the next lower bit plane. That is, as shown in
Upon checking in step S106 if the bit plane reconstructed in step S105 is the lower-limit bit plane, the number that specifies the lower-limit bit plane (e.g., the number indicating the order of bit plane from the MSB) is stored in step S103. Then, a variable, which has been reset to zero before the process according to this flow chart, is incremented by 1 every time the aforementioned decoding process is done in step S105, and the checking process in step S106 is attained by comparing this variable and the number stored in step S103.
Then, quantization indices, the values of which are larger than 2B (those within the ROI), are shifted down by B bits, and after the shift process, the dequantizer 604 dequantizes all the quantization indices (step S107). At this time, dequantization is done while setting zero in non-decoded bits in quantization indices that belong to the non-ROI region.
It is then checked if a decoding process for all subbands is complete (step S108). If subbands to be processed still remain, the flow returns to step S102 to execute the processes in step S102 and the subsequent steps for an unprocessed subband.
The inverse discrete wavelet transformer 603 computes the inverse discrete wavelet transforms of the transform coefficients obtained by dequantization to reclaim an image, and outputs it to the image display device 7 (step S109). As a result, the original image is reconstructed, and is displayed on the image display device 7.
In this way, all quantization indices of the ROI set upon encoding are perfectly restored, but lower bits of the non-ROI region are discarded. Hence, discrete wavelet transform coefficient values corresponding to fine variations are removed. Therefore, when a sensed image contains noise, an image from which fine noise components are removed can be obtained by appropriately selecting bit planes to be restored upon decoding.
In this embodiment, the ROI is set based on the coefficient values of the LL subband upon encoding. In addition, when a low-luminance region with many quantization noise components is determined from coefficient values and is set to be a non-ROI region, a higher noise removal effect can be obtained.
In this embodiment, the coefficient values of the LL subband are referred to upon determining the lower-limit bit plane of decoding. Alternatively, the X-ray dosage upon image sensing may be contained as a parameter in the code sequence, and the lower-limit bit plane of decoding may be determined based on that parameter.
[Fourth Embodiment]
An image processing system according to the fourth embodiment of the present invention will be explained below.
In the third embodiment, the shift value B is determined for quantization indices of the ROI upon decoding an image, so as to completely separate that bit plane from quantization indices of the non-ROI region. Alternatively, the bit shift value B may be determined by another method. Since the arrangement and functions of the overall system are substantially the same as those in the third embodiment, differences from the third embodiment will be explained in this embodiment.
B=ceil(log2(ε)) (20)
is selected. Furthermore, the lower-limit bit plane is the one B bits upper than the least significant bit plane (LSB). In this way, the shift value B and the lower limit position of the bit planes to be decoded can be simultaneously adjusted in correspondence with the noise level. Note that the noise level E can be calculated by a known method.
After the quantization indices are shifted based on the shift value B given by equation (20), encoding is done in the same manner as in the third embodiment.
The flow of the operation of the decoding device 6 in this embodiment will be described below with reference to the flow chart in
The decoding device 6 reads out a code sequence corresponding to one subband from the subsequent code sequence (step S201). Then, the lower-limit bit plane of decoding in the entropy decoding process is set to be the bit shift value B contained in the code sequence (step S202).
Codes corresponding to one bit plane of quantization are decoded to restore that bit plane (step S203). It is checked if the bit plane restored in step S203 is the lower-limit bit plane determined in the previous step (step S204). If the restored bit plane is the lower-limit bit plane, the flow advances to step S205; otherwise, the flow returns to step S203 to proceed with the process for the next lower bit plane.
The quantization indices that belong to the ROI are shifted down by B bits with reference to the mask input from the mask generator 605, and dequantization is executed (step S205). At this time, all bits contained in non-decoded bit planes in quantization indices that belong to the non-ROI region (bits contained in bit planes contained in the non-ROI region) are set at zero.
It is then checked if a process for all the subbands is complete (step S206). If subbands to be processed still remain, the flow returns to step S201 to process the next subband. The inverse discrete wavelet transforms of the obtained transform coefficients are computed to reconstruct an image, which is outputted to the image display device 7.
In this embodiment, the shift value B is computed in correspondence with a noise level, and that shift value B directly determines the lower-limit bit plane. That is, since the bit plane of the ROI need only be shifted up to the lower-limit bit plane, a noise removal effect can be obtained by fewer processing steps.
In the third and fourth embodiments described above, the lower-limit bit plane is determined using the values of the LL subband. However, upon determining the lower-limit bit plane, a predetermined region may be determined in a predetermined high-frequency subband, a noise level is estimated based on variations of coefficient values in that region, and the lower-limit bit plane may be determined based on that level in place of the coefficient values of the LL subband.
Upon determining the shift value B upon encoding in this embodiment, the X-ray dosage upon image sensing may be directly used. Furthermore, data that represents the shape of the ROI may be contained in the code sequence.
[Fifth Embodiment]
An image processing system according to the fifth embodiment of the present invention will be described below.
In the third embodiment, the ROI is set, and only noise components of the non-ROI region are removed. However, in this embodiment, the number of bit planes to be encoded in an image encoding process is controlled to implement a noise removal process without setting any ROI.
Since the arrangement of the image processing system in this embodiment is substantially the same as that of the image processing system of the third embodiment except for the internal arrangement of the encoding device 2, the internal arrangement and functions of the encoding device 2 will be explained below, and a description of other arrangements will be omitted.
In the encoding device 2 according to this embodiment, a lower-bit plane designation unit 206 is provided in place of the region designation unit 204, and a code sequence forming unit 205 is added, unlike in the arrangement of the encoding device 2 of the third embodiment shown in
Referring to
Since the subband structure generated by discrete wavelet transformation according to this embodiment is obtained by recursively segmenting a low-frequency range with a resolution=½, which is obtained by decomposition of one level, a coordinate value indicating the position of a coefficient corresponding to Q can be multiplied by the number of levels upon decomposing ½ so as to obtain P from Q. The lower-limit bit plane designation unit 206 obtains the average value of coefficient values C(i,j) that belong to P, and computes a lower-limit bit plane BL of a code block B by:
BL=0; {ΣC(i,j)}/N≧Th (21)
BL=m; {ΣC(i,j)}/N<Th (22)
where C(i,j) is a coefficient value at the position (i,j) in a local coordinate system in P, and m and Th are respectively a predetermined lower-limit bit plane and threshold value. Also, Σ is an operator of a sum total arithmetic operation for i and j.
The lower-limit bit plane is computed for each code block, is outputted to the entropy encoder 202, and is stored in a memory (not shown). Note that lower-limit bit planes are set for high-frequency subbands except for LL, and all bit planes are to be encoded for LL. A decomposition level to which subbands to be encoded belong is determined in advance based on the characteristics of noise and the like. For example, when subbands belonging to level 1 are to be encoded, lower-limit bit planes are set for three subbands HL1, LH1, and HH1. That is, lower-limit bit planes are set for high-frequency subbands in a region where transform coefficients of a low-frequency range in an image are small.
After the lower-limit bit planes are set, bit planes of quantization indices generated upon quantizing the transform coefficients are encoded in turn from the MSB until the corresponding lower-limit bit plane is reached.
The code sequence forming unit 205 receives the code sequence generated by the entropy encoder 202, and forms a code sequence by appending predetermined header information and the like to that code sequence so as to output the input code sequence to the file output device 3. That is, the code sequence forming unit 205 performs some of processes of the file output device 3 described in the third embodiment.
The aforementioned processes in the encoding device will be briefly described below using the flow chart in
The discrete wavelet transforms of an image signal are computed to generate transform coefficients (step S2101). One subband other than the LL subband is determined. For example, when an HL1 subband is selected, a corresponding coefficient region in the LL subband is specified in each code block in the HL1 subband (step S2102). The average value of transform coefficients in the coefficient region in the LL subband specified in step S2102 is computed (step S2103).
It is checked if this average value is equal to or larger than Th (step S2104). A lower-limit bit plane is set as described by equation (21) or (22) in accordance with the checking result (step S2105, step S2106).
It is checked if the processes in steps S2102 to S2106 have been executed for all code blocks (step S2107). If the processes have been executed for all code blocks, the flow advances to step S2108; otherwise, the flow returns to step S2102 to execute the aforementioned processes for an unprocessed code block.
The transform coefficients are quantized to generate quantization indices (step S2108), these quantization indices are mapped on bit planes (step S2109), and these bit planes are encoded up to the lower-limit bit plane position obtained for each code block (step S2110, step S2111). Then, the aforementioned code sequence is generated.
The decoding device 6 in this embodiment will be briefly described. The arrangement of this decoding device 6 is the same as that in the third embodiment, and the image decoding process is executed as follows. The entropy decoder 602 executes an entropy decoding process of encoded data of bit planes contained in the code sequence input via the code input unit 601, and the dequantizer 604 dequantizes quantization indices of the bit planes obtained by the decoding process so as to obtain transform coefficients of discrete wavelet transformation. The inverse discrete wavelet transformer 603 executes an inverse discrete wavelet transform process using these transform coefficients to reconstruct an image signal.
With the aforementioned processes, since predetermined bit planes of an image signal corresponding to a code block and the lower-limit bit plane which is set to be a value other than zero upon encoding, are ignored, signal components in the high-frequency range are consequently limited. Therefore, when an image signal contains quantization noise or the like, an image from which such noise is removed is obtained during the encoding process, and the compressed image can be transferred or stored.
Since encoding is aborted for bit planes which contain more noise components, compression efficiency drop, due to noise, can be prevented.
[Sixth Embodiment]
An image processing system according to the sixth embodiment of the present invention will be described below. In the third to fifth embodiments described above, bit planes of each code block are encoded sequentially to form a code sequence. However, in this embodiment, a layer from which bit planes containing noise are removed is encapsulated in the code sequence upon forming the code sequence.
Since the arrangement of the image processing system of this embodiment is substantially the same as that of the image processing system in the third embodiment except for the internal arrangement of the encoding device 2, the internal arrangement and functions of the encoding device 2 will be explained below, and a description of other arrangements will be omitted.
Referring to
The code sequence forming unit 205 temporarily stores codes generated by the entropy encoder 202 in a buffer (not shown), and forms a code sequence which has a code size corresponding to the target compression ratio input from the target compression ratio input unit 207, and maximizes the image quality of an image reconstructed upon decoding.
This state will be explained below with reference to
The layer is formed by combining codes of a plurality of bit planes selected from a plurality of code blocks, as shown in
Therefore, in
Upon forming such code sequence, the code sequence forming unit 205 switches the code block selection method so as not to select code sequences corresponding to bit planes below the lower-limit bit plane in each layer with reference to the lower-limit bit planes in units of code blocks determined by the lower-limit bit plane designation unit 206.
Furthermore, the code sequence forming unit 205 adjusts the code sequence so that its final length satisfies the designated compression ratio. This adjustment can be implemented by cutting a code sequence of a lower layer.
According to the aforementioned method, the code sequence is formed to minimize distortion with respect to the designated compression ratio. But since lower-limit bit planes are set for specific code blocks and components corresponding to noise are not considered in distortion improvement, an image which has an improved image quality as a whole, and can suppress noise can be obtained upon decoding that code sequence.
Note that the target compression ratio input unit 207 may comprise a driver for computing the target compression ratio in addition to a keyboard, mouse, and the like. That is, a driver (not shown) may detect in advance a maximum storage capacity of a storage medium that stores the code sequence, and may input a target compression ratio computed based on the detected maximum storage capacity of the storage medium and the code sequence size to the code sequence forming unit 205.
According to the third to sixth embodiments, upon compressing, decoding, and displaying an image containing noise, noise can be removed without requiring any special noise removal process, and an image with high image quality can be generated.
[Seventh Embodiment]
An image processing system according to the seventh embodiment of the present invention will be described below. Since the arrangement of the image processing system in this embodiment is substantially the same as that of the image processing system of the first embodiment except for execution of quantization and the internal arrangement of the decoding device 6, the internal arrangement and functions of the decoding device 6 will be explained below, and a description of other arrangements will be omitted.
The code sequence forming unit 205 forms a code sequence by appending predetermined header information and the like so as to output input codes to the file output device 3.
Codes of each bit plane of the LL subband are arranged in units of code blocks, as shown in the second lowermost column of
In this embodiment, codes of each subband are formed in units of bit planes which are arranged in the order from the MSB to the LSB, but need not always be formed in units of bit planes. For example, a layer which combines encoded data corresponding to a predetermined number of bit planes from the most significant bit plane may be used as a unit.
In this case, PH contains information indicating the number of bit planes corresponding to the codes of the contained code blocks in addition to information indicating whether the code blocks are contained.
Upon adopting JPEG2000, each bit plane is encoded while being segmented into a plurality of passes. Encoded data contained in each layer may be arranged in units of passes. In this case, PH contains information indicating the number of passes of codes of the code blocks contained.
An image is input (step S3501), undergoes discrete wavelet transformation (step S3502), and is then quantized (step S3503). Each subband is segmented into code blocks (step S3504), and quantization indices are decomposed into bit planes in units of code blocks (step S3505). The code blocks contained in all the subbands (step S3507) undergo binary arithmetic coding (step S3506), and the aforementioned header information is appended to the binary arithmetic coding result (code sequence) to generate an image file (step S3508). The image file is then output (step S3509).
The decoding process in the image processing system according to this embodiment will be described below. An image file stored by the storage/transfer device 4 is read by the file input device 5, and is separated into appended data appended by the file output device 3, and the code sequence generated by the encoding device 2. The code sequence is outputted to the decoding device 6 for a decoding process.
The code input unit 601 receives a code sequence, analyzes header information contained in that code sequence to extract parameters required for the subsequent processes, and sends the extracted parameters to the controller 607. Bitstreams contained in the code sequence are output to the entropy decoder 602.
The entropy decoder 602 decodes and outputs the bitstreams in units of bit planes.
The entropy decoder 602 decodes and outputs the bitstreams in units of bit planes as in the first embodiment described using
The dequantizer 604 restores discrete wavelet transform coefficients c′ from the input quantization indices in the same manner as in the third embodiment described using equations (18) and (19). The transform coefficients c′ are output to the image quality improvement processor 606.
The image quality improvement processor 606 selects a pixel which is to undergo an image quality improvement process from those belonging to subbands other than an LL subband as a low-frequency subband on the basis of predetermined conditions, and performs a comparison process of a transform coefficient c′ of the selected pixel with a predetermined threshold value T by:
cn=0; abs(c′)≦T (23)
cn=c′; abs(c′)>T (24)
Then, the processor 606 outputs the comparison result to the inverse discrete wavelet transformer 603.
The processed discrete wavelet transform coefficients cn are output to the inverse discrete wavelet transformer 603. Note that the threshold value T varies depending on the subband to which a coefficient to be processed belongs.
The inverse discrete wavelet transformer 603 computes the two-dimensional inverse discrete wavelet transforms of the input transform coefficients to reconstruct an image signal. The two-dimensional inverse discrete wavelet transform process is controlled by the controller 607.
The overall operation of the decoding device 6 will be explained. The controller 607 controls the code input unit 601 to input encoded data corresponding to a predetermined number of subbands of those contained in the code sequence shown in
The read encoded data corresponding to the LL subband are output to the entropy decoder 602 to undergo a decoding process, thus restoring quantization indices. Furthermore, the restored quantization indices are dequantized by the dequantizer 604 to restore transform coefficients that belong to the LL subband.
The restored LL subband coefficients are output to the image quality improvement processor 606. In this case, the controller 607 controls the image quality improvement processor 606 to directly output the input coefficients without any process. The LL subband coefficients output from the image quality improvement processor 606 in this way undergo inverse transformation in the inverse discrete wavelet transformer 603. At this time, since subbands other than LL are not decoded yet, all transform coefficients are processed as zero.
That is, when transformation of two levels is done upon encoding, an image signal is generated by making computations under the assumption that zero coefficients are contained in all subbands HL2, LH2, HH2, HL1, LH1, and HH1, as shown in
The controller 607 controls the code input unit 601 to read the subsequent code sequence. In this embodiment, the subsequent code sequence contains encoded data corresponding to all subbands other than LL in
The image quality improvement processor 606 selects pixels which are to undergo an image quality improvement process on the basis of the pixel values of the reference image stored in the reference image memory 608. That is, a region of pixels to be processed on the reference image is detected, and when M represents the average value of the pixel values (more specifically, luminance values) in that region, a process described by equation (23) or (24) is done as long as:
M<Ti (25)
where Ti is a value (threshold value) determined by an X-ray image sensing situation. In this manner, an image quality improvement process is executed for high-frequency subband pixels which correspond to a given region in the reference image in which the average luminance value is less than Ti.
M=(a+b+c+d)/4 (26)
When this value M corresponds to a region less than Ti, the absolute value of that coefficient C is compared with T. If the absolute value of the coefficient C is smaller than T, the coefficient C is determined to be noise, and is converted into zero. The coefficients processed in this way are output to the inverse discrete wavelet transformer 603.
The inverse discrete wavelet transformer 603 computes the inverse discrete wavelet transforms of the sequentially input coefficients of the subbands other than LL and those of the previously input LL subband in combination to generate an image signal (image), and outputs the image to the image display device 7, thus displaying an image.
An image file stored by the storage/transfer device 4 is read out (step S3601), and parameters and code sequence are extracted from the file (step S3602). Transform coefficients contained in subbands other than the LL subband are set at zero, and the aforementioned reference image is generated using the decoding process mentioned above (step S3603).
The subbands other than the LL subband undergo entropy decoding and dequantization to obtain transform coefficients (step S3604). A region on the reference image corresponding to transform coefficients in a given subband other than the LL subband is obtained, and the average value M in this region is computed (step S3605). A threshold value process described by equations (23) and (24) is done (step S3607) in accordance with a discrimination process described by inequality (25) (step S3606). The processes in steps S3605 to S3607 are repeated for transform coefficients in all subbands other than the LL subband (step S3608). Then, inverse discrete wavelet transformation is done using the coefficients of the LL subband together to generate an image signal (step S3609), and the image signal is displayed (step S3610).
In an image obtained by an X-ray image sensing device, a low luminance level portion of the image has a low X-ray transmittance, resulting in many noise components and poor S/N ratio. Therefore, in this embodiment, upon decoding the code sequence obtained by compression-encoding an image, only the lowest-frequency subband in the code sequence is decoded to generate the reference image. Since this reference image represents an average luminance level of an original image, many quantization noise components are contained in a low luminance level region in the reference image. When high-frequency coefficients corresponding to such region undergo a threshold value process, an effective noise removal process is implemented, and an image with the improved image quality can be obtained.
In this embodiment, high-frequency subband coefficients undergo a threshold value process on the basis of formulas (23), (24), and (25). However, the present invention is not limited to such specific process. For example, the image quality improvement processor 606 may convert the input coefficient c′ by:
cn=f(c′) (27)
where f(x) is a function having predetermined input/output characteristics. For example, when the function has the input/output relationship shown in
When predetermined high-frequency subband coefficients undergo conversion described by equation (27), noise components with small values are suppressed, and signal components having sufficiently large values can be emphasized, thus improving the image quality after inverse transformation.
In this embodiment, only the LL subband is used upon generating the reference image. However, the present invention is not limited to this. More specifically, a predetermined number of subbands with respect to encoded data of subbands contained in the code sequence may be used.
In this embodiment, a reference range with respect to the reference image is limited to a region of coefficients to be processed on an original image. Alternatively, a broader range may be set as a reference region. For example, in this embodiment, a 2×2 pixel region (a to d) is referred to for the coefficient C in
In this case, the user may interactively determine the reference range of the reference image. For example, the reference image may be displayed in practice, and the user may designate a portion that requires higher image quality on the displayed image, thereby determining the reference range upon processing coefficients corresponding to the designated portion. In this case, when a small reference range is set for the portion that requires higher image quality, and a broader reference range is set for other portions, an adaptive image quality improvement process can be implemented.
[Other Embodiments]
Note that the present invention is not limited to a system comprising a plurality of devices, but may be applied to a single apparatus constituted by parts having functions of those devices.
The scope of the present invention includes not only each of the first to seventh embodiments, but also various combinations of these embodiments.
Furthermore, the present invention is not limited to the system and method alone for implementing the aforementioned embodiments, but the scope of the present invention includes a case wherein the above embodiments are achieved by supplying a program code of software that can implement the functions of the above-mentioned embodiments to a computer (or a CPU or MPU) in a system or apparatus, and making the computer control various devices in the system or apparatus.
In this case, the program code itself read out from the storage medium implements the functions of the above-mentioned embodiments, and the program code itself, and means for supplying the program code to the computer (i.e., a storage medium which stores the program code) are included in the scope of the present invention.
As the storage medium for storing such program code, for example, a floppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM, magnetic tape, nonvolatile memory card, ROM, and the like may be used.
The program code is included in the scope of the embodiments not only when the functions of the above embodiments are implemented by controlling various devices according to the supplied program code alone but also when the functions of the embodiments are implemented by collaboration of the program code and an OS (operating system) or another application software running on the computer.
Furthermore, the scope of the present invention includes a case wherein the functions of the above-mentioned embodiments are implemented by some or all of actual processing operations executed by a CPU or the like arranged in a function extension board or a function extension unit, which is inserted in or connected to the computer, after the supplied program code is written in a memory of the extension board or unit.
When the present invention is applied to the aforementioned storage medium, that storage medium stores program codes corresponding to the flow charts described above. To restate, according to the present invention, noise contained in an original image can be removed upon compressing/decoding an image in units of bit planes.
As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2000-115519 | Apr 2000 | JP | national |
2000-325590 | Oct 2000 | JP | national |
2000-329422 | Oct 2000 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5402248 | Sato et al. | Mar 1995 | A |
5812146 | Sato et al. | Sep 1998 | A |
5861892 | Sato et al. | Jan 1999 | A |
6215421 | Kondo et al. | Apr 2001 | B1 |
6396958 | Wilson | May 2002 | B1 |
6512853 | Kennedy et al. | Jan 2003 | B2 |
6580834 | Li et al. | Jun 2003 | B2 |
6614939 | Yamauchi | Sep 2003 | B1 |
Number | Date | Country |
---|---|---|
9212623 | Aug 1997 | JP |
Number | Date | Country | |
---|---|---|---|
20020003905 A1 | Jan 2002 | US |