KR100248651B1 - A motion compensator - Google Patents

A motion compensator Download PDF

Info

Publication number
KR100248651B1
KR100248651B1 KR1019970011854A KR19970011854A KR100248651B1 KR 100248651 B1 KR100248651 B1 KR 100248651B1 KR 1019970011854 A KR1019970011854 A KR 1019970011854A KR 19970011854 A KR19970011854 A KR 19970011854A KR 100248651 B1 KR100248651 B1 KR 100248651B1
Authority
KR
South Korea
Prior art keywords
motion compensation
motion
pixel
pixel data
control signal
Prior art date
Application number
KR1019970011854A
Other languages
Korean (ko)
Other versions
KR19980075612A (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 KR1019970011854A priority Critical patent/KR100248651B1/en
Publication of KR19980075612A publication Critical patent/KR19980075612A/en
Application granted granted Critical
Publication of KR100248651B1 publication Critical patent/KR100248651B1/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/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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

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

Abstract

영상 복호화기에 있어서 움직임 보상장치는 움직임 벡터와 플래그를 입력받아 움직임 보상 제어신호를 발생하고, 계산 과정에 대한 타이밍을 조절하는 움직임 보상 제어부(100)와; 움직임 벡터와 플래그를 입력받아 읽기/쓰기 어드레스 신호 및 메모리 제어신호를 발생하는 메모리 제어부(200); 상기 어드레스 신호에 따라 보상된 화소 데이터를 읽거나 쓰는 메모리(300); 버스 제어신호를 출력하는 버스 제어부(400); 상기 보상된 화소 데이터를 전송하기 위한 공통 버스(500); 및 상기 움직임 보상 제어신호에 따라 상기 공통 버스(500)로부터 입력된 화소 데이터와 역 이산여현변환된 데이터를 이용하여 움직임 보상을 수행하는 움직임 보상부(600)로 구성되며, 상기와 같이 구성된 본 발명에 따르면 영상 복호화기에서 움직임 보상을 수행함에 있어서 동작 속도가 서로 다른 블록간에 인터페이싱 기능을 수행하는 블록을 구비하므로써 역 이산여현변환된 영상 데이터와 움직임 벡터를 이용하여 움직임 보상을 효율적으로 수행할 수 있다.In the image decoder, the motion compensation apparatus includes: a motion compensation controller (100) for receiving a motion vector and a flag to generate a motion compensation control signal and adjusting a timing for a calculation process; A memory controller 200 which receives a motion vector and a flag and generates a read / write address signal and a memory control signal; A memory (300) for reading or writing pixel data compensated according to the address signal; A bus controller 400 for outputting a bus control signal; A common bus 500 for transmitting the compensated pixel data; And a motion compensation unit 600 which performs motion compensation using pixel data input from the common bus 500 and inverse discrete cosine transform data according to the motion compensation control signal. According to the present invention, since the video decoder includes a block that performs an interfacing function between blocks having different operating speeds, motion compensation can be efficiently performed using inverse discrete cosine transformed image data and a motion vector. .

Description

움직임 보상장치Motion compensation device

본 발명은 움직임 보상장치에 관한 것으로, 특히 영상 복호화기(video decoder)에서 역 이산여현변환(IDCT: Inverse Discrete Cosine Transform)된 영상 데이터와 움직임 벡터(mv: motion vector)를 이용하여 움직임 보상(MC: Motion Compensation)을 효율적으로 수행하도록 되어진 움직임 보상장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a motion compensation device. In particular, motion compensation (MC) is performed by using image data and a motion vector (mv) obtained by an inverse discrete cosine transform (IDCT) in a video decoder. The present invention relates to a motion compensation device configured to efficiently perform motion compensation.

일반적으로 고화질 텔레비젼(HDTV: High Definition TeleVision) 신호의 전송을 위해서는 대역 압축이 반드시 필요하게 되는데, 이때 대역을 압축하기 위한 방법으로는 크게 세가지가 있다. 첫째, 화상과 다음 화상간의 관계, 즉 움직임 벡터(mv)의 값을 이용하여 전송 정보량을 줄이는 기법과, 둘째로 한 화상내의 정보 압축을 위한 이산여현변환(DCT: Discrete Cosine Transformation)과 양자화(Q: Quantization)기법, 그리고 셋째로 이들 변환된 정보를 확률적 분포에 의해 적절한 크기의 비트로 변환하는 가변길이 부호화(VLC: Variable Length Coding)기법이 있다.In general, band compression is absolutely necessary for transmission of a high definition television (HDTV) signal. There are three methods for compressing a band. First, a technique for reducing the amount of transmission information by using a relationship between a picture and a next picture, that is, a motion vector (mv), and second, Discrete Cosine Transformation (DCT) and quantization (QT) for compressing information in a picture. Quantization (VT) technique and thirdly, Variable Length Coding (VLC) technique for converting the transformed information into bits of appropriate size by stochastic distribution.

상기 대역 압축 기법중 움직임 보상(motion compensation)은 보다 나은 화질의 영상으로 복원하기 위해 영상 부호화시 검출된 움직임 벡터를 이용하여 영상 데이터량을 감소시키는 기술을 말한다. 동영상 부호화에서는 높은 데이터 압축률을 얻기 위하여 시간적인 중복성을 제거하는 움직임 보상 부호화(motion compensated coding)를 행하고 있으며, 이러한 움직임 보상 부호화 방법은 MPEG(Moving Picture Expert Group) 및 H.261(ITU-T: International Telecommunication Union - Telecommunication Standardization 에서 정해진 권고 번호중 하나) 등의 국제 영상 부호화 표준에서도 중요한 부분을 차지하고 있다.Motion compensation in the band compression technique refers to a technique for reducing the amount of image data by using a motion vector detected during image encoding in order to reconstruct an image with better image quality. In video coding, motion compensated coding is performed to remove temporal redundancy in order to obtain a high data compression rate. Such motion compensation coding methods include MPEG (Moving Picture Expert Group) and H.261 (ITU-T: International). It is also an important part of international video coding standards such as Telecommunication Union-one of the recommended numbers defined in Telecommunication Standardization.

움직임 보상 부호화 기법의 핵심 기술은 움직임 벡터를 검출하는 것으로, 일반적으로 블록 정합 알고리즘(Block Matching Algorithm: 이하, BMA 라 한다.)과 화소 순환 알고리즘(Pixel Recursive Algorithm: 이하, PRA 라 한다.)으로 나누어진다. 데이터 감축면에서는 PRA 방식이 BMA 방식보다 우수하나 시스템의 복잡도 측면에서는 블록단위로 처리하는 BMA 방식이 화소단위로 처리하는 PRA 방식보다 계산량이 적고 하드웨어 구현이 용이하기 때문에 대부분의 움직임 부호화에 널리 이용되고 있다. BMA 로 움직임을 추정할 경우, 가장 일반적인 탐색 방법은 완전 탐색 방법(Full search algorithm)인데, 이러한 방법은 이전 프레임의 탐색 영역내에서 모든 블록에 대하여 탐색한 후, 현 프레임의 기준 블록과 가장 유사한 블록을 찾기 때문에 최적의 방법이라 할 수 있다.The core technique of the motion compensation coding technique is to detect motion vectors, which are generally divided into a block matching algorithm (hereinafter referred to as BMA) and a pixel recursive algorithm (hereinafter referred to as PRA). Lose. In terms of data reduction, the PRA method is superior to the BMA method, but in terms of system complexity, the BMA method, which is processed in units of blocks, is widely used for most motion coding because it requires less computation and easier hardware implementation than the PRA method, which is processed in units of pixels. have. When estimating motion with BMA, the most common search method is the full search algorithm, which searches for all blocks within the search area of the previous frame and then closes the block most similar to the reference block of the current frame. This is the best way to find.

움직임 보상에 관한 기술은 미국 특허번호 5,379,076호, 5,469,517호, 5,473,379호 등에 개시되어 있는데, 이러한 움직임 보상 부호화는 이전 프레임을 이용하여 움직임 추정 및 보상을 행하는 과정과 보상된 영상과 원 영상과의 차분 신호를 부호화하는 과정으로 이루어져 있으며, 움직임의 추정이 정확할수록 보다 단순한 차분 신호를 얻을 수 있어 부호화 효율을 높일 수 있다.Techniques related to motion compensation are disclosed in US Pat. Nos. 5,379,076, 5,469,517, 5,473,379, and the like. Such motion compensation coding is performed by performing a motion estimation and compensation using a previous frame and a difference signal between the compensated image and the original image. The encoding process is performed. The more accurate the estimation of the motion is, the simpler the difference signal can be obtained, thereby improving the coding efficiency.

이처럼 영상 부호화기(video encoder)에서 움직임 추정을 수행하여 움직임 벡터를 구한 후, 움직임 벡터를 전송하면 영상 복호화기(video decoder)에서는 역 이산여현 변환된 영상 데이터와 그 움직임 벡터를 이용하여 움직임 보상을 수행해야 할 필요성이 제기된다.As described above, after a motion encoder obtains a motion vector and transmits the motion vector, the video decoder performs motion compensation using the inverse discrete cosine transformed image data and the motion vector. A need arises.

이에 본 발명은 상기한 바와 같은 필요성을 충족시키기 위해 안출된 것으로, 영상 복호화기에서 역 이산여현 변환된 영상 데이터와 전송된 움직임 벡터를 이용하여 움직임 보상을 효율적으로 수행하도록 되어진 움직임 보상장치를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to meet the necessity as described above, and provides a motion compensation device that is capable of efficiently performing motion compensation using an inverse discrete cosine transformed image data and a transmitted motion vector in an image decoder. The purpose is.

상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 보상장치는, 움직임 벡터와 플래그를 입력받아 움직임 보상 과정을 제어하기 위한 움직임 보상 제어신호를 발생하고, 움직임 보상의 계산 과정에 대한 타이밍을 조절하는 움직임 보상 제어부와;The motion compensation apparatus according to the present invention for achieving the above object, receives a motion vector and a flag to generate a motion compensation control signal for controlling the motion compensation process, and adjust the timing for the process of calculating the motion compensation A motion compensation control unit;

움직임 벡터와 플래그를 입력받아 읽기/쓰기 어드레스 신호 및 메모리 제어신호를 발생하는 메모리 제어부;A memory controller configured to receive a motion vector and a flag and generate a read / write address signal and a memory control signal;

상기 메모리 제어부로부터의 어드레스 신호에 따라 보상된 화소 데이터를 읽거나 쓰는 메모리;A memory for reading or writing compensated pixel data in accordance with an address signal from the memory controller;

버스 제어신호를 출력하는 버스 제어부;A bus controller which outputs a bus control signal;

상기 버스 제어부로부터의 버스 제어신호에 따라 상기 메모리에 저장시킬 보상된 화소 데이터를 전송하기 위한 공통 버스; 및A common bus for transmitting the compensated pixel data to be stored in the memory according to a bus control signal from the bus controller; And

상기 움직임 보상 제어부로부터의 움직임 보상 제어신호에 따라 상기 공통 버스로부터 입력된 화소 데이터와 역 이산여현변환된 데이터를 이용하여 움직임 보상을 수행하는 움직임 보상부로 구성된 것을 특징으로 한다.And a motion compensation unit configured to perform motion compensation using pixel data inputted from the common bus and inverse discrete cosine transformed data according to the motion compensation control signal from the motion compensation control unit.

도 1 은 일반적인 MPEG-2 영상 복호화기의 개념 블록도,1 is a conceptual block diagram of a typical MPEG-2 video decoder;

도 2 는 본 발명에 따른 움직임 보상장치의 구성 블록도이다.2 is a block diagram of a motion compensation device according to the present invention.

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

100: 움직임 보상 제어부 200: 메모리 제어부100: motion compensation controller 200: memory controller

300: 메모리 400: 버스 제어부300: memory 400: bus control unit

500: 공통 버스 600: 움직임 보상부500: common bus 600: motion compensation unit

610: 입력 버퍼 630: 반화소 보상부610: input buffer 630: half-pixel compensation unit

650: 합산부 670: 출력 버퍼650: summer 670: output buffer

이하, 첨부된 도면을 참조하여 본 발명에 대해 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail with respect to the present invention.

본 발명의 이해를 돕기 위해 MPEG-2 에 적용되는 각 픽쳐(Picture)에 따른 부호화 과정과 움직임 벡터 추정 및 움직임 보상 예측에 대해서 설명하면 다음과 같다.For better understanding of the present invention, the encoding process, motion vector estimation, and motion compensation prediction according to each picture applied to MPEG-2 will be described below.

I(Intra)-픽쳐는 블록별로 이산여현변환(DCT)을 적용하여 공간방향의 중복성만을 제거한다. 픽쳐 그룹(GOP: Group of Picture)의 구조상 I-픽쳐의 화질이 전체 픽쳐 그룹의 화질에 절대적인 영향을 미치므로(P(Predicted)-픽쳐들의 부호화 성능에 중요한 영향을 준다.) 고화질을 유지하도록 부호화해야 한다. 이를 위해서 양자화 및 허프만 엔트로피 부호화시 인트라프레임(intraframe) 부호화된 영상은 인터프레임(interframe) 기법과 구분하여 처리함으로써 고화질을 유지하도록 한다.The I (Intra) -picture removes only redundancy in the spatial direction by applying a discrete cosine transform (DCT) for each block. Because of the structure of the Group of Pictures (GOP), the quality of an I-picture has a significant impact on the quality of the entire group of pictures (P (Predicted)-an important influence on the encoding performance of pictures). Should be. To this end, intraframe coded images are processed separately from the interframe technique in quantization and Huffman entropy encoding to maintain high quality.

P(Predicted)-픽쳐는 순방향의 영상간 예측 부호화(forward interframe predictive coding) 기법과 이산여현 변환기법을 사용하여 데이터를 압축한다. 입력된 현재 영상에 대해서 이전의 I-픽쳐 및 P-픽쳐를 기준으로 하여 움직임 보상형 예측기법을 적용하여 영상간에서 물체의 운동으로 기인한 변화를 보상하므로써 영상간 중복성을 제거한다. 픽쳐 그룹(GOP)의 구조상 P-픽쳐는 한 픽쳐 그룹내에서 연속되는 P-픽쳐 및 B(Bidirectional predicted)-픽쳐들의 화질에 영향을 미치므로 I-픽쳐에 비해서는 적으나 B-픽쳐에 비해서는 많은 비트를 할당하여 부호화한다.P (Predicted) -picture compresses data using forward interframe predictive coding and discrete cosine transform. The motion compensation type predictive technique is applied to the current input image based on the previous I-picture and P-picture to compensate for the change caused by the motion of the object. Because of the structure of a picture group (GOP), the P-picture affects the picture quality of consecutive P-pictures and Bidirectional predicted (B) pictures within a picture group, so it is less than I-picture but less than B-picture. Allocate many bits and encode them.

B(Bidirectional predicted)-픽쳐는 양방향의 영상간 예측 부호화(bidirectionally interframe predictive coding) 기법과 이산여현 변환기법을 사용하여 데이터를 압축한다. 입력된 현재 영상에 대해서 이전의 I-픽쳐 및 P-픽쳐와 다음의 P-픽쳐로 부터 각각 움직임 보상형 예측된 영상 및 움직임 보상형 보간(motion compensated interpolation)된 영상을 사용하여 세가지의 영상간 예측신호를 얻은 후, 이들 예측신호 중 최선의 것을 영상간의 예측신호로 선택하여 영상간의 중복성을 제거한다. 그 후 영상간의 중복성이 제거된 예측오차에 대해서 이산여현 변환과 양자화 과정을 적용하여 나머지 공간방향의 중복성을 제거한다. 픽쳐 그룹의 구조상 B-픽쳐의 화질은 픽쳐 그룹내의 다른 픽쳐에 영향을 미치지 않으므로 주관적인 화질만을 고려하여 다른 기법에 비해 상대적으로 적은 비트를 할당하여 부호화를 수행한다.Bidirectional predicted (B) -picture compresses data using bidirectionally interframe predictive coding and discrete cosine transform. Three inter-image predictions using the motion-compensated predicted and motion compensated interpolated images from the previous I-picture and the P-picture and the next P-picture, respectively, for the current input image. After the signal is obtained, the best of these prediction signals is selected as the prediction signal between the images to remove the redundancy between the images. After that, the discrete cosine transform and the quantization process are applied to the prediction error from which the redundancy between the images is removed. Because of the structure of the picture group, the quality of the B-picture does not affect other pictures in the picture group. Therefore, encoding is performed by allocating relatively few bits in consideration of subjective picture quality.

한편, MPEG-2 에서는 움직임 추정(ME) 및 움직임 보상(MC)을 위한 방법으로는 프레임 움직임 보상(frame MC), 필드 움직임 보상(field MC) 및 듀얼 프라임 움직임 보상(dual prime MC)이 있으며, 기본적으로 모든 움직임 추정 및 보상은 반화소 단위까지 하는 것을 규정하고 있다.Meanwhile, in MPEG-2, methods for motion estimation (ME) and motion compensation (MC) include frame motion compensation (frame MC), field motion compensation (field MC), and dual prime motion compensation (dual prime MC). Basically, all motion estimation and compensation are required to be half pixel unit.

프레임 움직임 추정 및 보상은 MPEG-1 에서부터 사용하여 온 움직임 추정방법이며, 이것은 상위 필드와 하위 필드의 구분없이 프레임 구조로 움직임을 추정하고 보상하는 것으로, 현재 프레임의 부호화 하고자 하는 매크로블록(MB)에 대해 기준 프레임의 탐색 영역내에서 반화소 정밀도까지 완전 탐색(full search)을 수행하여 이 중 가장 작은 평균 절대 에러(MAE: Mean Absolute Error)를 발생시키는 위치를 움직임 벡터로 결정한다. 실질적으로는 데이터가 화소단위로 주어져 있으므로 화소 단위의 1 차 완전탐색을 통해 화소단위 움직임 벡터를 구하고 그후 반화소 단위의 보간 및 2 차 탐색을 통해 반화소단위의 움직임 벡터를 구한다. 프레임 움직임 추정의 경우, P-픽쳐에서는 한 개의 매크로블록당 한 개의 움직임 벡터를 전송하고, B-픽쳐에서는 한 개의 매크로블록당 한 개 혹은 두 개의 움직임 벡터를 전송하기 때문에 필드 움직임 추정 및 보상에 비해서 움직임 벡터전송에 필요한 비트 수가 적다.Frame motion estimation and compensation is a motion estimation method that has been used since MPEG-1. This method estimates and compensates motion in a frame structure without distinguishing between upper and lower fields, and applies a macroblock (MB) to encode a current frame. The full search is performed to the half-pixel precision in the search region of the reference frame, and the position generating the smallest mean absolute error (MAE) is determined as the motion vector. Since the data is substantially given in pixel units, the pixel-by-pixel motion vector is obtained through the first-order full search in pixel units, and then the motion vector in half-pixel units is obtained through the inter-pixel interpolation and the second search. In the case of frame motion estimation, P-picture transmits one motion vector per macroblock, and B-picture transmits one or two motion vectors per macroblock, compared to field motion estimation and compensation. The number of bits required for motion vector transmission is small.

그리고, 필드 움직임 추정 및 보상(field ME/MC)은 프레임 구조의 픽쳐에 있어서 각 필드별로 움직임의 추정 및 보상을 수행하는 방식으로서, 현재 프레임의 상위 필드와 하위 필드, 기준 프레임의 상위 필드와 하위 필드 사이에서 각각 16*8 서브 매크로블록 단위로 상위에서 하위, 상위에서 상위, 하위에서 상위, 하위에서 하위의 4 가지의 움직임 벡터를 구한 뒤, 현재 프레임의 상위 필드와 하위 필드 각각에 대해 최소의 움직임 보상에러를 발생시키는 하나씩의 움직임 벡터를 선택한다. 따라서, P-픽쳐에서는 한 개의 매크로블록당 2 개의 움직임 벡터를 전송하고, B-픽쳐에서는 한 개의 매크로블록당 2 개 혹은 4 개의 움직임 벡터를 전송한다. MPEG-2 의 영상 부호기측에서 모든 매크로블록에 대해서 프레임/필드 예측방법을 다 적용하여 본 뒤 그 중 보다 작은 예측오차를 갖는 예측모드를 사용한다. 영상 복호기측에서는 영상 부호화기에서 사용한 예측모드가 전송되므로 이에 따라 움직임 보상을 수행하여 영상을 복원한다.In addition, field motion estimation and compensation (field ME / MC) is a method of performing motion estimation and compensation for each field in a picture of a frame structure. After the four motion vectors of the upper, lower, upper, upper, lower, upper, lower, and lower positions are obtained in units of 16 * 8 sub-macroblocks, respectively, between fields, and then the minimum and uppermost fields of the current field One motion vector is selected to generate a motion compensation error. Accordingly, two motion vectors are transmitted per macroblock in a P-picture, and two or four motion vectors are transmitted in one macroblock in a B-picture. On the MPEG-2 video encoder side, all the macroblocks are applied to the frame / field prediction method, and then the prediction mode having the smaller prediction error is used. On the image decoder side, since the prediction mode used by the image encoder is transmitted, motion compensation is performed to restore the image.

이어서, 듀얼 프라임 움직임 추정 및 보상은 한 개의 매크로블록당 1 개의 움직임 벡터와 차분 움직임 벡터(dmv)만을 전송하는 것으로 비교적 느린 움직임을 갖는 시퀀스에 효과적인 것으로 알려져 있다. 이 방법은 B-픽쳐가 허용되는 경우에는 이를 이용하여 더 좋은 화질을 얻을 수 있으나, 그렇지 않은 경우에는 듀얼 프라임 예측을 사용함으로써 가능한한 적은 비트 발생량으로 화질의 향상을 가져올 수 있다. 듀얼 프라임 예측방법은 필드 예측 모드에서 구한 상위에서 하위, 상위에서 상위, 하위에서 상위, 하위에서 하위 4 개의 움직임 벡터중 상위에서 상위와 하위에서 하위 움직임 벡터는 그대로 기본 움직임 벡터로 사용하고, 상위에서 하위와 하위에서 상위 움직임 벡터는 각각 스케일링(*2, *2/3)과 트런케이션(truncation)을 하여 기본 움직임 벡터를 만든 뒤, 이렇게 만든 4 개의 기본 움직임 벡터 각각에 대하여 수평 방향과 수직 방향으로 -1, 0, 1 씩의 미세 조정을 가하여 두 개의 16*8 서브 매크로블록에 대해 움직임 보상에러가 최소가 되도록 하는 기본 움직임 벡터와 변위값(dmv)을 보내는 방식이다. 듀얼 프라임 움직임 추정은 영상 부호화기에서의 계산량이 상당히 많은 편으로 한 개의 기본 움직임 벡터당 9 개의 예측 후보값을 계산해내야 하므로 총 36 가지의 후보중 한 개의 기본 움직임 벡터와 차분 움직임 벡터를 계산해야 한다. 한편 영상 복호화기에서는 전송되어온 기본 움직임 벡터와 차분 움직임 벡터값으로 부터 2 개의 필드 움직임 벡터값을 계산해내기만 하면 되므로 비교적 간단하게 구현이 가능하다.Dual prime motion estimation and compensation is then known to be effective for sequences with relatively slow motion by transmitting only one motion vector and differential motion vector (dmv) per macroblock. If the B-picture is allowed, this method can obtain better image quality, but otherwise, the use of dual prime prediction can improve the image quality with as little bit generation as possible. In the dual prime prediction method, the upper, lower, upper, upper, lower, and lower lower motion vectors obtained in the field prediction mode are used as the basic motion vectors as they are. The upper and lower motion vectors are scaled (* 2, * 2/3) and truncated respectively to form a basic motion vector, and then horizontally and vertically with respect to each of the four basic motion vectors. By fine adjustment of -1, 0, and 1, the basic motion vector and displacement value (dmv) are sent to minimize the motion compensation error for two 16 * 8 sub macroblocks. Since dual prime motion estimation requires a large amount of computation in the image encoder, it is necessary to calculate nine prediction candidates per one basic motion vector. Therefore, one of a total of 36 candidate motion vectors and a differential motion vector must be calculated. On the other hand, since the image decoder only needs to calculate two field motion vector values from the transmitted basic motion vector and the differential motion vector value, it is relatively simple to implement.

도 1 은 일반적인 MPEG-2 영상 복호화기의 개념 블록도로서, 영상 복호화기는 버퍼(10), 역다중화 및 가변길이 복호블록(20: DeMux & VLD), 역양자화 블록(30: IQ), 역 이산여현 변환블록(40: IDCT), 움직임 보상블록(50: MC) 및 선택블록(60)으로 구성되어 있다.1 is a conceptual block diagram of a typical MPEG-2 video decoder, in which a video decoder is a buffer 10, a demultiplexing and variable length decoding block 20 (DeMux & VLD), an inverse quantization block 30 IQ, and inverse discrete. The cosine transform block 40 is composed of an IDCT, a motion compensation block 50, and a selection block 60.

도 1 에 도시된 바와 같이, 버퍼(10)는 영상 부호화기(도시하지 않음)로부터 전송된 부호화된 비트 스트림을 입력받아 버퍼링을 수행한 후 그 버퍼링된 비트 스트림을 출력한다.As shown in FIG. 1, the buffer 10 receives an encoded bit stream transmitted from an image encoder (not shown), performs buffering, and then outputs the buffered bit stream.

역다중화 및 가변길이 복호블록(20)은 상기 버퍼(10)로부터 버퍼링된 비트 스트림을 입력받아 역다중화 및 가변길이 복호화(VLD: Variable Length Decoding)를 수행하여 양자화 레벨, 이산여현변환 모드 및 움직임 보상정보를 출력한다. 여기서, 가변길이 복호화(VLD)를 수행하는 이유는 영상 부호화기에서 가변길이 부호화(VLC)가 수행되었기 때문이다.The demultiplexing and variable length decoding block 20 receives the buffered bit stream from the buffer 10 and performs demultiplexing and variable length decoding (VLD) to perform quantization level, discrete cosine transform mode, and motion compensation. Print information. Here, the variable length decoding (VLD) is performed because the variable length coding (VLC) is performed in the image encoder.

역양자화 블록(30)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 입력된 양자화 레벨 정보에 따라 가변길이 복호화된 영상 데이터를 역양자화시키는데, 여기서 역양자화(IQ)를 수행하는 이유는 영상 부호화기에서 양자화(Q)가 수행되었기 때문이다.The inverse quantization block 30 dequantizes the variable length decoded image data according to the quantization level information input from the demultiplexing and the variable length decoding block 20. Here, the reason for performing inverse quantization (IQ) is because of the image encoder. This is because quantization (Q) is performed at.

역 이산여현 변환블록(40)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 입력된 이산여현변환 모드 정보(필드 DCT 인지 프레임 DCT인지에 대한 정보)에 따라 역양자화된 영상 데이터에 대해 역이산여현변환을 수행하는데, 여기서 역 이산여현변환(IDCT)을 수행하는 이유는 영상 부호화기에서 이산여현변환(DCT)이 수행되었기 때문이다.The inverse discrete cosine transform block 40 is inverse discrete for inverse quantized image data according to the discrete cosine transform mode information (information on whether a field DCT or a frame DCT) input from the demultiplexing and variable length decoding block 20. The cosine transform is performed. The reason for performing the inverse discrete cosine transform (IDCT) is that the discrete cosine transform (DCT) is performed in the image encoder.

움직임 보상블록(50)은 상기 역다중화 및 가변길이 복호블록(20)으로부터 입력된 움직임 보상정보(즉, 움직임 벡터, 플래그)에 따라 상기 역 이산여현 변환블록(40)으로부터의 역 이산여현변환된 영상 데이터를 입력받아 움직임 보상을 수행하는데, 본 발명은 이 움직임 보상 블록(50)에 관한 것이다.The motion compensation block 50 is inverse discrete cosine transformed from the inverse discrete cosine transform block 40 according to the motion compensation information (ie, the motion vector and the flag) input from the demultiplexing and the variable length decoding block 20. Motion compensation is performed by receiving image data. The present invention relates to the motion compensation block 50.

마지막으로 선택 블록(60)은 상기 역 이산여현 변환블록(40)으로부터의 역 이산여현변환된 영상 데이터 또는 상기 움직임 보상블록(50)으로부터의 움직임 보상된 영상 데이터중에서 하나를 선택하여 출력한다.Finally, the selection block 60 selects and outputs one of the inverse discrete cosine transformed image data from the inverse discrete cosine transform block 40 or the motion compensated image data from the motion compensation block 50.

도 2 는 본 발명에 따른 움직임 보상장치의 구성 블록도로서, 본 발명의 움직임 보상장치는 움직임 보상 제어부(100), 메모리 제어부(200), 메모리(300), 버스 제어부(400), 공통 버스(500) 및 움직임 보상부(600)로 구성되어 있다.2 is a block diagram illustrating a motion compensator according to the present invention. The motion compensator according to the present invention includes a motion compensator 100, a memory controller 200, a memory 300, a bus controller 400, and a common bus ( 500 and the motion compensator 600.

움직임 보상 제어부(100)에서는 가변길이 복호부(도 1 참조: 20)로부터 움직임 벡터(mv)와 플래그(flag)를 입력받아 움직임 보상 과정을 제어하기 위한 움직임 보상 제어신호를 발생하고, 움직임 보상의 계산 과정에 대한 타이밍을 조절한다. 이때 플래그(flag)는 움직임 보상을 위한 정보로서 유효한 데이터인지를 알려주는 신호("decoded _pels"), I-픽쳐, P-픽쳐, B-픽쳐중 어느 픽쳐에 해당하는 지를 알려주는 신호("picture_coding_type"), 상위필드, 하위필드, 프레임 픽쳐중 어느 것에 해당되는 지를 알려주는 신호("picture_structure"), 움직임의 형태를 알려주는 신호("motion_type"), 필드 이산여현변환인지 프레임 이산여현변환인 지를 알려주는 신호("dct_type"), 순방향, 역방향, 양방향 예측중 어느 예측에 해당하는 지를 알려주는 신호("macroblock_motion_forward", "macroblock _motion_backward")등이 있다.The motion compensation control unit 100 receives a motion vector mv and a flag from the variable length decoder (see FIG. 1) to generate a motion compensation control signal for controlling the motion compensation process, and generates a motion compensation signal. Adjust the timing for the calculation process. In this case, a flag is a signal for indicating whether the data is valid data ("decoded _pels"), an I-picture, a P-picture, or a B-picture signal ("picture_coding_type"). "", "Picture_structure" signal indicating whether it corresponds to a higher field, a lower field, or a frame picture, "motion_type" indicating a type of motion, field discrete cosine transform or frame discrete cosine transform. A signal ("dct_type") and a signal ("macroblock_motion_forward" and "macroblock_motion_backward") indicating which prediction corresponds to one of the forward, backward, and bidirectional predictions.

메모리 제어부(200)에서는 가변길이 복호부(도 1 참조: 20)로부터 움직임 벡터(mv)와 플래그(flag)를 입력받아 읽기/쓰기 어드레스 신호 및 메모리 제어신호를 발생한다.The memory controller 200 receives a motion vector mv and a flag from a variable length decoder (see FIG. 1) to generate a read / write address signal and a memory control signal.

메모리(300)에서는 상기 메모리 제어부(200)로부터의 어드레스 신호에 따라 보상된 화소 데이터를 읽거나 쓰는 역할을 하는데, 이 메모리(300)에는 네 개분의 프레임(I-픽쳐, B-픽쳐, P-픽쳐등)을 저장하도록 되어 있다.The memory 300 reads or writes the compensated pixel data according to the address signal from the memory controller 200. The memory 300 includes four frames (I-picture, B-picture, P-). Pictures, etc.).

버스 제어부(400)에서는 버스 제어신호를 출력한다.The bus controller 400 outputs a bus control signal.

공통 버스(500)에서는 상기 버스 제어부(400)로부터의 버스 제어신호에 따라 상기 메모리(300)에 저장시킬 보상된 화소 데이터와 디스플레이부(도시하지 않음)와 같은 다른 기능블록으로 보낼 보상된 화소 데이터를 전송하기 위한 전송로 역할을 하는데, 이 공통 버스(500)는 12 개의 화소(pel) 즉, 96 비트의 화소 데이터를 전송하도록 되어 있다.In the common bus 500, compensated pixel data to be stored in the memory 300 according to a bus control signal from the bus controller 400 and compensated pixel data to be sent to another functional block such as a display unit (not shown). The common bus 500 is configured to transmit 12 pixels (pel), that is, 96 bits of pixel data.

움직임 보상부(600)에서는 상기 움직임 보상 제어부(100)로부터의 움직임 보상 제어신호에 따라 상기 공통 버스(500)로부터 입력된 화소 데이터와 역 이산여현변환부(도 1 참조: 40)로부터 입력된 역 이산여현변환된 데이터를 이용하여 움직임 보상을 수행한다.The motion compensator 600 inverts the pixel data input from the common bus 500 and the inverse discrete cosine transforming part (see FIG. 1) 40 according to the motion compensation control signal from the motion compensating control part 100. Motion compensation is performed using discrete cosine transformed data.

한편, 도 2 를 참조하면 상기 움직임 보상부(600)는 입력버퍼(610), 반화소 보상부(630), 합산부(650) 및 출력버퍼(670)로 이루어져 있다. 여기서, 움직임 보상부(600)의 내부에 입력버퍼(610)와 출력버퍼(670)를 구비한 이유는 상기 메모리(300)와 움직임 보상부(600)의 동작 속도가 다르기 때문이다. 즉, 상기 메모리(300)는 81MHz 로 동작하고, 움직임 보상부(600)는 54MHz 로 동작하기 때문이다.Meanwhile, referring to FIG. 2, the motion compensator 600 includes an input buffer 610, a half pixel compensator 630, an adder 650, and an output buffer 670. The reason why the input buffer 610 and the output buffer 670 are provided inside the motion compensator 600 is that the operating speeds of the memory 300 and the motion compensator 600 are different. That is, the memory 300 operates at 81 MHz, and the motion compensator 600 operates at 54 MHz.

입력버퍼(610)에서는 상기 움직임 보상 제어부(100)로부터의 움직임 보상 제어 신호(start_block: 블록의 시작을 알리는 신호로서 이 신호는 카운팅을 시작할 때 이용된다.)에 따라 상기 메모리(300)로부터의 12 화소 단위의 화소 데이터를 상기 공통 버스(500)를 통해 입력받아 인터페이싱을 수행한 후, 9 화소 단위로 출력한다. 이때, 입력 버퍼(610)는 블록단위로 데이터를 처리하도록 구현할 수 있다. 반화소 보상부(630)에서는 상기 움직임 보상 제어부(100)로부터의 움직임 보상 제어 신호 즉, 반화소 보상을 할 것인지 아니면 안할 것인지를 알려주는 신호(hpctl)에 따라 상기 입력버퍼(610)로부터의 9 화소 단위의 화소 데이터를 반화소 보상을 하거나 그대로 2 화소 단위로 출력하고, 순방향, 역방향, 양방향 예측중 어느 예측에 해당하는 지를 알려주는 신호(mb_type)에 따라 I-픽쳐에 대한 화소 데이터, P-픽쳐에 대한 화소 데이터 또는 I-픽쳐와 P-픽쳐의 화소 데이터에 대한 평균값을 2 화소 단위로 출력한다.In the input buffer 610, 12 from the memory 300 according to the motion compensation control signal (start_block: signal indicating the start of a block, which is used to start counting) from the motion compensation control unit 100. The pixel data in the pixel unit is input through the common bus 500 to be interfaced, and then output in 9 pixel units. In this case, the input buffer 610 may be implemented to process data in block units. The half-pixel compensator 630 generates a signal from the input buffer 610 according to the motion compensation control signal from the motion compensation controller 100, that is, a signal hpctl indicating whether or not to perform half-pixel compensation. Pixel data for the I-picture, P- according to the signal (mb_type) indicating the pixel data in the pixel unit or half-pixel compensation or output as it is in 2 pixel units and indicating which prediction corresponds to forward, reverse or bidirectional prediction. The pixel data of the picture or the average value of the pixel data of the I-picture and the P-picture is output in units of two pixels.

합산부(650)에서는 상기 움직임 보상 제어부(100)로부터의 움직임 보상 제어 신호(dct_type: 필드 DCT 가 수행되었는 지 프레임 DCT 가 수행되었는 지를 알리는 신호, mc_type: 어떤 형태의 움직임 보상이 수행되는 지를 알려주는 신호)에 따라 상기 반화소 보상부(630)로부터의 2 화소 단위의 화소 데이터와 역 이산여현변환부(도 1 참조: 40)로부터의 2 화소 단위의 화소 데이터를 합산하여 출력한다.In the adder 650, a motion compensation control signal from the motion compensation controller 100 (dct_type: a signal indicating whether a field DCT is performed or a frame DCT is performed, and mc_type: indicating a type of motion compensation is performed). The pixel data from the half pixel compensation unit 630 and the pixel data of the two pixel units from the inverse discrete cosine conversion unit (refer to FIG. 1) 40 are output according to the signal.

출력버퍼(670)에서는 상기 합산부(650)로부터의 보상된 2 화소 단위의 화소 데이터를 필드방식에 따라 상기 메모리(300)에 저장하기 위해 상기 공통 버스(500)로 12 화소 단위로 출력한다. 이때, 출력 버퍼(670)는 화소 데이터를 매크로블록 단위로 처리하도록 구현할 수 있다.The output buffer 670 outputs the pixel data of the compensated two-pixel unit from the summing unit 650 to the common bus 500 in 12 pixel units for storing in the memory 300 according to a field method. In this case, the output buffer 670 may be implemented to process pixel data in macroblock units.

이어서, 첨부된 도면을 참조하여 본 발명에 따른 움직임 보상장치의 실시예에 대한 동작을 설명하기로 한다. 특히, 도 2 를 참조하여 움직임 보상과정을 각 픽쳐에 따라 순서적으로 살펴보면 다음과 같다.Next, an operation of an embodiment of the motion compensation apparatus according to the present invention will be described with reference to the accompanying drawings. In particular, referring to FIG. 2, the motion compensation process is described in order according to each picture.

1) I-픽쳐가 입력된 경우1) When I-picture is input

I-픽쳐가 영상 복호화기의 역 이산여현 변환블록(도 1 참조: 40)에서 역 이산여현 변환되어 움직임 보상부(600)의 합산부(650)로 입력되면 그대로 움직임 보상부(600)의 출력버퍼(670)에 저장된다. I-픽쳐에 대해서는 영상 부호화기(도시하지 않음)에서 이산여현변환을 적용하여 공간방향의 중복성만을 제거하기 때문에 영상 복호화기에서 움직임 보상이 수행될 필요가 없다. 따라서, 움직임 보상 제어부(100)로 입력되는 움직임 벡터값은 "0" 이다. 상기 움직임 보상부(600)의 출력 버퍼(670)에 저장되어 있던 I-픽쳐는 움직임 보상 제어부(100)의 움직임 보상 제어신호에 따라 필드 방식으로 12 화소(96비트)씩 공통 버스(500)로 출력된다. 이때, 공통 버스(500)는 버스 제어부(400)에 의해 제어된다. 그리고, 움직임 벡터("0")와 플래그를 가변길이 복호블록(도 1 참조: 20)으로부터 입력받은 메모리 제어부(200)에서는 I-픽쳐 데이터를 저장하기 위해 쓰기 어드레스 신호 및 메모리 제어신호를 출력한다. 그러면, 메모리(300)에서는 상기 메모리 제어부(200)로부터의 쓰기 어드레스 신호와 메모리 제어신호에 따라 상기 공통 버스(500)에 있는 I-픽쳐 데이터를 소정의 메모리 영역에 저장한다.When the I-picture is inverse discrete cosine transformed by the inverse discrete cosine transform block of the image decoder (see FIG. 1) and input to the adder 650 of the motion compensator 600, the motion compensator 600 is output as it is. It is stored in the buffer 670. For the I-picture, the image encoder (not shown) removes only the redundancy in the spatial direction by applying the discrete cosine transform, so that motion compensation does not need to be performed in the image decoder. Therefore, the motion vector value input to the motion compensation control unit 100 is "0". The I-picture stored in the output buffer 670 of the motion compensator 600 is moved to the common bus 500 by 12 pixels (96 bits) in a field method according to the motion compensation control signal of the motion compensation controller 100. Is output. At this time, the common bus 500 is controlled by the bus controller 400. In addition, the memory controller 200 which receives the motion vector " 0 " and the flag from the variable length decoding block (see FIG. 1) 20 outputs a write address signal and a memory control signal to store the I-picture data. . Then, the memory 300 stores the I-picture data in the common bus 500 in a predetermined memory area according to the write address signal and the memory control signal from the memory controller 200.

2) P-픽쳐가 입력된 경우2) When P-picture is input

영상 복호화기의 가변길이 복호블록(도 1 참조: 20)으로부터 P-픽쳐를 위한 움직임 벡터와 플래그가 움직임 보상 제어부(100) 및 메모리 제어부(200)로 입력되면, 움직임 보상 제어부(100)에서는 움직임 보상시 필요한 각종 제어 신호(start_block, hpctl, mb_type, dct_type, mc_type, out_buffer_start)들을 발생하고, 메모리 제어부(200)에서는 움직임 벡터와 플래그에 따라 읽기 어드레스 신호 및 메모리 제어신호를 출력하여 움직임 보상을 위해 참조할 I-픽쳐의 화소 데이터를 메모리(300)로부터 읽어내도록 제어한다. 상기 메모리(300)에서 읽혀진 I-픽쳐의 화소 데이터는 공통 버스(500)을 통해 12 화소씩 움직임 보상부(600)의 입력 버퍼(610)로 입력되는데, 이때 상기 공통 버스(500)는 버스 제어부(400)에 의해 제어되며, 상기 입력 버퍼(610)는 상기 움직임 보상 제어부(100)로부터 블록의 시작을 알리는 신호("start_block")를 입력받아 블록단위로 데이터를 저장한 후, 9 화소씩 화소 데이터를 출력한다. 9 화소씩 출력된 I-픽쳐의 화소 데이터가 반화소 보상부(630)로 입력되면, 상기 움직임 보상 제어부(100)로부터의 반화소 보상에 대한 수행 여부 신호("hpctl")에 따라 반화소 보상이 이루어진 후, 2 화소씩 출력된다. 상기 반화소 보상부(630)로부터 출력된 2 화소 단위의 I-픽쳐 화소 데이터와 역 이산여현 변환블록(도 1 참조: 40)으로부터의 2 화소 단위의 역 이산여현 변환된 P-픽쳐 화소 데이터가 합산부(650)로 입력되면, 상기 움직임 보상 제어부(100)의 움직임 보상 제어신호(dct_type, mc_type)에 따라 그 두 데이터들이 합해져서 보상이 이루어진 후 2 화소 단위로 출력되는데, 이때 합산된 값이 음수가 되지 않도록 한다. 상기 합산부(650)로부터 P-픽쳐에 대한 보상된 화소 데이터가 출력 버퍼(670)로 입력되면, 상기 움직임 보상 제어부(100)의 움직임 보상 제어신호(dct_type, out_buffer_start)에 따라 12 화소씩 공통 버스(500)로 출력된다. 상기 공통 버스(500)로 출력된 P-픽쳐에 대한 보상된 화소 데이터는 상기 메모리 제어부(200)로부터의 쓰기 어드레스 신호와 메모리 제어 신호에 의해 메모리(300)의 소정 영역에 저장된다.When a motion vector and a flag for a P-picture are input to the motion compensation controller 100 and the memory controller 200 from the variable length decoding block (see FIG. 1) of the image decoder, the motion compensation controller 100 moves. Various control signals (start_block, hpctl, mb_type, dct_type, mc_type, out_buffer_start) necessary for compensation are generated, and the memory controller 200 outputs a read address signal and a memory control signal according to a motion vector and a flag to refer to the motion compensation. The pixel data of the I-picture to be read is controlled from the memory 300. The pixel data of the I-picture read from the memory 300 is input to the input buffer 610 of the motion compensator 600 by 12 pixels through the common bus 500, wherein the common bus 500 is a bus controller. The input buffer 610 receives a signal (“start_block”) indicating the start of a block from the motion compensation controller 100 and stores data in units of blocks, and then controls the pixel by 9 pixels. Output the data. When pixel data of an I-picture output by nine pixels is input to the half-pixel compensator 630, half-pixel compensation is performed according to a performance signal “hpctl” for half-pixel compensation from the motion compensation controller 100. After this, two pixels are output. The I-picture pixel data of the two pixel unit and the inverse discrete cosine-converted P-picture pixel data of the inverse discrete cosine transform block (refer to FIG. 1) from the half-pixel compensator 630 When input to the adder 650, the two data are combined according to the motion compensation control signals dct_type and mc_type of the motion compensation control unit 100, and then output in units of 2 pixels after the compensation is performed. Do not become negative. When the compensated pixel data for the P-picture from the summing unit 650 is input to the output buffer 670, 12 pixels are common buses by 12 pixels according to the motion compensation control signals dct_type and out_buffer_start of the motion compensation controller 100. Is output to 500. The compensated pixel data for the P-picture output to the common bus 500 is stored in a predetermined area of the memory 300 by a write address signal and a memory control signal from the memory controller 200.

3) B-픽쳐가 입력된 경우3) When B-picture is input

영상 복호화기의 가변길이 복호블록(도 1 참조: 20)으로부터 B-픽쳐를 위한 움직임 벡터와 플래그가 움직임 보상 제어부(100) 및 메모리 제어부(200)로 입력되면, 움직임 보상 제어부(100)에서는 움직임 보상시 필요한 각종 제어 신호(start_block, hpctl, mb_type, dct_type, mc_type, out_buffer_start)들을 발생하고, 메모리 제어부(200)에서는 움직임 벡터와 플래그에 따라 순방향 움직임 보상을 위해 읽기 어드레스 신호 및 메모리 제어신호를 출력하여 참조할 I-픽쳐의 화소 데이터를 메모리(300)로부터 읽어내도록 제어한다. 상기 메모리(300)에서 읽혀진 I-픽쳐의 화소 데이터는 공통 버스(500)을 통해 12 화소씩 움직임 보상부(600)의 입력 버퍼(610)로 입력되는데, 이때 상기 공통 버스(500)는 버스 제어부(400)에 의해 제어되며, 상기 입력 버퍼(610)는 상기 움직임 보상 제어부(100)로부터 블록의 시작을 알리는 신호("start_block")를 입력받아 블록단위로 데이터를 저장한 후, 9 화소씩 화소 데이터를 출력한다. 9 화소씩 출력된 I-픽쳐의 화소 데이터가 반화소 보상부(630)로 입력되면, 상기 움직임 보상 제어부(100)로부터의 반화소 보상에 대한 수행 여부 신호("hpctl")에 따라 반화소 보상이 이루어진 후, 잠시 저장된다. 또한, 메모리 제어부(200)에서는 움직임 벡터와 플래그에 따라 역방향 움직임 보상을 위해 읽기 어드레스 신호 및 메모리 제어신호를 출력하여 참조할 P-픽쳐의 화소 데이터를 메모리(300)로부터 읽어내도록 제어한다. 상기 메모리(300)에서 읽혀진 P-픽쳐의 화소 데이터는 공통 버스(500)을 통해 12 화소씩 움직임 보상부(600)의 입력 버퍼(610)로 입력되는데, 이때 상기 공통 버스(500)는 버스 제어부(400)에 의해 제어되며, 상기 입력 버퍼(610)는 상기 움직임 보상 제어부(100)로부터 블록의 시작을 알리는 신호("start_block")를 입력받아 블록단위로 데이터를 저장한 후, 9 화소씩 화소 데이터를 출력한다. 9 화소씩 출력된 P-픽쳐의 화소 데이터가 반화소 보상부(630)로 입력되면, 상기 움직임 보상 제어부(100)로부터의 반화소 보상에 대한 수행 여부 신호("hpctl")에 따라 반화소 보상이 이루어진 후, 잠시 저장된다. 그리고, 반화소 보상부(630)에서는 양방향 움직임 보상을 위해 I-픽쳐와 P-픽쳐의 화소 데이터에 대한 평균값도 저장해 놓는다. 이때, 움직임 보상 제어부(100)로부터의 순방향, 역방향, 양방향 움직임 보상중 어느 것이 선택될 지에 대한 정보(mc_type)에 따라 반화소 보상부(630)에 잠시 저장되어 있던 I-픽쳐의 화소 데이터, P-픽쳐의 화소 데이터와 I-픽쳐와 P-픽쳐의 화소 데이터에 대한 평균값중 한 값이 선택되어 2 화소 단위로 출력된다. 상기 반화소 보상부(630)로부터 선택되어 출력된 2 화소 단위의 화소 데이터와 역 이산여현 변환블록(도 1 참조: 40)으로부터의 2 화소 단위의 역 이산여현 변환된 B-픽쳐 화소 데이터가 합산부(650)로 입력되면, 상기 움직임 보상 제어부(100)의 움직임 보상 제어신호(dct_type, mc_type)에 따라 그 두 데이터들이 합해져서 보상이 이루어진 후 2 화소 단위로 출력되는데, 이때에도 마찬가지로 합산된 값이 음수가 되지 않도록 한다. 상기 합산부(650)로부터 B-픽쳐에 대한 보상된 화소 데이터가 출력 버퍼(670)로 입력되면, 상기 움직임 보상 제어부(100)의 움직임 보상 제어신호(dct_type, out_buffer_start)에 따라 12 화소씩 공통 버스(500)로 출력된다. 상기 공통 버스(500)로 출력된 B-픽쳐에 대한 보상된 화소 데이터는 상기 메모리 제어부(200)로부터의 쓰기 어드레스 신호와 메모리 제어 신호에 의해 메모리(300)의 소정 영역에 저장된다.When a motion vector and a flag for a B-picture are input to the motion compensation controller 100 and the memory controller 200 from the variable length decoding block (see FIG. 1) of the image decoder, the motion compensation controller 100 moves. Various control signals (start_block, hpctl, mb_type, dct_type, mc_type, out_buffer_start) necessary for compensation are generated, and the memory controller 200 outputs a read address signal and a memory control signal for forward motion compensation according to a motion vector and a flag. The pixel data of the I-picture to be referred to is controlled to be read from the memory 300. The pixel data of the I-picture read from the memory 300 is input to the input buffer 610 of the motion compensator 600 by 12 pixels through the common bus 500, wherein the common bus 500 is a bus controller. The input buffer 610 receives a signal (“start_block”) indicating the start of a block from the motion compensation controller 100 and stores data in units of blocks, and then controls the pixel by 9 pixels. Output the data. When pixel data of an I-picture output by nine pixels is input to the half-pixel compensator 630, half-pixel compensation is performed according to a performance signal “hpctl” for half-pixel compensation from the motion compensation controller 100. After this is done, it is stored for a while. In addition, the memory controller 200 controls to read the pixel data of the P-picture to be referred to from the memory 300 by outputting a read address signal and a memory control signal for backward motion compensation according to the motion vector and the flag. The pixel data of the P-picture read from the memory 300 is input to the input buffer 610 of the motion compensation unit 600 by 12 pixels through the common bus 500, wherein the common bus 500 is a bus controller. The input buffer 610 receives a signal (“start_block”) indicating the start of a block from the motion compensation controller 100 and stores data in units of blocks, and then controls the pixel by 9 pixels. Output the data. When the pixel data of the P-picture output by nine pixels is input to the half-pixel compensator 630, half-pixel compensation is performed according to a performance signal “hpctl” for half-pixel compensation from the motion compensation controller 100. After this is done, it is stored for a while. The half-pixel compensator 630 also stores an average value of pixel data of the I-picture and the P-picture for bidirectional motion compensation. In this case, the pixel data of the I-picture, P which is temporarily stored in the half-pixel compensation unit 630 according to information (mc_type) of which forward, reverse, or bidirectional motion compensation from the motion compensation control unit 100 is selected, P One of the average values of the pixel data of the picture and the pixel data of the I-picture and the P-picture is selected and output in units of two pixels. The pixel data in two pixel units selected and output from the half pixel compensator 630 and the B-picture pixel data in inverse discrete cosine transformed in two pixel units from an inverse discrete cosine transform block (see FIG. 1) are summed. When input to the unit 650, the two data are summed according to the motion compensation control signals dct_type and mc_type of the motion compensation control unit 100, and then output in units of 2 pixels after compensation. Don't be negative. When the compensated pixel data for the B-picture from the summing unit 650 is input to the output buffer 670, the common bus is provided for 12 pixels in accordance with the motion compensation control signals dct_type and out_buffer_start of the motion compensation controller 100. Is output to 500. The compensated pixel data for the B-picture output to the common bus 500 is stored in a predetermined area of the memory 300 by a write address signal and a memory control signal from the memory controller 200.

상술한 바에 따라 움직임이 보상되어 상기 메모리(300)에 저장된 화소 데이터들은 디스플레이되기 위해 상기 버스 제어부(400)의 제어에 의해 상기 공통 버스(500)를 통해 디스플레이 블록(도시하지 않음)등으로 전송된다.As described above, motion is compensated and the pixel data stored in the memory 300 are transmitted to a display block (not shown) through the common bus 500 under the control of the bus controller 400 to be displayed. .

한편, 본원 청구범위의 각 구성요소에 병기된 도면 참조부호는 본원 발명의 이해를 용이하게 하기 위한 것으로, 본원 발명의 기술적 범위를 도면에 도시한 실시예로 한정할 의도에서 병기한 것은 아니다.On the other hand, the reference numerals written in the components of the claims of the present application to facilitate the understanding of the present invention, not intended to limit the technical scope of the present invention to the embodiments shown in the drawings.

그리고, 상기에서 서술된 실시예는 모든 점에서 예시에 불과한 것이고, 이를 한정적으로 해석해서는 안되며, 단지 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 본 발명의 청구 범위에 속하는 것이다.In addition, the above-described embodiments are merely illustrative in all respects and should not be construed limitedly, and all modifications existing within the true spirit and scope of the present invention shall fall within the claims of the present invention.

이상에서 서술한 바와 같이 본 발명에 따르면 영상 복호화기에서 움직임 보상을 수행함에 있어서 움직임 보상된 화소 데이터를 저장하는 메모리(300)와 실제로 움직임 보상이 이루어지는 움직임 보상부(600)의 동작속도를 적절히 맞추기 위해 움직임 보상블록 내부에 인터페이싱을 수행하는 블록을 구비하므로써 움직임 보상을 원할하게 수행할 수 있다는 데 그 효과가 있다.As described above, according to the present invention, when performing the motion compensation in the image decoder, the operation speed of the memory 300 storing the motion compensated pixel data and the motion compensation unit 600 which actually performs the motion compensation are properly adjusted. By providing a block for interfacing inside the motion compensation block, the motion compensation can be performed smoothly.

Claims (3)

움직임 벡터와 플래그를 입력받아 움직임 보상 과정을 제어하기 위한 움직임 보상 제어신호를 발생하고, 움직임 보상의 계산 과정에 대한 타이밍을 조절하는 움직임 보상 제어부(100)와;A motion compensation control unit 100 for receiving a motion vector and a flag, generating a motion compensation control signal for controlling a motion compensation process, and adjusting a timing of a motion compensation calculation process; 움직임 벡터와 플래그를 입력받아 읽기/쓰기 어드레스 신호 및 메모리 제어신호를 발생하는 메모리 제어부(200);A memory controller 200 which receives a motion vector and a flag and generates a read / write address signal and a memory control signal; 상기 메모리 제어부(200)로부터의 어드레스 신호에 따라 보상된 화소 데이터를 읽거나 쓰는 메모리(300);A memory 300 that reads or writes compensated pixel data according to an address signal from the memory controller 200; 버스 제어신호를 출력하는 버스 제어부(400);A bus controller 400 for outputting a bus control signal; 상기 버스 제어부(400)로부터의 버스 제어신호에 따라 상기 메모리(300)에 저장시킬 보상된 화소 데이터를 전송하기 위한 공통 버스(500); 및A common bus 500 for transmitting the compensated pixel data to be stored in the memory 300 according to a bus control signal from the bus controller 400; And 상기 움직임 보상 제어부(100)로부터의 움직임 보상 제어신호에 따라 상기 공통 버스(500)로부터 입력된 화소 데이터와 역 이산여현변환된 데이터를 이용하여 움직임 보상을 수행하는 움직임 보상부(600)를 포함하며, 상기 움직임 보상부(600)가, 상기 움직임보상 제어부(100)로부터의 움직임보상 제어신호에 따라 상기 메모리(300)로부터의 화소 데이터를 상기 공ㄱ통버스(500)를 통해 입력받아 인터페이싱을 수행한 후 출력하는 입력버퍼(610); 상기 입력버퍼(610)로부터 입력된 화소 데이터를 상기 움직임보상 제어부(100)로부터의 움직임보상 제어신호에 따라 반화소 보상을 하거나 그대로 출력하는 반화소 보상부(630); 상기 움직임보상 제어부(100)로부터의 움직임보상 제어신호에 따라 상기 반화소 보상부(630)로부터의 화소 데이터와 역 이산여현변환된 화소 데이터를 합산하여 출력하는 합산부(650); 및 상기 합산부(650)로부터의 보상된 화소 데이터를 상기 메모리(300)에 저장하기 위해 상기 공통 버스(500)로 출력하는 출력버퍼(670)로 이루어진 것을 특징으로 하는 움직임 보상장치.And a motion compensation unit 600 performing motion compensation using pixel data input from the common bus 500 and inverse discrete cosine transformed data according to the motion compensation control signal from the motion compensation control unit 100. In response to the motion compensation control signal from the motion compensation controller 100, the motion compensator 600 receives the pixel data from the memory 300 through the common bus 500 to perform interfacing. An input buffer 610 which is outputted afterwards; A half-pixel compensation unit 630 for performing half-pixel compensation or outputting pixel data input from the input buffer 610 according to the motion compensation control signal from the motion compensation control unit 100; An adder 650 for summing and outputting pixel data from the half-pixel compensator 630 and inverse discrete cosine transformed pixel data according to a motion compensation control signal from the motion compensation controller 100; And an output buffer (670) outputting the compensated pixel data from the adder (650) to the common bus (500) for storing in the memory (300). 제 2 항에 있어서, 상기 입력버퍼(610)가 블록단위 혹은 12화소 입력/9화소 출력 단위 중 어느 한 단위로 화소 데이터를 처리하도록 구현된 것을 특징으로 하는 움직임 보상장치.The motion compensation device of claim 2, wherein the input buffer is implemented to process pixel data in one of a block unit and a unit of 12 pixel input / 9 pixel output unit. 제 1 항에 있어서, 상기 출력버퍼(670)가 필드단위 혹은 2화소 입격/12화소 출력단위 중 어느 한 단위로 화소 데이터를 처리하도록 구현된 것을 특징으로 하는 움직임 보상장치.The motion compensation device of claim 1, wherein the output buffer is configured to process the pixel data in any one of a field unit or a unit of 2 pixel input / 12 pixel output unit.
KR1019970011854A 1997-03-31 1997-03-31 A motion compensator KR100248651B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970011854A KR100248651B1 (en) 1997-03-31 1997-03-31 A motion compensator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970011854A KR100248651B1 (en) 1997-03-31 1997-03-31 A motion compensator

Publications (2)

Publication Number Publication Date
KR19980075612A KR19980075612A (en) 1998-11-16
KR100248651B1 true KR100248651B1 (en) 2000-03-15

Family

ID=19501594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970011854A KR100248651B1 (en) 1997-03-31 1997-03-31 A motion compensator

Country Status (1)

Country Link
KR (1) KR100248651B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950013261A (en) * 1993-10-28 1995-05-17 배순훈 Video decoding device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950013261A (en) * 1993-10-28 1995-05-17 배순훈 Video decoding device

Also Published As

Publication number Publication date
KR19980075612A (en) 1998-11-16

Similar Documents

Publication Publication Date Title
USRE36015E (en) Apparatus and method for processing groups of fields in a video data compression system
US5731850A (en) Hybrid hierarchial/full-search MPEG encoder motion estimation
US5453799A (en) Unified motion estimation architecture
KR100592651B1 (en) Transcoding
US20070199011A1 (en) System and method for high quality AVC encoding
KR100472476B1 (en) Interpolation apparatus and method for moving vector compensation
KR100739281B1 (en) Motion estimation method and appratus
KR19990006744A (en) Video coding method and decoding method
JP2000270332A (en) Method and device for encoding dynamic picture
JPH11298903A (en) Digital image decoding device/method and supply medium thereof
KR100364748B1 (en) Apparatus for transcoding video
KR100599935B1 (en) Fast Half-Pel searching Method on the base of SAD values according to integer-pel search and random variable corresponding each macro block
KR100248651B1 (en) A motion compensator
JPH09322175A (en) Method and device for decoding time varying image
JPH11136686A (en) Decoded image conversion circuit and decoded image converter
KR20010011309A (en) Algorithm and Implementation Method of a Low-Complexity Video Encoder
KR100203638B1 (en) Method for estimating motion using half-pixel by half-pixel
KR100269426B1 (en) Motion compensator having an improved frame memory
KR100255793B1 (en) Combine circuit of compensating for p-picture and b-picture in a motion compensator
JP2000115777A (en) Image processing method and image processing unit
KR100617177B1 (en) Motion estimation method
KR0174464B1 (en) Motion estimator
KR100928272B1 (en) Motion estimation method and apparatus for video coding
KR0124167B1 (en) Half pixel motion compensation circuit in image decoder
JPH09261661A (en) Method for forming bidirectional coding picture from two reference pictures

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

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20121203

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee