KR100240620B1 - Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation - Google Patents

Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation Download PDF

Info

Publication number
KR100240620B1
KR100240620B1 KR1019960052608A KR19960052608A KR100240620B1 KR 100240620 B1 KR100240620 B1 KR 100240620B1 KR 1019960052608 A KR1019960052608 A KR 1019960052608A KR 19960052608 A KR19960052608 A KR 19960052608A KR 100240620 B1 KR100240620 B1 KR 100240620B1
Authority
KR
South Korea
Prior art keywords
macroblock
picture
pixel
pixels
bidirectional
Prior art date
Application number
KR1019960052608A
Other languages
Korean (ko)
Other versions
KR970064262A (en
Inventor
스티븐 스벡 로날드
3세 에버렛 조지 베일
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 포만 제프리 엘
Publication of KR970064262A publication Critical patent/KR970064262A/en
Application granted granted Critical
Publication of KR100240620B1 publication Critical patent/KR100240620B1/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/57Motion estimation characterised by a search window with variable size or shape

Abstract

두 개의 기준 화상으로부터 양방향 코딩 화상을 형성하는 방법이 개시되었다. 본 방법은 각 기준 화상으로부터 메모리 페치를 행하는 단계, 전화소 경계에서 최량 정합 매크로블록(best match macroblock)을 찾는 단계, 상기 전화소 경계 매크로블록을 인터폴레이션하여 양방향 매크로블록을 형성하는 단계, 및 상기 양방향 매크로블록으로부터 반화소 기준 화상 데이타를 계산하는 단계를 포함한다. 최량 정합 매크로블록으로부터 잉여 화소가 감소하여 상기 최량 정합 매크로블록을 크기, 형태, 방향의 면에서 대칭이 되도록 한다. 이는 잉여 화소를 나타내기 위한 모서리 검출기를 셋팅함으로써 달성될 수 있다. 상기 잉여 화소는 상기 최량 정합 매크로블록을 크기나 형태나 방향의 면에서 상이하도록 만드는 화소에 해당한다.A method of forming a bidirectional coded picture from two reference pictures is disclosed. The method includes performing a memory fetch from each reference picture, finding a best match macroblock at the telephone line boundary, interpolating the telephone line boundary macroblock to form a bidirectional macroblock, and the bidirectional Calculating half-pixel reference picture data from the macroblock. The surplus pixels are reduced from the best match macroblock to make the best match macroblock symmetric in terms of size, shape, and direction. This can be accomplished by setting an edge detector to represent excess pixels. The surplus pixels correspond to pixels that make the best matching macroblock different in size, shape, or direction.

Description

양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치Method and apparatus for forming symmetric search window for bidirectional half-pixel motion estimation

본 발명은 디지탈 시각 이미지의 압축에 관한 것으로서, 특히 시간 압축(temporal compression), 즉 MPEG2 표준에 의한 화상간 리던던시(redundancy between pictures)의 감축에 관한 것이다. 움직임 벡터(motion vector)를 사용함으로써 화상간 리던던시가 감소 또는 제거된다. 본 발명에 따라, 양방향 예측 화상(bi-directionally predictions)에 대한 반화소 움직임 벡터(half-pel motion vector)가 서로 대칭인 과거 및 미래 최량 정합 매크로블록(symmetric past and future best match macroblocks)으로부터 발생된다. 여기서, 대칭은 매크로블록들이 동일한 크기와 모양, 그리고 방향을 가진다는 것을 의미한다.FIELD OF THE INVENTION The present invention relates to the compression of digital visual images, and more particularly to temporal compression, i.e. reduction of redundancy between pictures by the MPEG2 standard. By using a motion vector, inter-image redundancy is reduced or eliminated. According to the invention, half-pel motion vectors for bi-directionally predictions are generated from symmetric past and future best match macroblocks which are symmetrical to each other. . Here, symmetry means that macroblocks have the same size, shape, and direction.

과거 수십 년동안, 전 세계적으로 전자 통신 시스템이 도래하여 사람들의 정보 교환 방법이 대단히 발전하였다. 특히, 최근에 실시간 비디오/오디오 시스템의 성능이 급격히 발전하였다. 가입자에게 VOD(video-on-demand)나 화상 회의와 같은 서비스를 제공하기 위해서는, 아주 넓은 대역의 네트워크 대역(network and width)이 요구된다. 사실상, 많은 경우 네트워크 대역에 의해 이러한 시스템의 효율이 제한된다.In the past decades, electronic communication systems have emerged around the world, greatly improving the way people exchange information. In particular, the performance of real-time video / audio systems has advanced rapidly in recent years. In order to provide services such as video-on-demand (VOD) or video conferencing to subscribers, a very wide band of network and width is required. In fact, in many cases the efficiency of such a system is limited by the network band.

네트워크에 의한 제한을 극복하기 위해서, 압축 시스템이 출현하였다. 압축 시스템은 화상 시퀀스에서의 리던던시를 제거함으로서 전송할 비디오/오디오 데이타의 양을 감소시킨다. 수신 측에서, 상기 화상 시퀀스가 압축 해제되어 실시간으로 디스플레이될 수 있다.To overcome the limitations of the network, compression systems have emerged. The compression system reduces the amount of video / audio data to transmit by removing redundancy in the picture sequence. On the receiving side, the picture sequence can be decompressed and displayed in real time.

MPEG( Moving Picture Experts Group) 기준은 이러한 비디오 압축 기준의 한 예이다. MPEG 기준에서, 비디오 압축은 소정의 화상 내에서 및 화상 간에서도 정의된다. 화상 내 비디오 압축은 이산 코사인 변환, 양자화, 가변 길이 코딩, 및 허프만 코딩에 의해 시간 영역의 디지탈 이미지를 주파수 영역으로 변환함으로써 이루어진다. 화상간 비디오 압축은 움직임 추정(motion estimation)이라는 처리에 의해 달성되는데, 상기 움직임 추정에서는 움직임 벡터가 사용되어 한 화상에서 다른 화상으로의 화소 세트(a set of picture dliments; pels)의 이행을 나타낸다.The Moving Picture Experts Group (MPEG) standard is an example of such a video compression standard. In the MPEG standard, video compression is defined within and between pictures. In-picture video compression is achieved by converting a digital image in the time domain into a frequency domain by discrete cosine transform, quantization, variable length coding, and Huffman coding. Inter-picture video compression is achieved by a process called motion estimation, in which motion vectors are used to indicate the transition of a set of picture dliments (pels) from one picture to another.

상기 움직임 추정은 현재의 화상으로부터 16x16 매크로블록 데이타를 얻고, 이 매크로블록을 기준 화상의 탐색 윈도우, 즉 양방향 예측을 위한 양 기준 화상의 탐색 윈도우 내의 모든 16x16의 매크로블록과 비교함으로써 달성된다. 탐색 윈도우의 중심은 현재의 16x16 매크로블록의 위치 주변에 있다. 상기 비교는 현재 매크로블록과 기준 매크로블록의 누적된 절대 화소 차이(absolute pel difference)를 취함으로써 행해지고, 그 예측 차이가 가장 작은 것과 연관된 기준 매크로블록을 최량 정합 매크로블록으로 선택한다.The motion estimation is achieved by obtaining 16x16 macroblock data from the current picture and comparing this macroblock with all 16x16 macroblocks in the search window of the reference picture, that is, the search window of both reference pictures for bidirectional prediction. The center of the search window is around the location of the current 16x16 macroblock. The comparison is made by taking the accumulated absolute pel difference between the current macroblock and the reference macroblock, and selecting the reference macroblock associated with the smallest prediction difference as the best match macroblock.

MPEG2 기준은 과거와 미래의 기준 화상에 의한 양방향 인터폴레이션(bi-directional interpolation)을 사용함으로써, 화상 인코딩을 위한 움직임 추정이 계산될 수 있다. 사실, 이것이 가장 높은 데이타 압축도를 가지는 것이므로 가장 효율적인 형태의 움직임 추정이다. 상기 추정은 전화소 값(full pel values) 또는 반화소 값(half pel values)들에 의해 행해질 수도 있다. 반화소 값은 전화소 값 간을 인터폴레이션함으로써 형성된다. 16x16 매크로블록에 대한 가능한 모든 반화소 값을 형성하기 위해서는, 18x18 영역의 전화소 값과 각 매크로블록 측의 부가적인 전화소값이 필요하다.The MPEG2 criterion uses bi-directional interpolation with past and future reference pictures, so that motion estimation for picture encoding can be calculated. In fact, this is the most efficient form of motion estimation since it has the highest degree of data compression. The estimation may be done by full pel values or half pel values. Half pixel values are formed by interpolating between telephone values. In order to form all possible half-pixel values for a 16x16 macroblock, a telephone value of the area of 18x18 and an additional telephone value of each macroblock side are needed.

반화소 움직임 추정에 있어서 발생하는 문제는 기준 데이타의 최량 정합 전화소 위치가 모서리 부분, 예를 들면 전화소 탐색 윈도우의 모서리 등에 위치하는 경우에는, 상기 매크로블록 측에 부가되는 전화소 값들을 반화소 값을 형성하기 위해 이용할 수 없다는 것이다.The problem that occurs in half-pixel motion estimation is that if the best matching phone location of the reference data is located at the corner, for example, at the corner of the phone search window, the half-pixel values are added to the macroblock side. Is not available to form a value.

이러한 문제점은 양방향 반화소 움직임 추정에서 한 기준 화상으로부터의 최량 정합 전화소 데이타가 상기 화상의 모서리에 위치하고 나머지 화상으로부터의 데이타는 이와 동일한 모서리에 있지 않는 경우에 발생한다. 이러한 경우, 반화소 계산 프로세서(half-pel calculation process)는 현재의 매크로블록에 대하여 상이한 크기와 모양, 그리고/또는 방향을 갖는 두 세트의 기준 데이타로 제공된다. 이 경우, 데이타를 패딩(pad), 정렬(align), 스킵(skip)하여 양방향 반화소 값을 형성하기 위해 상기 기준 데이타에 대한 별도의 판독 제어가 필요하다.This problem occurs when in the bidirectional half-pixel motion estimation, the best match phone data from one reference picture is at the edge of the picture and the data from the remaining pictures is not at this same edge. In this case, a half-pel calculation process is provided with two sets of reference data having different sizes, shapes, and / or directions for the current macroblock. In this case, separate read control of the reference data is required to pad, align, and skip the data to form a bidirectional half-pixel value.

본 발명의 주요 목적은 비대칭 탐색 윈도우(unsymmetrical search windows)에 대칭성을 부여하는 것이다. 이는 양방향 인터폴레이션된 화상을 형성하기 위해 사용되는 최량 정합 매크로블록이 동일한 수의 화소, 동일한 형상, 그리고 동일한 방향을 갖도록 하기 위함이다.It is a primary object of the present invention to impart symmetry to unsymmetrical search windows. This is to ensure that the best matching macroblocks used to form the bidirectional interpolated image have the same number of pixels, the same shape, and the same direction.

제1도는 일반화된 MPEG2에 적합한 인코더(11)의 흐름을 도시하는데, 상기 인코더(11)은 이산 코사인 변환기(21), 양자화기(23), 가변 길이 코딩기(25), 역 양자화기(29), 역 이산 코사인 변환기(31), 움직임 보상기(41), 프레임 메모리(42) 그리고 움직임 추정기(43)을 포함한다. 데이타 경로는 i번째 화상 입력(111), 차이 데이타(112), 움직임 벡터(113), 화상 출력(121), 움직임 추정과 보상을 위한 피이드백 화상(131), 그리고 움직임 보상 화상(101)을 포함한다. 도 1에서는 i번째 화상이 프레임 메모리 또는 프레임 스토어(42)에 위치하고, (i +1)번째 화상이 움직임 추정을 사용하여 인코딩되어 있다고 가정한다.Figure 1 shows the flow of an encoder 11 suitable for generalized MPEG2, which comprises a discrete cosine transformer 21, a quantizer 23, a variable length coder 25 and an inverse quantizer 29. ), An inverse discrete cosine transformer 31, a motion compensator 41, a frame memory 42, and a motion estimator 43. The data path includes an i-th image input 111, a difference data 112, a motion vector 113, an image output 121, a feedback image 131 for motion estimation and compensation, and a motion compensation image 101. Include. In FIG. 1, it is assumed that the i th picture is located in the frame memory or frame store 42, and the (i + 1) th picture is encoded using motion estimation.

제2도는 I, P, B 화상, 이들의 디스플레이 순서와 전송 순서의 예, 그리고 전방 및 후방 움직임 예측을 도시하는 도면.2 shows I, P, and B pictures, examples of their display order and transmission order, and forward and backward motion prediction.

제3도는 현재프레임/화상의 움직임 추정 블록으로부터 다음 또는 이전의 프레임/화상의 최량 정합 블록을 탐색하는 과정을 도시하는 도면.3 is a diagram illustrating a process of searching for a best matching block of a next or previous frame / picture from a motion estimation block of a current frame / picture.

제4도는 움직임 벡터에 의해 기준 화상의 위치로부터 현재 화상으로의 블록의 이동과, 움직임 벡터를 사용하여 조정한 후의 기준 화상의 블록을 도시하는 도면.4 is a diagram showing the movement of a block from the position of the reference picture to the current picture by the motion vector, and the block of the reference picture after adjustment using the motion vector.

제5도는 모든 반화소 값을 계산하기 위해 필요한 기준 데이타를 도시하는 도면.5 shows the reference data needed to calculate all half-pixel values.

제6도는 기준 데이타 중에서 사용불가능한 것이 있는 경우 반화소 값을 계산하기 위해 필요한 기준 데이타를 도시하는 도면.6 shows reference data required to calculate half-pixel values when none of the reference data is available.

제7도는 대칭 과거/미래 데이타를 갖는 양방향 모서리 조건을 사용하여 반화소 값을 계산하기 위해 필요한 기준 데이타를 도시하는 도면.7 shows reference data needed to calculate half-pixel values using bi-directional edge conditions with symmetrical past / future data.

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

11 : 인코더 21 : 이산 코사인 변환기11: Encoder 21: Discrete Cosine Converter

23 : 양자화기 25 : 가변 길이 코딩기23 quantizer 25 variable length coder

29 : 역 양자화기 31 : 역 이산 코사인 변환기29 Inverse Quantizer 31 Inverse Discrete Cosine Converter

41 : 움직임 보상기 42 : 프레임 메모리41: motion compensator 42: frame memory

43 : 움직임 추정기43: motion estimator

본 발명의 방법과 장치에 따르면, 상기 목적은 두 개의 기준 화상으로부터 양방향 코딩되는 화상을 형성함으로서 달성된다. 이 방법은 각 기준 화상의 메모리 페치를 수행하고, 탐색 윈도우의 전화소 경계에서의 최량 정합 매크로블록을 발견함으로써 개시된다. 잉여 화소(excess pixels)는 상기 최량 정합 매크로블록에서 제외되는데, 이로써 상기 최량 정합 매크로블록을 크기, 형상, 그리고 방향에 있어서 대칭이 되게 한다. 이는 모서리 감지기(edge detector)가 잉여 화소를 표시하도록 설정함으로써 달성된다. 상기 잉요 화소는 최량 정합 매크로블록이 크기나 형상이나 방향에 있어서 상이하도록 만드는 화소에 해당한다.According to the method and apparatus of the present invention, this object is achieved by forming a picture that is bidirectionally coded from two reference pictures. This method is initiated by performing a memory fetch of each reference picture and finding the best match macroblock at the telephone boundary of the search window. Excess pixels are excluded from the best match macroblock, thereby causing the best match macroblock to be symmetrical in size, shape, and direction. This is accomplished by setting an edge detector to display excess pixels. The inyo pixels correspond to pixels which cause the best matching macroblocks to differ in size, shape or direction.

따라서, 본 발명에 따르면, 과거와 미래 화상으로부터 대칭인 기준 데이타를 갖는 반화소 계산 회로를 항상 제공하는 것이 가능하다. 즉, 상기 데이타는 현재의 매크로블록 위치와 비교하여 동일한 크기와 방향을 갖는다. 특히, 상기 두개의 매크로블록이 동일한 크기를 갖지 않는 경우에는, 큰 매크로블록이 작은매크로블록의 크기로 감소한다.Thus, according to the present invention, it is possible to always provide a half-pixel calculation circuit having reference data symmetrical from past and future images. That is, the data has the same size and direction compared to the current macroblock position. In particular, when the two macroblocks do not have the same size, the large macroblock is reduced to the size of the small macroblock.

본 명세서에 기재된 발명은 B 또는 양방향 인터폴레이션된 화상을 위한 반화소 움직임 추정 방법의 개선에 관한 것으로, 본원에서 참조로 기술되는 아그네스 아가이 및 로날드 에스. 스벡에 의해 1995년 3월 27일자 출원된 미합중국 출원 제08/411,100호의, B 화상을 위한 반화소 움직임 추정 방법을 개선한 것이다.The invention described herein relates to an improvement of a half-pixel motion estimation method for B or bi-directional interpolated pictures, described by Agnes Agai and Ronald S. US patent application Ser. No. 08 / 411,100, filed March 27, 1995, by Svec, improves the half-pixel motion estimation method for B pictures.

본 발명은 MPEG과 HDTV에 적합한(compliant) 인코더와 인코딩 처리에 관한 것이다. 인코더에 의해 수행되는 인코딩 기능은 데이타 입력, 움직임 추정, 매크로블록 모우드 발생, 데이타 재구성, 엔트로피 코딩, 그리고 데이타 출력 기능을 포함한다. 움직임 추정 및 보상은 시간 압축 기능이다. 이들은 고도의 계산 능력을 요구하는 반복적 기능(repetive function)으로서, 역 이산 코사인 변환, 역 양자화, 및 움직임 보상과 같은 집중적인 재구성 처리를 포함한다.The present invention relates to encoders and encoding processes that are compliant with MPEG and HDTV. Encoding functions performed by the encoder include data input, motion estimation, macroblock mode generation, data reconstruction, entropy coding, and data output functions. Motion estimation and compensation is a time compression function. These are repetitive functions that require high computational power and include intensive reconstruction processes such as inverse discrete cosine transform, inverse quantization, and motion compensation.

특히, 본 발명은 움직임 추정, 보상, 예측에 관한 것이고, 좀더 상세히는 움직임 벡터의 계산에 관한 것이다. 움직임 보상(moving compensation)은 현재의 화상을 매크로블록과 같은 블록으로 분할한 다음, 이전에 전송된 화상에서 유사한 내용을 갖는 주변 블록을 탐색함으로써 시간 리던던시(temporal redundancy)를 이용하는 것이다. 기준 화상으로부터 도출된 현재 블록 화소와 예측된 블록 화소와의 차이만이 실제로 압축된 다음 전송된다.In particular, the present invention relates to motion estimation, compensation, and prediction, and more particularly to the calculation of motion vectors. Moving compensation utilizes temporal redundancy by dividing the current picture into blocks, such as macroblocks, and then searching for neighboring blocks with similar content in previously transmitted pictures. Only the difference between the current block pixel derived from the reference picture and the predicted block pixel is actually compressed and then transmitted.

움직임 보상 및 예측의 가장 간단한 방법은 "I"화상의 모든 화소에서의 휘도(luminance)와 색차(chrominance), 즉 강도와 색을 기록하고, 이어지는 화상의 모든 특정 화소에서의 휘도와 색차의 변화, 즉 강도와 색의 변화를 기록하는 것이다. 그러나, 이러한 방법은 전송 매개의 주파수 대역, 메모리, 프로세서 성능, 그리고 처리 시간의 면에서 비경제적인데, 이는 대상물(objuct)이 화상들 간에 이동하기 때문으로 즉, 화소의 내용이 한 화상의 특정 위치에서 후속 화상의 다른 위치로 이동하기 때문이다. 보다 진보된 방법은 움직임 벡터 등을 사용하여 이전 또는 후속 화상을 이용하여 후속 또는 이전 화상에서의 화소 블록의 위치를 예측하고, 그 결과를 "예측된 화상" 또는 "P" 화상으로 기재하는 것이다. 특히, 이 방법은 i번째 화상의 화소 또는 화소의 매크로블록이(i-1)번째나 (i+1)번째 화상에서 어디에 위치할 것인지에 관한 최량 정합(best match) 또는 최량 예측(best prediction)을 이루는 것과 관련된다. 후속 화상과 이전 화상 모두를 사용하여 중간 또는 "B" 화상에서의 화소블록 위치를 예측하는 것은 한 단계 진보한 것이다.The simplest method of motion compensation and prediction is to record the luminance and chrominance, i.e. intensity and color, in all the pixels of an "I" image, and then change the luminance and chrominance in all the specific pixels of the image, That is, the change in intensity and color is recorded. However, this method is uneconomical in terms of transmission frequency, memory, processor performance, and processing time, because the objuct moves between images, i.e. the content of a pixel is a particular position in an image. This is because the image moves to another position in the subsequent image. A more advanced method is to predict the position of the pixel block in the subsequent or previous picture using the previous or subsequent picture using a motion vector or the like and describe the result as a "predicted picture" or "P" picture. In particular, the method provides the best match or best prediction as to where the pixel of the i-th picture or the macroblock of the pixel is to be located in the (i-1) or (i + 1) th picture. It is related to accomplishing. Predicting pixelblock positions in an intermediate or "B" picture using both subsequent pictures and previous pictures is a step forward.

화상 인코딩 순서와 호상 전송 순서는 화상 디스플레이 순서와 반드시 같지는 않다. 이는 도 2에 도시되어 있다. I-P-B 시스템에 있어서, 입력 화상 전송 순서는 인코딩 순서와 다르며, 입력 화상은 인코딩에 사용될 때까지 버퍼에 임시로 저장된다.The picture encoding order and the call transmission order are not necessarily the same as the picture display order. This is shown in FIG. In the I-P-B system, the input picture transmission order is different from the encoding order, and the input picture is temporarily stored in a buffer until used for encoding.

설명의 편이상, 도 1에 도시된 MPEG에 적합한 인코딩의 일반적인 흐름도를 도시하였다. 상기 흐름도에서, i번째 화상과 (i+1)번째 화상의 이미지를 프로세싱하여 움직임 벡터를 발생시킨다. 움직임 벡터는 화소 매크로블록이 이전 및/또는 후속 화상에서 어디에 위치하는지를 예측한다. MPEG과 HDTV 기준에서 전체 이미지 대신 움직임 벡터를 사용한다는 것이 시간 압축의 핵심적인 특징이다. 도 1에 도시된 바와 같이, 일단 생성된 움직임 벡터는 i번째 화상으로부터 (i+1)번째 화상으로의 화소 매크로블록의 위치 이동(translation)에 사용된다.For convenience of explanation, a general flowchart of encoding suitable for MPEG shown in FIG. 1 is shown. In the above flow chart, the images of the i th picture and the (i + 1) th picture are processed to generate a motion vector. The motion vector predicts where the pixel macroblock is located in the previous and / or subsequent picture. The use of motion vectors instead of full images in MPEG and HDTV standards is a key feature of time compression. As shown in Fig. 1, the generated motion vector is used for position translation of the pixel macroblock from the i-th image to the (i + 1) th image.

도 1에 도시된 바와 같이, 인코딩 처리에서, i번째 화상과 (i+1)번째 화상의 이미지가 인코더(11)에서 처리되어 움직임 벡터를 생성하고, 예를 들어 (i+1)번째와 그 이후의 화상은 이러한 형식으로 인코딩되어 전송된다. 후속 화상의 입력 이미지(111)은 인코더의 움직임 추정 유닛(43)으로 입력된다. 움직임 벡터(113)은 움직임 추정 유닛(43)의 출력으로서 형성된다. 이러한 움직임 벡터는 움직임 보상 유닛(41)에 의해 과거 및/또는 미래 화상으로부터 상기 유닛(41)의 출력으로 "기준"데이타인 매크로블록 데이타를 검색하기 위해 사용된다. 움직임 보상 유닛(41)의 하나의 출력은 움직임 추정 유닛(43)의 출력으로부터 감산되고, 그 결과가 이산 코사인 변환기(21)로 입력된다. 이산 코사인 변환기(21)의 출력은 양자화기(23)에서 양자화된다. 양자화기(23)의 출력은 2개의 출력(121, 131)으로 분할되어, 출력(121)은 계속되는 데이타 압축과 전송전 처리를 위해 실행 길이 인코더(run lingth encoder)와 같은 하향열 부재(downstream element ; 25)로 입력되고, 다른 출력(131)은 인코딩된 화소 매크로블록을 재고성하여 프레임 메모리(42)에 저장된다. 도시된 인코더에서, 제2 출력(131)은 역 양자화기(29)와 역 이산 코사인 변환기(31)을 거쳐서 차이 매크로블록의 손실치(lossy version)를 발생시킨다. 이 데이타는 움직임 보상 유닛(41)의 출력과 합산되어 원 화상(original picture)의 손실치를 프레임 메모리(42)에 전달한다.As shown in Fig. 1, in the encoding process, the image of the i th picture and the (i + 1) th picture are processed by the encoder 11 to generate a motion vector, for example, the (i + 1) th and Subsequent pictures are encoded and sent in this format. The input image 111 of the subsequent picture is input to the motion estimation unit 43 of the encoder. The motion vector 113 is formed as an output of the motion estimation unit 43. This motion vector is used by the motion compensation unit 41 to retrieve macroblock data that is " reference " data from the past and / or future pictures to the output of the unit 41. One output of the motion compensation unit 41 is subtracted from the output of the motion estimation unit 43, and the result is input to the discrete cosine transformer 21. The output of the discrete cosine converter 21 is quantized in quantizer 23. The output of the quantizer 23 is divided into two outputs 121 and 131 so that the output 121 is a downstream element such as a run lingth encoder for subsequent data compression and pre-transmission processing. A second output 131 is reconstructed in the encoded pixel macroblock and stored in the frame memory 42. In the encoder shown, the second output 131 generates a lossy version of the differential macroblock via an inverse quantizer 29 and an inverse discrete cosine transformer 31. This data is summed with the output of the motion compensation unit 41 to convey the lost value of the original picture to the frame memory 42.

도 2에 도시한 바와 같이, 3가지 유형의 화상이 있다. "내부 코딩된 화상(intra pictures)" 또는 "I"화상은 전체적으로 인코딩되어 전송되는데, 이들에 대해서는 움직임 벡터가 정의될 필요가 없다. "I"화상은 움직임 벡터의 소오스(source)로서 기능한다. "예측 코딩된 화상(predicted pictures)" 또는 "P" 화상은 이전 화상(previous picture)으로부터 움직임 벡터를 사용하여 형성되는데, 이들은 이후 화상(further picture)을 위한 움직임 벡터의 소오스로서 기능한다. 마지막으로, "양방향 코딩된 화상" 또는 "B"화상은 움직임 벡터에 의해 두 개의 서로 다른 화상, 즉 과거 화상과 미래 화상으로부터 형성되는데, 이들은 움빅임 벡터의 소오스로서 기능하지 못한다. 움직임 벡터는 "I"와 "P" 화상으로부터 발생되며, "P"와 "B"화상을 형성하기 위해 사용된다.As shown in Fig. 2, there are three types of images. "Intra coded pictures" or "I" pictures are encoded and transmitted as a whole, for which a motion vector does not need to be defined. An "I" picture functions as a source of motion vectors. "Predicted pictures" or "P" pictures are formed using motion vectors from previous pictures, which serve as a source of motion vectors for later pictures. Finally, a "bidirectional coded picture" or "B" picture is formed from two different pictures, a past picture and a future picture by motion vectors, which do not function as a source of the umbic vector. Motion vectors are generated from "I" and "P" pictures and used to form "P" and "B" pictures.

움직임 추정이 수행되는 한가지 방법으로, 도 3에 도시된 바와 같은, i번째 화상의 매크로블록(211)로부터 다음 화상의 소정 영역에 걸쳐 탐색하여 최량 정합 매크로블록(213)을 발견하는 것이다. 이러한 방법으로 매크로블록을 위치 이동시킴으로서 도 4에 도시된 바와 같은 (i+1)번째 화상을 위한 매크로블록 패턴을 얻는다. 이러한 방법으로, i번째 화상은 예를 들면 움직임 벡터와 차이 데이터 만큼 약간 변화하여 (i+1)번째 화상을 발생시킨다. 인코딩 대상은 (i+1)번째 화상이 아니라 움직임 벡터와 차이 데이타이다. 움직임 벡터는 화상간의 이미지 위치를 이동시키고, 차이 데이타는 색차, 휘도, 그리고 채도(saturation)의 변화, 즉 음영(shading)과 조도(illumination)의 변화를 나타낸다.One way in which motion estimation is performed is to search from the macroblock 211 of the i < th > picture over a predetermined area of the next picture, as shown in FIG. 3, to find the best match macroblock 213. FIG. By moving the macroblock in this manner, a macroblock pattern for the (i + 1) th image as shown in Fig. 4 is obtained. In this way, the i < th > picture is slightly changed by, for example, the motion vector and the difference data to generate an (i + 1) < th > The encoding target is the motion vector and the difference data, not the (i + 1) th image. The motion vector shifts the image position between the images, and the difference data represents a change in chrominance, luminance, and saturation, that is, a change in shading and illumination.

도 3에서, (i+1)번째 화상에서와 동일한 위치에 있는 i번째 화상에서 정합 탐색을 개시한다. 탐색 윈도우가 i번째 화상에서 생성된다. 이 탐색 윈도우 내에서 최량 정합을 탐색한다. 일단 발견되면, 매크로블록에 대한 최량 정합 움직임 벡터가 코딩된다. 최량 정합 매크로블록의 코딩은 움직임 벡터, 즉 x방향 및 y방향 화소들이 다음 화상에서 얼마나 최량 정합 변위되었는지를 포함한다. "예측 오차"라고도 부르는 차이 데이타도 코딩되는데, 이 값은 현재의 매크로블록과 최량 정합 기준 매크로블록 간의 색차와 휘도의 차이를 나타낸다.In Fig. 3, the matching search is started in the i-th picture at the same position as in the (i + 1) -th picture. A search window is generated in the i th picture. Search for the best match in this search window. Once found, the best matched motion vector for the macroblock is coded. The coding of the best match macroblock includes how best the match vectors are displaced in the next vector in the motion vector, i. Difference data, also called " prediction error ", is also coded, which represents the difference in color difference and luminance between the current macroblock and the best match reference macroblock.

MPEG 기준에서의 정의에 다르면, 비디오 이미지는 세 가지 화상 형태, 즉 I, P 또는 B화상 중에서 어느 하나로 압축될 수 있다. I 화상은 화상 내의 공간 리던던시를 제거함으로써 압축된다. P화상은 이전에 인코딩(압축)된 화상에 대한 시간 리던던시를 제거함으로써 압축된다. B화상도 이전에 인코딩되었던 두 개의 화상에 대해서만 시간 리던던시를 제거함으로써 압축된다. B화상은 양 기준 화상의 인터폴레이션에 의해 압축될 수 있다. 이에 의해, B화상은 상기 세 가지 화상 형태 중에서 가장 높은 수준의 압축을 달성할 수 있다.According to the definition in the MPEG standard, a video image can be compressed into any of three picture types, i.e., P or B picture. The I picture is compressed by removing spatial redundancy in the picture. The P picture is compressed by removing the time redundancy for the previously encoded (compressed) picture. The B picture is also compressed by eliminating time redundancy only for the two pictures that were previously encoded. The B picture can be compressed by interpolation of both reference pictures. Thereby, the B picture can achieve the highest level of compression among the three picture types.

B 화상에서의 양방향 인터폴레이션은 다음과 같이 정의된다 :Bidirectional interpolation in B pictures is defined as follows:

x를 기준 화상 I로부터의 화소라 하고, y를 기준 화상 P로부터의 화상이라고 한다.x is referred to as a pixel from the reference image I, and y is referred to as an image from the reference image P.

양방향 인터폴리이션된 기준 화소는Bidirectional interpolated reference pixels

(x + y) /2(x + y) / 2

이다. 단, 여기서 "/" 연산자는 나눗셈 후 반올림하는 것을 의미한다.to be. However, the "/" operator here means rounding after division.

화소는 0~255 까지의 8비트의 양의 정수로서 정의된다. 따라서, 반올림은 나머지의 최상위 비트가 1이면 몫의 최하위 비트에 1이 가산되는 것을 의미한다. 연산 결과로서 몫만이 저장되고, 나머지 값은 버려진다. 이러한 것은 우측 쉬프트 소자와 증가 소자와 같은 하드웨어로써 용이하게 구현된다.A pixel is defined as a positive integer of 8 bits from 0 to 255. Therefore, rounding means that if the most significant bit of the remainder is 1, 1 is added to the least significant bit of the quotient. Only the quotient is stored as the result of the operation, and the remaining values are discarded. This is easily implemented with hardware such as the right shift element and the increment element.

움직임 화상 인코딩에서, 시간 리던던시는 식별되어 제거되어야 한다. 이는 움직임 추정 처리를 통해 이루어진다. 비교 회로가 사용되어 탐색 윈도우 내에서 현재 화상에 대한 최근 정합(closest match)을 탐색한다. 따라서, 두 개의 기준 화상 각각에 대하여 하나의 움직임 추정이 요구되고, 인터폴레이션된 기준에 대하여 하나의 움직임 추정이 요구되므로 화상 B에 대해 모두 세 개의 움직임 추정이 요구된다.In motion picture encoding, temporal redundancy must be identified and eliminated. This is done through the motion estimation process. A comparison circuit is used to search for a close match for the current picture within the search window. Therefore, one motion estimation is required for each of the two reference pictures, and one motion estimation is required for the interpolated reference, so all three motion estimations are required for the image B.

MPEG 기준에서, 움직임 추정은 매크로블록 상에서 수행된다. 비디오 이미지는 매크로블록으로 불리는 16x16의 화소 유닛으로 분할된다. 이러한 이유로, 최근 정합 매크로블록(closest match macroblock)의 크기는 16x16 화소이어야 한다. 상기 식별된 최근 정합 (16x16)매크로블록 주위의 모든 가능한 반 화소(half pixels)을 형성하기 위해서는 18x18 화소 영역이 요구된다. 움직임 추정에 사용되는 반 화소의 형태는 후술한다.In the MPEG criteria, motion estimation is performed on macroblocks. The video image is divided into 16x16 pixel units called macroblocks. For this reason, the size of a recent close match macroblock should be 16x16 pixels. An 18x18 pixel area is required to form all possible half pixels around the identified recently matched (16x16) macroblock. The form of half pixel used for motion estimation is mentioned later.

B 화상의 움직임 추정에는 메모리 페치가 관련된다. 하나의 화상(720x480화소)은 346K 바이트의 휘도 데이타(luminance data)를 요구하는데, 이들은 데이타 압축을 수행하는 프로세서 외부 메모리에 저장된다.Memory fetch is involved in the motion estimation of the B picture. One picture (720x480 pixels) requires 346K bytes of luminance data, which is stored in the processor external memory that performs data compression.

종래 기술에서 사용되는 한 가지 방법은 외부 메모리로부터 기준 화상을 페치하고 이로부터 움직임 추정을 수행하는 것이다. 이어서, 제2 기준 화상이 페치되고, 제1 기준 화상에서와 동일한 방법으로 움직임 추정이 수행된다. 이어서, 제1 및 제2 기준 화상으로부터의 최근 정합 기준 데이타(18x18 화소 블록)가 다시 페치되어 인터폴레이션된 화상에 대하여 움직임 추정이 수행된다.One method used in the prior art is to fetch a reference picture from an external memory and perform motion estimation therefrom. Then, the second reference picture is fetched, and motion estimation is performed in the same manner as in the first reference picture. Subsequently, recent matching reference data (18x18 pixel blocks) from the first and second reference pictures are fetched again and motion estimation is performed on the interpolated picture.

전술한 미합중국 특허 출원 제08/411,100호에 개시된 방법에서는 각 기준 화상을 단 한번 페치한다. 각 기준 화상으로부터의 최근 정합 기준 데이타는 온-칩(on-chip) 버퍼에 저장된다. 이어서, 상기 버퍼에 저장된 데이타를 사용하여 인터폴레이션 움직임 추정(interpolated motion estimation)이 수행된다. 이에 의해, 메모리 대역 요건을 감소시킨다.In the method disclosed in the above-mentioned US patent application Ser. No. 08 / 411,100, each reference image is fetched only once. The latest match reference data from each reference picture is stored in an on-chip buffer. Subsequently, interpolated motion estimation is performed using the data stored in the buffer. This reduces the memory band requirements.

이러한 세 가지 전화소 경계 탐색으로부터 최근 정합이 식별되면, 반화소 기준 데이타가 계산되고 움직임 추정이 다시 수행되어 반화소 경계에서 최근 정합 기준 데이타를 탐색한다. 세 가지 전화소 탐색 중에서 최량 정합 탐색만이 반화소 탐색에서 진행된다. 반화소 기준 데이타를 계산하기 위해 사용되는 반화소 인터폴레이션 방법에는 수평 하프법(horizontal half), 수직 하프법(vertical half), 그리고 전하프법(full half)의 3가지가 있다.If a recent match is identified from these three phonetic boundary searches, half-pixel reference data is calculated and motion estimation is performed again to retrieve the latest match-reference data at the half-pixel boundary. Of the three phone search, only the best match search proceeds in the half pixel search. There are three half-pixel interpolation methods used to calculate half-pixel reference data: horizontal half, vertical half, and full half.

a, b, c, d를 기준 화상에서 다음과 같이 인접한 네 개의 화소이라고 하자.Let a, b, c, and d be four adjacent pixels in the reference image as follows.

a ba b

c dc d

수평 반화소는 다음과 같이 형성된다 :Horizontal half-pixels are formed as follows:

(a + b) / 2(a + b) / 2

(c + d) / 2(c + d) / 2

단, 여기서 "/" 연산자는 나눗셈 후 반올림하는 것을 의미한다.However, the "/" operator here means rounding after division.

수직 반화소는 다음과 같이 형성된다.Vertical half-pixels are formed as follows.

(a + c) / 2(a + c) / 2

(b + d ) /2(b + d) / 2

전 반화소는 다음과 같이 형성된다 :The former half-pixel is formed as follows:

(a + b + c + d) / 4(a + b + c + d) / 4

단, 위에서 "/"연산자는 나눗셈 후 반올림하는 것을 의미한다.However, the "/" operator above means rounding after division.

먼저, 각 기준 화상에 대한 버퍼 데이타로부터 반화소가 형성되어야 한다. 이어서, 이러한 결과로부터 B화상에 대한 인터폴레이션 반화소가 형성되어 움직임 추정을 완료한다. 반올림 과정이 개재되어 있으므로, 인터폴레이션 결과를 정확히 얻기 위해서는 연산 순서가 유지되어야 한다. 종래 기술에서는, 각 기준 화상에 대해 하나씩 필요하게 되어, B화상에 대해 2세트의 18x18x18 비트 버퍼가 요구되었다.First, half pixels should be formed from the buffer data for each reference picture. Subsequently, an interpolation half-pixel for the B picture is formed from this result to complete the motion estimation. Because of the rounding process, the order of operations must be maintained to obtain accurate interpolation results. In the prior art, one is required for each reference picture, and two sets of 18x18x18 bit buffers are required for B pictures.

하나의 18x18x11비트 버퍼만을 필요로 하면 필요한 버퍼량은 감소될 수 있다. 상기 버퍼는 각 화소에 대해 7비트 부분합(partial sum)을 갖는데, 이 값은 대응하는 I 및 P화상 화소의 6개의 최상위 비트를 가산함으로써 형성된다. 버퍼에서 각 워드의 나머지 4비트는 대응하는 I 및 P화소의 2개의 최하위 비트를 포함한다.If only one 18x18x11 bit buffer is required, the required amount of buffer can be reduced. The buffer has a 7 bit partial sum for each pixel, which is formed by adding the six most significant bits of the corresponding I and P picture pixels. The remaining four bits of each word in the buffer contain the two least significant bits of the corresponding I and P pixels.

전술한 바와 같이, B 화상의 반화소 움직임 추정은 각 기준 화상에 대해 반화소 인터폴레이션을 행하고 이어서 이러한 반화소 값을 두 개의 기준 화상에 걸쳐 인터폴레이션할 것을 요구한다.As mentioned above, half-pixel motion estimation of a B picture requires half-pixel interpolation for each reference picture and then interpolates these half-pixel values across two reference pictures.

I 프레임에 대하여 다음의 화상이 사용된다. 다음은 기준 I 화상에서의 화소를 나타낸다 :The following picture is used for an I frame. The following shows the pixels in the reference I picture:

I0(x) I1(x)I 0 (x) I 1 (x)

I10(x) I11(x)I 10 (x) I 11 (x)

여기서, x는 각 화소의 비트 위치를 나타내는 값으로 1 ~8의 정수값이다.Here, x is a value representing the bit position of each pixel and is an integer value of 1-8.

수평 반화소를 위한 식은Cooling for horizontal half-pixels

IHH= (I0(1) I0(2) … I0(7) I0(8) +I HH = (I 0 (1) I 0 (2)… I 0 (7) I 0 (8) +

I1(1) I1(2) … I1(7) I1(8)) / 2I 1 (1) I 1 (2). I 1 (7) I 1 (8)) / 2

화소 쌍의 최하위 2비트만을 고려하면, 다음을 얻는다 :Considering only the least significant 2 bits of the pixel pair, we get:

I0(7) I0(8)I 0 (7) I 0 (8)

+ I1(7) I1(8)+ I 1 (7) I 1 (8)

--------------------------------------

ICOx(6) ISOx(7) ISOx(8)I COx (6) I SOx (7) I SOx (8)

ISOx(8)은 반화소 연산에서 2의 제산 연산으로부터 발생된 "반올림" 항이다. 이로부터, I 화상에 대한 수평 반화소를 얻기 위한 식은 다음과 같이 변형될 수 있다.I SOx (8) is the "rounding" term resulting from the division operation of two in the half-pixel operation. From this, the equation for obtaining the horizontal half-pixel for the I image can be modified as follows.

이와 마찬가지로, I 화상에 대한 수직 반화소를 얻기 위한 식은 다음과 같다 :Similarly, the equation for obtaining the vertical half-pixel for an I picture is:

여기서, ICOx(6), ISOx(7), ISOx(8)은 다음과 같이 얻어진다 :Here, I COx (6), I SOx (7), I SOx (8) are obtained as follows:

ISxO(8)은 반화소 연산에서 2의 제산 연산으로부터 발생된 "반올림" 항이다.I SxO (8) is the "rounding" term resulting from the division operation of two in the half-pixel operation.

이와 마찬가지로, 전 반화소를 얻기 위한 식은 다음과 같다 :Similarly, the equation for obtaining the half-pixel is:

여기서, Ic(5), Ic(6), Is(7)은 다음과 같이 얻어진다 :Where Ic (5), Ic (6) and Is (7) are obtained as follows:

위에서 4로 제산하고 Is(8)을 버리므로 "반올림" 항은 Is(7)이다.Divide by 4 from the top and discard Is (8), so the rounding term is Is (7).

P 화상에 대한 반화소 연산은 이와 동일한 방법에 의해 다루어질 수 있다.Half-pixel operations on P-pictures can be handled by this same method.

기준 P 화상의 화소가 다음과 같다고 하자 :Assume that the pixels of the reference P picture are as follows:

여기서, x는 각 화소의 비트 위치를 나타내는 값으로 1 ~ 8의 정수값이다.Here, x is a value representing the bit position of each pixel and is an integer value of 1 to 8.

I 화상에서와 동일한 방법으로, P 화상에서 수평 하프 인터폴레이션에 대한 식은 다음과 같다 :In the same way as in the I picture, the equation for horizontal half interpolation in the P picture is:

여기서, PCOx(6), PSOx(7), PSOx(8)을 얻기 위한 식은 다음과 같다 :Here, the formula for obtaining P COx (6), P SOx (7), and P SOx (8) is as follows:

P 화상에 대한 수직 하프 인터폴레이션에 대한 식은 다음과 같다 :The equation for vertical half interpolation for a P picture is:

여기서, PCxO(6), PSxO(7), PSxO(8)은 다음과 같이 얻어진다.Here, P CxO (6), P SxO (7), and P SxO (8) are obtained as follows.

마지막으로, P화상에 대한 전 반화소를 얻기 위한 식은 다음과 같다 :Finally, the equation for obtaining the half-pixel for a P picture is:

여기서, Pc(5), Pc(6), Ps(7)은 다음과 같이 구해진다 :Where Pc (5), Pc (6), and Ps (7) are obtained as follows:

B 화상에서 양방향으로 인터폴레이션된 수평 반화소는 I와 P 기준 화상으로 부터의 수평 반화소를 인터폴레이션하여 형성된다. IHH와 PHH를 위한 식이 양방향 인터폴레이션 식과 결합될 수 있다. 이로부터 얻어진 인터폴레이션된 수평 반화소식은 다음과 같다 :A horizontal half pixel interpolated bidirectionally in a B picture is formed by interpolating horizontal half pixels from an I and P reference picture. Equations for I HH and P HH can be combined with bidirectional interpolation equations. The resulting interpolated horizontal half-pixels are:

여기서, IPCOx(4), IPCOx(5), IPCOx(6), IPSOx(7)은 다음과 같이 구해진다.Here, IP COx 4, IP COx 5, IP COx 6, and IP SOx 7 are obtained as follows.

그리고, ICOx(6), ISOx(7), ISOx(8), PCOx(6), PSOx(7), PSOx(8)은 I와 P화상에 대한 수형 반화소 식에서 이전에 정의된 바와 동일하다.And I COx (6), I SOx (7), I SOx (8), P COx (6), P SOx (7), and P SOx (8) are previously described in the formula half-pixel equation for I and P images. Same as defined.

상기 HH 식은 다음과 같이 변형될 수 있다.The HH equation may be modified as follows.

여기서, IP0(n)은 I0(n)과 P0(n)의 부분합을 나타내고, IP1(n)은 I1(n)과 P1(n)의 부분합을 나타내며, 'n'은 화소 바이트에서 비트의 위치를 나타내는 수로서 0 ~6이다.Where IP 0 (n) represents the subtotal of I 0 (n) and P 0 (n), IP 1 (n) represents the subtotal of I 1 (n) and P 1 (n), and 'n' A number that indicates the position of a bit in a pixel byte, 0 to 6.

또한, IP0(0)은 I0(1 : 6) + P0(1 : 6)의 캐리 출력이고, IP1(0)은 I1(1 : 6) + P1(1 : 6)의 캐리 출력이다.Also, IP 0 (0) is the carry output of I 0 (1: 6) + P 0 (1: 6), and IP 1 (0) is the I 1 (1: 6) + P 1 (1: 6) Carry output.

따라서, 인터폴레이션된 수평 반화소 결과는 I와 P 기준 화상으로부터의 부분합(IP0(n)과 IP1(n))과 I와 P 기준 화상으로부터의 각 화소의 최하위 2비트로부터 연산된다.Thus, the interpolated horizontal half-pixel result is computed from the partial sum (IP 0 (n) and IP 1 (n)) from the I and P reference pictures and the least significant two bits of each pixel from the I and P reference pictures.

VH와 FH에 대해서도 위와 동일한 변형이 가능하다. 따라서, VH의 식은 다음과 같다 :The same modifications are possible for VH and FH. Thus, the formula for VH is:

여기서, IP0(n)은 I0(n)과 P0(n)의 부분합을 나타내고, IP10(n)은 I10(n)과 P10(n)의 부분합을 나타내며, 'n'은 화소 바이트에서 비트의 위치를 나타내는 수로서 0~6이다.Where IP 0 (n) represents the subtotal of I 0 (n) and P 0 (n), IP 10 (n) represents the subtotal of I 10 (n) and P 10 (n), and 'n' is A number representing the position of a bit in a pixel byte, 0 to 6.

또한, IP0(0)은 I0(1 : 6) + P0(1 : 6)의 캐리 출력이고 IP10(0)은 I10(1 : 6) +P10(1 : 6)의 캐리 출력이며, IPCxO(4), IPCxO(5), IPCXO(6), IPSxO(7)은 다음과 같이 얻어진다.Also, IP 0 (0) is the carry output of I 0 (1: 6) + P 0 (1: 6) and IP 10 (0) is the carry of I 10 (1: 6) + P 10 (1: 6) As an output, IP CxO (4), IP CxO (5), IP CXO (6), and IP SxO (7) are obtained as follows.

여기서, ICxO(6), ISxO(7), ISxO(8), PCxO(6), PSxO(7), PSxO(8)은 이전에 정의된 바와 동일하다.Here, I CxO (6), I SxO (7), I SxO (8), P CxO (6), P SxO (7), and P SxO (8) are the same as previously defined.

이와 마찬가지로, FH의 식은 다음과 같다 :Similarly, the formula for FH is as follows:

여기서, IP0(n)은 I0(n)과 P0(n)의 부분합을 나타내고, IP1(n)은1(n)과 P1(n)의 부분합을 나타내며, IP10(n)은 I10(n)과 P10(7)의 부분합을 나타내고, IP11(n)은 I11(n)과 P11(n)의 부분합을 나타내며, 'n'은 화소 바이트에서 비트의 위치를 나타내는 수로서 0~6이다.Here, IP 0 (n) represents a partial sum of I 0 (n) and P 0 (n), IP 1 (n) represents a partial sum of 1 (n) and P 1 (n), and IP 10 (n) Represents the subtotal of I 10 (n) and P 10 (7), IP 11 (n) represents the subtotal of I 11 (n) and P 11 (n), and 'n' represents the position of the bit in the pixel byte. It is 0-6 as a number to show.

또한, IP0(0)은 I0(1 : 6) + P0(1 : 6)의 캐리 출력이고, IP1(0)은 I1(1 : 6) +P1(1 : 6)의 캐리 출력이고, IP10(0)은 I10(1: 6) +P10(1 : 6)의 캐리 출력이며, IP11(0)은 I11(1 : 6) + P11(1 : 6)의 캐리 출력이다.Also, IP 0 (0) is the carry output of I 0 (1: 6) + P 0 (1: 6), and IP 1 (0) is the I 1 (1: 6) + P 1 (1: 6) Carry output, IP 10 (0) is the carry output of I 10 (1: 6) + P 10 (1: 6), IP 11 (0) is I 11 (1: 6) + P 11 (1: 6) ) Is the carry output of

앞의 IPc(3), IPc(4), IPc(5), IP(6)는 다음과 같이 얻어진다 :The preceding IPc (3), IPc (4), IPc (5), and IP (6) are obtained as follows:

여기서, Ic(5), Ic(6), Is(7), Pc(5), Pc(6), Ps(7)은 이전에 정의된 바와 동일하다.Here, Ic (5), Ic (6), Is (7), Pc (5), Pc (6), Ps (7) are the same as previously defined.

또한, 이 경우 각 부분합(IP0(6), IP1(6), IP10(6), IP11(6))의 최하위 비트가 상기 식에서 고려되어야 한다.In this case, the least significant bit of each subtotal (IP 0 (6), IP 1 (6), IP 10 (6), IP 11 (6)) must also be considered in the above equation.

위의 식들은 B 화상 움직임 추정에 요구되는 반화소가 먼저 두 기준 화상의 대응하는 바이트 위치의 화소를 인터폴레이션하고 이어서 상기 인터폴레이션된 화소로부터 반화소 값을 계산함으로써 형성될 수 있다는 것을 분명히 나타낸다.The above equations clearly indicate that a half pixel required for B picture motion estimation can be formed by first interpolating a pixel at a corresponding byte position of two reference pictures and then calculating a half pixel value from the interpolated pixel.

또한, 위의 식들은 B 화상 움직임 추정에 요구되는 반화소가 일반적으로 요구되는 두개의 18x18x8 화소 블록이 아닌 "감소된" 데이타 세트로부터 형성될 수 있다는 것을 분명히 나타낸다. 상기 감소된 데이타 세트는 I와 P 화상에서 대응하는 화소의 상위 6비트로부터 얻어지는 7비트 부분합의 18x18x11 배열과 각 화소의 최하위 2비트로 구성된다. 이러한 방법을 사용하으로써, 온-칩 버퍼 공간이 5814비트(2x18x18x8)로부터 3564 비트(18x18x11)로 감소되어, 31%의 버퍼 공간의 향상을 이루었다.In addition, the above equations clearly indicate that the half-pixels required for B-picture motion estimation can be formed from "reduced" data sets rather than the two 18x18x8 pixel blocks that are typically required. The reduced data set consists of an 18x18x11 array of 7-bit subtotals obtained from the upper 6 bits of the corresponding pixels in the I and P pictures and the least significant 2 bits of each pixel. Using this method, the on-chip buffer space was reduced from 5814 bits (2x18x18x8) to 3564 bits (18x18x11), resulting in a 31% improvement in buffer space.

본 발명의 방법 및 장치는 특히 "B" 또는 양방향 예측 화상에 관한 것으로, 과거 화상과 미래 화상 양쪽으로부터 대칭인 기준 데이타를 갖는 반화소 계산 프로세서를 제공한다. 즉, 양 기준 화상에서의 데이타가 현재의 매크로블록 위치에 대하여 동일한 크기와 동일한 방향을 갖는다. 특히, 상기 두 개의 매크로블록이 동일한 크기를 갖지 않는 경우에는, 본 발명의 방법과 장치는 큰 쪽의 탐색 윈도우를 작은 쪽의 탐색 윈도우의 크기로 감소시킨다. 반화소 계산 프로세서는 과거, 미래, 또는 양방향 화상에 대한 하나의 매크로블록만을 참조하므로 간략화된다.The method and apparatus of the present invention relate in particular to a "B" or bidirectional predictive picture, and provides a half-pixel calculation processor having reference data symmetrical from both past and future pictures. In other words, the data in both reference pictures have the same size and the same direction with respect to the current macroblock position. In particular, when the two macroblocks do not have the same size, the method and apparatus of the present invention reduces the larger search window to the size of the smaller search window. The half-pixel calculation processor is simplified because it only refers to one macroblock for past, future, or bidirectional pictures.

모서리 검출 회로를 사용하여 전화소 최량 정합 기준 매크로블록이 화상이나 탐색 윈도우의 모서리에 존재하는 경우를 감지한다. 매크로블록의 각 측면(상단, 하단, 좌측, 우측)마다 하나씩의 모서리 지시자(edge indicator)가 제공된다. 각 화상에 대하여 최대 2개의 모서리 지시자가 반응하는(active) 구성도 가능하지만, 최량 정합 양방향 매크로블록은 모든 네 개의 모서리 지시자가 반응하도록 할 수 있다.Edge detection circuitry is used to detect when the telephone best match criteria macroblock is at the edge of the picture or search window. One edge indicator is provided for each side (top, bottom, left, right) of the macroblock. It is also possible to have an active configuration in which up to two corner indicators are active for each picture, but the best matched bidirectional macroblock can cause all four corner indicators to respond.

각 기준 화상은 독립적인 모서리 지시자 세트를 갖는데, 이들은 각 화상에 대하여 최량 정합 기준 매크로블록이 위치하는 때에 설정된다. 예를 들어, 최량 정합 기준 매크로블록이 기준 탐색 윈도우의 상단ㆍ우측 코너에서 발견된 경우에는, 상단 모서리 지시자와 우측 모서리 지시자가 반응한다. 이 경우, 전화소 탐색 처리회로는 기준 매크로블록의 상단과 우측의 화소에 대해 사용 가능한 기준 데이타를 가지지 않고, 따라서 상단과 우측의 반화소 값이 계산될 수 없다.Each reference picture has an independent set of corner indicators, which are set when the best match reference macroblock is located for each picture. For example, when the best matching reference macroblock is found at the upper right corner of the reference search window, the upper corner indicator and the right corner indicator react. In this case, the telephone station search processing circuit does not have reference data available for the pixels on the top and right sides of the reference macroblock, and therefore the half pixel values on the top and right cannot be calculated.

과거와 미래의 기준 탐색 윈도우의 전화소 탐색이 완료한 때에는, 각 화상으로부터의 최량 정합 기준 데이타가 반화소 양방향 값을 계산하는 프로세서로 전달된다. 이 때, 양 기준 화상 탐색으로부터의 모서리 지시자가 사용되어 대칭 탐색 윈도우를 형성한다.When the telephone search of the past and future reference search window is completed, the best matching reference data from each picture is passed to the processor for calculating the half-pixel bidirectional value. At this time, corner indicators from both reference picture searches are used to form a symmetric search window.

두 개의 기준 화상 중 어느 하나에 대해서만 모서리 지시자가 '온'이라면, 모서리 지시자가 오프인 화상은 그 모서리와 관련된 기준 데이타를 갖고 나머지 화상은 그렇지 않은 경우가 있다. 즉, 매크로블록의 한 쪽은 전체 18x18 화소를 가지고, 나머지 쪽은 그렇지 못하다. 이 경우, 지시자가 오프인 화상이 데이타를 가지고 있지만, 잉여 데이타는 제외되어 전달되지 않는다. 즉, 모서리 지시자와 관련된 잉여 기준 데이타는 양 화상 모두의 매크로블록에 대해 모서리 지시자가 오프인 경우에만 전달된다. 어느 한 화상에만 존재하는 잉여 화소 데이타는 제외됨으로써, 양 화상에 대하여 대칭인 탐색 윈도우가 항상 형성된다.If the corner indicator is 'on' for only one of the two reference pictures, then the picture with the corner indicator off is often the reference data associated with that edge and the other pictures are not. That is, one side of the macroblock has a total of 18x18 pixels, and the other side does not. In this case, the picture in which the indicator is off has data, but excess data is excluded and not transmitted. In other words, the redundant reference data associated with the corner indicators is conveyed only when the corner indicators are off for macroblocks of both pictures. The surplus pixel data existing only in one image is excluded, so that a symmetrical search window is always formed for both images.

도 6은 기준 데이타 중에서 사용불가능한 것이 있는 경우 반화소 값을 계산하기 위해 필요한 기준 데이타를 도시한다. 도 7은 대칭 과거/미래 데이타를 갖는 양방향 모서리 조건을 사용하여 반화소 값을 계산하기 위해 필요한 기준 데이타를 도시한다.6 shows the reference data needed to calculate the half-pixel value when there is any unavailable reference data. 7 shows the reference data needed to calculate half pixel values using bi-directional edge conditions with symmetrical past / future data.

본 발명이 특정의 바람직한 실시예에 대하여 설명되었지만, 이는 본 발명의 범위를 제한하는 의도로 제시된 것은 아니다. 따라서, 본 발명의 범위는 후술하는 특허 청구의 범위에 의해서만 제한된다.Although the present invention has been described with respect to certain preferred embodiments, it is not intended to limit the scope of the present invention. Accordingly, the scope of the invention is limited only by the claims that follow.

본 발명에 따르면, 과거 화상과 미래 화상에 대하여 대칭인 탐색 윈도우가 항상 형성된다.According to the present invention, a search window symmetrical with respect to the past picture and the future picture is always formed.

Claims (3)

두 개의 기준 화상(reference pictures)으로부터 양방향 코딩된 화상을 형성하기 위한 방법에 있어서, 상기 각 기준 화상으로부터 메모리 페치를 행하는 단계, 전화소 경계(full pixel boundaries)에서 최량 정합(best match) 매크로블록을 찾는 단계, 상기 전화소 경계 매크로블록을 인터폴레이션(interpolation)하여 양방향 매크로블록을 형성하는 단계, 및 상기 양방향 매크로블록으로부터 반화소(half pixel)기준 화상 데이타를 계산하는 단계를 포함하고, 상기 최량 정합 매크로블록으로부터 잉여 화소(excess pixels)을 감소시켜 상기 최량 정합 매크로블록을 크기, 형태, 방향의 면에서 대칭이 되도록 하는 방법.A method for forming a bidirectional coded picture from two reference pictures, the method comprising: performing a memory fetch from each reference picture, the best match macroblock at full pixel boundaries; Finding, interpolating the telephone boundary boundary macroblock to form a bidirectional macroblock, and calculating half pixel reference image data from the bidirectional macroblock, wherein the best match macro Reducing excess pixels from the block such that the best matched macroblock is symmetrical in terms of size, shape, and orientation. 제1항에 있어서, 상기 잉여 화소를 나타내기 위해 모서리 검출기(edge detectors)를 설정하는 단계를 더 포함하는 방법.2. The method of claim 1, further comprising setting edge detectors to represent the surplus pixels. 제1항에 있어서, 상기 잉여 화소는 상기 최량 정합 매크로블록을 크기나 형태나 방향의 면에서 상이하도록 만드는 화소에 해당하는 방법.The method of claim 1, wherein the surplus pixels correspond to pixels that make the best matching macroblock different in size, shape, or direction.
KR1019960052608A 1996-02-16 1996-11-07 Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation KR100240620B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60247296A 1996-02-16 1996-02-16
US8/602,472 1996-02-16
US08/602,472 1996-02-16

Publications (2)

Publication Number Publication Date
KR970064262A KR970064262A (en) 1997-09-12
KR100240620B1 true KR100240620B1 (en) 2000-01-15

Family

ID=24411484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960052608A KR100240620B1 (en) 1996-02-16 1996-11-07 Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation

Country Status (4)

Country Link
JP (1) JPH09261661A (en)
KR (1) KR100240620B1 (en)
DE (1) DE19702728A1 (en)
TW (1) TW366647B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100599935B1 (en) 2003-10-15 2006-07-13 한국전자통신연구원 Fast Half-Pel searching Method on the base of SAD values according to integer-pel search and random variable corresponding each macro block
US10074034B2 (en) 2013-06-14 2018-09-11 Intel Corporation Image processing including adjoin feature based object detection, and/or bilateral symmetric object segmentation
JP6646218B2 (en) 2016-03-28 2020-02-14 富士通株式会社 Charging circuit and electronic device

Also Published As

Publication number Publication date
JPH09261661A (en) 1997-10-03
DE19702728A1 (en) 1997-08-21
TW366647B (en) 1999-08-11
KR970064262A (en) 1997-09-12

Similar Documents

Publication Publication Date Title
US8036273B2 (en) Method for sub-pixel value interpolation
JP3836559B2 (en) Motion estimation method in digital video encoder
EP0585051B1 (en) Image processing method and apparatus
US20060222074A1 (en) Method and system for motion estimation in a video encoder
US20060120455A1 (en) Apparatus for motion estimation of video data
KR100680452B1 (en) Method and apparatus for updating motion vector memory
JPH0870460A (en) Movement compensation type coding method adapted to magnitude of movement,and its device
KR20070011225A (en) Method and apparatus for minimizing number of reference pictures used for inter-coding
JPH0795594A (en) Method and apparatus for detection of motion vector of half pixel accuracy
KR100945826B1 (en) Image information decoding method and decoder
JP3210082B2 (en) Encoding device and method
JPH08275172A (en) Picture formation
KR100221171B1 (en) Method and apparatus for regenerating a dense motion vector field
KR100240620B1 (en) Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation
US20060146932A1 (en) Method and apparatus for providing motion estimation with weight prediction
JPH10229563A (en) Moving image encoding method and moving image encoder
KR0185841B1 (en) A motion extimator for a video coder
JP3700801B2 (en) Image coding apparatus and image coding method
KR100189268B1 (en) Method and apparatus to calculate field motion estimations in frame pictures
GB2379820A (en) Interpolating values for sub-pixels
JPH09182081A (en) Movement compensation estimation encoder
KR100657714B1 (en) Method for coding image data using of 3d scanning
KR0174444B1 (en) Motion compensated apparatus for very low speed transmission
JP3237029B2 (en) Video compression device
JP4061505B2 (en) Image coding apparatus and method

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
LAPS Lapse due to unpaid annual fee