Technical Field
[0001] The present disclosure encompasses a method of processing a video signal, and more
particularly, an apparatus for intra- or inter-picture prediction and block unit encoding
or decoding and a method thereof.
Background Art
[0002] Generally, for eliminating temporal redundancy and spatial redundancy, intra- or
inter-picture prediction is performed to increase a compression ratio of the video
signal. And, such a technology as DC transform, vector quantization and the like is
used.
Technical Problem
[0003] An object is to provide a method of processing a video signal, by which the video
signal can be efficiently processed using intra-picture prediction.
[0004] Another object is to provide a method of processing a video signal, by which the
video signal can be efficiently processed using DC transform or Hadamard transform.
Technical Solution
[0005] The present invention provides a method as defined in the accompanying claims.
[0006] The present disclosure proposes a method of processing a video signal, which is characterized
in constructing a block including a DC (direct current) component by performing a
DC transform on a macroblock larger than 16 x 16 and then performing a DC transform
or a Hadamard transform on the constructed block.
[0007] The present disclosure proposes a method of processing a video signal, which is characterized
in using a DC transform having one of various transform sizes within one macroblock.
[0008] The present disclosure proposes a method of processing a video signal, which is characterized
in using flag information indicating a transform size of a DC transform having one
of various transform sizes.
[0009] The present disclosure proposes a method of processing a video signal, which is characterized
in using prediction blocks differing from each other in size within a macroblock in
case of intra-picture prediction is performed on the macroblock.
[0010] The present disclosure proposes a method of processing a video signal, which is characterized
in using flag information indicating a size of a prediction block to use the prediction
blocks differing from each other in size within one macroblock.
Advantageous Effects
[0011] Accordingly, the present disclosure provides the following effects or advantages.
[0012] First of all, the present disclosure is to eliminate spatial redundancy by performing
DC transform or Hadamard transform. Therefore, coding of a video signal can be efficiently
performed.
[0013] Secondly, the present disclosure is to efficiently compress data of a residual block
by performing DC transform differing in transform size within one macroblock.
[0014] Thirdly, the present disclosure reduces size of transferred data using flag information
indicating transform size, thereby enabling efficient video signal processing.
[0015] Fourthly, in case of a macroblock, the present disclosure enhances accuracy of prediction
using various prediction block sizes within one macroblock in performing intra-picture
prediction. Accordingly, since a data size is decreased by reducing residual data,
the present disclosure enables efficient video signal processing.
Description of Drawings
[0016] The accompanying drawings, which are included to provide a further understanding
of the invention, illustrate embodiments and together with the description serve to
explain the principles of the invention.
[0017] In the drawings:
FIG. 1 is a schematic block diagram of a video signal encoding apparatus 100;
FIG. 2 is a schematic block diagram of a video signal decoding apparatus 200;
FIG. 3 is a block diagram for a process for obtaining size information of a prediction
block for each partition within a macroblock in case of performing intra-picture prediction
using sizes of various prediction blocks within one macroblock;
FIG. 4 and FIG. 5 are diagrams for a method of obtaining information of a size of
a prediction block according to one embodiment;
FIG. 6 is a diagram for a method of performing DC transform or Hadamard transform
on a residual block according to one embodiment;
FIG. 7 is a diagram for a method of partitioning a macroblock into blocks uniform
in size and then performing a DC transform having a different transform size on each
of the partitions;
Fig. 8 is a diagram for a method of performing a DC transform differing in a transform
size within a macroblock based on a type of the macroblock; and
Fig. 9 is a table representing transform size used for a residual block according
to the first flag and the second flag.
Best Mode
[0018] A method of processing a video signal includes the steps of obtaining a DC (discrete
cosine) transform coefficient for a current macroblock and partition information of
a DC (direct current) component block, obtaining transform size information of each
partition in the DC component block based on the partition information of the DC component
block, performing an inverse DC transform or a Hadamard transform based on the transform
size information of the partition in the DC component block, performing inverse quantization
on a result value from the inverse DC transform and an AC (alternating current) component,
and reconstructing a residual data by performing an inverse DC transform on a result
value from the inverse quantization.
[0019] Preferably, the DC component block indicates a block including a DC component in
the DC transform coefficient and wherein the partition information of the DC component
block includes information indicating whether a DC transform is performed by partitioning
the DC component block, size and number information of the partitioned block and location
information of the partitioned block.
[0020] Preferably, the inverse DC transform on the result value from the inverse quantization
is performed by using partition information of the current macroblock and transform
size information on each partition of the current macroblock.
[0021] More preferably, the partition of the current macroblock indicates an N x N block
smaller than a size of the current macroblock and the information on the partition
of the current macroblock includes size information of the partition, number information
of the partition and location information of the partition.
[0022] Preferably, the inverse DC transform on the result value from the inverse quantization
is performed by using type information of the current macroblock and transform size
information of each partition in the current macroblock.
[0023] More preferably, the type information of the current macroblock includes size information
of a prediction block and partition information of the current macroblock.
[0024] It is to be understood that both the foregoing general description and the following
detailed description are exemplary and explanatory and are intended to provide further
explanation of the invention as claimed.
Mode for Invention
[0025] Reference will now be made in detail to the preferred embodiments of the present
invention, examples of which are illustrated in the accompanying drawings. First of
all, terminologies or words used in this specification and claims are not construed
as limited to the general or dictionary meanings and should be construed as the meanings
and concepts matching the technical idea of the present invention based on the principle
that an inventor is able to appropriately define the concepts of the terminologies
to describe the inventor's invention in best way. The embodiment disclosed in this
disclosure and configurations shown in the accompanying drawings are just one preferred
embodiment and do not represent all technical idea of the present invention. Therefore,
it is understood that the present invention covers the modifications and variations
of this invention provided they come within the scope of the appended claims and their
equivalents at the timing point of filing this application.
[0026] First of all, a macroblock is explained as follows. A macroblock is a basic unit
for processing a video frame and can be defined as a region constructed with 16 x
16 pixels. Yet, it is necessary to define a concept for a macroblock larger than 16
x 16 as a size of a video picture increases. A macroblock larger than 16 x 16 can
become a basic unit for processing a video frame having resolution greater than that
of the related art. For instance, this macroblock can be defined as a region constructed
with 32 x 32 or 64 x 64 pixels.
[0027] A macroblock larger than 16 x 16 is adaptively usable according to resolution of
a video picture. For instance, if resolution of a video picture is greater than VGA,
it is able to define a size of a macroblock into 16 x 16. Accordingly, it is able
to use a block having such a size as 16 x 8, 8 x 16, 4 x 8, 8 x 4 and 4 x 4 as a partition
of the macroblock. If resolution is greater than VGA and smaller than 1,080 P, it
is able to set a size of a macroblock to 32 x 32. Accordingly, it is able to use a
block having such a size as 32 x 16, 16 x 32, 16 x 16, 16 x 8, 8 x 16 and 8 x 8. If
resolution is greater than 1,080 P and smaller than 4k x 2k, it is able to set a size
of a macroblock to 64 x 64. And, it is able to use a block having such a size as 64
x 32, 32 x 64, 32 x 32, 32 x 16, 16 x 32 and 16 x 16. Yet, an encoder is able to determine
a size of an optimal macroblock among a 16 x 16 macroblock and macroblocks larger
than 16 x 16 according o resolution of a video picture. The determined size information
of the macroblock can be transferred to a decoder on a slice level or a sequence level.
Therefore, it is able to adaptively use the size of the macroblock.
[0028] A type of a macroblock according to expansion of a size of a macroblock is explained.
First of all, according to a prediction mode of a macroblock, i.e., an intra-picture
prediction mode or an inter-picture prediction mode, a type of a macroblock can be
defined. This can include size information off a prediction block. And, a type of
a macroblock for performing inter-picture prediction can include information on a
prediction direction.
[0029] Particularly, a block coded in an intra-picture prediction mode can use such a block
unit as 16 x 16 pixels, 8 x 8 pixels and 4 x 4 pixels. For a block coded in an inter-picture
prediction mode, 16 x 16 pixels, 16 x 8 pixels, 8 x 16 pixels and 8 x 8 pixels are
available for types of macroblocks. If the 8 x 8 pixels are available, 8 x 4 pixels,
4 x 8 pixels and 4 x 4 pixels are available for types of sub-macroblocks.
[0030] A type of a macroblock is defined in consideration of a size greater than 16 x 16
as follows. First of all, as a size of a video picture increases, a use frequency
of a type of a relatively small macroblock will decrease. It is able to eliminate
information on this type of the macroblock, whereby it is able to reduce the number
of bits allocated to the corresponding type of the macroblock. For instance, if a
resolution of a video picture is smaller than VGA, it is able to use the above explained
type of the macroblock. Yet, if the resolution is greater than VGA and smaller than
1,080 P, a type of a macroblock smaller than 8 x 8 pixels may not be used. In particular,
a block coded in an intra-picture prediction mode can use such a block unit as 16
x 16 pixels and 8 x 8 pixels. And, for a block coded in an inter-picture prediction
mode, it is able to use such a type of a macroblock as 16 x 16 pixels, 16 x 8 pixels,
8 x 16 pixels and 8 x 8 pixels. In this case, a type of a sub-macroblock may not use
8 x 4 pixels, 4 x 8 pixels or 4 x 4 pixels. If a resolution is grater than 1,080 P
and smaller than 4k x 2k, a type of a macroblock smaller than 16 x 16 pixels may not
be used. In particular, for a lock coded in an intra-picture prediction mode or an
inter-picture prediction mode, 16 x 16 pixels are usable as a type of a macroblock.
[0031] Likewise, an encoder is able to determine a type of an optimal macroblock according
to resolution of a video picture. And, type information of the determined macroblock
can be transferred to a decoder on a slice level or a sequence level. Accordingly,
it is able to adaptively use a type of a macroblock.
[0032] FIG. 1 is a schematic block diagram of a video signal encoding apparatus 100.
[0033] Referring to FIG. 1, a transforming unit 110, a quantizing unit 115, a coding control
unit 120, a inverse quantizing unit 130, an inverse transforming unit 135, a deblocking
filtering unit 140, a decoded picture storing unit 150, a motion estimating unit 155,
an inter-picture predicting unit 160, an intra-picture predicting unit 170 and an
entropy coding unit 180 are included.
[0034] The transforming unit 110 obtains a transform coefficient value by transforming a
pixel value. In this case, a discrete cosine transform or a wavelet transform is usable.
The quantizing unit 115 quantizes the transform coefficient value outputted from the
transforming unit 110. The coding control unit 120 controls whether to perform intra-picture
coding or inter-picture coding on a specific block or frame. The inverse quantizing
unit 130 dequantizes the transform coefficient value and the inverse transforming
unit 135 restores the dequantized transform coefficient value into an original pixel
value. The deblocking filtering unit 140 is applied to each coded macroblock to reduce
block distortion. A picture through deblocking filtering is stored in the decoded
picture storing unit 150 to be used as a reference picture. The motion estimating
unit 155 searches reference pictures for a reference block most similar to a current
block using the reference picture stored in the decoded picture storing unit 150 and
then delivers location information of the searched reference block and the like to
the entropy coding unit 180. The inter-picture predicting unit 160 performs prediction
of a current picture using the reference picture and then delivers inter-picture coding
information to the entropy coding unit 180. The intra-picture predicting unit 170
performs intra-picture prediction from a decoded pixel within the current picture
and then delivers intra-picture coding information to the entropy coding unit 180.
The entropy coding unit 180 generates a video signal bitstream by coding the quantized
transform coefficient, the inter-picture coding information, the intra-picture coding
information, the reference block information inputted from the motion estimating unit
160 and the like.
[0035] FIG. 2 is a schematic block diagram of a video signal decoding apparatus 200.
[0036] Referring to FIG. 2, a video signal decoding apparatus 200 according to the present
invention includes an entropy decoding unit 210, a inverse quantizing unit 220, an
inverse transforming unit 225, a deblocking filtering unit 230, a decoded picture
storing unit 240, an inter-picture predicting unit 250 and an intra-picture predicting
unit 260.
[0037] The entropy decoding unit 210 extracts a transform coefficient of each macroblock,
a motion vector and the like by performing entropy decoding on a video signal bitstream.
The inverse quantizing unit 220 dequantizes the entropy decoded transform coefficient
and the inverse transforming unit 225 then restores an original pixel value using
the dequantized transform coefficient. The deblocking filtering unit 230 is applied
to each coded macroblock to reduce block distortion. A picture through filtering is
stored in the decoded picture storing unit 240 to be outputted or used as a reference
picture. The inter-picture predicting unit 250 predicts a current picture using the
reference picture stored in the decoded picture storing unit 240 and inter-picture
prediction information (e.g., reference picture index information, motion vector information,
etc.) delivered from the entropy decoding unit 210. The intra-picture predicting unit
260 performs intra-picture prediction from a decoded pixel within the current picture.
An original picture is then reconstructed by adding the predicted current picture
and a residual outputted from the inverse transforming unit together.
[0038] An intra-picture prediction mode is explained in detail. As mentioned in the foregoing
description, 4 x 4 pixels, 8 x 8 pixels and 16 x 16 pixels are usable as block units
for performing intra-picture prediction in H.264/AVC. In this disclosure, intra-picture
prediction of 4 x 4 or 16 x 16 pixel unit is explained as follows. First of all, with
reference to a current 4 x 4 intra-picture prediction block, the 4 x 4 intra-picture
prediction obtains a predicted value of the 4 x 4 pixels within a prediction block
using four right pixels within a left block, four bottom pixels within an upper block,
one right bottom pixel within a left upper block and one left bottom pixel within
a right upper block. In this case, regarding an intra-picture prediction direction,
a most suitable prediction direction is selected per 4 x 4 pixel block from 9 kinds
of prediction directions in H.264/AVC and prediction is then performed by a block
unit of 4 x 4 pixels based on the selected prediction direction. The 16 x 16 intra-picture
prediction is performed by selecting one of the four kinds of methods including vertical
prediction, horizontal prediction, average prediction and planar prediction from 16
bottom pixels of an upper macroblock and 16 right pixels of a left macroblock with
reference to a current macroblock.
[0039] In case that a size of a macroblock is 32 x 32, a 32 x 32 intra-picture prediction
method is explained as follows.
[0040] First of all, likewise, the 32 x 32 intra-picture prediction can be performed by
selecting one of the four kinds of methods including vertical prediction, horizontal
prediction, average prediction and planar prediction from 32 bottom pixels of an upper
macroblock and 32 right pixels of a left macroblock with reference to a current macroblock.
In the same manner of the 16 x 16 intra-picture prediction, the vertical prediction
and the horizontal prediction are usable. And, the average prediction can be performed
in the same manner using an average value of total 64 pixels including the 32 bottom
pixels of the upper macroblock and the 32 right pixels of the left macroblock. The
planar prediction is performed by interpolating a pixel of an upper macroblock and
a pixel of a left macroblock in a diagonal direction.
[0041] In case that intra-picture prediction is performed on one macroblock, a method of
obtaining size information of a prediction block is explained as follows. In this
case, a size of a prediction block may mean a unit of block for performing inter-picture
prediction or intra-picture prediction.
[0042] The size information of a prediction block can be obtained from type information
of a macroblock. This will be named first prediction block size information. Yet,
as a size of a macroblock increases, coding efficiency can be enhanced using sizes
of different prediction blocks within one macroblock. For this, it is able to partition
a macroblock into a plurality of partitions in a predetermined size. It is able to
select a prediction block size suitable for each of the partitions. This will be named
second prediction block size information. The selected second prediction block size
information can indicate various prediction block sizes within one macroblock using
a flag.
[0043] FIG. 3 is a block diagram for explaining a process for obtaining size information
of a prediction block for each partition within a macroblock in a decoder.
[0044] Referring to FIG. 3, an entropy decoding unit 210 is able to obtain type information
of a macroblock and partition information of the macroblock from a received bitstream
[S100]. An entropy decoding unit 210 is then able to obtain flag information indicating
a size of a prediction block for each of the obtained partition [S110]. For instance,
referring to FIG. 4, if a size of a macroblock is 32 x 32 and a first prediction block
size obtained from type information of a macroblock is 4 x 4, a case of dividing a
macroblock into four partitions is taken into consideration. If a second prediction
block size of a partition within a macroblock is 4 x 4, as shown in FIG. 4, it is
equal to the first prediction block size. Hence, it is able to set a flag indicating
a size of a prediction block to 0. In case of 8 x 8, it is able to set the flag to
1. Therefore, it is able to sequentially obtain '0110' as the flag information indicating
the second prediction block size for each of the partitions.
[0045] Meanwhile, prior to obtaining the flag information indicating the second prediction
block size of each partition, it is able to obtain flag information indicating whether
the second prediction block sizes of the partitions are equal to each other. If the
second prediction block sizes of the partitions are equal to each other, '0' will
be obtained as the flag information. Therefore, the flag information indicating the
second prediction block size may not be obtained or the intra-picture prediction can
be performed for each partition using the first prediction block size obtained from
the type information of the macroblock. On the contrary, if any one of the partitions
is different, '1' can be obtained as the flag information. In this case, as mentioned
in the foregoing description, it is able to obtain the flag information indicating
the second prediction block size. Yet, '1' is obtained as the flag information indicating
whether the second prediction block sizes of the partitions are equal to each other.
If all the flag information indicating the second prediction block size before the
last partition is '0' or '1', the flag information indicating the second prediction
block size of the last partition can be derived to '1' or '0'.
[0046] For another example, it is able to indicate a second prediction block size based
on flag information indicating whether second prediction block sizes of partitions
are equal to each other and location information of a partition having a second prediction
block size different from a first prediction block size.
[0047] Referring to FIG. 5, if a first prediction block size is 8 x 8, a case of indicating
location information of a partition is indicated as 0~3 is explained as follows. First
of all, since a partition having location information set to 2 has a size of a 4 x
4 prediction block unlike a second prediction block size, it is able to obtain '1'
as flag information indicating whether second prediction block sizes of all partitions
are equal to each other. Since the location information of the partition having the
4 x 4 prediction block size is 2, this can be binarized into '10'. Hence, it is able
to obtain '110' as the flag information indicating the second prediction block size.
In this case, intra-picture prediction can be performed on a partition having an 8
x 8 prediction block size using the first prediction block size information in an
intra-picture predicting unit 260. Thus, it is able to perform the intra-picture prediction
on each of the partitions based on the flag information indicating the obtained or
derived second prediction block size [S120]. Therefore, it is able to generate the
predicted value of the macroblock [S130].
[0048] DC (discrete cosine) transform, which is one of the video signal compression schemes,
is explained.
[0049] First of all, the DC transform is the transform used to express an original video
signal as a frequency component. It is able to completely restore an original pixel
value by inversely transforming a value of the frequency component obtained by the
DC transform, i.e., by performing inverse DC transform.
[0050] A result value by the DC transform is called a DC transform coefficient. The DC transform
coefficient includes a DC (direct current) component and an AC (alternating current)
component. The DC component is a coefficient having a frequency set to 0. And, a component
except the DC component is the AC component having frequency variations ranging from
a low frequency to a high frequency. Since a natural video smoothly varies, there
is little variation and a high frequency component is not included. Therefore, by
eliminating an AC coefficient corresponding to a high frequency component from an
AC component, it is able to compress information.
[0051] A method of inducing a DC transform kernel is explained. First of all, in case of
a square type DC transform kernel, i.e., a N x N DC transform kernel, it can be derived
from Formula 1.

[0052] In case that a size of a residual block according to intra- or inter-picture prediction
is rectangular, i.e., M x N, a method of performing M x N DC transform is explained
as follows. First of all, if a current macroblock is a M x N partition as a result
of parsing a type of a macroblock, it is able to obtain M x N residual data D
M x
N by parsing data of a residual block. It is able to obtain an intermediate value E
M x
N by performing a dot operation between the D
M x
N and the M x M DC transform kernel. It is able to restore M x N residual data using
the result value from performing the dot operation between the E
M x
N and the N x N DC transform kernel and a variable C
N determined according to a value N. It is then able to reconstruct a M x N video signal
by adding a prediction value of a current block to the reconstructed M x N residual
data R
M x
N. This can be represented as Formula 2.

[0053] A process for performing DC transform on a residual block is explained in detail.
[0054] The residual block can mean the block that indicates a pixel value difference between
a video predicted through intra- or inter-picture prediction and an original video.
If a residual block is 16 x 16, it can be divided into 4 x 4 pixel blocks. And, 4
x 4 DC transform can be performed on each of the 4 x 4 pixel blocks. Subsequently,
quantization is performed on a result value from the DC transform, i.e., a DC coefficient
and an AC coefficient.
[0055] A DC component block of 4 x 4 pixels is constructed by gathering DC components of
the 4 x 4 pixel blocks and 4 x 4 DC transform is then performed on the constructed
4 x 4 DC component block. Alternatively, 4 x 4 Hadamard transform, which is one of
other orthogonal transform schemes, can be performed on the constructed 4 x 4 DC component
block. A result value from performing the 4 x 4 DC transform or the 4 x 4 Hadamard
transform and the AC coefficient are entropy encoded and then can be transferred to
a decoder. In viewpoint of the decoder, 4 x 4 inverse DC transform or 4 x 4 inverse
Hadamard transform is performed on the transferred result value from performing the
4 x 4 DC transform or the 4 x 4 Hadamard transform and inverse quantization and inverse
DC transform will be sequentially performed on the corresponding result value and
the transferred AC coefficient.
[0056] A case of a macroblock having a size greater than 16 x 16 is explained.
[0057] First of all, in case of a macroblock larger than 16 x 16, it is able to perform
DC transform using a 16 x 16 small transform size. For instance, referring to FIG.
6, in case that a size of a macroblock is 32 x 32, it is able to perform 4 x 4 DC
transform. It is a matter of course that 8 x 8 DC transform or 16 x 16 DC transform
can be performed as well. After the DC transform has been performed, it is able to
perform quantization on a DC transform coefficient that is a result of the DC transform.
And, it is able to construct a DC component block by gathering DC components only.
In this case, the DC component block can be constructed in a manner of being partitioned
into four 4 x 4 pixel blocks or can be constructed with one 8 x 8 pixel block. A scheme
for partitioning the DC component block can be selected in consideration of efficiency
of compression. And, it is able to perform DC transform on the DC component block
using information on the partition of the selected DC component block.
[0058] First of all, a entropy decoding unit 210 is able to obtain information on a partition
of a DC component block from a bitstream. In this case, the information on the partition
can include information indicating whether DC transform was performed by partitioning
the DC component block, size and number information of the partitioned block, location
information of each of the partitioned blocks, and the like. A entropy decoding unit
210 is then able to obtain transform size information on each of the partitions based
on information on the partitions within the DC component block. The information on
the partitions within the DC component block can be derived through the DC transform
size information used in performing the DC transform.
[0059] For instance, in case that 4 x 4 DC transform is used in performing the DC transform
on the DC component block, it is able to recognize that the corresponding DC component
block is constructed in a manner of being partitioned into four 4 x 4 pixel blocks.
Therefore, the information on the partitions within the DC component block can be
derived.
[0060] Based on the obtained or derived transform size information, it is able to perform
inverse DC transform or inverse Hadamard transform on the partitions of the DC component
block. An inverse quantizing unit 220 and an inverse transforming unit 225 are then
able to perform inverse quantization and inverse DC transform on a result value from
performing the DC transform or the Hadamard transform and an AC coefficient received
via the bitstream. Therefore, it is able to obtain a reconstructed residual block.
[0061] In performing a transform (DC transform, Hadamard transform, etc.) on one macroblock,
it is able to perform a DC transform having a single transform size. In particular,
when a DC transform is performed on a 16 x 16 macroblock, it is able to use either
8 x 8 DC transform or 4 x 4 DC transform only. Yet, as a size of a macroblock increases,
it is necessary to use a DC transform having a size greater than 8 x 8. It is able
to enhance efficiency of coding if a DC transform having one of various transform
sizes within one macroblock is adaptively used. In the following description, explained
is a method of using various transform sizes within one macroblock.
[0062] FIG. 7 is a diagram for a method of partitioning a macroblock into blocks uniform
in size and then performing a DC transform having a different transform size on each
of the partitions.
[0063] First of all, it is able to obtain information on partitions of a macroblock from
a bitstream in the entropy decoding unit 210. The partitions of the macroblock can
include a region generated from partitioning the macroblock into blocks uniform in
size. And, the information on the partitions can include size information of the partitions,
information on the number of the partitions, location information of the partitions,
and the like. It is able to obtain transform size information on each of the partitions
based on the partition information of the macroblock in the entropy decoding unit
210. referring to Fig. 7, assume a case that a macroblock is larger than 16 x 16.
It is able to set the macroblock to be partitioned by a 16 x 16 pixel block unit.
After 4 x 4 DC transform, 8 x 8 DC transform or 16 x 16 DC transform has been performed
on each of the 16 x 16 pixel blocks, it is able to select a transform size having
a good compression ratio. Furthermore, in order to select the transform size in the
above example, it is able to consider a size of a prediction block. As mentioned in
the foregoing description, it is able to obtain the size of the prediction block from
type information of the macroblock. For instance, as a result of parsing type information
of the macroblock, if the 16 x 16 pixel block has a size of a prediction block smaller
than the 16 x 16 pixel block, it is able use the 4 x 4 DC transform or the 8 x 8 DC
transform for the 16 x 16 pixel block. And, a entropy decoding unit 210 is able to
obtain the selected transform size information, location information of the 16 x 16
pixel block within the macroblock and the like. A inverse quantizing unit 220 and
a inverse transforming unit 225 are able to perform inverse quantization and inverse
DC transform on each of the partitions according to the selected transform size information.
Accordingly, it is able to obtain a reconstructed residual block.
[0064] Fig. 8 is a diagram for a method of performing a DC transform differing in a transform
size within a macroblock based on a type of the macroblock.
[0065] First of all, the entropy decoding unit 210 is able to obtain type information of
a macroblock for a current macroblock. The entropy decoding unit 210 is then able
to obtain transform size information based on size information of a prediction block
according to the type information of the macroblock. In particular, it is able to
selectively use 4 x 4 DC transform, 8 x 8 DC transform or 16 x 16 DC transform for
each partition according to a size of a prediction block. Therefore, a decoder parses
the type information of the macroblock and type information of a sub-macroblock and
is then able to obtain transform size information on each of the partitions. For example,
if a size of a prediction block is 16 x 16 as a result of parsing type information
of a current macroblock and if a size of a prediction block is 16 x 8 as a result
of parsing type information of a sub-macroblock, it is able to selectively use the
4 x 4 DC transform, the 8 x 8 DC transform or the 16 x 16 DC transform. Based on the
transform size information, the inverse quantizing unit 220 and in the inverse transforming
unit 225 are able to perform inverse quantization and inverse DC transform on each
of the partitions. Accordingly, it is able to obtain a reconstructed residual block.
[0066] A method of transferring transform size information used for a residual block is
explained. First of all, it is able to define a flag (first flag) indicating whether
to use a 8 x 8 transform size. As a size of a macroblock increases, it is necessary
to use a transform size greater than 8 x 8. Hence, it is able to define a flag (second
flag) indicating whether to use a 16 x 16 transform size. Yet, it is a matter of course
that a third flag and the like can be defined in the same manner. And, it is understood
that the meaning of performing the 16 x 16 DC transform may indicate that a DC transform
can be performed using a 16 x 8 transform size or an 8 x 16 transform size. In performing
the 16 x 16 DC transform, whether to use a 16 x 16 transform size, a 16 x 8 transform
size or an 8 x 16 transform size can be discriminated based on type information of
a macroblock.
[0067] In particular, if three kinds of transform sizes including 4 x 4, 8 x 8 and 16 x
16 are usable, it is able to obtain information of a transform size to be used for
a residual block by transferring two flags, i.e., a first flag and a second flag.
[0068] Fig. 9 is a table representing transform size used for a residual block according
to the first flag and the second flag.
[0069] Referring to Fig. 9, if the first flag and the second flag are set to 0, 4 x 4 transform
size can be used. If the first flag is set to 1 and the second flag is set to 0, 8
x 8 transform size can be used. If the first flag is set to 0 and the second flag
is set to 1, 16 x 16 transform size can be used.
[0070] Meanwhile, it is able to transfer two flags hierarchically. For instance, after second
flag information has been obtained, if the obtained second flag information is set
to 1, a 16 x 16 transform size is usable. If the second flag information is set to
0, first flag information is obtained. If the obtained first flag information is set
to 1, an 8 x 8 transform size is used. If the obtained first flag information is set
to 0, a 4 x 4 transform size is usable. Meanwhile, it is a matter of course that the
first flag information and the second flag information are available in reverse order.
[0071] For another instance, instead of transferring two flags both, one of the two flags
is transferred to derive the other. Yet, this is suitable for a case that a usable
transform size is limited according to a size of a residual block. For example, if
a size of a residual block is 8 x 8, it is able to use a 4 x 4 transform size or an
8 x 8 transform size. Therefore, first flag information is transferred only but second
flag information can be derived into 0. Meanwhile, it is able to set a transform size
available according to a size of a residual block in advance. For example, in case
that an 8 x 8 transform size is set not to be used for a 32 x 32 residual block, if
first flag information is set to 0, a 4 x 4 transform size is used. If the first flag
information is set to 1, a 16 x 16 transform size is usable. Therefore, a second flag
can be derived into 1 without being transferred.
[0072] Advantageous items of this disclosure can be formulated as follows:
Item 1: A method of processing a video signal, comprising the steps of obtaining a
DC (discrete cosine) transform coefficient for a current macroblock and partition
information of a DC (direct current) component block; obtaining transform size information
of each partition of the DC component block based on the partition information of
the DC component block; performing an inverse DC transform or a Hadamard transform
based on the transform size information of the partition of the DC component block;
performing inverse quantization on a result value from the transform and an AC (alternating
current) component; and reconstructing a residual block by performing an inverse DC
transform on a result value from the inverse quantization, wherein the residual block
includes a block indicating a pixel value difference between an original picture and
a predicted picture.
Item 2: The method of item 1, wherein the DC component block indicates a block including
a DC component in the DC transform coefficient and wherein the partition information
of the DC component block includes information indicating whether a DC transform is
performed by partitioning the DC component block, size and number information of the
partitioned block and location information of the partitioned block.
Item 3: The method of item 1, wherein the inverse DC transform on the result value
from performing the inverse quantization is performed using partition information
of the current macroblock and transform size information on each partition of the
current macroblock.
Item 4: The method of item 3, wherein the partition of the current macroblock indicates
an N x N block smaller than a size of the current macroblock and the information on
the partition of the current macroblock includes size information of the partition,
number information of the partition and location information of the partition.
Item 5: The method of item 1, wherein the inverse DC transform on the result value
from the inverse quantization is performed using type information of the current macroblock
and transform size information on each partition of the current macroblock based on
the type information of the current macroblock.
Item 6: The method of item 5, wherein the type information of the current macroblock
includes size information of a prediction block and partition information of a macroblock.
Industrial Applicability
[0073] Accordingly, the present invention is applicable to video signal encoding/decoding.
[0074] While the present invention has been described and illustrated herein with reference
to the preferred embodiments thereof, it will be apparent to those skilled in the
art that various modifications and variations can be made therein without departing
from the spirit and scope of the invention. Thus, it is intended that the present
invention covers the modifications and variations of this invention that come within
the scope of the appended claims and their equivalents.