Transform coding of arbitrarily shaped image segments

Abstract: A transformation coding apparatus for a block including a boundary of an object having a certain shape is provided, which includes a transformer (31) for transforming an input block and outputting transformation coefficients, a transformation coefficient selector (32) for selecting and outputting transformation coefficients using the transformation coefficients and the input block, an inverse transformer (33) for inversely transforming the transformation coefficients selected by the transformation coefficient select means and outputting a restored block, an encoder (34) for variable-length-coding the select coefficients selected by the transformation coefficient select means (32) and a repetition controller (32) for calculating a mean square error of the input block and the restored block, comparing the calculated result with a predetermined reference value and determining whether or not coefficient selection is continued. The transformation coding apparatus for a block including a boundary of an object having a certain shape selects a select coefficient which maximizes a ratio of the mean square error ΔMSE(k) which is decreased according to the added select coefficient (k-th coefficient), with respect to the amount ΔMSE(k) of variation of the bit quantity which is increased according to the added coefficient (k-th coefficient) when selecting a transformation coefficient, to thereby enhance an original quality of picture and reduce the amount of the necessary bits.

Description: The present invention relates to transformation coding apparatus for a block including a boundary of an object having a certain shape and more particularly, but not necessarily exclusively, to a transformation coding apparatus for a block including a boundary of an object having a certain shape which effectively accomplishes transformation coding by selecting a transformation coefficient considering a restoring quality of picture of an area including a boundary of an object having a certain shape. Generally, transformation coding is performed to reduce an amount of data by removing redundancy of a video signal. In transformation coding, a picture frame is divided into blocks each having a size of NxN data, and transformation coding is performed for each block, to thereby convert a video signal in a spatial domain into a signal in a frequency domain. According to such a transformation coding, the energy of a signal (the value of a transformation coefficient) is chiefly concentrated in a lower frequency band. For the above transformation coding, a discrete cosine transformation is most widely used. The transformation coding also proposes a coding technology for further compressing an amount of data by quantizing the transformation coefficients and variable-length-coding the quantized data. Since the transformation coding technology performs transformation coding with respect to an NxN sized rectangular block, it is inefficient to perform a general transformation coding when a boundary of an object of a certain shape is included in a particular block. Thus, when a boundary of an object of a certain shape is included in a particular block, a transformation coding method for separately transforming the area of the object having a certain shape and the other background area has been proposed. Figure 1 is a block diagram of a general encoding apparatus for encoding an input video signal. As shown in the drawing, the general encoding apparatus includes a video divider 11. The video divider 11 divides the input video into blocks each having a size of NxN data. The NxN blocks are applied to a block controller 12 and a first switch 13. The block controller 12 judges whether each input block of the NxN data includes a boundary of an object of a certain shape, and controls the first switch 13 according to the judgement result. The first switch 13 applies the NxN sized blocks input from the video divider 11 to a first encoder 14 or a second encoder 15 under the control of the block controller 12. The control operation of the block controller 12 will be described in more detail below. If the input block does not include a boundary of an object having a certain shape according to the judgement of the block controller 12, the block controller 12 controls the first switch 13 to apply the input block to the first encoder 14. On the contrary, if the input block includes a boundary of an object having a certain shape according to the judgement of the block controller 12, the block controller 12 controls the first switch 13 to apply the input block to the second encoder 15. The first encoder 14 encodes a video signal block according to a general transformation coding method. The second encoder 15 performs transformation coding for a block including a boundary of an object of a certain shape, which will be described later. A second switch 16 is selectively connected to the outputs of the first encoder 14 and the second encoder 15. The second switch 16 also operates under the control of the block controller 12. In more detail, if the input block does not include a boundary of an object having a certain shape according to the judgement of the block controller 12, the block controller 12 controls the second switch 16 to select the output of the first encoder 14. On the contrary, if the input block includes a boundary of an object having a certain shape according to the judgement of the block controller 12, the block controller 12 controls the second switch 16 to select the output of the second encoder 15. Thus, the second switch 16 outputs the transformation coded data with respect to the input blocks. Figure 2A is a detailed block diagram of the second encoder of the Figure 1 apparatus, and Figure 2B is a view for explaining an area requiring transformation coefficient selection in the second encoder of Figure 2A. That is, Figure 2A is a transformation coding apparatus for a block including a boundary of an object having a certain shape according to the prior art. As described above, the second encoder 15 performs transformation coding for a block including a boundary of an object having a certain shape. A transformer 21 discrete-cosine-transforms (hereinafter abbreviated as DCT-transforms) input NxN blocks (Bi) including a boundary of an object having a certain shape input from the video divider 11, to produce NxN transformation coefficients F1 which are input to a coefficient selector 22. The coefficient selector 22 selects M particular coefficients from the input NxN transformation coefficients F1 and sets the other transformation coefficients as zeros. The select coefficients Fs selected by the coefficient selector 22 are input to an inverse transformer 23. The inverse transformer 23 inversely transforms the input select coefficients Fs to restore a block, which is called a restored block Br. The restored block Br is input to a repetition controller 25. The repetition controller 25 calculates a mean square error of the input block Bi and the restored Br and compares the mean square error with a predetermined reference value. When the repetition controller 25 calculates the mean square error, it calculates the mean square error only with respect to the area including a boundary of an object having a certain shape. As shown in Figure 2A, when the area including a boundary of an object having a certain shape is indicated as a character "S", a mean square error is calculated only with respect to pixels within the "S" area. If a mean square error calculated by the repetition controller 25 is larger than a predetermined reference value, the repetition controller 25 replaces pixel data of an area "S" including a boundary of an object having a certain shape in the restored block Br by pixel data in a corresponding area of the input block Bi, to form a reconstructed block Br', which is input to the transformer 21. The transformer 21 DCT-transforms the input reconstructed blocks (Br') to produce NxN transformation coefficients which are input to the coefficient selector 22. The coefficient selector 22 selects M particular coefficients. The select coefficients selected by the coefficient selector 22 are inversely transformed in the inverse transformer 23 to produce a restored block Br. The repetition controller 25 calculates a mean square error of the input block Bi and the restored Br. The above processes are repeated until the mean square error is smaller than a predetermined reference value. When the mean square error calculated by the repetition controller 25 is smaller than a predetermined reference value, the coefficient select by the coefficient selector is completed. If the coefficient selection is completed, the coefficient selector 22 outputs the selected coefficients to an encoder 24, which encodes the selected coefficient and finally outputs the encoded data. In the above general apparatus, the coefficient selector 22 selects M coefficients in sequence of a larger value of energy among the NxN transformation coefficients, which minimizes an error in the whole area of the NxN sized block. However, since a meaningful portion in the NxN sized block is an area including a boundary of an object having a certain shape, such a transformation coefficient selection method is not efficient. EP-A-0 649 258 discloses the pre-characterising features of claim 1 appended hereto. It is an aim of preferred embodiments of the present invention to provide a transformation coding apparatus for a block including a boundary of an object having a certain shape which performs transformation considering a restoring quality of picture with respect to an area including a boundary of an object having a certain shape in the block not a restoring quality of picture with respect to the whole blocks when selecting coefficients. According to the present invention, there is provided a transformation coding apparatus for a block including a boundary of an object having a certain shape, the transformation coding apparatus comprising: transformer means for transforming untransformed data of an input block and outputting transformation coefficients; inverse transformer means for inversely transforming transformation coefficients and outputting a restored block; encoding means for variable-length-coding coefficients; and a repetition controller for calculating a mean square error of the untransformed data of the input block and the restored block, and comparing the calculated result with a predetermined reference value; characterised in that the transformation coding apparatus further comprises: transformation coefficient select means for selecting and outputting transformation coefficients using the transformation coefficients and the untransformed data of the input block; the transformation coefficients inversely transformed by the inverse transformer means being those selected by the transformation coefficient select means; the coefficients for variable-length-coding by the encoding means being the select coefficients selected by the transformation coefficient select means; and the repetition controller determining whether or not coefficient selection is continued; said transformation coefficient select means further comprising: a block selector for selecting one of the input block and the error block and outputting a selected block; a pattern former for receiving transformation coefficients of the untransformed data of the input block from said transformer means and forming and outputting pattern blocks with respect to the individual transformation coefficients, and for storing the pattern blocks and outputting pattern blocks corresponding to an input select index; a comparator for selecting a pattern block which best-matches a block selected in the block selector among the pattern blocks and outputting the select index; a coefficient restoring portion for restoring the transformation coefficient corresponding to the select index selected by the comparator; an error calculator for calculating an error between the block selected by the block selector and the pattern block corresponding to the select index input from the pattern former, and producing an error block to then output the produced error block to the block selector; and a completion controller for completing selection of the pattern block in the comparator according to the control signal input from the repetition controller. Suitably, said pattern former comprises: an inverse transformer for performing inverse transformation with respect to the input NxN transformation coefficients, forming the NxN pattern blocks, and outputting the pattern blocks to the comparator; a memory for storing the pattern blocks output from the inverse transformer; and a controller for outputting pattern blocks corresponding to the select index among the pattern blocks which are stored in the memory according to the select index input from the comparator, to the error calculator. Suitably, said comparator comprises: a mean square error calculator for calculating a mean square error of the pattern block with respect to the respective coefficients of the block selected by the block selector and the NxN pattern blocks input from the pattern former; a bit quantity variation calculator for calculating an amount of variation of the bit quantity generated by additionally adding one coefficient to the bit quantity of the selected coefficients; and a selector for selecting a pattern block of a coefficient which maximizes a ratio of a mean square error which is calculated by the mean square error calculator with respect to the amount of variation of the bit quantity which is calculated by the bit quantity variation calculator for the NxN pattern block. Suitably, said block selector selects and outputs an input block in the process of selecting a first transformation coefficient, and selects and outputs an error block between the pattern block with respect to the transformation coefficient which has been selected in the previous process and the input block in the process of selecting the following transformation coefficient. Suitably, said selector selects a pattern block of a coefficient which maximizes a ratio of a mean square error which is calculated by said mean square error calculator with respect to the amount of variation of the bit quantity which is calculated by said bit quantity variation calculator accordingly to output the select index. A preferred embodiment of the present invention is described, by way of example only, with reference to the drawings; wherein: Figure 1 is a block diagram of a general encoding apparatus for encoding an input video signal; Figure 2A is a block diagram of a second encoder in the Figure 1 apparatus, which is a transformation coding apparatus for a block including a boundary of an object having a certain shape according to prior art; Figure 2B is a view for explaining an area requiring transformation coefficient selection in the second encoder of Figure 2A; Figure 3 is a block diagram of a transformation coding apparatus for a block including a boundary of an object having a certain shape according to a preferred embodiment of the present invention; Figure 4 is a detailed block diagram of the transformation coefficient selector of Figure 3; Figure 5 is a detailed block diagram of the pattern former of Figure 4; and Figure 6 is a detailed block diagram of the comparator of Figure 4. A preferred embodiment of the present invention will be described below in more detail with reference to the accompanying drawings. As shown in Figure 3, a transformation coding apparatus for a block including a boundary of an object having a certain shape according to the present invention, includes a transformer 31 for DCT-transforming an NxN sized input block Bi and outputting NxN transformation coefficients F1, a transformation coefficient selector 32 for selecting and outputting transformation coefficients using the transformation coefficients F1 and the input block Bi, an inverse transformer 33 for inversely transforming the selected transformation coefficients Fs and outputting a restored block, an encoder 34 for variable-length-coding the selected coefficients Fs, and a repetition controller 35 for calculating a mean square error of the input block Bi and the restored block Br, comparing the calculated result with a predetermined reference value and outputting a control signal for completing coefficient selection in the transformation coefficient selector 32, if the calculated mean square error is smaller than the reference value. Figure 4 is a detailed block diagram of the transformation coefficient selector of Figure 3. As shown in Figure 4, the transformation coefficient selector 32 includes: a block selector 41 for receiving the input block Bi and selecting one of the input block Bi and the error block and outputting a selected block Bd; a pattern former 42 for receiving transformation coefficients of the input block Bi from the transformer 31 and forming and outputting pattern blocks Bp(n) with respect to the individual transformation coefficients, and for storing the pattern blocks and outputting pattern blocks Bp(k) corresponding to an input select index; a comparator 43 for selecting a pattern block which best-matches a block Bd selected in the block selector 41 among the pattern blocks Bp(n) and outputting the select index; a coefficient restoring portion 44 for restoring the transformation coefficient corresponding to the select index selected by the comparator 43; an error calculator 45 for calculating an error between the block Bd selected by the block selector 41 and the pattern block Bp(k) corresponding to the select index input from the pattern former 42, and producing an error block to then output the produced error block to the block selector 41; and a completion controller 46 for completing selection of the pattern block in the comparator 43 according to the control signal input from the repetition controller 35. Figure 5 is a detailed block diagram of the pattern former of Figure 4. As shown in Figure 5, the pattern former 42 of Figure 4 includes: an inverse transformer 51 for performing inverse transformation with respect to the input NxN transformation coefficients, forming the NxN pattern blocks Bp(n), and outputting the pattern blocks Bp(n) to the comparator 43; a memory 52 for storing the pattern blocks Bp(n) output from the inverse transformer 51; and a controller 53 for outputting pattern blocks Bp(k) corresponding to the select index among the pattern blocks Bp(n) which are stored in the memory 52 according to the select index input from the comparator 43, to the error calculator 45. Figure 6 is a detailed block diagram of the comparator of Figure 4. As shown in Figure 6, the comparator of Figure 4 includes: a mean square error calculator 61 for calculating a mean square error of the pattern block with respect to the respective coefficients of the block Bd selected by the block selector 41 and the NxN pattern blocks Bp(n) input from the pattern former 42; a bit quantity variation calculator 62 for calculating an amount of variation of the bit quantity generated by additionally adding one coefficient to the bit quantity of the selected coefficients; and a selector 63 for selecting a pattern block of a coefficient which maximizes a ratio of a mean square error which is calculated by the mean square error calculator 61 with respect to the amount of variation of the bit quantity which is calculated by the bit quantity variation calculator 62 for the NxN pattern block. The operation of the transformation coding apparatus for a block including a boundary of an object having a certain shape according to this preferred embodiment of the present invention constructed as above will be described in more detail below. The transformer 31 shown in Figure 3, DCT-transforms the NxN sized block Bi input from the video divider 11 in the general encoding apparatus shown in Figure 1 to produce the NxN transformation coefficients F1. The transformation coefficients F1 are input to the transformation coefficient selector 32. The transformation coefficient selector 32 uses the input NxN transformation coefficients and the input block Bi, and then selects and outputs the transformation coefficient Fs among the NxN transformation coefficients. The procedure of selecting a predetermined number of the transformation coefficients in the transformation coefficient selector 32 will be described with reference to a detailed block diagram of the transformation coefficient selector 32 shown in Figure 4. The block selector 41 selects and outputs an input block Bi input from the video divider 11 in the process of selecting a first transformation coefficient, and selects and outputs an error block between the pattern block Bp(k) with respect to the transformation coefficient which has been selected in the previous process and the input block Bi in the process of selecting the following transformation coefficient. The pattern former 42 forms, outputs and stores pattern blocks Bp(n) with respect to the individual NxN transformation coefficients input from the transformer 31. Also, if the select index k is input, the pattern blocks Bp(k) corresponding to an input select index k among the stored pattern blocks Bp(n) are output. The operation of the pattern former 42 will be described with reference to a detailed block diagram of the pattern former shown in Figure 5. The inverse transformer 51 performs inverse transformation with respect to each of the input NxN transformation coefficients input from the transformer 31, and forms the NxN pattern blocks Bp(n) to output the same. The pattern blocks Bp(n) are output to the comparator 43 and are also stored in the memory 52 of the pattern former 42. The memory 52 stores the pattern blocks Bp(n) output from the inverse transformer 51. The controller 53 receives the select index k and outputs pattern blocks Bp(k) corresponding to the select index among the pattern blocks Bp(n) which are stored in the memory 52 according to the select index input from the comparator 43, to the error calculator 45. The comparator 43 selects a pattern block which best-matches a block Bd selected in the block selector 41 among the pattern blocks Bp(n) input from the pattern former 42 and outputs the select index k. The selection operation of the pattern block in the comparator 43 will be described with reference to a detailed block diagram of the comparator 31 shown in Figure 6. The mean square error calculator 61 calculates a mean square error of the pattern block Bd input from the block selector 41 and the pattern blocks Bp(n) input from the pattern former 42, with respect to all the pattern blocks which have not been selected until then, and outputs the results as ÄMSE(n) with respect to each pattern block. The bit quantity variation calculator 62 calculates and stores the bit quantity of the coefficients which have been selected until then, and calculates an amount of variation of the bit quantity generated according to any additional coefficient to output the calculated result as Äbit(n). The selector 63 receives the mean square error ÄMSE(n) and the amount of variation of the bit quantity Äbit(n) and selects a pattern block of a coefficient which maximizes a ratio AMSE(n)/Abit(n) of the mean square error with respect to the amount of variation of the bit quantity, to thereby output the index k as a select index. That is, the selector 63 outputs the select index k which maximizes a ratio of the mean square error ÄMSE(k) which is decreased according to the added k-th coefficient, with respect to the amount Äbit(k) of variation of the bit quantity which is increased according to the added k-th coefficient among the NxN coefficients. The coefficient restoring portion 44 receives the select index k selected by the comparator 43 and restores and outputs the transformation coefficient corresponding to the select index k. The output transformation coefficient is a select index output from the transformation coefficient selector 32. The error calculator 45 calculates an error between the block Bd selected by the block selector 41 and the pattern block Bp(k) corresponding to the select index input from the pattern former 42, and produces an error block to then output the produced error block to the block selector 41. The completion controller 46 completes selection of the pattern block by the comparator 43 according to the control signal input from the repetition controller 35. That is, the completion controller 46 completes the selection of the transformation coefficient by the transformation coefficient selector 32 if the mean square error between the restored block with respect to the selected transformation coefficients and the input block is smaller than the predetermined reference value. Thus far, the operation of the transformation coefficient selector 32 has been described. Returning to Figure 3, the inverse transformer 33 inversely transforms the transformation coefficients Fs selected by the transformation coefficient selector 32, and then produces the restored block Br. The encoder 34 variable-length-codes the transformation coefficients Fs selected by the transformation coefficient selector 32, and then outputs the encoded data. The repetition controller 35 calculates a mean square error between the transformation coefficient selector 32 and the restored block Br and then allows the transformation coefficient selector 32 to complete the selection of the transformation coefficient if the calculated mean square error is smaller than the reference value in the result of comparison of the latter with the former. As described above, the transformation coding apparatus for a block including a boundary of an object having a certain shape according to the present invention selects a select coefficient which maximizes a ratio of the mean square error ÄMSE(k) which is decreased according to the added select coefficient (k-th coefficient), with respect to the amount ÄMSE(k) of variation of the bit quantity which is increased according to the added coefficient (k-th coefficient) when selecting a transformation coefficient, to thereby enhance an original quality of picture and reduce the amount of the necessary bits. While only certain embodiments of the invention have been specifically described herein, it will be apparent that numerous modifications may be made thereto without departing from the scope of the invention.

Claims: A transformation coding apparatus for a block including a boundary of an object having a certain shape, the transformation coding apparatus comprising: transformer means (31) for transforming untransformed data of an input block and outputting transformation coefficients; inverse transformer means (33) for inversely transforming transformation coefficients and outputting a restored block; encoding means (34) for variable-length-coding coefficients; and a repetition controller (35) for calculating a mean square error of the untransformed data of the input block and the restored block, and comparing the calculated result with a predetermined reference value; characterised in that the transformation coding apparatus further comprises: transformation coefficient select means (32) for selecting and outputting transformation coefficients using the transformation coefficients and the untransformed data of the input block; the transformation coefficients inversely transformed by the inverse transformer means (33) being those selected by the transformation coefficient select means (32); the coefficients for variable-length-coding by the encoding means (34) being the select coefficients selected by the transformation coefficient select means (32); and the repetition controller (35) determining whether or not coefficient selection is continued; said transformation coefficient select means (32) further comprising: a block selector (41) for selecting one of the input block and the error block and outputting a selected block; a pattern former (42) for receiving transformation coefficients of the untransformed data of the input block from said transformer means (31) and forming and outputting pattern blocks with respect to the individual transformation coefficients, and for storing the pattern blocks and outputting pattern blocks corresponding to an input select index; a comparator (43) for selecting a pattern block which best-matches a block selected in the block selector (41) among the pattern blocks and outputting the select index; a coefficient restoring portion (44) for restoring the transformation coefficient corresponding to the select index selected by the comparator (43); an error calculator (45) for calculating an error between the block selected by the block selector (41) and the pattern block corresponding to the select index input from the pattern former (42), and producing an error block to then output the produced error block to the block selector (41); and a completion controller (46) for completing selection of the pattern block in the comparator (43) according to the control signal input from the repetition controller (35). A transformation coding apparatus for a block including a boundary of an object having a certain shape according to claim 1, wherein said pattern former (42) comprises: an inverse transformer (51) for performing inverse transformation with respect to the input NxN transformation coefficients, forming the NxN pattern blocks, and outputting the pattern blocks to the comparator (43); a memory (52) for storing the pattern blocks output from the inverse transformer (51); and a controller (53) for outputting pattern blocks corresponding to the select index among the pattern blocks which are stored in the memory (52) according to the select index input from the comparator (43), to the error calculator (45). A transformation coding apparatus for a block including a boundary of an object having a certain shape according to claim 1 or claim 2, wherein said comparator (43) comprises: a mean square error calculator (61) for calculating a mean square error of the pattern block with respect to the respective coefficients of the block selected by the block selector (41) and the NxN pattern blocks input from the pattern former (42); a bit quantity variation calculator (62) for calculating an amount of variation of the bit quantity generated by additionally adding one coefficient to the bit quantity of the selected coefficients; and a selector (63) for selecting a pattern block of a coefficient which maximizes a ratio of a mean square error which is calculated by the mean square error calculator (61) with respect to the amount of variation of the bit quantity which is calculated by the bit quantity variation calculator (62) for the NXN pattern block. A transformation coding apparatus for a block including a boundary of an object having a certain shape according to any preceding claim wherein said block selector (41) selects and outputs an input block in the process of selecting a first transformation coefficient, and selects and outputs an error block between the pattern block with respect to the transformation coefficient which has been selected in the previous process and the input block in the process of selecting the following transformation coefficient. A transformation coding apparatus for a block including a boundary of an object having a certain shape according to any preceding claim, wherein said block selector (41) selects a pattern block of a coefficient which maximizes a ratio of a mean square error which is calculated by said mean square error calculator (61) with respect to the amount of variation of the bit quantity which is calculated by said bit quantity variation calculator (62) accordingly to output the select index.

Inventors: BYEUNGWOO JEON, KANG-WOOK CHUN, BYEUNGWOO, JEON, KANG-WOOK ,CHUN
Applicants: SAMSUNG ELECTRONICS CO LTD, SAMSUNG ELECTRONICS CO., LTD.
Application year: 1996
Main classification: H04N7
IPC codes: H03M7, H04N7, G06T9