KR20080107668A - Method for motion estimation based on image block and apparatus thereof - Google Patents

Method for motion estimation based on image block and apparatus thereof Download PDF

Info

Publication number
KR20080107668A
KR20080107668A KR1020070055715A KR20070055715A KR20080107668A KR 20080107668 A KR20080107668 A KR 20080107668A KR 1020070055715 A KR1020070055715 A KR 1020070055715A KR 20070055715 A KR20070055715 A KR 20070055715A KR 20080107668 A KR20080107668 A KR 20080107668A
Authority
KR
South Korea
Prior art keywords
search
block
motion vector
motion estimation
value
Prior art date
Application number
KR1020070055715A
Other languages
Korean (ko)
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 KR1020070055715A priority Critical patent/KR20080107668A/en
Publication of KR20080107668A publication Critical patent/KR20080107668A/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/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/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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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

Landscapes

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

Abstract

A motion estimation method and an apparatus thereof are provided to select a search center value and to improve the flexibility of the motion estimation algorithm due to changing various search algorithms. One or more search central values for the motion estimation toward the predetermined block of the current frame are inputted(310). A reference block corresponding to a search area within a reference frame based on the inputted search central value is searched(340).

Description

블록 기반의 영상 움직임 추정 방법 및 그 장치{Method for motion estimation based on image block and apparatus thereof}Method for motion estimation based on block and apparatus thereof

도 1은 일반적인 영상 부호화 장치를 나타내는 도면이다.1 is a diagram illustrating a general video encoding apparatus.

도 2는 본 발명의 일 실시예에 따른, 블록 기반의 영상 움직임 추정 방법을 설명하기 위한 플로우 차트이다2 is a flowchart illustrating a block-based image motion estimation method according to an embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른, 블록 기반의 영상 움직임 추정 장치를 나타내는 기능 블록도이다.3 is a functional block diagram illustrating a block-based image motion estimation apparatus according to another embodiment of the present invention.

도 4는 탐색 중앙값으로 사용 가능한 인접 블록을 나타내는 도면이다. 4 is a diagram illustrating adjacent blocks usable as search medians.

도 5a 내지 5c는 본 발명에 따른, 움직임 추정시 탐색 영역으로 결정된 각각의 경우를 예시하는 도면이다.5A to 5C are diagrams illustrating respective cases determined as search areas in motion estimation according to the present invention.

상기 몇 개의 도면에 있어서 대응하는 도면 번호는 대응하는 부분을 가리킨다. 도면이 본 발명의 실시예들을 나타내고 있지만, 도면이 축척에 따라 도시된 것은 아니며 본 발명을 보다 잘 나타내고 설명하기 위해 어떤 특징부는 과장되어 있을 수 있다. Corresponding reference numerals in the several drawings indicate corresponding parts. Although the drawings show embodiments of the invention, the drawings are not to scale and certain features may be exaggerated to better illustrate and explain the invention.

본 발명은 블록 기반의 영상 움직임 추정 방법에 관한 것으로, 보다 구체적으로는 동영상 부호화기에서 연산의 대부분을 차지하는 움직임 추정부에 대하여 사전 정의 및 변경 가능한 구조를 두어 하드웨어 솔루션이 확보된 이후에도 움직임 추정부의 알고리즘을 다양하게 변경 가능하도록 하기 위한 움직임 추정 방법 및 장치에 관한 것이다.The present invention relates to a block-based video motion estimation method. More specifically, the motion estimator provides a predefined and changeable structure for the motion estimator that takes up most of the operations in a video encoder. The present invention relates to a motion estimation method and apparatus for enabling various changes.

비디오 데이터의 부호화 기술 중 하나인 움직임 추정(motion estimation)은 소정의 측정 함수를 이용하여 현재 프레임 내의 매크로 블록과 가장 유사한 매크로 블록(the best matching block)을 참조 프레임에서 탐색(search)함으로써 양 매크로 블록의 위치의 차이를 나타내는 움직임 벡터를 구하는 과정이다. Motion estimation, which is one of encoding techniques of video data, uses a predetermined measurement function to search the macro frame, which is most similar to the macro block in the current frame, by searching a reference frame. It is a process of obtaining a motion vector representing the difference in the positions of.

가장 유사한 매크로블록을 판단하는 기준은 정합 기준(matching criteria)이라는 소정의 측정 함수를 이용하게 되는데, 이는 비디오 데이터의 부호화 과정에서 전체 연산량의 50% ~ 90%를 차지할 정도로 연산량이 가장 많이 필요한 단계이다. The criterion for determining the most similar macroblock is a predetermined measurement function called a matching criterion, which is the step that requires the most computational amount to account for 50% to 90% of the total computation in the encoding process of video data. .

탐색(search) 과정은, 미리 정해진 크기의 탐색 영역 및 미리 정해진 크기의 블록에 대하여 참조 프레임에 존재하는, 현재 프레임과 가장 유사한 블록을 찾아내는 과정이다. 탐색 과정은 전역 탐색(full search) 및 지역 탐색(local search)으로 나뉜다. 전역 탐색은 함수를 이용하여 탐색 영역 내의 모든 위치에서 에너지를 측정하여 현재 블록과의 최소 오차값을 갖는 블록을 탐색하는 과정이고, 지역 탐색은 소정의 기준점을 중심으로 탐색 영역 내의 위치 중 일부에 대해서만 에너지를 측정함으로써 이루어지는 탐색 과정이다.A search process is a process of finding a block most similar to the current frame existing in the reference frame with respect to a search area having a predetermined size and a block having a predetermined size. The search process is divided into full search and local search. The global search is a process of searching for a block having a minimum error value from the current block by measuring energy at all positions in the search area by using a function, and the local search is performed only for a part of the positions in the search area about a predetermined reference point. It is a search process made by measuring energy.

정합 기준값은 소정의 측정 함수를 이용하여 계산되며, 이러한 측정 함수로 는 SAD(Sum of Absolute Differences), SATD(Sum of Absolute Transformed Differences), SSD(Sum of Squared Differences), MSD(Mean Squared Differences), MAD(Mean Absolute Differences) 등이 있다.Matching reference values are calculated using a predetermined measurement function, such as Sum of Absolute Differences (SAD), Sum of Absolute Transformed Differences (SATD), Sum of Squared Differences (SSD), Mean Squared Differences (MSD), Mean Absolute Differences (MAD).

이와 같은, 일반적인 영상의 부호화 과정을 먼저 살펴보고 종래 기술의 문제점을 짚어보도록 한다.The encoding process of such a general image will be described first, and then the problems of the prior art will be described.

도 1은 일반적인 영상 부호화 장치를 나타내는 도면이다.1 is a diagram illustrating a general video encoding apparatus.

도 1을 참조하면, 먼저 변환부(110)는 공간적 상관성을 제거하기 위해 블록 단위로 입력되는 영상 데이터에 대해 이산 여현 변환(Discrete Cosine Transform) 또는 카루넨-루베 변환(Karhuhen-Loeve Transform), Singular Value Decomposition(SVD) 연산 등을 수행하고, 양자화부(Quantization, 120)는 변환부(110)에서 얻어진 변환 계수에 대해 양자화를 수행하여 몇 개의 대표값으로 표현함으로써, 고효율 손실 압축을 수행한다. 가변 길이 부호화부(variable length coding, 170)는 DCT 및 양자화 처리된 데이터에서 통계적 중복성을 제거한다.Referring to FIG. 1, first, the transform unit 110 performs a discrete cosine transform or a Karhuhen-Loeve transform on a video data input in units of blocks in order to remove spatial correlation. Value Decomposition (SVD) operation is performed, and the quantization unit (Quantization) 120 performs quantization on the transform coefficient obtained by the transform unit 110 and expresses it as some representative value, thereby performing high efficiency lossy compression. The variable length coding unit 170 removes statistical redundancy from the DCT and the quantized data.

역양자화부(Inverse Quantization, 130)는 양자화부(120)에서 양자화된 영상 데이터를 역양자화하고, 역변환부(140)는 역양자화부(130)에서 역양자화된 영상 데이터에 대해 IDCT(Inverse Discrete Cosine Transform)와 같은 역변환을 수행한다. 프레임 메모리부(150)는 역변환부(140)에서 역변환된 영상 데이터를 프레임 단위로 저장한다. The inverse quantization unit 130 inverse quantizes the quantized image data in the quantization unit 120, and the inverse transform unit 140 inverses Discrete Cosine for the inverse quantized image data in the inverse quantization unit 130. Perform an inverse transformation, such as Transform). The frame memory unit 150 stores the image data inversely transformed by the inverse transform unit 140 in units of frames.

움직임 추정 및 보상부(Motion Estimation and Compensation, 160)는 입력되는 현재 프레임의 영상 데이터와 프레임 메모리부(150)에 저장된 이전 프레임의 영 상 데이터를 이용하여 매크로 블록(MB)당 움직임 벡터(MV)와 블록 정합 오차(block matching error)에 해당하는 SAD(Sum of Absolute Differences)를 측정한다. The motion estimation and compensation unit 160 uses the image data of the current frame to be input and the image data of the previous frame stored in the frame memory unit 150 to obtain a motion vector (MV) per macro block (MB). And SAD (Sum of Absolute Differences) corresponding to a block matching error.

이러한 블록 정합 오차의 계산은 계산량이 매우 많아 실시간 비디오 데이터 부호화를 구현하는 데 많은 하드웨어 자원을 필요로 한다. 이러한 계산량의 감소를 위해, 움직임 추정 시 수행할 계산량을 줄이기 위해 많은 움직임 추정 기술이 연구되었다. 움직임 추정 방법으로는 대표적인 전역 탐색(full search) 알고리즘을 비롯하여 다해상도 다중 후보 탐색법(MRMCS: multi-resolution multiple candidates search), three-step search, diamond search 등 상당히 다양한 알고리즘들이 존재한다.The calculation of the block matching error is very large and requires a lot of hardware resources to implement real-time video data encoding. In order to reduce the amount of computation, many motion estimation techniques have been studied to reduce the amount of computation to be performed in motion estimation. Motion estimation methods include a wide variety of algorithms such as full search algorithm, multi-resolution multiple candidates search (MRMCS), three-step search, and diamond search.

이러한 움직임 추정의 계산에 있어서, 최근 DSP(Digital signal processing) 등의 프로세서의 연산 능력(computing power)의 증가로 CIF(Common Intermediate Format)급 이미지나 SD(Standard Definition)급 이미지의 처리를 위한 움직임 추정부의 소프트웨어 솔루션도 등장하기는 하나, HD(High Definition)급이나 고화질 부호화를 위해서는 여전히 하드웨어 솔루션이 선택되는 실정이다.In the calculation of such motion estimation, a motion estimation for processing CIF (Common Intermediate Format) image or SD (Standard Definition) image due to the recent increase in the computing power of the processor such as digital signal processing (DSP) Negative software solutions also appear, but hardware solutions are still chosen for high definition (HD) or high definition coding.

그러나 하드웨어 솔루션은 실시간 처리(real-time processing)가 가능하다는 장점은 있지만, 소프트웨어에 비해 유연성(flexibility)이 떨어져서 SOC(System On Chip)로 구현이 된 이후에 알고리즘을 수정한다거나, 갱신하는 등의 알고리즘을 변형하는 일이 불가능하다는 약점이 있다. 따라서 하드웨어 솔루션의 경우에는 한가지 알고리즘을 선택하여 구현하거나, 구현하고 싶은 여러 가지 알고리즘을 처음부터 모두 마련해 놓아야 한다는 불편이 따른다.However, hardware solutions have the advantage of real-time processing, but they are less flexible than software, so algorithms such as modifying or updating algorithms after they are implemented as SOC (System On Chip) are implemented. There is a drawback that it is impossible to transform. Therefore, in the case of a hardware solution, it is inconvenient to select and implement one algorithm or to prepare various algorithms to be implemented from the beginning.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 고안된 것으로, 본 발명이 이루고자 하는 기술적 과제는 사용자 정의에 의해 변경 가능한 탐색 영역 처리 구조(search center architecture)를 지닌 움직임 추정 방법 및 장치를 고안함으로써, 움직임 추정부가 하드웨어 솔루션으로 구현된 이후에도 다양한 움직임 추정 알고리즘을 적용할 수 있는 방법과 장치를 제공하는 것이다.Accordingly, the present invention has been devised to solve the above problems, and the technical problem to be achieved by the present invention is to devise a motion estimation method and apparatus having a search center architecture that can be changed by user definition. Even after the motion estimator is implemented as a hardware solution, a method and apparatus for applying various motion estimation algorithms are provided.

상기 기술적 과제는 본 발명에 따라, 블록 기반의 영상 움직임 추정 방법에 있어서, 현재 프레임의 소정의 블록에 대한 움직임 추정을 위하여 적어도 하나 이상의 탐색 중앙값(search center value)을 입력하는 단계와; 상기 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 상기 현재 프레임의 블록에 대응하는 참조 블록을 탐색하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법에 의해 달성된다.According to an aspect of the present invention, there is provided a block-based video motion estimation method, comprising: inputting at least one search center value for motion estimation of a predetermined block of a current frame; And searching for a reference block corresponding to the block of the current frame in the search region in the reference frame based on the input search median.

상기 현재 프레임의 블록에 인접한 적어도 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 상기 영상의 원 해상도 보다 낮은 해상도 상에서의 상기 블록의 움직임 벡터값을 입력하는 단계를 더 포함하고, 상기 탐색하는 단계는 상기 탐색 중앙값 및/또는 상기 입력된 움직임 벡터값에 기초하여 상기 참조 블록을 탐색하는 것이 바람직하다.Inputting a motion vector value of at least one or more pre-coded blocks adjacent to the block of the current frame or a motion vector value of the block at a resolution lower than the original resolution of the image, wherein the searching comprises: Preferably, the reference block is searched based on a search median value and / or the input motion vector value.

한편, 본 발명의 다른 분야에 따르면 상기 기술적 과제는 블록 기반의 영상 움직임 추정 장치에 있어서, 현재 프레임의 소정의 블록에 대하여 적어도 하나 이 상의 탐색 중앙값을 입력받아 움직임 추정의 탐색 영역을 결정하는 탐색 영역 처리부와; 상기 탐색 영역 처리부에 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 상기 블록에 대응하는 참조 블록을 탐색하는 블록 탐색부를 포함하는 것을 특징으로 하는 움직임 추정 장치에 의해서도 달성된다.According to another aspect of the present invention, in the block-based image motion estimation apparatus, a search region for determining a search region for motion estimation by receiving at least one or more search median values for a predetermined block of a current frame A processing unit; And a block search unit for searching for a reference block corresponding to the block in the search area in the reference frame based on the search median inputted to the search area processor.

상기 현재 프레임의 블록에 인접한 적어도 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 상기 영상의 원 해상도 보다 낮은 해상도 상에서의 상기 블록의 움직임 벡터값을 산출하고, 상기 움직임 벡터값을 상기 탐색 영역 처리부로 전달하는 탐색 영역 유도부를 더 포함하는 것이 바람직하다.A motion vector value of at least one pre-coded block adjacent to the block of the current frame or a motion vector value of the block at a lower resolution than the original resolution of the image is calculated, and the motion vector value is transmitted to the search region processor. It is preferable to further include a search region induction unit.

상기 탐색 영역 처리부는, 상기 입력된 탐색 중앙값 및/또는 상기 전달받은 움직임 벡터값을 저장하는 탐색 영역 레지스터와; 외부 메모리로부터 상기 현재 프레임 및 참조 프레임의 데이터를 판독하는 메모리 판독부를 더 포함하는 것이 더욱 바람직하다.The search region processor may include: a search region register configured to store the input search median value and / or the received motion vector value; More preferably, the apparatus further includes a memory reading unit which reads data of the current frame and the reference frame from an external memory.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. DETAILED DESCRIPTION In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the drawings.

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

도 2는 본 발명의 일 실시예에 따른, 블록 기반의 영상 움직임 추정 방법을 설명하기 위한 플로우 차트이다.2 is a flowchart illustrating a block-based image motion estimation method according to an embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 움직임 추정 방법은 크게 현재 프레임의 소정의 블록에 대한 움직임 추정을 위하여 적어도 하나 이상의 탐색 중앙값(search center value)을 입력하는 단계(210)와 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 현재 프레임의 블록에 대응하는 참조 블록을 탐색하는 단계(230)로 이루어지고, 선택적으로 현재 프레임의 블록에 인접한 적어도 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 상기 영상의 원 해상도 보다 낮은 해상도 상에서의 상기 블록의 움직임 벡터값을 입력하는 단계(220)를 더 포함한다.Referring to FIG. 2, in the motion estimation method according to the present invention, inputting at least one or more search center values for motion estimation for a predetermined block of a current frame is performed in step 210 and inputting a search center value. A step 230 of searching for a reference block corresponding to the block of the current frame in the search region in the reference frame is performed, and optionally, the motion vector value or at least one pre-coded block adjacent to the block of the current frame. And inputting a motion vector value of the block on a resolution lower than the original resolution of.

본 발명에 따른 움직임 추정 방법의 동작 과정을 이해하기 위해, 이하 움직임 추정 장치를 나타낸 도 3을 참고하여 상세히 살펴본다.In order to understand the operation process of the motion estimation method according to the present invention, the motion estimation apparatus will be described in detail with reference to FIG. 3.

도 3은 본 발명의 다른 실시예에 따른, 블록 기반의 영상 움직임 추정 장치를 나타내는 기능 블록도이다.3 is a functional block diagram illustrating a block-based image motion estimation apparatus according to another embodiment of the present invention.

본 발명에 따른, 움직임 추정 장치는 개괄적으로 현재 프레임의 특정 블록에 대하여 하나 이상의 탐색 중앙값을 입력받아 움직임 추정의 탐색 영역을 결정하는 탐색 영역 처리부(310)와 탐색 영역 처리부(310)에 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 현재 블록에 대응하는 참조 블록을 탐색하는 블록 탐색부(340)를 포함하고, 또한 현재 프레임의 블록에 인접한 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 영상의 원 해상도 보다 낮은 해상도 상에서의 현재 블록의 움직임 벡터값을 산출하고, 상기 움직임 벡터값을 탐색 영역 처리부(310)로 전달하는 탐색 영역 유도부(320)를 더 포함할 수 있다.According to the present invention, a motion estimation apparatus generally receives a search area processor 310 and a search area processor 310 for determining a search area for motion estimation by receiving one or more search median values for a specific block of a current frame. A block search unit 340 for searching a reference block corresponding to the current block in the search region in the reference frame based on a median value, and further including a motion vector value or image of one or more pre-coded blocks adjacent to the block of the current frame. The apparatus may further include a search region inducing unit 320 that calculates a motion vector value of the current block at a resolution lower than the original resolution and transmits the motion vector value to the search region processor 310.

여기서, 상기 탐색 영역 처리부(310)는 입력된 탐색 중앙값과 상기 전달받은 움직임 벡터값을 저장하는 탐색 영역 레지스터(311)와 외부 메모리로부터 현재 프 레임 및 참조 프레임의 데이터를 판독하는 메모리 판독부(312)를 더 포함할 수 있다.The search region processor 310 may include a search region register 311 storing an input search median value and the received motion vector value, and a memory reading unit 312 reading data of a current frame and a reference frame from an external memory. ) May be further included.

도 3을 참조하여, 각각의 블록별로 수행하는 기능을 살펴보면, 탐색 영역 처리부(310)는 움직임 추정을 위한 탐색 영역을 산출한다. 즉, 사용자와 같은 외부로부터 입력받은 탐색 중앙값(search center value)을 기초로, 탐색 영역 유도부(320)에서 전달받은 인접 블록의 움직임 벡터값 등을 참고하여 현재 프레임에서 부호화하려는 블록에 대한 참조 블록을 이전 프레임에서 탐색하기 위한 탐색 영역을 결정한다. 탐색 영역 처리부(310)는 상기 탐색 중앙값과 인접 블록의 움직임 벡터값 등이 저장되는 탐색 영역 레지스터(311)을 포함할 수 있고, 또한 외부 메모리로부터 현재 프레임 및 참조 프레임에서의 매크로 블록 데이터를 읽어 들여 내부 메모리(330)에 제공하는 메모리 판독부(312)를 더 포함할 수 있다.Referring to FIG. 3, a function performed for each block will be described. The search region processor 310 calculates a search region for motion estimation. That is, based on a search center value received from an external source such as a user, the reference block for the block to be encoded in the current frame is referred to by referring to the motion vector value of the adjacent block received from the search region inducing unit 320. Determine the search area for searching in the previous frame. The search region processor 310 may include a search region register 311 which stores the search median value and a motion vector value of an adjacent block, and also reads macro block data in a current frame and a reference frame from an external memory. The apparatus may further include a memory reading unit 312 provided to the internal memory 330.

탐색 영역 유도부(320)는 내부 메모리로부터 인접 블록의 움직임 벡터값 등과 같은 데이터를 전달받아, 이를 이용하여 예측 움직임 벡터(MVP: motion vector predictor)를 산출하고, 또한 계층적 움직임 추정(MRMCS: multi-resolution multiple candidates search)과 관계있는 4:1 탐색 엔진(4:1 search engine)을 포함하여 이를 이용하여 탐색 중앙값을 유도할 수 있다. 즉, 탐색 영역 유도부(320)는 외부로부터 직접 입력받은 탐색 중앙값뿐만 아니라, 프레임 내에서의 주변 인접 블록과의 상관성을 이용하고 기존의 고속 움직임 탐색 알고리즘에서 사용한 탐색 중앙값을 유도하여 탐색 영역 처리부(310)에서 탐색 영역을 보다 다양하게 변형할 수 있게끔 도와주는 역할을 한다.The search region induction unit 320 receives data such as a motion vector value of an adjacent block from an internal memory, calculates a motion vector predictor (MVP) using the same, and also hierarchical motion estimation (MRMCS). A 4: 1 search engine associated with a resolution multiple candidates search may be included to use this to derive a search median. That is, the search region induction unit 320 uses not only the search median directly input from the outside, but also the correlation with neighboring adjacent blocks in the frame, and induces the search median used in the existing fast motion search algorithm. ) Helps to transform the search area in more ways.

블록 탐색부(340)는 탐색 영역 처리부(310)에서 결정된 탐색 영역에 대하여 수평/수직 방향으로 탐색을 수행하고, 제어부(350)는 움직임 추정부의 각각의 부분을 제어하기 위한 제어 신호를 발생시킨다.The block search unit 340 searches for the search area determined by the search area processor 310 in the horizontal / vertical direction, and the controller 350 generates a control signal for controlling each part of the motion estimation unit.

이러한 각 블록을 기준으로 본 발명의 움직임 추정의 동작 과정을 살펴보면 다음과 같다.Looking at the operation of the motion estimation of the present invention based on each of these blocks as follows.

(1) 현재 매크로블록과 인접한 매크로블록들에서 이전에 이미 구해진 움직임 벡터들을 탐색 영역 유도부(320)가 저장하고, 저장된 움직임 벡터들을 이용하여 예측 움직임 벡터(MVP)를 구한다.(1) The search region deriving unit 320 stores motion vectors previously obtained in macroblocks adjacent to the current macroblock, and obtains a predicted motion vector (MVP) using the stored motion vectors.

(2) 외부로부터 사용자에 의해 정의되는 탐색 중앙값(search center value)를 입력받는다.(2) A search center value defined by a user is received from the outside.

(3) 얻어진 각각의 탐색 중앙값 후보(search center value candidates) 중에서 사용자가 정의한 개수 및 순서대로 탐색 중앙값을 취하여 탐색 영역 처리부(310) 내의 탐색 영역 레지스터(311)에 저장한다.(3) The search center values are taken from the obtained search center value candidates in the number and order defined by the user, and stored in the search area register 311 in the search area processor 310.

(4) 탐색 영역 레지스터(311)에 저장된 순서대로 그에 해당하는 참조 프레임의 탐색 영역의 데이터를 내부 메모리(330)에서 읽어내어 블록 탐색부(340)에 공급한다.(4) The data of the search region of the corresponding reference frame is read from the internal memory 330 in the order stored in the search region register 311 and supplied to the block search unit 340.

(5) 블록 탐색부(340)는 탐색 중앙값을 중심으로 수평/수직 범위(-w, +w)에서 탐색을 수행하여 움직임 벡터를 출력한다. 구해진 움직임 벡터는 다음 동작을 위하여 탐색 영역 유도부(320)에 인접 블록의 움직임 벡터값으로 저장된다.(5) The block search unit 340 performs a search in the horizontal / vertical range (-w, + w) around the search median value and outputs a motion vector. The obtained motion vector is stored as a motion vector value of an adjacent block in the search region inducing unit 320 for the next operation.

도 4는 탐색 중앙값으로 사용 가능한 인접 블록을 나타내는 도면이다.4 is a diagram illustrating adjacent blocks usable as search medians.

도 4를 참조하면, 일반적으로 알려진 바와 같이 현재 매크로블록(Curr. MB)의 좌측, 상측 및 우상측의 매크로블록이 인접한 블록으로서 현재 매크로블록의 움직임과 가장 큰 상관관계를 갖는다. 또한 현재 매크로블록의 움직임 벡터의 예측값(MVP)을 산출하는데도 상기 좌측(NMVa t), 상측(NMVb t) 및 우상측(NMVc t)의 매크로블록의 움직임 벡터가 이용될 수 있다. 아울러, 현재 매크로블록의 좌상측(NMVd t) 매크로블록의 움직임 벡터값도 참조될 수 있다.Referring to FIG. 4, as is generally known, macroblocks on the left side, upper side, and upper right side of the current macroblock Curr. MB are adjacent blocks and have the greatest correlation with the movement of the current macroblock. In addition, the motion vectors of the macroblocks on the left side (NMV a t ), the upper side (NMV b t ), and the upper right side (NMV c t ) may be used to calculate the prediction value (MVP) of the motion vector of the current macroblock. In addition, the motion vector value of the upper left (NMV d t ) macroblock of the current macroblock may be referred to.

도 5a 내지 5c는 본 발명에 따른, 움직임 추정시 탐색 영역으로 결정된 각각의 경우를 예시하는 도면이다.5A to 5C are diagrams illustrating respective cases determined as search areas in motion estimation according to the present invention.

도 5a를 참조하면, 탐색 영역이 [-w, +w] = [-7, +7]인 경우의 실시예로서, 그림과 같이 탐색 중앙값을 4개를 선택하고 각각 (-8, -8), (+7, -8), (-8, +7), (+7, +7)로 정의한 경우는 (0, 0)을 중심으로 수평/수직 [-15, +14]의 탐색 영역을 가지는 전역 탐색(full search)와 동일하게 동작한다. 즉, 4개의 탐색 중앙값으로부터 탐색되는 4개의 영역이 (0, 0)을 중심으로 하나의 큰 영역 [-15, +14]를 포함하게 되는 것이다. 따라서, 이와 같은 방법을 응용하면 (0, 0)을 중심으로 한 다양한 크기의 탐색 영역내에서 전역 탐색의 알고리즘을 수행할 수 있다.Referring to FIG. 5A, as an embodiment when the search region is [-w, + w] = [-7, +7], four search medians are selected as shown in the figure, respectively (-8, -8). When defined as, (+7, -8), (-8, +7), (+7, +7), the search area of horizontal / vertical [-15, +14] is centered around (0, 0). Branches work the same as full search. That is, four areas searched from four search medians include one large area [-15, +14] centered on (0, 0). Therefore, by applying such a method, it is possible to perform a global search algorithm within a search area having various sizes centering on (0, 0).

도 5b를 참조하면, 앞서 살펴본 도 5a와 달리 탐색 중앙값이 (x-8, y-8), (x+7, y-8), (x-8, y+7), (x+7, y+7)의 4개로 선택된 경우이다. 여기서 (x, y)는 예측 움직임 벡터(MVP)의 좌표이다. 이 경우는 예측 움직임을 반영하여 MVP를 중 심으로한 수평/수직 [-15, +14]의 탐색 영역을 가지는 전역 탐색(full search)과 동일하게 동작한다.Referring to FIG. 5B, unlike FIG. 5A, the search median is (x-8, y-8), (x + 7, y-8), (x-8, y + 7), (x + 7, 4 cases of y + 7). Where (x, y) is the coordinate of the predicted motion vector (MVP). In this case, it operates in the same manner as a full search having a horizontal / vertical [-15, +14] search area centered on MVP, reflecting the predicted movement.

도 5c를 참조하면, 그림에서 탐색 중앙값으로 MVt 4 :1( first ), MVt 4 :1( second ) 와 예측 움직임 벡터가 나타나 있다. 여기서 MVt 4 :1( first ), MVt 4 :1( second ) 는 계층적 움직임 추정 알고리즘과 관계있는 움직임 벡터로서, 계층적 움직임 추정 기술은 원래의 프레임을 다양한 해상도의 프레임으로 나누고 각 해상도의 프레임에 대하여 계층적으로 움직임 벡터를 생성하는 기술이며, 이중 현재 널리 알려진 방식으로 다해상도 다중 후보 탐색법(MRMCS, Multi-Resolution Multiple Candidate Search)이 있다. Referring to FIG. 5C, MV t 4 : 1 ( first ) , MV t 4 : 1 ( second ) and a predicted motion vector are shown as search medians. Where MV t 4 : 1 ( first ) and MV t 4 : 1 ( second ) are the motion vectors associated with the hierarchical motion estimation algorithm. The hierarchical motion estimation technique divides the original frame into frames of various resolutions and A technique for generating a motion vector hierarchically with respect to a frame. Among them, a multi-resolution multiple candidate search (MRMCS) is currently known.

즉, MVt 4 :1( first ), MVt 4 :1( second ) 는 원 해상도의 영상을 각각 4:1로 서브 샘플링(subsampling)한 후, 탐색을 수행하여 얻은 가장 좋은 움직임 벡터와 두 번째로 좋은 움직임 벡터를 나타낸다. 이런 경우에 도 5c의 탐색 중앙값은 MRMCS 알고리즘의 모든 탐색점을 포함하게 되므로 MRMCS 알고리즘의 성능 이상을 보장하는 알고리즘을 수행하게 된다.That is, MV t 4 : 1 ( first ) and MV t 4 : 1 ( second ) are the best motion vectors obtained by performing subsampling of the original resolution images at 4: 1, respectively, and the second This represents a good motion vector. In this case, since the search median of FIG. 5C includes all search points of the MRMCS algorithm, an algorithm that guarantees performance of the MRMCS algorithm is performed.

따라서, 본 발명에 따른 움직임 추정 방법은 앞서 예시적으로 살펴본 여러 가지 다양한 알고리즘과 같이 동작하는 모습으로 변형 가능하여 수행될 수 있다.Therefore, the motion estimation method according to the present invention may be performed by being transformed into a shape that operates like the various algorithms described above.

한편, 상술한 본 발명의 블록 기반의 영상 움직임 추정 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described block-based image motion estimation method of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

또한, 상술한바와 같이 본 발명에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. In addition, as described above, the structure of the data used in the present invention can be recorded on the computer-readable recording medium through various means.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, a DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

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

이상에서 설명한 바와 같이 본 발명에 의한 블록 기반의 영상 움직임 추정 방법 및 그 장치에 따르면, 움직임 추정부에 대한 하드웨어 솔루션이지만 탐색 중앙값(search center value)을 각각 다르게 선택할 수 있어, 여러 가지 다양한 탐색 알고리즘으로 변형이 가능하므로 움직임 추정 알고리즘의 유연성(flexibility)을 향상시킨다.As described above, according to the block-based image motion estimation method and apparatus according to the present invention, although it is a hardware solution for the motion estimation unit, a search center value can be selected differently, and various search algorithms are used. Modifications can be made to improve the flexibility of the motion estimation algorithm.

Claims (5)

블록 기반의 영상 움직임 추정 방법에 있어서,In the block-based image motion estimation method, 현재 프레임의 소정의 블록에 대한 움직임 추정을 위하여 적어도 하나 이상의 탐색 중앙값(search center value)을 입력하는 단계와;Inputting at least one search center value for motion estimation for a given block of a current frame; 상기 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 상기 현재 프레임의 블록에 대응하는 참조 블록을 탐색하는 단계를 포함하는 것을 특징으로 하는 움직임 추정 방법.And searching for a reference block corresponding to the block of the current frame in a search area within a reference frame based on the input search median value. 제1항에 있어서,The method of claim 1, 상기 현재 프레임의 블록에 인접한 적어도 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 상기 영상의 원 해상도 보다 낮은 해상도 상에서의 상기 블록의 움직임 벡터값을 입력하는 단계를 더 포함하고,Inputting a motion vector value of at least one or more pre-coded blocks adjacent to the block of the current frame or a motion vector value of the block at a resolution lower than the original resolution of the image; 상기 탐색하는 단계는 상기 탐색 중앙값 및/또는 상기 입력된 움직임 벡터값에 기초하여 상기 참조 블록을 탐색하는 것을 특징으로 하는 움직임 추정 방법.The searching may include searching for the reference block based on the search median value and / or the input motion vector value. 블록 기반의 영상 움직임 추정 장치에 있어서,In the block-based video motion estimation apparatus, 현재 프레임의 소정의 블록에 대하여 적어도 하나 이상의 탐색 중앙값을 입력받아 움직임 추정의 탐색 영역을 결정하는 탐색 영역 처리부와;A search region processor configured to receive at least one search median value for a predetermined block of the current frame to determine a search region for motion estimation; 상기 탐색 영역 처리부에 입력된 탐색 중앙값에 기초하여 참조 프레임내의 탐색 영역에서 상기 블록에 대응하는 참조 블록을 탐색하는 블록 탐색부를 포함하는 것을 특징으로 하는 움직임 추정 장치.And a block search unit for searching for a reference block corresponding to the block in a search area in a reference frame based on a search median inputted to the search area processor. 제3항에 있어서,The method of claim 3, 상기 현재 프레임의 블록에 인접한 적어도 하나 이상의 기 부호화된 블록의 움직임 벡터값 또는 상기 영상의 원 해상도 보다 낮은 해상도 상에서의 상기 블록의 움직임 벡터값을 산출하고, 상기 움직임 벡터값을 상기 탐색 영역 처리부로 전달하는 탐색 영역 유도부를 더 포함하는 것을 특징으로 하는 움직임 추정 장치.A motion vector value of at least one pre-coded block adjacent to the block of the current frame or a motion vector value of the block at a lower resolution than the original resolution of the image is calculated, and the motion vector value is transmitted to the search region processor. Motion estimating apparatus further comprises a search region inducing unit. 제4항에 있어서,The method of claim 4, wherein 상기 탐색 영역 처리부는,The search region processing unit, 상기 입력된 탐색 중앙값 및/또는 상기 전달받은 움직임 벡터값을 저장하는 탐색 영역 레지스터와;A search region register for storing the input search median value and / or the received motion vector value; 외부 메모리로부터 상기 현재 프레임 및 참조 프레임의 데이터를 판독하는 메모리 판독부를 더 포함하는 것을 특징으로 하는 움직임 추정 장치.And a memory reading unit which reads data of the current frame and reference frame from an external memory.
KR1020070055715A 2007-06-07 2007-06-07 Method for motion estimation based on image block and apparatus thereof KR20080107668A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070055715A KR20080107668A (en) 2007-06-07 2007-06-07 Method for motion estimation based on image block and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070055715A KR20080107668A (en) 2007-06-07 2007-06-07 Method for motion estimation based on image block and apparatus thereof

Publications (1)

Publication Number Publication Date
KR20080107668A true KR20080107668A (en) 2008-12-11

Family

ID=40367838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070055715A KR20080107668A (en) 2007-06-07 2007-06-07 Method for motion estimation based on image block and apparatus thereof

Country Status (1)

Country Link
KR (1) KR20080107668A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331724A (en) * 2015-06-26 2017-01-11 北京君正集成电路股份有限公司 Motion vector prediction method and device in HEVC

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331724A (en) * 2015-06-26 2017-01-11 北京君正集成电路股份有限公司 Motion vector prediction method and device in HEVC
CN106331724B (en) * 2015-06-26 2019-05-24 北京君正集成电路股份有限公司 Method of motion vector prediction and device in a kind of HEVC

Similar Documents

Publication Publication Date Title
TWI669953B (en) Pattern-based motion vector derivation for video coding
US8705611B2 (en) Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
KR102606778B1 (en) Memory access windows and padding for motion vector refinement and motion compensation
JP5277257B2 (en) Video decoding method and video encoding method
JP2021022936A (en) Image prediction method and related device
US9351014B2 (en) Moving image encoding and decoding system
BR112019027261A2 (en) motion vector refinement for multi-reference prediction
CN115243050B (en) Limited memory access window for motion vector modification
US10334271B2 (en) Encoding system using motion estimation and encoding method using motion estimation
CN111201795B (en) Memory access window and padding for motion vector modification
JP2015536092A (en) Standard-based model-based video encoding and decoding
CN103079069A (en) Decoding method
TW201701669A (en) Predictive decoding method and predictive decoding device of motion vector
KR100994773B1 (en) Method and Apparatus for generating motion vector in hierarchical motion estimation
JP2006254349A (en) Motion vector detecting method and apparatus, and computer program for executing motion vector detection processing on computer
CN102291581A (en) Realizing method of self-adaptive motion estimation supporting frame field
BR112020026988A2 (en) EXACT REFINING METHOD AND APPARATUS OF ERROR SURFACE-BASED SUBPIXEL FOR MOVING VECTOR REFINEMENT ON THE DECODER SIDE
KR100490730B1 (en) Method and apparatus for motion estimation using of adaptive search pattern for video sequence compression
KR20080107668A (en) Method for motion estimation based on image block and apparatus thereof
JP2007510344A (en) Power optimized array motion prediction method
JP2002051342A (en) Coding apparatus, method of coding and storage medium
JP2006191175A (en) Image coding apparatus and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application