KR20050052130A - Image decoding method - Google Patents

Image decoding method Download PDF

Info

Publication number
KR20050052130A
KR20050052130A KR1020030085989A KR20030085989A KR20050052130A KR 20050052130 A KR20050052130 A KR 20050052130A KR 1020030085989 A KR1020030085989 A KR 1020030085989A KR 20030085989 A KR20030085989 A KR 20030085989A KR 20050052130 A KR20050052130 A KR 20050052130A
Authority
KR
South Korea
Prior art keywords
macroblock
decoded
motion vector
slice
macroblocks
Prior art date
Application number
KR1020030085989A
Other languages
Korean (ko)
Other versions
KR100991344B1 (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 KR1020030085989A priority Critical patent/KR100991344B1/en
Publication of KR20050052130A publication Critical patent/KR20050052130A/en
Application granted granted Critical
Publication of KR100991344B1 publication Critical patent/KR100991344B1/en

Links

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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상을 디코딩하는 방법에 관한 것으로, 픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단하는 제 1 단계와; 상기 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는 제 2 단계와; 상기 제 2 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하는 제 3 단계와; 상기 제 3 단계 후에, 계속적으로 상기 제 3 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, 상기 제 1 단계에서 디코딩할 매크로블록이 P 매크로블록이면, 상기 제 1 내지 제 3 단계를 계속하여 수행하는 제 4 단계와; 상기 제 4 단계에서 상기 제 3 단계를 수행한 매크로블록이 슬라이스 내의 마지막 매크로블록이면, 각각의 제 2 단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩하는 제 5 단계로 구성된다. The present invention relates to a method for decoding an image, the method comprising: a first step of determining whether a macroblock to be decoded of a slice including a plurality of macroblocks is a P macroblock; If the macroblock to be decoded is a P macroblock, finding a motion vector corresponding to the macroblock to be decoded in the reference frame; A third step of determining whether the macroblock having found the motion vector in the second step is the last macroblock in the slice; After the third step, if the macroblock continuously finding the motion vector in the third step is not the last macroblock in the slice, and the macroblock to be decoded in the first step is a P macroblock, the first to third steps A fourth step of continuing to perform; If the macroblock performing the third step in the fourth step is the last macroblock in the slice, among the macroblocks performing the second step, macroblocks having the same motion vector are merged and interpolated. ) And a fifth step of decoding.

따라서, 본 발명은 인접되고, 동일한 움직임 벡터를 가지고 있고, 참고 프레임이 동일한 블록들을 병합하여 움직임 보상을 수행함으로써, 데이터를 중복으로 읽는 것을 방지할 수 있어, 메모리의 사용을 줄이고, 소비 전력을 줄일 수 있는 효과가 있다.Accordingly, the present invention can prevent data from being read redundantly by contiguous, having the same motion vector, and the reference frame merging the same blocks to perform motion compensation, thereby reducing the use of memory and reducing power consumption. It can be effective.

Description

영상을 디코딩하는 방법{Image decoding method}Image decoding method

본 발명은 영상을 디코딩하는 방법에 관한 것으로, 보다 상세하게는 인접되고, 동일한 움직임 벡터를 가지고 있고, 참고 프레임이 동일한 블록들을 병합하여 움직임 보상을 수행함으로써, 데이터를 중복으로 읽는 것을 방지할 수 있어, 메모리의 사용을 줄이고, 소비 전력을 줄일 수 있는 영상을 디코딩하는 방법에 관한 것이다.The present invention relates to a method for decoding an image, and more particularly, by concatenating adjacent, having the same motion vector, and performing reference to the same frame by combining the same blocks, the data can be prevented from being read repeatedly. The present invention relates to a method of decoding an image, which can reduce the use of memory and reduce power consumption.

현재, 동영상 압축방법에서는 매크로 블럭을 코딩하기 위해서, 이미 코딩한 이전의 프레임에서 현재의 매크로 블럭과 유사한 부분을 찾아서 그 위치를 전송하고, 그 부분과 현재의 매크로 블럭의 차이를 코딩하는 방법으로 압축률을 높이고 있다.Currently, in the video compression method, in order to code a macro block, the compression rate is found by finding a part similar to the current macro block in the previous frame that has been coded, and transmitting the position, and coding the difference between the part and the current macro block. Is raising.

MPEG(Moving Picture Experts Group)2의 비디오 코딩에 있어서는 16x16크기의 매크로 블럭 단위로 움직임 벡터를 처리하고 있고, MPEG4 Part2의 비디오 코딩에서는 8x8크기의 블록 단위의 움직임 벡터 사용을 허용하고 있다. In MPEG (Moving Picture Experts Group) 2 video coding, motion vectors are processed in units of 16x16 macroblocks, while MPEG4 Part2 video coding allows the use of motion vectors in blocks of 8x8.

이에 더 나아가, MPEG4 Part10의 경우에는 하나의 매크로 블럭을 최대 16개의 4x4블록으로 분할하고 그에 따른 움직임벡터를 이용해서 처리하는 방법을 채택하고 있다. Furthermore, in the case of MPEG4 Part 10, a method of dividing a macro block into a maximum of 16 4x4 blocks and processing them using motion vectors is adopted.

이러한 움직임 벡터를 할당하는 블록의 크기가 작아지면 작아질수록, 차이나는 데이터의 크기가 작아져서 압축의 효율이 높아진다. The smaller the size of the block to which such a motion vector is allocated is, the smaller the size of the difference data becomes and the compression efficiency becomes higher.

하지만, 블록의 크기가 작아지면 그만큼의 움직임 벡터의 개수가 많아질 수 있고, 찾아오는 블록의 크기가 작아질수록 그만큼의 메모리 접근 횟수가 많아지게 된다. However, as the size of a block decreases, the number of motion vectors may increase, and as the size of a visiting block decreases, the number of memory accesses increases.

도 1은 일반적인 MPEG용 비디오 디코더의 개략적인 구성 블록도로서, 압축된 비트 스트림을 가변길이 디코딩하여 움직임 벡터, 양자화값과 DCT(Discrete Cosine Transform) 계수로 분리하는 VLD(Variable Length Decoder)(10)와; 상기 VLD(10)에서 분리된 DCT 계수를 역양자화(Inverse Quantized)하는 역양자화부(20)와; 상기 역양자화부(20)에서 역양자화된 DCT 계수를 역이산 코사인 변환(Inverse Discrete Cosine Transform)하는 IDCT(30)와; 상기 VLD(10)로부터 추출된 움직임 벡터를 이용하여 움직임 보상하는 움직임 보상부(50)와; 상기 IDCT(30)에서 역이산 코사인 변환된 데이터와 상기 움직임 보상부(50)에 보상된 데이터를 더하여 디코딩된 영상을 출력하는 가산기(40)로 구성된다.1 is a schematic block diagram of a typical video decoder for MPEG, which is a variable length decoder (VLD) for variable length decoding a compressed bit stream into motion vectors, quantization values, and discrete cosine transform (DCT) coefficients. Wow; An inverse quantization unit 20 for inverse quantization of the DCT coefficients separated from the VLD; An inverse discrete cosine transform of the inverse quantized DCT coefficients by the inverse quantization unit 20; A motion compensator (50) for motion compensation using the motion vectors extracted from the VLD (10); The IDCT 30 includes an adder 40 for outputting a decoded image by adding the inverse discrete cosine transformed data and the compensated data to the motion compensator 50.

이렇게 구성된 MPEG용 비디오 디코더는 압축된 비트 스트림을 VLD(10)에서 가변길이 디코딩하여 움직임 벡터, 양자화값과 DCT 계수로 분리하고, 역양자화부(20)에서 상기 VLD(10)에서 분리된 DCT 계수를 역양자화하고, 상기 역양자화부(20)에서 역양자화된 DCT 계수를 IDCT(30)에서 역이산 코사인 변환한다.The video decoder for MPEG is configured to decode the compressed bit stream variable length in the VLD (10) to separate the motion vector, the quantization value and the DCT coefficients, and inverse quantizer 20 separates the DCT coefficients separated from the VLD (10). Inverse quantization, and inverse discrete cosine transform the DCT coefficient dequantized by the dequantizer 20 in the IDCT (30).

그리고, 상기 VLD(10)로부터 추출된 움직임 벡터를 이용하여 상기 움직임 보상부(50)에서 움직임 보상하고, 이 움직임 보상부(50)에서 보상된 데이터와 상기 상기 IDCT(30)에서 역이산 코사인 변환된 데이터를 가산기(40)에서 더하여 디코딩된 영상으로 출력한다.The motion compensation unit 50 performs motion compensation using the motion vector extracted from the VLD 10, and the data compensated in the motion compensation unit 50 and the inverse discrete cosine transform in the IDCT 30. The added data is added by the adder 40 and output as a decoded image.

도 2는 종래 기술에 따른 영상의 블록들을 복원하기 위한 데이터 구성 방법을 개략적으로 도시한 도면으로서, 일반적으로, 하나의 블록을 복원하는데 필요한 데이터의 크기는 블록의 크기와 복원에 필요한 데이터를 구성하는 방법에 따라 결정된다. FIG. 2 is a view schematically illustrating a data configuration method for reconstructing blocks of an image according to the prior art. In general, the size of data required for reconstructing one block constitutes the size of the block and data required for reconstruction. It depends on the method.

현재 디코딩하는 블록(61)이 참고하는 위치가 정수의 위치일 경우에는 현재의 블록의 크기만큼의 데이터(도 2의 'a')가 필요하다. When the position referenced by the current decoding block 61 is an integer position, data corresponding to the size of the current block ('a' in FIG. 2) is required.

그리고, 현재 디코딩하는 블록(62)이 참고하는 위치가 정수가 아니라 1/2 화소 또는 1/4 화소일 경우에는 현재 블록의 크기보다 더 큰 분량의 데이터(도 2의 'b'에 해당)를 참고해야하며 이를 필터링 해야한다. When the position of the block 62 to be decoded is referred to as a half pixel or a quarter pixel instead of an integer, a larger amount of data (corresponding to 'b' in FIG. 2) may be obtained. You should note it and filter it out.

또한, 만일 인접하는 두 개의 블록(63,64)이 같은 움직임 벡터를 가지며, 동일한 참고 픽쳐(Reference picture)를 참고할 경우에 종래의 방법에서는 개별의 블록(63,64) 각각이 메모리로부터 데이터를 읽어서 처리한다. In addition, if two adjacent blocks 63 and 64 have the same motion vector and reference the same reference picture, in the conventional method, each of the individual blocks 63 and 64 reads data from memory. Process.

이 때, 각각이 블록이 메모리로부터 읽은 데이터는 도 2의 'c'의 빗금친 부분과 같이, 중복되어 읽은 영역이 존재하게 된다.At this time, the data read from the memory by each block, such as the hatched portion of 'c' of FIG.

그러므로, 동일한 움직임 벡터를 가지고 있고, 동일한 참고 영상을 참고할 경우, 불필요하게 읽는 데이터량이 증가됨으로, 결국, 메모리의 사용이 증가되고, 소비 전력이 증가되는 문제점이 발생하게 된다.Therefore, when the same motion vector is referenced and the same reference image is referred to, an unnecessary reading amount of data is increased, resulting in an increase in the use of memory and an increase in power consumption.

이에 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 인접되고, 동일한 움직임 벡터를 가지고 있고, 참고 프레임이 동일한 블록들을 병합하여 움직임 보상을 수행함으로써, 데이터를 중복으로 읽는 것을 방지할 수 있어, 메모리의 사용을 줄이고, 소비 전력을 줄일 수 있는 영상을 디코딩하는 방법을 제공하는 데 그 목적이 있다.Accordingly, the present invention has been devised to solve the above-described problems. The present invention can prevent data from being read redundantly by performing motion compensation by concatenating adjacent blocks with the same motion vector and the same reference frame. Therefore, the object of the present invention is to provide a method of decoding an image which can reduce the use of memory and reduce power consumption.

상기한 본 발명의 목적을 달성하기 위한 바람직한 양태(樣態)는, 픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단하는 제 1 단계와;A preferred aspect for achieving the above object of the present invention comprises: a first step of determining whether a macroblock to be decoded of a slice comprised of a plurality of macroblocks is a P macroblock;

상기 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는 제 2 단계와;If the macroblock to be decoded is a P macroblock, finding a motion vector corresponding to the macroblock to be decoded in the reference frame;

상기 제 2 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하는 제 3 단계와;A third step of determining whether the macroblock having found the motion vector in the second step is the last macroblock in the slice;

상기 제 3 단계 후에, 계속적으로 상기 제 3 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, 상기 제 1 단계에서 디코딩할 매크로블록이 P 매크로블록이면, 상기 제 1 내지 제 3 단계를 계속하여 수행하는 제 4 단계와;After the third step, if the macroblock continuously finding the motion vector in the third step is not the last macroblock in the slice, and the macroblock to be decoded in the first step is a P macroblock, the first to third steps A fourth step of continuing to perform;

상기 제 4 단계에서 상기 제 3 단계를 수행한 매크로블록이 슬라이스 내의 마지막 매크로블록이면, 각각의 제 2 단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩하는 제 5 단계로 구성된 영상을 디코딩하는 방법이 제공된다.If the macroblock performing the third step in the fourth step is the last macroblock in the slice, among the macroblocks performing the second step, macroblocks having the same motion vector are merged and interpolated. A method of decoding an image comprising a fifth step of decoding) is provided.

상기한 본 발명의 목적을 달성하기 위한 바람직한 다른 양태(樣態)는, 픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단하는 제 1 단계와;Another preferred aspect for achieving the above object of the present invention includes a first step of determining whether a macroblock to be decoded of a slice composed of a plurality of macroblocks is included in a picture and is a P macroblock; ;

상기 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는 제 2 단계와;If the macroblock to be decoded is a P macroblock, finding a motion vector corresponding to the macroblock to be decoded in the reference frame;

상기 제 2 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하는 제 3 단계와;A third step of determining whether the macroblock having found the motion vector in the second step is the last macroblock in the slice;

상기 제 3 단계 후에, 계속적으로 상기 제 3 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, 상기 제 1 단계에서 디코딩할 매크로블록이 P 매크로블록이면, 상기 제 1 내지 제 3 단계를 계속하여 수행하는 제 4 단계와; After the third step, if the macroblock continuously finding the motion vector in the third step is not the last macroblock in the slice, and the macroblock to be decoded in the first step is a P macroblock, the first to third steps A fourth step of continuing to perform;

상기 제 4 단계에서 상기 제 1 단계를 수행한 매크로블록이 P 매크로블록이 아닌 I 매크로블록이면, 각각의 제 2 단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩하는 제 5 단계와;If the macroblock performing the first step in the fourth step is an I macroblock instead of a P macroblock, among the macroblocks performing the second step, macroblocks having the same motion vector are merged. A fifth step of interpolating and decoding;

상기 제 5 단계에서, 디코딩된 매크로블록에서 데이터를 참고하여 I 매크로블록을 디코딩하는 제 6 단계로 구성된 영상을 디코딩하는 방법이 제공된다.In the fifth step, a method for decoding an image comprising a sixth step of decoding the I macroblock by referring to data in the decoded macroblock is provided.

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

도 3은 본 발명에 따른 영상을 디코딩하는 방법을 도시한 플로우챠트로서, 도 3을 설명하기 앞서, 하나의 픽쳐(Picture)는 복수개의 슬라이스(Slice)들로 구성되어 있고, 이 슬라이스는 복수개의 P 매크로블록들로 구성되어 있거나 또는 복수개의 P 매크로블록들과 I 매크로블록들로 구성되어 있다. 3 is a flowchart illustrating a method of decoding an image according to the present invention. Before describing FIG. 3, one picture is composed of a plurality of slices, and the slice is a plurality of slices. It is composed of P macroblocks or a plurality of P macroblocks and I macroblocks.

여기서, P 매크로블록은 이전 프레임에서 데이터를 참고하는 매크로블록이고, I 매크로블록은 현재 디코딩된 매크로블록에서 데이터를 참고하는 매크로블록이다.Here, the P macroblock is a macroblock referencing data in the previous frame, and the I macroblock is a macroblock referencing data in the currently decoded macroblock.

본 발명의 도 3은 픽쳐에 포함된 하나의 슬라이스를 디코딩하는 방법으로서, 먼저, 픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단한다.(S100단계)3 of the present invention is a method of decoding one slice included in a picture. First, it is determined whether a macroblock to be decoded for a slice included in the picture and composed of a plurality of macroblocks is a P macroblock. S100 step)

이렇게, S100단계를 수행하는 것은, 도 4a와 4b에 도시된 것과 같이, 슬라이스(200,300)에서 디코딩할 매크로블록이 도 4a와 같이, P 매크로블록(201)인 경우와 도 4b와 같이, I 매크로블록(304)인 경우가 있기 때문이다.Thus, performing step S100, as shown in Figures 4a and 4b, the macro block to be decoded in the slice (200, 300), as shown in Figure 4a, the P macroblock 201 and as shown in Figure 4b, as shown in Figure 4b This is because there is a case of block 304.

그 후, 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는다.(S110단계)Thereafter, if the macroblock to be decoded is a P macroblock, a motion vector corresponding to the macroblock to be decoded in the reference frame is found (step S110).

연이어, 상기 S110단계를 수행하여 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단한다.(S120단계)Subsequently, it is determined whether the macroblock having found the motion vector is the last macroblock in the slice by performing step S110 (step S120).

계속적으로, 상기 S120단계에서, 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, S100단계에서 디코딩할 매크로블록이 P 매크로블록이면, 즉, 도 4a와 같이, 슬라이스의 매크로블록들이 연속적으로 P 매크로블록인 경우에, 상기 S100단계 내지 S120단계를 계속하여 수행한다.Subsequently, in step S120, if the macroblock that finds the motion vector is not the last macroblock in the slice, and the macroblock to be decoded in step S100 is a P macroblock, that is, as shown in FIG. 4A, macroblocks of the slice are continuously In the case of the P macroblock, steps S100 to S120 are continued.

그 다음, 상기 S110단계를 수행한 매크로블록이 도 4a에 도시된 바와 같이 마지막 매크로블록(216)이면, 그 전에 각각의 S110단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩한다.(S130단계)Next, if the macroblock performing step S110 is the last macroblock 216 as shown in FIG. 4A, among the macroblocks performing step S110 before, macroblocks having the same motion vector are merged. And interpolation to decode (step S130).

여기서, 상기 병합은 블록이 인접되고, 참고 프레임이 동일한 조건을 더 만족하여 수행되는 것도 바람직하다.In this case, the merging may be performed by adjacent blocks and reference frames further satisfying the same condition.

한편, 상기 S100단계에서, 디코딩할 매크로블록이 P 매크로블록이 아니면, 도 4b에 도시된 바와 같이, I 매크로블록(304)이므로, 그 전에 움직임 벡터를 찾은 매크로블록들(즉, P 매크로블록들)을 병합하고, 보간하여 디코딩한다.(S140단계)On the other hand, in step S100, if the macroblock to be decoded is not a P macroblock, as shown in FIG. 4B, since the I macroblock 304 is used, macroblocks previously found a motion vector (that is, P macroblocks). ) Are merged, interpolated and decoded (step S140).

여기서, I 매크로블록(304) 이전의 매크로블록들(301,302,303)은 연속된 P 매크로블록임으로, 전술된 S100단계 내지 S120단계를 계속적으로 수행하여, 움직임 벡터를 찾은 매크로블록들이다.Here, the macroblocks 301, 302, and 303 before the I macroblock 304 are continuous P macroblocks, and thus are macroblocks obtained by continuously performing steps S100 to S120 to find a motion vector.

그러므로, 도 4b를 참조하여 상세히 설명하면, 상기 S140단계에서 병합과 보간은 I 매크로블록(304)의 이전의 매크로블록들(301,302,303) 중, 움직임 벡터가 동일하지 않은 하나의 매크로블록(301)을 보간하고, 움직임 벡터가 동일한 매크로블록들(302,303)을 병합하여 보간하는 것이다. Therefore, when described in detail with reference to FIG. 4B, in step S140, merging and interpolation include one macroblock 301 whose motion vectors are not identical among the previous macroblocks 301, 302, 303 of the I macroblock 304. The interpolation is performed by merging and interpolating macroblocks 302 and 303 having the same motion vector.

그 후, 현재 디코딩된 매크로블록(301,302,303)에서 데이터를 참고하여 I 매크로블록(304)을 디코딩한다.(S150단계) Thereafter, the I macroblock 304 is decoded by referring to the data in the currently decoded macroblocks 301, 302 and 303 (step S150).

그 다음, 디코딩된 I 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하고(S160단계), 마지막 매크로블록이면 종료하고, 마지막 매크로블록이 아니면, 상기 S100단계를 수행한다.Then, it is determined whether the decoded I macroblock is the last macroblock in the slice (step S160), and if the last macroblock is terminated, otherwise, the step S100 is performed.

도 5는 본 발명에 따라 슬라이스내의 매크로블록들이 병합된 형상을 도시한 도면으로써, 슬라이스(400) 내에는 복수개의 매크로블록들이 있다. 5 is a view illustrating a merged shape of macroblocks in a slice according to the present invention, and there are a plurality of macroblocks in the slice 400.

이 매크로블록들을 본 발명의 방법을 수행하여 디코딩할 때, 도 5에 도시된 바와 같이, 디코딩할 매크로블록이 I 매크로블록(411)이고, 움직임 벡터가 동일한 매크로블록이 '406','407'과 '410'일 경우, 직사각형 형태인 '406'과 '410' 매크로블록만 병합을 수행하여 보간하게 된다.When decoding these macroblocks by performing the method of the present invention, as shown in Fig. 5, the macroblock to be decoded is the I macroblock 411, and the macroblocks having the same motion vector are '406', '407'. And '410', only the rectangular '406' and '410' macroblocks are merged to interpolate.

즉, 본 발명은 병합한 매크로블록의 형상은 직사각형이 바람직하다.That is, in the present invention, the shape of the merged macroblock is preferably rectangular.

이상 상술한 바와 같이, 본 발명은 인접되고, 동일한 움직임 벡터를 가지고 있고, 참고 프레임이 동일한 블록들을 병합하여 움직임 보상을 수행함으로써, 데이터를 중복으로 읽는 것을 방지할 수 있어, 메모리의 사용을 줄이고, 소비 전력을 줄일 수 있는 효과가 있다.As described above, the present invention can prevent data from being redundantly read by contiguous, having the same motion vector, and the reference frame merging the same blocks to perform motion compensation, thereby reducing the use of memory, There is an effect that can reduce the power consumption.

본 발명은 구체적인 예에 대해서만 상세히 설명되었지만 본 발명의 기술사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.Although the invention has been described in detail only with respect to specific examples, it will be apparent to those skilled in the art that various modifications and variations are possible within the spirit of the invention, and such modifications and variations belong to the appended claims.

도 1은 일반적인 MPEG용 비디오 디코더의 개략적인 구성 블록도1 is a schematic block diagram of a typical video decoder for MPEG

도 2는 종래 기술에 따른 영상의 블록들을 복원하기 위한 데이터 구성 방법을 개략적으로 도시한 도면2 is a view schematically showing a data configuration method for reconstructing blocks of an image according to the prior art;

도 3은 본 발명에 따른 영상을 디코딩하는 방법을 도시한 플로우챠트3 is a flowchart illustrating a method of decoding an image according to the present invention.

도 4a와 4b는 본 발명에 따라 슬라이스내의 매크로블록들을 도시한 도면4A and 4B illustrate macroblocks in a slice in accordance with the present invention.

도 5는 본 발명에 따라 슬라이스내의 매크로블록들이 병합된 형상을 도시한 도면FIG. 5 illustrates a shape in which macroblocks in a slice are merged according to the present invention. FIG.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

10 : VLD(Variable Length Decoder) 20 : 역양자화부10: VLD (Variable Length Decoder) 20: Inverse quantization part

30 : IDCT(Inverse Discrete Cosine Transform)30: Inverse Discrete Cosine Transform (IDCT)

40 : 가산기 50 : 움직임 보상부40: adder 50: motion compensation unit

200,300,400 : 슬라이스 201 : P 매크로블록200,300,400: Slice 201: P macroblock

216,301,302,303,406,407,410 : 매크로블록 216,301,302,303,406,407,410: Macroblock

304,411 : I 매크로블록304,411: I macroblocks

Claims (4)

픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단하는 제 1 단계와;A first step of determining whether a macroblock to be decoded of a slice, which is included in a picture, is a P macroblock; 상기 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는 제 2 단계와;If the macroblock to be decoded is a P macroblock, finding a motion vector corresponding to the macroblock to be decoded in the reference frame; 상기 제 2 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하는 제 3 단계와;A third step of determining whether the macroblock having found the motion vector in the second step is the last macroblock in the slice; 상기 제 3 단계 후에, 계속적으로 상기 제 3 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, 상기 제 1 단계에서 디코딩할 매크로블록이 P 매크로블록이면, 상기 제 1 내지 제 3 단계를 계속하여 수행하는 제 4 단계와; After the third step, if the macroblock continuously finding the motion vector in the third step is not the last macroblock in the slice, and the macroblock to be decoded in the first step is a P macroblock, the first to third steps A fourth step of continuing to perform; 상기 제 4 단계에서 상기 제 3 단계를 수행한 매크로블록이 슬라이스 내의 마지막 매크로블록이면, 각각의 제 2 단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩하는 제 5 단계로 구성된 영상을 디코딩하는 방법.If the macroblock performing the third step in the fourth step is the last macroblock in the slice, among the macroblocks performing the second step, macroblocks having the same motion vector are merged and interpolated. And a fifth step of decoding the video. 픽쳐에 포함되어 있으며, 복수개의 매크로블록들로 이루어진 슬라이스의 디코딩할 매크로블록이 P 매크로블록인가를 판단하는 제 1 단계와;A first step of determining whether a macroblock to be decoded of a slice, which is included in a picture, is a P macroblock; 상기 디코딩할 매크로블록이 P 매크로블록이면, 참조프레임에서 디코딩할 매크로블록에 해당하는 움직임 벡터를 찾는 제 2 단계와;If the macroblock to be decoded is a P macroblock, finding a motion vector corresponding to the macroblock to be decoded in the reference frame; 상기 제 2 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록인가를 판단하는 제 3 단계와;A third step of determining whether the macroblock having found the motion vector in the second step is the last macroblock in the slice; 상기 제 3 단계 후에, 계속적으로 제 3 단계에서 움직임 벡터를 찾은 매크로블록이 슬라이스에서 마지막 매크로블록이 아니고, 상기 제 1 단계에서 디코딩할 매크로블록이 P 매크로블록이면, 상기 제 1 내지 제 3 단계를 계속하여 수행하는 제 4 단계와; After the third step, if the macroblock continuously finding the motion vector in the third step is not the last macroblock in the slice, and the macroblock to be decoded in the first step is a P macroblock, the first to third steps may be performed. A fourth step of continuing; 상기 제 4 단계에서 상기 제 1 단계를 수행한 매크로블록이 P 매크로블록이 아닌 I 매크로블록이면, 각각의 제 2 단계를 수행한 매크로블록 중, 움직임 벡터가 동일한 매크로블록은 병합(Merge)하고, 보간(Interpolation)하여 디코딩하는 제 5 단계와;If the macroblock performing the first step in the fourth step is an I macroblock instead of a P macroblock, among the macroblocks performing the second step, macroblocks having the same motion vector are merged. A fifth step of interpolating and decoding; 상기 제 5 단계에서, 디코딩된 매크로블록에서 데이터를 참고하여 I 매크로블록을 디코딩하는 제 6 단계로 구성된 영상을 디코딩하는 방법.And a sixth step of decoding the I macroblock by referring to data in the decoded macroblock. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 병합은 블록이 인접되고, 참고 프레임이 동일한 조건을 더 만족하여 수행되는 것을 특징으로 하는 영상을 디코딩하는 방법.The merging is performed by a block adjacent to each other, and the reference frame is further satisfied with the same condition. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 병합한 매크로블록의 형상은 직사각형인 것을 특징으로 하는 영상을 디코딩하는 방법.And the shape of the merged macroblock is rectangular.
KR1020030085989A 2003-11-29 2003-11-29 Image decoding method KR100991344B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030085989A KR100991344B1 (en) 2003-11-29 2003-11-29 Image decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030085989A KR100991344B1 (en) 2003-11-29 2003-11-29 Image decoding method

Publications (2)

Publication Number Publication Date
KR20050052130A true KR20050052130A (en) 2005-06-02
KR100991344B1 KR100991344B1 (en) 2010-11-01

Family

ID=37248252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030085989A KR100991344B1 (en) 2003-11-29 2003-11-29 Image decoding method

Country Status (1)

Country Link
KR (1) KR100991344B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010062466A2 (en) * 2008-10-31 2010-06-03 Netlogic Microsystems, Inc. Device for decoding a video stream and method therof
WO2012081917A2 (en) * 2010-12-15 2012-06-21 에스케이텔레콤 주식회사 Method and apparatus for generating coded motion information/recovering motion information using motion information integration, and image encoding/decoding method and apparatus using same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105791A1 (en) * 2012-01-09 2013-07-18 삼성전자 주식회사 Image encoding method and apparatus and image decoding method and apparatus based on motion vector normalization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010062466A2 (en) * 2008-10-31 2010-06-03 Netlogic Microsystems, Inc. Device for decoding a video stream and method therof
WO2010062466A3 (en) * 2008-10-31 2010-07-22 Netlogic Microsystems, Inc. Device for decoding a video stream and method therof
WO2012081917A2 (en) * 2010-12-15 2012-06-21 에스케이텔레콤 주식회사 Method and apparatus for generating coded motion information/recovering motion information using motion information integration, and image encoding/decoding method and apparatus using same
WO2012081917A3 (en) * 2010-12-15 2012-10-04 에스케이텔레콤 주식회사 Method and apparatus for generating encoded motion information/recovering motion information using motion information integration, and image encoding/decoding method and apparatus using same
US9270996B2 (en) 2010-12-15 2016-02-23 Sk Telecom. Co., Ltd. Method and apparatus for generating encoded motion information/recovering motion information using motion information integration, and image encoding/decoding method and apparatus using same
US9888248B2 (en) 2010-12-15 2018-02-06 Sk Telecom Co., Ltd. Method and apparatus for generating encoded motion information /recovering motion information using motion information integration, and image encoding/decoding method and apparatus using same

Also Published As

Publication number Publication date
KR100991344B1 (en) 2010-11-01

Similar Documents

Publication Publication Date Title
KR100874518B1 (en) Moving picture decoding method and apparatus
KR101227667B1 (en) Piecewise processing of overlap smoothing and in-loop deblocking
US8009740B2 (en) Method and system for a parametrized multi-standard deblocking filter for video compression systems
JP3369573B2 (en) Image prediction decoding method and apparatus
US8665960B2 (en) Real-time video coding/decoding
JP4393875B2 (en) System and method for providing a single layer video encoded bitstream suitable for reduced complexity decoding
JP2008529412A (en) Scratch pad for storing intermediate loop filter data
KR20010089526A (en) Image processing circuit and method for reducing a difference between pixel values across an image boundary
US20050129125A1 (en) Method and apparatus for pitcure compression using variable block of arbitrary size
KR20040054776A (en) Reduced-complexity video decoding using larger pixel-grid motion compensation
JP2009260977A (en) Video data compression using combination of irreversible compression and reversible compression
EP3751856B1 (en) Methods for motion compensated prediction
WO2009073421A2 (en) System and methods for improved video decoding
KR20140089584A (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
EP1383339A1 (en) Memory management method for video sequence motion estimation and compensation
KR100450939B1 (en) Compressed video decoder with scale-down function for image reduction and method thereof
US20120263225A1 (en) Apparatus and method for encoding moving picture
JP2007503787A (en) Video processing device with low memory bandwidth requirements
JPH10224790A (en) Filter eliminating block noise in companded image and filter method
KR100991344B1 (en) Image decoding method
JP2008544621A (en) Encoding and decoding method and apparatus for improving video error concealment
JP7359653B2 (en) Video encoding device
US20070217520A1 (en) Apparatuses and methods for post-processing video images
JP3935667B2 (en) Measuring video image activity by filtering DCT and prediction error coefficients
KR100636911B1 (en) Method and apparatus of video decoding based on interleaved chroma frame buffer

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: 20130924

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee