KR101709894B1 - Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same - Google Patents

Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same Download PDF

Info

Publication number
KR101709894B1
KR101709894B1 KR1020160071422A KR20160071422A KR101709894B1 KR 101709894 B1 KR101709894 B1 KR 101709894B1 KR 1020160071422 A KR1020160071422 A KR 1020160071422A KR 20160071422 A KR20160071422 A KR 20160071422A KR 101709894 B1 KR101709894 B1 KR 101709894B1
Authority
KR
South Korea
Prior art keywords
frame
motion
motion vector
current frame
prediction
Prior art date
Application number
KR1020160071422A
Other languages
Korean (ko)
Other versions
KR20160145499A (en
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 한양대학교 산학협력단
Publication of KR20160145499A publication Critical patent/KR20160145499A/en
Application granted granted Critical
Publication of KR101709894B1 publication Critical patent/KR101709894B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/014Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • H04N7/0152High-definition television systems using spatial or temporal subsampling
    • H04N7/0155High-definition television systems using spatial or temporal subsampling using pixel blocks
    • H04N7/0157High-definition television systems using spatial or temporal subsampling using pixel blocks with motion estimation, e.g. involving the use of motion vectors

Landscapes

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

Abstract

움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치가 개시된다. 프레임 레이트 증가 방법은, 쌍방향 움직임 예측 후에 현재 프레임과 이전 프레임 내 적어도 하나의 방향에서의 평균 움직임 벡터 크기를 이용하여 이전 프레임 또는 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하는 단계, 동적 프레임인 경우 이전 프레임 또는 현재 프레임에 대해 확장 쌍방향 움직임 예측을 수행하는 단계, 확장 쌍방향 움직임 예측에서 생성되는 블록의 부화소들 중 일정 사이즈의 마스크 내 복수 부화소들 각각에서 탐색되는 움직임 벡터의 방향들이 미리 설정된 방향 범위들 중 어느 하나의 방향으로 동일한지를 판단하는 단계, 방향들이 동일하면, 미리 설정된 오차 범위 내에서 움직임 벡터의 크기들이 동일한지를 판단하는 단계, 및 크기들이 동일하면, 이전 프레임과 현재 프레임 사이에 생성될 중간 프레임의 블록에 대해 움직임 벡터 스무딩을 생략하는 단계를 포함한다.A frame rate increasing method considering the direction and magnitude of motion vectors and an apparatus using the same are disclosed. The method of increasing a frame rate may include: determining whether a previous frame or a current frame is a dynamic frame or a static frame using an average motion vector magnitude in at least one direction of a current frame and a previous frame after bidirectional motion prediction; Directional motion prediction for a previous frame or a current frame, the direction of motion vectors detected in each of the sub-pixels in the mask of a certain size among the sub-pixels of the block generated in the extended bidirectional motion prediction, Determining whether the sizes of the motion vectors are the same within a predetermined error range if the directions are the same, and if the sizes are the same, generating between the previous frame and the current frame To be a block of intermediate frames And omitting motion vector smoothing for the motion vector.

Description

움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치{METHOD FOR FRAME RATE UP-CONVERSION CONSIDERING THE DIRECTION AND MAGNITUDE OF MOTION VECTORS AND APPARATUS USING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a method of increasing a frame rate considering a direction and a size of motion vectors, and a device using the same.

본 발명은 고화질 영상을 위한 프레임 레이트 증가 변환 기술에 관한 것으로, 보다 상세하게는, 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a frame rate increase conversion technique for a high quality image, and more particularly, to a frame rate increase method considering a direction and a size of motion vectors and an apparatus using the same.

최근 UHD TV(ultrahigh Definition TV)가 대중화되면서 가격이 저렴해지고, 보급률이 높아짐에 따라 고화질 영상의 활용도가 높아지고 있다. 하지만, UHD TV의 해상도가 높아지고 사이즈가 커질수록 주파수가 낮아져 화면이 깜박거리는 플리커(flicker) 현상이 발생한다.Recently UHD TV (UltraHigh Definition TV) has been popularized and the price has become cheaper, and as the penetration rate has increased, the use of high quality video is increasing. However, as the resolution of the UHD TV increases and the size increases, the frequency becomes lower and the screen flickers.

EBME(Extended Bilateral Motion Estimation) 알고리듬은 BME(Bilateral Motion Estimation)를 한번 수행한 후 다음 블록의 그리드(grid)에서 영상의 가로축과 세로축 방향으로 블록의 크기의 반만큼 이동하여 새로운 블록을 형성하고, 다시 쌍방향 움직임예측을 수행하여 중첩된 영역에서 더 정확한 움직임 벡터를 찾기때문에 BME보다 PSNR이 높다.The Extended Bilateral Motion Estimation (EBME) algorithm performs a BME (Bilateral Motion Estimation) once, then moves a half of the size of the block in the horizontal axis and the vertical axis of the image in the grid of the next block to form a new block, PSNR is higher than BME because it performs bidirectional motion prediction and finds a more accurate motion vector in the overlapped region.

그러나 EBME(Extended Bilateral Motion Estimation) 알고리듬은 BME를 두 번 수행하고, 이어지는 MVS(Motion Vector Smoothing) 단계에서 모든 이상 벡터가 수정될 때까지 반복하기 때문에 높은 연산량을 요구한다.However, the Extended Bilateral Motion Estimation (EBME) algorithm requires a high computation amount because it performs BME twice and repeats until all the ideal vectors are corrected in the subsequent MVS (Motion Vector Smoothing) step.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, EBME(Extended Bilateral Motion Estimation) 수행 여부를 결정하여 시스템의 연산량을 줄이고 잡음대 신호비를 향상시킬 수 있는, 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치를 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and to provide a method and apparatus for determining whether or not to perform Extended Bilateral Motion Estimation (EBME), to reduce a computation amount of a system, A method of increasing the rate and an apparatus using the same.

상기 기술적 과제를 달성하기 위한 본 발명의 일 측면에서는, EBME(Extended Bilateral Motion Estimation) 알고리듬에서 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치를 제공한다.According to an aspect of the present invention, there is provided an apparatus for increasing a frame rate in consideration of a direction and a size of motion vectors in an Extended Bilateral Motion Estimation (EBME) algorithm.

본 실시예에서는, EBME의 연산량을 줄이기 위해 프레임 내의 x,y 방향 각각의 평균 움직임 벡터 크기를 사용하여 동적프레임과 정적프레임을 분류할 수 있다. 동적프레임인 경우 움직임 벡터의 변화가 많기 때문에 정확한 벡터를 찾는 EBME를 이용하고, 정적프레임인 경우 움직임 벡터의 변화가 적어 연산량이 낮은 BME를 이용할 수 있다.In this embodiment, dynamic frames and static frames can be classified using the average motion vector magnitudes in the x and y directions in the frame to reduce the amount of computation of EBME. In the case of a dynamic frame, EBME for finding an accurate vector is used because of a large change in a motion vector. In the case of a static frame, a BME having a low computation amount due to a small change in motion vector can be used.

또한, 움직임벡터 스무딩(Motion Vector Smoothing) 단계에서 연산량을 줄이기 위하여 동일한 움직임 벡터들의 방향과 크기를 판단하여 동일한 움직임벡터들이면 움직임 벡터 스무딩 단계를 통과 즉 생략할 수 있다. 이를 위해, 프레임 레이트 증가 방법은, 오리지날 블록 또는 현재 블록의 주변 블록들에 대한 움직임 벡터들의 방향성을 판단하고, 주변 움직임 벡터들이 동일한 방향성을 가지고 주변 움직임 벡터들이 일정 크기 이하의 크기 차이를 가질 때, 움직임 벡터들의 동일 유무를 판단할 수 있다.In order to reduce the amount of computation in the motion vector smoothing step, the same direction and size of the motion vectors may be determined, and the same motion vectors may be passed through the motion vector smoothing step. To this end, the frame rate increasing method determines the directionality of the motion vectors of the original block or neighboring blocks of the current block, and when the neighboring motion vectors have the same direction and the neighboring motion vectors have a size difference of less than a certain size, It is possible to determine whether the motion vectors are the same or not.

상기 기술적 과제를 달성하기 위한 본 발명의 다른 측면에서는, 프레임 내 블록의 움직임 정보를 구하기 위한 쌍방향 움직임 예측 후에 현재 프레임과 이전 프레임 내 적어도 하나의 방향에서의 평균 움직임 벡터 크기를 이용하여 이전 프레임 또는 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하는 단계; 동적 프레임으로 판단되면, 이전 프레임 또는 현재 프레임에 대해 확장 쌍방향 움직임 예측을 수행하는 단계; 확장 쌍방향 움직임 예측에서 생성되는 블록의 부화소들 중 일정 사이즈의 마스크 내 복수 부화소들 각각에서 탐색되는 움직임 벡터의 방향들이 미리 설정된 방향 범위들 중 어느 하나의 방향으로 동일한지를 판단하는 단계; 상기 방향들이 동일하면, 미리 설정된 오차 범위 내에서 움직임 벡터의 크기들이 동일한지를 판단하는 단계; 및 상기 크기들이 동일하면, 이전 프레임과 현재 프레임 사이에 생성될 중간 프레임의 블록에 대해 움직임 벡터 스무딩을 생략하는 단계를 포함하는, 프레임 레이트 증가 방법이 제공된다.According to another aspect of the present invention, there is provided a motion estimation method for estimating a motion of a block in a current frame and a current frame using a mean motion vector magnitude in at least one direction in a current frame and a previous frame, Determining whether the frame is a dynamic frame or a static frame; Performing extended bidirectional motion prediction for a previous frame or a current frame if it is determined to be a dynamic frame; Determining whether directions of motion vectors searched in each of a plurality of sub-pixels in a mask of a certain size among sub-pixels of a block generated in extended bidirectional motion prediction are the same in any one of predetermined direction ranges; Determining whether the sizes of the motion vectors are the same within a predetermined error range if the directions are the same; And omitting motion vector smoothing for a block of an intermediate frame to be generated between a previous frame and a current frame if the sizes are equal.

여기서, 프레임 레이트 증가 방법은, 상기 동일한 방향인지를 판단하는 단계에서의 판단 결과가 동일한 방향이 아닌 것으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining whether the same direction is not the same direction can do.

여기서, 프레임 레이트 증가 방법은, 상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining whether the same size is not the same size can do.

여기서, 프레임 레이트 증가 방법은, 상기 수정하는 단계 이후이거나, 혹은 상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기로 나오면, 중간 프레임을 생성하기 전에 이전 프레임 또는 현재 프레임 내 현재 블록에 대한 중첩 블록 움직임 보상을 수행하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may be performed after the modifying step, or when the determination result in the step of determining whether the same size is the same size, And performing superposed block motion compensation.

여기서, 프레임 레이트 증가 방법은, 상기 동적 프레임인지 정적 프레임인지를 판단하는 단계에서의 판단 결과가 정적 프레임으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들에 대한 움직임 벡터 스무딩을 수행하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may include performing motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame if the determination result in the determination of the dynamic frame or the static frame is a static frame As shown in FIG.

여기서, 프레임 레이트 증가 방법은, 상기 중첩 블록 움직임 보상을 수행하는 단계 이후, 또는 상기 움직임 벡터 스무싱을 수행하는 단계 이후에, 움직임 보상을 이용하여 중간 프레임을 생성하기 전에 이전 프레임과 현재 프레임 중 일치하는 영역이 많은 프레임에 높은 가중치를 부여하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include a step of performing a motion vector smoothing after performing the overlapping block motion compensation, or after performing the motion vector smoothing, And assigning a high weight to a frame having a large number of regions.

여기서, 마스크의 사이즈는 화소 단위로서 3×3일 수 있다.Here, the size of the mask may be 3x3 as a pixel unit.

상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 측면에서는, 현재 프레임과 이전 프레임 내 적어도 하나의 방향에서 이전 프레임의 블록들과 현재 프레임의 블록들의 평균 움직임 벡터 크기를 이용하여 이전 프레임 또는 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하는 단계; 및 판단하는 단계에서의 결과가 정적 프레임이면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들에 대한 움직임 벡터 스무딩을 수행하는 단계를 포함하는, 프레임 레이트 증가 방법이 제공된다.According to still another aspect of the present invention, there is provided a method for decoding a current frame or a current frame by using an average motion vector magnitude of blocks of a previous frame and a current frame in at least one direction of a current frame and a previous frame, Determining whether the frame is a dynamic frame or a static frame; And performing a motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame if the result in the determining step is a static frame.

여기서, 프레임 레이트 증가 방법은, 동적 프레임인지 정적 프레임인지를 판단하는 단계에서의 판단 결과가 정적 프레임이면, 이전 프레임 또는 현재 프레임의 예측 유닛들에 대해 확장 쌍방향 움직임 예측을 수행하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include performing extended bidirectional motion prediction for prediction units of a previous frame or a current frame if the determination result in the step of determining whether the frame is a dynamic frame or a static frame is a static frame .

여기서, 프레임 레이트 증가 방법은, 상기 확장 쌍방향 움직임 예측을 수행하는 단계 후에, 확장 쌍방향 움직임 예측에서 생성되는 서브 예측 유닛들 중 일정 사이즈의 마스크 내 복수 영역들 각각에서 탐색되는 움직임 벡터들의 방향들이 미리 설정된 방향 범위들 중에서 어느 하나의 동일한 방향인지를 판단하는 단계; 상기 판단 결과가 동일한 방향이면, 움직임 벡터들의 크기가 미리 설정된 오차 범위 내에서 동일한 크기인지를 판단하는 단계; 및 상기 판단 결과가 동일한 크기이면, 이전 프레임 또는 현재 프레임에 대한 움직임 벡터 스무딩을 생략하는 단계를 포함할 수 있다.Here, the frame rate increasing method may further include, after performing the extended bidirectional motion prediction, determining a direction of motion vectors that are searched in each of a plurality of regions in a mask of a predetermined size among sub-prediction units generated in the extended bidirectional motion prediction, Determining which one of the direction ranges is in the same direction; Determining whether the magnitudes of the motion vectors are the same within a predetermined error range if the determination result is in the same direction; And omitting the motion vector smoothing for the previous frame or the current frame if the determination result is the same size.

여기서, 프레임 레이트 증가 방법은, 상기 동일한 방향인지를 판단하는 단계에서의 판단 결과가 동일한 방향이 아닌 것으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining whether the same direction is not the same direction can do.

여기서, 프레임 레이트 증가 방법은, 상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함할 수 있다.Here, the frame rate increasing method may further include modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining whether the same size is not the same size can do.

여기서, 프레임 레이트 증가 방법은, 상기 수정하는 단계 이후이거나, 혹은 상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기인 것으로 나오면, 이전 프레임 또는 현재 프레임 내 블록들에 대한 중첩 블록 움직임 보상을 수행하는 단계를 더 포함할 수 있다.Here, if the determination result in the step of determining whether the size is equal to or after the modifying step is equal to the same size, the method of increasing the frame rate may be such that the superimposed block motion compensation for the previous frame or the intra- The method comprising the steps of:

여기서, 동일한 크기인지를 판단하는 단계는 움직임 벡터의 크기가 0.3보다 작은지를 판단할 수 있다.Here, the step of determining whether the size is the same may determine whether the size of the motion vector is smaller than 0.3.

여기서, 동적 프레임인지 정적 프레임인지를 판단하는 단계는 평균 움직임 벡터 크기가 0.6보다 큰지를 판단할 수 있다.Here, the step of determining whether the frame is a dynamic frame or a static frame may determine whether an average motion vector magnitude is greater than 0.6.

상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 측면에서는, 입력 영상을 시간적 예측과 공간적 예측, 변환 부호화, 양자화 및 엔트로피 코딩에 통해 부호화하는 영상 부호화 장치로서, 부호화 및 프레임 레이트 변환을 위한 프로그램 또는 프로그램 코드를 저장하는 메모리; 및 메모리에 연결되어 프로그램을 실행하는 프로세서를 포함하는 영상 부호화 장치가 제공된다.According to another aspect of the present invention, there is provided an image encoding apparatus for encoding an input image through temporal prediction, spatial prediction, transcoding, quantization, and entropy coding, Memory to store code; And a processor connected to the memory and executing the program.

여기서, 프로세서는 프레임 레이트 변환을 위한 프로그램에 의해, 현재 프레임과 현재 프레임의 이전 프레임 내 적어도 하나의 방향에서 이전 프레임의 블록들과 현재 프레임의 블록들의 평균 움직임 벡터 크기를 이용하여 이전 프레임 또는 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하고, 판단 결과가 동적 프레임이면, 이전 프레임 또는 현재 프레임의 예측 유닛들에 대해 확장 쌍방향 움직임 예측을 수행하고, 확장 쌍방향 움직임 예측에서 생성되는 서브 예측 유닛들 중 일정 사이즈의 마스크 내 복수 영역들 각각에서 탐색되는 움직임 벡터들의 방향들이 미리 설정된 방향 범위들 중에서 어느 하나의 동일한 방향인지를 판단하고, 판단 결과가 동일한 방향이면, 움직임 벡터들의 크기가 미리 설정된 오차 범위 내에서 동일한 크기인지를 판단하고, 판단 결과가 동일한 크기이면, 현재 프레임에 대한 움직임 벡터 스무딩을 생략할 수 있다.Here, the processor may determine, by a program for frame rate conversion, whether a previous frame or a current frame, using the average motion vector magnitudes of the current frame and the blocks of the previous frame in at least one direction of the current frame, Directional motion prediction is performed for prediction units of a previous frame or a current frame, and if the determination result is a dynamic frame, it is determined whether or not the dynamic prediction frame is a dynamic frame or a static frame. Size of the motion vectors are determined to be the same direction in the predetermined direction ranges, and if the determination result is the same direction, it is determined that the magnitudes of the motion vectors are within a predetermined error range Same size And if the determination result is the same size, the motion vector smoothing for the current frame can be omitted.

여기서, 프로세서는, 동일한 방향인지의 판단 결과가 동일한 방향이 아닌 것으로 나오거나, 동일한 크기인지의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정할 수 있다.Here, if the determination result of the same direction is not the same direction, or if the determination result of the same magnitude is not the same magnitude, the processor may use motion vectors of prediction units of the previous frame or the current frame Can be modified.

여기서, 프로세서는, 필터를 이용한 수정 후에, 또는 상기 동일한 크기인지의 판단 결과가 동일한 크기인 것으로 나오면, 중간 프레임을 생성하기 전에 이전 프레임 또는 현재 프레임 내 블록들에 대한 중첩 블록 움직임 보상을 수행할 수 있다.Here, the processor may perform the superimposed block motion compensation on the previous frame or blocks in the current frame before generating the intermediate frame, if the determination result of the same size or after the modification using the filter is found to be the same size have.

여기서, 프로세서는, 동적 프레임인지 정적 프레임인지의 판단 결과가 정적 프레임으로 나오면, 이전 프레임 또는 현재 프레임의 예측 유닛들의 움직임 벡터들에 대하여 움직임 벡터 스무딩을 수행할 수 있다.Here, the processor may perform motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame if the determination result of the dynamic frame or the static frame is output as a static frame.

여기서, 프로세서는, 중첩 블록 움직임 보상을 수행하거나 움직임 벡터 스무싱을 수행한 후에, 상기 중간 프레임을 생성하기 전에 움직임 보상을 이용하여 이전 프레임과 현재 프레임 중 일치하는 영역이 많은 프레임에 높은 가중치를 부여할 수 있다.Here, the processor performs a superimposed block motion compensation or motion vector smoothing, and then, before generating the intermediate frame, the processor uses a motion compensation to give a high weight to a frame in which a region of the previous frame matches the current frame, can do.

상술한 바와 같은 본 발명의 실시예에 따른 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치를 사용할 경우에는, 영상 부호화 및/또는 복호화를 위한 시스템의 연산량을 줄이고, 잡음대 신호비를 향상시킬 수 있다.When the frame rate increasing method and the apparatus using the frame rate increasing method considering the direction and size of the motion vectors according to the embodiment of the present invention as described above are used, the amount of computation of the system for image encoding and / or decoding is reduced, Can be improved.

즉, 본 발명에 의하면, EBME(Extended Bilateral Motion Estimation)의 수행 여부를 결정하여 EBME의 실행 횟수를 감소시킴으로써 시스템의 연산량을 줄일 수 있다. 또한, 움직임 벡터들의 방향과 크기에 기반하여 MVS(Motion Vector Smoothing) 단계의 수행 여부를 결정함으로써 시스템의 연산량을 줄일 수 있다.That is, according to the present invention, it is possible to reduce the amount of computation of the system by determining whether to perform Extended Bilateral Motion Estimation (EBME) and reducing the number of execution of EBME. In addition, the amount of computation of the system can be reduced by determining whether to perform the MVS (Motion Vector Smoothing) step based on the direction and size of the motion vectors.

또한, 본 발명에 의하면, EBME와 MVS의 수행 여부에 대한 결정을 종합적으로 수행함으로써 시스템의 성능과 효율을 향상시킬 수 있다. 즉, 기존 EBME 알고리듬을 이용하는 시스템에 비해 수행시간은 단축되고 PSNR(Peak Signal to Noise Ratio)을 향상시킬 수 있다.In addition, according to the present invention, performance and efficiency of the system can be improved by comprehensively determining whether to perform EBME and MVS. That is, the execution time is shortened and the peak signal to noise ratio (PSNR) can be improved as compared with the system using the existing EBME algorithm.

도 1는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 오리지날 블록(original block)에 대한 쌍방향 움직임 예측 과정을 설명하기 위한 예시도이다.
도 2는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 EBME(Extended Bilateral Motion Estimation)에서 중복된 격자 움직임 벡터 선택 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 MVS(Motion Vector Smoothing) 과정을 설명하기 위한 예시도이다.
도 4는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 SOADCC 및 SOADCP에 대한 진행 과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일실시예에 따른 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법에 대한 전체적인 흐름도이다.
도 6은 도 5의 프레임 레이트 증가 방법에서 움직임 벡터들의 방향 판단 과정을 설명하기 위한 도면이다.
도 7은 도 6의 움직임 벡터들의 방향 판단 과정에서 동일한 방향을 판단하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 장치에 대한 개략적인 블록도이다.
1 is an exemplary diagram for explaining a bidirectional motion prediction process for an original block that can be employed in the frame rate increasing method according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining an overlapping lattice motion vector selection process in Extended Bilateral Motion Estimation (EBME) that can be employed in the frame rate increasing method according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an MVS (Motion Vector Smoothing) process that can be employed in the frame rate increasing method according to an embodiment of the present invention.
4 is an exemplary diagram for explaining the progress of the SOAD CC and the SOAD CP that can be employed in the frame rate increasing method according to an embodiment of the present invention.
5 is a flowchart illustrating a frame rate increasing method considering the direction and size of motion vectors according to an embodiment of the present invention.
FIG. 6 is a diagram for explaining a direction determination process of motion vectors in the frame rate increasing method of FIG.
FIG. 7 is a diagram for explaining a process of determining the same direction in the motion vector determination process of FIG.
8 is a block diagram of an image encoding apparatus according to another embodiment of the present invention.
9 is a schematic block diagram of an image encoding apparatus according to another embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 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.

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

또한, 본 명세서에서 오해의 소지가 없는 한, 어떤 문자의 첨자를 가질 때, 표시의 편의를 위해 첨자는 일반 문자와 동일한 크기 또는 형태로 표현될 수 있다.Unless there is a misunderstanding in the present specification, when a subscript of a character is included, subscripts can be expressed in the same size or form as ordinary characters for convenience of display.

본 명세서에서 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미일 수 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined herein, all terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed in a manner consistent with the meaning in the context of the relevant art and are not to be construed as ideal or overly formal, unless explicitly defined herein.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 오리지날 블록(original block)에 대한 쌍방향 움직임 예측 과정을 설명하기 위한 예시도이다.1 is an exemplary diagram for explaining a bidirectional motion prediction process for an original block that can be employed in the frame rate increasing method according to an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 따른 프레임 레이트 증가 방법에 채용되는 쌍방향 움직임 예측(Bilateral Motion Estimation, BME)은, 이전 프레임(previous frame, 11)과 현재 프레임(current frame, 12) 사이에 배열되는 보간 프레임(interpolated frame, 11)의 블록(15)을 기준으로 현재 프레임(12)과 이전 프레임(13)으로부터 대칭성을 이용하여 움직임 벡터를 탐색한다. 여기서 보간 프레임(11)은 쌍방향 움직임 예측에 의해 보간될 프레임(frame to be interpolated)일 수 있다.Referring to FIG. 1, the bilateral motion estimation (BME) employed in the frame rate increasing method according to the present embodiment includes an arrangement of a previous frame 11 and a current frame 12 The motion vector is searched using the symmetry from the current frame 12 and the previous frame 13 with reference to the block 15 of the interpolated frame 11. Here, the interpolation frame 11 may be a frame to be interpolated by bidirectional motion prediction.

보간 프레임(11)의 특정 블록(15)에 대응하여 현재 프레임(12)과 이전 프레임(13)에는 서치 영역(search range, D)을 중심으로 원본 블록(original, R1, R2)이 각각 탐색될 수 있다. BME에서 현재 프레임(12)의 원본 블록(R1)과 새로운 블록(16)이 탐색될 수 있고, 이전 프레임(13)의 원복 블록(R2)과 새로운 블록(17)이 탐색될 수 있다. 이때, 원본 블록과 새로운 블록 사이에는 중첩 영역이 발생할 수 있다. 즉, 새로운 블록은 원본 블록과 중첩 영역을 가지지 않는 블록이거나 중첩 영역을 갖는 오버랩 블록(overlapped block, B2)일 수 있다. 그리고 원본 블록이나 새로운 블록은 보간 프레임(11)의 블록(15)을 기준으로 순방향 움직임 벡터(18)와 역방향 움직임 벡터(19)로 표현되거나 참조될 수 있다.The original blocks R1, R2 are respectively searched on the search range D in the current frame 12 and the previous frame 13 corresponding to the specific block 15 of the interpolation frame 11 . The original block R1 and the new block 16 of the current frame 12 can be searched in the BME and the original block R2 and the new block 17 of the previous frame 13 can be searched. At this time, an overlap area may occur between the original block and the new block. That is, the new block may be a block that does not have an overlap region with the original block, or an overlapped block (B2) having an overlap region. The original block or the new block may be represented or referred to as a forward motion vector 18 and a backward motion vector 19 based on the block 15 of the interpolation frame 11.

본 실시예의 프레임 레이트 증가 방법은, 오리지널 블록(R2)에 대하여 수학식 1 및 수학식 2를 이용하여 움직임을 예측할 수 있다. 그리고 정확한 움직임 벡터를 구하기 위해 추가적으로 오버랩 블록(B2)을 수학식 1 및 수학식 2를 이용하여 SBAD(Sum of Bilateral Absolute Differences) 값이 최소가 되는 위치(일례로, 참조부호 17의 블록)로 정할 수 있다.The frame rate increasing method of the present embodiment can predict the motion of the original block R2 using Equations (1) and (2). Further, in order to obtain an accurate motion vector, the overlap block B2 is further defined as a position (for example, block 17) at which the SBAD (Sum of Bilateral Absolute Differential) value becomes minimum using Equations (1) and .

Figure 112016055236541-pat00001
Figure 112016055236541-pat00001

Figure 112016055236541-pat00002
Figure 112016055236541-pat00002

위의 수학식 1 및 수학식 2에서,

Figure 112016055236541-pat00003
는 움직임 벡터 후보를 나타내며,
Figure 112016055236541-pat00004
은 이전 프레임,
Figure 112016055236541-pat00005
은 현재 프레임을 나타낸다.In the above equations (1) and (2)
Figure 112016055236541-pat00003
Denotes a motion vector candidate,
Figure 112016055236541-pat00004
Lt; / RTI >
Figure 112016055236541-pat00005
Represents the current frame.

다음으로, 원본 블록(original block, R2)과 겹쳐지는 영역을 포함하는 오버랩 블록(overlapped block, B2)에 대하여 움직임 벡터를 비교할 수 있다.Next, a motion vector can be compared with an overlapped block (B2) including an area overlapping the original block (R2).

본 실시예에 의하면, 보간 프레임 생성 과정에서 홀과 중첩 영역이 생기는 단방향 예측과 달리, 보간 프레임을 기준으로 블록 단위로 순차적으로 움직임벡터를 구하여 홀과 중첩 영역이 발생하지 않을 수 있을 뿐 아니라, 의도적으로 중첩 영역을 발생시켜 움직임 벡터를 정밀하게 탐색할 수도 있다.According to this embodiment, unlike the unidirectional prediction in which a hole and an overlapped region are generated in the interpolation frame generation process, a motion vector is sequentially obtained on a block-by-block basis with respect to an interpolation frame so that holes and overlapping regions may not occur, So that the motion vector can be precisely searched.

도 2는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 EBME(Extended Bilateral Motion Estimation)에서 중복된 격자 움직임 벡터 선택 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining an overlapping lattice motion vector selection process in Extended Bilateral Motion Estimation (EBME) that can be employed in the frame rate increasing method according to an embodiment of the present invention.

도 2를 참조하면, 왼쪽의 블록(VF1) 내 복수의 블록들(서브블록들)은 16×16 크기 단위를 가질 수 있다. 프레임 레이트 탐색 방법은 서브블록들 각각에 대해 BME를 수행하여 움직임 벡터를 탐색할 수 있다. 탐색된 9개의 움직임 벡터들가 각 서브블록에 화살표로 표시되어 있다.Referring to FIG. 2, a plurality of blocks (sub-blocks) in the left block VF1 may have a 16x16 size unit. The frame rate search method can search a motion vector by performing BME on each of the sub-blocks. The nine motion vectors searched are indicated by arrows in each sub-block.

중간의 블록(VF1)은 BME를 한번 수행한 후 다음 블록의 그리드(grid)를 서브블록 한 변의 절반 길이만큼 영상의 가로축과 세로축 방향으로 이동한 새로운 블록(VF2)과 중첩 영역을 형성하고 있다. 즉, 프레임 레이트 증가 방법은 서브블록들 사이에 수직 경계(G1)를 갖는 이전 블록과 부분적으로 중첩되며 다른 수직 경계(G2)를 갖는 블록(VF2)을 생성할 수 있다. 블록(VF2)의 4개의 서브블록들에서 탐색된 움직인 벡터들은 각 서브블록에 화살표로 표시되어 있다.The intermediate block VF1 forms a superimposed area with a new block VF2 obtained by performing BME once and then moving the grid of the next block to the horizontal axis and the vertical axis of the image by half the length of one side of the subblock. That is, the frame rate increasing method may generate a block VF2 that partially overlaps a previous block having a vertical boundary G1 between subblocks and another vertical boundary G2. Moving vectors found in the four sub-blocks of the block VF2 are indicated by arrows in each sub-block.

보간 프레임의 탐색 영역 전체에서 블록 단위의 확장 쌍방향 움직임 예측이 수행되면, 다시 말해서, 각 서브블록을 네 개의 2차 서브블록들로 세분화하고, 세분화된 2차 서브블록들을 가진 도 2의 오른쪽 블록(VF3)에서 2차 서브블록들 각각의 움직임 벡터를 탐색할 수 있다. 2차 서브블록은 8×8 크기 단위를 가질 수 있다.If extended bidirectional motion prediction is performed on a block-by-block basis over the entire search area of the interpolation frame, that is, subdividing each sub-block into four secondary sub-blocks and subdividing the right block of FIG. 2 The motion vector of each of the secondary subblocks can be searched. The secondary subblock may have an 8x8 size unit.

본 실시예에 의하면, EBME(Extended Bilateral Motion Estimation)는, BME을 통해 현재 블록의 움직임 벡터를 한번 탐색한 후, 다음 블록의 그리드(grid)를 영상의 가로축과 세로축 방향으로 블록 한 변 길이의 절반만큼 이동하여 각 서브블록의 움직임 벡터를 탐색하고 이러한 과정의 반복을 통해 새로운 블록(VF3)의 각 서브블록(2차 서브블록)에 대하여 다시 쌍방향 움직임 예측을 수행할 수 있고, 그에 의해 BME보다 더욱 정밀하게 움직임 벡터를 탐색할 수 있다.According to the present embodiment, Extended Bilateral Motion Estimation (EBME) searches motion vectors of the current block through BME, and then divides the grid of the next block into half The motion vector of each sub-block is searched for and the bidirectional motion prediction can be performed again for each sub-block (secondary sub-block) of the new block VF3 through the repetition of this process, The motion vector can be precisely searched.

즉, 본 실시예에 의하면, 쌍방향 움직임 예측을 한번 수행하여 원본 블록들의 움직임 벡터들을 구한 후, 원본 블록 그리드에서 가로축과 세로축 방향으로 반만큼 이동한 새로운 블록인 오버랩 블록을 형성하고 오버랩 블록에서 쌍방향 움직임 예측을 수행하여 오버랩 움직임 벡터들을 구할 수 있다. 그런 다음, 본원 블록과 오버랩 블록의 겹쳐지는 영역에 대하여 움직임 벡터를 비교할 수 있다. 각각의 블록은 16×16 크기 단위로 구한 움직임 벡터를 네 개의 8×8 단위 블록으로 나누고 겹치는 부분에 대하여 SBAD를 비교하여 최소가 되는 움직임 벡터로 수정할 수 있다.That is, according to the present embodiment, the motion vectors of the original blocks are obtained by performing the bidirectional motion prediction once, and then an overlap block, which is a new block shifted by half in the horizontal axis and the vertical axis direction, is formed in the original block grid. Prediction can be performed to obtain overlapping motion vectors. Then, the motion vectors can be compared with respect to overlapping areas of the original block and the overlap block. Each block can be modified to a minimum motion vector by dividing the motion vector obtained by the 16 × 16 size unit into four 8 × 8 unit blocks and comparing the SBAD with the overlapping portion.

한편, 본 실시예에 따른 프레임 레이트 증가 방법은 BME 및 EBME에 더하여 MVS(motion vector smoothing)을 선택적으로 수행하거나 생략할 수 있다. 이에 MVS에 대하여 간략히 설명하기로 한다.Meanwhile, the frame rate increasing method according to the present embodiment may selectively perform or omit MVS (motion vector smoothing) in addition to BME and EBME. Hereinafter, MVS will be briefly described.

도 3은 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 MVS(Motion Vector Smoothing) 과정을 설명하기 위한 예시도이다.FIG. 3 is a diagram illustrating an MVS (Motion Vector Smoothing) process that can be employed in the frame rate increasing method according to an embodiment of the present invention.

MVS는 위의 BME 또는 EBME를 통해 최종적으로 구해진 움직임 벡터에서 잘못 판단된 움직임 벡터들을 수정하기 위한 것이다. 즉, 최종적으로 구해진 움직임 벡터에는 잘못 판단된 움직임 벡터들이 존재한다. 따라서, 본 실시예의 프레임 레이트 증가 방법은 이상 벡터를 판단할 수 있다. 이상 벡터는 수학식 3을 이용하여

Figure 112016055236541-pat00006
인 경우에 해당할 수 있다.The MVS is intended to correct motion vectors that are erroneously judged in the motion vector finally obtained through the above BME or EBME. That is, there are motion vectors that are judged to be wrong in the finally obtained motion vector. Therefore, the frame rate increasing method of this embodiment can determine the abnormal vector. The ideal vector is calculated using Equation 3
Figure 112016055236541-pat00006
And the like.

구체적으로, 도 3에 나타낸 바와 같이, 이상 벡터(

Figure 112016055236541-pat00007
)는 정확한 움직임 벡터(correct motion vector)(V1 내지 V8)에 미디언(median) 필터를 적용한 결과를 토대로 수정될 수 있다. 이상 벡터(
Figure 112016055236541-pat00008
)가 한 번의 MVS 수행을 거쳐도 남아있으면, 도 3의 윈도우들(W1→W2→W3)과 같이 다시 동일한 MVS 과정을 반복 수행할 수 있다. 그리고, 각각의 움직임 벡터에 플래그(flag)를 표시하여 flag=1일 때, 이상 벡터로 판단하고, flag=0일 때 정확한 움직임 벡터로 판단할 수 있다.Specifically, as shown in Fig. 3, the ideal vector (
Figure 112016055236541-pat00007
May be modified based on the result of applying a median filter to the correct motion vectors V 1 through V 8 . The ideal vector (
Figure 112016055236541-pat00008
) Remains after one MVS operation, the same MVS process can be repeated again as in the windows (W1? W2? W3) of FIG. Then, a flag is displayed in each motion vector, and when flag = 1, it is determined as an ideal vector, and when flag = 0, it can be determined as an accurate motion vector.

Figure 112016055236541-pat00009
Figure 112016055236541-pat00009

위의 수학식 3에서

Figure 112016055236541-pat00010
은 평균 움직임 벡터를 나타낸다.In Equation 3,
Figure 112016055236541-pat00010
Represents an average motion vector.

한편, 본 실시예에 따른 프레임 레이트 증가 방법은 BME, EBME 및 MVS의 선택적인 수행 또는 생략에 더하여 MCI(Motion Compensated Interpolation) 과정을 선택적으로 수행할 수 있다. MCI는 가중치를 사용하여 이전 프레임과 현재 프레임 중 일치하는 영역이 많은 프레임을 찾아 높은 가중치를 부여한다. MCI는 SOAD(Sum of Overlapped area Absolute Difference)를 이용할 수 있다.Meanwhile, the frame rate increasing method according to the present embodiment may selectively perform MCI (Motion Compensated Interpolation) in addition to performing or omitting optional BME, EBME, and MVS. The MCI finds a frame with a large number of matching regions between the previous frame and the current frame using a weight, and assigns a high weight to the frame. MCI can use SOAD (Sum of Overlapped Area Absolute Difference).

도 4는 본 발명의 일실시예에 따른 프레임 레이트 증가 방법에 채용할 수 있는 SOADCC 및 SOADCP에 대한 진행 과정을 설명하기 위한 예시도이다.4 is an exemplary diagram for explaining the progress of the SOAD CC and the SOAD CP that can be employed in the frame rate increasing method according to an embodiment of the present invention.

먼저, 도 4에 나타낸 바와 같이, 프레임 레이트 증가 방법은 수학식 4의 SOAD(Sum of Overlapped area Absolute Difference)를 이용하여 확장된 블록(

Figure 112016055236541-pat00011
)의 오차 크기를 비교할 수 있다.First, as shown in FIG. 4, the frame rate increasing method uses an extended sum of overlapped area absolute difference (SOAD) of Equation (4)
Figure 112016055236541-pat00011
) Can be compared.

Figure 112016055236541-pat00012
Figure 112016055236541-pat00012

위의 수학식 4에서

Figure 112016055236541-pat00013
는 현재 프레임(B4)과 현재 가상 보간프레임(F2)의 확장된 블록을 나타내고,
Figure 112016055236541-pat00014
는 이전 가상 보간프레임(F4)의 확장된 블록을 나타낸다. 그리고
Figure 112016055236541-pat00015
Figure 112016055236541-pat00016
는 확장된 블록(
Figure 112016055236541-pat00017
또는
Figure 112016055236541-pat00018
)의 영역에 대한
Figure 112016055236541-pat00019
Figure 112016055236541-pat00020
의 위치를 나타낸다.In Equation (4)
Figure 112016055236541-pat00013
Represents an extended block of the current frame B4 and the current virtual interpolation frame F2,
Figure 112016055236541-pat00014
Represents an extended block of the previous virtual interpolation frame F4. And
Figure 112016055236541-pat00015
Wow
Figure 112016055236541-pat00016
Is an extended block (
Figure 112016055236541-pat00017
or
Figure 112016055236541-pat00018
) For the region of
Figure 112016055236541-pat00019
Wow
Figure 112016055236541-pat00020
.

도 4를 참조하면,

Figure 112016055236541-pat00021
는 현재 프레임(B4)에서 확장된 블록(
Figure 112016055236541-pat00022
)과 이전 가상 보상 프레임(F4)에서 확장된 블록(
Figure 112016055236541-pat00023
)의 차에 대한 절대값이고,
Figure 112016055236541-pat00024
는 현재 프레임(B4)에서 확장된 블록(
Figure 112016055236541-pat00025
)과 현재 가상 보간프레임(F2)에서 확장된 블록의 차에 대한 절대값이다. 현재 가상 보간프레임(F2)에서 확장된 블록은 현재 프레임(B4)에서 확장된 블록(
Figure 112016055236541-pat00026
)과 동일하거나 미리 정해진 스케일링의 위치나 크기를 가질 수 있다.Referring to Figure 4,
Figure 112016055236541-pat00021
Lt; RTI ID = 0.0 > (B4) < / RTI &
Figure 112016055236541-pat00022
) And the previous block (F4) in the previous virtual compensation frame
Figure 112016055236541-pat00023
), ≪ / RTI >
Figure 112016055236541-pat00024
Lt; RTI ID = 0.0 > (B4) < / RTI &
Figure 112016055236541-pat00025
) And the difference between the expanded blocks in the current virtual interpolation frame F2. The block expanded in the current virtual interpolation frame F2 is expanded in the current frame B4
Figure 112016055236541-pat00026
) Or the position or size of the predetermined scaling.

본 실시예의 MCI에서,

Figure 112016055236541-pat00027
Figure 112016055236541-pat00028
는 현재 프레임(B4)에서 겹쳐지는 영역을 판단하는 값 또는 정보일 수 있다.In the MCI of this embodiment,
Figure 112016055236541-pat00027
Wow
Figure 112016055236541-pat00028
May be a value or information for determining an overlapping area in the current frame B4.

현재 프레임과 이전 프레임의 확장된 블록의 겹쳐지는 영역에 따라 가중치(α)가 변할 수 있다. 이를 나타내면 수학식 5와 같다.The weighting value? May be changed according to the overlapping area of the current block and the extended block of the previous frame. This is expressed by Equation (5).

Figure 112016055236541-pat00029
Figure 112016055236541-pat00029

위의 수학식 5에서

Figure 112016055236541-pat00030
는 이전 프레임에서 확장된 블록과 이전 가상 보간프레임(F4)에서 확장된 블록의 차에 대한 절대값이고,
Figure 112016055236541-pat00031
는 이전 프레임에서 확장된 블록과 현재 가상 보간프레임(F2)에서 확장된 블록의 차에 대한 절대값이다.In Equation (5)
Figure 112016055236541-pat00030
Is the absolute value of the difference between the block extended in the previous frame and the block expanded in the previous virtual interpolation frame F4,
Figure 112016055236541-pat00031
Is the absolute value of the difference between the expanded block in the previous frame and the expanded block in the current virtual interpolation frame F2.

전술한 MCI에 의해 가중치가 적용되는 보간 프레임을 최종식으로 나타내면 수학식 6과 같다.The final expression of the interpolation frame to which the weight is applied by the above-described MCI is shown in Equation (6).

Figure 112016055236541-pat00032
Figure 112016055236541-pat00032

위의 수학식 6에서,

Figure 112016055236541-pat00033
는 OBMC(Overlapped Block Motion Compensation)를 위한 함수를 나타낸다. 그리고
Figure 112016055236541-pat00034
은 확장 블록의 이전 프레임을 나타내고,
Figure 112016055236541-pat00035
은 확장 블록의 현재 프레임을 나타낸다.In Equation (6) above,
Figure 112016055236541-pat00033
Represents a function for OBMC (Overlapped Block Motion Compensation). And
Figure 112016055236541-pat00034
Represents the previous frame of the expansion block,
Figure 112016055236541-pat00035
Represents the current frame of the extension block.

한편, UHD(ultrahigh definition) TV의 대중화와 고화질 영상의 수요가 증가하면서 디스플레이 장치의 해상도가 높아지고 사이즈가 커짐에 따라 상대적으로 장치에서 동작하는 주파수가 낮아져 화면이 깜박거리는 문제가 발생할 수 있는데, 이러한 문제를 해결하기 위해서 주파수를 증가시키는 프레임 레이트 증가 변환(frame rate up-conversion, FRUC) 기술을 사용할 수 있다. 그 경우, 본 실시예에 따른 프레임 레이트 증가 방법을 적용하면, 영상 처리의 성능와 효율을 현저하게 향상시킬 수 있다. 이하에서는 본 실시예에서 제안하는 프레임 레이트 증가 변환 알고리듬을 상세히 설명한다.On the other hand, as the popularity of UHD (ultrahigh definition) TVs and the demand for high-quality video images increase, the frequency of the device operating in the device becomes relatively low as the resolution of the display device increases and the size increases. A frame rate up-conversion (FRUC) technique may be used to increase the frequency to solve the problem. In this case, by applying the frame rate increasing method according to the present embodiment, the performance and efficiency of image processing can be remarkably improved. Hereinafter, the frame rate increasing conversion algorithm proposed in the present embodiment will be described in detail.

도 5는 본 발명의 일실시예에 따른 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법에 대한 흐름도이다.5 is a flowchart illustrating a frame rate increasing method considering the direction and magnitude of motion vectors according to an exemplary embodiment of the present invention.

본 실시예에 따른 프레임 레이트 증가 방법은 프레임 내의 x-방향과 y-방향 각각의 평균 움직임 벡터 크기를 이용하여 동적 프레임과 정적 프레임을 판단하고, EBME 수행 여부를 결정할 수 있다. 또한, 움직임 벡터들의 방향과 크기를 비교하여 특정 방향에서의 동일한 움직임 벡터를 판단하고 MVS 수행 여부를 결정할 수 있다.In the frame rate increasing method according to the present embodiment, it is possible to determine the dynamic frame and the static frame using the average motion vector magnitudes in the x-direction and the y-direction, respectively, and determine whether to perform the EBME. In addition, it is possible to determine the same motion vector in a specific direction by comparing the direction and magnitude of the motion vectors, and determine whether to perform the MVS.

예를 들어, 프레임 내의 움직임 정도를 판단하기 위해 프레임 내의 x, y방향 각각의 평균 움직임 벡터 크기와 임계치(예컨대,

Figure 112016055236541-pat00036
=0.6)를 비교하고, 평균 움직임 벡터 크기가 임계치(
Figure 112016055236541-pat00037
)보다 크다면, 동적 프레임으로 판단하고 임계치보다 작다면 정적 프레임으로 판단할 수 있다.For example, to determine the degree of motion in a frame, the average motion vector magnitude in each of the x and y directions in the frame and the threshold (e.g.,
Figure 112016055236541-pat00036
= 0.6), and when the average motion vector magnitude exceeds the threshold value
Figure 112016055236541-pat00037
), It is determined as a dynamic frame, and if it is smaller than the threshold value, it can be determined as a static frame.

동적 프레임에서는 움직임 벡터의 변화가 많기 때문에 정확한 움직임 벡터를 찾는 EBME를 이용하고, 정적 프레임에서는 움직임 벡터의 변화가 적기 때문에 BME를 이용하나 EBME를 생략한다. 그리고 정적 프레임은 모션 블러(motion blur) 현상이 적기 때문에 중첩 블록 움직임 보상(OBMC)을 거치지 않고, 움직임 보상을 이용한 보간(MCI)을 수행할 수 있다.In dynamic frames, EBME is used to find accurate motion vectors because there are many changes in motion vectors, and BME is used but EBME is omitted in static frames because there is little change in motion vectors. Since the motion blur phenomenon of the static frame is small, interpolation (MCI) using motion compensation can be performed without going through the overlapping block motion compensation (OBMC).

본 실시예의 프레임 레이트 증가 방법은, 도 5에 나타낸 바와 같이, 이전 프레임과 현재 프레임을 이용하여 보간 프레임, 보상 프레임 또는 중간 프레임을 생성하기 위해서 이하의 일련의 단계들을 수행할 수 있다(S50). 프레임 레이트 증가 방법은 이 방법을 구현하는 프레임 레이트 변환 장치, 영상 부호화 장치, 또는 영상 처리 기능을 구비하는 컴퓨팅 장치에서 수행될 수 있다. 프레임 레이트 증가 장치를 포함할 수 있고, 영상 부호화 장치 또는 컴퓨팅 장치는 프레임 레이트 변환 장치를 포함할 수 있다.The frame rate increasing method of this embodiment can perform the following series of steps to generate an interpolated frame, a compensated frame, or an intermediate frame using the previous frame and the current frame, as shown in FIG. 5 (S50). The frame rate increasing method can be performed in a frame rate converting apparatus, a video encoding apparatus, or a computing apparatus having an image processing function, which implement this method. A frame rate increasing device, and the image encoding device or the computing device may include a frame rate conversion device.

먼저, 프레임 레이트 변환 장치는 영상 부호화 과정 등에서 이전 프레임과 현재 프레임을 이용하여 쌍방향 움직임 예측(BME)를 수행할 수 있다(S51).First, the frame rate conversion apparatus can perform bi-directional motion estimation (BME) using a previous frame and a current frame in an image encoding process or the like (S51).

다음, 프레임 레이트 변환 장치는 보간 프레임의 특정 블록이 이전 프레임 또는 현재 프레임의 x-방향에서의 평균 움직임 벡터 크기(xmag)가 제1 임계치(T1)보다 크고, 이전 프레임 또는 현재 프레임의 y-방향에서의 평균 움직임 벡터 크기(ymag)가 제1 임계치(T1)보다 큰지를 판단할 수 있다(S52).Next, the frame rate conversion apparatus determines whether or not a specific block of the interpolation frame has the average motion vector magnitude ( xmag ) in the x-direction of the previous frame or the current frame is larger than the first threshold value (T1) It is possible to determine whether the average motion vector magnitude (y mag ) in the direction is greater than the first threshold value T1 (S52).

본 실시예에서 제1 임계치(T1)는 움직임 벡터 방향의 동일성을 가늠하는 척도로서 다양한 환경과 조건에서의 실험 결과, 0.6으로 설정되는 것이 바람직하다. 여기서, T1은 0 이상 내지 1.0 이하의 값을 가질 수 있다. T1=1.0일 때 움직임 벡터의 방향들은 일례로 4사분면 중 하나의 분면 내에 모두 포함되고, T1=0.5일 때 움직임 벡터의 방향들에 의해 형성될 수 있는 최대 각도는 직각을 포함하며, T1=0일 때 움직임 벡터의 방향들은 모두 동일한 방향 또는 하나의 방향을 포함할 수 있다.In the present embodiment, the first threshold value T1 is a measure of the identity of a motion vector direction, and is preferably set to 0.6 as a result of experiments under various environments and conditions. Here, T1 may have a value of not less than 0 and not more than 1.0. When T1 = 1.0, the directions of the motion vectors are all included in one quadrant of one of the quadrants, and the maximum angle that can be formed by the directions of the motion vectors when T1 = 0.5 includes a right angle, T1 = 0 The directions of the motion vectors may all include the same direction or one direction.

상기 단계(S52)의 판단 결과, 예(yes)이면, 확장 쌍방향 움직임 예측(EBME)을 실행할 수 있다(S53).As a result of the determination in step S52, if yes, extended bidirectional motion estimation (EBME) may be performed (S53).

다음, 프레임 레이트 변환 장치는 EBME를 수행한 후 상기 특정 블록 주변의 주변 블록들에서 탐색된 움직임 벡터들이 동일한 움직임 방향을 갖는지를 판단할 수 있다(S54). 상기 단계(S54)의 판단 결과, 예이면, 동일한 움직임 벡터들의 평균 크기가 제2 임계치(T2)보다 작은지를 판단할 수 있다(S55).After performing the EBME, the frame rate conversion apparatus can determine whether the motion vectors searched in the neighboring blocks around the specific block have the same motion direction (S54). As a result of the determination in step S54, if YES in step S54, it can be determined whether the average size of the same motion vectors is smaller than a second threshold T2 in step S55.

본 실시예에서 제2 임계치(T2)는 움직임 벡터 크기의 동일성을 가늠하는 척도로서 다양한 환경과 조건에서의 실험 결과, 0.3으로 설정되는 것이 바람직하다. 여기서, T2는 0 이상 내지 1 이하의 값을 가지며, T2=1은 움직임 벡터 크기들의 편차의 합이나 표준 편차가 가장 크고, T2=0은 움직임 벡터 크기들의 편차의 합이나 표준 편차가 가장 작은 것을 나타낼 수 있다.In the present embodiment, the second threshold value T2 is a measure of the identity of the motion vector magnitude and is preferably set to 0.3 as a result of experiments under various environments and conditions. In this case, T2 has a value of 0 or more and 1 or less, T2 = 1 is the sum or standard deviation of the deviations of the motion vector magnitudes is the largest, T2 = 0 is the smallest sum or standard deviation of the deviations of the motion vector magnitudes .

한편, 상기 단계들(S54 및 S55)의 판단 결과, 아니오(no)이면, 움직임 벡터 스무딩(motion vector smoothing, MVS)를 실행할 수 있다(S56).On the other hand, if the determination in steps S54 and S55 is NO, motion vector smoothing (MVS) may be performed (S56).

한편으로, 상기 단계(S55)의 판단 결과, 예이면, 움직임 벡터 스무딩(MVS)을 생략하고, 별도의 중첩 블록 움직임 보상(overlapped block motion compensation, OBMC)을 실행할 수 있다(S57).On the other hand, if it is determined to be YES in step S55, motion vector smoothing (MVS) may be omitted and overlapped block motion compensation (OBMC) may be performed (S57).

또 한편으로, 상기 단계(S52)의 판단 결과, 아니오이면, 프레임 레이트 변환 장치는, 확장 쌍방향 움직임 예측(EBME)을 실행하지 않고, 움직임 벡터 스무딩(motion vector smoothing, MVS)를 바로 실행할 수 있다(S58).On the other hand, if it is determined as NO in step S52, the frame rate conversion apparatus can directly execute motion vector smoothing (MVS) without performing extended bidirectional motion estimation (EBME) S58).

위의 단계(S57 또는 S58) 후에, 프레임 레이트 변환 장치는 움직임 보상 보간(motion compensated interpolattion, MCI)을 실행할 수 있다(S59). 그리고 움직임 보상을 이용한 보간(MCI)를 실행하여 중간 프레임을 생성할 수 있다(S60).After the above step S57 or S58, the frame rate conversion apparatus can perform motion compensated interpolation (MCI) (S59). Intermediate frames can be generated by performing interpolation (MCI) using motion compensation (S60).

한편, 전술한 실시예의 평균 움직임 벡터 크기와 제1 임계치의 비교에 있어서, 본 실시예에서는 x-방향과 y-방향 모두에서 평균 움직임 벡터 크기가 제1 임계치보다 큰 경우에 대하여 설명하나, 본 발명을 그러한 구성으로 한정되지 않고, 블록이나 픽쳐의 종류, 형태, 부호화 모드 등에 따라 x-방향과 y-방향 중 어느 한 방향만을 이용하도록 구현될 수 있다. 또한, 구현에 따라서 x-방향과 y-방향 이외에 x-방향과 y-방향의 교차점에서 x-방향과 y-방향 사이의 다양한 방사 방향들 중 적어도 어느 하나 이상의 방향(일례로, 45도 방향)에서 평균 움직임 벡터 크기를 구할 수 있다.On the other hand, in the comparison between the average motion vector magnitude and the first threshold value in the above-described embodiment, the case where the average motion vector magnitude is larger than the first threshold value in both the x-direction and the y- The present invention is not limited to such a configuration and can be implemented so as to use only one of x-direction and y-direction depending on the type, shape, encoding mode, and the like of a block or picture. Also, depending on the implementation, at least one of the various radiation directions between the x-direction and the y-direction at an intersection of the x-direction and the y-direction other than the x-direction and the y- The average motion vector magnitude can be obtained.

도 6은 도 5의 프레임 레이트 증가 방법에서 움직임 벡터들의 방향 판단 과정을 설명하기 위한 도면이다.FIG. 6 is a diagram for explaining a direction determination process of motion vectors in the frame rate increasing method of FIG.

본 실시예에 따른 프레임 레이트 증가 방법에서는 보간 프레임의 특정 블록을 기준으로 이전 프레임 및/또는 현재 프레임(Fx) 내의 원본 블록(M1)의 움직임 정도에 따라 해당 프레임을 동적 프레임과 정적 프레임으로 분류할 수 있다. 이를 나타내면 수학식 7 및 수학식 8과 같다.In the frame rate increasing method according to the present embodiment, the frame is classified into a dynamic frame and a static frame according to the degree of motion of the original block M1 in the previous frame and / or the current frame Fx on the basis of a specific block of the interpolation frame . This is expressed by Equations (7) and (8).

Figure 112016055236541-pat00038
Figure 112016055236541-pat00038

Figure 112016055236541-pat00039
Figure 112016055236541-pat00039

위의 수학식 7 및 8에서, N은 프레임 내의 블록의 총 개수이고, xmag 및 ymag는 프레임 내의 x, y 방향 각각의 평균 움직임 벡터 크기이다. 그리고 DF는 동적 프레임(dynamic frame)을 나타내고, SF는 정적 프레임(static frame)을 나타낸다.In the above equations (7) and (8), N is the total number of blocks in the frame, and xmag and ymag are the average motion vector magnitudes in the x and y directions within the frame, respectively. DF denotes a dynamic frame, and SF denotes a static frame.

수학식 7 및 8을 이용한 판단 결과, 프레임 레이트 변환 장치는, 보간 프레임 또는 이에 대응하는 이전 프레임 및 현재 프레임이 동적 프레임(DF)일 때, 해당 프레임에서 움직임 벡터들의 변화가 많아 정확한 움직임 벡터를 찾기 위해 해당 프레임에서 EBME를 이용하여 보간 프레임을 생성하고, 보간 프레임이 정적 프레임(SF)이면, 해당 프레임에서 움직임 벡터들(V1 내지 V8)의 변화가 적은 것으로 판단되므로 신호 처리 연산량이 높은 EBME를 생략하고 연산량이 낮은 BME만을 이용하여 보간 프레임을 생성하도록 동작할 수 있다.As a result of the determination using Equations (7) and (8), when the interpolation frame or the previous frame corresponding thereto and the current frame corresponding to the current frame are dynamic frames DF, using EBME from the frame generating an interpolation frame in order, and the interpolated frame is a static frame (SF) if, as judged by the small change in the motion vectors (V 1 to V 8) in the frame a high signal processing computation amount EBME And generate the interpolation frame using only the BME having a low computation amount.

한편, 전술한 실시예에서는 보간 프레임의 하나의 특정 블록을 기준으로 이전 프레임이나 현재 프레임에서의 탐색 영역 내 적어도 하나 이상의 원본 블록(들)이나 원본 블록의 주변 블록들의 움직임 벡터들의 방향과 크기를 이용하여 보간될 프레임을 동적 프레임과 정적 프레임으로 구분하는 경우를 중심으로 설명하였지만, 본 발명은 그러한 구성으로 한정되지 않고, 상기의 움직임 벡터들의 방향과 크기를 이용하되 보간 프레임의 하나의 특정 블록이 아닌 적어도 하나 이상의 탐색 영역에서의 복수의 특정 블록들 각각의 움직임 벡터들의 방향과 크기를 고려하여 보간 프레임을 동적 프레임 또는 정적 프레임으로 구분하도록 구현될 수 있다.On the other hand, in the above-described embodiment, the direction and size of motion vectors of at least one original block (s) or neighboring blocks of the original block in the search area in the previous frame or the current frame based on one specific block of the interpolation frame However, the present invention is not limited to such a structure. For example, when the direction and size of the motion vectors are used, the motion vector is not a specific block of the interpolation frame The interpolation frame may be divided into a dynamic frame or a static frame in consideration of the direction and size of the motion vectors of each of the plurality of specific blocks in the at least one search area.

도 7은 도 6의 움직임 벡터들의 방향 판단 과정에서 움직임 벡터들의 방향이 동일한지를 판단하는 과정을 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining a process of determining whether the directions of motion vectors are the same in the motion vector determination process of FIG.

도 7을 참조하면, 본 실시예에 따른 프레임 레이트 증가 방법은, 동적 프레임과 정적 프레임을 판단한 후, 프레임 내의 움직임 벡터에서 3×3 마스크(또는 윈도우)에 실질적으로 동일한 방향과 크기를 가진 움직임 벡터들만이 존재하면, 3×3 마스크에 포함된 움직임 벡터들을 정확한 움직임 벡터로 판단하고 MVS 단계를 생략할 수 있다.Referring to FIG. 7, after determining the dynamic frame and the static frame, the frame rate increasing method according to the present embodiment calculates a motion vector having substantially the same direction and size as a 3x3 mask (or window) The motion vectors included in the 3x3 mask may be determined as an accurate motion vector, and the MVS step may be omitted.

움직임 벡터들의 방향 및 크기의 판단 과정은, 먼저 3×3 마스크에 포함된 움직임 벡터들 각각을 4개의 방향((+,+) (+,-) (-,-) (-,+)) 중 어느 하나의 방향에 속하는지를 판단할 수 있다. 그리고 3×3 마스크에 포함된 움직임 벡터들이 4개의 방향 중 동일한 방향에 모두 포함되는 경우, 3×3 마스크에 포함된 움직임 벡터들 중 3×3 마스크 중앙에 위치한 벡터의 크기를 기준으로 3×3 마스크에 포함된 주변 벡터 크기 차의 절대값의 합을 구할 수 있다. 이렇게 구한 x, y값을 피타고라스 정리를 통해 하나의 값인 M으로 나타내고, M과 제2 임계치(

Figure 112016055236541-pat00040
=0.3)을 비교할 수 있다. 그리고 M이 제2 임계치보다 작다면, 3×3 마스크에 포함된 움직임 벡터들은 동일한 움직임 벡터들로 판단되어 움직임 벡터 스무딩(MVS) 단계를 생략할 수 있다.In the process of determining the direction and magnitude of the motion vectors, first, each of the motion vectors included in the 3x3 mask is divided into four directions ((+, +), (-, - It can be determined which one of the directions belongs. When the motion vectors included in the 3x3 mask are all included in the same direction among the four directions, 3x3 of the motion vectors included in the 3x3 mask are multiplied by 3x3 It is possible to obtain the sum of the absolute values of the neighboring vector magnitude differences included in the mask. The x and y values thus obtained are represented by one value M through the Pythagorean theorem, and M and the second threshold value (
Figure 112016055236541-pat00040
= 0.3) can be compared. If M is smaller than the second threshold value, the motion vectors included in the 3x3 mask may be determined to be the same motion vectors, and the motion vector smoothing (MVS) step may be omitted.

즉, 도 7에 도시한 바와 같이, 동일한 움직임 벡터들의 방향과 크기 판단 과정에서는, 먼저 3×3 마스크에 포함된 움직임 벡터들을 4개의 방향에서 판단하고, 3×3 마스크에 포함된 움직임 벡터들이 4개의 방향 중 동일한 방향에 다 포함되지 않는 경우에 MVS 단계를 거치며, 동일한 방향에 모두 포함되는 경우에 수학식 9를 통하여 그 크기를 구할 수 있다.That is, as shown in FIG. 7, in the process of determining the directions and sizes of the same motion vectors, first, the motion vectors included in the 3x3 mask are determined from four directions, and the motion vectors included in the 3x3 mask are 4 The MVS step is performed in the case where all of the directions are included in the same direction, and the size can be obtained through Equation (9) when they are included in the same direction.

Figure 112016055236541-pat00041
Figure 112016055236541-pat00041

수학식 9에서

Figure 112016055236541-pat00042
는 움직임 벡터들의 크기 차이의 합을 나타내며
Figure 112016055236541-pat00043
Figure 112016055236541-pat00044
는 x, y방향 각각의 움직임 벡터들의 크기 차이의 합을 나타낸다. In Equation (9)
Figure 112016055236541-pat00042
Represents the sum of magnitude differences of the motion vectors
Figure 112016055236541-pat00043
and
Figure 112016055236541-pat00044
Represents the sum of the magnitude differences of the motion vectors in the x and y directions, respectively.

Figure 112016055236541-pat00045
Figure 112016055236541-pat00045

수학식 10에서 M이 제2 임계치(

Figure 112016055236541-pat00046
)보다 작으면(flag=0), 3×3 마스크에 포함된 움직임 벡터들을 정확한 움직임 벡터로 판단하고, MVS 단계를 수행하지 않을 수 있다.In Equation (10), M is the second threshold value
Figure 112016055236541-pat00046
(Flag = 0), the motion vectors included in the 3x3 mask may be determined as an accurate motion vector, and the MVS step may not be performed.

도 8은 본 발명의 다른 실시예에 따른 영상 부호화 장치에 대한 블록도이다.8 is a block diagram of an image encoding apparatus according to another embodiment of the present invention.

도 8을 참조하면, 본 실시예에 따른 영상 부호화 장치(20)는 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(decoded picture buffer, DPB, 240) 및 엔트로피 부호화부(245)를 포함할 수 있다.8, the image encoding apparatus 20 according to the present embodiment includes a predictor 200, a subtractor 205, a transformer 210, a quantizer 215, an inverse quantizer 220, An adder 230, a filter unit 235, a decoded picture buffer (DPB) 240, and an entropy encoding unit 245.

예측부(200)는 적응적인 영상 프레임 레이트 변환(adaptive image frame rate conversion, AIFC) 모듈(202)이나 이러한 모듈에 상응하는 기능을 수행하는 구성부를 포함할 수 있다. 또한, 예측부(200)는 화면내(intra) 예측부와 화면간(inter) 예측부를 포함할 수 있다.The prediction unit 200 may include an adaptive image frame rate conversion (AIFC) module 202 or a component that performs a function corresponding to the module. In addition, the prediction unit 200 may include an intra prediction unit and an inter prediction unit.

또한, 영상 부호화 장치(20)는 분할부(190)를 더 포함할 수 있다. 분할부(190)는 픽쳐 분할부 및/또는 블록 분할부를 포함할 수 있다. 분할부(190)의 적어도 일부는 예측부(200), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 필터부(235) 및 엔트로피 부호화부(245) 중 적어도 어느 하나에 단독 또는 중복 형태로 포함될 수 있다.In addition, the image encoding apparatus 20 may further include a segmentation unit 190. The dividing unit 190 may include a picture dividing unit and / or a block dividing unit. At least a part of the decomposition unit 190 includes a predictor 200, a transform unit 210, a quantization unit 215, an inverse quantization unit 220, an inverse transform unit 225, a filter unit 235, and an entropy encoding unit 245 may be included singly or in duplicate.

영상 부호화 장치(20)의 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(decoded picture buffer, DPB, 240) 및 엔트로피 부호화부(245)에 대한 구조, 연결 관계 및 작동 원리는 본 기술분야에 이미 잘 알려져 있으므로 그것들에 대한 상세 설명은 생략한다.The subtractor 205, the transformer 210, the quantizer 215, the inverse quantizer 220, the inverse transformer 225, the adder 230, and the inverse transformer 230 of the image encoding apparatus 20, The structure, connection relationship, and operation principle of the filter unit 235, the decoded picture buffer (DPB) 240, and the entropy encoding unit 245 are well known in the art, do.

즉, 본 실시예에 따른 영상 부호화 장치(20)는 예측부(200)에 결합하는 AIFC 모듈(202)이 도 1 내지 도 7, 특히 도 5를 참조하여 앞서 설명한 프레임 레이트 증가 방법을 구현하는 프로그램, 프로그램 코드 등으로 구현되는 것을 제외하고, 영상 데이터(video data)를 입력받아 비트스트림(bit stream)을 출력하는 기존의 영상 부호화 장치와 실질적으로 동일할 수 있다.That is, the image encoding apparatus 20 according to the present embodiment may be configured such that the AIFC module 202 coupled to the prediction unit 200 generates a program for implementing the frame rate increasing method described above with reference to FIGS. 1 to 7, , And may be substantially the same as a conventional image encoding apparatus that receives video data and outputs a bit stream, except that it is implemented by a program code or the like.

도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 장치에 대한 개략적인 블록도이다.9 is a schematic block diagram of an image encoding apparatus according to another embodiment of the present invention.

도 9를 참조하면, 본 실시예에 따른 영상 부호화 장치(10)는, 프로세서(102) 및 메모리(104)를 포함할 수 있다. 메모리(104)는 도 1 내지 도 7(특히 도 5)을 참조하여 앞서 설명한 프레임 레이트 증가 방법을 구현하는 프로그램, 프로그램 코드 등을 저장할 수 있다. 프로세서(102)는 메모리(104)에 연결되어 프로그램에 의해 프레임 레이트 증가 방법을 구현할 수 있다.Referring to FIG. 9, the image encoding apparatus 10 according to the present embodiment may include a processor 102 and a memory 104. The memory 104 may store programs, program codes, and the like that implement the frame rate increasing method described above with reference to Figs. 1 to 7 (particularly Fig. 5). The processor 102 may be coupled to the memory 104 to implement a frame rate increasing method by a program.

전술한 프로세서(102)는 하나 이상의 코어 또는 하나 이상의 코어와 캐시 메모리를 포함할 수 있다. 프로세서(102)는 멀티 코어 또는 단일 코어 구조를 구비할 수 있다. 멀티 코어(multi-core)는 두 개 이상의 독립 코어를 단일 집적 회로로 이루어진 하나의 패키지로 통합한 것을 지칭할 수 있다. 그리고 단일 코어 구조는 중앙 처리 장치(CPU)를 지칭할 수 있다. 중앙 처리 장치는 MCU(micro control unit)와 주변 장치(외부 확장 장치를 위한 집적회로 등)가 함께 배치되는 SOC(system on chip)로 구현될 수 있다.The above-described processor 102 may include one or more cores or one or more cores and a cache memory. The processor 102 may have a multicore or single core architecture. A multi-core can refer to the integration of two or more independent cores into a single package of a single integrated circuit. And the single core architecture may refer to a central processing unit (CPU). The central processing unit may be implemented as a system on chip (SOC) in which micro control units (MCUs) and peripheral devices (integrated circuits for external expansion devices, etc.) are arranged together.

전술한 코어는 처리할 명령어를 저장하는 레지스터(register), 비교, 판단, 연산을 담당하는 산술논리연산장치(arithmetic logical unit, ALU), 명령어의 해석과 실행을 위해 CPU를 내부적으로 제어하는 컨트롤 유닛(control unit), 내부 버스 등을 구비할 수 있다. 또한, 프로세서(102)는 주변장치 인터페이스와 메모리 인터페이스를 구비할 수 있다. 주변장치 인터페이스는 프로세서(102)와 입출력 시스템, 통신부 또는 여러 다른 주변 장치를 연결하고, 메모리 인터페이스는 프로세서(102)와 메모리(104)를 연결할 수 있다.The core includes a register for storing an instruction to be processed, an arithmetic logical unit (ALU) for performing comparison, determination, and operation, a control unit for internally controlling the CPU for interpreting and executing the instruction, a control unit, an internal bus, and the like. In addition, the processor 102 may have a peripheral interface and a memory interface. The peripheral device interface connects the processor 102 to an input / output system, a communication unit or various other peripheral devices, and the memory interface can connect the processor 102 and the memory 104.

또한, 프로세서(102)는 하나 이상의 데이터 프로세서, 이미지 프로세서, 또는 코덱(CODEC)을 포함할 수 있다. 데이터 프로세서, 이미지 프로세서 또는 코덱은 하나의 칩으로 구성되거나 별도의 칩들로 구성될 수 있다.In addition, the processor 102 may include one or more data processors, image processors, or codecs (CODECs). The data processor, image processor, or codec may be comprised of one chip or may be comprised of separate chips.

전술한 프로세서(102)는 여러 가지의 소프트웨어 프로그램을 실행하여 프레임 레이트 증가 방법을 수행하기 위하여 데이터 입력, 데이터 처리 및 데이터 출력을 수행할 수 있다. 또한, 프로세서(102)는 메모리(104)에 저장되어 있는 특정한 소프트웨어 모듈(명령어 세트)을 실행하여 해당 모듈에 대응하는 특정한 여러 가지의 기능을 수행할 수 있다. 즉, 프로세서(102)는 메모리(104)에 저장된 소프트웨어 모듈들로 구현되는 프레임 레이트 증가 방법을 모바일 장치, 컴퓨팅 장치 등의 사용자 단말에서 수행하여 영상 부호화 또는 복호화의 성능과 효율을 향상시킬 수 있다.The above-described processor 102 may execute various software programs to perform data input, data processing, and data output to perform a frame rate increasing method. In addition, the processor 102 may execute a specific software module (instruction set) stored in the memory 104 to perform various specific functions corresponding to the module. That is, the processor 102 may perform a frame rate increasing method implemented by software modules stored in the memory 104 in a user terminal such as a mobile device or a computing device, thereby improving the performance and efficiency of image encoding or decoding.

전술한 컴퓨팅 장치는 프레임 레이트 증가 방법이나 이를 포함하는 영상 부호화 방법을 구현하는 장치이거나 이러한 장치의 기능을 수행하는 기능 블록일 수 있다. 그 경우, 전술한 프레임 레이트 증가 방법의 구성요소들은 프레임 내의 움직임 정도를 판별하는 판별부, 움직임 벡터들의 방향과 크기를 판단하는 판단부 등을 포함할 수 있고, 구성요소들이 수행하는 일련의 기능을 구현하기 위한 소프트웨어 형태로 컴퓨터 판독 가능 매체(기록매체)에 저장되거나 혹은 캐리어 형태로 원격지에서 전송되어 컴퓨팅 장치에서 동작하도록 구현될 수 있다.The above-described computing device may be a device implementing the frame rate increasing method or the image encoding method including the method, or a functional block performing the function of the device. In this case, the components of the frame rate increasing method may include a discriminator for discriminating the degree of motion in the frame, a determiner for determining the direction and size of the motion vectors, and the like. May be stored in a computer-readable medium (recording medium) in the form of software for implementation, or may be transmitted at a remote location in the form of a carrier to operate in a computing device.

컴퓨터 판독 가능 매체는 네트워크를 통해 연결되는 원격 서버 장치나 클라우드 시스템의 매체를 포함할 수 있고, 프레임 레이트 증가 방법을 수행하기 위한 프로그램이나 소스 코드 등을 저장할 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하는 형태로 구현될 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것을 포함할 수 있다.The computer-readable medium may include a medium of a remote server device or a cloud system connected through a network, and may store a program or source code for performing a frame rate increasing method. The computer-readable medium may be embodied in the form of program instructions, data files, data structures, and the like, alone or in combination. Programs recorded on a computer-readable medium may include those specifically designed and constructed for the present invention or those known and available to those skilled in the computer software arts.

또한, 컴퓨터 판독 가능 매체는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 하드웨어 장치는 본 실시예의 프레임 레이트 증가 방법을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The computer-readable medium can also include a hardware device specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. The hardware device may be configured to operate with at least one software module to perform the frame rate increasing method of the present embodiment, and vice versa.

메모리(104)는, 좀더 구체적으로, 하나 이상의 자기 디스크 저장 장치와 같은 고속 랜덤 액세스 메모리 및/또는 비휘발성 메모리, 하나 이상의 광 저장 장치 및/또는 플래시 메모리를 포함할 수 있다. 또한, 메모리(104)는 소프트웨어, 명령어 집합, 운영 체제 또는 이들의 조합을 저장할 수 있다.Memory 104 may more particularly include high speed random access memory and / or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and / or a flash memory. In addition, the memory 104 may store software, a set of instructions, an operating system, or a combination thereof.

여기서, 소프트웨어의 구성요소는 운영 체제(operating system) 모듈, 통신 모듈, 그래픽 모듈, 사용자 인터페이스 모듈, MPEG(moving picture experts group) 모듈, 카메라 모듈, 하나 이상의 애플리케이션 모듈 등을 포함할 수 있다. 모듈은 명령어들의 집합으로서 명령어 세트(instruction set) 또는 프로그램으로 표현될 수 있다.Here, the components of the software may include an operating system module, a communication module, a graphics module, a user interface module, a moving picture experts group (MPEG) module, a camera module, one or more application modules, and the like. A module is a set of instructions that can be represented as an instruction set or program.

운영 체제는 예컨대 MS WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, iOS, 맥 OS, VxWorks, 구글 OS, 안드로이드(android), 바다(삼성 OS), 플랜 9 등과 같은 내장 운영 체제를 포함하고, 모바일 장치 등을 포함하는 사용자 단말의 시스템 작동(system operation)을 제어하는 여러 가지의 구성요소를 구비할 수 있다. 전술한 운영 체제는 여러 가지의 하드웨어(장치)와 소프트웨어 구성요소(모듈) 사이의 통신을 수행하는 기능도 구비할 수 있으나, 이에 한정되지는 않는다.The operating system includes built-in operating systems such as MS WINDOWS, LINUX, Darwin, RTXC, UNIX, OS X, iOS, Mac OS, VxWorks, Google OS, Android, And may include various components for controlling the system operation of a user terminal including a mobile device and the like. The above-described operating system may also include, but is not limited to, a function of performing communication between various hardware devices and software components (modules).

통신 기능을 구비하는 경우, 본 실시예에 따른 영상 부호화 장치 또는 컴퓨팅 장치는 통신부 또는 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 장치가 네트워크를 통해 서버 장치, 파일 서버 또는 네트워크상의 다른 장치와 연결될 수 있도록 하나 이상의 통신 프로토콜을 지원할 수 있다. 이러한 통신 인터페이스는 하나 이상의 무선 통신 서브시스템을 포함할 수 있다. 무선 통신 서브시스템은 무선 주파수(radio frequency) 수신기 및 송수신기 및/또는 광(예컨대, 적외선) 수신기 또는 송수신기를 포함할 수 있다.In the case where a communication function is provided, the image encoding apparatus or the computing apparatus according to the present embodiment may include a communication unit or a communication interface. The communication interface may support one or more communication protocols so that the device may be connected to the server device, the file server, or other devices on the network via the network. Such a communication interface may include one or more wireless communication subsystems. The wireless communication subsystem may include a radio frequency receiver and a transceiver and / or an optical (e.g., infrared) receiver or transceiver.

통신 인터페이스가 연결되는 네트워크는 예를 들어, GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution), LTE-A(LET-Advanced), OFDMA(Orthogonal Frequency Division Multiple Access), WiMax, WiBro, Wi-Fi(Wireless Fidelity), Bluetooth 등의 통신 방식들 중에서 적어도 어느 하나 이상을 포함할 수 있다.The network to which the communication interface is connected includes, for example, Global System for Mobile Communication (GSM), Enhanced Data GSM Environment (EDGE), Code Division Multiple Access (CDMA), W- (LTE-Advanced), OFDMA (Orthogonal Frequency Division Multiple Access), WiMax, WiBro, Wi-Fi (Wireless Fidelity) have.

위에서 설명한 프레임 레이트 증가 방법에 대한 실험 결과는 다음과 같다.The experimental results on the frame rate increasing method described above are as follows.

실험에서는 CIF(352×288) 크기의 8개 영상(Bus, Coastguard, Container, Flower, Foreman, Mobile, Mother_Daughter, Table)을 사용하였고, 총 50개의 짝수프레임을 생성하였다. 이 경우, 보간 프레임은 인접한 두 짝수 프레임들 사이에 생성될 수 있다.In the experiment, 8 images (Bus, Coastguard, Container, Flower, Foreman, Mobile, Mother_Daughter, Table) of CIF (352 × 288) size were used and a total of 50 even frames were generated. In this case, an interpolation frame can be generated between two adjacent even frames.

실험조건은 기본 블록 크기를 16×16으로 하였고, 탐색 범위는 ±8로 하였으며, T1=0.6, T2=0.3으로 설정하였다. 화질비교 방법은 최대 신호 대 잡음비(Peak signal-to-noise ratio, PSNR)로 비교하였다.The experimental conditions were 16 × 16 for the basic block size and the search range was ± 8, and T1 = 0.6 and T2 = 0.3 were set. The quality comparison method was compared with the maximum signal-to-noise ratio (PSNR).

아래의 표 1에 나타낸 바와 같이, 본 실시예의 알고리듬(Proposed(㏈))은 비교예의 EBME 알고리듬(EBME(㏈))보다 평균 0.008㏈의 PSNR이 증가한 것을 볼 수 있다. 그리고 표 2에 나타낸 바와 같이, 본 실시예의 알고리듬의 수행속도가 비교예의 EBME 알고리듬보다 단축된 것을 볼 수 있다.As shown in the following Table 1, the algorithm of the present embodiment (Proposed (dB)) shows an increase of PSNR of 0.008 dB on average compared to the EBME algorithm (EBME (dB)) of the comparative example. As shown in Table 2, it can be seen that the execution speed of the algorithm of this embodiment is shorter than that of the EBME algorithm of the comparative example.

Figure 112016055236541-pat00047
Figure 112016055236541-pat00047

Figure 112016055236541-pat00048
Figure 112016055236541-pat00048

전술한 실시예에 의하면, 비교예의 EBME 알고리듬은 BME 과정을 두 번 수행하며, MVS 단계에서 이상벡터를 판단하고, 모든 이상 벡터가 수정될 때까지 반복하기 때문에 높은 연산량을 요구한다. 그래서 본 실시예의 알고리듬(프레임 레이트 증가 방법)은 프레임 내의 x, y 방향의 각각의 평균 움직임 벡터 크기를 이용하여 동적 프레임과 정적 프레임을 판단한다. 동적 프레임인 경우, 움직임 벡터 변화가 많은 것으로 판단하고 EBME를 사용하여 정확한 움직임 벡터를 찾고, 정적 프레임인 경우, 움직임 벡터 변화가 적기 때문에 EBME를 생략하고 연산량이 적은 BME를 이용할 수 있다.According to the above-described embodiment, the EBME algorithm of the comparative example requires a high computation amount because the BME process is performed twice, the error vector is determined in the MVS step, and all the ideal vectors are repeated until the error is corrected. Therefore, the algorithm of the present embodiment (frame rate increasing method) determines the dynamic frame and the static frame using the respective average motion vector magnitudes in the x and y directions in the frame. In the case of a dynamic frame, it is determined that there is a large change in motion vector, and an accurate motion vector is found using EBME. In the case of a static frame, BME having a small amount of computation can be used.

또한, 본 실시예의 알고리듬은 동적 프레임과 정적 프레임을 판단한 후, 프레임 내의 여러 개의 동일한 움직임 벡터들이 존재할 때, 여러 개의 동일한 움직임 벡터들의 방향과 크기를 비교하여 MVS 단계를 통과시킴으로써 추가적으로 연산량을 줄일 수 있다.Also, after determining the dynamic frame and the static frame, the algorithm of the present embodiment can further reduce the amount of computation by comparing the direction and size of several identical motion vectors and passing through the MVS step when there are several identical motion vectors in the frame .

그리고 위의 실험 결과에서와 같이, 본 실시예에 따른 프레임 레이트 증가 방법은 비교예의 EBME 알고리듬보다 평균 0.008㏈의 PSNR 향상을 가져왔으며, 수행시간은 평균 이득(Gain)이 1.186으로 비교예의 EBME 알고리듬보다 수행시간이 감소하는 장점이 있다. 아울러, Coastguard, Mother_Daughter에서는 동적 프레임을 많이 포함하여 수행시간을 더욱 많이 감소할 수 있는 장점이 있다.As shown in the above experimental results, the frame rate increasing method according to the present embodiment has a PSNR improvement of 0.008 dB on average compared with the EBME algorithm of the comparative example, and the average gain is 1.186, which is comparable to the EBME algorithm of the comparative example. There is an advantage that the execution time is reduced. In addition, Coastguard and Mother_Daughter have the advantage of reducing the execution time even more by including a lot of dynamic frames.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

Claims (20)

쌍방향 움직임 예측 후에 현재 프레임과 이전 프레임 내에서, x 또는 y 방향에 대한 움직임 벡터 크기의 평균값을 임계값과 비교하여, 상기 이전 프레임 또는 상기 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하는 단계;
동적 프레임으로 판단되면, 상기 이전 프레임 또는 상기 현재 프레임에 대해 확장 쌍방향 움직임 예측을 수행하는 단계;
상기 확장 쌍방향 움직임 예측에서 생성되는 블록의 부화소들 중 일정 사이즈의 마스크 내 복수 부화소들 각각에서 탐색되는 움직임 벡터의 방향들이 미리 설정된 방향 범위들 중 어느 하나에 속하는지를 판단하는 단계;
어느 하나에 속하면, 미리 설정된 오차 범위 내에서 상기 움직임 벡터의 크기들이 동일한지를 판단하는 단계; 및
상기 크기들이 동일하면, 상기 이전 프레임과 상기 현재 프레임 사이에 생성될 중간 프레임의 상기 블록에 대해 움직임 벡터 스무딩을 생략하는 단계를 포함하는, 프레임 레이트 증가 방법.
Determining whether the previous frame or the current frame is a dynamic frame or a static frame by comparing an average value of motion vector magnitudes in an x or y direction with a threshold value in a current frame and a previous frame after bidirectional motion prediction;
Performing extended bidirectional motion prediction on the previous frame or the current frame if it is determined to be a dynamic frame;
Determining whether a direction of a motion vector detected in each of a plurality of sub-pixels in a mask of a predetermined size among sub-pixels of a block generated in the extended bidirectional motion prediction belongs to one of predetermined direction ranges;
Determining whether the magnitudes of the motion vectors are the same within a predetermined error range; And
And skipping motion vector smoothing for the block of the intermediate frame to be generated between the previous frame and the current frame if the sizes are the same.
청구항 1에 있어서,
상기 어느 하나에 속하는지를 판단하는 단계에서의 판단 결과가 어느 하나에 속하지 않는 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method according to claim 1,
Further comprising modifying, using a filter, the motion vectors of the prediction units of the previous frame or the current frame if the determination result in the step of determining belongs to any one of the frames, Increase method.
청구항 2에 있어서,
상기 움직임 벡터의 크기들이 동일한지를 판단하는 단계에서의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 2,
Further comprising the step of modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining whether the sizes of the motion vectors are equal is not the same size, How to increase rate.
청구항 3에 있어서,
상기 수정하는 단계 이후, 또는 상기 움직임 벡터의 크기들이 동일한지를 판단하는 단계에서의 판단 결과가 동일한 크기인 것으로 나오면, 중간 프레임을 생성하기 전에 상기 이전 프레임 또는 상기 현재 프레임 내 현재 블록에 대한 중첩 블록 움직임 보상을 수행하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 3,
If the result of the determination in the step of determining whether or not the sizes of the motion vectors are the same is found to be the same size after the modifying step or before the generation of the intermediate frame, ≪ / RTI > wherein the step of performing the compensation further comprises performing compensation.
청구항 4에 있어서,
상기 동적 프레임인지 정적 프레임인지를 판단하는 단계에서의 판단 결과가 정적 프레임이면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들에 대한 움직임 벡터 스무딩을 수행하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 4,
Further comprising performing motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame if the determination result in the step of determining whether the dynamic frame or the static frame is a static frame, Increase method.
청구항 5에 있어서,
상기 중첩 블록 움직임 보상을 수행하는 단계 이후, 또는 상기 움직임 벡터 스무딩을 수행하는 단계 이후에, 상기 중간 프레임을 생성하기 전에 움직임 보상을 이용하여 상기 이전 프레임과 상기 현재 프레임 중 일치하는 영역이 많은 프레임에 높은 가중치를 부여하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 5,
After performing the superimposed block motion compensation or after performing the motion vector smoothing, an area matching between the previous frame and the current frame using a motion compensation is generated in many frames before generating the intermediate frame Further comprising the step of providing a high weight.
청구항 1에 있어서,
상기 마스크의 사이즈는 3×3인, 프레임 레이트 증가 방법.
The method according to claim 1,
Wherein the size of the mask is 3x3.
쌍방향 움직임 예측 후에 현재 프레임과 이전 프레임 내에서, x 또는 y 방향에 대한 움직임 벡터 크기의 평균값을 임계값과 비교하여, 상기 이전 프레임 또는 상기 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하는 단계; 및
상기 판단하는 단계에서의 결과가 정적 프레임이면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들에 대한 움직임 벡터 스무딩을 수행하는 단계를 포함하는, 프레임 레이트 증가 방법.
Determining whether the previous frame or the current frame is a dynamic frame or a static frame by comparing an average value of motion vector magnitudes in an x or y direction with a threshold value in a current frame and a previous frame after bidirectional motion prediction; And
And performing a motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame if the result in the determining step is a static frame.
청구항 8에 있어서,
상기 동적 프레임인지 정적 프레임인지를 판단하는 단계에서의 판단 결과가 동적 프레임이면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들에 대해 확장 쌍방향 움직임 예측을 수행하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 8,
Further comprising performing extended bidirectional motion prediction on the prediction units of the previous frame or the current frame if the determination result in the determination of the dynamic frame or the static frame is a dynamic frame. .
청구항 9에 있어서,
상기 확장 쌍방향 움직임 예측을 수행하는 단계 후에,
상기 확장 쌍방향 움직임 예측에서 생성되는 서브 예측 유닛들 중 일정 사이즈의 마스크 내 복수 영역들 각각에서 탐색되는 움직임 벡터들의 방향들이 미리 설정된 방향 범위들 중에서 어느 하나에 속하는지를 판단하는 단계;
어느 하나에 속하면, 상기 움직임 벡터들의 크기가 미리 설정된 오차 범위 내에서 동일한 크기인지를 판단하는 단계; 및
동일한 크기이면, 상기 이전 프레임 또는 상기 현재 프레임에 대한 움직임 벡터 스무딩을 생략하는 단계를 포함하는, 프레임 레이트 증가 방법.
The method of claim 9,
After performing the extended bidirectional motion prediction,
Determining whether a direction of motion vectors detected in each of a plurality of regions in a mask of a predetermined size among sub-prediction units generated in the extended bidirectional motion prediction belongs to one of predetermined directional ranges;
Determining whether the magnitudes of the motion vectors are the same within a predetermined error range, And
If it is the same size, omitting motion vector smoothing for the previous frame or the current frame.
청구항 10에 있어서,
상기 어느 하나에 속하는지를 판단하는 단계에서의 판단 결과가 어느 하나에 속하지 않는 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 10,
Further comprising modifying, using a filter, the motion vectors of the prediction units of the previous frame or the current frame if the determination result in the step of determining belongs to any one of the frames, Increase method.
청구항 11에 있어서,
상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 11,
Further comprising the step of modifying the motion vectors of the prediction units of the previous frame or the current frame using a filter if the determination result in the step of determining the same size is not equal, .
청구항 12에 있어서,
상기 수정하는 단계 이후, 또는 상기 동일한 크기인지를 판단하는 단계에서의 판단 결과가 동일한 크기인 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임 내 블록들에 대한 중첩 블록 움직임 보상을 수행하는 단계를 더 포함하는, 프레임 레이트 증가 방법.
The method of claim 12,
Performing the superimposed block motion compensation on the previous frame or the blocks in the current frame if the determination result in the determining step after the modifying step or the determining step of the same size is found to be the same size , A method for increasing the frame rate.
청구항 10에 있어서,
상기 동일한 크기인지를 판단하는 단계는 상기 움직임 벡터 크기가 0.3보다 작은지를 판단하는, 프레임 레이트 증가 방법.
The method of claim 10,
Wherein determining whether the motion vector magnitude is the same magnitude determines whether the motion vector magnitude is less than 0.3.
청구항 8에 있어서,
상기 동적 프레임인지 정적 프레임인지를 판단하는 단계는 상기 움직임 벡터 크기의 평균값이 0.6보다 큰지를 판단하는, 프레임 레이트 증가 방법.
The method of claim 8,
Wherein the determining whether the dynamic frame or the static frame determines whether the average value of the motion vector magnitude is greater than 0.6.
입력 영상을 시간적 예측과 공간적 예측, 변환 부호화, 양자화 및 엔트로피 코딩에 통해 부호화하는 영상 부호화 장치로서,
부호화 및 프레임 레이트 변환을 위한 프로그램 또는 프로그램 코드를 저장하는 메모리; 및
상기 메모리에 연결되어 상기 프로그램을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 프레임 레이트 변환을 위한 프로그램에 의해,
쌍방향 움직임 예측 후에 현재 프레임과 이전 프레임 내에서, x 또는 y 방향에 대한 움직임 벡터 크기의 평균값을 임계값과 비교하여, 상기 이전 프레임 또는 상기 현재 프레임이 동적 프레임인지 정적 프레임인지를 판단하고,
판단 결과가 동적 프레임이면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들에 대해 확장 쌍방향 움직임 예측을 수행하고,
상기 확장 쌍방향 움직임 예측에서 생성되는 서브 예측 유닛들 중 일정 사이즈의 마스크 내 복수 영역들 각각에서 탐색되는 움직임 벡터들의 방향들이 미리 설정된 방향 범위들 중에서 어느 하나에 속하는지를 판단하고,
판단 결과가 어느 하나에 속하면, 상기 움직임 벡터들의 크기가 미리 설정된 오차 범위 내에서 동일한 크기인지를 판단하고,
판단 결과가 동일한 크기이면, 상기 현재 프레임에 대한 움직임 벡터 스무딩을 생략하는, 영상 부호화 장치.
1. An image encoding apparatus for encoding an input image through temporal prediction, spatial prediction, transcoding, quantization, and entropy coding,
A memory for storing a program or a program code for encoding and frame rate conversion; And
And a processor coupled to the memory to execute the program,
Wherein the processor, by the program for the frame rate conversion,
Determining whether the previous frame or the current frame is a dynamic frame or a static frame by comparing an average value of a motion vector magnitude in the x or y direction with a threshold value in a current frame and a previous frame after bidirectional motion prediction,
If the determination result is a dynamic frame, performs an extended bidirectional motion prediction on the prediction units of the previous frame or the current frame,
Determining whether directions of motion vectors searched in each of a plurality of regions in a mask of a predetermined size among sub-prediction units generated in the extended bidirectional motion prediction belong to one of predetermined directional ranges,
Determining whether the size of the motion vectors is the same within a predetermined error range,
And omits motion vector smoothing for the current frame if the determination result is the same size.
청구항 16에 있어서,
상기 프로세서는, 상기 어느 하나에 속하는지의 판단 결과가 어느 하나에 속하지 않는 것으로 나오거나, 상기 동일한 크기인지의 판단 결과가 동일한 크기가 아닌 것으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들을 필터를 이용하여 수정하는, 영상 부호화 장치.
18. The method of claim 16,
The processor determines that the motion of the prediction unit of the previous frame or the current frame is not the same as the motion of the previous frame or the current frame if the determination result of belonging to any one of them does not belong to any one, Wherein the vectors are modified using a filter.
청구항 17에 있어서,
상기 프로세서는, 상기 필터를 이용한 수정 이후, 또는 상기 동일한 크기인지의 판단 결과가 동일한 크기인 것으로 나오면, 중간 프레임을 생성하기 전에 상기 이전 프레임 또는 상기 현재 프레임 내 블록들에 대한 중첩 블록 움직임 보상을 수행하는, 영상 부호화 장치.
18. The method of claim 17,
The processor may perform a superimposed block motion compensation on the previous frame or blocks in the current frame before generating the intermediate frame after the modification using the filter or when the determination result of the same size is the same size Lt; / RTI >
청구항 18에 있어서,
상기 프로세서는, 상기 동적 프레임인지 정적 프레임인지의 판단 결과가 정적 프레임으로 나오면, 상기 이전 프레임 또는 상기 현재 프레임의 예측 유닛들의 움직임 벡터들에 대한 움직임 벡터 스무딩을 수행하는, 영상 부호화 장치.
19. The method of claim 18,
Wherein the processor performs motion vector smoothing on the motion vectors of the prediction units of the previous frame or the current frame when the determination result of the dynamic frame or the static frame is a static frame.
청구항 19에 있어서,
상기 프로세서는, 상기 중첩 블록 움직임 보상을 수행하거나 상기 움직임 벡터 스무딩을 수행한 후에, 상기 중간 프레임을 생성하기 전에 움직임 보상을 이용하여 상기 이전 프레임과 상기 현재 프레임 중 일치하는 영역이 많은 프레임에 높은 가중치를 부여하는, 영상 부호화 장치.
The method of claim 19,
Wherein the processor is configured to perform motion compensation on the current frame after performing the superimposed block motion compensation or the motion vector smoothing, To the image encoding apparatus.
KR1020160071422A 2015-06-10 2016-06-09 Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same KR101709894B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150081972 2015-06-10
KR20150081972 2015-06-10

Publications (2)

Publication Number Publication Date
KR20160145499A KR20160145499A (en) 2016-12-20
KR101709894B1 true KR101709894B1 (en) 2017-02-23

Family

ID=57734443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160071422A KR101709894B1 (en) 2015-06-10 2016-06-09 Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same

Country Status (1)

Country Link
KR (1) KR101709894B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510140B (en) * 2020-11-16 2024-04-16 深圳市万普拉斯科技有限公司 Frequency modulation method and device and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969420B1 (en) 2008-01-31 2010-07-14 삼성전기주식회사 Frame rate conversion method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969420B1 (en) 2008-01-31 2010-07-14 삼성전기주식회사 Frame rate conversion method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
박대준, 정제창, 블록의 성질과 프레임 움직임을 고려한 적응적 확장 블록을 사용하는 프레임율 증강 기법, 방송공학회논문지 18(3), 2013.5, 342-348
박대준, 정제창, 장면 전환을 고려한 적응적 확장 블록 기반의 프레임율 증강 기법, 2015년 제27회 영상처리 및 이해에 관한 워크샵, 2015.2.4-2.6
박종근, 김정환, 이경준, 정제창, 향상된 가중치수를 이용한 프레임율 증가 알고리듬, 한국방송공학회 학술발표대회 논문집 , 2014.11, 68-71 (4 pages)

Also Published As

Publication number Publication date
KR20160145499A (en) 2016-12-20

Similar Documents

Publication Publication Date Title
US11375226B2 (en) Method and apparatus of video coding with affine motion compensation
US11240529B2 (en) Picture prediction method and picture prediction apparatus
CN107241605B (en) Video encoder and video encoding method
US9262839B2 (en) Image processing device and image processing method
US20160080763A1 (en) Encoding system using motion estimation and encoding method using motion estimation
JP2008011158A (en) Method and device for motion vector search
JP3880985B2 (en) Motion vector detection apparatus and motion vector detection method
US20240031576A1 (en) Method and apparatus for video predictive coding
US9319688B2 (en) Moving image encoding apparatus
KR101709894B1 (en) Method for frame rate up-conversion considering the direction and magnitude of motion vectors and apparatus using the same
JP6187826B2 (en) Moving picture coding apparatus and moving picture coding method
WO2016131270A1 (en) Error concealment method and apparatus
US11528485B2 (en) Encoding apparatus and program
JP2013207402A (en) Image encoding device and program
US10743009B2 (en) Image processing apparatus and image processing method
US20150049801A1 (en) Intra refresh method for video encoding and a video encoder for performing the same
JP5281597B2 (en) Motion vector prediction method, motion vector prediction apparatus, and motion vector prediction program
JP2016052056A (en) Encoding circuit, and encoding method
US9866841B2 (en) Image coding method and image coding apparatus
JP5763578B2 (en) Image coding apparatus, image coding method, and program
TW201406166A (en) Method and device for encoding video
JP2014230031A (en) Image encoding device and image encoding program
JP6308409B2 (en) Moving picture coding apparatus and moving picture coding method
WO2009128208A1 (en) Dynamic image encoder, dynamic image decoder, dynamic image encoding method, and dynamic image decoding method
JP2015076766A (en) Video encoding device, video encoding method, and video encoding program

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

Year of fee payment: 4