KR20170111471A - Motion estimation scheme based on Single Instruction Multiple Data - Google Patents

Motion estimation scheme based on Single Instruction Multiple Data Download PDF

Info

Publication number
KR20170111471A
KR20170111471A KR1020160036985A KR20160036985A KR20170111471A KR 20170111471 A KR20170111471 A KR 20170111471A KR 1020160036985 A KR1020160036985 A KR 1020160036985A KR 20160036985 A KR20160036985 A KR 20160036985A KR 20170111471 A KR20170111471 A KR 20170111471A
Authority
KR
South Korea
Prior art keywords
search
motion estimation
search box
present
point
Prior art date
Application number
KR1020160036985A
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 KR1020160036985A priority Critical patent/KR20170111471A/en
Publication of KR20170111471A publication Critical patent/KR20170111471A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability

Abstract

본 발명의 실시 예들은 고속 부호화를 위한 움직임 추정 방안에 관한 것으로, 본 발명의 일 실시 예에 따른 SIMD 기반의 움직임 추정 방법은, 하나의 SIMD 연산으로 처리될 수 있는 크기의 탐색 박스를 설정하는 단계; 상기 설정된 탐색 박스의 중심점 좌표가 정수가 되도록 보정하는 단계; 및 상기 중심점 좌표가 보정된 탐색 박스를 이용하여 움직임 추정을 수행하는 단계를 포함하되, 상기 움직임 추정을 수행하는 단계는, 하나의 픽셀에 대한 SAD 평균값 또는 움직임 벡터가 상기 탐색 박스의 가장자리에 존재하는지 여부에 따라, 점 탐색 방식을 적응적으로 적용하는 단계를 포함한다. 본 발명의 실시 예들에 따르면, 움직임 추정을 위한 연산량을 크게 줄일 수 있기 때문에 부화화 속도를 크게 향상시킬 수 있다. Embodiments of the present invention relate to a motion estimation method for fast encoding, and a SIMD-based motion estimation method according to an embodiment of the present invention includes setting a search box of a size that can be processed by one SIMD operation ; Correcting the center point coordinates of the set search box to be an integer; And performing motion estimation using the search box in which the center point coordinates are corrected, wherein performing the motion estimation comprises: determining whether a SAD average value or a motion vector for one pixel exists at an edge of the search box And adaptively applying a point search scheme depending on whether or not the point search method is used. According to embodiments of the present invention, since the amount of computation for motion estimation can be greatly reduced, the speed of hatching can be greatly improved.

Description

SIMD 기반 움직임 추정 방법{Motion estimation scheme based on Single Instruction Multiple Data}[0001] The present invention relates to a motion estimation scheme based on single instruction multiple data

본 발명의 실시 예들은, 고속 부호화를 위한 움직임 추정 방안에 관한 것이다. Embodiments of the present invention relate to a motion estimation method for fast encoding.

ITU-T/ISO/IEC JCT-VC (Joint Collaborative Team on Video Coding)에서는 AVC/H.264 대비 동일한 화질에서 2배 이상의 부호화 효율을 가지는 HEVC (High Efficiency Video Coding) 비디오 부호화 표준 기술을 개발하였다. HEVC 기술에서는 높은 부호화 성능을 달성하기 위해서 많은 기술들이 추가되었고, 이로 인해 부호화기의 복잡도가 크게 증가하였다. 따라서, HEVC 기술이 시장에서 활용되기 위해서는 부호화기의 복잡도 감소를 통한 부호화 속도 개선이 필요하다. In ITU-T / ISO / IEC Joint Collaborative Team on Video Coding (JCT-VC), we developed a HEVC (High Efficiency Video Coding) video coding standard technology that has twice as much coding efficiency as AVC / H.264 at the same image quality. In HEVC technology, many techniques have been added to achieve high coding performance, which has greatly increased the complexity of the encoder. Therefore, in order for the HEVC technology to be utilized in the market, it is necessary to improve the coding speed by reducing the complexity of the encoder.

이러한 이유로, 움직임 추정을 고속화 하기 위한 여러 가지 방법들이 제안 되었으나, 이러한 방법들은 기존 부호화 압축 등에서 사용되던 방법과 크게 다르지 않은데다, 특히 4K UHD (Ultra High Definition)에 적용하기에는 적합하지 않는 경우도 많다. HEVC의 참조 소프트웨어에서는 TZSearch 방법을 고속 부호화를 위한 움직임 추정 방법으로 제안하고 있다. TZSearch 방법은 패턴 기반의 움직임 추정이 국소 최소점에서 빠져 나오지 못할 경우를 대비하여, 패턴 기반의 움직임 추정에 점 방식 탐색 (Raster search) 방식을 추가하여 국소 최소점에 대한 대비를 하고 있다. 하지만 이러한 방법은 기본적으로 상용 CPU에서 제공하는 부호화 기법들을 충분히 활용하지 못할 뿐 아니라, 점 방식 탐색의 경우 탐색 영역이 늘어남에 따라 탐색을 위한 연산수가 그 제곱으로 늘어나게 되는 단점이 있어, 4K UHD 영상의 실시간 부호화를 어렵게 만든다. For this reason, various methods for speeding up the motion estimation have been proposed. However, these methods are not significantly different from those used in conventional encoding compression, and in many cases, they are not suitable for application to 4K UHD (Ultra High Definition). HEVC's reference software proposes TZSearch as a motion estimation method for fast coding. The TZSearch method compares the local minimum point by adding a raster search method to the pattern-based motion estimation in case that the pattern-based motion estimation can not escape from the local minimum point. However, this method basically fails to fully utilize the encoding techniques provided by the commercial CPU, and in the case of the point-to-point search, the number of operations for searching increases as the search area increases. Making real-time encoding difficult.

국내 공개 특허 제 2013-0067097호 (움직임 추정장치 및 그 방법)Korean Patent Publication No. 2013-0067097 (Motion Estimation Apparatus and Method Thereof)

본 발명의 실시 예들은, 고속 부호화 시에, 움직임 추정 연산량을 줄이기 위하여 움직임 추정을 위한 탐색점의 개수를 줄이면서도 전체적인 압축 성능이 저하되지 않도록 하는 방안을 제공한다. Embodiments of the present invention provide a method of reducing the overall compression performance while reducing the number of search points for motion estimation in order to reduce the amount of motion estimation computation during fast encoding.

본 발명의 일 실시 예에 따른 SIMD 기반의 움직임 추정 방법은, 하나의 SIMD 연산으로 처리될 수 있는 크기의 탐색 박스를 설정하는 단계; 상기 설정된 탐색 박스의 중심점 좌표가 정수가 되도록 보정하는 단계; 및 상기 중심점 좌표가 보정된 탐색 박스를 이용하여 움직임 추정을 수행하는 단계를 포함하되, 상기 움직임 추정을 수행하는 단계는, 하나의 픽셀에 대한 SAD 평균값 또는 움직임 벡터가 상기 탐색 박스의 가장자리에 존재하는지 여부에 따라, 점 탐색 방식을 적응적으로 적용하는 단계를 포함한다. A SIMD-based motion estimation method according to an embodiment of the present invention includes: setting a search box of a size that can be processed by one SIMD operation; Correcting the center point coordinates of the set search box to be an integer; And performing motion estimation using the search box in which the center point coordinates are corrected, wherein performing the motion estimation comprises: determining whether a SAD average value or a motion vector for one pixel exists at an edge of the search box And adaptively applying a point search scheme depending on whether or not the point search method is used.

본 발명의 실시 예들에 따르면, 움직임 추정을 위한 연산량을 크게 줄일 수 있기 때문에 부화화 속도를 크게 향상시킬 수 있다. According to embodiments of the present invention, since the amount of computation for motion estimation can be greatly reduced, the speed of hatching can be greatly improved.

도 1은 다이아몬드 패턴 탐색 방법과 정방형 패턴 탐색 방법을 설명하기 위한 예시도,
도 2는 점 방식 탐색 방법을 설명하기 위한 예시도,
도 3은 본 발명의 일 실시 예에 따른 SIMD 기반의 움직임 추정 방법을 설명하기 위한 흐름도,
도 4는 본 발명의 일 실시 예에 따른 탐색 박스 패턴을 이용하는 경우와 종래의 다이아몬드 탐색 패턴을 이용하는 경우의 탐색 범위를 비교한 예를 도시한 도면,
도 5는 오프셋이 적용된 탐색 박스의 예를 보여주는 예시도,
도 6은 탐색 박스의 중심점 갱신 과정을 설명하기 위한 예시도,
도 7은 본 발명의 일 실시 예에 따른 SIMD 기반의 움직임 추정 장치를 설명하기 위한 블록도.
1 is an exemplary diagram for explaining a diamond pattern search method and a square pattern search method,
2 is an exemplary diagram for explaining a point-based search method,
FIG. 3 is a flowchart illustrating a SIMD-based motion estimation method according to an embodiment of the present invention. FIG.
FIG. 4 is a diagram illustrating an example in which a search range is compared between a case of using a search box pattern according to an embodiment of the present invention and a case of using a conventional diamond search pattern,
5 is an example showing an example of a search box to which an offset is applied,
6 is an exemplary diagram for explaining a process of updating a center point of a search box,
FIG. 7 is a block diagram illustrating a SIMD-based motion estimation apparatus according to an embodiment of the present invention; FIG.

이하에서, 본 발명의 실시 예들을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. In the following description of the embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 설명한다. Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

본 발명의 실시 예들은 움직임 추정 연산을 효율적으로 수행하여 고속 부호화를 고속으로 수행하는 방안을 제공한다. 본 발명의 실시 예들은, HEVC 부호화에 적용될 수 있다. Embodiments of the present invention provide a method for performing fast motion coding at high speed by efficiently performing motion estimation computation. Embodiments of the present invention can be applied to HEVC coding.

일반적인 HEVC 부호화기는, 전체 영상에 대한 움직임 추정 및 TZSearch로 명명된 패턴 기반 움직임 추정을 제공한다. 이 중에서, 전체 영상에 대한 움직임 추정은, 일반적으로 널리 알려진 방법이기 때문에 그 설명을 생략한다. A typical HEVC encoder provides motion estimation for the entire image and pattern-based motion estimation named TZSearch. Among them, the motion estimation for the entire image is a generally known method, and the description thereof will be omitted.

도 1은 다이아몬드 패턴 탐색 방법과 정방형 패턴 탐색 방법을 설명하기 위한 예시도이다. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is an exemplary diagram for explaining a diamond pattern search method and a square pattern search method. FIG.

HEVC 참조 소프트웨어에서의 패턴 기반 움직임 추정에는, 다이아몬드 패턴 탐색 방법과 정방형 패턴 탐색 방법이 이용될 수 있다. 각각의 방법에서 패턴 탐색 영역은, n-iteration(반복 횟수)에 대하여, 2n의 크기로 커진다. 그러므로 HEVC 참조 소프트웨어에서 제공하는 기본 탐색 영역인 [-64, 64] 영역까지의 패턴 탐색은 7 iteration으로 가능하며 정방형 패턴 탐색 방법 및 다이아몬드 패턴 탐색 방법 모두 8 x n +5 개의 탐색점을 이용하여 정수 화소 움직임 추정을 수행하게 된다. 3840x2160 해상도를 가지는 4K UHD 영상의 경우, 움직임이 크게 나타나는 영상에 대하여는 기본 탐색 영역으로는 불충분하여 [-256, 256]으로 탐색 영역을 확장하여야 하며, 정수 화소 움직임 추정을 위한 탐색점의 개수는 iteration의 수가 9로 늘어나면서 최대 77개의 탐색점을 가지게 된다. 하지만 이 과정에서 탐색점 사이의 거리가 늘어나게 되면서 국소 최소점(Local minima)에 빠질 확률이 커지게 되어 국소 최소점을 찾기 위한 패턴 탐색의 iteration 수가 5 이상이 되고, 만약 탐색 영역이 [-32, 32] 이상이면 점 방식 탐색을 수행한다.For pattern-based motion estimation in HEVC reference software, a diamond pattern search method and a square pattern search method can be used. In each method, the pattern search area becomes large in size of 2n with respect to the n-iteration (the number of repetitions). Therefore, the pattern search up to the [-64, 64] area, which is the basic search area provided by the HEVC reference software, is possible with 7 iterations, and the square pattern search method and the diamond pattern search method use 8 × n + Thereby performing motion estimation. For a 4K UHD image with a resolution of 3840x2160, the search area should be extended to [-256, 256] for the image with large motion, which is insufficient for the basic search area. The number of search points is increased to 9 and the maximum number of search points is 77. However, as the distance between search points increases, the number of iterations of the pattern search to find the local minimum point becomes 5 or more. If the search area is [-32, 32], a point-based search is performed.

도 2는 점 방식 탐색 방법을 설명하기 위한 예시도이다. 2 is an exemplary diagram for explaining a point-based search method.

점 방식 탐색의 경우, HEVC 참조 소프트웨어에서 탐색점과 탐색점 사이의 간격은 5픽셀로 구현되어 있다. 따라서, 점 방식 탐색 방법에서, 탐색 범위가 [-64,64]의 경우에 탐색점은 최대 625개이며, [-256. 256]의 경우 탐색점은 최대 10404개로 크게 늘어난다. 실험적으로 해상도 1920x1080의 HD급 영상의 경우, 탐색 범위가 [-64,64]가 되어도 충분하지만, 3840x2160의 4K UHD 영상의 경우 최소 [-128,128]에서 최대 [-256, 256]의 탐색 범위를 가져야 한다. 그 이유는 탐색 범위가 작을수록, 4K UHD 영상내부의 객체의 움직임 추정이 충분하지 않아, 영상과 영상 사이의 간격이 큰 경우에 많은 CU(Coding Unit)의 예측 모드가 INTRA 모드로 추정되고 이 때문에 비트량이 급격히 증가하는 경우가 발생한다. 하지만, 탐색 범위가 크면 클수록 부호화 시간이 늘어나게 되는데, 보통 [-64,64]의 경우에 비하여 [-256,256]의 탐색 범위의 연산 시간이 최소 2배 가량 증가하게 된다. For point-based search, the spacing between search and search points in the HEVC reference software is 5 pixels. Therefore, in the point-based search method, when the search range is [-64,64], the maximum search point is 625, and [-256. 256], the search point is greatly increased to 10404 at maximum. Experimentally, it is sufficient that the search range is [-64,64] for a resolution of 1920x1080 HD, but for a 4K UHD image of 3840x2160 it should have a search range of minimum [-128,128] to maximum [-256,256] do. The reason is that as the search range is smaller, the motion estimation of the object in the 4K UHD image is insufficient, and the prediction mode of many CUs (Coding Unit) is estimated to be INTRA mode when the distance between the image and the image is large The bit amount may increase rapidly. However, the larger the search range, the greater the encoding time. The computation time of the search range [-256,256] is at least 2 times larger than that of [-64,64].

움직임 추정을 위한 참조 영상이 하나인 경우에 사용되는 패턴 탐색 방법과 달리, 참조 영상이 두 개 이상의 경우가 되는 Bi-Prediction의 경우에는 참조 영상이 하나인 경우보다 영상간 시간 차이가 작거나, 이미 하나의 참조 영상에서 패턴 탐색에 의한 움직임 예측 정보가 존재하는 경우이기 때문에, 광범위한 움직임 예측을 하지 않고 국소적인 탐색 영역에 대하여 움직임 예측을 수행한다. 따라서, 이러한 경우에, HEVC 참조 소프트웨어는 탐색 범위를 4픽셀을 주어 탐색을 수행하지만, 고속화를 위해 탐색 범위를 1픽셀로 줄인다 하여도 화질 열화는 그렇게 심각하지 않다.  Unlike the pattern search method used when there is only one reference image for motion estimation, in the case of Bi-Prediction in which there are two or more reference images, the time difference between images is smaller than that in the case of one reference image, Since motion prediction information based on pattern search exists in one reference image, motion prediction is performed on a local search region without performing extensive motion prediction. Thus, in such a case, the HEVC reference software performs the search with a search range of 4 pixels, but even if the search range is reduced to 1 pixel for acceleration, the image deterioration is not so serious.

따라서, 기본 값으로 정해진 탐색 파라미터 하에서, 움직임 벡터

Figure pat00001
에 대한 SAD (Sum of Absolute Difference) 값의 정의가 <수학식 1>과 같을 때, HEVC 참조 소프트웨어의 정수 화소 움직임 추정 알고리즘은 <표 1>과 같이 정의된다.Therefore, under the search parameters determined as the default values,
Figure pat00001
The integer motion estimation algorithm of the HEVC reference software is defined as shown in Table 1, when the definition of the sum of absolute difference (SAD) values is equal to Equation (1).

Figure pat00002
Figure pat00002

Figure pat00003
Figure pat00003

여기서, VA는 최적 AMVP (Advanced Motion Vector Predictor) 후보 벡터, V0는 제로 벡터, Vs는 시작 벡터, VR은 점 방식 탐색으로 찾아진 최소 벡터를 의미한다. Here, V A denotes an optimal AMVP (Advanced Motion Vector Predictor) candidate vector, V 0 denotes a zero vector, V s denotes a start vector, and V R denotes a minimum vector found by a point-based search.

한편, 최근의 상용 CPU (Central Processing Unit) 및 AP (Application Processor)들은, 별도의 영상 부호화 솔루션을 사용하지 않고 영상 부호화를 수행하기 위해 각종 SIMD (Single Instruction Multiple Data) 솔루션들을 탑재하고 있다. 예를 들어, Intel 계열의 CPU의 경우 8비트 화소들에 대하여 한번에 8개의 가로 축 방향의 SAD 연산을 처리할 수 있도록 하는 SIMD 명령어(_mm_mpsadbw_epu8)를 지원하고 있다. Recently, a commercial central processing unit (CPU) and an application processor (AP) have implemented various SIMD (Single Instruction Multiple Data) solutions to perform image encoding without using a separate image encoding solution. For example, Intel CPUs support SIMD instructions (_mm_mpsadbw_epu8) to process 8 horizontal axis SAD operations on 8 bit pixels at a time.

본 발명의 실시 예들에서는, 기존 탐색점 방식에 비하여 움직임 추정을 위한 연산량을 효과적으로 줄이기 위해 SIMD 기반의 움직임 추정 방안을 제안한다. 이를 위하여, 본 발명의 실시 예들에서는, 일정한 크기를 갖는 탐색 박스(search box)를 정의하고, 정의된 탐색 박스를 이용하여 움직임 추정을 수행할 수 있도록 한다. Embodiments of the present invention propose an SIMD-based motion estimation scheme to effectively reduce the amount of computation for motion estimation as compared with the conventional search point method. To this end, in embodiments of the present invention, a search box having a predetermined size is defined, and the motion estimation can be performed using the defined search box.

도 3은 본 발명의 일 실시 예에 따른 SIMD 기반의 움직임 추정 방법을 설명하기 위한 흐름도이다. 실시 예에 따라, 도 3에 도시된 단계들 중 적어도 하나는 생략될 수 있다. 3 is a flowchart illustrating a SIMD-based motion estimation method according to an embodiment of the present invention. Depending on the embodiment, at least one of the steps shown in Fig. 3 may be omitted.

단계(301)에서, 탐색 박스가 설정될 수 있다. 탐색 박스는, 움직임 추정을 위한 기본 패턴으로 이용될 수 있다. 탐색 박스는, SIMD 처리를 위하여 임의의 크기를 갖도록 설정될 수 있다. 일 실시 예에서, 탐색 박스는 9x8의 크기를 가질 수 있다. 즉, 탐색 박스는, 가로축 방향의 8개의 처리선과, 1개의 중앙선을 포함하는 세로축 방향의 9개의 SIMD 처리선을 가질 수 있다. 여기서, 중앙선은, 세로축 방향의 기준 SIMD 처리선으로서, 움직임 벡터의 위치를 나타낼 때 기준이 된다. In step 301, a search box may be set. The search box can be used as a basic pattern for motion estimation. The search box may be set to have any size for SIMD processing. In one embodiment, the search box may have a size of 9x8. That is, the search box may have eight processing lines in the horizontal axis direction and nine SIMD processing lines in the vertical axis direction including one center line. Here, the center line is a reference SIMD processing line in the vertical axis direction, which serves as a reference when representing the position of a motion vector.

도 4는 본 발명의 일 실시 예에 따른 탐색 박스 패턴을 이용하는 경우와 종래의 다이아몬드 탐색 패턴을 이용하는 경우의 탐색 범위를 비교한 예를 도시한 도면이다. 제안된 탐색 박스를 이용하는 경우, 종래의 방식에 비하여 8배 빠른 연산이 가능하다. 따라서, 세로 방향의 연산이 9번 수행되더라도, 종래의 방식에 비하여 약 1.1 배의 연산량으로, 종래의 방식에서 8개의 탐색점을 찾는 동안 9배가 많은 72개의 탐색점을 찾을 수 있다. FIG. 4 is a diagram showing an example in which a search range is compared between a case of using a search box pattern according to an embodiment of the present invention and a case of using a conventional diamond search pattern. When the proposed search box is used, computation can be performed 8 times faster than the conventional method. Therefore, even if the calculation in the vertical direction is performed nine times, 72 search points can be found, which is about nine times as many as the calculation amount of the conventional method, while searching eight search points in the conventional method.

나아가, Bi-Prediction의 경우, 4픽셀의 탐색 범위에 대하여 단일 연산으로 최적점을 탐색할 수 있으며, 이는 종래의 방법과 비교할 때 2배 정도 빠른 속도이다. Furthermore, in the case of Bi-Prediction, the optimum point can be searched by a single operation for a search range of 4 pixels, which is about twice as fast as the conventional method.

다시 도 3을 참조하면, 단계(303)에서, 중심점 보정이 수행될 수 있다. 전술한 9x8 크기의 탐색 박스는, 가로축의 화소수가 8이고 세로축의 화소수가 9이기 때문에 중심점 (i, j)가 (3.5, 4)가 된다. 따라서, 중심점 좌표를 정수로 맞추기 위해서 적절한 오프셋을 적용하여 중심점 (i, j)가 (3, 4) 또는 (4, 4) 가 되도록 할 필요가 있다. 오프셋이 적용된 탐색 박스의 일 예를 도 5에 도시하였다. Referring back to FIG. 3, in step 303, a center point correction may be performed. The center point (i, j) is (3.5, 4) because the number of pixels on the horizontal axis is eight and the number of pixels on the vertical axis is nine. Therefore, in order to set the center point coordinates to an integer, it is necessary to apply appropriate offsets so that the center point (i, j) becomes (3, 4) or (4, 4). An example of a search box to which an offset is applied is shown in FIG.

단계(305)에서, 탐색 박스 기반의 움직임 추정이 수행될 수 있다. 움직임 추정은, SIMD 명령어로 처리될 수 있다. 한편, 종래의 패턴 탐색의 경우, 3번의 iteration에서 최소점을 찾게 되면 1차 패턴 탐색을 중지하는 것이 일반적이다. 이와 유사하게, 본 발명의 실시 예에서는, 탐색 박스의 경계선 내에서 최소점이 발견되면 탐색을 멈추고, 탐색 박스의 중심점을 이동하여 탐색을 계속 수행할 수 있다. 탐색 박스의 중심점 이동 방법은 <수학식 2>로 정의될 수 있다. In step 305, search box based motion estimation may be performed. The motion estimation can be processed with SIMD instructions. On the other hand, in the conventional pattern search, if the minimum point is found in three iterations, it is common to stop the primary pattern search. Similarly, in the embodiment of the present invention, when a minimum point is found within the boundary of the search box, the search can be stopped, and the search can be continued by moving the center point of the search box. The method of moving the center point of the search box can be defined by Equation (2).

Figure pat00004
Figure pat00004

<수학식 2>에서

Figure pat00005
Figure pat00006
를 만족하는 국소 최소점, d는
Figure pat00007
로 정의되는 값, D는 탐색 박스가 실제 움직여야 하는 Derivation 값(D=4), (i, j)는 탐색 박스내 화소 x의 가로축 및 세로축 좌표로서 <수학식 3>의 범위를 가진다. In Equation (2)
Figure pat00005
silver
Figure pat00006
, D is the local minimum point satisfying
Figure pat00007
(D, 4) where (i, j) is the horizontal axis and ordinate axis coordinates of the pixel x in the search box, and D is a range defined by Equation (3).

Figure pat00008
Figure pat00008

한편, <수학식 2>에서 함수 s(x,y)는 <수학식 4>와 같은 3상 상태 함수이다.On the other hand, the function s (x, y) in Equation (2) is a three-phase state function as shown in Equation (4).

Figure pat00009
Figure pat00009

<수학식 2>를 만족하는 탐색 박스의 중심점 갱신 과정을 도 6에 도시하였다. 도 5에는 첫 번째 iteration에서 탐색 박스의 경계선 내에서 최소점이 발견된 경우를 도시하였다. 탐색 박스의 경계선 내에서 최소점이 발견되었기 때문에, 탐색 박스의 중심점이 Vs(n)에서 Vs(n+1)으로 이동하였음을 알 수 있다. The center point updating process of the search box satisfying Equation (2) is shown in FIG. FIG. 5 shows a case where a minimum point is found within the boundary of the search box in the first iteration. Because the minimum point is found within the boundaries of a search box, it can be seen that the center point of the search box hayeoteum go to V s (n + 1) at the V s (n).

한편, 전술한 탐색 박스 기반의 패턴 탐색의 경우 대체로 3 iteration 에서 탐색 박스 내에 위치하는 최소점을 찾을 수 있다. 그러나, 이렇게 찾은 최소점은 탐색 영역이 협소하기 때문에 HD 혹은, 4K UHD 에서 SAD값이 충분히 작은 최소점이 되지 못할 가능성이 있다. On the other hand, in the case of the above-described search box-based pattern search, the minimum point located in the search box can be found in the 3 iteration. However, since the search range is narrow, the minimum point is not likely to be the smallest point in the HD or 4K UHD where the SAD value is sufficiently small.

따라서, 전술한 탐색 박스 패턴 방식을 보완하기 위하여, 기존의 패턴 탐색 방식(예를 들어, Raster 탐색 방식)과 본 발명의 일 실시 예에 따른 탐색 박스 패턴 탐색 방식을 결합시킬 수 있다. 결합된 패턴 탐색 알고리즘의 일 예를 <표 2>에 나타내었다. Therefore, in order to supplement the above-described search box pattern scheme, it is possible to combine a conventional pattern search scheme (for example, a Raster search scheme) with a search box pattern search scheme according to an embodiment of the present invention. Table 2 shows an example of the combined pattern search algorithm.

Figure pat00010
Figure pat00010

<표 2>는, 탐색 박스 내에서의 움직임 추정 결과 하나의 픽셀에 대한 SAD 평균 값(

Figure pat00011
)이 제 1 설정값(
Figure pat00012
)보다 크거나, 움직임 벡터가 탐색 박스의 가장 자리에 위치하는 경우(
Figure pat00013
)에는, 탐색 박스의 중심점을 갱신하고 움직임 추정을 계속하는 것을 나타낸다(Step 2). 움직임 추정은, iteration 임계값(예를 들어, 3)만큼 수행되거나, 움직임 벡터가 탐색 영역 내에 존재하는 경우에 완료될 수 있다(Step 5). Table 2 shows the SAD average value for one pixel as a result of the motion estimation in the search box
Figure pat00011
Is set to the first set value (
Figure pat00012
), Or when the motion vector is located at the edge of the search box (
Figure pat00013
) Indicates that the center point of the search box is updated and motion estimation is continued (Step 2). The motion estimation may be performed by an iteration threshold (e.g., 3) or may be completed if the motion vector is within the search area (Step 5).

여기서, 만약, 하나의 픽셀에 대한 SAD 평균 값(

Figure pat00014
)이 제 1 설정값(
Figure pat00015
=20)보다 크고 제 2 설정값(30)보다 작다면, 추가적으로 Raster 탐색이 수행되어 최적의 움직임 벡터가 찾아질 수 있다(Step 4). 만약, 하나의 픽셀에 대한 SAD 평균 값(
Figure pat00016
)이 제 2 설정값(30) 이상인 경우라면, 더 이상의 움직임 추정의 의미가 없어 움직임 추정 결과 값이 그대로 유지될 수 있다. Here, if the SAD average value for one pixel (
Figure pat00014
Is set to the first set value (
Figure pat00015
= 20) and smaller than the second set value 30, an additional Raster search may be performed to find the optimal motion vector (Step 4). If the SAD average value for one pixel (
Figure pat00016
Is equal to or greater than the second set value 30, there is no meaning of further motion estimation, and the motion estimation result value can be maintained as it is.

한편, 본 명세서에서 사용된 변수의 정의는 <표 3>과 같다. The definitions of the variables used in this specification are shown in Table 3.

Figure pat00017
Figure pat00017

본 발명의 실시 예들은, 컴퓨터 시스템 내에, 예를 들어, 컴퓨터 판독가능 기록 매체로 구현될 수 있다. 도 7에 도시된 바와 같이, 컴퓨터 시스템(700)은 하나 이상의 프로세서(710), 메모리(720), 저장부(730), 사용자 인터페이스 입력부(740) 및 사용자 인터페이스 출력부(750) 중 적어도 하나 이상의 요소를 포함할 수 있으며, 이들은 버스(760)를 통해 서로 통신할 수 있다. 또한, 컴퓨터 시스템(700)은 네트워크에 접속하기 위한 네트워크 인터페이스(770)를 또한 포함할 수 있다. 프로세서(710)는 메모리(720) 및/또는 저장소(730)에 저장된 처리 명령어를 실행시키는 CPU 또는 반도체 소자일 수 있다. 메모리(720) 및 저장부(730)는 다양한 유형의 휘발성/비휘발성 기억 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(724) 및 RAM(725)을 포함할 수 있다. Embodiments of the invention may be embodied in a computer system, for example, a computer-readable recording medium. 7, the computer system 700 may include one or more processors 710, a memory 720, a storage 730, a user interface input 740, and a user interface output 750, Elements, which may communicate with each other via bus 760. [ In addition, the computer system 700 may also include a network interface 770 for connecting to a network. The processor 710 may be a CPU or a semiconductor device that executes processing instructions stored in the memory 720 and / or the storage 730. Memory 720 and storage 730 may include various types of volatile / non-volatile storage media. For example, the memory may include a ROM 724 and a RAM 725.

이에 따라, 본 발명의 실시 예들은 컴퓨터로 구현되는 방법 또는 컴퓨터 실행 가능 명령어들이 저장된 비휘발성 컴퓨터 기록 매체로 구현될 수 있다. 상기 명령어들은 프로세서에 의해 실행될 때 본 발명의 적어도 일 실시 예에 따른 방법을 수행할 수 있다. Accordingly, embodiments of the invention may be embodied in a computer-implemented method or in a non-volatile computer storage medium having stored thereon computer-executable instructions. The instructions, when executed by a processor, may perform the method according to at least one embodiment of the present invention.

Claims (1)

하나의 SIMD 연산으로 처리될 수 있는 크기의 탐색 박스를 설정하는 단계;
상기 설정된 탐색 박스의 중심점 좌표가 정수가 되도록 보정하는 단계; 및
상기 중심점 좌표가 보정된 탐색 박스를 이용하여 움직임 추정을 수행하는 단계를 포함하되,
상기 움직임 추정을 수행하는 단계는,
하나의 픽셀에 대한 SAD 평균값 또는 움직임 벡터가 상기 탐색 박스의 가장자리에 존재하는지 여부에 따라, 점 탐색 방식을 적응적으로 적용하는 단계를 포함하는
SIMD 기반의 움직임 추정 방법.
Setting a search box of a size that can be processed by one SIMD operation;
Correcting the center point coordinates of the set search box to be an integer; And
And performing motion estimation using the search box in which the center point coordinates are corrected,
Wherein performing the motion estimation comprises:
Adapting the point search scheme adaptively according to whether the SAD average value or motion vector for one pixel is at the edge of the search box
SIMD - based motion estimation method.
KR1020160036985A 2016-03-28 2016-03-28 Motion estimation scheme based on Single Instruction Multiple Data KR20170111471A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160036985A KR20170111471A (en) 2016-03-28 2016-03-28 Motion estimation scheme based on Single Instruction Multiple Data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160036985A KR20170111471A (en) 2016-03-28 2016-03-28 Motion estimation scheme based on Single Instruction Multiple Data

Publications (1)

Publication Number Publication Date
KR20170111471A true KR20170111471A (en) 2017-10-12

Family

ID=60141172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160036985A KR20170111471A (en) 2016-03-28 2016-03-28 Motion estimation scheme based on Single Instruction Multiple Data

Country Status (1)

Country Link
KR (1) KR20170111471A (en)

Similar Documents

Publication Publication Date Title
US9262839B2 (en) Image processing device and image processing method
JP5970609B2 (en) Method and apparatus for unified disparity vector derivation in 3D video coding
US20160080770A1 (en) Encoding system using motion estimation and encoding method using motion estimation
WO2016050051A1 (en) Image prediction method and relevant device
US10448036B2 (en) Motion compensation matching for video coding
KR102327942B1 (en) Method and device for determining coding unit partitioning, computing device and readable storage medium
CN103414899A (en) Motion estimation method of video coding
JP7481332B2 (en) Prediction method and apparatus for decoding, and computer storage medium - Patents.com
WO2015085922A1 (en) Method and apparatus for frame rate up-conversion
US20170201767A1 (en) Video encoding device and video encoding method
KR20170111471A (en) Motion estimation scheme based on Single Instruction Multiple Data
US20210243450A1 (en) Spatial block-level pixel activity extraction optimization leveraging motion vectors
KR101299196B1 (en) Apparatus for up-converting frame rate of video signal and method thereof
KR101709894B1 (en) Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same
JP2016052056A (en) Encoding circuit, and encoding method
JP6148146B2 (en) Video encoding apparatus, video encoding method, and video encoding program
WO2023031999A1 (en) Video information processing device, method, and program
US9471992B2 (en) Moving image processing apparatus, moving image processing method, and computer product
US20220272341A1 (en) Decoding device, decoding method, and storage medium
US20170019683A1 (en) Video encoding apparatus and method and video decoding apparatus and method
WO2020227892A1 (en) Non-local intra block copy and parallel coding for motion prediction
JP2016178375A (en) Image processing device, image processing method and image processing program
KR20180101889A (en) Motion estimation method and apparatus
KR20170115809A (en) Apparatus and method for estimating motion