KR100739757B1 - Image coding/decoding method and apparatus thereof - Google Patents

Image coding/decoding method and apparatus thereof Download PDF

Info

Publication number
KR100739757B1
KR100739757B1 KR1020050110906A KR20050110906A KR100739757B1 KR 100739757 B1 KR100739757 B1 KR 100739757B1 KR 1020050110906 A KR1020050110906 A KR 1020050110906A KR 20050110906 A KR20050110906 A KR 20050110906A KR 100739757 B1 KR100739757 B1 KR 100739757B1
Authority
KR
South Korea
Prior art keywords
motion
unit
bitstream
macroblock
flag
Prior art date
Application number
KR1020050110906A
Other languages
Korean (ko)
Other versions
KR20070053006A (en
Inventor
이교혁
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050110906A priority Critical patent/KR100739757B1/en
Publication of KR20070053006A publication Critical patent/KR20070053006A/en
Application granted granted Critical
Publication of KR100739757B1 publication Critical patent/KR100739757B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Abstract

본 발명은 슬라이스 단위로 비트스트림에 할당되는 움직임 벡터의 비트수를 줄여 영상 데이터에 대한 압축률을 향상시킬 수 있는 영상 부호화 및 복호화 방법 및 장치를에 관한 것으로, 본 발명에 따른 복호화 방법은, 비트스트림이 수신되면, 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출하는 단계; 검출된 플래그를 토대로 수신된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언 패킹하고, 역 양자화 하는 단계; 및 역양자화된 비트스트림에 포함된 움직임 벡터를 이용하여 역양자화된 비트스트림의 움직임을 보상하는 단계를 포함함으로써, 비트스트림에 포함되는 움직임 벡터에 대한 비트수를 줄여 영상 데이터의 압축율을 향상시킬 수 있다. The present invention relates to a video encoding and decoding method and apparatus capable of improving the compression rate for video data by reducing the number of bits of a motion vector allocated to a bitstream in units of slices. If received, detecting a flag indicating a motion vector allocation unit from the received bitstream; Unpacking the received bitstream on a slice basis or on a macroblock basis based on the detected flag and inverse quantizing; And compensating for the motion of the dequantized bitstream using the motion vector included in the dequantized bitstream, thereby improving the compression ratio of the image data by reducing the number of bits for the motion vector included in the bitstream. have.

Description

영상 부호화 및 복호화 방법과 그 장치{Image coding/decoding method and apparatus thereof} Image coding and decoding method and apparatus thereof

도 1은 하나의 슬라이스를 16개의 매크로 블록으로 분할한 예이다. 1 shows an example of dividing a slice into 16 macroblocks.

도 2는 하나의 슬라이스에 대한 기존의 비트스트림 구조 예이다. 2 is an example of a conventional bitstream structure for one slice.

도 3은 본 발명의 일 실시 예에 따른 영상 복호화 장치의 기능 블록도이다. 3 is a functional block diagram of an image decoding apparatus according to an embodiment of the present invention.

도 4(a) 및 도 4(b)는 도 3에 도시된 영상 복호화 장치로 입력되는 압축된 비트스트림 구조 예이다.4 (a) and 4 (b) show examples of a compressed bitstream structure input to the video decoding apparatus shown in FIG.

도 5는 도 3에 도시된 영상 복호화 장치에 대응되는 영상 부호화 장치의 기능 블록도이다. FIG. 5 is a functional block diagram of an image encoding apparatus corresponding to the image decoding apparatus illustrated in FIG. 3.

도 6은 하나의 슬라이스에서의 매크로 블록의 그룹핑 예시도이다. 6 is an exemplary diagram of grouping of macroblocks in one slice.

도 7은 슬라이스에서 매크로 블록의 그룹이 형성되는 경우에, 비트스트림 구조 예이다. 7 is an example of a bitstream structure when a group of macroblocks is formed in a slice.

도 8은 도 3에 도시된 영상 복호화 장치가 도 7에 도시된 비트스트림을 복호화하기에 적합하게 구현된 경우에 그에 대응되는 영상 부호화 장치의 기능 블록도이다. FIG. 8 is a functional block diagram of an image encoding apparatus corresponding to a case in which the image decoding apparatus illustrated in FIG. 3 is properly implemented to decode the bitstream illustrated in FIG. 7.

도 9는 본 발명의 다른 실시 예에 따른 영상 복호화 장치의 기능 블록도이다.9 is a functional block diagram of an image decoding apparatus according to another embodiment of the present invention.

도 10(a) 및 도 10(b)은 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록단위로 할당된 비트스트림 구조 예이다. 10 (a) and 10 (b) show examples of a bitstream structure in which a flag indicating a motion vector allocation unit is allocated in a slice unit and a macroblock unit.

도 11은 도 9에 도시된 바와 같은 영상 복호화 장치에 대응되는 영상 부호화 장치의 기능 블록도이다.FIG. 11 is a functional block diagram of an image encoding apparatus corresponding to the image decoding apparatus illustrated in FIG. 9.

도 12는 본 발명의 또 다른 실시 예에 따른 영상 복호화 방법의 동작 흐름도이다. 12 is a flowchart illustrating an image decoding method according to another embodiment of the present invention.

도 13은 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당 단위를 나타내는 플래그가 슬라이스 단위로 검출되는 경우에 적용한 예이다. FIG. 13 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in a slice unit.

도 14는 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당 단위를 나타내는 플래그가 매크로 블록단위로 검출되는 경우에 적용한 예이다. FIG. 14 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in macroblock units.

도 15는 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록단위로 검출되는 경우에 적용한 예이다. FIG. 15 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in a slice unit and a macroblock unit.

본 발명은 영상 부호화 및 복호화 방법과 그 장치에 관한 것으로, 좀더 상세하게는, 영상 부호화시 움직임 추정(motion estimation)에 의해 움직임 벡터를 검출하고, 영상 복호화시 움직임 벡터를 이용하여 움직임 보상(motion compensation)을 수행하는 영상 부호화 및 복호화 방법과 그 장치에 관한 것이다. The present invention relates to a method and apparatus for image encoding and decoding, and more particularly, to motion detection by motion estimation during image encoding, and motion compensation by using motion vector during image decoding. The present invention relates to a video encoding and decoding method and apparatus therefor.

MPEG-1/2/4, H.261, H.263 및 H.264 등의 규격에 따른 기존의 영상 부호화 방법은 하나의 슬라이스를 도 1에 도시된 바와 같이 여러 개의 매크로 블록으로 분할한다. 도 1은 하나의 슬라이스를 16개의 매크로 블록(MB0 내지 MB15)으로 분할한 예이다. 상기 영상 부호화 방법은 분할된 각 매크로 블록에 대해 RD(Rate Distortion) 최적화(optimization)를 통해 움직임 추정을 수행하여 독립적인 하나의 움직임 벡터를 검출한다. 따라서 도 2에 도시된 바와 같이 하나의 슬라이스의 비트스트림은 매크로 블록의 개수에 대응되는 수의 움직임 벡터를 할당하는 구조(structure)를 갖는다. 도 2는 하나의 슬라이스가 16개의 매크로 블록으로 분할된 경우의 기존의 비트스트림 구조 예이다. The conventional video encoding method according to the standards such as MPEG-1 / 2/4, H.261, H.263, and H.264 divides one slice into several macro blocks as shown in FIG. 1 illustrates an example of dividing a slice into 16 macro blocks MB0 to MB15. The image encoding method detects an independent motion vector by performing motion estimation on each of the divided macroblocks through Rate Distortion (RD) optimization. Accordingly, as shown in FIG. 2, the bitstream of one slice has a structure of allocating a number of motion vectors corresponding to the number of macroblocks. 2 is an example of a conventional bitstream structure when one slice is divided into 16 macroblocks.

또한, 도 1에 도시된 바와 같이 기존의 영상 부호화 방법은 상기 RD 최적화를 통해 각 매크로 블록을 더 작은 단위의 서브 블록(sub-block)으로 분할할 수 있다. 만약 각 매크로 블록을 더 작은 단위의 서브 블록으로 분할할 경우에, 기존의 영상 부호화 방법은 움직임 추정에 의해 각 서브 블록에 대해 독립적인 하나의 움직임 벡터를 검출하므로, 하나의 슬라이스의 비트스트림은 슬라이스에 포함되는 서브 블록의 개수에 대응되는 수의 움직임 벡터를 할당하는 구조를 갖는다. In addition, as shown in FIG. 1, the conventional video encoding method may divide each macro block into sub-blocks of a smaller unit through the RD optimization. If each macroblock is divided into smaller subblocks, the conventional video encoding method detects one motion vector independent for each subblock by motion estimation, so that a bitstream of one slice is sliced. It has a structure for allocating a number of motion vectors corresponding to the number of sub-blocks included in.

그러나 상술한 바와 같이 움직임 벡터를 할당하는 것은 영상 데이터의 압축률 향상을 어렵게 하는 요인이 된다. However, as mentioned above, the allocation of the motion vector becomes a factor that makes it difficult to improve the compression ratio of the image data.

본 발명이 이루고자 하는 기술적 과제는 슬라이스 단위로 비트스트림에 할당되는 움직임 벡터의 비트수를 줄여 영상 데이터에 대한 압축률을 향상시킬 수 있는 영상 부호화 및 복호화 방법 및 장치를 제공하는데 있다. An object of the present invention is to provide an image encoding and decoding method and apparatus capable of improving the compression ratio for image data by reducing the number of bits of a motion vector allocated to a bitstream in slice units.

상술한 기술적 과제를 달성하기 위하여 본 발명은, 영상 복호화 방법에 있어서, 비트스트림이 수신되면, 상기 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출하는 단계; 상기 검출된 플래그를 토대로 상기 수신된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언 패킹하고, 역 양자화 하는 단계; 및 상기 역양자화된 비트스트림에 포함된 움직임 벡터를 이용하여 상기 역양자화된 비트스트림의 움직임을 보상하는 단계를 포함하는 영상 복호화 방법을 제공한다.According to an aspect of the present invention, there is provided a method of decoding an image, the method comprising: detecting a flag indicating a motion vector allocation unit from the received bitstream when the bitstream is received; Unpacking and inverse quantizing the received bitstream in units of slices or macroblocks based on the detected flag; And compensating for the motion of the dequantized bitstream using the motion vector included in the dequantized bitstream.

상술한 기술적 과제를 달성하기 위하여 본 발명은, 영상 복호화 장치에 있어서, 비트스트림이 수신되면, 수신된 비트스트림에 포함되어 있는 움직임 벡터 할당단위를 나타내는 플래그를 토대로 상기 수신된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언패킹하는 비트스트림 언패킹부; 상기 언 패킹된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 역양자화하는 역양자화부; 상기 역양자화부에서 역양자화된 비트스트림의 움직임을 보상하는 움직임 보상부를 포함하고, 상기 움직임 벡터 할당단위를 나타내는 플래그는 슬라이스 단위 및/또는 매크로 블록 단위로 할당되고, 상기 움직임 보상부는, 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상하거나 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임을 보상하거나 매크로 블록의 그룹 단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함되는 매크로 블록에 대한 움직임을 보상하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.According to an aspect of the present invention, in the image decoding apparatus, when a bitstream is received, the received bitstream is sliced or based on a flag indicating a motion vector allocation unit included in the received bitstream. A bitstream unpacking unit which unpacks the macroblock unit; An inverse quantizer for inversely quantizing the unpacked bitstream in units of slices or units of macroblocks; And a motion compensator for compensating for motion of the dequantized bitstream in the dequantizer, wherein a flag indicating a motion vector allocation unit is allocated in a slice unit and / or a macroblock unit, and the motion compensation unit is in a slice unit. Compensate motion for all macroblocks included in the slice using dequantized motion vectors, or compensate for motion for macroblocks using dequantized motion vectors in macroblock units, or dequantize groups in macroblock units. The present invention provides an image decoding apparatus using a motion vector to compensate for a motion of a macroblock included in a group of macroblocks.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일 실시 예에 따른 움직임 복호화 장치의 기능 블록 도이다. 도 3을 참조하면, 상기 움직임 복호화 장치는, 언패킹부(unpacking unit)(310), 역양자화부(de-quantization unit)(320), 및 움직임 보상부(330)를 포함한다. 3 is a functional block diagram of a motion decoding apparatus according to an embodiment of the present invention. Referring to FIG. 3, the motion decoding apparatus includes an unpacking unit 310, a de-quantization unit 320, and a motion compensator 330.

도 3에 도시된 움직임 복호화 장치는 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위로 할당된 경우이다. 따라서, 도 3에 도시된 움직임 복호화 장치로 입력되는 비트스트림은 도 4(a) 또는 도 4(b)에 도시된 바와 같이 구성될 수 있다. In the motion decoding apparatus illustrated in FIG. 3, a flag indicating a motion vector allocation unit is allocated in a slice unit. Therefore, the bitstream input to the motion decoding apparatus shown in FIG. 3 may be configured as shown in FIG. 4 (a) or 4 (b).

도 4(a)는 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위로 할당되고, 움직임 벡터는 매크로 블록단위로 할당된 비트스트림 구조 예이고, 도 4(b)는 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위로 할당되고, 하나의 슬라이스에 하나의 움직임 벡터가 할당된 비트스트림 구조 예이다. 슬라이스 단위로 할당되는 움직임 벡터 할당단위를 나타내는 플래그(SMFlag, Slice Motion Flag)는 도 4(a) 내지 도 4(b)에 도시된 바와 같이 슬라이스 데이터 영역에 포함된다. 상기 플래그(SMFlag)는 1비트로 정의할 수 있다. 4 (a) shows an example of a bitstream structure in which a flag indicating a motion vector allocation unit is allocated in units of slices, and a motion vector is allocated in macroblock units. FIG. An example of a bitstream structure in which units are allocated in units and one motion vector is allocated to one slice. A flag (SMFlag, Slice Motion Flag) indicating a motion vector allocation unit allocated in a slice unit is included in the slice data area as shown in FIGS. 4 (a) to 4 (b). The flag SMFlag may be defined as 1 bit.

언패킹부(310)는 비트스트림(bit-stream)이 수신되면, 수신된 비트스트림에 포함되어 있는 움직임 벡터 할당단위를 나타내는 플래그(flag)를 토대로 수신된 비 트스트림을 슬라이스 단위 또는 매크로 블록단위로 언패킹한다. When a bitstream is received, the unpacking unit 310 divides the received bitstream into slices or macroblocks based on a flag indicating a motion vector allocation unit included in the received bitstream. Unpack with.

이를 위하여 언패킹부(310)는 도 3에 도시된 바와 같이 플래그 검출기(311), 제 1 언패킹 프로세서(312), 및 제 2 언패킹 프로세서(313)를 포함할 수 있다. To this end, the unpacking unit 310 may include a flag detector 311, a first unpacking processor 312, and a second unpacking processor 313 as shown in FIG. 3.

플래그 검출기(311)는 비트스트림이 수신되면, 수신된 비트스트림에서 움직임 벡터 할당단위를 나타내는 플래그를 검출한다. 검출된 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 플래그(SMFlag)이고, 플래그(SMFlag) 값이 "0"이면, 플래그 검출기(311)는 수신된 비트스트림을 제 1 언패킹 프로세서(312)로 전송한다. 움직임 벡터 할당단위를 나타내는 플래그(SMFlag)가 "0"이면, 상기 움직임 벡터 할당단위를 나타내는 플래그는 움직임 벡터가 매크로 블록단위로 할당된 것을 나타낸다. 움직임 벡터 할당단위를 나타내는 플래그(SMFlag)가 "0"일 때, 수신되는 비트스트림은 도 4(a)에 도시된 바와 같은 구조를 갖는다. When the bitstream is received, the flag detector 311 detects a flag indicating a motion vector allocation unit in the received bitstream. If the flag indicating the detected motion vector allocation unit is a slice unit flag SMFlag and the flag SMFlag value is "0", the flag detector 311 transmits the received bitstream to the first unpacking processor 312. do. If the flag SMFlag indicating the motion vector allocation unit is "0", the flag indicating the motion vector allocation unit indicates that the motion vector is allocated in macroblock units. When the flag SMFlag indicating the motion vector allocation unit is "0", the received bitstream has a structure as shown in Fig. 4A.

상기 검출된 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 플래그(SMFlag)이고, 플래그(SMFlag)의 값이 "1"이면, 플래그 검출기(311)는 수신된 비트스트림을 제 2 언패킹 프로세서(313)로 전송한다. 움직임 벡터 할당단위를 나타내는 플래그(SMFlag)가 "1"이면, 상기 움직임 벡터 할당단위를 나타내는 플래그(SMFlag)는 움직임 벡터가 하나의 슬라이스당 하나의 움직임 벡터가 할당된 것을 나타낸다. 움직임 벡터 할당단위를 나타내는 플래그(SMFlag)가 "1"일 때, 수신되는 비트스트림은 도 4(b)에 도시된 바와 같은 구조를 갖는다. If the flag indicating the detected motion vector allocation unit is a slice unit flag SMFlag, and the value of the flag SMFlag is "1", the flag detector 311 performs a second unpacking processor 313 on the received bitstream. To send. If the flag SMFlag indicating the motion vector allocation unit is "1", the flag SMFlag indicating the motion vector allocation unit indicates that a motion vector is allocated one motion vector per slice. When the flag SMFlag indicating the motion vector allocation unit is "1", the received bitstream has a structure as shown in Fig. 4B.

제 1 언패킹 프로세서(312)는 매크로 블록단위로 비트스트림을 언패킹하여 출력한다. 출력된 언패킹된 비트스트림은 역양자화부(320)의 제 1 역양자화기(321) 로 전송된다. The first unpacking processor 312 unpacks and outputs the bitstream in macroblock units. The output unpacked bitstream is transmitted to the first dequantizer 321 of the dequantizer 320.

제 2 언패킹 프로세서(313)는 슬라이스 단위로 비트스트림을 언패킹하여 출력한다. 출력된 언패킹된 비트스트림은 역양자화부(320)의 제 2 역양자화기(322)로 전송된다. The second unpacking processor 313 unpacks and outputs the bitstream in slice units. The output unpacked bitstream is transmitted to the second dequantizer 322 of the dequantizer 320.

역양자화부(320)는 언 패킹된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 역양자화한다. 이를 위하여 역양자화부(320)는 도 3에 도시된 바와 같이 제 1 역양자화기(321)와 제 2 역양자화기(322)를 포함한다. The dequantizer 320 dequantizes the unpacked bitstream in units of slices or macroblocks. To this end, the inverse quantization unit 320 includes a first inverse quantizer 321 and a second inverse quantizer 322 as shown in FIG. 3.

제 1 역양자화기(321)는 제 1 언패킹 프로세서(312)로부터 전송되는 언패킹된 비트스트림을 매크로 블록단위로 역양자화한다. 이에 따라 매크로 블록단위로 할당된 움직임 벡터도 역양자화된다. 역양자화된 비트스트림은 움직임 보상부(330)로 출력된다.The first dequantizer 321 dequantizes the unpacked bitstream transmitted from the first unpacking processor 312 in macroblock units. Accordingly, the motion vector allocated in units of macro blocks is also dequantized. The dequantized bitstream is output to the motion compensator 330.

제 2 역양자화기(322)는 제 2 언패킹 프로세서(312)로부터 전송되는 언패킹된 비트스트림을 슬라이스 단위로 역양자화한다. 이에 따라 슬라이스단위로 할당된 움직임 벡터도 역양자화된다. 역양자화된 비트스트림은 움직임 보상부(330)로 출력된다. The second dequantizer 322 dequantizes the unpacked bitstream transmitted from the second unpacking processor 312 in slice units. Accordingly, the motion vector allocated in the slice unit is also dequantized. The dequantized bitstream is output to the motion compensator 330.

움직임 보상부(330)는 제 1 역양자화기(321)로부터 역양자화된 비트스트림이 수신되면, 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임 보상을 수행하고, 움직임 보상된 영상 신호를 출력한다. 움직임 보상부(330)는 제 2 역양자화기(322)로부터 역양자화된 비트스트림이 수신되면, 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임 보상을 수행하고, 움직임 보상된 영상 신호를 출력한다. When the dequantized bitstream is received from the first inverse quantizer 321, the motion compensator 330 performs motion compensation on the macroblock by using the dequantized motion vector in macroblock units and performs motion compensation. Output the video signal. When the inverse quantized bitstream is received from the second inverse quantizer 322, the motion compensator 330 performs motion compensation on the macro block by using the inversely quantized motion vector in units of slices, and the motion compensated image. Output the signal.

도 5는 도 3에 도시된 영상 복호화 장치에 대응되는 영상 부호화 장치의 기능 블록도이다. 즉, 도 5는 움직임 벡터 할당단위를 나타내는 플래그를 슬라이스 단위로 할당하고, 할당되는 플래그에 따라 매크로 블록단위 또는 슬라이스 단위로 움직임 벡터를 할당하는 영상 부호화 장치의 기능 블록도이다. FIG. 5 is a functional block diagram of an image encoding apparatus corresponding to the image decoding apparatus illustrated in FIG. 3. That is, FIG. 5 is a functional block diagram of an image encoding apparatus for allocating a flag indicating a motion vector allocation unit in a slice unit and allocating a motion vector in a macroblock unit or a slice unit according to the allocated flag.

도 5를 참조하면, 상기 영상 부호화 장치는 슬라이스 기반 움직임 추정부(501), 블록기반 움직임 추정부(502), 움직임 추정 타입 선택 및 플래그 값 결정부(503), 양자화부(504), 및 비트스트림 패킹부(505)를 포함한다. Referring to FIG. 5, the apparatus for encoding an image includes a slice-based motion estimator 501, a block-based motion estimator 502, a motion estimation type selection and flag value determiner 503, a quantizer 504, and a bit. A stream packing section 505.

슬라이스기반 움직임 추정부(501)는 입력되는 영상신호에 대해 슬라이스단위로 움직임 추정을 수행하여 하나의 슬라이스당 하나의 움직임 벡터를 검출한다. 움직임 추정된 영상신호는 움직임 추정 타입 선택 및 플래그 값 결정부(503)로 전송된다. The slice-based motion estimator 501 detects one motion vector per slice by performing motion estimation on a slice basis with respect to the input image signal. The motion estimated video signal is transmitted to the motion estimation type selection and flag value determination unit 503.

블록기반 움직임 추정부(502)는 입력되는 영상신호에 대해 매크로 블록단위로 움직임 추정을 수행하여 매크로 블록당 하나의 움직임 벡터를 검출한다. 움직임 추정된 영상 신호는 움직임 추정 타입 선택 및 플래그 값 결정부(503)로 전송된다. The block-based motion estimator 502 detects one motion vector per macro block by performing motion estimation on a macro block basis on an input image signal. The motion estimated video signal is transmitted to the motion estimation type selection and flag value determination unit 503.

슬라이스기반 움직임 추정부(501)와 블록기반 움직임 추정부(502)는 RD(Rate-distortion) 최적화에 의해 얻어진 RD 코스트(cost)를 움직임 추정 결과와 함께 출력한다. The slice-based motion estimator 501 and the block-based motion estimator 502 output the RD cost obtained by rate-distortion (RD) optimization together with the motion estimation result.

움직임 추정 타입 선택 및 플래그 값 결정부(503)는 슬라이스기반 움직임 추정부(501)로부터 출력되는 RD 코스트와 블록기반 움직임 추정부(502)로부터 출력되 는 RD 코스트를 비교하여 작은 값을 출력한 움직임 추정 타입을 최적의 타입으로 선택한다. The motion estimation type selection and flag value determination unit 503 compares the RD cost output from the slice-based motion estimation unit 501 with the RD cost output from the block-based motion estimation unit 502 and outputs a small value. Select the estimation type as the optimal type.

즉, 슬라이스기반 움직임 추정부(501)로부터 출력되는 RD 코스트가 블록기반 움직임 추정부(502)로부터 출력되는 RD 코스트보다 작으면, 움직임 추정 타입 선택 및 플래그 값 결정부(503)는 슬라이스기반 움직임 추정부(501)에서의 움직임 추정 타입을 선택하고, 슬라이스 단위 플래그(SMFlag)의 값을 "1"로 결정한다. 그 다음 움직임 추정 타입 선택 및 플래그 값 결정부(503)는 슬라이스기반 움직임 추정부(501)로부터 출력되는 움직임 추정 결과를 양자화부(504)로 전송하면서, 결정된 슬라이스 단위의 플래그(SMFlag)의 값을 비트스트림 패킹부(505)로 제공한다. That is, if the RD cost output from the slice-based motion estimation unit 501 is smaller than the RD cost output from the block-based motion estimation unit 502, the motion estimation type selection and flag value determination unit 503 may slice-based motion estimation. The motion estimation type in the government unit 501 is selected, and the value of the slice unit flag SMFlag is determined as "1". Next, the motion estimation type selection and flag value determination unit 503 transmits the motion estimation result output from the slice-based motion estimation unit 501 to the quantization unit 504, and transmits the value of the flag SMFlag in the determined slice unit. The bitstream packing unit 505 is provided.

반면에, 블록기반 움직임 추정부(502)로부터 출력되는 RD 코스트가 슬라이스기반 움직임 추정부(501)로부터 출력되는 RD 코스트보다 작으면, 움직임 추정 타입 선택 및 플래그 값 결정부(503)는 블록기반 움직임 추정부(502)에서의 움직임 추정 타입을 선택하고, 슬라이스 단위 플래그(SMFlag) 값을 "0"으로 결정한다. 그 다음 움직임 추정 타입 선택 및 플래그 값 결정부(503)는 블록기반 움직임 추정부(502)로부터 출력되는 움직임 추정 결과를 양자화부(504)로 전송하면서 결정된 플래그 값을 비트스트림 패킹부(505)로 제공한다. On the other hand, if the RD cost output from the block-based motion estimation unit 502 is smaller than the RD cost output from the slice-based motion estimation unit 501, the motion estimation type selection and flag value determination unit 503 may perform block-based motion. The motion estimation type in the estimation unit 502 is selected, and the slice unit flag (SMFlag) value is determined as "0". Next, the motion estimation type selection and flag value determination unit 503 transmits the determined flag value to the bitstream packing unit 505 while transmitting the motion estimation result output from the block-based motion estimation unit 502 to the quantization unit 504. to provide.

양자화부(504)는 움직임 추정 타입 선택 및 플래그 값 결정부(503)로부터 전송되는 움직임 추정된 영상 데이터를 양자화하여 출력한다. The quantization unit 504 quantizes and outputs motion estimation image data transmitted from the motion estimation type selection and flag value determination unit 503.

비트스트림 패킹부(505)는 움직임 추정 타입 선택 및 플래그 값 결정부(503)로부터 제공되는 플래그 값을 토대로 양자화부(504)로부터 출력되는 양자화된 영상 데이터의 비트스트림을 도 4(a) 또는 도 4(b)에 도시된 바와 같이 패킹하여 출력한다. 즉 슬라이스 단위 플래그(SMFlag) 값이 "0"이면, 비트스트림 패킹부(505)는 도 4(a)에 도시된 바와 같이 양자화된 영상신호의 비트스트림을 패킹한다. 이에 따라 비트스트림 패킹부(505)는 각 매크로 블록당 움직임 벡터가 할당된 비트스트림을 출력한다. The bitstream packing unit 505 may perform a bitstream of the quantized image data output from the quantization unit 504 based on the flag value provided from the motion estimation type selection and the flag value determination unit 503. Packed and output as shown in 4 (b). That is, when the slice unit flag SMFlag value is "0", the bitstream packing unit 505 packs the bitstream of the quantized video signal as shown in FIG. Accordingly, the bitstream packing unit 505 outputs a bitstream to which a motion vector for each macroblock is allocated.

슬라이스 단위 플래그(SMFlag) 값이 "1"이면, 비트스트림 패킹부(505)는 도 4(b)에 도시된 바와 같이 양자화된 영상신호의 비트스트림을 패킹한다. 이에 따라 비트스트림 패킹부(505)는 하나의 슬라이스에 하나의 움직임 벡터가 할당된 비트스트림을 출력한다. If the slice unit flag SMFlag value is "1", the bitstream packing unit 505 packs the bitstream of the quantized video signal as shown in FIG. Accordingly, the bitstream packing unit 505 outputs a bitstream in which one motion vector is allocated to one slice.

한편, 도 3에 도시된 영상 복호화 장치는 수신되는 비트스트림이 매크로 블록단위로 움직임 벡터 할당단위를 나타내는 플래그(GMBMFlag)가 삽입된 경우에도 적용될 수 있다. 매크로 블록단위로 비트스트림에 움직임 벡터 할당단위를 나타내는 플래그가 삽입되는 경우는 슬라이스에 포함되는 매크로 블록중 일부 매크로 블록의 움직임 벡터가 동일하거나 유사하여 그룹핑이 가능한 경우이다. Meanwhile, the apparatus for decoding an image shown in FIG. 3 may also be applied when a flag GMBMFlag indicating a motion vector allocation unit is inserted in a macroblock unit. When a flag indicating a motion vector allocation unit is inserted into a bitstream in macroblock units, grouping is possible because the motion vectors of some macroblocks included in a slice are the same or similar.

도 6은 하나의 슬라이스에서의 매크로 블록의 그룹핑 예시도이다. 도 6은 하나의 슬라이스가 16개의 매크로 블록(MB0 내지 MB15)으로 분할되고, 분할된 매크로 블록중 MB1, MB9, MB10, 및 MB14 매크로 블록이 동일 또는 유사한 움직임 벡터를 갖는 매크로 블록으로서 매크로 블록의 그룹을 형성하는 예이다. 6 is an exemplary diagram of grouping of macroblocks in one slice. 6 is a group of macroblocks in which one slice is divided into 16 macroblocks MB0 through MB15, and the macroblocks MB1, MB9, MB10, and MB14 of the divided macroblocks have the same or similar motion vectors. Is an example of forming.

도 6에 도시된 바와 같이 매크로 블록의 그룹이 형성되는 경우에, 도 3에 도시된 움직임 복호화 장치로 입력되는 비트스트림은 도 7에 도시된 바와 같은 구조 를 갖는다. 도 7을 참조하면, 하나의 슬라이스에 포함된 매크로 블록중 매크로 블록의 그룹에 포함되지 않는 매크로 블록은 움직임 벡터 할당단위를 나타내는 플래그(GMBMFlag, Group of MacroBlock Moving Flag)가 "0"이 설정되고, 각각의 움직임 벡터가 삽입된다. 반면에 슬라이스에 포함된 매크로 블록중 매크로 블록의 그룹에 포함되는 매크로 블록은 움직임 벡터 할당단위를 나타내는 플래그(GMBMFlag)가 "1"이 설정되고, 매크로 블록의 그룹에 포함된 매크로 블록중 첫 번째 매크로 블록에 매크로 블록의 그룹에 할당되는 대표 움직임 벡터가 삽입된다. 매크로 블록단위 플래그(GMBMFlag)는 1비트로 정의될 수 있다. When a group of macroblocks is formed as shown in FIG. 6, the bitstream input to the motion decoding apparatus shown in FIG. 3 has a structure as shown in FIG. 7. Referring to FIG. 7, a macroblock (GMBMFlag, Group of MacroBlock Moving Flag) indicating a motion vector allocation unit is set to “0” for a macroblock included in a slice among macroblocks included in one slice. Each motion vector is inserted. On the other hand, the macroblock included in the macroblock group among the macroblocks included in the slice has the flag (GMBMFlag) indicating the motion vector allocation unit set to "1", and the first macroblock among the macroblocks included in the macroblock group. In the block, a representative motion vector assigned to a group of macro blocks is inserted. The macro block unit flag GMBMFlag may be defined as 1 bit.

도 7에 도시된 구조를 갖는 비트스트림이 수신되면, 도 3의 언패킹부(310)는 수신된 비트스트림에 포함되어 있는 움직임 벡터 할당단위를 나타내는 플래그(flag)를 토대로 수신된 비트스트림을 매크로 블록단위 또는 매크로 블록의 그룹단위로 언패킹한다. When the bitstream having the structure shown in FIG. 7 is received, the unpacking unit 310 of FIG. 3 macros the received bitstream based on a flag indicating a motion vector allocation unit included in the received bitstream. Unpack in units of blocks or groups of macro blocks.

이를 위하여 언패킹부(310)의 플래그 검출기(311)는 비트스트림이 수신되면, 수신된 비트스트림에서 움직임 벡터 할당단위를 나타내는 플래그를 검출한다. 이 때, 검출되는 움직임 벡터 할당단위를 나타내는 플래그가 매크로 블록단위 플래그(GMBMFlag)이고, 플래그 값이 "0"이면, 플래그 검출기(311)는 수신된 비트스트림을 제 1 언패킹 프로세서(312)로 전송한다. 매크로 블록단위 플래그(GMBMFlag)가 "0"이면, 해당되는 매크로 블록이 매크로 블록의 그룹에 포함되지 않는 것을 나타낸다. To this end, when the bitstream is received, the flag detector 311 of the unpacking unit 310 detects a flag indicating a motion vector allocation unit in the received bitstream. At this time, if the flag indicating the detected motion vector allocation unit is a macroblock unit flag (GMBMFlag) and the flag value is "0", the flag detector 311 sends the received bitstream to the first unpacking processor 312. send. When the macroblock unit flag GMBMFlag is "0", it indicates that the corresponding macroblock is not included in the group of the macroblock.

상기 검출된 움직임 벡터 할당단위를 나타내는 플래그가 매크로 블록단위 플 래그(GMBMFlag)이고, 플래그(GMBMFlag) 값이 "1"이면, 플래그 검출기(311)는 수신된 비트스트림을 제 2 언패킹 프로세서(313)로 전송한다. 매크로 블록단위 플래그(GMBMFlag)가 "1"이면, 해당되는 매크로 블록이 매크로 블록의 그룹에 포함되는 것을 나타낸다. If the flag indicating the detected motion vector allocation unit is a macro block unit flag (GMBMFlag) and the flag (GMBMFlag) value is "1", the flag detector 311 determines the received bitstream as a second unpacking processor 313. To send). When the macroblock unit flag GMBMFlag is "1", it indicates that a corresponding macroblock is included in a group of macroblocks.

제 1 언패킹 프로세서(312)는 매크로 블록단위로 비트스트림을 언패킹하여 출력한다. 출력된 언패킹된 비트스트림은 역양자화부(320)의 제 1 역양자화기(321)로 전송된다. The first unpacking processor 312 unpacks and outputs the bitstream in macroblock units. The output unpacked bitstream is transmitted to the first dequantizer 321 of the dequantizer 320.

제 2 언패킹 프로세서(313)는 매크로 블록단위로 비트스트림을 언패킹하여 출력한다. 이 때, 제 2 언패킹 프로세서(313)는 매크로 블록의 그룹에 포함되는 매크로 블록중 첫 번째 매크로 블록에만 매크로 블록의 그룹에 할당된 대표 움직임 벡터가 삽입되어 있음을 고려하여 매크로 블록단위로 비트스트림을 언패킹한다. 즉, 제 2 언패킹 프로세서(313)는 매크로 블록의 그룹에 포함되는 매크로 블록중 첫 번째 매크로 블록이외의 매크로 블록에는 움직임 벡터가 삽입되어 있지 않으므로, 첫 번째 매크로 블록이외의 매크로 블록에 대한 움직임 벡터의 언패킹을 수행하지 않는다. 출력된 언패킹된 비트스트림은 역양자화부(320)의 제 2 역양자화기(322)로 전송된다. The second unpacking processor 313 unpacks and outputs the bitstream in macroblock units. At this time, the second unpacking processor 313 considers that only the first macroblock among the macroblocks included in the group of macroblocks has a representative motion vector assigned to the group of macroblocks inserted into the bitstream. Unpack the. That is, the second unpacking processor 313 does not insert a motion vector in the macro blocks other than the first macro block among the macro blocks included in the group of macro blocks, and thus, the motion vector for the macro blocks other than the first macro block. Does not unpack. The output unpacked bitstream is transmitted to the second dequantizer 322 of the dequantizer 320.

제 1 역양자화기(321)는 제 1 언패킹 프로세서(312)로부터 전송되는 언패킹된 비트스트림을 매크로 블록단위로 역양자화한다. 이에 따라 움직임 벡터는 매크로 블록단위로 역양자화된다. 역양자화된 비트스트림은 움직임 보상부(330)로 출력된다.The first dequantizer 321 dequantizes the unpacked bitstream transmitted from the first unpacking processor 312 in macroblock units. Accordingly, the motion vector is dequantized in macroblock units. The dequantized bitstream is output to the motion compensator 330.

제 2 역양자화기(322)는 제 2 언패킹 프로세서(312)로부터 전송되는 언패킹된 비트스트림을 매크로 블록의 그룹 단위로 역양자화한다. 이에 따라 움직임 벡터는 매크로 블록의 그룹단위로 역양자화된다. 역양자화된 비트스트림은 움직임 보상부(330)로 출력된다. The second dequantizer 322 dequantizes the unpacked bitstream transmitted from the second unpacking processor 312 in groups of macro blocks. Accordingly, the motion vector is inversely quantized in group units of the macro block. The dequantized bitstream is output to the motion compensator 330.

움직임 보상부(330)는 제 1 역양자화기(321)로부터 역양자화된 비트스트림이 수신되면, 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임 보상을 수행하고, 움직임 보상된 영상 신호를 출력한다. 움직임 보상부(330)는 제 2 역양자화기(322)로부터 역양자화된 비트스트림이 수신되면, 매크로 블록의 그룹 단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임 보상을 수행하고, 움직임 보상된 영상 신호를 출력한다. When the dequantized bitstream is received from the first inverse quantizer 321, the motion compensator 330 performs motion compensation on the macroblock by using the dequantized motion vector in macroblock units and performs motion compensation. Output the video signal. When the dequantized bitstream is received from the second inverse quantizer 322, the motion compensator 330 performs motion compensation on the macroblock by using the dequantized motion vector in group units of the macroblock, and the motion The compensated video signal is output.

도 8은 도 3이 상술한 바와 같이 수신되는 매크로 블록단위로 움직임 벡터 할당단위를 나타내는 플래그가 삽입된 비트스트림을 복호화하는 장치로 정의될 경우에, 그에 대응되는 영상 부호화 장치의 기능 블록도이다. 8 is a functional block diagram of a video encoding apparatus corresponding to FIG. 3 when it is defined as an apparatus for decoding a bitstream in which a flag indicating a motion vector allocation unit is inserted in a macro block unit as described above.

도 8을 참조하면, 영상 부호화 장치는 블록기반 움직임 추정부(801), 매크로 블록의 그룹핑 처리부(802), 양자화부(803), 및 비트스트림 패킹부(804)를 포함한다. Referring to FIG. 8, the apparatus for encoding an image includes a block-based motion estimator 801, a grouping processor 802 for a macroblock, a quantization unit 803, and a bitstream packing unit 804.

블록기반 움직임 추정부(801)는 도 5의 블록기반 움직임 추정부(502)와 동일하게 구성되어 동작한다. 따라서, 블록기반 움직임 추정부(801)는 입력되는 영상신호에 대해 매크로 블록단위로 검출된 움직임 벡터를 포함하는 움직임 추정 결과를 출력한다. The block-based motion estimation unit 801 is configured and operates in the same manner as the block-based motion estimation unit 502 of FIG. 5. Accordingly, the block-based motion estimation unit 801 outputs a motion estimation result including a motion vector detected in units of macro blocks with respect to an input image signal.

매크로 블록의 그룹핑 처리부(802)는 블록기반 움직임 추정부(801)에서 추정된 결과를 토대로 각 매크로 블록의 움직임 벡터를 비교하고, 움직임 벡터가 동일한 것으로 간주되는 매크로 블록을 그룹핑한다. 그룹핑 결과를 토대로 매크로 블록단위로 움직임 벡터 할당단위를 나타내는 플래그(GMBMFlag)를 결정하고, 결정된 플래그를 비트스트림 패킹부(804)로 제공하면서 블록기반 움직임 추정부(801)로부터 전송된 움직임 추정 결과를 양자화부(803)로 전송한다. The macroblock grouping processor 802 compares the motion vectors of each macroblock based on the result estimated by the block-based motion estimation unit 801, and groups the macroblocks in which the motion vectors are considered to be the same. Based on the grouping result, a flag (GMBMFlag) indicating a motion vector allocation unit is determined in macroblock units, and the motion estimation result transmitted from the block-based motion estimation unit 801 is provided while providing the determined flag to the bitstream packing unit 804. Transmit to quantizer 803.

양자화부(803)는 각 매크로 블록단위로 움직임 추정된 결과를 양자화하여 출력한다. 출력된 양자화 결과는 비트스트림 패킹부(804)로 전송된다. The quantization unit 803 quantizes and outputs the motion estimation result in units of macroblocks. The output quantization result is transmitted to the bitstream packing unit 804.

비트스트림 패킹부(804)는 매크로 블록의 그룹핑 처리부(802)로부터 전송되는 플래그 값을 토대로 양자화부(803)로부터 전송되는 양자화된 값의 비트스트림을 패킹한다. 이에 따라 도 7에 도시된 바와 같은 구조를 갖는 비트스트림이 출력될 수 있다. The bitstream packing unit 804 packs the bitstream of the quantized value transmitted from the quantization unit 803 based on the flag value transmitted from the grouping processing unit 802 of the macro block. Accordingly, a bitstream having a structure as shown in FIG. 7 may be output.

도 9는 본 발명의 다른 실시 예에 따른 영상 복호화 장치의 기능 블록도이다. 도 9에 도시된 움직임 복호화 장치는 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록단위로 할당된 경우이다. 9 is a functional block diagram of an image decoding apparatus according to another embodiment of the present invention. In the motion decoding apparatus illustrated in FIG. 9, a flag indicating a motion vector allocation unit is allocated in a slice unit and a macroblock unit.

도 9를 참조하면, 움직임 복호화 장치는 언패킹부(910), 역양자화부(920), 및 움직임 보상부(930)를 포함한다. Referring to FIG. 9, the motion decoding apparatus includes an unpacking unit 910, an inverse quantization unit 920, and a motion compensation unit 930.

언패킹부(910)는 수신되는 비트스트림에 포함되어 있는 움직임 벡터 할당단위를 나타내는 플래그를 토대로 수신되는 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언패킹한다. 매크로 블록단위의 언패킹은 매크로 블록의 그룹에 포함되 는 매크로 블록에 대한 언패킹과 매크로 블록의 그룹에 포함되지 않는 매크로 블록에 대한 언패킹이 별도로 운영된다. 따라서 언패킹부(910)는 도 9에 도시된 바와 같이 플래그 검출기(911), 제 1 언패킹 프로세서(912), 제 2 언패킹 프로세서(913), 및 제 3 언패킹 프로세서(914)를 포함한다. The unpacking unit 910 unpacks the received bitstream in units of slices or macroblocks based on a flag indicating a motion vector allocation unit included in the received bitstream. Unpacking of macroblock units is performed by unpacking macroblocks included in a group of macroblocks and unpacking of macroblocks not included in a group of macroblocks. Accordingly, the unpacking unit 910 includes a flag detector 911, a first unpacking processor 912, a second unpacking processor 913, and a third unpacking processor 914 as shown in FIG. 9. do.

플래그 검출기(911)는 비트스트림이 수신되면, 수신된 비트스트림에서 움직임 벡터 할당단위를 나타내는 플래그를 검출한다. 도 9의 경우에, 수신되는 비트스트림은 도 10(a) 또는 도 10(b)와 같은 구조를 갖는다. 도 10(a)은 하나의 슬라이스에 하나의 움직임 벡터가 할당된 경우로 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위로 할당된 비트스트림 구조이고, 도 10(a)는 하나의 슬라이스에 매크로 블록의 그룹이 정의된 경우로 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록단위로 할당된 비트스트림 구조이다. When the bitstream is received, the flag detector 911 detects a flag indicating a motion vector allocation unit in the received bitstream. In the case of FIG. 9, the received bitstream has a structure as shown in FIG. 10 (a) or FIG. 10 (b). FIG. 10A illustrates a bitstream structure in which a flag indicating a motion vector allocation unit is allocated in a slice unit when one motion vector is allocated to one slice. FIG. In a case where a group is defined, a flag indicating a motion vector allocation unit is a bitstream structure in which slices and macroblocks are allocated.

따라서, 플래그 검출기(911)는 검출된 플래그가 슬라이스 단위로 할당된 플래그(SMFlag)이고, 플래그(SMFlag) 값이 "1"이면, 수신된 비트스트림을 제 1 언패킹 프로세서(912)로 전송한다. Accordingly, the flag detector 911 transmits the received bitstream to the first unpacking processor 912 when the detected flag is a flag SMFlag allocated in a slice unit and the flag SMFlag value is "1". .

제 1 언패킹 프로세서(912)는 수신된 비트스트림을 슬라이스단위로 언패킹하여 출력한다. 출력된 언패킹된 비트스트림은 역양자화부(920)의 제 1 역양자화기(921)로 전송된다. The first unpacking processor 912 unpacks and receives the received bitstream in slice units. The output unpacked bitstream is transmitted to the first dequantizer 921 of the dequantizer 920.

플래그 검출기(911)는 검출된 플래그가 슬라이스 단위로 할당된 플래그(SMFlag)이고 플래그(SMFlag) 값이 "0"이면, 수신된 비트스트림으로부터 움직임 벡터 할당단위를 나타내는 플래그를 다시 검출한다. 이에 따라 매크로 블록단위로 할 당된 플래그(GMBMFlag)가 검출되고, 검출된 플래그(GMBMFlag) 값이 "0"이면, 수신된 비트스트림을 제 2 언패킹 프로세서(913)로 전송한다. The flag detector 911 detects a flag indicating a motion vector allocation unit again from the received bitstream when the detected flag is a flag SMFlag allocated in slice units and the flag SMFlag value is "0". Accordingly, the flag GMBMFlag allocated in macroblock units is detected, and if the detected flag GMBMFlag is "0", the received bitstream is transmitted to the second unpacking processor 913.

제 2 언패킹 프로세서(913)는 수신된 비트스트림을 매크로 블록단위로 언패킹하여 출력한다. 출력된 언패킹 비트스트림은 역양자화부(920)의 제 2 역양자화기(922)로 전송된다. The second unpacking processor 913 unpacks the received bitstream in units of macroblocks and outputs the macroblock. The output unpacked bitstream is transmitted to the second dequantizer 922 of the dequantizer 920.

또한, 플래그 검출기(911)는 검출된 플래그가 슬라이스 단위로 할당된 플래그(SMFlag)이고 플래그(SMFlag) 값이 "0"이고, 매크로 블록단위로 할당된 플래그(GMBMFlag)의 값이 "1"이면, 수신된 비트스트림을 제 3 언패킹 프로세서(914)로 전송한다. In addition, the flag detector 911 detects a flag SMFlag allocated in a slice unit, a flag SMFlag value is "0", and a flag GMBMFlag value allocated in a macroblock unit is "1". The received bitstream is transmitted to the third unpacking processor 914.

제 3 언패킹 프로세서(914)는 수신된 비트스트림을 매크로 블록의 그룹단위로 언패킹하여 출력한다. 매크로 블록의 그룹단위 언패킹은 매크로 블록단위로 언패킹이 이루어지기는 하나, 움직임 벡터가 매크로 블록의 그룹에 포함되는 매크로 블록중 첫 번째 매크로 블록에만 할당되어 있으므로 매크로 블록의 그룹에 포함되어 있는 매크로 블록중 첫 번째 매크로 블록에 대한 언패킹 시, 할당된 움직임 벡터에 대한 언패킹을 수행하나 매크로 블록의 그룹에 포함되는 나머지 매크로 블록에 대한 언패킹 시 움직임 벡터에 대한 언패킹을 수행하지 않는다. 출력된 언패킹 비트스트림은 역양자화부(920)의 제 3 역양자화기(923)로 전송된다. The third unpacking processor 914 unpacks the received bitstream in group units of the macro block and outputs the unpacked unit. Although unpacking of macroblocks is performed in macroblock units, macros included in macroblock groups because motion vectors are assigned only to the first macroblock among macroblocks included in macroblock groups. When unpacking the first macroblock among the blocks, unpacking of the allocated motion vectors is performed, but unpacking of the motion vectors is not performed when unpacking the remaining macroblocks included in the group of macroblocks. The output unpacked bitstream is transmitted to the third dequantizer 923 of the dequantizer 920.

역양자화부(920)는 언패킹된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 역양자화한다. 이 때, 역양자화부(920)는 매크로 블록단위의 역양자화 시, 매크로 블록의 그룹에 포함되는 매크로 블록과 매크로 블록의 그룹에 포함되지 않 는 매크로 블록에 대해 별도의 역양자화 처리를 수행하도록 구성된다. 이에 따라 역양자화부(920)는 제 1 역양자화기(921), 제 2 역양자화기(922), 및 제 3 역양자화기(923)를 포함한다. The dequantization unit 920 dequantizes the unpacked bitstream in units of slices or macroblocks. In this case, the inverse quantization unit 920 is configured to perform separate inverse quantization processing for macroblocks included in a group of macroblocks and macroblocks not included in a group of macroblocks when inverse quantization of a macroblock unit occurs. do. Accordingly, the inverse quantizer 920 includes a first inverse quantizer 921, a second inverse quantizer 922, and a third inverse quantizer 923.

제 1 역양자화기(921)는 수신되는 언패킹된 비트스트림을 슬라이스 단위로 역양자화한다. 이에 따라 슬라이스 단위로 역양자화된 움직임 벡터가 출력된다. 슬라이스 단위로 역양자화된 비트스트림은 움직임 보상부(930)로 출력된다. The first dequantizer 921 dequantizes the received unpacked bitstream in slice units. Accordingly, a motion vector dequantized in slice units is output. The bitstream dequantized in slice units is output to the motion compensator 930.

제 2 역양자화기(922)는 수신되는 언패킹된 비트스트림을 매크로 블록단위로 역양자화한다. 이에 따라 매크로 블록단위로 역양자화된 움직임 벡터가 출력된다. 매크로 블록단위로 역양자화된 비트스트림은 움지임 보상부(930)로 출력된다. The second dequantizer 922 dequantizes the received unpacked bitstream in units of macro blocks. Accordingly, a motion vector dequantized in macroblock units is output. The bitstream dequantized in macroblock units is output to the motion compensation unit 930.

제 3 역양자화기(923)는 수신되는 언패킹된 비트스트림을 매크로 블록의 그룹단위로 역양자화한다. 이에 따라 매크로 블록의 그룹단위로 역양자화된 움직임 벡터가 출력된다. 매크로 블록의 그룹단위로 역양자화된 비트스트림은 움직임 보상부(930)로 출력된다. The third dequantizer 923 dequantizes the received unpacked bitstream in groups of macro blocks. Accordingly, a motion vector dequantized in group units of the macroblock is output. The bitstream dequantized in group units of the macroblock is output to the motion compensator 930.

움직임 보상부(930)는 제 1 역양자화기(921)로부터 역양자화된 데이터가 수신되면, 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상한다. 움직임 보상부(930)는 제 2 역양자화기(922)로부터 역양자화된 데이터가 수신되면, 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임을 보상한다. 움직임 보상부(930)는 제 3 역양자화기(923)로부터 역양자화된 데이터가 수신되면, 매크로 블록의 그룹 단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함되는 매크로 블록에 대한 움직임을 보상한다. When the dequantized data is received from the first dequantizer 921, the motion compensator 930 compensates the motion of all macro blocks included in the slice by using the dequantized motion vector in the slice unit. When the dequantized data is received from the second dequantizer 922, the motion compensator 930 compensates for the motion of the macro block by using the dequantized motion vector in macroblock units. When the inverse quantized data is received from the third inverse quantizer 923, the motion compensator 930 uses the inverse quantized motion vector in groups of macroblocks to move the macroblocks included in the macroblock group. To compensate.

도 11은 도 9에 도시된 바와 같은 영상 복호화 장치에 대응되는 영상 부호화 장치의 기능 블록도이다. 즉, 도 11은 움직임 벡터 할당단위를 나타내는 플래그를 슬라이스 단위 및 매크로 블록단위로 할당하고, 할당되는 플래그에 따라 슬라이스 단위 또는 매크로 블록단위 또는 매크로 블록의 그룹 단위로 움직임 벡터를 할당하는 영상 부호화 장치의 기능 블록도이다. FIG. 11 is a functional block diagram of an image encoding apparatus corresponding to the image decoding apparatus illustrated in FIG. 9. That is, FIG. 11 is a view illustrating a video encoding apparatus for allocating a flag indicating a motion vector allocation unit in a slice unit and a macroblock unit, and allocating a motion vector in a slice unit, a macroblock unit, or a group unit of a macroblock according to the allocated flag. This is a functional block diagram.

도 11을 참조하면, 영상 부호화 장치는 슬라이스 기반 움직임 추정부(110), 블록기반 움직임 추정부(1102), 매크로 블록의 그룹핑 처리부(1103), 움직임 추정 타입 선택 및 플래그 값 결정부(1104), 양자화부(1105), 및 비트스트림 패킹부(1106)를 포함한다. Referring to FIG. 11, the apparatus for encoding an image includes a slice-based motion estimator 110, a block-based motion estimator 1102, a macroblock grouping processor 1103, a motion estimation type selection and flag value determiner 1104, A quantization unit 1105 and a bitstream packing unit 1106.

슬라이스 기반 움직임 추정부(1101)는 도 5의 슬라이스 기반 움직임 추정부(501)와 동일하게 구성되고 동작한다. 블록기반 움직임 추정부(1102)는 도 8의 블록기반 움직임 추정부(801)와 동일하게 구성되고 동작한다. The slice-based motion estimator 1101 is configured and operates in the same manner as the slice-based motion estimator 501 of FIG. 5. The block-based motion estimator 1102 is configured and operates in the same manner as the block-based motion estimator 801 of FIG. 8.

매크로 블록의 그룹핑 처리부(1103)는 도 8의 매크로 블록의 그룹핑 처리부(802)와 동일하게 구성되고 동작한다. The grouping processor 1103 of the macro block is configured and operates in the same manner as the grouping processor 802 of the macro block of FIG. 8.

움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 슬라이스기반 움직임 추정부(1101)로부터 출력되는 RD 코스트와 매크로 블록의 그룹핑 처리부(1103)로부터 출력되는 RD 코스트를 비교하여 작은 값을 출력한 움직임 추정 타입을 최적의 타입으로 선택한다. The motion estimation type selection and flag value determination unit 1104 compares the RD cost output from the slice-based motion estimation unit 1101 with the RD cost output from the grouping processing unit 1103 of the macroblock and outputs a small value. Select the type as the best type.

즉, 슬라이스기반 움직임 추정부(1101)로부터 출력되는 RD 코스트가 매크로 블록의 그룹핑 처리부(1103)로부터 출력되는 RD 코스트보다 작으면, 움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 슬라이스기반 움직임 추정부(1101)에서의 움직임 추정 타입을 선택하고, 슬라이스 단위 플래그(SMFlag)의 값을 "1"로 결정한다. 그 다음 움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 슬라이스기반 움직임 추정부(1101)로부터 출력되는 움직임 추정 결과를 양자화부(1105)로 전송하면서, 결정된 슬라이스 단위 플래그의 값(SMFlag=1)을 비트스트림 패킹부(1106)로 제공한다. That is, if the RD cost output from the slice-based motion estimation unit 1101 is smaller than the RD cost output from the grouping processing unit 1103 of the macro block, the motion estimation type selection and flag value determination unit 1104 may slice-based motion estimation. The motion estimation type in the government unit 1101 is selected, and the value of the slice unit flag SMFlag is determined as "1". Next, the motion estimation type selection and flag value determination unit 1104 transmits the motion estimation result output from the slice-based motion estimation unit 1101 to the quantization unit 1105, and determines the slice unit flag value (SMFlag = 1). To the bitstream packing unit 1106.

반면에, 매크로 블록의 그룹핑 처리부(1103)로부터 출력되는 RD 코스트가 슬라이스기반 움직임 추정부(1101)로부터 출력되는 RD 코스트보다 작으면, 움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 매크로 블록의 그룹핑 처리부(1103)에서의 움직임 추정 타입을 선택하고, 슬라이스 단위의 플래그(SMFlag) 값을 "0"으로 결정한다. 그 다음 움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 매크로 블록의 그룹핑 처리부(1103)에서 그룹핑 처리한 결과를 토대로 매크로 블록단위로 할당되는 움직임 벡터 할당단위를 나타내는 플래그(GMBMFlag)를 결정한다. 즉, 매크로 블록단위로 해당되는 매크로 블록이 매크로 블록의 그룹에 포함되지 않으면, 플래그(GMBMFlag)의 값을 "0"으로 결정하고, 해당되는 매크로 블록이 매크로 블록의 그룹에 포함되면, 플래그(GMBMFlag)의 값을 "1"로 결정한다. On the other hand, if the RD cost output from the macroblock grouping processor 1103 is less than the RD cost output from the slice-based motion estimation unit 1101, the motion estimation type selection and flag value determination unit 1104 may determine the macroblock of the macroblock. The motion estimation type in the grouping processor 1103 is selected, and a flag SMFlag value of a slice unit is determined as "0". Next, the motion estimation type selection and flag value determination unit 1104 determines a flag GMBMFlag indicating a motion vector allocation unit allocated in macroblock units, based on the grouping processing result of the macroblock grouping processing unit 1103. That is, if the macroblock corresponding to the macroblock unit is not included in the group of the macroblock, the value of the flag GMBMFlag is determined as "0", and if the corresponding macroblock is included in the group of the macroblock, the flag GMBMFlag ) Is determined as "1".

움직임 추정 타입 선택 및 플래그 값 결정부(1104)는 결정된 움직임 벡터 할당단위를 나타내는 플래그 값들을 슬라이스 단위 및 매크로 블록단위로 비트스트림 패킹부(1106)로 제공하고, 선택된 움직임 추정 타입에 따라 슬라이스 기반 움직임 추정부(1101)로부터 전송되는 움직임 추정 결과와 매크로 블록의 그룹핑 처리부(1103)로부터 전송되는 블록기반 움직임 추정 결과중 하나를 양자화부(1105)로 전송한다. The motion estimation type selection and flag value determination unit 1104 provides flag values indicating the determined motion vector allocation unit to the bitstream packing unit 1106 in slice units and macro block units, and slice-based motion according to the selected motion estimation type. The motion estimation result transmitted from the estimator 1101 and the block-based motion estimation result transmitted from the macroblock grouping processor 1103 are transmitted to the quantization unit 1105.

양자화부(1105)는 움직임 추정 타입 선택 및 플래그 값 결정부(1104)로부터 전송되는 움직임 추정된 영상 데이터를 양자화하여 출력한다. The quantization unit 1105 quantizes and outputs motion estimation image data transmitted from the motion estimation type selection and flag value determination unit 1104.

비트스트림 패킹부(1106)는 움직임 추정 타입 선택 및 플래그 값 결정부(1104)로부터 제공되는 슬라이스 단위의 플래그(SMFlag) 값 및 매크로 블록단위의 플래그(GMBMFlag) 값을 토대로 양자화부(1105)로부터 출력되는 양자화된 영상신호의 비트스트림을 도 10(a) 또는 도 10(b)에 도시된 바와 같이 패킹하여 출력한다. The bitstream packing unit 1106 outputs from the quantization unit 1105 based on the slice unit flag (SMFlag) and the macro block unit flag (GMBMFlag) value provided from the motion estimation type selection and flag value determination unit 1104. The bitstream of the quantized video signal is packed and output as shown in FIG. 10 (a) or 10 (b).

즉 슬라이스 단위 플래그(SMFlag)의 값이 "1"이면, 비트스트림 패킹부(1106)는 도 10(a)에 도시된 바와 같이 양자화된 영상신호의 비트스트림을 패킹한다. 이에 따라 비트스트림 패킹부(1106)는 하나의 슬라이스에 하나의 움직임 벡터가 할당된 비트스트림을 출력한다.That is, when the slice unit flag SMFlag is "1", the bitstream packing unit 1106 packs the bitstream of the quantized video signal as shown in FIG. Accordingly, the bitstream packing unit 1106 outputs a bitstream in which one motion vector is allocated to one slice.

슬라이스 단위 플래그(SMFlag)의 값이 "0"이고, 매크로 블록단위의 플래그(GMBMFlag)의 값이 "1"인 매크로 블록이 존재하면, 비트스트림 패킹부(1106)는 도 10(b)에 도시된 바와 같이 양자화된 영상신호의 비트스트림을 패킹한다. 이에 따라 비트스트림 패킹부(1106)는 매크로 블록의 그룹에 포함되지 않는 매크로 블록에는 독립적인 움직임 벡터를 할당하고, 매크로 블록의 그룹에 포함된 매크로 블록은 매크로 블록의 그룹을 대표하는 움직임 벡터를 매크로 블록의 그룹의 첫 번째 매크로 블록에 할당하고 매크로 블록의 그룹에 포함되는 나머지 매크로 블록에는 움직임 벡터를 할당하지 않은 비트스트림을 출력한다. If there is a macro block in which the value of the slice unit flag SMFlag is "0" and the value of the macro block unit flag GMBMFlag is "1", the bitstream packing unit 1106 is shown in Fig. 10B. As described above, the bitstream of the quantized video signal is packed. Accordingly, the bitstream packing unit 1106 assigns independent motion vectors to macroblocks not included in the group of macroblocks, and the macroblocks included in the group of macroblocks store motion vectors representing the group of macroblocks. The bitstream is allocated to the first macroblock of the group of blocks and the remaining macroblocks included in the group of the macroblock are not assigned a motion vector.

도 12는 본 발명의 또 다른 실시 예에 따른 영상 복호화 방법의 동작 흐름도이다. 12 is a flowchart illustrating an image decoding method according to another embodiment of the present invention.

영상 복호화 방법은 비트스트림이 수신되면, 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출한다(1201, 1202). 플래그는 도 3의 플래그 검출기(311) 또는 도 9의 플래그 검출기(911)에서와 같이 검출된다. 영상 복호화 방법은, 검출된 플래그를 토대로 수신된 비트스트림을 도 3 및 도 9에서 설명한 바와 같이 슬라이스 단위 또는 매크로 블록단위로 언 패킹하고, 역 양자화 한다(1203). When the bitstream is received, the image decoding method detects a flag indicating a motion vector allocation unit from the received bitstream (1201 and 1202). The flag is detected as in the flag detector 311 of FIG. 3 or the flag detector 911 of FIG. 9. In the image decoding method, the received bitstream is unpacked in a slice unit or a macroblock unit as described with reference to FIGS. 3 and 9 and dequantized (1203).

그 다음, 영상 복호화 방법은 역양자화된 비트스트림에 포함된 움직임 벡터를 이용하여 역양자화된 비트스트림의 움직임을 도 3의 움직임 보상부(330) 또는 도 9의 움직임 보상부(930)와 같이 보상한다(1204). Next, the image decoding method compensates for the motion of the dequantized bitstream using the motion vector included in the dequantized bitstream, like the motion compensator 330 of FIG. 3 or the motion compensator 930 of FIG. 9. (1204).

도 13은 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당 단위를 나타내는 플래그가 슬라이스 단위로 검출되는 경우에 적용한 예이다. FIG. 13 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in a slice unit.

영상 복호화 방법은 비트스트림이 수신되면, 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출한다(1301, 1302). 플래그는 도 3의 플래그 검출기(311)에서와 같이 검출된다. When the bitstream is received, the image decoding method detects a flag indicating a motion vector allocation unit from the received bitstream (1301 and 1302). The flag is detected as in the flag detector 311 of FIG.

검출된 플래그가 슬라이스 단위의 플래그(SMFlag)이고, 플래그(SMFlag)의 값이 "0"이면, 영상 복호화 방법은, 매크로 블록단위로 비트스트림에 대한 언패킹 및 역양자화를 수행한다(1303, 1304). 그 다음 영상 복호화 방법은 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상한다(1305). If the detected flag is a flag SMFlag in a slice unit and the value of the flag SMFlag is "0", the image decoding method performs unpacking and dequantization on the bitstream in units of macroblocks (1303 and 1304). ). In operation 1305, the image decoding method compensates for the motion of each macro block by using the motion vector dequantized in units of macro blocks.

한편, 검출된 플래그가 슬라이스 단위의 플래그(SMFlag)이고, 플래그(SMFlag)의 값이 "1"이면, 영상 복호화 방법은 슬라이스 단위로 비트스트림을 언 패킹 및 역양자화한다(1306). 그 다음 영상 복호화 방법은 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상한다(1307). On the other hand, if the detected flag is a flag SMFlag in slice units and the value of the flag SMFlag is "1", the image decoding method unpacks and dequantizes the bitstream in slice units (1306). In operation 1307, the image decoding method compensates for the motion of all the macroblocks included in the slice by using the motion vector dequantized in units of slices.

도 14는 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당 단위를 나타내는 플래그가 매크로 블록단위로 검출되는 경우에 적용한 예이다. FIG. 14 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in macroblock units.

영상 복호화 방법은 비트스트림이 수신되면, 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출한다(1401, 1402). 플래그는 도 3의 플래그 검출기(311)에서와 같이 검출된다. When the bitstream is received, the image decoding method detects a flag indicating a motion vector allocation unit from the received bitstream (1401 and 1402). The flag is detected as in the flag detector 311 of FIG.

검출된 플래그가 매크로 블록 단위의 플래그(GMBMFlag)이고, 매크로 블록단위 플래그(GMBMFlag)의 값이 "0"이면, 영상 복호화 방법은, 매크로 블록단위로 비트스트림에 대한 언패킹 및 역양자화를 수행한다(1403, 1404). 그 다음 영상 복호화 방법은 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상한다(1405). If the detected flag is a macroblock unit flag (GMBMFlag) and the macroblock unit flag (GMBMFlag) has a value of "0", the video decoding method performs unpacking and dequantization on the bitstream in units of macroblocks. (1403, 1404). In operation 1405, the image decoding method compensates for the motion of each macro block by using the motion vector dequantized in units of macro blocks.

한편, 검출된 플래그가 매크로 블록 단위의 플래그(GMBMFlag)이고, 매크로 블록단위의 플래그(GMBMFlag)의 값이 "1"이면, 영상 복호화 방법은 매크로 블록단위로 비트스트림을 언 패킹 및 역양자화한다(1406). 이 때, 영상 복호화 방법은 움 직임 벡터는 매크로 블록의 그룹단위로 언 패킹 및 역양자화한다. 이는 해당되는 슬라이스에 포함되는 매크로 블록에 대해 매크로 블록의 그룹이 형성되면, 매크로 블록의 그룹에 포함된 매크로 블록중 첫 번째 매크로 블록에만 매크로 블록의 그룹을 대표하는 움직임 벡터가 할당되기 때문이다. 따라서, 제 1406 단계에서의 매크로 블록단위의 비트스트림 언패킹 및 역양자화는 매크로 블록의 그룹단위의 비트스트림 언패킹 및 역양자화로 정의할 수 있다. On the other hand, if the detected flag is a macroblock unit flag (GMBMFlag) and the macroblock unit flag (GMBMFlag) has a value of "1", the video decoding method unpacks and dequantizes the bitstream in units of macroblocks ( 1406). In this case, the video decoding method unpacks and dequantizes a motion vector in groups of macro blocks. This is because when a macroblock group is formed for a macroblock included in a corresponding slice, a motion vector representing a group of macroblocks is assigned to only the first macroblock among the macroblocks included in the macroblock group. Accordingly, bitstream unpacking and inverse quantization of the macroblock unit in step 1406 may be defined as bitstream unpacking and inverse quantization of the group unit of the macroblock.

그 다음 영상 복호화 방법은 매크로 블록의 그룹단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함되는 매크로 블록에 대한 움직임을 보상한다(1407). In operation 1407, the image decoding method compensates for the motion of the macroblock included in the group of the macroblock by using the motion vector dequantized by the group of the macroblock.

도 15는 도 12에 도시된 영상 복호화 방법을 움직임 벡터 할당단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록단위로 검출되는 경우에 적용한 예이다. FIG. 15 illustrates an example in which the image decoding method illustrated in FIG. 12 is applied when a flag indicating a motion vector allocation unit is detected in a slice unit and a macroblock unit.

영상 복호화 방법은 비트스트림이 수신되면, 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출한다(1501, 1502). 플래그는 도 9의 플래그 검출기(911)에서와 같이 검출된다. When the bitstream is received, the image decoding method detects a flag indicating a motion vector allocation unit from the received bitstream (1501 and 1502). The flag is detected as in the flag detector 911 of FIG.

검출된 플래그가 슬라이스 단위의 플래그(SMFlag)이고, 슬라이스 단위 플래그(SMFlag)의 값이 "1"이면, 영상 복호화 방법은, 슬라이스 단위로 비트스트림을 언 패킹 및 역양자화한다(1503, 1504). 그 다음 영상 복호화 방법은 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상한다(1505).If the detected flag is a slice unit flag SMFlag and the slice unit flag SMFlag value is "1", the video decoding method unpacks and dequantizes the bitstream in slice units (1503 and 1504). Next, the image decoding method compensates for the motion of all the macroblocks included in the slice by using the dequantized motion vector in the slice unit (1505).

검출된 플래그가 슬라이스 단위의 플래그(SMFlag)이고 슬라이스 단위 플래그 (SMFlag)의 값이 "0"이면, 영상 복호화 방법은 수신된 비트스트림에서 움직임 벡터 할당단위를 나타내는 플래그를 다시 검출하고, 매크로 블록단위 플래그(GMBMFlag)가 검출되고, 검출된 매크로 블록단위 플래그(GMBMFlag)의 값이 "0"이면, 영상 복호화 방법은 매크로 블록단위로 비트스트림을 언 패킹 및 역양자화한다(1506, 1507). 그 다음 영상 복호화 방법은 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상한다(1508).If the detected flag is a slice unit flag (SMFlag) and the slice unit flag (SMFlag) is "0", the video decoding method detects a flag indicating a motion vector allocation unit again in the received bitstream, If the flag GMBMFlag is detected and the value of the detected macroblock unit flag GMBMFlag is "0", the video decoding method unpacks and dequantizes the bitstream in units of macroblocks (1506 and 1507). In operation 1508, the image decoding method compensates for the motion of each macro block by using the motion vector dequantized in units of macro blocks.

검출된 플래그가 슬라이스 단위의 플래그(SMFlag)이고 플래그(SMFlag)의 값이 "0"이면, 영상 복호화 방법은 수신된 비트스트림에서 움직임 벡터 할당단위를 나타내는 플래그를 다시 검출하고, 매크로 블록단위의 플래그(GMBMFlag)가 검출되고, 검출된 매크로 블록단위 플래그(GMBMFlag)의 값이 "1"이면, 영상 복호화 방법은 매크로 블록단위로 비트스트림을 언 패킹 및 역양자화한다(1506, 1509). 그러나, 이 때, 매크로 블록단위는 매크로 블록의 그룹단위로 정의할 수 있다. 이는 움직임 벡터가 매크로 블록의 그룹단위당 하나가 할당되기 때문이다. If the detected flag is the flag SMFlag in the slice unit and the value of the flag SMFlag is "0", the video decoding method detects a flag indicating the motion vector allocation unit again in the received bitstream, and flags the macroblock unit. If (GMBMFlag) is detected and the value of the detected macroblock unit flag (GMBMFlag) is "1", the video decoding method unpacks and dequantizes the bitstream in units of macroblocks (1506 and 1509). However, at this time, the macroblock unit may be defined as a group unit of the macroblock. This is because one motion vector is allocated per group unit of a macroblock.

그 다음 영상 복호화 방법은 매크로 블록의 그룹단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함되는 각 매크로 블록에 대한 움직임을 보상한다(1510).Next, the image decoding method compensates for the motion of each macro block included in the group of macro blocks by using the motion vector dequantized in group units of the macro block (1510).

본 발명에 따른 영상 복호화 방법에 대응되는 영상 부호화 방법은 도 5, 도 8, 및 도 11을 기반으로 구현할 수 있다. 즉, 도 5를 기반으로 입력되는 영상신호에 대해 슬라이스 단위로 움직임 벡터 할당단위를 나타내는 플래그와 움직임 벡터가 도 4(a) 및 도 4(b)에 도시된 바와 같이 할당되도록 영상 부호화 방법을 구현할 수 있다. 또는 도 8을 기반으로 입력되는 영상신호에 대해 매크로 블록단위로 움직임 벡터 할당단위를 나타내는 플래그와 움직임 벡터가 도 7에 도시된 바와 같이 할당되도록 영상 부호화 방법을 구현할 수 있다. 또는 도 11을 기반으로 입력되는 영상신호에 대해 도 10(a) 및 도 10(b)에 도시된 바와 같이 슬라이스 단위 및 매크로 블록단위로 움직임 벡터 할당단위를 나타내는 플래그를 할당하고, 슬라이스 단위 또는 매크로 블록 단위 또는 매크로 블록의 그룹 단위로 움직임 벡터가 할당되도록 영상 부호화 방법을 구현할 수 있다. An image encoding method corresponding to the image decoding method according to the present invention may be implemented based on FIGS. 5, 8, and 11. That is, a video encoding method may be implemented such that a flag indicating a motion vector allocation unit and a motion vector are allocated to a video signal input based on FIG. 5 in a slice unit as shown in FIGS. 4 (a) and 4 (b). Can be. Alternatively, an image encoding method may be implemented such that a flag indicating a motion vector allocation unit and a motion vector are allocated to a video signal input based on FIG. 8 in macroblock units as shown in FIG. 7. Alternatively, a flag indicating a motion vector allocation unit is allocated to a video signal input based on FIG. 11 in slice units and macroblock units as shown in FIGS. 10 (a) and 10 (b), and is divided into slice units or macros. An image encoding method may be implemented such that a motion vector is allocated in a block unit or a group unit of a macroblock.

본원 발명에 따른 영상 부호화 및 복호화 방법을 수행하기 위한 프로그램은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다. The program for performing the image encoding and decoding method according to the present invention can be embodied as computer readable codes on a computer readable recording medium. Computer-readable recording media include all kinds of storage devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

상술한 바와 같이 본 발명은 영상 부호화(coding)시 움직임 벡터를 슬라이스 단위, 매크로 블록단위 또는 매크로 블록의 그룹단위로 할당하여 비트스트림에 포함되는 움직임 벡터의 비트수를 줄이고, 영상 복호화 (decoding) 시 움직임 벡터 할당 단위를 나타내는 플래그를 토대로 비트스트림에 포함된 움직임 벡터를 슬라이스 단위, 매크로 블록 단위 또는 매크로 블록의 그룹 단위로 언 패킹(unpacking)하고 역양자화(de-quantization)하여 움직임 보상에 이용함으로써, 영상 데이터의 압축률을 향상시킬 수 있다. 특히, 본 발명은 정지영상이 일정 시간 지속될 경우에, 영상 데이터의 압축률을 더욱 향상시킬 수 있다. As described above, the present invention reduces the number of bits of a motion vector included in a bitstream by allocating a motion vector in a slice unit, a macroblock unit, or a group unit of a macroblock during image encoding, and at the time of image decoding. By unpacking the motion vector included in the bitstream based on a flag indicating a motion vector allocation unit in units of slices, macroblocks, or groups of macroblocks, de-quantization, and using them for motion compensation, The compression rate of the image data can be improved. In particular, the present invention can further improve the compression rate of the image data when the still image lasts for a predetermined time.

Claims (8)

영상 복호화 방법에 있어서, In the video decoding method, 비트스트림이 수신되면, 상기 수신된 비트스트림으로부터 움직임 벡터 할당 단위를 나타내는 플래그를 검출하는 단계;If a bitstream is received, detecting a flag indicating a motion vector allocation unit from the received bitstream; 상기 검출된 플래그를 토대로 상기 수신된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언 패킹하고, 역 양자화 하는 단계; 및 Unpacking and inverse quantizing the received bitstream in units of slices or macroblocks based on the detected flag; And 상기 역양자화된 비트스트림에 포함된 움직임 벡터를 이용하여 상기 역양자화된 비트스트림의 움직임을 보상하는 단계를 포함하는 영상 복호화 방법.Compensating for the motion of the dequantized bitstream using a motion vector included in the dequantized bitstream. 제 1 항에 있어서, 상기 움직임 벡터 할당 단위를 나타내는 플래그가 슬라이스 단위로 검출되면, The method of claim 1, wherein if a flag indicating the motion vector allocation unit is detected in a slice unit, 상기 움직임 보상 단계는, The motion compensation step, 상기 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상하거나 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상하는 것을 특징으로 하는 영상 복호화 방법. Compensating for the motion of all macroblocks included in the slice using the dequantized motion vector in the slice unit or compensating for the motion of each macroblock using the motion vector dequantized in the macroblock unit. Image Decoding Method. 제 1 항에 있어서, 상기 움직임 벡터 할당 단위를 나타내는 플래그가 매크로 블록단위로 검출되면, The method of claim 1, wherein when a flag indicating the motion vector allocation unit is detected in macroblock units, 상기 움직임 보상 단계는, The motion compensation step, 매크로 블록의 그룹단위로 역양자화된 움직임 벡터를 이용하여 상기 매크로 블록의 그룹에 포함된 매크로 블록에 대한 움직임을 보상하거나 각 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상하는 것을 특징으로 하는 영상 복호화 방법. Compensate for the motion of the macroblocks included in the group of macroblocks by using the dequantized motion vectors in groups of macroblocks, or use the motion vectors inversely quantized in each macroblock unit to perform motion for each macroblock. Image decoding method characterized in that the compensation. 제 1 항에 있어서, 상기 움직임 벡터 할당 단위를 나타내는 플래그가 슬라이스 단위 및 매크로 블록 단위로 검출되면, The method of claim 1, wherein if a flag indicating the motion vector allocation unit is detected in a slice unit and a macroblock unit, 상기 움직임 보상 단계는, The motion compensation step, 상기 슬라이스 단위로 검출된 플래그가 슬라이스 단위로 움직임 벡터가 할당된 것을 나타내면, If the flag detected in the slice unit indicates that a motion vector is allocated in the slice unit, 상기 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상하고,Compensating for the motions of all the macroblocks included in the slice by using the dequantized motion vector in the slice unit; 상기 슬라이스 단위로 검출된 플래그가 매크로 블록단위로 움직임 벡터가 할당된 것을 나타내고, 상기 매크로 블록 단위로 검출된 플래그가 매크로 블록의 그룹 단위로 움직임 벡터가 할당된 것을 나타내면, If the flag detected in units of slices indicates that a motion vector is allocated in units of macro blocks, and the flag detected in units of macro blocks indicates that a motion vector is allocated in units of groups of macro blocks. 상기 매크로 블록의 그룹 단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함된 매크로 블록에 대한 움직임을 보상하고, Compensating for the motion of the macroblock included in the group of the macroblock by using the dequantized motion vector in the group of the macroblock; 상기 슬라이스 단위로 검출된 플래그가 매크로 블록단위로 움직임 벡터가 할당된 것을 나타내고, 상기 매크로 블록단위로 검출된 플래그가 매크로 블록 단위로 움직임 벡터가 할당된 것을 나타내면, If the flag detected in units of slices indicates that a motion vector is allocated in units of macro blocks, and the flag detected in units of macro blocks indicates that a motion vector is allocated in units of macro blocks, 상기 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 각 매크로 블록에 대한 움직임을 보상하는 것을 특징으로 하는 영상 복호화 방법. And decoding the motion of each macro block using the motion vector dequantized in units of the macro blocks. 영상 복호화 장치에 있어서,In the video decoding apparatus, 비트스트림이 수신되면, 상기 수신된 비트스트림에 포함되어 있는 움직임 벡터 할당단위를 나타내는 플래그를 토대로 상기 수신된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 언패킹하는 비트스트림 언패킹부;A bitstream unpacking unit configured to unpack the received bitstream in a slice unit or a macroblock unit based on a flag indicating a motion vector allocation unit included in the received bitstream when the bitstream is received; 상기 언 패킹된 비트스트림을 슬라이스 단위 또는 매크로 블록단위로 역양자화하는 역양자화부;An inverse quantizer for inversely quantizing the unpacked bitstream in units of slices or units of macroblocks; 상기 역양자화부에서 역양자화된 비트스트림의 움직임을 보상하는 움직임 보상부를 포함하고, A motion compensation unit for compensating for the motion of the dequantized bitstream in the dequantization unit, 상기 움직임 벡터 할당단위를 나타내는 플래그는 슬라이스 단위 및/또는 매크로 블록 단위로 할당되고, The flag indicating the motion vector allocation unit is allocated in a slice unit and / or a macro block unit, 상기 움직임 보상부는, The motion compensation unit, 슬라이스 단위로 역양자화된 움직임 벡터를 이용하여 슬라이스에 포함된 모든 매크로 블록에 대한 움직임을 보상하거나 Compensate for the motion of all macroblocks included in a slice using a dequantized motion vector in slices 매크로 블록단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록에 대한 움직임을 보상하는 것을 특징으로 하는 영상 복호화 장치.And a motion compensation for a macro block using a motion vector dequantized in macro block units. 제 5 항에 있어서, 상기 비트스트림 언패킹부는 상기 플래그를 토대로 매크로 블록의 그룹단위로 상기 수신되는 비트스트림을 언패킹하는 기능을 더 포함하고, The method of claim 5, wherein the bitstream unpacking unit further includes a function of unpacking the received bitstream in units of macroblocks based on the flag. 상기 비트스트림 언패킹부가 상기 수신되는 비트스트림을 매크로 블록의 그룹단위로 언패킹하면, 상기 역양자화부는 상기 언패킹된 비트스트림을 매크로 블록의 그룹단위로 역양자화하는 기능을 더 포함하고,If the bitstream unpacking unit unpacks the received bitstream in groups of macro blocks, the dequantization unit further includes a function of inverse quantization of the unpacked bitstreams in groups of macro blocks. 상기 움직임 보상부는 매크로 블록의 그룹단위로 역양자화된 움직임 벡터가 수신되면, 상기 매크로 블록의 그룹단위로 역양자화된 움직임 벡터를 이용하여 매크로 블록의 그룹에 포함되는 매크로 블록에 대한 움직임을 보상하는 기능을 더 포함하는 것을 특징으로 하는 영상 복호화 장치. The motion compensator compensates for the motion of the macroblock included in the group of the macroblock using the motion vector dequantized in the group unit of the macroblock when the motion vector inversely quantized in the macroblock group is received. The video decoding apparatus further comprises. 영상 부호화 장치에 있어서,In the video encoding apparatus, 입력되는 영상신호에 대해 슬라이스 단위로 움직임을 추정하고, 상기 슬라이스 단위의 움직임 추정 결과와 상기 슬라이스 단위의 움직임 추정에 따른 알디(RD, Rate-Distortion) 코스트를 출력하는 슬라이스 기반 움직임 추정부;A slice-based motion estimator for estimating a motion in a slice unit with respect to an input image signal and outputting an RD (rate-distortion) cost according to the motion estimation result in the slice unit and the motion estimation in the slice unit; 상기 입력되는 영상신호에 대해 매크로 블록단위로 움직임을 추정하고, 상기 매크로 블록단위의 움직임 추정 결과와 상기 매크로 블록단위의 움직임 추정에 따른 알디 코스트를 출력하는 블록기반 움직임 추정부;A block-based motion estimator for estimating motion on a macroblock basis with respect to the input video signal and outputting an Aldi cost according to the motion estimation result of the macroblock unit and the motion estimation of the macroblock unit; 상기 슬라이스 기반 움직임 추정부로부터 출력되는 알디 코스트와 상기 블록기반 움직임 추정부로부터 출력되는 알디 코스트를 비교한 결과를 토대로 움직임 추정 타입을 선택하여 움직임 추정된 영상 데이터를 출력하고, 상기 선택된 움직임 추정 타입에 따라 플래그 값을 결정하는 움직임 추정 타입 선택 및 플래그 값 결정부;Based on a result of comparing the Aldi cost output from the slice-based motion estimator and the Aldi cost output from the block-based motion estimator, a motion estimation type is selected to output motion estimation image data, and the motion estimation type is output to the selected motion estimation type. A motion estimation type selection and flag value determining unit configured to determine a flag value accordingly; 상기 움직임 추정 타입 선택 및 플래그 값 결정부로부터 출력되는 움직임 추정된 영상 데이터를 양자화하는 양자화부; 및 A quantizer for quantizing the motion estimated image data output from the motion estimation type selection and flag value determining unit; And 상기 움직임 추정 타입 선택 및 플래그 값 결정부로부터 제공되는 플래그 값을 토대로 상기 양자화부로부터 출력되는 양자화된 영상 데이터의 비트스트림을 패킹하는 비트스트림 패킹부를 포함하는 영상 부호화 장치.And a bitstream packing unit for packing a bitstream of the quantized image data output from the quantization unit based on the flag value provided from the motion estimation type selection and flag value determination unit. 영상 부호화 방법에 있어서,In the video encoding method, 입력되는 영상신호에 대해 슬라이스 단위로 움직임을 추정하고, 상기 슬라이스 단위의 움직임 추정 결과와 상기 슬라이스 단위의 움직임 추정에 따른 알디(RD, Rate-Distortion) 코스트를 출력하는 단계;Estimating a motion in a slice unit with respect to an input image signal, and outputting an RD (rate-distortion) cost according to the motion estimation result in the slice unit and the motion estimation in the slice unit; 상기 입력되는 영상신호에 대해 매크로 블록단위로 움직임을 추정하고, 상기 매크로 블록단위의 움직임 추정결과와 상기 매크로 블록단위의 움직임 추정에 따른 알디 코스트를 출력하는 단계;Estimating motion on a macroblock basis with respect to the input video signal, and outputting an Aldi cost according to the motion estimation result of the macroblock unit and the motion estimation of the macroblock unit; 상기 슬라이스 단위의 움직임 추정에 따른 알디 코스트와 상기 매크로 블록단위의 움직임 추정에 따른 알디 코스트를 비교한 결과를 토대로 움직임 추정 타입을 선택하고, 선택된 움직임 추정타입에 따라 플래그 값을 결정하는 단계;Selecting a motion estimation type based on a result of comparing the Aldi cost according to the motion estimation in the slice unit with the Aldi cost according to the motion estimation in the macroblock unit, and determining a flag value according to the selected motion estimation type; 상기 선택된 움직임 추정 타입에 따른 움직임 추정된 영상 데이터를 양자화하는 단계;Quantizing the motion estimated image data according to the selected motion estimation type; 상기 플래그 값을 토대로 상기 양자화된 영상 데이터의 비트스트림을 패킹하는 단계를 포함하는 영상 부호화 방법. And packing a bitstream of the quantized image data based on the flag value.
KR1020050110906A 2005-11-18 2005-11-18 Image coding/decoding method and apparatus thereof KR100739757B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050110906A KR100739757B1 (en) 2005-11-18 2005-11-18 Image coding/decoding method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050110906A KR100739757B1 (en) 2005-11-18 2005-11-18 Image coding/decoding method and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20070053006A KR20070053006A (en) 2007-05-23
KR100739757B1 true KR100739757B1 (en) 2007-07-13

Family

ID=38275498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050110906A KR100739757B1 (en) 2005-11-18 2005-11-18 Image coding/decoding method and apparatus thereof

Country Status (1)

Country Link
KR (1) KR100739757B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010001458A (en) * 1999-06-04 2001-01-05 윤종용 Apparatus for decoding motion picture and method thereof
KR20020090664A (en) * 2001-05-29 2002-12-05 주식회사 하이닉스반도체 Apparatus of video decoder for digital television having half-sized hard ware memory and method of the same
KR20030009691A (en) * 2001-07-23 2003-02-05 엘지전자 주식회사 Apparatus for converting packet and method for converting packet using the same
KR20040003880A (en) * 2002-07-04 2004-01-13 엘지전자 주식회사 Shortening apparatus for delay time video codec

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010001458A (en) * 1999-06-04 2001-01-05 윤종용 Apparatus for decoding motion picture and method thereof
KR20020090664A (en) * 2001-05-29 2002-12-05 주식회사 하이닉스반도체 Apparatus of video decoder for digital television having half-sized hard ware memory and method of the same
KR20030009691A (en) * 2001-07-23 2003-02-05 엘지전자 주식회사 Apparatus for converting packet and method for converting packet using the same
KR20040003880A (en) * 2002-07-04 2004-01-13 엘지전자 주식회사 Shortening apparatus for delay time video codec

Also Published As

Publication number Publication date
KR20070053006A (en) 2007-05-23

Similar Documents

Publication Publication Date Title
US9942549B2 (en) Method and apparatus for encoding and decoding image by using large transform unit
US9888242B2 (en) Video encoding method with bit depth adjustment for fixed-point conversion and apparatus therefor, and video decoding method and apparatus therefor
US8315304B2 (en) Method and apparatus for encoding and decoding transform coefficients
KR101391601B1 (en) Method and apparatus for image encoding by exponential-Golomb code using optimal thresholds, and method and apparatus for image decoding by exponential-Golomb code using optimal threshold
KR102051013B1 (en) Method and device for lossy compress-encoding data and corresponding method and device for reconstructing data
JPWO2008084745A1 (en) Image coding apparatus and image decoding apparatus
WO2006008609A1 (en) System and method for motion prediction in scalable video coding
KR20090058955A (en) Method and apparatus for video coding and decoding based on variable color format
EP2227907A1 (en) Method and apparatus for quantization, and method and apparatus for inverse quantization
KR20100102386A (en) Method and apparatus for encoding/decoding image based on residual value static adaptive code table selection
JP2002223443A (en) Transcoding method and transcoder
US20120243613A9 (en) Systems, methods, and apparatus for real-time video encoding
US6362753B1 (en) Video data encoder and method of encoding video data
WO2004057866A2 (en) Elastic storage
KR100739757B1 (en) Image coding/decoding method and apparatus thereof
US9628791B2 (en) Method and device for optimizing the compression of a video stream
CN110557632B (en) Video decoding method, video decoder, and computer-readable medium
KR102409796B1 (en) Method and apparatus for improving the coding of side information required for coding a higher order ambisonics representation of a sound field
WO2004010708A1 (en) Advanced method of coding and decoding motion vector and apparatus therefor
KR101477772B1 (en) Computer readable redording meduim having recorded a computer program for executing a video decoding method using bit depth increasing
KR100449706B1 (en) Improving fractal image compression/recovery method and apparatus thereof
JP2007037184A (en) Quantization apparatus and quantization method
JP2003018014A (en) Coding method, decoding method, coder, decoder, coding program, decoding program and programs recording medium for them
JP2004363932A (en) Quantization step size deciding method of digital signal encoding and digital signal encoding device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee