KR101368732B1 - Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof - Google Patents

Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof Download PDF

Info

Publication number
KR101368732B1
KR101368732B1 KR1020120094919A KR20120094919A KR101368732B1 KR 101368732 B1 KR101368732 B1 KR 101368732B1 KR 1020120094919 A KR1020120094919 A KR 1020120094919A KR 20120094919 A KR20120094919 A KR 20120094919A KR 101368732 B1 KR101368732 B1 KR 101368732B1
Authority
KR
South Korea
Prior art keywords
motion vector
macroblock
value
motion
search point
Prior art date
Application number
KR1020120094919A
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 KR1020120094919A priority Critical patent/KR101368732B1/en
Application granted granted Critical
Publication of KR101368732B1 publication Critical patent/KR101368732B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Abstract

The present invention relates to an apparatus for estimating motions for H.264/AVC encoder with high performance which can minimize damages to the images by detecting median and directional nature of movement vectors of adjacent macroblocks when estimating motions, estimating initial searching points, and reducing computational complexity; and can reduce the memory size when performing hardware, and to a method for estimating motions for H.264/AVC encoder. The apparatus for estimating motions for H.264/AVC encoder with high performance comprises: a motion estimation control unit which computates mvp from motion vectors of three adjacent macroblocks for current macroblock in order to set up an initial searching point; an integer pel motion estimation unit which produces the integer pel motion vectors for current macroblock using the initial searching point; and a fractional pel motion estimation unit which produces fractional motion vectors for current macroblock using pixels of reference frame corresponding to the integer motion vector produced from the integer motion estimation unit. [Reference numerals] (100) Motion estimation control unit; (200) Integer pel motion estimation unit; (300) Fractional pel motion estimation unit; (400) Motion vector ram

Description

고성능 H.264/AVC 인코더용 움직임 예측장치 및 움직임 예측방법{APPARATUS FOR ESTIMATING MOTION FOR H.264/AVC ENCODER WITH HIGH PERFORMANCE AND METHOD THEREOF}Motion Prediction Device for High Performance H.264 / ACC Encoder and Motion Prediction Method {APPARATUS FOR ESTIMATING MOTION FOR H.264 / AVC ENCODER WITH HIGH PERFORMANCE AND METHOD THEREOF}

본 발명은 H.264/AVC 인코더를 위한 움직임 예측장치 및 움직임 예측방법에 관한 것으로, 보다 상세하게는, 움직임 예측시 주변 매크로블록의 움직임 벡터들의 중간값과 방향성을 검출하여 초기 탐색점을 예측함으로써, 움직임 예측과 관련한 연산량을 감소시켜 영상의 손상을 최소화하고, 하드웨어 구현시 메모리 크기를 감소시킬 수 있는 고성능 H.264/AVC 인코더용 움직임 예측장치 및 움직임 예측방법에 관한 것이다.
The present invention relates to a motion prediction apparatus and a motion prediction method for an H.264 / AVC encoder. More specifically, the present invention predicts an initial search point by detecting an intermediate value and a direction of motion vectors of a neighboring macroblock during motion prediction. In addition, the present invention relates to a motion prediction apparatus and a motion prediction method for a high performance H.264 / AVC encoder that can reduce image damage by reducing the amount of computation associated with motion prediction and reduce the memory size in hardware implementation.

최근 광대역 전송의 발전으로 유선 또는 무선의 광대역 접속회선이 고속화되고 저장매체가 대용량화되고 있다. 또한, 문자, 음성, 사진, 동영상과 같은 멀티미디어들 역시 보다 좋은 색상, 화질이 요구되어 사용되는 정보량은 시대에 따라 증가하고 있다.
With the recent development of broadband transmission, wired or wireless broadband connection lines have been speeded up and storage media have become large in capacity. In addition, multimedia such as text, voice, pictures, and videos also require better color and image quality, and the amount of information used is increasing with the times.

특히 전송되는 정보가 영상인 경우에는 음성에 비해 발생하는 정보량이 많기 때문에, 영상데이터를 직접 전송하거나 저장하는데 많은 어려움이 있다. 따라서 영상 압축 효율이 높은 기술이 개발되고 있는 실정이다.
In particular, when the information to be transmitted is a large amount of information generated compared to the audio, there is a lot of difficulty in directly transmitting or storing the image data. Therefore, a situation in which high image compression efficiency is being developed.

H.264/AVC는 ITU-T와 ISO/IEC가 공동으로 진행하여 개발한 국제 영상 압축 표준으로써, 매우 높은 데이터 압축률을 가지는 디지털 비디오 코덱 표준으로 기존 표준인 MPEG-1, MPEG-2, MPEG-4 Part 2와 비교했을 때, 같은 화질에서 낮은 비트 레이트를 얻을 수 있도록 개발되었다. 이러한, H.264/AVC는 MPEG-4 비디오 표준에 비해 약 2배 정도 향상된 압축 효율을 제공한다.
H.264 / AVC is an international video compression standard developed jointly by ITU-T and ISO / IEC. It is a digital video codec standard with very high data compression ratio. It is the existing standard MPEG-1, MPEG-2, MPEG- 4 Compared to Part 2, it was developed to get low bit rate at the same quality. This H.264 / AVC provides about twice as much compression efficiency as the MPEG-4 video standard.

특히, H.264/AVC는 영상의 압축효율을 높이기 위해 4x4 블록 단위의 움직임 보상과 1/4 화소 단위의 움직임 예측, 향상된 엔트로피 부호화 방식, 디블록킹필터 등의 새로운 압축 방식을 도입하고 있다.
In particular, H.264 / AVC introduces new compression methods such as 4x4 block motion compensation, 1/4 pixel motion prediction, improved entropy coding, and deblocking filter to improve the compression efficiency of images.

움직임 예측 기술은 영상 압축에서 일반적으로 연산량의 60% 이상을 차지하고 있는 중요한 처리 과정으로, H.264/AVC에서 움직임 예측 기술은 프레임 사이의 시간적 중복성을 제거하기 위해 프레임의 상관관계를 이용할 수 있다.
Motion prediction technology is an important process that generally takes up more than 60% of the computation in image compression. In H.264 / AVC, motion prediction technology can use frame correlation to remove temporal redundancy between frames.

연산량을 줄이기 위한 움직임 예측과 관련한 기술은 지금까지 활발히 진행되고 있으며, 특히 MVFAST(Motion Vector Field Adaptive Search Technique)와 PMVFAST(Predictive Motion Vector Field Adaptive Search Technique) 및 EPZS(Enhanced Predictive Zonal Search)는 현재 매크로블록의 움직임 벡터가 주변 매크로블록의 움직임과 상관관계가 높다는 점을 이용하여 초기 탐색점을 설정함으로써, HD급 영상에서도 높은 성능을 보이고 있다.
Techniques related to motion prediction to reduce the amount of computation have been actively developed, and the motion vector field adaptive search technique (MVFAST), predictive motion vector field adaptive search technique (PMVFAST), and enhanced predictive zonal search (EPZS) are currently macroblocks. The initial search point is set by using that the motion vector of C is highly correlated with the motion of the neighboring macroblocks.

그러나, MVFAST는 2단계 다이아몬드 탐색 방법으로 탐색점이 증가할 수 있고, PMVFAST와 EPZS는 이전 프레임의 움직임 벡터를 사용하기 때문에 하드웨어 구현시 메모리 크기가 증가한다는 문제점이 발생한다.
However, MVFAST can increase the search point by a two-stage diamond search method, and PMVFAST and EPZS use the motion vector of the previous frame, which causes a problem of increasing memory size in hardware implementation.

또한, 메모리 용량을 줄일 수 있는 기술과 관련하여, 공개특허 제10-2008-0067922호는 영상 축소 기능을 갖는 영상 복호화 방법 및 장치에 관한 것으로, 복호화된 영상 신호를 인트라 블록 및 인터 블럭으로 구분하고, 그 구분된 인트라 블록 영상과 인터 블록영상에 대해 선택적으로 안티-엘리어싱 필터링을 수행함으로써 움직임에 적응적인 영상 축소 기능을 수행할 수 있는 기술이 개시되고 있다.
In addition, in relation to a technology capable of reducing memory capacity, Korean Patent Laid-Open Publication No. 10-2008-0067922 relates to an image decoding method and apparatus having an image reduction function. The decoded image signal is classified into an intra block and an inter block. In addition, a technique for performing a motion adaptive image reduction function by selectively performing anti-aliasing filtering on the divided intra block image and the inter block image is disclosed.

그러나, 상기와 같은 종래 기술에서는 움직임 예측시 주면 매크로블록의 움직임 벡터들의 중간값과 방향성에 따른 초기 탐색점을 예측할 수 있는 기술은 포함하지 않는다.
However, the above-described prior art does not include a technique for predicting the initial search point according to the median and the direction of the motion vectors of the principal surface macroblock during motion prediction.

본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 움직임 예측시 주변 매크로블록의 움직임 벡터들의 중간값과 방향성에 따른 초기 탐색점을 예측할 수 있는 H.264/AVC를 위한 고성능 움직임 예측방법 및 움직임 예측장치의 제공을 목적으로 한다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and is a high performance motion prediction method for H.264 / AVC that can predict an initial search point according to the median and the direction of motion vectors of neighboring macroblocks during motion prediction. And a motion predicting apparatus.

또한, 본 발명은 주변 매크로블록들의 움직임 벡터를 이용하여 초기 탐색점을 보다 정확하게 예측함으로써 연산량을 감소시키고 영상의 손상을 최소화할 수 있는 H.264/AVC를 위한 고성능 움직임 예측방법 및 움직임 예측장치의 제공을 목적으로 한다.
In addition, the present invention provides a high-performance motion prediction method and a motion prediction apparatus for H.264 / AVC that can reduce the amount of computation and minimize image damage by predicting the initial search point more accurately using the motion vectors of the neighboring macroblocks. It is for the purpose of providing.

더불어, 본 발명은 적은 연산량으로 움직임 예측을 수행함으로써 주변 매크로블록의 움직임 벡터만 저장하여 전체 메모리의 용량을 축소할 수 있는 H.264/AVC를 위한 고성능 움직임 예측방법 및 움직임 예측장치의 제공을 목적으로 한다.
In addition, an object of the present invention is to provide a high-performance motion prediction method and a motion prediction apparatus for H.264 / AVC capable of reducing the capacity of the entire memory by storing only motion vectors of neighboring macroblocks by performing motion prediction with a small amount of computation. It is done.

그러나 본 발명의 목적은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
However, the object of the present invention is not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측장치는, 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터로부터 중간 움직임 벡터값(mvp)을 산출하여 초기 탐색점을 설정하는 움직임 예측 제어부와, 상기 초기 탐색점을 이용하여 현재 매크로블록에 대한 정화소 움직임 벡터를 생성하는 정화소 움직임 예측부 및 상기 정화소 움직임 예측부에서 생성된 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 이용하여 현재 매크로블록에 대한 부화소 움직임 벡터를 생성하는 부화소 움직임 예측부를 포함하는 것을 특징으로 한다.
In order to achieve the above object, the motion prediction apparatus for the high performance H.264 / AVC encoder according to the present invention calculates an intermediate motion vector value (mvp) from the motion vectors of three neighboring macroblocks for the current macroblock, and performs an initial search. A motion prediction control unit for setting a point, a refiner motion predictor for generating a refiner motion vector for the current macroblock using the initial search point, and a pixel of a reference frame corresponding to the refiner motion vector generated by the refiner motion predictor And a subpixel motion predictor for generating a subpixel motion vector for the current macroblock.

또한, 본 발명에 따른 움직임 예측장치는, 상기 움직임 예측 제어부가, 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출하는 중간 움직임 벡터값 생성모듈과, 상기 중간 움직임 벡터값의 방향성에 따라 탐색점 모드 및 초기 탐색점을 설정하는 탐색점 모드 선택모듈 및 외부 메모리로부터 현재 매크로블록의 데이터와 참조 프레임의 데이터를 제공받아 내부 메모리에 저장하는 메모리 제어모듈을 포함하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention, the motion prediction controller, the intermediate motion vector for calculating the intermediate motion vector value (mvp) by using the magnitude and direction of the motion vectors of the three neighboring macroblocks for the current macroblock A value generation module, a search point mode selection module for setting a search point mode and an initial search point according to the direction of the intermediate motion vector value, and data of a current macroblock and data of a reference frame from an external memory and stored in an internal memory It characterized in that it comprises a memory control module.

또한, 본 발명에 따른 움직임 예측장치는, 상기 중간 움직임 벡터값 생성모듈이 다음의 관계식을 이용하여 중간 움직임 벡터값을 산출하는 것을 특징으로 한다.In addition, the motion prediction apparatus according to the present invention is characterized in that the intermediate motion vector value generation module calculates the intermediate motion vector value using the following relational expression.

Figure 112012069648842-pat00001
Figure 112012069648842-pat00001

(여기에서, MVleft는 현재 매크로블록에 대한 좌측 매크로블록의 움직임 벡터, MVtop는 현재 매크로블록에 대한 상측 매크로블록의 움직임 벡터, MVtop - right는 현재 매크로블록에 대한 상-우측 매크로블록의 움직임 벡터를 나타냄)
Where MV left is the motion vector of the left macroblock for the current macroblock, MV top is the motion vector of the upper macroblock for the current macroblock, and MV top - right is the top - right macroblock of the current macroblock. Represents a motion vector)

또한, 본 발명에 따른 움직임 예측장치는, 상기 탐색점 모드 선택모듈이 다음의 관계식을 통해 상기 중간 움직임 벡터값의 x 좌표와 y 좌표를 비교하여 탐색점 모드를 설정하는 것을 특징으로 한다.In addition, the motion prediction apparatus according to the present invention is characterized in that the search point mode selection module sets a search point mode by comparing the x coordinate and the y coordinate of the intermediate motion vector value through the following relational expression.

Figure 112012069648842-pat00002

Figure 112012069648842-pat00002

또한, 본 발명에 따른 움직임 예측장치는, 상기 탐색점 모드 선택모듈에서 상기 중간 움직임 벡터값이 직선 방향성을 가지면 다이아몬드 탐색패턴, 상기 중간 움직임 벡터값이 대각선 방향성을 가지면 사각형 탐색패턴으로 탐색점 모드를 설정하고, 중간 움직임 벡터값의 방향성에 따라 9가지 모드로 탐색점 모드를 설정하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention, in the search point mode selection module, if the intermediate motion vector value has a linear direction, the diamond search pattern, and if the intermediate motion vector value has a diagonal direction, the search point mode is selected with a square search pattern. And the search point mode is set in nine modes according to the direction of the intermediate motion vector value.

또한, 본 발명에 따른 움직임 예측장치는, 상기 탐색점 모드 선택모듈이, 설정되는 탐색점 모드에 따라 최소 5개에서 최대 9개의 탐색점으로 초기 탐색점을 설정하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention is characterized in that the search point mode selection module sets an initial search point to at least five to nine search points according to the search point mode to be set.

또한, 본 발명에 따른 움직임 예측장치는, 상기 정화소 움직임 예측부가, 각 초기 탐색점에 대한 SAD(Sum of Absolute Difference)값을 산출하는 SAD 산출모듈과, 산출된 SAD값을 비교하여 최소 SAD값을 각 매크로블록 크기마다 저장하고, 최소 SAD값을 갖는 매크로블록을 선택하는 최소값 선택모듈 및 상기 최소값 선택모듈에서 선택된 최소 SAD값을 갖는 매크로블록에 대한 정화소 움직임 벡터를 생성하는 정화소 움직임 벡터 생성모듈을 포함하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention, the refinery motion prediction unit, the SAD calculation module for calculating the SAD (Sum of Absolute Difference) value for each initial search point and the calculated SAD value by comparing the minimum SAD value A minimum value selection module for storing each macroblock size and selecting a macroblock having a minimum SAD value, and a refinement motion vector generation module generating a refinement motion vector for the macroblock having the minimum SAD value selected by the minimum value selection module. Characterized in that.

또한, 본 발명에 따른 움직임 예측장치는, 상기 SAD 산출모듈이 다음의 관계식을 통해 SAD값을 산출하는 것을 특징으로 한다.In addition, the motion estimation apparatus according to the present invention is characterized in that the SAD calculation module calculates the SAD value through the following relational expression.

Figure 112012069648842-pat00003
Figure 112012069648842-pat00003

(여기에서, Ft는 현재 프레임, Ft -i는 참조 프레임을 나타냄)
Where F t represents the current frame and F t -i represents the reference frame

또한, 본 발명에 따른 움직임 예측장치는, 상기 정화소 움직임 벡터 생성모듈이, 최소 SAD값을 갖는 매크로블록의 크기가 16×16인 경우 1개의 움직임 벡터를 생성하고, 최소 SAD값을 갖는 매크로블록의 크기가 4×4인 경우 16개의 움직임 벡터를 생성하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention, when the size of the macroblock having the minimum SAD value is 16 × 16, the motion vector generating module generates one motion vector, and the macroblock having the minimum SAD value When the size is 4 × 4, 16 motion vectors are generated.

또한, 본 발명에 따른 움직임 예측장치는, 상기 부화소 움직임 예측부가, 상기 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 입력받아 쿼드픽셀 단위로 보간하여 16×16 쿼드픽셀 데이터를 생성하는 보간(Interpolation)모듈과, 생성된 상기 16×16 쿼드픽셀 데이터에 대해 1 사이클 동안 SAD 연산을 수행하여 SAD값을 산출하는 SAD 산출모듈 및 산출된 SAD값을 저장하고, 산출된 SAD값 중 최소 SAD값을 가지는 매크로블록의 부화소 움직임 벡터를 생성하는 부화소 움직임 벡터 생성모듈을 포함하는 것을 특징으로 한다.
In addition, the motion prediction apparatus according to the present invention includes interpolation in which the subpixel motion predictor receives 16 pixels of a reference frame corresponding to the refiner motion vector and interpolates in quad pixel units to generate 16 × 16 quad pixel data. A SAD calculation module for calculating a SAD value by performing a SAD operation on the generated 16 × 16 quad pixel data for one cycle, and storing the calculated SAD value and having a minimum SAD value among the calculated SAD values. And a subpixel motion vector generation module for generating a subpixel motion vector of the macroblock.

아울러, 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측방법은, 움직임 예측 제어부가 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출하는 제 1 단계와, 상기 움직임 예측 제어부가 산출된 상기 중간 움직임 벡터값으로부터 탐색점 모드 및 초기 탐색점을 설정하는 제 2 단계와, 정화소 움직임 예측부가 상기 제 2 단계에서 설정된 초기 탐색점을 근거로 현재 매크로블록에 대해 정화소 움직임 벡터를 생성하는 제 3 단계 및 부화소 움직임 예측부가 상기 제 3 단계에서 생성된 정화소 움직임 예측 벡터를 이용하여 현재 매크로블록에 대해 부화소 움직임 벡터를 생성하는 제 4 단계를 포함하는 것을 특징으로 한다.
In addition, in the motion prediction method for the high performance H.264 / AVC encoder according to the present invention, the motion prediction controller uses an intermediate motion vector value (mvp) by using the magnitude and the direction of the motion vectors of three neighboring macroblocks with respect to the current macroblock. A first step of calculating a second step; a second step of setting a search point mode and an initial search point from the intermediate motion vector value calculated by the motion prediction controller; and a refinement motion predictor performing an initial search point set in the second step. A third step of generating a refinement motion vector for the current macroblock based on the fourth step and a fourth step of generating a subpixel motion vector for the current macroblock using the refinement motion prediction vector generated in the third step. Characterized in that it comprises a step.

본 발명의 고성능 H.264/AVC 인코더용 움직임 예측장치 및 움직임 예측방법에 따르면, 움직임 예측시 주변 매크로블록의 움직임 벡터들의 중간값과 방향성에 따른 초기 탐색점을 예측함으로써 적은 수의 탐색점으로 넓은 탐색 영역을 가질 수 있는 이점이 있다.
According to the motion prediction apparatus and the motion prediction method for the high-performance H.264 / AVC encoder of the present invention, a large number of search points can be obtained by predicting the initial search point according to the direction and the median value of the motion vectors of the neighboring macroblocks during the motion prediction. There is an advantage to having a search area.

또한, 본 발명의 고성능 H.264/AVC 인코더용 움직임 예측장치 및 움직임 예측방법에 따르면, 주변 매크로블록들의 움직임 벡터를 이용하여 초기 탐색점을 보다 정확하게 예측함으로써 연산량을 감소시키고 영상의 손상을 최소화할 수 있으며, 또한, 주변 매크로블록의 움직임 벡터를 사용하기 때문에 HD급 해상도에서도 적은 연산량 대비 PSNR(Peak Signal to Noise Ratio)의 손실이 미비한 이점이 있다.
In addition, according to the motion prediction apparatus and the motion prediction method for the high performance H.264 / AVC encoder of the present invention, by using the motion vector of the neighboring macroblocks more accurately predict the initial search point to reduce the amount of computation and to minimize the damage of the image In addition, since the motion vector of the neighboring macroblock is used, the loss of the peak signal to noise ratio (PSNR) is small compared to the amount of computation even in the HD resolution.

도 1은, 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측장치의 구성을 나타내는 블럭도이다.
도 2는, 본 발명에 따른 움직임 예측 제어부의 구성을 나타내는 블럭도이다.
도 3은, 본 발명에 따른 정화소 움직임 예측부의 구성을 나타내는 블럭도이다.
도 4는, 본 발명에 따른 부화소 움직임 예측부의 구성을 나타내는 블럭도이다.
도 5는, 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측방법을 나타내는 흐름도이다.
도 6은, 본 발명에 따른 현재 매크로블록에 대한 정화소 움직임 벡터를 생성하는 방법을 나타내는 흐름도이다.
도 7은, 본 발명에 따른 현재 매크로블록에 대한 부화소 움직임 벡터를 생성하는 방법을 나타내는 흐름도이다.
도 8은, 현재 매크로블록에 대한 주변 매크로블록의 움직임 벡터를 나타내는 예시도이다.
도 9는, 본 발명에 따른 움직임 예측 제어부에서 초기 탐색점 모드를 나타내는 예시도이다.
도 10은, 본 발명에 따른 4×4 매크로블록 단위로 SAD(Sum of Absolute Difference)를 연산하는 SAD 산출모듈을 나타내는 예시도이다.
도 11은, 본 발명에 따른 하프픽셀 보간의 구조를 나타내는 예시도이다.
1 is a block diagram showing the configuration of a motion prediction apparatus for a high performance H.264 / AVC encoder according to the present invention.
2 is a block diagram showing the configuration of a motion prediction controller according to the present invention.
3 is a block diagram showing the configuration of a refinery motion prediction unit according to the present invention.
4 is a block diagram showing a configuration of a subpixel motion prediction unit according to the present invention.
5 is a flowchart illustrating a motion prediction method for a high performance H.264 / AVC encoder according to the present invention.
6 is a flowchart illustrating a method of generating a refiner motion vector for a current macroblock according to the present invention.
7 is a flowchart illustrating a method of generating a subpixel motion vector for a current macroblock according to the present invention.
8 is an exemplary diagram illustrating a motion vector of a neighboring macroblock with respect to the current macroblock.
9 is an exemplary view illustrating an initial search point mode in the motion prediction controller according to the present invention.
10 is an exemplary diagram illustrating a SAD calculation module for calculating a sum of absolute difference (SAD) in units of 4x4 macroblocks according to the present invention.
11 is an exemplary diagram illustrating a structure of half pixel interpolation according to the present invention.

이하, 본 발명의 바람직한 실시 예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. 하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. In the following description of the present invention, 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.

본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
Embodiments in accordance with the concepts of the present invention can make various changes and have various forms, so that specific embodiments are illustrated in the drawings and described in detail in this specification or application. It is to be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms of disclosure, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms "comprises ",or" having ", or the like, specify that there is a stated feature, number, step, operation, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.

도 1은 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측장치의 구성을 나타내는 블럭도이고, 도 2는 본 발명에 따른 움직임 예측 제어부의 구성을 나타내는 블럭도이며, 도 3은 본 발명에 따른 정화소 움직임 예측부의 구성을 나타내는 블럭도이고, 도 4는 본 발명에 따른 부화소 움직임 예측부의 구성을 나타내는 블럭도이다.
1 is a block diagram showing a configuration of a motion prediction apparatus for a high performance H.264 / AVC encoder according to the present invention, FIG. 2 is a block diagram showing a configuration of a motion prediction controller according to the present invention, and FIG. Fig. 4 is a block diagram showing the configuration of the sub-pixel motion prediction unit according to the present invention.

도면을 참조하면, 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측장치(1)는 움직임 예측 제어부(100), 정화소 움직임 예측부(200), 부화소 움직임 예측부(300) 및 움직임 벡터 램(400)을 포함하여 구성될 수 있다.
Referring to the drawings, a high-performance H.264 / AVC encoder motion prediction apparatus 1 according to the present invention includes a motion prediction controller 100, a refiner motion predictor 200, a subpixel motion predictor 300, and a motion vector. RAM 400 may be configured to include.

움직임 예측 제어부(100)는 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터로부터 중간 움직임 벡터값(mvp)을 산출하여 초기 탐색점을 설정할 수 있다.The motion prediction controller 100 may set an initial search point by calculating an intermediate motion vector value mvp from motion vectors of three neighboring macroblocks for the current macroblock.

이러한 움직임 예측 제어부(100)는, 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출하는 중간 움직임 벡터값 생성모듈(110)과, 중간 움직임 벡터값의 방향성에 따라 탐색점 모드 및 초기 탐색점을 설정하는 탐색점 모드 선택모듈(120) 및 외부 메모리로부터 현재 매크로블록의 데이터와 참조 프레임의 데이터를 제공받아 내부 메모리에 저장하는 메모리 제어모듈(130)을 포함할 수 있다.
The motion prediction control unit 100 may include an intermediate motion vector value generation module 110 that calculates an intermediate motion vector value mvp by using the magnitude and direction of motion vectors of three neighboring macroblocks with respect to the current macroblock, Memory control for receiving the current macroblock data and the reference frame data from the external memory and the search point mode selection module 120 for setting the search point mode and the initial search point according to the direction of the intermediate motion vector. Module 130 may be included.

정화소 움직임 예측부(200)에서는 움직임 예측 제어부(100)를 통해 설정된 초기 탐색점을 이용하여 현재 매크로블록에 대한 정화소 움직임 벡터를 생성할 수 있다.The refinery motion prediction unit 200 may generate a refinery motion vector for the current macroblock by using an initial search point set through the motion prediction control unit 100.

정화소 움직임 예측부(200)는 움직임 예측 제어부(100)에서 설정된 각 초기 탐색점에 대한 SAD(Sum of Absolute Difference)값을 산출하는 SAD 산출모듈(210), 산출된 SAD값을 비교하여 최소 SAD값을 각 매크로블록 크기마다 저장하고, 최소 SAD값을 갖는 매크로블록을 선택하는 최소값 선택모듈(220) 및 최소값 선택모듈(220)에서 선택된 최소 SAD값을 갖는 매크로블록에 대한 정화소 움직임 벡터를 생성하는 정화소 움직임 벡터 생성모듈(230)을 포함할 수 있다.
The refinery motion prediction unit 200 compares the calculated SAD value to the SAD calculation module 210 for calculating a SAD (Sum of Absolute Difference) value for each initial search point set by the motion prediction controller 100, and then calculates a minimum SAD value. Is stored for each macroblock size and generates a refiner motion vector for the macroblock having the minimum SAD value selected by the minimum value selection module 220 and the minimum value selection module 220 for selecting the macroblock having the minimum SAD value. It may include a motion vector generation module 230.

또한, 부화소 움직임 예측부(300)에서 정화소 움직임 예측부(200)에서 생성된 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 이용하여 현재 매크로블록에 대한 부화소 움직임 벡터를 생성할 수 있다.
Also, the subpixel motion predictor 300 may generate a subpixel motion vector for the current macroblock by using pixels of a reference frame corresponding to the refinement motion vector generated by the refiner motion predictor 200.

이러한 부화소 움직임 예측부(300)는 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 입력받아 쿼드픽셀 단위로 보간하여 16×16 쿼드픽셀 데이터를 생성하는 보간(Interpolation)모듈(310), 생성된 16×16 쿼드픽셀 데이터에 대해 1 사이클 동안 SAD 연산을 수행하여 SAD값을 산출하는 SAD 산출모듈(320) 및 산출된 SAD값을 저장하고, 산출된 SAD값 중 최소 SAD값을 가지는 매크로블록의 부화소 움직임 벡터를 생성하는 부화소 움직임 벡터 생성모듈(330)을 포함할 수 있다. 또한, 부화소 움직임 예측부(300)에서 생성된 부화소 움직임 벡터는 움직짐 벡터 램(400)에 저장된다.
The subpixel motion predictor 300 receives an input pixel of a reference frame corresponding to a refiner motion vector and interpolates in quad pixel units to generate 16 × 16 quad pixel data, and generates an interpolation module 310. A SAD calculation module 320 that calculates SAD values by performing a SAD operation on 1 × 16 quad pixel data and stores the calculated SAD values, and stores a subpixel of a macroblock having a minimum SAD value among the calculated SAD values. It may include a subpixel motion vector generation module 330 for generating a motion vector. In addition, the subpixel motion vector generated by the subpixel motion predictor 300 is stored in the motion vector RAM 400.

아울러, 정화소 움직임 예측부(200)와 부화소 움직임 예측부(300)에 각각 포함되어 SAD 연산을 수행하는 SAD 산출모듈(210 및 320)은 동일한 형태로 구성될 수 있다.
In addition, the SAD calculation modules 210 and 320 included in the refinery motion predictor 200 and the subpixel motion predictor 300 to perform the SAD operation may be configured in the same form.

도 5는 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측방법을 나타내는 흐름도이고, 도 6은 본 발명에 따른 현재 매크로블록에 대한 정화소 움직임 벡터를 생성하는 방법을 나타내는 흐름도이며, 도 7은 본 발명에 따른 현재 매크로블록에 대한 부화소 움직임 벡터를 생성하는 방법을 나타내는 흐름도이다. 다음에, 도 1 내지 도 7을 참조하여 본 발명에 따른 고성능 H.264/AVC 인코더용 움직임 예측방법을 설명한다.
5 is a flowchart illustrating a motion prediction method for a high performance H.264 / AVC encoder according to the present invention, FIG. 6 is a flowchart illustrating a method of generating a refiner motion vector for a current macroblock according to the present invention, and FIG. A flowchart illustrating a method of generating a subpixel motion vector for a current macroblock according to the present invention. Next, a motion prediction method for a high performance H.264 / AVC encoder according to the present invention will be described with reference to FIGS.

먼저, 움직임 예측 제어부(100)에서 도 8에 나타낸 바와 같이, 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출한다(S101).
First, as shown in FIG. 8, the motion prediction controller 100 calculates an intermediate motion vector value mvp using the magnitude and the direction of the motion vectors of three neighboring macroblocks with respect to the current macroblock (S101).

중간 움직임 벡터값 생성모듈(110)에서는 다음의 관계식을 통해 중간 움직임 벡터값(mvp)을 산출할 수 있다.The intermediate motion vector value generation module 110 may calculate the intermediate motion vector value mvp through the following relational expression.

[식 1][Formula 1]

Figure 112012069648842-pat00004
Figure 112012069648842-pat00004

여기에서, MVleft는 현재 매크로블록에 대한 좌측 매크로블록의 움직임 벡터, MVtop는 현재 매크로블록에 대한 상측 매크로블록의 움직임 벡터, MVtop - right는 현재 매크로블록에 대한 상-우측 매크로블록의 움직임 벡터를 나타낸다.
Here, MV left is the motion vector of the left macroblock with respect to the current macroblock, MV top is the motion vector of the upper macroblock with respect to the current macroblock, and MV top - right is the motion of the upper-right macroblock with respect to the current macroblock. Represents a vector.

이후, 탐색점 모드 선택모듈(120)은 중간 움직임 벡터값 생성모듈(110)에서 생성된 중간 움직임 벡터값의 x 좌표와 y 좌표를 비교하여 탐색점 모드를 설정하고, 중간 움직임 벡터값의 방향성에 따라 초기 탐색점을 설정할 수 있다(S102).
Thereafter, the search point mode selection module 120 sets the search point mode by comparing the x coordinate and the y coordinate of the intermediate motion vector value generated by the intermediate motion vector value generation module 110 and sets the search point mode to the direction of the intermediate motion vector value. Accordingly, an initial search point may be set (S102).

[식 2][Formula 2]

Figure 112012069648842-pat00005

Figure 112012069648842-pat00005

특히, 도 9에 나타낸 바와 같이, 탐색점 모드 선택모듈(120)에서는 계층적 움직임 예측 수행에 따른 많은 연산량을 감소시키기 위해 단일 계층 움직임 예측을 위한 9가지 모드로 탐색점 모드를 설정할 수 있다.
In particular, as shown in FIG. 9, the search point mode selection module 120 may set the search point mode to nine modes for single layer motion prediction in order to reduce a large amount of computation according to the hierarchical motion prediction.

이러한, 단일 계층 움직임 예측은 계층적 움직임 예측 수행에 따른 제어로직이 불필요하고, 적은 탐색점으로 연산량을 감소시킬 수 있으며, 중간 움직임 벡터값의 방향성으로 초기 탐색점을 설정함으로써 적은 수의 탐색점으로 넓은 탐색 영역을 가질 수 있는 특징이 있다.
Such single layer motion prediction does not require the control logic according to the hierarchical motion prediction, reduces the computational amount with a small search point, and sets the initial search point with the direction of the intermediate motion vector value. There is a feature that can have a large search area.

예를 들어, 주변 매크로블록의 움직임 벡터가 없는 경우, 도 9의 (a)와 같이 탐색점 모드를 설정되고, 중간 움직임 벡터값이 직선 방향성을 가지는 경우, 도 9의 (b) 내지 (e)와 같이, 다이아몬드 탐색패턴으로 설정되며, 또한, 중간 움직임 벡터값이 대각선 방향성을 가지면 도 9의 (f) 내지 (i)에 나타낸 바와 같이, 사각형 탐색패턴으로 탐색점 모드를 설정할 수 있다.
For example, when there is no motion vector of the neighboring macroblock, the search point mode is set as shown in FIG. 9 (a), and when the intermediate motion vector value has the linear direction, FIGS. 9 (b) to (e) As shown in FIG. 9, if the intermediate motion vector value has a diagonal direction, the search point mode may be set to the rectangular search pattern as illustrated in FIGS. 9 (f) to (i).

또한, 설정되는 초기 탐색점은 탐색점 모드, 즉, 중간 움직임 벡터값의 방향성에 따라 중간 움직임 벡터값을 이동하여 최소 5개에서 최대 9개의 초기 탐색점으로 설정할 수 있다.
In addition, the set initial search point may be set to at least five to nine initial search points by moving the intermediate motion vector value according to the search point mode, that is, the direction of the intermediate motion vector value.

이후, 정화소 움직임 예측부(200)에서 설정된 초기 탐색점을 근거로 현재 매크로블록에 대해 정화소 움직임 벡터를 생성한다(S102). 이때, SAD 산출모듈(210)은 각각의 초기 탐색점에 대한 SAD값을 다음의 관계식을 통해 산출할 수 있다(S201).
Subsequently, a refinement motion vector is generated for the current macroblock based on the initial search point set in the refinery motion prediction unit 200 (S102). In this case, the SAD calculation module 210 may calculate the SAD value for each initial search point through the following relational expression (S201).

[식 3][Formula 3]

Figure 112012069648842-pat00006
Figure 112012069648842-pat00006

여기에서, Ft는 현재 프레임, Ft -i는 참조 프레임을 나타낸다.
Here, F t represents a current frame and F t -i represents a reference frame.

특히, 본 발명에 따른 SAD 산출모듈(210)은 도 10에 나타낸 바와 같이, 16개의 4×4 SAD 모듈로 구성되어, 2사이클 만에 현재 픽셀과 참조 픽셀의 차이값을 구하고, 각 매크로블록 크기에 해당하는 차이값들을 더하여 1개 탐색점에 대한 SAD값을 산출할 수 있다.
In particular, the SAD calculation module 210 according to the present invention is composed of 16 4 × 4 SAD modules, as shown in FIG. 10, to obtain the difference between the current pixel and the reference pixel in two cycles, and to determine the size of each macroblock. SAD values for one search point may be calculated by adding the difference values corresponding to.

최소값 선택모듈(220)에서는 산출된 SAD값을 비교하여 최소 SAD값을 각 매크로블록 크기마다 저장하고, 최소 SAD값을 갖는 매크로블록을 선택한다(S202). 정화소 움직임 벡터 생성모듈(230)은 최소 SAD값을 갖는 매크로블록의 정화소 움직임 벡터(IMV)를 생성할 수 있다(S203).
The minimum value selection module 220 compares the calculated SAD values, stores the minimum SAD value for each macroblock size, and selects a macroblock having the minimum SAD value (S202). The refinery motion vector generation module 230 may generate a refinery motion vector IMV of a macroblock having a minimum SAD value (S203).

이 경우, 최소 SAD값을 갖는 매크로블록 크기가 16×16일 때에는 1개의 움직임 벡터를 생성하고, 최소 SAD값을 갖는 매크로블록의 크기가 4×4인 경우에는 16개의 움직임 벡터를 생성한다.
In this case, one motion vector is generated when the macroblock size having the minimum SAD value is 16 × 16, and 16 motion vectors are generated when the size of the macroblock having the minimum SAD value is 4 × 4.

다음에, 부화소 움직임 예측부(S300)에서는 생성된 정화소 움직임 예측 벡터를 이용하여 현재 매크로블록에 대해 부화소 움직임 벡터를 생성할 수 있다(S104).
Next, the subpixel motion prediction unit S300 may generate a subpixel motion vector for the current macroblock using the generated refinement motion prediction vector (S104).

부화소 움직임 벡터의 생성은, 보간 모듈(310)에서 생성된 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 입력받아, 도 11에 나타낸 바와 같이, 9사이클에 가로에 해당하는 하프픽셀을 출력하고, 12 사이클 동안 부화소 움직임 예측에 필요한 8×8 하프픽셀을 출력한다.
The subpixel motion vector is generated by receiving a pixel of a reference frame corresponding to the refinement motion vector generated by the interpolation module 310, and outputting a half pixel corresponding to the width in 9 cycles, as shown in FIG. 11. Outputs 8 x 8 half pixels for sub-pixel motion prediction for 12 cycles.

출력된 8×8 하프픽셀은 쿼드픽셀 단위로 보간을 위해, 2탭 필터에 입력되고 4×4 크기의 쿼드픽셀 보간을 수행하는 4개 모듈을 이용하여 16×16 쿼드픽셀 데이터를 출력한다(S301).
The output 8 × 8 half-pixels are input to the 2-tap filter to interpolate in quad pixel units, and output 16 × 16 quad pixel data using four modules that perform 4 × 4 quad pixel interpolation (S301). ).

16×16 쿼드픽셀 데이터는 SAD 산출모듈(320)에 입력되어, 1 사이클 동안 SAD 연산을 수행하여, SAD값을 산출한다(S302). 부화소 움직임 벡터 생성모듈(330)은 산출된 SAD값을 저장하고, 최소 SAD값을 가지는 부화소 움직임 벡터를 생성할 수 있다(S303).
16 × 16 quad pixel data is input to the SAD calculation module 320 to perform a SAD operation for one cycle to calculate a SAD value (S302). The subpixel motion vector generation module 330 may store the calculated SAD value and generate a subpixel motion vector having a minimum SAD value (S303).

본 발명에 따라 움직임 예측을 시뮬레이션한 PSNR(Peak Signal to Noise Ratio) 결과와, 비교기술, 예를 들어 EPZS(Enhanced Predictive Zonal Search, Tourapis H.-Y.C., Tourapis A.M., "Fast motion estimation within the H.264 codec," Proceedings of Multimedia and Expo ICME, vol. 3, PP.517-520)를 통해 시뮬레이션한 결과를 표 1에 나타낸다.
Peak Signal to Noise Ratio (PSNR) results simulating motion prediction in accordance with the present invention and comparative techniques, for example Enhanced Predictive Zonal Search, Tourapis H.-YC, Tourapis AM, "Fast motion estimation within the H. 264 codec, "Proceedings of Multimedia and Expo ICME, vol. 3, PP.517-520).

표 1에 나타낸 바와 같이, EPZS에 비하여 본 발명의 PSNR는 평균 0.061dB 감소함을 알 수 있다.As shown in Table 1, it can be seen that the PSNR of the present invention is reduced by 0.061 dB on average compared to EPZS.

[표 1][Table 1]

Figure 112012069648842-pat00007

Figure 112012069648842-pat00007

또한, 표 2에 나타낸 바와 같이, 본 발명에서는 최대 동작 주파수가 166㎒이고 게이트 수가 217.92k로, 종래기술 대비 66.08k 만큼 감소하였다. In addition, as shown in Table 2, in the present invention, the maximum operating frequency is 166 MHz and the number of gates is 217.92 k, which is reduced by 66.08 k compared with the prior art.

[표 2][Table 2]

Figure 112012069648842-pat00008

Figure 112012069648842-pat00008

또한 본 발명에 따르면, 하나의 매크로블록을 부호화하는데 312사이클이 소요되어, 종래와 비교하여 대략 69% 향상되는 것을 확인할 수 있다.
In addition, according to the present invention, it takes 312 cycles to encode one macroblock, which can be confirmed to be approximately 69% improved compared to the conventional method.

상술한 바와 같이, 본 발명에 따르면 움직임 예측시 주변 매크로블록의 움직임 벡터들의 중간값과 방향성에 따른 초기 탐색점을 예측함으로써 적은 수의 탐색점으로 연산량을 감소시키고, 주변 매크로블록의 움직임 벡터를 사용하기 때문에 HD급 해상도에서도 적은 연산량 대비 PSNR의 손실이 미비하다는 특징이 있다.
As described above, according to the present invention, by predicting the initial search point according to the intermediate value and the direction of the motion vectors of the neighboring macroblocks in motion estimation, the amount of computation is reduced to a small number of search points, and the motion vectors of the neighboring macroblocks are used. Therefore, even in HD resolution, PSNR loss is small compared to a small amount of calculation.

상기 본 발명의 내용은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. will be. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

1 : 움직임 예측장치 100 : 움직임 예측 제어부
110 : 중간 움직임 벡터값 생성모듈 120 : 탐색점 모드 선택모듈
130 : 메모리 제어모듈 200 : 정화소 움직임 예측부
210 : SAD 산출모듈 220 : 최소값 선택모듈
230 : 정화소 움직임 벡터 생성모듈 300 : 부화소 움직임 예측ㅂ
310 : 보간 모듈 320 : SAD 산출모듈
330 : 부화소 움직임 벡터 생성모듈
1: motion prediction apparatus 100: motion prediction controller
110: intermediate motion vector value generation module 120: search point mode selection module
130: memory control module 200: purification plant motion prediction unit
210: SAD calculation module 220: minimum value selection module
230: refiner motion vector generation module 300: subpixel motion prediction ㅂ
310: interpolation module 320: SAD calculation module
330: subpixel motion vector generation module

Claims (21)

고성능 H.264/AVC 인코더용 움직임 예측장치에 있어서,
현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터로부터 중간 움직임 벡터값(mvp)을 산출하여 초기 탐색점을 설정하는 움직임 예측 제어부;
상기 초기 탐색점을 이용하여 현재 매크로블록에 대한 정화소 움직임 벡터를 생성하는 정화소 움직임 예측부; 및
상기 정화소 움직임 예측부에서 생성된 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 이용하여 현재 매크로블록에 대한 부화소 움직임 벡터를 생성하는 부화소 움직임 예측부;를 포함하고,
상기 움직임 예측 제어부는,
현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출하는 중간 움직임 벡터값 생성모듈;
상기 중간 움직임 벡터값의 방향성에 따라 탐색점 모드 및 초기 탐색점을 설정하는 탐색점 모드 선택모듈; 및
외부 메모리로부터 현재 매크로블록의 데이터와 참조 프레임의 데이터를 제공받아 내부 메모리에 저장하는 메모리 제어모듈;을 포함하며,
상기 탐색점 모드 선택모듈은 상기 중간 움직임 벡터값이 직선 방향성을 가지면 다이아몬드 탐색패턴, 상기 중간 움직임 벡터값이 대각선 방향성을 가지면 사각형 탐색패턴으로 탐색점 모드를 설정하는 것을 특징으로 하는 움직임 예측장치.
In the motion prediction device for high performance H.264 / AVC encoder,
A motion prediction controller configured to set an initial search point by calculating an intermediate motion vector value mvp from motion vectors of three neighboring macroblocks for the current macroblock;
A refiner motion predictor configured to generate a refiner motion vector for the current macroblock using the initial search point; And
And a subpixel motion predictor configured to generate a subpixel motion vector for a current macroblock using pixels of a reference frame corresponding to the refiner motion vector generated by the refiner motion predictor.
The motion prediction control unit,
An intermediate motion vector value generation module for calculating an intermediate motion vector value mvp using the magnitude and the direction of the motion vectors of three neighboring macroblocks with respect to the current macroblock;
A search point mode selection module configured to set a search point mode and an initial search point according to the direction of the intermediate motion vector value; And
And a memory control module configured to receive data of a current macroblock and data of a reference frame from an external memory and store the data in an internal memory.
The search point mode selection module sets a search point mode using a diamond search pattern when the intermediate motion vector value has a linear direction and a rectangular search pattern when the intermediate motion vector value has a diagonal direction.
삭제delete 제 1 항에 있어서,
상기 중간 움직임 벡터값 생성모듈은 다음의 관계식을 이용하여 중간 움직임 벡터값을 산출하는 것을 특징으로 하는 움직임 예측장치.
Figure 112013106864812-pat00009

(여기에서, MVleft는 현재 매크로블록에 대한 좌측 매크로블록의 움직임 벡터, MVtop는 현재 매크로블록에 대한 상측 매크로블록의 움직임 벡터, MVtop-right는 현재 매크로블록에 대한 상-우측 매크로블록의 움직임 벡터를 나타냄)
The method of claim 1,
The intermediate motion vector value generation module calculates an intermediate motion vector value using the following relational expression.
Figure 112013106864812-pat00009

Where MV left is the motion vector of the left macroblock for the current macroblock, MV top is the motion vector of the upper macroblock for the current macroblock, and MV top-right is the top-right macroblock of the current macroblock. Represents a motion vector)
제 1 항에 있어서,
상기 탐색점 모드 선택모듈은 다음의 관계식을 통해 상기 중간 움직임 벡터값의 x 좌표와 y 좌표를 비교하여 탐색점 모드를 설정하는 것을 특징으로 하는 움직임 예측장치.
Figure 112013106864812-pat00010

The method of claim 1,
The search point mode selection module sets the search point mode by comparing the x coordinate and the y coordinate of the intermediate motion vector value through the following relational expression.
Figure 112013106864812-pat00010

삭제delete 제 1 항에 있어서,
상기 탐색점 모드 선택모듈은 중간 움직임 벡터값의 방향성에 따라 9가지 모드로 탐색점 모드를 설정하는 것을 특징으로 하는 움직임 예측장치.
The method of claim 1,
The search point mode selection module sets the search point mode in nine modes according to the direction of the intermediate motion vector value.
제 6 항에 있어서,
상기 탐색점 모드 선택모듈은, 설정되는 탐색점 모드에 따라 최소 5개에서 최대 9개의 탐색점으로 초기 탐색점을 설정하는 것을 특징으로 하는 움직임 예측장치.
The method according to claim 6,
The search point mode selection module sets an initial search point to at least five to nine search points according to the set search point mode.
제 1 항에 있어서,
상기 정화소 움직임 예측부는,
각 초기 탐색점에 대한 SAD(Sum of Absolute Difference)값을 산출하는 SAD 산출모듈;
산출된 SAD값을 비교하여 최소 SAD값을 각 매크로블록 크기마다 저장하고, 최소 SAD값을 갖는 매크로블록을 선택하는 최소값 선택모듈; 및
상기 최소값 선택모듈에서 선택된 최소 SAD값을 갖는 매크로블록에 대한 정화소 움직임 벡터를 생성하는 정화소 움직임 벡터 생성모듈;을 포함하는 것을 특징으로 하는 움직임 예측장치.
The method of claim 1,
The refinery motion prediction unit,
A SAD calculation module for calculating a sum of absolute difference (SAD) value for each initial search point;
A minimum value selecting module for comparing the calculated SAD values, storing a minimum SAD value for each macroblock size, and selecting a macroblock having a minimum SAD value; And
And a refiner motion vector generation module for generating a refiner motion vector for the macroblock having the minimum SAD value selected by the minimum value selecting module.
제 8 항에 있어서,
상기 SAD 산출모듈은 다음의 관계식을 통해 SAD값을 산출하는 것을 특징으로 하는 움직임 예측장치.
Figure 112012069648842-pat00011

(여기에서, Ft는 현재 프레임, Ft -i는 참조 프레임을 나타냄)
The method of claim 8,
The SAD calculation module calculates a SAD value through the following relational expression.
Figure 112012069648842-pat00011

Where F t represents the current frame and F t -i represents the reference frame
제 8 항에 있어서,
상기 정화소 움직임 벡터 생성모듈은,
최소 SAD값을 갖는 매크로블록의 크기가 16×16인 경우, 1개의 움직임 벡터를 생성하고,
최소 SAD값을 갖는 매크로블록의 크기가 4×4인 경우, 16개의 움직임 벡터를 생성하는 것을 특징으로 하는 움직임 예측장치.
The method of claim 8,
The refinery motion vector generation module,
When the size of the macroblock having the minimum SAD value is 16 × 16, one motion vector is generated.
And 16 motion vectors are generated when the size of the macroblock having the minimum SAD value is 4x4.
제 1 항에 있어서,
상기 부화소 움직임 예측부는,
상기 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 입력받아 쿼드픽셀 단위로 보간하여 16×16 쿼드픽셀 데이터를 생성하는 보간(Interpolation)모듈;
생성된 상기 16×16 쿼드픽셀 데이터에 대해 1 사이클 동안 SAD 연산을 수행하여 SAD값을 산출하는 SAD 산출모듈;
산출된 SAD값을 저장하고, 산출된 SAD값 중 최소 SAD값을 가지는 매크로블록의 부화소 움직임 벡터를 생성하는 부화소 움직임 벡터 생성모듈;을 포함하는 것을 특징으로 하는 움직임 예측장치.
The method of claim 1,
The subpixel motion prediction unit,
An interpolation module for generating 16 × 16 quad pixel data by receiving pixels of a reference frame corresponding to the refiner motion vector and interpolating in quad pixel units;
A SAD calculation module configured to calculate a SAD value by performing a SAD operation on the generated 16 × 16 quad pixel data for one cycle;
And a subpixel motion vector generation module for storing a calculated SAD value and generating a subpixel motion vector of a macroblock having a minimum SAD value among the calculated SAD values.
고성능 H.264/AVC 인코더용 움직임 예측방법에 있어서,
움직임 예측 제어부가 현재 매크로블록에 대한 3개의 주변 매크로블록의 움직임 벡터의 크기와 방향성을 이용하여 중간 움직임 벡터값(mvp)을 산출하는 제 1 단계;
상기 움직임 예측 제어부가 산출된 상기 중간 움직임 벡터값으로부터 탐색점 모드 및 초기 탐색점을 설정하는 제 2 단계;
정화소 움직임 예측부가 상기 제 2 단계에서 설정된 초기 탐색점을 근거로 현재 매크로블록에 대해 정화소 움직임 벡터를 생성하는 제 3 단계; 및
부화소 움직임 예측부가 상기 제 3 단계에서 생성된 정화소 움직임 예측 벡터를 이용하여 현재 매크로블록에 대해 부화소 움직임 벡터를 생성하는 제 4 단계;를 포함하고,
상기 제 2 단계에서, 상기 초기 탐색점은 설정되는 탐색점 모드에 따라 최소 5개에서 최대 9개의 탐색점으로 설정되는 것을 특징으로 하는 움직임 예측방법.
In the motion prediction method for high performance H.264 / AVC encoder,
A first step of the motion prediction controller calculating an intermediate motion vector value mvp by using the magnitude and the direction of the motion vectors of three neighboring macroblocks with respect to the current macroblock;
A second step of setting, by the motion prediction controller, a search point mode and an initial search point from the calculated intermediate motion vector value;
A third step of generating a refinery motion vector for the current macroblock based on the initial search point set in the second step; And
And a fourth step of generating, by the subpixel motion predictor, the subpixel motion vector for the current macroblock using the refinement motion prediction vector generated in the third step.
In the second step, the initial search point is set to at least five to nine search points according to the search point mode is set.
제 12 항에 있어서,
상기 제 1 단계에서, 상기 중간 움직임 벡터값(mvp)은 다음의 관계식을 통해 산출되는 것을 특징으로 하는 움직임 예측방법.
Figure 112012069648842-pat00012

(여기에서, MVleft는 현재 매크로블록에 대한 좌측 매크로블록의 움직임 벡터, MVtop는 현재 매크로블록에 대한 상측 매크로블록의 움직임 벡터, MVtop - right는 현재 매크로블록에 대한 상-우측 매크로블록의 움직임 벡터를 나타냄)
13. The method of claim 12,
In the first step, the intermediate motion vector value (mvp) is calculated through the following relational expression.
Figure 112012069648842-pat00012

Where MV left is the motion vector of the left macroblock for the current macroblock, MV top is the motion vector of the upper macroblock for the current macroblock, and MV top - right is the top - right macroblock of the current macroblock. Represents a motion vector)
제 12 항에 있어서,
상기 제 2 단계에서, 상기 탐색점 모드는 다음의 관계식을 통해 상기 중간 움직임 벡터값의 x 좌표와 y 좌표를 비교하여 설정하는 것을 특징으로 하는 움직임 예측방법.
Figure 112012069648842-pat00013

13. The method of claim 12,
In the second step, the search point mode is set by comparing the x coordinate and the y coordinate of the intermediate motion vector value through the following relational expression.
Figure 112012069648842-pat00013

제 14 항에 있어서,
상기 탐색점 모드는,
상기 중간 움직임 벡터값이 직선 방향성을 가지면 다이아몬드 탐색패턴을 사용하고,
상기 중간 움직임 벡터값이 대각선 방향성을 가지면 사각형 탐색패턴을 사용하는 것을 특징으로 하는 움직임 예측방법.
15. The method of claim 14,
The search point mode,
If the intermediate motion vector has a linear direction, a diamond search pattern is used.
And a rectangular search pattern is used if the intermediate motion vector has diagonal direction.
제 15 항에 있어서,
상기 탐색점 모드는 9가지 모드로 설정되는 것을 특징으로 하는 움직임 예측방법.
The method of claim 15,
The search point mode is set to nine modes, the motion prediction method.
삭제delete 제 12 항에 있어서,
상기 제 3 단계는,
SAD(Sum of Absolute Difference) 산출모듈이 각 초기 탐색점에 대한 SAD값을 산출하는 공정;
최소값 선택(Min Cost Selection)모듈이 산출된 SAD값을 비교하여 최소 SAD를 각 매크로블록 크기마다 저장하고, 최소 SAD값을 갖는 매크로블록을 선택하는 공정; 및
정화소 움직임 벡터 생성모듈이 최소 SAD값을 갖는 매크로블록의 정화소 움직임 벡터(IMV)를 생성하는 공정;을 포함하는 것을 특징으로 하는 움직임 예측방법.
13. The method of claim 12,
In the third step,
Calculating a SAD value for each initial search point by a sum of absolute difference (SAD) calculation module;
Comparing a calculated SAD value by a minimum cost selection module to store a minimum SAD for each macroblock size, and selecting a macroblock having a minimum SAD value; And
And generating, by the refiner motion vector generation module, a refiner motion vector (IMV) of the macroblock having the minimum SAD value.
제 18 항에 있어서,
상기 SAD값을 산출하는 공정은 다음의 관계식을 통해 수행되는 것을 특징으로 하는 움직임 예측방법.
Figure 112012069648842-pat00014

(여기에서, Ft는 현재 프레임, Ft -i는 참조 프레임을 나타냄)
19. The method of claim 18,
The step of calculating the SAD value is a motion prediction method, characterized in that performed through the following equation.
Figure 112012069648842-pat00014

Where F t represents the current frame and F t -i represents the reference frame
제 18 항에 있어서,
상기 정화소 움직임 벡터를 생성하는 공정은,
최소 SAD값을 갖는 매크로블록의 크기가 16×16인 경우, 1개의 움직임 벡터를 생성하고,
최소 SAD값을 갖는 매크로블록의 크기가 4×4인 경우, 16개의 움직임 벡터를 생성하는 것을 특징으로 하는 움직임 예측방법.
19. The method of claim 18,
The process of generating the refinery motion vector,
When the size of the macroblock having the minimum SAD value is 16 × 16, one motion vector is generated.
When the size of the macroblock having the minimum SAD value is 4 × 4, 16 motion vectors are generated.
제 12 항에 있어서,
상기 제 4 단계는,
보간(Interpolation)모듈이 상기 제 3 단계에서 생성된 정화소 움직임 벡터에 해당하는 참조 프레임의 픽셀을 입력받아 쿼드픽셀 단위로 보간하여 16×16 쿼드픽셀 데이터를 생성하는 공정;
SAD 산출모듈이 생성된 상기 16×16 쿼드픽셀 데이터에 대해 1 사이클 동안 SAD 연산을 수행하여 SAD값을 산출하는 공정; 및
부화소 움직임 벡터 생성모듈이 산출된 SAD값을 저장하고, 최소 SAD값을 가지는 매크로블록의 부화소 움직임 벡터를 생성하는 공정;을 포함하는 것을 특징으로 하는 움직임 예측방법.
13. The method of claim 12,
The fourth step,
An interpolation module receiving 16 pixels of the reference frame corresponding to the refinement motion vector generated in the third step and interpolating in quad pixel units to generate 16 × 16 quad pixel data;
Calculating a SAD value by performing an SAD operation on the 16 × 16 quad pixel data generated by the SAD calculation module for one cycle; And
And a subpixel motion vector generation module storing the calculated SAD value and generating a subpixel motion vector of a macroblock having a minimum SAD value.
KR1020120094919A 2012-08-29 2012-08-29 Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof KR101368732B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120094919A KR101368732B1 (en) 2012-08-29 2012-08-29 Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120094919A KR101368732B1 (en) 2012-08-29 2012-08-29 Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof

Publications (1)

Publication Number Publication Date
KR101368732B1 true KR101368732B1 (en) 2014-03-03

Family

ID=50647212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120094919A KR101368732B1 (en) 2012-08-29 2012-08-29 Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof

Country Status (1)

Country Link
KR (1) KR101368732B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113489985A (en) * 2021-05-26 2021-10-08 杭州博雅鸿图视频技术有限公司 Sub-pixel motion estimation method and estimation system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110068082A (en) * 2009-12-15 2011-06-22 한국전자통신연구원 Method of motion prediction through asymmetric variable motion search range

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110068082A (en) * 2009-12-15 2011-06-22 한국전자통신연구원 Method of motion prediction through asymmetric variable motion search range

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113489985A (en) * 2021-05-26 2021-10-08 杭州博雅鸿图视频技术有限公司 Sub-pixel motion estimation method and estimation system

Similar Documents

Publication Publication Date Title
US11856220B2 (en) Reducing computational complexity when video encoding uses bi-predictively encoded frames
CN111385569B (en) Coding and decoding method and equipment thereof
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
US11451824B2 (en) Motion vector refinement search with integer pixel resolution
JP4724351B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and communication apparatus
TW202046718A (en) Mutual excluding settings for multiple tools
TW201933866A (en) Improved decoder-side motion vector derivation
JP7279140B2 (en) Limited memory access window for motion vector refinement
CN101326550A (en) Motion estimation using prediction guided decimated search
JP4793424B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and communication apparatus
Kim et al. Zoom motion estimation using block-based fast local area scaling
JP2010504010A (en) Data compression method in video sequence
WO2019072370A1 (en) Memory access window and padding for motion vector refinement
JP7269371B2 (en) Method and Apparatus for Prediction Improvement Using Optical Flow
JP2012151576A (en) Image coding method, image coding device, image decoding method and image decoding device
WO2021188598A1 (en) Methods and devices for affine motion-compensated prediction refinement
KR101368732B1 (en) Apparatus for estimating motion for h.264/avc encoder with high performance and method thereof
CN115834904A (en) Inter-frame prediction method and device
CN111405277B (en) Inter-frame prediction method and device and corresponding encoder and decoder
WO2022081878A1 (en) Methods and apparatuses for affine motion-compensated prediction refinement
WO2022032028A1 (en) Methods and apparatuses for affine motion-compensated prediction refinement
CN113170176A (en) Video encoder, video decoder and corresponding methods
CN114342390B (en) Method and apparatus for prediction refinement for affine motion compensation
KR100986992B1 (en) Fast Inter Mode Decision Method in H.264 Encoding
JP7102663B2 (en) Inter-predictors and methods for video coding

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 6