KR100924641B1 - Fast block matching procedure for motion estimation - Google Patents
Fast block matching procedure for motion estimation Download PDFInfo
- Publication number
- KR100924641B1 KR100924641B1 KR1020070120067A KR20070120067A KR100924641B1 KR 100924641 B1 KR100924641 B1 KR 100924641B1 KR 1020070120067 A KR1020070120067 A KR 1020070120067A KR 20070120067 A KR20070120067 A KR 20070120067A KR 100924641 B1 KR100924641 B1 KR 100924641B1
- Authority
- KR
- South Korea
- Prior art keywords
- search
- block
- current block
- motion
- degree
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
계산량을 감소시켜 부호화 속도를 향상시킬 수 있는 움직임 추정을 위한 블록 정합 방법를 제공한다. 본 발명의 일 실시예에 따른 블록 정합 방법은 현재 블록의 하나 이상의 주변블록들의 정보를 이용하여 상기 현재 블록의 움직임 정도를 예측하는 단계 및 상기 현재 블록의 움직임 정도를 움직임이 작은 경우(S), 큰 경우(L), 그리고 중간인 경우(M)로 구분하고, 또한 구분된 움직임 정도에 기초하여 적응적으로 움직임 추정을 위한 탐색 기법을 적용함으로써 상기 현재 블록에 대한 정합 블록을 찾는 단계를 포함한다. 본 실시예의 일 측면에 의하면, 현재 블록의 움직임이 작은 것으로 예측되는 경우에는 향상된 십자형 다이아몬드 탐색 기법(Upgraded Cross Diamond Search, UCDS)을 적용하고, 움직임이 큰 것으로 예측되는 경우에는 다이아몬드 탐색 기법(Diamond Search, DS)을 적용하며, 중간인 것으로 예측되는 경우에는 십자형 3단계 탐색 기법(Cross Three Step Search, CTSS)을 적용한다.Provided is a block matching method for motion estimation that can reduce the amount of computation and improve coding speed. In a block matching method according to an embodiment of the present invention, using the information of one or more neighboring blocks of the current block, estimating the degree of motion of the current block and the motion degree of the current block is small (S), Dividing into a large case (L) and a middle case (M), and also finding a matching block for the current block by adaptively applying a search method for motion estimation based on the divided degree of motion. . According to one aspect of the present embodiment, when the motion of the current block is predicted to be small, an improved cross diamond search technique (UCDS) is applied, and when the motion is predicted to be large, the diamond search technique (Diamond Search) is applied. , DS), and if it is expected to be intermediate, cross three step search (CTSS) is applied.
Description
본 발명은 동영상 코덱에 관한 것으로서, 보다 구체적으로 동영상 코덱에서 움직임 추정을 위한 고속 블록 정합 알고리즘에 관한 것이다.The present invention relates to a video codec, and more particularly, to a fast block matching algorithm for motion estimation in a video codec.
엠펙(MPEG)-1, 2, 4 또는 H.264/AVC 등과 같은 동영상 압축 기술은 크게 움직임 추정 및 보상(Motion Estimation and Compensation, ME/MC) 절차, 이산 여현 변환(Discrete Cosine Transform, DCT)을 이용한 변환과 양자화 절차, 엔트로피 부호화 절차로 구성되는 기본구조를 가지고 있다. 이 중에서 움직임 추정 및 보상은 동영상이 가지는 특성, 즉 영상을 구성하는 성분간의 높은 공간적, 시간적 중복성을 이용하여 데이터를 압축하는 기술로써, 부호기의 복잡도 즉, 전체 부호화 시간에 가장 큰 영향을 미치는 기술 분야이다. 왜냐하면, 동영상에서 가장 많은 중복성을 가지고 있는 시간적 데이터의 중복성은 움직임 추정과 움직임 보상에 의하여 제거될 수 있기 때문이다. Video compression techniques such as MPEG-1, 2, 4 or H.264 / AVC can be used to significantly reduce the Motion Estimation and Compensation (ME / MC) procedure, Discrete Cosine Transform (DCT). It has a basic structure consisting of the transform, quantization, and entropy coding procedures. Among them, motion estimation and compensation is a technique of compressing data using characteristics of a video, that is, high spatial and temporal redundancy among components constituting an image, and a technology field having the greatest influence on the complexity of an encoder, that is, the entire encoding time. to be. This is because the redundancy of the temporal data having the most redundancy in the video can be eliminated by motion estimation and motion compensation.
움직임 추정 방법은 크게 화소 순환 알고리즘(Pixel Recursive Algorithm, PRA)과 블록 정합 알고리즘(Block Matching Algorithm, BMA)으로 나눌 수 있다. 이 중에서 데이터 흐름의 규칙성, 계산의 복잡도, 하드웨어 구현을 고려하여 대부분의 동영상 코텍 기술에서는 블록 정합 알고리즘을 널리 사용하고 있다. 블록 정합 알고리즘은 하나의 화면을 16×16 크기의 매크로블록(MB)이나 또는 이 보다 작은 임의의 크기 블록으로 나누어서 블록단위로 참조 프레임의 정해진 탐색 영역(Search Window)안에서 정합블록을 찾아내는 절차를 가리킨다. 이러한 블록 정합 알고리즘에 따라서 찾은 정합블록의 위치를 가리키는 값이 움직임 벡터이며, 동영상 부호화에서는 상기 정합블록과 현재 블록과의 차이값과 움직임 벡터만을 부호화하여 데이터의 중복성을 제거한다. The motion estimation method can be roughly divided into a pixel recursive algorithm (PRA) and a block matching algorithm (BMA). Among these, most video codec technologies use block matching algorithms in consideration of the regularity of data flow, computational complexity, and hardware implementation. The block matching algorithm refers to a procedure of finding a matching block in a predetermined search window of a reference frame by dividing a screen into 16 × 16 macroblocks (MB) or arbitrary smaller blocks. . The value indicating the position of the matching block found according to the block matching algorithm is a motion vector. In video encoding, only the difference value between the matching block and the current block and the motion vector are encoded to remove data redundancy.
블록 정합 알고리즘에서는 일반적으로 전탐색(Full Search) 기법을 사용한다. 전탐색 기법이란 최적의 정합블록을 찾기 위해 탐색 영역 내의 모든 위치에 대하여 정합 여부를 판단하는 것을 말한다. 대부분의 동영상 부호화 표준에서는 이러한 전탐색 기법을 사용하기 때문에, 움직임 추정 및 보상 과정이 전체 부호화 시간에서 가장 많은 부분을 차지하는 원인의 하나가 된다. 따라서 전탐색에 따른 속도 지연의 문제를 개선하기 위하여 다양한 유형의 새로운 블록 정합 알고리즘, 즉 고속 블록 정합 알고리즘이 개발되었다.Block matching algorithms generally use the full search technique. The prescan technique is to determine whether or not to match all positions in the search area in order to find an optimal matching block. Since most video coding standards use this prescan technique, the motion estimation and compensation process is one of the largest sources of the entire coding time. Therefore, various types of new block matching algorithms, that is, fast block matching algorithms, have been developed in order to improve the problem of speed delay due to pre-search.
3단계 탐색 기법(Three Step Search, TSS)Three Step Search Technique (TSS)
도 1a는 3단계 탐색 기법에 따른 움직임 추정의 패턴을 보여준다. 도 1a를 참조하면, 넓은 탐색 간격의 초기 패턴으로부터 시작해서 탐색 간격을 1/2간격으로 좁히면서 3번의 단계를 거쳐서 움직임 벡터를 결정하게 된다. 보다 구체적으로, 우 선, 원점 (0, 0)을 중심으로 원점과 함께 4픽셀 떨어진 곳의 8개의 점에 대해 정합을 실시하여 최소 블록 정합 오차를 가지는 지점을 결정한다(1단계). 그리고 1단계에서 결정된 최소 블록 정합 지점을 중심으로 1단계 간격의 반인 2 픽셀 떨어진 8개의 지점을 1단계에서와 마찬가지로 검사하여 최소 블록 정합 오차 지점을 결정한다(2단계). 마지막으로, 2단계에서 얻은 최소 블록 정합 오차 지점을 중심으로 1픽셀 떨어진 8개의 지점을 검사하여 최소 블록 정합 오차 값을 갖는 지점을 결정하면, 이 지점을 가리키는 값을 움직임 벡터로 한다. 1A shows a pattern of motion estimation according to a three-stage search technique. Referring to FIG. 1A, the motion vector is determined in three steps starting from the initial pattern of the wide search interval and narrowing the search interval to 1/2 interval. More specifically, the point having the minimum block matching error is determined by first matching the eight points about 4 pixels away from the origin with respect to the origin (0, 0) (step 1). The minimum block matching error point is determined by inspecting eight points, which are two pixels half the interval of one step from the minimum block matching point determined in
도 1b는 ±7 픽셀 범위의 탐색 영역에서 3단계 탐색 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여 준다. 도 1b를 참조하면, 모든 픽셀에서 필요한 탐색점의 수는 25임을 알 수 있다. 이러한 결과는 3단계 탐색 기법이 움직임이 적은 영상에서는 비효율적이지만 움직임이 많은 영상에서는 효율적임을 보여준다. Figure 1b shows the minimum number of search points for each pixel when using a three-stage search technique in a search region in the ± 7 pixel range. Referring to FIG. 1B, it can be seen that the number of search points required for every pixel is 25. These results show that the three-stage retrieval technique is inefficient for low-motion images but effective for high-motion images.
새로운 3단계 탐색 기법(New Three Step Search, NTSS)New Three Step Search (NTSS)
새로운 3단계 탐색 기법(NTSS)은 원점을 중심으로 한 탐색 패턴(Center Based Search Pattern)으로 이루어진 기법이다. 영상에 있어서 대부분의 블록들은 움직임이 없거나 또한 움직임이 적은 정적인 이미지(Static Image)에서는 움직임 벡터가 원점을 중심으로 집중되어 있다는 사실을 근거로 하여 3단계 탐색 기법에서 원점을 중심으로 8개의 탐색 지점을 추가하여 변형시킨 것으로 볼 수 있다.The new three-stage search technique (NTSS) consists of a center-based search pattern. Most of the blocks in the image are 8 motion points around the origin in the 3 step search method based on the fact that the motion vectors are centered around the origin in the static image where there is no motion or the motion is low. It can be seen that the modified by adding.
도 2a는 새로운 3단계 탐색 기법에 따른 움직임 추정의 패턴을 보여 준다. 도 2a를 참조하면, 첫 단계에서 17개 점의 블록 정합 오차를 구한다. 만약 원점이 최소 블록 정합 오차를 지닐 경우 원점을 움직임 벡터로 지정하고 탐색을 종료한다. 만약 원점과 인접한 8개의 지점이 최소 블록 정합 오차를 지닐 경우에는 3점 혹은 5점을 확장해서 탐색 하게 된다. 만약 원점을 중심으로 대각 방향의 지점이 선택될 경우 동일 방향으로 1픽셀씩 확장하여 5개의 점을 추가로 확장한다. 그리고 만약 직각 방향일 경우는 3점을 확장하게 된다. 그리고 만약 원점과 떨어진 가장자리의 8개의 점이 선택된 경우 3단계 탐색 기법에서와 동일한 방식으로 검색을 수행한다.2A shows a pattern of motion estimation according to a new three step search technique. Referring to FIG. 2A, a block matching error of 17 points is obtained in the first step. If the origin has the minimum block matching error, the origin is designated as the motion vector and the search ends. If the eight points adjacent to the origin have the minimum block matching error, three or five points are extended. If a point in the diagonal direction is selected around the origin, five points are further extended by one pixel in the same direction. If it is perpendicular, three points are extended. If eight points of the edge away from the origin are selected, the search is performed in the same manner as in the three-stage search technique.
그리고 도 2b는 ±7의 픽셀 탐색 범위에서의 새로운 3단계 탐색 기법 각 픽셀의 최소 탐색점의 수를 보여준다. 도 2b를 참조하면, 새로운 3단계 탐색 기법은 3단계 탐색 기법에 비해 움직임이 적은 영상에서는 효율적이지만 움직임이 많은 영상에서는 3단계 탐색 기법보다 비효율적임을 알 수 있다. Figure 2b shows the new three-stage search scheme in the pixel search range of ± 7 the minimum number of search points for each pixel. Referring to FIG. 2B, it can be seen that the new three-stage search method is more efficient than the three-stage search method but less inefficient than the three-stage search method.
4단계 탐색 기법(Four Step Search, FSS)Four Step Search (FSS)
도 3a는 4단계 탐색 기법(FSS)에 따른 움직임 추정의 패턴을 보여 주는 것으로서, 3단계 탐색 기법에서 흔히 발생하는 국부 최소점(Local Minimum Point)에 빠지는 단점을 보다 개선시킨 방법이다. 도 3a를 참조하면, 우선 원점을 중심으로 직각, 대각 방향으로 2픽셀 떨어진 8개의 탐색점을 검사하고 원점이 최소 블록 정합 오차를 지닐 경우 후술하는 4단계로 가고 그렇지 않을 경우 다음 단계인 2단계 탐색을 시작한다(1단계). 그리고 2단계에서는, 1단계에서 원점 이 외의 값이 최소 블록 정합 오차를 지닐 경우 대각선 방향일 경우는 5점, 그리고 직각 방향일 경우는 3점을 더 확장해서 검사하게 된다(2단계). 만약 최소 블록 정합 오차 지점의 변화가 없을 경우 3단계로 넘어가고 그렇지 않을 경우 4단계로 넘어간다. 계속해서, 3단계에서는 2단계에서와 동일한 방식으로 3점 혹은 5점의 최소 블록 정합 오차를 계산한다(3단계). 마지막으로 4단계에서는, 3단계에서 얻어진 최소 블록 정합 오차 지점을 중심으로 1픽셀씩 떨어진 대각, 직각 방향의 8개의 점을 더 탐색하고 최소 블록 정합 오차 지점의 이동 변위를 움직임 벡터로 결정하고 탐색을 마친다(4단계).FIG. 3A illustrates a pattern of motion estimation according to a four-stage search technique, which further improves a disadvantage of falling into a local minimum point common in the three-stage search technique. Referring to FIG. 3A, first, eight search points that are 2 pixels away from each other at right angles and diagonal directions are examined, and if the origin has the minimum block matching error, go to
도 3b는 ±7의 픽셀 탐색 범위에서의 4단계 탐색 기법 각 픽셀의 최소 탐색점의 수를 보여 준다. 도 3b를 참조하면, 4단계 탐색 기법 또한 새로운 3단계 탐색 기법과 마찬가지로 3단계 탐색 기법에 비해 움직임이 적은 영상에서는 효율적이지만 움직임이 많은 영상에서는 새로운 3단계 탐색 기법보다 비효율적임을 알 수 있다. Figure 3b shows a four-step search technique in the pixel search range of ± 7 the minimum number of search points for each pixel. Referring to FIG. 3B, similar to the new three-stage search method, the four-stage search method is also more efficient than the three-stage search method, but less efficient than the new three-stage search method.
블록 기반 그래디언트 탐색 기법(Block-Based GraDient Search, BBGDS)Block-Based GraDient Search (BBGDS)
도 4a는 BBGDS에 따른 움직임 추정의 탐색 패턴을 보여 주는 것으로서, 3단계 탐색 기법, 4단계 탐색 기법보다 영상의 움직임 특성이 원점에 근접한 성질을 이용한 기법이다. 도 4a를 참조하면, 우선 원점을 중심으로 9개의 점을 탐색하고 원점이 최소 블록 정합 오차를 가질 경우 탐색을 종료한다. 원점이 아닐 경우 2단계 탐색을 수행한다(1단계). 2단계에서는 만약 원점에서 대각 방향의 지점이 최소 블록 정합 오차 지점일 경우 같은 방향으로 1픽셀씩 확장해서 5개의 점을 탐색하고 직각 방향일 경우 3점을 더 확장해서 탐색을 수행한다(2단계). 그리고 최소값의 변화가 없을 때까지 이러한 2단계의 과정을 반복 실행한다. FIG. 4A shows a search pattern of motion estimation based on BBGDS, and is a technique using a property of motion of an image closer to the origin than a 3 step search method and a 4 step search method. Referring to FIG. 4A, first, nine points are searched around the origin, and the search ends when the origin has a minimum block matching error. If the origin is not, a two-step search is performed (step 1). In
도 4b는 ±7의 픽셀 탐색 범위에서의 BBGDS 탐색 기법 각 픽셀의 최소 탐색점의 수를 보여 준다. 도 4b를 참조하면, BBGDS가 움직임이 느린 영상에서는 효율적이지만 움직임이 빠른 영상에서는 비효율적임을 보여준다. 4B shows the minimum number of search points for each pixel in the BBGDS search scheme in a pixel search range of ± 7. Referring to FIG. 4B, it is shown that BBGDS is efficient in a slow motion image but inefficient in a fast motion image.
다이아몬드 탐색 기법(Diamond Search, DS)Diamond Search (DS)
다이아몬드 탐색 기법은 움직임 벡터의 분포가 탐색 영역의 중심인 원점 부근에 치우쳐 존재한다는 가정을 이용한 기법으로 영상의 움직임이 크고 작은 영상 모두에 있어 기존의 기법들에 비해서 화질과 속도 면에 있어서 가장 좋은 성능을 보인다. 도 5a는 다이아몬드 탐색 기법에서의 탐색 패턴을 보여 준다.The diamond search technique is based on the assumption that the distribution of the motion vector is located near the origin, the center of the search area, and the best performance in terms of image quality and speed in comparison to the existing techniques for both large and small images. Seems. 5A shows the search pattern in the diamond search technique.
도 5a를 참조하면, 우선 탐색 영역의 원점을 중심으로 직각, 대각 방향으로 큰 다이아몬드 탐색 패턴(Large Diamond Search Pattern, LDSP)로 8개의 점들을 배치하고 각각의 점들에 대해 블록 정합을 수행하여, 최소 블록 정합 오차 지점을 찾는다(1단계). 만약 최소 블록 정합 오차를 가진 점의 위치가 원점일 경우 3단계로 넘어가고 원점이 아닐 경우 2단계로 넘어간다. 상기 1단계에서의 최소 블록 정합 오차 지점을 중심으로 하여 직각 방향의 지점인 경우 5개의 점을 더 확장해서 검사하게 된다. 그리고 만약 대각 방향의 지점인 경우는 3개의 점을 더 확장해서 검사하게 된다(2단계). 그리고 최소 블록 정합 오차의 변화가 있을 경우 계속해서 2단계를 수행하고 최소 블록 정합 오차가 변화가 없을 경우 3단계로 넘어간다. 최소 블록 정합 오차 지점을 중심으로 하여 작은 다이아몬드 탐색 패턴(Small Diamond Search Pattern, SDSP)을 수행한 후 최소 블록 정합 오차 지점을 구하여 움직임 벡터를 정한다(3단계).Referring to FIG. 5A, first, eight points are arranged in a large diamond search pattern (LDSP) in a right angle and a diagonal direction around an origin of a search area, and block matching is performed on each of the points. Find the block matching error point (step 1). If the point with the minimum block matching error is the origin, go to
도 5b는 ±7의 픽셀 탐색 범위에서의 다이아몬드 탐색 기법은 각 픽셀의 최소 탐색점의 수를 보여 준다. 도 5b를 참조하면, 다이아몬드 탐색 기법은 움직임이 느린 영상에서 BBGDS보다 움직임이 빠른 영상에서는 3단계 탐색 기법보다 비효율적이지만 느리지도 빠르지도 않은 영상에서는 다른 고속 탐색 알고리듬보다 성능이 뛰어남을 알 수 있다.5B shows that the diamond search technique in the pixel search range of ± 7 shows the minimum number of search points for each pixel. Referring to FIG. 5B, it can be seen that the diamond search method is superior to other fast search algorithms in a slow motion image, which is inefficient than a three-step search method in an image that is faster than BBGDS but is not slow or fast.
전술한 기존의 고속 블록 정합 알고리즘들은 일정한 경우에는 전역 탐색 기법에 비하여 상당한 속도의 개선이 이루어지지만, 다른 경우에는 속도의 개선 효과가 미미하고 여전히 계산량이 많다는 단점이 있다. 예컨대, 3단계 탐색 기법의 경우에는 최적의 블록 정합 오차 지점이 원점 (0, 0) 근처에 존재할 때 비효율적이라고 할 수 있으며, BBGDS 기법의 경우에는 최적의 블록 정합 오차 지점이 원점 (0, 0)에서 멀리 떨어져 존재할 경우에 비효율적이라고 할 수 있다. 그리고 다른 기법들도 이러한 3단계 탐색 기법이나 BBGDS 기법의 단점을 보완하지만, 단점의 보완을 위하여 상대적으로 계산량이 늘어난다는 문제가 발생한다.The existing fast block matching algorithms have a significant speed improvement in some cases compared to the global search scheme, but in other cases, the speed improvement is insignificant and still has a large amount of computation. For example, in the case of the three-stage search technique, the optimal block matching error point is inefficient when it exists near the origin (0, 0). In the case of the BBGDS technique, the optimal block matching error point is the origin (0, 0). Inefficient if they exist far from In addition, while other techniques complement the shortcomings of these three-stage search and BBGDS techniques, there is a problem that the amount of computation is increased to compensate for the shortcomings.
따라서 본 발명이 해결하고자 하는 과제는 기존의 고속 블록 정합 알고리즘과는 달리 최적의 블록 정합 오차 지점의 위치, 즉 현재 블록의 움직임의 속도(움 직임 벡터의 크기)에 상관없이 계산량을 감소시킬 수 있을 뿐만 아니라 전탐색 기법에 비하여 화질의 열화도 최소한으로 할 수 있는 새로운 고속 블록 정합 알고리즘을 제공하는 것이다.Therefore, the problem to be solved by the present invention can reduce the amount of calculation regardless of the position of the optimal block matching error point, that is, the speed of the movement of the current block (size of the motion vector), unlike the existing high-speed block matching algorithm In addition, it provides a new fast block matching algorithm that can minimize image degradation compared to prescan.
상기한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 움직임 추정을 위한 블록 정합 방법은 현재 블록의 하나 이상의 주변블록들의 정보를 이용하여 상기 현재 블록의 움직임 정도를 예측하는 단계와 상기 현재 블록의 움직임 정도를 움직임이 작은 경우(S), 큰 경우(L), 그리고 중간인 경우(M)로 구분하고, 또한 구분된 움직임 정도에 기초하여 적응적으로 움직임 추정을 위한 탐색 기법을 적용함으로써 상기 현재 블록에 대한 정합 블록을 찾는 단계를 포함한다.According to an aspect of the present invention, there is provided a block matching method for motion estimation, using the information of one or more neighboring blocks of a current block to predict a degree of motion of the current block and The motion degree is divided into small (S), large (L), and middle (M) motions, and based on the separated motion degree, the current motion is applied by adaptively searching for motion estimation. Finding a matching block for the block.
상기 실시예의 일 측면에 의하면, 상기 주변블록들은 상기 현재 블록에 대하여 좌측, 상측, 및 우상측에 위치하는 블록들 중에서 하나 또는 그 이상의 블록을 포함하며, 상기 주변블록들의 정보는 수학식 (E-1), (E-2), 및 (E-3)으로 정의되는 상기 주변블록들의 움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 차의 절대값의 합(SAD) 중에서 하나 또는 그 이상을 포함할 수 있다.According to an aspect of the embodiment, the neighboring blocks include one or more blocks among blocks located on the left side, the upper side, and the upper right side with respect to the current block, and the information of the neighboring blocks is expressed by Equation (E−). in 1), (E-2) , and (E-3) length (MV length), the number (SP of the search point), and the sum (SAD) of absolute values of a difference between the motion vectors of the neighboring block is defined as a It may include one or more.
(E-1) (E-1)
(E-2) (E-2)
(E-3) (E-3)
여기서, 아래첨자 left, above, 및 above-right는 각각 현재 블록에 대한 주 변블록의 위치를 가리키고, MVleft, MVabove, MVabove-right는 각각 해당 블록의 MV의 x축 성분(MVx)과 y축 성분(MVy) 중에서 최대값으로 결정하며, 연산 average(x, y, z)는 세 수 x, y, z의 평균값을 나타내며, 연산 int(x)는 실수 x의 정수 부분을 가리킨다.Here, the subscripts left, above, and above-right indicate the position of the neighboring block with respect to the current block, respectively, and MV left , MV above , MV above-right respectively indicate the x-axis component (MV x ) of the MV of the block. And y-axis components (MV y ) are determined to be the maximum values, where operation average (x, y, z) represents the average of three numbers x, y, z, and operation int (x) points to the integer part of real x. .
그리고 이 경우에, 상기 움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 차의 절대값의 합(SAD) 중에서 적어도 2가지 정보가 상기 현재 블록의 움직임 정도가 작은 것으로 예측하거나 또는 1가지 정보만 상기 현재 블록의 움직임 정도가 작은 것으로 예측하고 다른 2가지 정보는 상기 현재 블록의 움직임 정도가 중간인 것으로 예측하는 경우에는, 상기 현재 블록에 대한 정합 블록을 찾는 단계에서는 향상된 십자형 다이아몬드 탐색 기법(Upgraded Cross Diamond Search, UCDS)을 적용할 수 있다. 또한, 상기 움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 차의 절대값의 합(SAD) 중에서 적어도 2가지 정보가 상기 현재 블록의 움직임 정도가 큰 것으로 예측하는 경우에는, 상기 현재 블록에 대한 정합 블록을 찾는 단계에서는 십자형 3단계 탐색 기법(Cross Three Step Search, CTSS)을 적용할 수 있으며, 상기 움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 차의 절대값의 합(SAD) 중에서 적어도 2가지 정보가 상기 현재 블록의 움직임 정도가 중간인 것으로 예측하고 또한 다른 1가지 정보는 상기 현재 블록의 움직임 정도가 중간이거나 또는 큰 것으로 예측하거나 또는 상기 움직임 벡터의 길이(MVlength), 탐색점의 개 수(SP), 및 차의 절대값의 합(SAD)으로부터 예측된 상기 현재 블록의 움직임 정도가 서로 다른 경우에는, 상기 현재 블록에 대한 정합 블록을 찾는 단계에서는 다이아몬드 탐색 기법(Diamond Search, DS)을 적용할 수 있다.In this case, at least two pieces of information among the length of the motion vector (MV length ), the number of search points (SP), and the sum of absolute values (SAD) of the differences may be predicted to have a small degree of motion of the current block. Alternatively, when only one piece of information predicts that the motion of the current block is small and the other two pieces of information predict that the motion of the current block is medium, the step of finding a matching block for the current block is improved. An upgraded cross diamond search (UCDS) can be applied. In addition, when at least two pieces of information of the length MV length , the number of search points SP, and the sum SAD of the difference value are predicted to have a large degree of motion of the current block, In the step of finding a matching block for the current block, a cross three step search technique (CTSS) may be applied, and the length of the motion vector (MV length ), the number of search points (SP), and the difference At least two pieces of information of the sum of absolute values (SAD) of the predicted motion degree of the current block is medium, and another piece of information predicts that the motion degree of the current block is medium or large, or the motion vector. length (MV length), more number of search points (SP), and if the cost of the current block is predicted from the sum (SAD) of absolute values of difference motion about each other, the matching block for the current block of The finding steps can be applied to the diamond search technique (Diamond Search, DS).
본 실시예의 다른 측면에 의하면, 상기 현재 블록에 대한 정합 블록을 찾는 단계에서는 향상된 십자형 다이아몬드 탐색 기법(Upgraded Cross Diamond Search, UCDS), 십자형 3단계 탐색 기법(Cross Three Step Search, CTSS), 및 다이아몬드 탐색 기법(Diamond Search, DS) 중에서 어느 하나의 탐색 기법을 적용할 수 있다. 이 경우에, 상기 현재 블록의 움직임 정도가 작은 것으로 예측되는 경우에는 상기 UCDS를 적용하고, 상기 현재 블록의 움직임 정도가 중간인 것으로 예측되는 경우에는 상기 DS를 적용하고, 상기 현재 블록의 움직임 정도가 큰 것으로 예측되는 경우에는 상기 CTSS를 적용할 수 있다.According to another aspect of the present embodiment, the step of finding a matched block for the current block may include an improved cross diamond search (UCDS), a cross three step search (CTSS), and a diamond search. Any one of the search schemes (Diamond Search, DS) may be applied. In this case, when the degree of motion of the current block is predicted to be small, the UCDS is applied. When the degree of motion of the current block is predicted to be medium, the DS is applied. If it is expected to be large, the CTSS may be applied.
본 발명의 실시예에 의하면, 현재 블록과 주변블록의 공간적 상관성을 높다는 것을 착안하여, 주변블록들의 움직임 벡터, 탐색점의 수, 및/또는 SAD를 이용하여 현재 블록의 움직임 정도를 예측하며, 예측 결과에 따라서 최적의 고속 블록 정합 기법을 적용한다. 특히, 본 발명의 일 실시예에 의하면, 현재 블록의 움직임 정도에 따라서 UCDS, DS, 및/또는 CTSS 알고리즘 중에 가장 적절한 알고리듬을 선택하여 움직임 추정을 수행함으로서 움직임 벡터를 고속으로 추정할 수 있다. 이러한 본 발명의 실시예에 의하면, 기존에 제안된 고속 블록 정합 알고리즘만큼 좋은 화질을 유지하면서 보다 적은 계산량으로 보다 신속하게 정합 블록을 찾을 수가 있 다.According to an embodiment of the present invention, the spatial correlation between the current block and the neighboring block is high, and the motion vector of the neighboring blocks, the number of search points, and / or the SAD are used to predict the degree of motion of the current block. According to the result, the optimal fast block matching technique is applied. In particular, according to an embodiment of the present invention, the motion vector may be estimated at high speed by selecting the most appropriate algorithm among the UCDS, DS, and / or CTSS algorithms according to the degree of motion of the current block to perform motion estimation. According to this embodiment of the present invention, it is possible to find a matching block more quickly with less computation while maintaining the same image quality as the fast block matching algorithm proposed previously.
이하, 첨부 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described with reference to an accompanying drawing.
본 발명의 실시예에 따른 고속 블록 정합 알고리즘에 의하면, 한 프레임에서 블록 단위로 움직임 추정을 할 때에 현재 블록의 움직임의 느리고 빠름 정도를 미리 예측한 다음, 예측 결과에 따라서 효율적인 고속 탐색 알고리즘을 적응적으로 선택하여 사용한다. 즉, 현재 블록의 움직임이 상대적으로 적은 경우와 상대적으로 많은 경우(또는 그 사이에 해당하는 경우)에 해당되는지를 미리 예측한 다음, 예측된 유형에 따라서 적응적으로 탐색 기법을 다르게 하여 적용하는 것이다. According to the fast block matching algorithm according to an embodiment of the present invention, when the motion estimation is performed on a block-by-block basis in one frame, the fast and fast motion of the current block is predicted in advance, and then an efficient fast search algorithm is adaptively applied according to the prediction result. Select to use. That is, it predicts in advance whether the motion of the current block corresponds to a relatively small case and a relatively large case (or in between), and then adaptively applies a different search method according to the predicted type. .
도 6은 본 발명의 일 실시예에 따른 움직임 추정 방법을 보여 주는 흐름도이다. 6 is a flowchart illustrating a motion estimation method according to an embodiment of the present invention.
도 6을 참조하면, 우선 현재 블록의 움직임 정도를 예측한다(S11). 보다 구체적으로, 본 단계에서는 현재 블록이 큰 움직임을 갖는 블록인지(움직임 벡터의 값이 클 것인지), 또는 작은 움직임을 갖는 블록인지(움직임 벡터의 값이 작은지), 또는 움직임이 중간 정도 인지를 판단한다. 그리고 본 발명의 실시예에서는 이러한 움직임 정도를 판정함에 있어서, 현재 블록에 이웃하는 주변블록의 정보를 이용한다. 이것은 영상이 가지는 특성상 현재 블록과 이웃하는 블록의 공간적 상관성이 높다는 점을 이용하는 것으로서, 움직임 정도를 계산하기 위한 계산 복잡도를 낮출 수 있으며, 보다 정확한 최소 블록 정합 오차 지점을 적은 탐색점의 수로 찾아낼 수 있다.Referring to FIG. 6, first, a motion degree of a current block is predicted (S11). More specifically, in this step, it is determined whether the current block is a block having a large motion (the value of the motion vector is large), a block having a small motion (the value of the motion vector is small), or whether the motion is medium. To judge. In the embodiment of the present invention, information of neighboring blocks neighboring the current block is used to determine the degree of movement. This uses the fact that the spatial correlation between the current block and the neighboring block is high due to the characteristics of the image, which can reduce the computational complexity for calculating the degree of motion, and can find more accurate minimum block matching error points with fewer search points. have.
도 7은 이러한 본 발명의 실시예에 따라서 현재 블록의 움직임 정도를 예측하는데 이용되는 주변블록들의 위치를 보여 주는 도면이다. 도 7을 참조하면, 본 발명의 실시예에서는 주변블록으로서 좌측 블록(MVleft), 상측 블록(MVabove), 및 우상측 블록(MVabove-right)을 이용한다. 다만, 현재 블록이 가장 좌상측에 위치하면 주변블록들을 이용할 수 없는데, 이 경우에는 움직임이 가장 작은 것으로 가정한다. 그리고 현재 블록이 가장 상측에 위치할 경우에는 1개의 주변블록(좌측)만을 이용하고, 현재 블록이 가장 왼쪽에 위치하거나 또는 오른쪽에 위치할 경우에는 2개의 주변블록(상측과 우상측 또는 좌측과 상측)을 이용한다.7 is a diagram illustrating the positions of neighboring blocks used to predict the degree of motion of the current block according to this embodiment of the present invention. Referring to FIG. 7, in the embodiment of the present invention, the left block MV left , the upper block MV above , and the right upper block MV above-right are used as peripheral blocks. However, if the current block is located at the upper left side, neighboring blocks cannot be used. In this case, the movement is assumed to be the smallest. If the current block is located on the uppermost side, only one neighboring block (left) is used. If the current block is located on the leftmost or right side, two neighboring blocks (upper and upper right or left and upper) ).
그리고 본 발명의 실시예에 의하면, 상기 주변블록의 정보로써는 움직임 벡터의 길이(MVlength), 탐색점의 개수(Search Point, SP), 및 차의 절대값의 합(Sum of Absolute Difference, SAD) 중에서 하나 또는 그 이상의 정보를 이용할 수 있다. 수학식 1, 2, 및 3은 각각 주변 블록들의 움직임 벡터로부터 현재 블록에 대한 움직임 벡터의 길이(MVlength), 주변 블록들의 탐색점의 개수로부터 현재 블록에 대한 탐색점의 개수(SPcurrent), 및 주변 블록들의 SAD로부터 현재 블록에 대한 SAD(SADcurrent)를 구하는 식이다.According to an embodiment of the present invention, the information of the neighboring block includes a sum of a motion vector length (MV length ), a number of search points (SP), and an absolute value of a difference (Sum of Absolute Difference, SAD). Information may be used.
여기서, MVleft, MVabove, MVabove-right는 각각 해당 블록의 MV의 x축 성분(MVx)과 y축 성분(MVy) 중에서 최대값으로 결정하며, 연산 average(x, y, z)는 세 수 x, y, z의 평균값을 나타내며, 연산 int(x)는 실수 x의 정수 부분을 가리킨다.Here, MV left , MV above , and MV above-right are determined as the maximum values of the x-axis component (MV x ) and the y-axis component (MV y ) of the MV of the block, respectively, and are calculated by calculating average (x, y, z) Denotes the average of three numbers x, y, and z, and the operation int (x) points to the integer part of the real number x.
그리고 상기 3개의 값, 즉 현재 블록에 대한 움직임 벡터의 길이(MVlength), 현재 블록에 대한 탐색점의 개수(SPcurrent), 및 현재 블록에 대한 SAD(SADcurrent) 각각에 대해서는 2개의 임계치(제1 임계치인 T1과 제2 임계치인 T2)를 사용하여, 현재 블록이 움직임이 큰 블록에 속하는지, 또는 작은 블록에 속하는지, 또는 중간에 해당하는 블록인지를 판단한다. 상기 2개의 임계치 값은 각각의 정보에 대하여 실험적으로 결정할 수 있다. And two thresholds for each of the three values, namely, the length of the motion vector for the current block (MV length ), the number of search points for the current block (SP current ), and the SAD (SAD current ) for the current block. Using the first threshold T 1 and the second threshold T 2 ), it is determined whether the current block belongs to a large block, a small block, or a middle block. The two threshold values can be determined experimentally for each piece of information.
예를 들어, 움직임 벡터의 길이(MVlength)의 경우에 제1 임계치를 2, 제2 임계치를 6으로 한 후에, 현재 블록의 움직임 벡터의 길이(MVlength)가 2이하이면 움직임이 작은 블록(S)으로, 6이상이면 움직임이 큰 블록(L)으로, 그리고 그 사이값, 즉 3, 4, 또는 5이면 움직임이 중간인 블록(M)으로 판정할 수 있다. 표 1은 이를 정리 한 것이다.For example, in the case of MV length of the motion vector, after setting the first threshold value to 2 and the second threshold value to 6, if the length MV length of the current block is less than or equal to 2, the small motion block ( In S), it is determined that the block L has a large motion if it is 6 or more, and the block M whose motion is intermediate if the value is between 3, 4, or 5. Table 1 summarizes this.
그리고 탐색점의 개수(SPcurrent)의 경우에는 제1 임계치를 17, 제2 임계치를 25으로 한 후에, 현재 블록의 탐색점의 개수(SPcurrent)가 17이하이면 움직임이 작은 블록(S)으로, 25이상이면 움직임이 큰 블록(L)으로, 그리고 그 사이값, 즉 18에서 24사이이면 움직임이 중간인 블록(M)으로 판정할 수 있다. 표 2는 이것을 정리한 것이다. 이와 같이, 제1 임계치를 17로 하고, 제2 임계치를 25로 하는 이유는, 도 8a 및 도 8b를 참조하여 후술하는 바와 같이, 탐색점이 17개인 경우와 25개인 경우를 기준으로, 최적의 탐색 기법에 달라지기 때문이다. In the case of the number of search points (SP current ), the first threshold is set to 17 and the second threshold is set to 25. If the number of search points (SP current ) of the current block is less than or equal to 17, the block S has small movements. If it is 25 or more, it can be determined as a block L having a large movement, and a block M having a medium value, that is, a motion in between. Table 2 summarizes this. The reason why the first threshold is set to 17 and the second threshold is set to 25 as described below with reference to FIGS. 8A and 8B is based on the case of 17 and 25 search points. It depends on the technique.
또한, SAD값(SADcurrent)의 경우에는 제1 임계치를 1100, 제2 임계치를 2000으로 한 후에, 현재 블록의 SAD(SADcurrent)가 1100이하이면 움직임이 작은 블록(S)으로, 2000이상이면 움직임이 큰 블록(L)으로, 그리고 그 사이값, 즉 1100에서 2000사이이면 움직임이 중간인 블록(M)으로 판정할 수 있다. 표 3은 이것을 정리한 것이다. 이와 같이, 제1 임계치를 1100로 하고, 제2 임계치를 2000로 하는 이유는, 실험적인 결과에 기초한 것이다. 표 4는 MPEG-4 MV 인코더에서 CIF 영상 100프레임을 실험한 평균 SAD값을 나타내고 있는데, 임의적으로 2개의 임계치를 T1 =1100, T2 = 2000으로 했을 경우에, 좋은 결과를 얻을 수 있었다.In the case of SAD value SAD current , the first threshold is 1100 and the second threshold is 2000. If the SAD (SAD current ) of the current block is 1100 or less, the small block S is smaller than 2000. If the motion is a large block (L), and the value in between, that is, between 1100 and 2000 can be determined as the block (M) with a medium movement. Table 3 summarizes this. In this way, the reason for setting the first threshold value to 1100 and the second threshold value to 2000 is based on experimental results. Table 4 shows the average SAD values of 100 frames of CIF video in the MPEG-4 MV encoder. When two thresholds were arbitrarily set to T 1 = 1100 and T 2 = 2000, good results were obtained.
계속해서 도 6을 참조하면, 현재 블록의 움직임 정도를 예측한 다음에는 상기 예측 결과에 기초하여 적응적으로 고속 블록 정합 탐색 기법을 적용한다(S12). 여기서 적응적이라는 말은 현재 블록에 대하여 예측된 움직임 정도에 따라서 탐색점의 수를 최소화할 수 있도록 다른 고속 블록 정합 탐색 기법을 적용한다는 것을 의미한다. 도 6을 참조하면, 현재 블록이 움직임이 작은 블록(S)인 것으로 예측되는 경우에는 탐색 기법으로 BBGDS를 적용하고, 움직임이 중간인 블록(M)으로 예측되는 경우에는 탐색 기법으로 TSS을 적용하고, 움직임이 큰 블록(L)으로 예측되는 경우에는 탐색 기법으로 DS를 적용하여, 움직임 추정 절차를 수행한다. 이하, 이에 대해서 보다 상세하게 설명한다.6, after predicting the degree of movement of the current block, a fast block matching search technique is adaptively applied based on the prediction result (S12). In this case, the term adaptive means that another fast block matching search technique is applied to minimize the number of search points according to the predicted movement degree for the current block. Referring to FIG. 6, when the current block is predicted to be a small block S, the BBGDS is applied as the search technique, and when the motion is predicted to be the middle block M, the TSS is applied as the search technique. If the motion is predicted to be a large block (L), the motion estimation procedure is performed by applying DS as a search technique. This will be described in more detail below.
도 8a는 ±7의 픽셀 탐색 범위에서의 3단계 탐색 기법, 새로운 3단계 탐색 기법, 4단계 탐색 기법, BBGDS 그리고 다이아몬드 탐색 기법 모두 고려해 보았을 때, 픽셀당 최소의 탐색점의 수를 보여 준다. 그리고 도 8b는 각 픽셀에서 최소 탐색점의 수을 가지게 하는 고속 탐색 알고리듬의 종류를 보여준다. 도 8a 및 도 8b를 참조하면, 픽셀당 최소 탐색점의 수를 고려해 볼 때 움직임이 작거나 없는 영상이나 블록에서는 BBGDS가 효율적이고, 움직임이 중간인 경우, 예컨대 MV의 길이가 3, 4 또는 5가 되는 블록의 경우에는 다이아몬드 탐색 기법(DS)이 유리함을 알 수 있다. 또한, 움직임이 많은 영상, 즉 움직임 벡터의 크기가 상대적으로 큰 블록은 3단계 탐색 기법(TSS)이 효율적임을 알 수 있다. 따라서 본 발명의 일 실시예에 의하면, 단계 S11에서의 현재 블록에 대한 예측된 움직임의 정도가 작은 경우(S)에는 BBGDS를 적용하고, 현재 블록에 대한 예측된 움직임의 정도가 큰 경우(L)에는 TSS를 적용하고, 현재 블록에 대한 예측된 움직임의 정도가 중간인 경우(M)에는 DS를 적용할 경우에, 보다 효율적으로 움직임 벡터를 구할 수 가 있다.FIG. 8A shows the minimum number of search points per pixel when considering the three-stage search technique, the new three-stage search technique, the four-stage search technique, the BBGDS and the diamond search technique in the pixel search range of ± 7. 8B shows a type of fast search algorithm that has a minimum number of search points in each pixel. Referring to FIGS. 8A and 8B, considering the minimum number of search points per pixel, BBGDS is efficient in an image or a block with little or no motion, and when the motion is medium, for example, the length of the MV is 3, 4, or 5 In the case of blocks, it can be seen that the diamond search technique (DS) is advantageous. In addition, it can be seen that a three-stage search technique (TSS) is efficient for a high motion image, that is, a block having a relatively large size of a motion vector. Therefore, according to an embodiment of the present invention, when the degree of predicted movement for the current block is small in step S11 (S), the BBGDS is applied, and when the degree of predicted movement for the current block is large (L). In the case where the TSS is applied and the predicted motion for the current block is medium (M), when the DS is applied, the motion vector can be obtained more efficiently.
도 9는 본 발명의 다른 실시예에 따른 움직임 추정 절차를 보여 주는 흐름도이다. 9 is a flowchart illustrating a motion estimation procedure according to another embodiment of the present invention.
도 9를 참조하면, 먼저 전술한 실시예와 마찬가지로, 현재 블록의 움직임 정도에 대한 예측을 수행한다(S21). 그리고 본 실시예에서는 단계 S21에서의 예측 결과에 기초하여, 단계 S22에서는 전술한 실시예에 비하여 움직임 추정에 따른 계산량을 보다 감소시켜서 부호화 속도를 향상시킬 수 있도록, 보다 개선된 새로운 고속 블록 정합 탐색 기법을 적응적으로 적용한다. 이러한 본 발명의 실시예에 의하면, 현재 블록이 움직임이 적은 경우라고 예측되면 BBGDS 탐색 기법을 대신해 향상된 십자형 다이아몬드 탐색 기법(Upgraded Cross Diamond Search, UCDS)을 이용하고, 움직임이 많은 경우라고 판단되면 십자형 3단계 탐색 기법(Cross Three Step Serach, CTSS)을 이용한다. 그리고 나머지의 경우에는 전술한 실시예와 마찬가지로 다이아몬드 탐색 기법을 이용한다. 이하, 본 발명에서 새롭게 제안하는 UCDS 기법과 CTSS 기법에 대하여 상세하게 설명한다.Referring to FIG. 9, first, as in the above-described embodiment, prediction about the movement degree of the current block is performed (S21). In the present embodiment, a new fast block matching search technique is further improved in step S22 to improve the coding speed by further reducing the calculation amount according to the motion estimation in the step S22, compared to the above-described embodiment. Apply adaptively. According to the exemplary embodiment of the present invention, when the current block is predicted to have a small amount of motion, an improved cross diamond search technique (UCDS) is used instead of the BBGDS search technique. Cross Three Step Serach (CTSS) is used. In other cases, the diamond search technique is used as in the above-described embodiment. Hereinafter, the UCDS technique and the CTSS technique newly proposed in the present invention will be described in detail.
향상된 십자형 다이아몬드 탐색(UCDS) 기법Enhanced Cross Diamond Search (UCDS) Technique
도 8a 및 도 8b를 참조하여 설명한 픽셀당 최소 탐색점의 수를 고려한 분석에서 볼 수 있듯이, BBGDS는 느린 영상이나 블록에서 탐색점의 수가 줄어드는 경향을 볼 수 있다. 하지만 다이아몬드 탐색 기법을 개선시켜 성능을 향상 시킨 십자형 다이아몬드 탐색(Cross Diamond Search, CDS) 기법이나 새로운 십자형 다이아몬드 탐색(New Cross Diamond Search, NCDS)이 움직임이 느린 영상이나 블록에 더욱 유용하다. 왜냐하면 CDS 기법과 NCDS 기법은 다이아몬드 탐색 기법의 경우 LDSP 수행 후 SDSP를 한번 더 수행해 최소 13개의 탐색 지점을 필요로 한다는 점을 착안하여 CDS는 초기 탐색 지점을 십자 형태의 9개점을 수행하고 NCDS는 초기 탐색을 원점을 중심으로 SDSP 5개 지점을 수행하여 탐색점의 수를 줄이기 때문이다. As can be seen in the analysis considering the minimum number of search points per pixel described with reference to FIGS. 8A and 8B, the BBGDS may show a tendency to decrease the number of search points in a slow image or a block. However, the Cross Diamond Search (CDS) technique or the New Cross Diamond Search (NCDS), which improves performance by improving the diamond search technique, is more useful for slow motion images or blocks. Because the CDS and NCDS methods require that the diamond search method requires at least 13 search points by performing SDSP once more after LDSP, CDS performs the initial search point by nine cross points and NCDS by the initial method. This is because the number of search points is reduced by performing 5 SDSP points around the origin.
그러나 표 5에 기재되어 있는 실험 동영상들에 대해 탐색영역의 거리를 ±7로 두고 움직임 벡터의 분포를 조사해 보았을 때, 표 6과 같이 대부분의 움직임 벡터가 탐색영역의 중심 주위에 분포하고 탐색영역의 중심점으로부터 반경 1픽셀 내의 약 62%의 가장 많은 분포를 가지고, 반경 2픽셀 내에 약 76%, 반경 3픽셀 내에는 약 84% 분포를 가짐을 알 수 있다. 십자형 다이아몬드 탐색(CDS) 기법의 경우 초기에 십자 형태의 9개의 점을 수행하고 새로운 십자형 다이아몬드 탐색(NCDS) 기법의 경우 5개의 초기 탐색 점 수행함으로서 움직임 없거나 움직임이 적은 영상 즉 최적의 블록 정합 오차지점이 반경 1픽셀 내에 분포하고 있는 움직임 벡터 탐색에서는 탁월한 성능을 보인다. 하지만 십자형 다이아몬드 탐색 기법과 새로운 십자형 다이아몬드 탐색 기법은 반경 2, 3픽셀에도 많은 양의 움직임 벡터가 존재함에도 불구하고 반경 2, 3픽셀 분포하고 있는 움직임 벡터에 대해서는 고려하지 않음으로서 블록 정합 오차 계산에서의 성능 열화를 가져온다는 점을 알 수 있다. 따라서 본 발명의 실시예에서는 향상된 십자형 다이아몬드 탐색(UCDS) 기법이라는 새로운 탐색 기법을 사용하여 반경 2, 3픽셀 내에 분포하고 있는 움직임 벡터를 고려하여 블록 정합 오차를 실행함으로서 성능 향상을 가져올 것이다.However, when the distribution of the motion vector is examined with the distance of ± 7 for the experimental videos described in Table 5, as shown in Table 6, most of the motion vectors are distributed around the center of the search area. It can be seen that it has the largest distribution of about 62% within 1 pixel radius from the center point, about 76% within 2 pixels radius and about 84% within 3 pixels radius. The cross diamond search (CDS) technique initially performs nine cross-shaped points and the new cross diamond search (NCDS) technique performs five initial search points, resulting in an image with little or no motion, ie optimal block matching error points. The search for motion vectors distributed within one pixel of this radius shows excellent performance. However, the cruciform diamond search method and the new cruciform diamond search method do not consider the motion vectors that are distributed in the radius of 2 or 3 pixels even though there are a large amount of motion vectors in the radius of 2 and 3 pixels. It can be seen that this leads to performance degradation. Therefore, in the embodiment of the present invention, by using a new search technique called an improved cross diamond search (UCDS) technique, the block matching error is performed by considering a motion vector distributed within a radius of 2 or 3 pixels, thereby improving performance.
UCDS 기법에 의하면, 우선 도 10a에 도시된 바와 같이, 원점(0,0)을 중심으로 한 SCSP(Small Cross Search Pattern)의 5개의 점에서 최적의 블록을 찾는다(1단계). 탐색 결과, 만약 원점에서 최적의 블록이 발생하면 탐색을 멈추고 아니면 다음 단계로 넘어간다. 만약 최적의 블록이 (1,0)에서 발생하면, 도 10b와 같이 추가된 4개의 점((2,0), (3,0), (1,-1), (1,1))을 탐색한다(2단계). 최적의 블록이 (1,0)이 아닌 (-1,0), (0,1), 또는 (0,-1)인 경우에도 동일한 논리가 적용된다. 탐색 결과, 최적의 블록이 (1,0)(혹은(-1,0), (0,1), (0-1))에서 발생하면 탐색을 멈추고 아니면 다음 단계로 넘어간다. According to the UCDS technique, first, as shown in FIG. 10A, an optimal block is found at five points of a small cross search pattern (SCSP) centered on an origin point (0,0) (step 1). As a result of the search, if the optimal block occurs at the origin, stop the search or go to the next step. If the optimal block occurs at (1,0), we add 4 points ((2,0), (3,0), (1, -1), (1,1)) Navigate (step 2). The same logic applies when the optimal block is (-1,0), (0,1), or (0, -1) rather than (1,0). As a result of the search, if the best block occurs at (1,0) (or (-1,0), (0,1), (0-1)), the search stops and the next step is taken.
다음 단계는 3가지의 경우로 나눌 수 있다(3단계). 첫 번째 경우는 최적의 블록이 (2,0)(혹은 (-2,0), (0,2), (0,-2))에서 발생하는 경우이다. 이와 같은 경우에는, 도 10c에 도시된 바와 같이, 2개의 점((2,-1), (2,1))을 추가적으로 탐색한다. 탐색 결과, (2,0)(혹은 (-2,0), (0,2), (0,-2))에서 최적의 블록이 나타나면 탐색을 멈추고 그렇지 않으면 다음 단계로 넘어간다. 두 번째 경우는 최적의 블록이 (1,-1)(혹은 (-1,-1), (-1,1), (1,1))에서 발생하는 경우이다. 이와 같은 경우에는, 도 10d에 도시된 바와 같이 2개의 점((1,-2), (2,-1))을 추가적으로 탐색한다. 탐색 결과, (1,-1)(혹은 (-1,-1), (-1,1), (1,1))에서 최적의 블록이 발생하면 탐색을 멈추고 아니면 다음 단계로 넘어간다. 세 번째 경우는 최적의 블록이 (3,0)(혹은 (-3,0), (0,3), (0,-3))에서 발생하는 경우이다. 이와 같은 경우에는 바로 다음 단계로 넘어간다.The next step can be divided into three cases (step 3). The first case is when the optimal block occurs at (2,0) (or (-2,0), (0,2), (0, -2)). In this case, as shown in FIG. 10C, two points ((2, -1) and (2,1)) are further searched. If the search results in an optimal block at (2,0) (or (-2,0), (0,2), (0, -2)), stop the search and go to the next step. The second case is when the optimal block occurs at (1, -1) (or (-1, -1), (-1,1), (1,1)). In this case, two points ((1, -2) and (2, -1)) are additionally searched as shown in FIG. 10D. As a result of the search, if the optimal block occurs at (1, -1) (or (-1, -1), (-1,1), (1,1)), the search stops and the next step is taken. The third case is when the optimal block occurs at (3,0) (or (-3,0), (0,3), (0, -3)). In this case, go to the next step.
계속해서, 이전 단계의 최적의 블록점을 중심으로 한 LDSP(Large Diamond Search Pattern)으로 탐색을 실행한다(4단계). 탐색 결과, 중심에서 최적의 블록점을 찾으면 다음 단계로 넘어가고, 그렇지 않으면 이번 단계를 반복 수행한다. 그리고 이전 단계의 최적의 블록점을 중심으로 한 SDSP으로 탐색을 수행한다(5단계). Subsequently, a search is performed with a large diamond search pattern (LDSP) centering on the optimal block point of the previous step (step 4). As a result of the search, if it finds the best block point in the center, it moves on to the next step, otherwise it repeats this step. The search is performed with the SDSP centering on the optimal block point of the previous step (step 5).
도 10e 및 도 10f는 각각 UCDS 기법의 전 과정을 적용한 예를 보여 주는 도면이다. 도 10e를 참조하면, 1단계에서 원점(0,0)을 중심으로 4개의 점을 비교하여 (1,0)이 선택되고, 2단계에서 4개의 점을 추가해 블록 정합 오차를 계산한 후, (3,0)이 선택되면 3단계의 경우 3임으로 4단계로 넘어가서 LDSP 수행하고 최적의 블록점이 중심에서 나타나면 5단계의 SDSP를 수행하여 (3,0)을 결정한다. 그리고 도 10f를 참조하면, 1단계에서 원점(0,0)을 중심으로 4개의 점을 비교하여 (1,0)을 선택하고 2단계에서 4개의 점을 추가해 비교하여 (1,-1)결정한 후, 2개((1,-2),(2,-1))의 점을 추가해 비교하는 3단계에서는 2번째 경우를 수행해 (2,-1)를 선택하고, 최적의 블록점을 중심으로 LDSP를 수행하는 4단계를 한 다음 5단계의 SDSP를 수행하여 최종적으로 (3,-2)를 결정되는 과정을 보여주고 있다.10E and 10F are diagrams showing examples of applying the entire process of the UCDS technique, respectively. Referring to FIG. 10E, in
이상에서 상세하게 설명한 UCDS 기법은 초기탐색을 원점(0,0)을 중심으로 SDSP를 수행함으로서 십자 다이아몬드 탐색 기법이 갖는 9개의 초기 탐색 점으로 인한 속도 저하를 방지하고 SDSP 수행 후 납작한 다이아몬드 형태로 4개의 점을 추가함으로서 새로운 십자 다이아몬드 탐색 기법보다 빨리 블록 정합 오차가 최소인 지점을 찾을 수 있다. 특히, 움직임이 없거나 적은 영상에 있어서 다른 알고리듬 보다 탁월한 성능을 발휘함을 볼 수 있다. The UCDS method described in detail above performs the SDSP around the origin (0,0) to prevent the speed drop caused by the nine initial search points of the cross diamond search method, and then performs a flat diamond shape after performing the SDSP. By adding four points, we can find the point with the lowest block matching error faster than the new cross diamond search method. In particular, it can be seen that the performance is superior to other algorithms for images with little or no motion.
실제로 MPEG-4 VM 인코더에서 CIF 영상 100프레임을 움직임이 적은 영상과 많은 영상을 선택하여 실험한 결과가 표 7에 표시되어 있다. 표 7을 참조하면, 움직임이 작은 영상에서는 UCDS의 피크 신호 대 잡음비(Peak Signal to Noise Ratio, PSNR)가 BBGDS, 십자형 다이아몬드 탐색 기법, 새로운 십자 다이아몬드 탐색 기법과 비슷하게 유지되면서 UCDS의 블록당 탐색점의 수(Search Point, SP)가 다른 알고리즘보다 적음을 알 수 있다. 하지만 움직임이 많은 영상에서는 다이아몬드 탐색 기법 비하여 PSNR는 떨어짐을 알 수 있다. 그러므로 원점을 중심으로 하여 일정한 영역에 MV가 존재하는 움직임이 적은 영상을 탐색할 경우 UCDS를 사용하는 것이 유리하다는 결론을 얻을 수 있다.In fact, the results of experimenting with 100 frames of CIF video in the MPEG-4 VM encoder by selecting a low-motion video and many video are shown in Table 7. Referring to Table 7, the peak signal-to-noise ratio (PSNR) of UCDS is maintained in the small motion image similar to BBGDS, cross diamond search method, and new cross diamond search method. It can be seen that the number (Search Point, SP) is less than other algorithms. However, it can be seen that the PSNR is lower than that of the diamond search method in the high motion image. Therefore, it can be concluded that it is advantageous to use UCDS when searching for images with few movements with MV in a certain area around the origin.
십자형 3단계 탐색(Cross Three Step Search) 기법Cross Three Step Search Technique
CTSS 기법은 3단계 탐색 기법과 마찬가지로, 초기 탐색으로써 원점(0,0)을 중심으로 8개의 점에 대해 정합 여부에 대한 판정을 수행한 다음, 탐색 간격을 1/2간격으로 좁히면서 2단계와 3단계의 판정을 수행하되, 십자 형태로 4개의 점을 우선 정합을 실시한 후에 최소 블록 정합 오차 지점을 따라 적응적으로 2개의 점을 추가적으로 정합을 실시한다. The CTSS method is similar to the three-stage search method. As an initial search, the CTSS method performs the determination on the eight points around the origin (0,0), and then narrows the search interval to 1/2 intervals. In the three-step determination, four points are first matched in the cross shape, and then two points are additionally adaptively matched along the minimum block matching error point.
보다 구체적으로, 우선 원점을 중심으로 원점과 함께 4픽셀 떨어진 곳의 8개 점에 대해 정합을 실시하여 최소 블록 정합 오차를 가지는 지점을 결정한다(1단계). 그리고 도 11a 및 도 11b에 도시된 바와 같이, 1단계에서 구한 최소 블록 정합 지점을 중심으로 1단계 간격의 반인 2 픽셀 떨어진 십자 형태의 4개의 점에 대하여 우선 정합 여부를 판단한다. 판단 결과, 만일 정합 지점이 변화가 없을 경우에는 도 10a와 같이 바로 3단계로 넘어가지만, 만일 정합 지점의 변화가 있을 경우에는 도 10b에 도시된 바와 같이 적응적으로 2개의 점에 대하여 정합 여부를 판정한 다음 3단계로 넘어간다(2단계). 계속해서, 2단계에서 얻은 최소 블록 정합 오차 지점을 중심으로 1픽셀 떨어진 십자 형태로 4개의 점에 대하여 우선 정합 여부에 대한 판정을 수행하고, 판정 결과 정합 지점이 변화가 없을 경우에는 도 11a와 같이 움직임 벡터를 결정하지만, 만일 정합 지점의 변화가 있을 경우에는 도 11b에 도시된 바와 같이 적응적으로 추가적으로 2개의 점에 대한 정합 여부를 판정한 다음 움직임 벡터를 결정한다.More specifically, first, a point having a minimum block matching error is determined by performing matching on eight points four pixels away from the origin with respect to the origin (step 1). As shown in FIGS. 11A and 11B, it is first determined whether or not to match the four points of the cross shape two pixels apart from each other, which are half of the first step interval, based on the minimum block matching point obtained in the first step. As a result of the determination, if there is no change in the matching point, the process proceeds directly to step 3 as shown in FIG. 10A. However, if there is a change in the matching point, adaptively checking whether two points are matched as shown in FIG. 10B. After the determination, the process proceeds to step 3 (step 2). Subsequently, a determination is first made on four points in a
표 8에는 여러 가지 샘플 영상에 대하여 3단계 탐색(TSS) 기법과 십자형 3단계 탐색(CTSS) 기법의 PSNR와 탐색점(SP)의 수가 표시되어 있다. 표 8을 참조하면, TSS 기법과 CTSS 기법은 PSNR은 비슷하게 나오지만 CTSS 기법에 의할 경우에 탐색점의 수가 상대적으로 줄여든다는 것을 알 수 있다. 따라서 본 발명의 실시예에서는, 움직임이 많은 블록의 경우에 TSS 기법을 대신해 CTSS를 사용하는 것을 제안한다. 하지만, 본 발명의 실시예가 여기에만 한정되는 것은 아니며, TSS 기법을 그대로 사용하거나 움직임이 많은 블록에서 속도 개선의 효과가 있는 다른 탐색 기법을 사용할 수도 있다.Table 8 shows the PSNR and the number of search points (SP) of the three-step search (TSS) technique and the cross-type three-step search (CTSS) technique for various sample images. Referring to Table 8, the TSS technique and the CTSS technique show similar PSNR, but the number of search points is relatively reduced by the CTSS technique. Therefore, in the embodiment of the present invention, it is proposed to use the CTSS instead of the TSS technique in the case of a block having a lot of motion. However, the embodiment of the present invention is not limited thereto, and the TSS technique may be used as it is, or another search technique may be used to improve the speed in a block with a lot of motion.
이상에서 설명한 바와 같이, 본 발명의 실시예에 의하면 현재 블록의 움직임 정도를 예측함에 있어서, 주변 블록에 대한 세 가지 정보, 즉 움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 SAD 중에서 적어도 하나의 정보를 이용할 수 있다. 이하, 이러한 본 발명의 일 실시예로써, 상기 세 가지 정보 모두를 이용하여 현재 블록의 움직임 정도를 예측하는 방법에 대하여 설명한다.As described above, according to the embodiment of the present invention, in estimating the degree of motion of the current block, three pieces of information about the neighboring block, that is, the length of the motion vector (MV length ), the number of search points (SP), and At least one piece of information may be used among the SADs. Hereinafter, as an embodiment of the present invention, a method of predicting the degree of motion of the current block using all three pieces of information will be described.
움직임 벡터의 길이(MVlength), 탐색점의 개수(SP), 및 SAD 모두를 현재 블록의 움직임 정도를 판별하는 기준으로 이용할 경우에, 상기 세 가지 정보로부터 나올 수 있는 조합은 33, 즉 27가지가 있다. 이러한 27가지 조합은, 예컨대 표 9에 개시된 것과 같이, 어느 하나의 움직임 정도를 나타내는 것이 2번 이상인 경우와 세 가지의 움직임 정도를 나타내는 것이 골고루 혼합되어 있는 경우로 분류할 수 있다. 그리고 이러한 분류는 표 10에 개시되어 있는 것과 같이, 최종적으로 3가지 종류, 즉 현재 블록의 움직임 정도가 작은 경우, 중간인 경우, 및 큰 경우로 분류할 수 있다. 그리고 각각의 경우에 대해서는 도 8 또는 도 9를 참조하여 설명한 실시예가 적용될 수 있는데, 표 10에서는 도 9를 참조하여 설명한 실시예가 적용되는 경우를 보여 주고 있다.When the length of the motion vector (MV length ), the number of search points (SP), and SAD are all used as criteria for determining the degree of motion of the current block, a combination that can be derived from the three pieces of information is 3 3 , that is, 27 There is a branch. These 27 combinations can be classified into two cases in which any one degree of movement is shown two times or more and a case in which three degrees of movement are evenly mixed as shown in Table 9, for example. As shown in Table 10, the classification can be classified into three types, namely, a case in which the degree of motion of the current block is small, medium, and large. In each case, the embodiment described with reference to FIG. 8 or 9 may be applied. Table 10 shows a case where the embodiment described with reference to FIG. 9 is applied.
여기서, 만약 현재 블록이 프레임의 첫 번째일 경우에는 UCDS를 적용하여 움직임 추정을 수행한다. 왜냐하면, 프레임의 가장자리는 일반적으로 배경일 가능성이 높으며, 배경은 움직임이 적은 부분이라고 말 할 수 있기 때문이다. Here, if the current block is the first of the frame, motion estimation is performed by applying UCDS. This is because the edges of the frame are generally more likely to be backgrounds, and the backgrounds can be said to be the least moving parts.
실험 결과 및 분석Experiment Results and Analysis
본 발명의 일 실시예에 따라 제안된 알고리즘(표 10에 개시된 것과 같이 현재 블록의 움직임 정도를 예측하고, 또한 도 9에 도시된 실시예를 적용하는 경우)의 성능을 평가하기 위하여, MPEG-4 VM 인코더를 이용하여 실험을 수행하였다. 모든 영상은 IPPP를 부호화되었고, 비트율 제어(rate control)는 TM5를 적용하였다. 그리고 실험에 사용한 영상은 CIF(352×288) 영상 "football," "akiyo," "bus," "news," "tempete," "waterfall," "bridge," "coastguard," "container," "foreman," "hallway," "mobile," "paris," "silent," "Stefan," "table," 그리고 "flower"들에 대해 각각 100프레임씩을 대상으로 실험하였고, 비교 탐색 알고리즘으로는 3단계 탐색기법, 새로운 3단계 탐색 기법, 4단계 탐색기법, BBGDS, 다이아몬드 탐색 기법, 육각 탐색 기법(Hexagon-based Search, HEXBS), 십자 다이아몬드 탐색 기법(CDS), 그리고 새로운 십자 다이아몬드 탐색 기법(NCDS)을 사용하였다. 움직임 예측에 사용한 매크로 블록의 크기는 16×16 픽셀이며, 탐색 영역의 변위 ±7을 적용하여 실험을 수행하였다.In order to evaluate the performance of the proposed algorithm according to one embodiment of the present invention (when predicting the degree of motion of the current block as described in Table 10 and applying the embodiment shown in FIG. 9), MPEG-4 Experiments were performed using the VM encoder. All images were encoded with IPPP, and the rate control was applied to TM5. The video used in the experiment was CIF (352 × 288), "football," "akiyo," "bus," "news," "tempete," "waterfall," "bridge," "coastguard," "container," " Foreman, "" hallway, "" mobile, "" paris, "" silent, "" Stefan, "" table, "and" flower "were each tested for 100 frames. Search method, new three-step search method, four-step search method, BBGDS, diamond search method, hexagon-based search (HEXBS), cross diamond search method (CDS), and new cross diamond search method (NCDS) Used. The size of the macroblock used for the motion prediction is 16 × 16 pixels, and the experiment was performed by applying the displacement ± 7 of the search area.
성능 비교 평가 함수로는 영상 화질의 품질을 평가하기 위해 평균 제곱 오차(Mean Squared Error, MSE)를 이용한 피크 신호대 잡음비(Peak Signal-to-Noise Ratio, PSNR)를 이용하였으며, 정합 오차 측정 함수로는 SAD를 이용하였다. 또한 제안하는 알고리즘의 성능 향상을 측정하기 위해 블록 당 탐색점의 수를 기존 알고리듬들과 비교하였다.As a performance comparison function, peak signal-to-noise ratio (PSNR) using mean squared error (MSE) was used to evaluate the quality of image quality. SAD was used. Also, to measure the performance improvement of the proposed algorithm, the number of search points per block is compared with the existing algorithms.
탐색 알고리듬의 성능을 비교평가하기 위해 사용한 함수인 MSE와 PSNR은 각각 수학식 4 및 수학식 5과 같다.MSE and PSNR, functions used to compare and evaluate the performance of the search algorithm, are shown in
수학식 4와 수학식 5에서, M과 N은 각각 영상의 가로와 세로의 크기를 나타내며, 는 원영상의 화면을 나타내고, 는 움직임 예측 화면을 나타낸다.In
블록의 정합오차를 측정하기 위한 함수 SAD는 수학식 6과 같다.A function SAD for measuring a matching error of a block is shown in
수학식 6에서 MB는 매크로 블록의 가로와 세로의 크기를 나타내며, 은 현재 프레임을 나타내고, 은 이전 프레임을 나타낸다.In
실험영상에 대한 실험 결과는 표 11, 표 12, 그리고 표 13에 각각 나타내었다. 표 11과 표 12에서는 3단계 탐색기법, 새로운 3단계 탐색 기법, 4단계 탐색기법, BBGDS, 다이아몬드 탐색 기법, 육각 탐색 기법, 십자 다이아몬드 탐색 기법, 새로운 십자 다이아몬드 탐색 기법, 그리고 제안한 알고리즘의 평균 PSNR과 MSE를 각각 나타내었고, 표 13에서는 한 블록당 평균 탐색점의 수를 나타내었다. The experimental results for the experimental images are shown in Table 11, Table 12, and Table 13, respectively. Table 11 and Table 12 show the three-step search method, the new three-step search method, the four-step search method, BBGDS, the diamond search method, the hexagon search method, the cross diamond search method, the new cross diamond search method, and the average PSNR of the proposed algorithm. Each of the MSE is shown, and Table 13 shows the average number of search points per block.
제안하는 탐색 알고리즘은 표 11과 12에서 볼 수 있듯이 대부분의 영상에 대해서 기존의 고속 탐색 알고리듬과 비슷한 수준의 PSNR과 MSE를 유지하며 특히 다이아몬드 탐색 기법의 성능을 향상시킨 십자형 다이아몬드 탐색 기법, 새로운 십자형 다이아몬드 탐색 기법과 비교하였을 때, "football," "bus," 그리고 "Stefan"과 같이 움직임이 많은 영상에서는 오히려 PSNR과 MSE가 더 좋음을 알 수 있다. As shown in Tables 11 and 12, the proposed search algorithm maintains PSNR and MSE similar to the existing fast search algorithm for most images. Compared with the search technique, PSNR and MSE are better for moving images such as "football," "bus," and "Stefan."
표 13에 나타나 있는 것처럼 탐색점의 수에 관해서는 3단계 탐색 기법과 비교하였을 때는 평균적으로 블록당 16.35의 탐색점의 수를 감소시키고 다이아몬드 탐색 기법과 비교하였을 때는 6.92의 탐색점의 수를 감소시켰다. 그리고 십자 다이아몬드 탐색 기법, 새로운 십자 다이아몬드 탐색 기법과 비교하였을 때에도 평균 4.27에서 0.85까지 탐색점의 수를 감소시키는 것을 볼 수 있다.As shown in Table 13, the number of search points is reduced on average by 16.35 search points per block when compared to the three-stage search method, and by 6.92 search points when compared with the diamond search method. . And when compared with the cross diamond search method and the new cross diamond search method, the number of search points is reduced from 4.27 to 0.85 on average.
이상에서 상세하게 설명한 바와 같이, 본 발명의 실시예에 의하면, 현재 블록과 주변블록의 공간적 상관성을 높다는 것을 착안하여, 주변블록들의 움직임 벡터, 탐색점의 수, 및/또는 SAD를 이용하여 현재 블록의 움직임 정도를 예측하며, 예측 결과에 따라서 최적의 고속 블록 정합 기법을 적용한다. 특히, 본 발명의 일 실시예에 의하면, 현재 블록의 움직임 정도에 따라서 UCDS, DS, 및/또는 CTSS 알고리즘 중에 가장 적절한 알고리듬을 선택하여 움직임 추정을 수행함으로서 움직임 벡터를 고속으로 추정할 수 있다. 이러한 본 발명의 실시예에 의하면, 기존에 제안된 고속 블록 정합 알고리즘만큼 좋은 화질을 유지하면서 보다 적은 계산량으로 보다 신속하게 정합 블록을 찾을 수가 있다.As described in detail above, according to an embodiment of the present invention, in view of the high spatial correlation between the current block and the neighboring block, the current block using the motion vector, the number of search points, and / or the SAD of the neighboring blocks. We estimate the degree of motion and apply the optimal fast block matching technique according to the prediction result. In particular, according to an embodiment of the present invention, the motion vector may be estimated at high speed by selecting the most appropriate algorithm among the UCDS, DS, and / or CTSS algorithms according to the degree of motion of the current block to perform motion estimation. According to this embodiment of the present invention, it is possible to find a matching block more quickly with less computation while maintaining the same image quality as the fast block matching algorithm proposed previously.
도 1a는 3단계 탐색 기법에 따른 움직임 추정의 패턴을 보여주는 도면이다.1A is a diagram illustrating a pattern of motion estimation according to a three-stage search technique.
도 1b는 ±7 픽셀 범위의 탐색 영역에서 3단계 탐색 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여주는 도면이다.FIG. 1B is a diagram illustrating the minimum number of search points for each pixel when using a three-stage search technique in a search region in a range of ± 7 pixels.
도 2a는 새로운 3단계 탐색 기법에 따른 움직임 추정의 패턴을 보여주는 도면이다.2A is a diagram illustrating a pattern of motion estimation according to a new three-stage search technique.
도 2b는 ±7 픽셀 범위의 탐색 영역에서 새로운 3단계 탐색 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여주는 도면이다.FIG. 2B is a diagram showing the minimum number of search points for each pixel when using the new three-stage search technique in a search region in the ± 7 pixel range.
도 3a는 4단계 탐색 기법에 따른 움직임 추정의 패턴을 보여주는 도면이다.3A is a diagram illustrating a pattern of motion estimation according to a four-stage search technique.
도 3b는 ±7 픽셀 범위의 탐색 영역에서 4단계 탐색 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여주는 도면이다.FIG. 3B is a diagram illustrating the minimum number of search points for each pixel when using a four-stage search technique in a search region in a range of ± 7 pixels.
도 4a는 BBGDS(Block-Based Gradient Search) 기법에 따른 움직임 추정의 패턴을 보여주는 도면이다.4A is a diagram illustrating a pattern of motion estimation according to a block-based gradient search (BBGDS) technique.
도 4b는 ±7 픽셀 범위의 탐색 영역에서 BBGDS 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여주는 도면이다.FIG. 4B is a diagram showing the minimum number of search points for each pixel when using the BBGDS technique in the search region in the range of ± 7 pixels.
도 5a는 다이아몬드 탐색 기법에 따른 움직임 추정의 패턴을 보여주는 도면이다.5A is a diagram illustrating a pattern of motion estimation according to a diamond search technique.
도 5b는 ±7 픽셀 범위의 탐색 영역에서 다이아몬드 탐색 기법을 사용할 때 각 픽셀의 최소 탐색점의 수를 보여주는 도면이다.FIG. 5B shows the minimum number of search points for each pixel when using the diamond search technique in a search region in the range of ± 7 pixels.
도 6은 본 발명의 일 실시예에 따른 움직임 추정 방법을 보여 주는 흐름도이 다.6 is a flowchart illustrating a motion estimation method according to an embodiment of the present invention.
도 7은 본 발명의 실시예에 따라서 현재 블록의 움직임 정도를 예측하는데 이용되는 주변블록들의 위치를 보여 주는 도면이다.7 is a diagram illustrating the positions of neighboring blocks used to predict the degree of motion of the current block according to an embodiment of the present invention.
도 8a는 ±7의 픽셀 탐색 범위에서의 3단계 탐색 기법, 새로운 3단계 탐색 기법, 4단계 탐색 기법, BBGDS 기법, 및 다이아몬드 탐색 기법을 고려해 보았을 때, 픽셀당 최소의 탐색점의 수를 보여주는 도면이다. FIG. 8A shows the minimum number of search points per pixel when considering a three-step search technique, a new three-step search technique, a four-step search technique, a BBGDS technique, and a diamond search technique in a pixel search range of ± 7. FIG. to be.
도 8b는 각 픽셀에서 최소 탐색점의 수을 가지게 하는 고속 탐색 알고리즘의 종류를 보여주는 도면이다.FIG. 8B is a diagram illustrating a kind of fast searching algorithms having a minimum number of search points in each pixel.
도 9는 본 발명의 다른 실시예에 따른 움직임 추정 방법을 보여 주는 흐름도이다. 9 is a flowchart illustrating a motion estimation method according to another embodiment of the present invention.
도 10a 내지 도 10f는 개선된 십자형 다이아몬드 탐색 기법(UCDS)에 따른 움직임 추정의 패턴을 보여주는 도면이다.10A-10F illustrate patterns of motion estimation according to an improved cross diamond search technique (UCDS).
도 11a 및 도 11b는 십자형 3단계 탐색 기법(CTSS)에 따른 움직임 추정의 패턴을 보여주는 도면이다.11A and 11B illustrate a pattern of motion estimation according to a crosswise three-step search technique (CTSS).
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070120067A KR100924641B1 (en) | 2007-11-23 | 2007-11-23 | Fast block matching procedure for motion estimation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070120067A KR100924641B1 (en) | 2007-11-23 | 2007-11-23 | Fast block matching procedure for motion estimation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090053291A KR20090053291A (en) | 2009-05-27 |
KR100924641B1 true KR100924641B1 (en) | 2009-11-02 |
Family
ID=40860816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070120067A KR100924641B1 (en) | 2007-11-23 | 2007-11-23 | Fast block matching procedure for motion estimation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100924641B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640939A (en) * | 2024-01-25 | 2024-03-01 | 宁波康达凯能医疗科技有限公司 | Method for discriminating motion estimation search mode for inter-frame image |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003324743A (en) | 2002-05-08 | 2003-11-14 | Canon Inc | Motion vector searching apparatus and motion vector searching method |
US20060120452A1 (en) * | 2004-12-02 | 2006-06-08 | Eric Li | Fast multi-frame motion estimation with adaptive search strategies |
-
2007
- 2007-11-23 KR KR1020070120067A patent/KR100924641B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003324743A (en) | 2002-05-08 | 2003-11-14 | Canon Inc | Motion vector searching apparatus and motion vector searching method |
US20060120452A1 (en) * | 2004-12-02 | 2006-06-08 | Eric Li | Fast multi-frame motion estimation with adaptive search strategies |
Also Published As
Publication number | Publication date |
---|---|
KR20090053291A (en) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8391362B2 (en) | Motion vector estimation apparatus and motion vector estimation method | |
US20200014952A1 (en) | Device and method for fast block-matching motion estimation in video encoders | |
JP5422124B2 (en) | Reference picture selection method, image encoding method, program, image encoding device, and semiconductor device | |
US8457198B2 (en) | Method of and apparatus for deciding encoding mode for variable block size motion estimation | |
Grecos et al. | Fast inter mode prediction for P slices in the H264 video coding standard | |
Zhou et al. | Fast variable block-size motion estimation algorithm based on merge and slit procedures for H. 264/MPEG-4 AVC | |
US20040156437A1 (en) | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder | |
KR100560843B1 (en) | Method and Apparatus for Determining Search Range for Adaptive Motion Vector for Use in Video Encoder | |
KR100994768B1 (en) | Motion estimation method for encoding motion image, and recording medium storing a program to implement thereof | |
Liu et al. | H. 264/AVC video error concealment algorithm by employing motion vector recovery under cloud computing environment | |
KR100912429B1 (en) | Image search method for reducing computational complexity of motion estimation | |
KR20050097386A (en) | Motion estimation apparatus and method with optmized operation complexity | |
KR100924641B1 (en) | Fast block matching procedure for motion estimation | |
Bachu et al. | Adaptive order search and tangent-weighted trade-off for motion estimation in H. 264 | |
KR101242560B1 (en) | Device and method for adjusting search range | |
Alfonso et al. | Adaptive GOP size control in H. 264/AVC encoding based on scene change detection | |
Manikandan et al. | Motion estimation method for video compression-an overview | |
US20130170565A1 (en) | Motion Estimation Complexity Reduction | |
KR100628333B1 (en) | Method and device for providing selective motion estimation for fast video encoding | |
Kondo et al. | A motion compensation technique using sliced blocks and its application to hybrid video coding | |
KR100413002B1 (en) | Apparatus and method for block matching by using dispersed accumulate array in video coder | |
Soroushmehr et al. | Simple and efficient motion estimation algorithm by continuum search | |
Lee et al. | Fast inter mode decision using motion vector-based moving window (MVMW) | |
Yusuf et al. | A new fast inter mode decision algorithm in H. 264/AVC video coding | |
Kulkarni et al. | A Two-Step Methodology for Minimization of Computational Overhead on Full Search Block Motion Estimation. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121011 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130930 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141008 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20151012 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20161004 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |