KR20200024572A - Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion - Google Patents

Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion Download PDF

Info

Publication number
KR20200024572A
KR20200024572A KR1020180101422A KR20180101422A KR20200024572A KR 20200024572 A KR20200024572 A KR 20200024572A KR 1020180101422 A KR1020180101422 A KR 1020180101422A KR 20180101422 A KR20180101422 A KR 20180101422A KR 20200024572 A KR20200024572 A KR 20200024572A
Authority
KR
South Korea
Prior art keywords
motion vector
frame
estimating
mvf
motion
Prior art date
Application number
KR1020180101422A
Other languages
Korean (ko)
Other versions
KR102105766B1 (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 한국과학기술원
Priority to KR1020180101422A priority Critical patent/KR102105766B1/en
Publication of KR20200024572A publication Critical patent/KR20200024572A/en
Application granted granted Critical
Publication of KR102105766B1 publication Critical patent/KR102105766B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Television Systems (AREA)

Abstract

Disclosed are a movement compensation frame interpolation device suitable for both linear and nonlinear movement and a method thereof. According to an embodiment of the present invention, the interpolation device comprises: an estimator estimating a first movement vector by using a current frame and a previous frame and estimating a second movement vector by further using a frame consecutive to any one of the current frame and the previous frame; and a generator generating an intermediate frame between the current frame and the previous frame by using any one of the first motion vector and the second motion vector, wherein the first motion vector and the second motion vector are estimated for each block unit of a frame.

Description

선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 장치 및 방법{APPARATUS AND METHOD FOR MOTION COMPENSATED FRAME INTERPOLATION SUITABLE FOR BOTH LINEAR AND NOLINEAR MOTION}Apparatus and method for motion compensation frame interpolation suitable for both linear and non-linear motion {APPARATUS AND METHOD FOR MOTION COMPENSATED FRAME INTERPOLATION SUITABLE FOR BOTH LINEAR AND NOLINEAR MOTION}

아래 실시예들은 선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 장치 및 방법에 관한 것이다.The embodiments below relate to an apparatus and method for motion compensation frame interpolation suitable for both linear and nonlinear motion.

통신 시스템에서 대역폭의 제약이 있을 때, 그 제약을 맞추기 위해 비디오의 프레임률(frame rate)을 낮춰서 전송한다. LCD(Liquid crystal display)의 경우 비디오의 프레임률이 낮을 때 모션 블러(motion blur)와 같은 시간적 왜곡이 발생하게 된다. 이러한 문제들은 디코더(decoder)에서 비디오의 프레임률을 향상시킴으로써 극복할 수 있다.When there is a bandwidth limitation in a communication system, the video frame rate is lowered to meet the limitation. In the case of a liquid crystal display (LCD), temporal distortion such as motion blur occurs when the frame rate of the video is low. These problems can be overcome by improving the frame rate of the video at the decoder.

움직임 보상 프레임 보간 방법(Motion Compensated Frame Interpolation, MCFI)은 디코더에서 비디오의 프레임률을 향상시키기 위해 널리 쓰인다. MCFI는 연속하는 비디오 프레임 상의 물체의 움직임을 추정하고 이를 반영하여 중간 프레임을 생성 및 삽입함으로써 프레임률을 향상시키는 기술이다.Motion Compensated Frame Interpolation (MCFI) is widely used to improve the frame rate of video at the decoder. MCFI is a technique that improves the frame rate by estimating the motion of an object on consecutive video frames and generating and inserting an intermediate frame.

프레임률의 향상을 위해서는 비디오 프레임 상의 물체의 움직임을 정확히 추정하는 것이 중요하다.In order to improve the frame rate, it is important to accurately estimate the motion of an object on a video frame.

실시예들은 물체가 프레임 내에서 선형적 또는 비선형적인 움직임을 보일 경우에 각각의 움직임에 더 적합한 움직임 추정 방법으로 추정한 움직임 벡터를 선택함으로써, 비디오 프레임 상의 물체의 움직임을 정확히 추정하는 기술을 제공할 수 있다.Embodiments may provide a technique for accurately estimating the motion of an object on a video frame by selecting motion vectors estimated by a motion estimation method that is more suitable for each motion when the object exhibits linear or nonlinear motion within the frame. Can be.

또한, 실시예들은 정확히 추정한 움직임 벡터를 이용하여 중간 프레임을 생성함으로써, 비디오의 프레임률을 향상시키며 선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 기술을 제공할 수 있다.In addition, embodiments may generate an intermediate frame using a correctly estimated motion vector, thereby improving the frame rate of the video and providing a motion compensation frame interpolation technique suitable for both linear and nonlinear motion.

일 실시예에 따른 보간 장치는, 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 추정기와 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 생성기를 포함하고 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정된다.According to an exemplary embodiment, an interpolation apparatus estimates a first motion vector using a current frame and a previous frame, and further estimates a second motion vector using a frame continuous to any one of the current frame and the previous frame. An estimator and a generator for generating an intermediate frame between the current frame and the previous frame by using any one of the first motion vector and the second motion vector; and the first motion vector and the second motion vector. Is estimated for each block unit of a frame.

상기 추정기는, 상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하며, 상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정할 수 있다.The estimator estimates a first forward motion vector through forward motion estimation based on the current frame using the previous frame and the current frame, and refers to the previous frame using the current frame and the previous frame. The first backward motion vector may be estimated through backward motion estimation, and the first motion vector may be estimated using any one of the first forward motion vector and the first backward motion vector.

상기 추정기는, 상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하고, 상기 제1 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정할 수 있다.The estimator calculates a sum of absolute difference (SAD) value of the first forward motion vector and the first backward motion vector, and calculates a sum of absolute difference (SAD) value of the first forward motion vector and the first backward direction The first motion vector may be estimated using a motion vector having a smaller SAD value among the SAD values of the motion vector.

상기 추정기는, 상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정할 수 있다.The estimator is bidirectional based on an intermediate frame between the current frame and the previous frame using a motion vector having a smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector. The first motion vector may be estimated through the motion estimation method.

상기 추정기는, 상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정하고, 상기 현재 프레임, 상기 이전 프레임 및 상기 현재 프레임의 이후 프레임을 이용하여 상기 이후 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정하며, 상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정할 수 있다.The estimator estimates a second forward motion vector through forward motion estimation based on the previous frame using the current frame, the previous frame, and the previous frame of the previous frame, and estimates the current frame, the previous frame, and A second backward motion vector is estimated through backward motion estimation based on the subsequent frame using a later frame of the current frame, and a motion vector of any one of the second forward motion vector and the second backward motion vector is calculated. The second motion vector may be estimated by selecting.

상기 추정기는, 상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하고, 상기 제2 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제2 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제2 움직임 벡터를 추정할 수 있다.The estimator calculates a sum of absolute difference (SAD) value of the second forward motion vector and the second reverse motion vector, and calculates a sum of absolute difference (SAD) value of the second forward motion vector and the second reverse motion vector. The second motion vector may be estimated using a motion vector having a smaller SAD value among the SAD values of the motion vector.

상기 생성기는, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 선택기와, 상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 필터와, 상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 수정기를 포함할 수 있다.The generator may include a selector configured to output a motion vector field (MVF) by selecting one of the first motion vector and the second motion vector for each block unit of a frame, and corrected by removing an error from the MVF. And a filter for outputting an MVF, an intermediate frame based on the modified MVF, and a modifier for generating an intermediate frame between the current frame and the previous frame using the modified MVF.

상기 선택기는, 프레임 내 객체의 움직임이 비선형(nonlinear)일 경우, 상기 제1 움직임 벡터를 선택하고, 프레임 내 객체의 움직임이 선형(linear)일 경우, 상기 제2 움직임 벡터를 선택할 수 있다.The selector may select the first motion vector when the motion of the object in the frame is nonlinear and select the second motion vector when the motion of the object in the frame is linear.

상기 수정기는, 상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하고, 상기 왜곡 영역에 대응하는 상기 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하고, 상기 재수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성할 수 있다.The modifier detects a distortion region of an intermediate frame based on the modified MVF, modifies a motion vector of the modified MVF corresponding to the distortion region, generates a remodified MVF, and uses the remodified MVF. An intermediate frame may be generated between a current frame and the previous frame.

상기 수정기는, CNN(convolutional neural network)을 통해 왜곡 영역을 검출할 수 있다.The modifier may detect a distortion region through a convolutional neural network (CNN).

일 실시예에 따른 보간 방법은, 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하는 단계와, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 단계와, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계를 포함하고, 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정된다.According to an exemplary embodiment, an interpolation method includes estimating a first motion vector using a current frame and a previous frame, and further extracts a second motion vector using a frame continuous to any one of the current frame and the previous frame. Estimating and generating an intermediate frame between the current frame and the previous frame by using any one of the first and second motion vectors. The second motion vector is estimated for each block unit of the frame.

상기 제1 움직임 벡터를 추정하는 단계는, 상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하는 단계와, 상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하는 단계와, 상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating of the first motion vector may include estimating a first forward motion vector through forward motion estimation based on the current frame using the previous frame and the current frame, and the current frame and the previous motion vector. Estimating a first backward motion vector by using backward motion estimation based on the previous frame, and using one of the first forward motion vector and the first backward motion vector. Estimating the first motion vector.

상기 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계는, 상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하는 단계와, 상기 제1 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating of the first motion vector using the motion vector may include calculating a sum of absolute difference (SAD) value of the first forward motion vector and the first backward motion vector, The method may include estimating the first motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the first forward motion vector and a SAD value of the first backward motion vector.

상기 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계는, 상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating of the first motion vector using the motion vector having the smaller SAD value may include: a motion having a smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector; The method may include estimating a first motion vector through a bidirectional motion estimation method based on an intermediate frame between the current frame and the previous frame using a vector.

상기 제2 움직임 벡터를 추정하는 단계는, 상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정하는 단계와, 상기 현재 프레임, 상기 이전 프레임 및 상기 현재 프레임의 이후 프레임을 이용하여 상기 이후 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정하는 단계와, 상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating of the second motion vector may include estimating a second forward motion vector through forward motion estimation based on the previous frame using the current frame, the previous frame, and a previous frame of the previous frame; Estimating a second backward motion vector by using backward motion estimation based on the next frame using the current frame, the previous frame, and subsequent frames of the current frame, and the second forward motion vector and the first frame. Estimating the second motion vector by selecting one of the two backward motion vectors.

상기 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는 단계는, 상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하는 단계와, 상기 제2 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제2 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제2 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating of the second motion vector by selecting the one motion vector may include calculating a sum of absolute difference (SAD) value between the second forward motion vector and the second backward motion vector, And estimating the second motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the two forward motion vectors and a SAD value of the second backward motion vector.

상기 생성하는 단계는, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 단계와, 필터가 상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 단계와, 상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계를 포함할 수 있다.The generating may include selecting a motion vector of the first motion vector and the second motion vector for each block unit of a frame and outputting a motion vector field (MVF), and a filter may detect an error in the MVF. Removing and outputting a modified MVF, and generating an intermediate frame based on the modified MVF and an intermediate frame between the current frame and the previous frame using the modified MVF.

상기 출력하는 단계는, 프레임 내 객체의 움직임이 비선형일 경우, 상기 제1 움직임 벡터를 선택하는 단계와, 프레임 내 객체의 움직임이 선형(nonlinear)일 경우, 상기 제2 움직임 벡터를 선택하는 단계를 포함할 수 있다.The outputting may include selecting the first motion vector when the motion of the object in the frame is nonlinear, and selecting the second motion vector when the motion of the object in the frame is nonlinear. It may include.

상기 생성하는 단계는, 상기 수정된 MVF에 기초한 중간 프레임을 생성하는 단계와, 상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 단계와, 상기 왜곡 영역에 대응하는 상기 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하는 단계와, 상기 재수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계를 포함할 수 있다.The generating may include generating an intermediate frame based on the modified MVF, detecting a distortion region of the intermediate frame based on the modified MVF, and moving the motion vector of the modified MVF corresponding to the distortion region. And generating a re-modified MVF, and generating an intermediate frame between the current frame and the previous frame by using the re-modified MVF.

상기 검출하는 단계는, CNN(convolutional neural network)을 이용하여 상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 단계를 포함할 수 있다.The detecting may include detecting a distortion region of an intermediate frame based on the modified MVF using a convolutional neural network (CNN).

도 1은 단방향 움직임 추정 방법을 나타낸 도면이다.
도 2는 양방향 움직임 추정 방법을 나타낸 도면이다.
도 3은 추정된 움직임 벡터 필드의 예시도이다.
도 4는 일 실시예에 따른 보간 장치의 개략적인 블록도이다.
도 5는 도 4에 도시된 추정기의 구체적인 블록도이다.
도 6은 두 장의 프레임을 활용하는 움직임 추정 방법 중 정방향 움직임 추정 방법을 나타낸 도면이다.
도 7은 두 장의 프레임을 활용하는 움직임 추정 방법 중 역방향 움직임 추정 방법을 나타낸 도면이다.
도 8은 두 장의 프레임을 활용하는 움직임 추정 방법 중 양방향 움직임 추정 방법을 나타낸 도면이다.
도 9는 세 장의 프레임을 활용하는 움직임 추정 방법을 나타낸 도면이다.
도 10은 도 4에 도시된 생성기의 구체적인 블록도이다.
도 11은 수정기가 검출한 왜곡 영역을 나타낸 도면이다.
도 12는 수정기의 수정 반복에 따른 왜곡 제거 과정을 나타낸 도면이다.
도 13은 일 실시예에 따른 보간 방법을 나타낸 순서도이다.
도 14는 각 시퀀스 별 평균 PSNR과 SSIM 측정 결과를 나타낸 도면이다.
도 15는 Mobile 시퀀스의 결과를 나타낸 도면이다.
도 16은 Soccer 시퀀스의 결과를 나타낸 도면이다.
도 17은 Stefan 시퀀스의 결과를 나타낸 도면이다.
1 is a diagram illustrating a unidirectional motion estimation method.
2 is a diagram illustrating a bidirectional motion estimation method.
3 is an illustration of an estimated motion vector field.
4 is a schematic block diagram of an interpolation apparatus according to an embodiment.
FIG. 5 is a detailed block diagram of the estimator shown in FIG. 4.
6 is a diagram illustrating a forward motion estimation method among motion estimation methods using two frames.
7 is a diagram illustrating a backward motion estimation method among motion estimation methods using two frames.
8 is a diagram illustrating a bidirectional motion estimation method among motion estimation methods using two frames.
9 is a diagram illustrating a motion estimation method using three frames.
FIG. 10 is a detailed block diagram of the generator shown in FIG. 4.
11 is a diagram illustrating a distortion area detected by a crystal.
12 is a diagram illustrating a distortion elimination process according to a repetition of modification of a corrector.
13 is a flowchart illustrating an interpolation method, according to an exemplary embodiment.
14 is a diagram illustrating average PSNR and SSIM measurement results for each sequence.
15 is a diagram illustrating a result of a mobile sequence.
16 shows the results of a Soccer sequence.
17 shows the result of a Stefan sequence.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, various changes may be made to the embodiments so that the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and substitutes for the embodiments are included in the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of description and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The terms are intended only to distinguish one component from another, for example, without departing from the scope of rights according to the concepts of the embodiment, the first component may be named a second component, and similarly The second component may also be referred to as a first component.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components will be given the same reference numerals regardless of the reference numerals and duplicate description thereof will be omitted. In the following description of the embodiment, if it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 1은 단방향 움직임 추정 방법을 나타낸 도면이고, 도 2는 양방향 움직임 추정 방법을 나타낸 도면이고, 도 3은 추정된 움직임 벡터 필드의 예시도이다.1 is a diagram illustrating a unidirectional motion estimation method, FIG. 2 is a diagram illustrating a bidirectional motion estimation method, and FIG. 3 is an exemplary diagram of an estimated motion vector field.

도 1 내지 도 3을 참조하면, 움직임 보상 프레임 보간 방법(motion compensated frame interpolation, MCFI)은 비디오 콘텐츠의 프레임률을 향상시키기 위해 연속하는 프레임 사이에 중간 프레임(interpolated frame)을 생성하는 기술을 뜻한다. MCFI는 움직임 추정, 움직임 벡터 수정, 중간 프레임 생성 단계로 나눌 수 있다.1 to 3, a motion compensated frame interpolation method (MCFI) refers to a technique of generating an interpolated frame between successive frames to improve the frame rate of video content. . MCFI can be divided into motion estimation, motion vector correction, and intermediate frame generation.

MCFI는 연속하는 프레임 사이의 물체의 움직임을 추정하기 위해 움직임 추정 방법이 사용된다. 이때, 적절한 시간 복잡도와 성능을 고려하여 블록 매칭 알고리즘(block matching algorithm, BMA)이 주로 사용된다. 블록 매칭 알고리즘은 입력 프레임을 블록 단위로 나눈 다음 각 블록마다 움직임 벡터를 추정하는 방법이다.The MCFI uses a motion estimation method to estimate the motion of an object between successive frames. In this case, a block matching algorithm (BMA) is mainly used in consideration of appropriate time complexity and performance. The block matching algorithm divides an input frame into blocks and estimates a motion vector for each block.

움직임 추정 방법은 기준을 어떤 프레임으로 잡는지에 따라 단방향 움직임 추정 방법(uni-directional motion estimation)과 양방향 움직임 추정 방법(bi-directional motion estimation)으로 나뉜다.The motion estimation method is divided into a uni-directional motion estimation method and a bi-directional motion estimation method according to which frame the reference is taken.

단방향 움직임 추정 방법은 도 1에 도시된 바와 같을 수 있다. 단방향 움직임 추정 방법은 이전 프레임(previous frame, t-1)과 현재 프레임(current frame, t) 사이에 중간 프레임(interpolated frame, t-1/2)을 생성할 때, 현재 프레임을 기준으로 하여 움직임 벡터를 추정한다. 움직임 벡터는 수학식 1을 이용하여 추정된다.The unidirectional motion estimation method may be as shown in FIG. 1. In the unidirectional motion estimation method, when an interpolated frame (t-1 / 2) is generated between a previous frame (t-1) and a current frame (t), the motion is based on the current frame. Estimate the vector. The motion vector is estimated using Equation 1.

Figure pat00001
Figure pat00001

여기에서

Figure pat00002
는 단방향 움직임 벡터,
Figure pat00003
는 이전 프레임
Figure pat00004
는 현재 프레임을 의미한다. 또한
Figure pat00005
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.From here
Figure pat00002
Is a one-way motion vector,
Figure pat00003
Frame the old
Figure pat00004
Means the current frame. Also
Figure pat00005
Are motion vector candidates, B and S are blocks and search regions, respectively.

단방향 움직임 추정 방법은 높은 정확도를 갖는 움직임 벡터를 추정할 수 있지만 중간 프레임 생성 시 필연적으로 중첩(overlap) 영역과 홀(hole) 영역이 발생한다.The unidirectional motion estimation method can estimate a motion vector with high accuracy, but inevitably, an overlap region and a hole region are generated when generating an intermediate frame.

양방향 움직임 추정 방법은 도 2에 도시된 바와 같을 수 있다. 이전 프레임(previous frame, t-1)과 현재 프레임(current frame, t) 사이에 중간 프레임(interpolated frame, t-1/2)을 생성할 때, 중간 프레임을 기준으로 하여 움직임 벡터를 추정한다. 움직임 벡터는 수학식 2를 이용하여 추정된다.The bidirectional motion estimation method may be as shown in FIG. 2. When an interpolated frame t-1 / 2 is generated between a previous frame t-1 and a current frame t, a motion vector is estimated based on the intermediate frame. The motion vector is estimated using equation (2).

Figure pat00006
Figure pat00006

여기에서

Figure pat00007
는 양방향 움직임 벡터,
Figure pat00008
는 이전프레임,
Figure pat00009
는 현재 프레임을 의미한다. 또한
Figure pat00010
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.From here
Figure pat00007
Is a bidirectional motion vector,
Figure pat00008
Is the previous frame,
Figure pat00009
Means the current frame. Also
Figure pat00010
Are motion vector candidates, B and S are blocks and search regions, respectively.

양방향 움직임 추정 방법은 중간 프레임(t-1/2)을 기준으로 움직임 벡터들을 구하기 때문에 중첩(overlap) 영역과 홀(hole) 영역이 발생하지 않는다. 일반적인 양방향 움직임 추정 방법에서 중간 프레임(t-1/2)의 블록은 이전 프레임(t-1) 및 현재 프레임(t) 사이의 움직임을 추정할 때 기준점 역할을 수행한다. 하지만 중간 프레임(t-1/2)의 블록은 아직 픽셀 정보를 갖고 있지 않기 때문에 위치적인 기준점 역할을 수행할 뿐 정확한 움직임 벡터를 찾는 것에 도움을 주진 못한다. 이로 인해 양방향 움직임 추정 방법은 종종 잘못된 움직임 벡터를 추정하게 되며 움직임 벡터 추정의 정확도가 떨어지게 된다.Since the bidirectional motion estimation method obtains motion vectors based on the intermediate frame t-1 / 2, an overlap region and a hole region do not occur. In a general bidirectional motion estimation method, a block of an intermediate frame t-1 / 2 serves as a reference point when estimating a motion between a previous frame t-1 and a current frame t. However, since the block of the intermediate frame (t-1 / 2) does not have pixel information yet, it serves as a positional reference point and does not help to find an accurate motion vector. As a result, the bidirectional motion estimation method often estimates a wrong motion vector, and the accuracy of motion vector estimation is inferior.

단방향 움직임 추정 방법 및 양방향 움직임 추정 방법을 통한 움직임 추정 과정을 통해 프레임의 모든 블록에 대해 움직임 벡터를 추정하게 된다. 움직임 추정 방법으로 구한 블록 단위의 움직임 벡터들은 도 3과 같이 움직임 벡터 필드(motion vector field(MVF))를 구성하게 된다.A motion vector is estimated for all blocks of a frame through a motion estimation process using a unidirectional motion estimation method and a bidirectional motion estimation method. The motion vectors in block units obtained by the motion estimation method constitute a motion vector field (MVF) as shown in FIG. 3.

항상 정확한 움직임 벡터가 움직임 추정 과정에서 추정되는 것은 아니다. 따라서 MVF 상에는 잘못 추정된 움직임 벡터들이 존재하며 이를 수정하는 과정을 거쳐야 한다. 대부분의 MCFI 방법들은 추정된 움직임 벡터에 평균값 필터링(mean filtering), 중앙값 필터링(median filtering) 등을 적용한다. 추정된 움직임 벡터에 필터링을 하게 되면 움직임 벡터가 주변 움직임 벡터들을 통해 평활화(smoothing) 되므로, 오차를 줄인 일관성있는(coherent) MVF를 얻을 수 있다.The exact motion vector is not always estimated in the motion estimation process. Therefore, there are wrongly estimated motion vectors on the MVF, and they must be corrected. Most MCFI methods apply mean filtering, median filtering, and the like to the estimated motion vectors. Filtering the estimated motion vector smoothes the motion vector through the neighboring motion vectors, thereby obtaining a coherent MVF with reduced error.

하지만, 몇몇 움직임 벡터들은 필터링을 적용하여도 제대로 수정되지 않는 경우가 발생한다. 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들은 중간 프레임을 생성했을 때 그 영역에 왜곡을 발생시킨다. 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들은 추가적으로 필터링을 적용하여도 잘 제거되지 않는다. 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들은 추가적인 필터링을 할 경우 정확하게 추정된 움직임 벡터들을 과도하게 평활화(over-smoothing) 한다.However, some motion vectors may not be corrected even if filtering is applied. Incorrectly estimated motion vectors that exist even after filtering cause distortion in the region when the intermediate frame is generated. Incorrectly estimated motion vectors that exist even after filtering are not removed well by additional filtering. Incorrectly estimated motion vectors that exist even after filtering over-smoothing the correctly estimated motion vectors when additional filtering is performed.

MCFI의 마지막 단계인 중간 프레임 생성 단계에서는 필터링을 통해 수정된 벡터들을 통해서 중간 프레임을 생성하게 된다. 이때, 중간 프레임은 수정된 움직임 벡터가 가리키는 위치에 해당하는 이전 프레임 및 현재 프레임의 픽셀 값들을 사용하여 생성된다. 중간 프레임은 수학식 3을 이용하여 생성된다.In the middle frame generation step, which is the last step of the MCFI, the intermediate frame is generated through the modified vectors through filtering. In this case, the intermediate frame is generated using pixel values of the previous frame and the current frame corresponding to the position indicated by the modified motion vector. The intermediate frame is generated using equation (3).

Figure pat00011
Figure pat00011

여기서

Figure pat00012
는 중간프레임,
Figure pat00013
Figure pat00014
는 각각 이전 프레임과 현재 프레임을 의미한다. 또한
Figure pat00015
는 움직임 벡터 후보들을 의미한다.이처럼, MCFI는 비디오 프레임 상의 물체의 움직임을 추정하고 이를 반영하여 중간 프레임을 생성, 삽입함으로써 프레임률을 향상시킨다. 따라서, 프레임 상의 물체의 움직임을 정확히 추정하는 것이 중요하다.here
Figure pat00012
Is the middle frame,
Figure pat00013
and
Figure pat00014
Denotes the previous frame and the current frame, respectively. Also
Figure pat00015
In this way, MCFI estimates the motion of an object on a video frame and reflects it to generate and insert an intermediate frame to improve the frame rate. Therefore, it is important to accurately estimate the motion of the object on the frame.

상술한 바와 같이, 단방향 움직임 추정 방법은 중간 프레임 생성 시 필연적으로 중첩(overlap) 영역과 홀(hole) 영역이 발생한다. 또한, 양방향 움직임 추정 방법은 픽셀 정보가 없는 중간 프레임을 기준으로 움직임 벡터를 찾는 것이기 때문에 잘못 추정된 움직임 벡터가 존재하며 이로 인하여 움직임 벡터 추정의 정확도가 떨어지게 된다. 필터링 과정에서도 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들이 정확하게 추정된 움직임 벡터들을 과도하게 평활화(over smoothing) 한다.As described above, in the unidirectional motion estimation method, an overlap region and a hole region inevitably occur when generating an intermediate frame. In addition, since the bidirectional motion estimation method finds a motion vector based on an intermediate frame having no pixel information, an incorrectly estimated motion vector exists, and thus, the accuracy of motion vector estimation is reduced. In the filtering process, incorrectly estimated motion vectors that exist even after filtering over smooth the correctly estimated motion vectors.

실시예들은 보다 정확한 움직임 벡터를 추정하고, 추정된 움직임 벡터를 이용하여 향상된 품질의 중간 프레임을 생성할 수 있다. 이하에서는 도 4 내지 도 17을 참조하여 이를 상세히 설명한다.Embodiments may estimate a more accurate motion vector and generate an intermediate frame of improved quality using the estimated motion vector. Hereinafter, this will be described in detail with reference to FIGS. 4 to 17.

도 4는 일 실시예에 따른 보간 장치의 개략적인 블록도이다.4 is a schematic block diagram of an interpolation apparatus according to an embodiment.

도 4를 참조하면, 보간 장치(100)는 추정기(200) 및 생성기(300)를 포함한다.Referring to FIG. 4, the interpolation apparatus 100 includes an estimator 200 and a generator 300.

추정기(200)는, 하나 이상의 프레임을 이용하여 두 가지 이상의 움직임 추정 방법으로 움직임 벡터를 추정할 수 있다. 움직임 추정 방법은 두 장의 프레임을 활용하는 움직임 추정 방법과 세 장의 프레임을 활용하는 움직임 추정 방법을 활용할 수 있다.The estimator 200 may estimate the motion vector using two or more motion estimation methods using one or more frames. The motion estimation method may use a motion estimation method using two frames and a motion estimation method using three frames.

추정기(200)는 두 장의 프레임을 이용하여 제1 움직임 벡터를 추정하고, 세 장의 프레임을 이용하여 제2 움직임 벡터를 추정할 수 있다. 제1 움직임 벡터 및 제2 움직임 벡터는 추정기(200)에서 프레임의 블록 단위 마다 추정될 수 있다.The estimator 200 may estimate the first motion vector using two frames and estimate the second motion vector using three frames. The first motion vector and the second motion vector may be estimated for each block unit of the frame in the estimator 200.

생성기(300)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택할 수 있다. 생성기(300)는 더 정확하게 추정된 움직임 벡터를 선택할 수 있다. 선택된 움직임 벡터는 물체의 움직임에 맞게 추정된 정확도 높은 움직임 벡터일 수 있다.The generator 300 may select any one of the first motion vector and the second motion vector. The generator 300 may select a motion vector that is more accurately estimated. The selected motion vector may be an accurate motion vector estimated for the motion of the object.

생성기(300)는 선택된 움직임 벡터를 수정하고, 수정된 움직임 벡터를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다. 이때, 생성기(300)는 수정된 움직임 벡터의 왜곡 영역을 검출하고, 검출된 왜곡 영역의 움직임 벡터를 재수정함으로써 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들을 제거할 수 있다.The generator 300 may modify the selected motion vector and generate an intermediate frame between the current frame and the previous frame using the modified motion vector. In this case, the generator 300 may remove the incorrectly estimated motion vectors that exist after the filtering by detecting the distortion region of the modified motion vector and re-correcting the motion vector of the detected distortion region.

상술한 바와 같이, 보간 장치(100)는 재수정된 움직임 벡터를 이용하여 중간 프레임을 생성함으로써, 비디오의 프레임률을 향상시키고 선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 기술을 제공할 수 있다.As described above, the interpolation apparatus 100 may generate an intermediate frame using the remodified motion vector, thereby improving the frame rate of the video and providing a motion compensation frame interpolation technique suitable for both linear and nonlinear motion.

도 5는 도 4에 도시된 추정기의 구체적인 블록도이다.FIG. 5 is a detailed block diagram of the estimator shown in FIG. 4.

도 5를 참조하면, 추정기(200)는 제1 추정기(210) 및 제2 추정기(230)를 포함할 수 있다.Referring to FIG. 5, the estimator 200 may include a first estimator 210 and a second estimator 230.

제1 추정기(210)는 두 장의 프레임을 이용하여 움직임 벡터를 추정할 수 있다. 예를 들어, 제1 추정기(210)는 현재 프레임(t frame)과 이전 프레임(t-1 frame)을 이용하여 제1 움직임 벡터(Vm)를 추정할 수 있다.The first estimator 210 may estimate the motion vector using two frames. For example, the first estimator 210 may estimate the first motion vector Vm using the current frame t frame and the previous frame t-1 frame.

제1 추정기(210)는 이전 프레임(t-1 frame) 및 현재 프레임(t frame)을 이용하여 현재 프레임(t frame)을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하고, 현재 프레임(t frame) 및 이전 프레임(t-1 frame)을 이용하여 이전 프레임(t-1 frame)을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하며, 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 제1 움직임 벡터(Vm)를 추정할 수 있다.The first estimator 210 estimates the first forward motion vector through forward motion estimation based on the current frame t using the previous frame t-1 frame and the current frame t frame. A first backward motion vector is estimated through backward motion estimation based on a previous frame t-1 using a frame t and a previous frame t-1. The first motion vector Vm may be estimated using one of the one backward motion vectors.

제2 추정기(230)는 세 장의 프레임을 이용하여 움직임 벡터를 추정할 수 있다. 예를 들어, 제2 추정기(230)는 현재 프레임(t frame), 이전 프레임(t-1 frame)과, 현재 프레임(t frame) 및 이전 프레임(t-1 frame) 중에서 어느 하나에 연속하는 프레임을 이용하여 제2 움직임 벡터(Vt)를 추정할 수 있다. 어느 하나에 연속하는 프레임은, 이전 프레임(t-1 frame)의 이전 프레임(t-2 frame) 또는 현재 프레임(t frame)의 이후 프레임(t+1 frame)일 수 있다.The second estimator 230 may estimate the motion vector using three frames. For example, the second estimator 230 is a frame contiguous to any one of a current frame t frame, a previous frame t-1 frame, and a current frame t frame and a previous frame t-1 frame. The second motion vector Vt can be estimated using. The frame continuous to either one may be a previous frame (t-2 frame) of the previous frame (t-1 frame) or a subsequent frame (t + 1 frame) of the current frame (t frame).

구체적으로, 제2 추정기(230)는 현재 프레임(t frame), 이전 프레임(t-1 frame) 및 이전 프레임의 이전 프레임(t-2 frame)을 이용하여 이전 프레임(t-1 frame)을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정할 수 있다. 제2 추정기(230)는 현재 프레임(t frame), 이전 프레임(t-1 frame) 및 현재 프레임의 이후 프레임(t+1 frame)을 이용하여 이후 프레임(t+1 frame)을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정할 수 있다. 제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 제2 움직임 벡터(Vt)를 추정할 수 있다.Specifically, the second estimator 230 refers to the previous frame t-1 frame using the current frame t frame, the previous frame t-1 frame, and the previous frame t-2 frame. The second forward motion vector can be estimated through forward motion estimation. The second estimator 230 uses a current frame t frame, a previous frame t-1 frame, and a subsequent frame t + 1 frame to refer to a later frame t + 1 frame. The second backward motion vector may be estimated through the motion estimation. The second estimator 230 may select one of the second forward motion vector and the second reverse motion vector to estimate the second motion vector Vt.

제1 움직임 벡터(Vm) 및 제2 움직임 벡터(Vt)는 제1 추정기(210) 및 제2 추정기(230)에서 프레임의 블록 단위 마다 추정될 수 있다.The first motion vector Vm and the second motion vector Vt may be estimated for each block unit of the frame in the first estimator 210 and the second estimator 230.

도 6 내지 도 8은 제1 추정기가 두 장의 프레임을 이용하여 움직임을 추정하는 방법을 설명하기 위한 도면들이다.6 to 8 are diagrams for describing a method in which the first estimator estimates motion using two frames.

도 6은 두 장의 프레임을 활용하는 움직임 추정 방법 중 정방향 움직임 추정 방법을 나타낸 도면이고, 도 7은 두 장의 프레임을 활용하는 움직임 추정 방법 중 역방향 움직임 추정 방법을 나타낸 도면이고, 도 8은 두 장의 프레임을 활용하는 움직임 추정 방법 중 양방향 움직임 추정 방법을 나타낸 도면이다.6 is a diagram illustrating a forward motion estimation method among motion estimation methods using two frames, FIG. 7 is a diagram illustrating a backward motion estimation method among motion estimation methods using two frames, and FIG. 8 is a frame of two frames. 2 is a diagram illustrating a bidirectional motion estimation method among the motion estimation methods using the DMA.

제1 추정기(210)는 정방향 움직임 추정 방법을 통해 제1 정방향 움직임 벡터를 추정할 수 있다. 제1 추정기(210)는 수학식 4와 같이 제1 정방향 움직임 벡터를 계산할 수 있다.The first estimator 210 may estimate the first forward motion vector through a forward motion estimation method. The first estimator 210 may calculate a first forward motion vector as shown in Equation 4.

Figure pat00016
Figure pat00016

Figure pat00017
는 제1 정방향 움직임 벡터,
Figure pat00018
는 이전 프레임,
Figure pat00019
는 현재 프레임을 의미한다. 또한,
Figure pat00020
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure pat00017
Is the first forward motion vector,
Figure pat00018
Is the previous frame,
Figure pat00019
Means the current frame. Also,
Figure pat00020
Are motion vector candidates, B and S are blocks and search regions, respectively.

제1 추정기(210)는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정할 수 있다. 제1 추정기(210)는 수학식 5와 같이 제1 역방향 움직임 벡터를 계산할 수 있다.The first estimator 210 may estimate the first backward motion vector through backward motion estimation. The first estimator 210 may calculate a first backward motion vector as shown in Equation 5.

Figure pat00021
Figure pat00021

Figure pat00022
는 제1 역방향 움직임 벡터,
Figure pat00023
는 이전프레임,
Figure pat00024
는 현재 프레임을 의미한다. 또한
Figure pat00025
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure pat00022
Is the first reverse motion vector,
Figure pat00023
Is the previous frame,
Figure pat00024
Means the current frame. Also
Figure pat00025
Are motion vector candidates, B and S are blocks and search regions, respectively.

제1 추정기(210)는 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터를 각각 추정한 뒤, 두 벡터 중에서 현재 프레임 및 이전 프레임 사이의 SAD(Sum of absolute difference)값을 최소화하는 움직임 벡터를 선택함으로써 더 정확하게 추정된 움직임 벡터를 결정할 수 있다.The first estimator 210 estimates the first forward motion vector and the first backward motion vector, respectively, and then selects a motion vector that minimizes a sum of absolute difference (SAD) value between the current frame and the previous frame among the two vectors. More accurately the estimated motion vector can be determined.

제1 추정기(210)는 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 더 작은 SAD 값을 가지는 움직임 벡터를 결정할 수 있다. 제1 추정기(210)는 제1 움직임 벡터를 수학식 6을 이용하여 수학식 7과 같이 계산할 수 있다.The first estimator 210 may determine a motion vector having a smaller SAD value among the first forward motion vector and the first backward motion vector. The first estimator 210 may calculate the first motion vector as shown in Equation 7 by using Equation 6.

Figure pat00026
Figure pat00026

Figure pat00027
Figure pat00027

Figure pat00028
은 제1 움직임 벡터,
Figure pat00029
는 이전프레임,
Figure pat00030
는 현재 프레임을 의미한다. 또한
Figure pat00031
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure pat00028
Is the first motion vector,
Figure pat00029
Is the previous frame,
Figure pat00030
Means the current frame. Also
Figure pat00031
Are motion vector candidates, B and S are blocks and search regions, respectively.

제1 추정기(210)는, 제1 정방향 움직임 벡터의 SAD값 및 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 현재 프레임(

Figure pat00032
)과 이전 프레임(
Figure pat00033
) 간의 중간 프레임(
Figure pat00034
)을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정할 수 있다.The first estimator 210 uses a motion vector having a smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector, to determine the current frame (
Figure pat00032
) And previous frame (
Figure pat00033
Middle frame between
Figure pat00034
) May be used to estimate the first motion vector.

제1 추정기(210)가 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 선택한 더 작은 SAD 값을 가지는 움직임 벡터

Figure pat00035
은 제1 움직임 벡터를 구하기 위하여 양방향 움직임 추정 방법의 초기 움직임 벡터로 쓰일 수 있다. 초기 움직임 벡터가 가리키는 부근의 좁은 탐색 영역에서 양방향 움직임 추정 방법을 통해 제1 움직임 벡터
Figure pat00036
가 결정될 수 있다.A motion vector having a smaller SAD value selected by the first estimator 210 from the first forward motion vector and the first backward motion vector
Figure pat00035
May be used as an initial motion vector of a bidirectional motion estimation method to obtain a first motion vector. First motion vector through a bidirectional motion estimation method in a narrow navigation region indicated by the initial motion vector.
Figure pat00036
Can be determined.

제1 추정기(210)는 수학식 8과 같이 제1 움직임 벡터를 계산할 수 있다.The first estimator 210 may calculate a first motion vector as shown in Equation 8.

Figure pat00037
Figure pat00037

여기서

Figure pat00038
는 제1 움직임 벡터,
Figure pat00039
Figure pat00040
는 각각 이전 프레임과 현재 프레임을 의미한다. 또한
Figure pat00041
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.here
Figure pat00038
Is the first motion vector,
Figure pat00039
and
Figure pat00040
Denotes the previous frame and the current frame, respectively. Also
Figure pat00041
Are motion vector candidates, B and S are blocks and search regions, respectively.

도 9는 제2 추정기가 세 장의 프레임을 이용하여 움직임 벡터를 추정하는 방법을 설명하기 위한 도면이다.FIG. 9 is a diagram for describing a method in which the second estimator estimates a motion vector using three frames.

제2 추정기(230)는 정방향 움직임 추정 방법을 통해 제2 정방향 움직임 벡터를 추정할 수 있다. 제2 추정기(230)는 수학식 9와 같이 제2 정방향 움직임 벡터를 계산할 수 있다.The second estimator 230 may estimate the second forward motion vector through the forward motion estimation method. The second estimator 230 may calculate a second forward motion vector as shown in Equation (9).

Figure pat00042
Figure pat00042

Figure pat00043
는 제2 정방향 움직임 벡터,
Figure pat00044
는 이전 프레임의 이전 프레임,
Figure pat00045
는 이전 프레임,
Figure pat00046
는 현재 프레임을 의미한다. 또한
Figure pat00047
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure pat00043
Is the second forward motion vector,
Figure pat00044
Is the previous frame of the previous frame,
Figure pat00045
Is the previous frame,
Figure pat00046
Means the current frame. Also
Figure pat00047
Are motion vector candidates, B and S are blocks and search regions, respectively.

제2 추정기(230)는 역방향 움직임 추정 방법을 통해 제2 역방향 움직임 벡터를 추정할 수 있다. 제2 추정기(230)는 수학식 10과 같이 제2 역방향 움직임 벡터를 계산할 수 있다.The second estimator 230 may estimate the second reverse motion vector through a backward motion estimation method. The second estimator 230 may calculate a second reverse motion vector as shown in Equation 10.

Figure pat00048
Figure pat00048

여기에서,

Figure pat00049
는 제2 역방향 움직임 벡터,
Figure pat00050
는 이전 프레임,
Figure pat00051
는 현재 프레임,
Figure pat00052
는 현재 프레임의 이후 프레임을 의미한다. 또한
Figure pat00053
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.From here,
Figure pat00049
Is the second reverse motion vector,
Figure pat00050
Is the previous frame,
Figure pat00051
Is the current frame,
Figure pat00052
Means a frame after the current frame. Also
Figure pat00053
Are motion vector candidates, B and S are blocks and search regions, respectively.

제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산할 수 있다.The second estimator 230 may calculate a sum of absolute difference (SAD) value of the second forward motion vector and the second reverse motion vector.

제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터 중에서 더 작은 SAD 값을 가지는 움직임 벡터를 결정할 수 있다. 제2 추정기(230)는 제2 움직임 벡터를 수학식 11을 이용하여 수학식 12와 같이 계산할 수 있다.The second estimator 230 may determine a motion vector having a smaller SAD value among the second forward motion vector and the second reverse motion vector. The second estimator 230 may calculate the second motion vector as shown in Equation 12 using Equation 11.

Figure pat00054
Figure pat00054

Figure pat00055
Figure pat00055

여기에서,

Figure pat00056
는 제2 움직임 벡터,
Figure pat00057
는 이전 프레임,
Figure pat00058
는 현재 프레임을 의미한다. 또한
Figure pat00059
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.From here,
Figure pat00056
Is the second motion vector,
Figure pat00057
Is the previous frame,
Figure pat00058
Means the current frame. Also
Figure pat00059
Are motion vector candidates, B and S are blocks and search regions, respectively.

세 장의 프레임을 활용한 움직임 추정 방법의 경우, 세 장의 프레임 중에서 가운데(middle) 프레임은 벡터 추정의 기준점 역할을 수행하게 될 수 있다. 예를 들어, 현재 프레임(

Figure pat00060
), 이전 프레임(
Figure pat00061
) 및 이전 프레임의 이전 프레임(
Figure pat00062
)을 이용하는 경우에는 현재 프레임(
Figure pat00063
Figure pat00064
이 기준 프레임이 된다.In the case of a motion estimation method using three frames, the middle frame among the three frames may serve as a reference point for vector estimation. For example, the current frame (
Figure pat00060
), Previous frame (
Figure pat00061
) And the previous frame of the previous frame (
Figure pat00062
), The current frame (
Figure pat00063
Figure pat00064
This reference frame is used.

세 장의 프레임을 활용한 움직임 추정 방법은 세 프레임 중 가운데 프레임이 픽셀 정보를 가지고 있으며 기준점 역할을 수행하게 되므로 보다 정확한 움직임 벡터를 측정해낼 수 있으며 움직임 추정 방법의 성능 향상에 기여할 수 있다.In the motion estimation method using three frames, the center frame among the three frames has pixel information and serves as a reference point, so that a more accurate motion vector can be measured and the performance of the motion estimation method can be improved.

도 10은 도 4에 도시된 생성기의 구체적인 블록도의 일 예를 나타내고, 도 11은 도 10에 도시된 수정기가 검출한 왜곡 영역을 나타낸 도면이고, 도 12는 수정기의 재수정에 따른 왜곡 제거 과정을 나타낸 도면이다.FIG. 10 illustrates an example of a detailed block diagram of the generator illustrated in FIG. 4, FIG. 11 illustrates a distortion region detected by the corrector illustrated in FIG. 10, and FIG. 12 illustrates a distortion elimination process according to re-correction of the corrector. It is a diagram showing.

도 10 내지 도 11을 참조하면, 생성기(300)는 선택기(310), 필터(320), 및 수정기(330)를 포함할 수 있다.10 to 11, the generator 300 may include a selector 310, a filter 320, and a modifier 330.

선택기(310)는, 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 생성하고, MVF를 출력할 수 있다.The selector 310 may select one of the first motion vector and the second motion vector for each block unit of the frame, generate a motion vector field (MVF), and output the MVF.

선택기(310)는, 프레임 내 객체의 움직임이 비선형(nonlinear)일 경우, 제1 움직임 벡터를 선택하고, 프레임 내 객체의 움직임이 선형(linear)일 경우, 제2 움직임 벡터를 선택할 수 있다. 프레임 내 객체의 움직임은 세 장의 프레임 동안의 프레임 내 객체의 움직임을 기준으로 선형 또는 비선형으로 나눌 수 있다.The selector 310 may select the first motion vector when the movement of the object in the frame is nonlinear, and select the second motion vector when the movement of the object in the frame is linear. The movement of an object in a frame can be divided into linear or nonlinear based on the movement of the object in the frame during three frames.

선택기(310)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터를 선택할 수 있다. 더 정확하게 추정된 움직임 벡터라 함은, 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 움직임 벡터는 가운데(middle) 프레임이 픽셀 정보를 가지고 기준점 역할을 수행한다. 이 때문에 세 장의 프레임을 활용하는 움직임 추정 방법은 물체가 세 장의 프레임 동안 선형(linear)적으로 움직이는 경우 움직임 벡터 추정에 좋은 성능을 보인다. 세 장의 프레임을 활용하는 움직임 추정 방법은 세 장의 프레임 동안 물체가 비선형(nonlinear)적으로 움직일 때에는 오히려 움직임 벡터의 추정 성능이 떨어지게 된다. 물체가 비선형적으로 움직이는 경우에는 두 장의 프레임을 활용하는 움직임 추정 방법이 더 좋은 움직임 벡터의 추정 성능을 보인다. 따라서 여러 장의 프레임 동안 물체의 움직임이 선형적일 경우 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제2 움직임 벡터를 선택한다. 또한, 물체의 움직임이 비선형적일 경우 두 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제1 움직임 벡터를 선택한다. 이처럼 물체의 움직임 패턴에 따라서 다르게 선택한 움직임 벡터 블록으로 구성된 MVF는 기존의 움직임 추정 방법 보다 더욱 정확한 움직임 추정 성능을 보인다. 이때 선택기(310)가 선택한 움직임 벡터는 물체의 움직임 패턴에 따라 움직임 벡터를 선택하므로 추정기(200)가 추정한 제1 움직임 벡터와 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터라고 할 수 있다.The selector 310 may select a motion vector more accurately estimated from the first motion vector and the second motion vector. The motion vector estimated more accurately is a motion vector estimated by a motion estimation method using three frames, and the middle frame serves as a reference point with pixel information. For this reason, the motion estimation method using three frames shows good performance for motion vector estimation when an object moves linearly over three frames. In the motion estimation method using three frames, when the object moves nonlinearly during three frames, the estimation performance of the motion vector is deteriorated. If the object is moving non-linearly, the motion estimation method using two frames shows better performance of motion vector estimation. Therefore, when the motion of the object is linear for several frames, the second motion vector estimated by the motion estimation method using three frames is selected. In addition, when the motion of the object is non-linear, the first motion vector estimated by the motion estimation method using two frames is selected. The MVF, which consists of motion vector blocks selected differently according to the motion pattern of the object, shows more accurate motion estimation performance than the conventional motion estimation method. In this case, since the motion vector selected by the selector 310 selects the motion vector according to the motion pattern of the object, the motion vector selected by the estimator 200 may be more accurately estimated from the first motion vector and the second motion vector estimated by the estimator 200.

선택기(310)는, 더 정확하게 추정된 움직임 벡터를 선택하기 위해서 추정기(200)가 추정한 움직임 벡터 주변에 존재하는 이미 추정된 이웃 움직임 벡터들과의 관계를 이용한다. 추정기(200)가 더 정확하게 추정한 움직임 벡터의 경우, 이웃 움직임 벡터들과의 벡터값 차이가 더 적다. 이를 이용한다면, 추정기(200)가 추정한 제1 및 제2 움직임 벡터 중 더 정확하게 추정된 움직임 벡터를 선택할 수 있다.The selector 310 uses the relationship with the already estimated neighboring motion vectors existing around the motion vector estimated by the estimator 200 to select the more accurately estimated motion vector. In the case of the motion vector estimated by the estimator 200 more accurately, the vector value difference from neighboring motion vectors is smaller. Using this, the estimator 200 may select a motion vector estimated more accurately among the estimated first and second motion vectors.

선택기(310)는 추정기(200)에서 추정한 제1 움직임 벡터 및 제2 움직임 벡터 중 하나를 다음 수학식 13을 통하여 선택할 수 있다.The selector 310 may select one of the first motion vector and the second motion vector estimated by the estimator 200 through the following equation (13).

Figure pat00065
Figure pat00065

여기에서

Figure pat00066
는 선택기(310)가 선택하는 움직임 벡터,
Figure pat00067
은 이미 추정된 이웃 블록의 움직임 벡터들을 의미한다.From here
Figure pat00066
Is the motion vector selected by the selector 310,
Figure pat00067
Denotes motion vectors of neighboring blocks that have already been estimated.

선택기(310)는 선택된 움직임 벡터들을 이용하여 MVF로 구성할 수 있다. 선택기(310)는 MVF를 필터(320)로 출력할 수 있다.The selector 310 may configure MVF using the selected motion vectors. The selector 310 may output the MVF to the filter 320.

필터(320)는, 선택기(310)로부터 출력된 MVF의 오류를 필터링을 통해 제거하여 수정된 MVF를 출력할 수 있다.The filter 320 may output the modified MVF by removing the error of the MVF output from the selector 310 through filtering.

선택기(310)로부터 출력된 MVF에는 추정기(200)가 잘못 추정한 움직임 벡터들이 존재할 수 있다. 이를 수정하기 위해, 대부분의 MCFI 방법들은 움직임 벡터들에 평균값 필터링(mean filtering), 중앙값 필터링(median filtering)을 적용한다. 이렇게 벡터 필터링을 적용하게 되면 주변 움직임 벡터들을 통해 평활화(smoothing) 된 움직임 벡터를 구하게 되므로, 오차를 줄인 일관성있는(coherent) 움직임 벡터 필드(MVF)를 얻을 수 있다. 주변 움직임 벡터를 사용하여 필터링을 수행할 때, SAD 값을 가중치로 활용하면 효과적인 움직임 벡터 수정을 할 수 있다.There may be motion vectors incorrectly estimated by the estimator 200 in the MVF output from the selector 310. To correct this, most MCFI methods apply mean filtering and median filtering to motion vectors. When vector filtering is applied, a smoothed motion vector is obtained from the neighboring motion vectors, thereby obtaining a coherent motion vector field (MVF) with reduced error. When filtering using the surrounding motion vector, the SAD value is used as a weight to effectively modify the motion vector.

필터(320)는 필터링을 통하여 수정된 움직임 벡터를 구할 수 있다. 필터(320)는 다음의 수학식 14를 이용하여 15와 같이 수정된 움직임 벡터를 계산할 수 있다.The filter 320 may obtain a modified motion vector through filtering. The filter 320 may calculate a modified motion vector as shown in 15 using Equation 14 below.

Figure pat00068
Figure pat00068

Figure pat00069
Figure pat00069

여기서,

Figure pat00070
은 수정된 움직임 벡터이고,
Figure pat00071
는 이웃 8개 블록의 움직임 벡터들을 의미한다.here,
Figure pat00070
Is the modified motion vector,
Figure pat00071
Denotes motion vectors of neighboring eight blocks.

필터(320)는 수정된 움직임 벡터를 MVF에 적용하여 수정된 MVF를 생성할 수 있다.The filter 320 may apply the modified motion vector to the MVF to generate the modified MVF.

수정기(330)는, 수정된 MVF에 기초한 중간 프레임 및 수정된 MVF를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다.The modifier 330 may generate an intermediate frame between the current frame and the previous frame using the modified MVF and the intermediate frame.

수정기(330)는, 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하고, 왜곡 영역에 대응하는 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하고, 재수정된 MVF를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다. 수정기(330)가 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 경우, 수정된 MVF와 수정된 MVF에 기초한 중간프레임을 이용하여 수정된 왜곡 영역을 검출할 수 있다.The modifier 330 detects a distortion region of the intermediate frame based on the modified MVF, generates a modified MVF by modifying a motion vector of the modified MVF corresponding to the distortion region, and uses the current frame by using the modified MVF. And an intermediate frame between the previous frame can be created. When the modifier 330 detects a distortion region of an intermediate frame based on the modified MVF, the modified distortion region may be detected using the modified MVF and the intermediate frame based on the modified MVF.

수정기(330)에서의 움직임 벡터 수정은, 기존 MCFI 과정 중 필터링 후에도 남아있는 잘못 추정된 움직임 벡터들이 중간 프레임 상에서 발생하는 왜곡을 제거할 수 있다. 수정기(330)는 수정된 MVF에 기초한 중간 프레임의 어느 영역에 왜곡이 발생하였는지를 먼저 검출해낸다. 그 다음, 수정기(330)가 왜곡을 검출한 영역에 해당하는 움직임 벡터들 만을 재수정 함으로써, 필터(320)의 필터링 후에도 남아있는 잘못 추정된 움직임 벡터들을 효과적으로 제거할 수 있다. 또한, 수정기(330)의 재수정으로 인하여 정확하게 추정된 벡터들의 과도한 평활화(over-smoothing)가 발생하지 않을 수 있다.The motion vector correction in the modifier 330 may remove distortions in which incorrectly estimated motion vectors remaining after the filtering in the existing MCFI process occur on an intermediate frame. The modifier 330 first detects in which region of the intermediate frame the distortion occurred based on the modified MVF. Then, by modifying only the motion vectors corresponding to the region where the modifier 330 detects the distortion, it is possible to effectively remove the incorrectly estimated motion vectors remaining after the filtering of the filter 320. In addition, over-smoothing of correctly estimated vectors may not occur due to the recorrection of the modifier 330.

수정기(330)는, CNN(convolutional neural network)을 통해 왜곡 영역을 검출할 수 있다. 예를 들어, 수정기(330)가 사용하는 CNN 구조는 C(64,5,1)-C(64,5,1)-C(64,5,1)-C(64,3,1)-F(64)-F(64)-F(2),와 같을 수 있다. CNN 구조에서 C(n,k,s)는 k

Figure pat00072
k 사이즈의 n개의 필터를 갖는 convolutional layer를 뜻한다. s는 필터가 이동하는 간격, stride를 의미한다. F(m)은 m개의 뉴런을 갖는 fully connected layer를 뜻한다.The modifier 330 may detect a distortion region through a convolutional neural network (CNN). For example, the CNN structure used by the modifier 330 is C (64,5,1) -C (64,5,1) -C (64,5,1) -C (64,3,1) -F (64) -F (64) -F (2), may be the same. In the CNN structure, C (n, k, s) is k
Figure pat00072
It means a convolutional layer with n filters of k size. s means stride, the interval at which the filter moves. F (m) means a fully connected layer having m neurons.

학습된 네트워크는 수정된 MVF 및 수정된 MVF에 기초한 중간 프레임을 입력하면 도 11과 같이 어느 영역에 왜곡이 발생하였는지를 검출한다. 왜곡 영역은 도 11의 점이 존재하는 영역이다.The learned network detects in which region distortion occurs as shown in FIG. 11 when inputting the modified MVF and the intermediate frame based on the modified MVF. The distortion area is an area where the points of FIG. 11 exist.

수정기(330)가 CNN을 통해 왜곡이라고 판단한 영역에 해당하는 움직임 벡터는 수정기(330)가 왜곡 영역이 아니라고 판단한 주변 움직임 벡터들만을 이용하여 수정된다.The motion vector corresponding to the region determined by the modifier 330 as distortion through the CNN is corrected using only the peripheral motion vectors determined by the modifier 330 as not a distortion region.

수정기(330)는 필터(320)에서 수정된 움직임 벡터를 재수정하여 재수정된 움직임 벡터를 구할 수 있다. 재수정된 움직임 벡터는 수학식 16을 이용하여 수학식 17과 같이 구할 수 있다.The modifier 330 may obtain the re-corrected motion vector by re-correcting the motion vector modified by the filter 320. The recorrected motion vector can be obtained as shown in Equation 17 using Equation 16.

Figure pat00073
Figure pat00073

Figure pat00074
Figure pat00074

Figure pat00075
는 재수정된 움직임 벡터,
Figure pat00076
는 왜곡이 아닌 것으로 판별된 이웃 블록의 움직임 벡터들을 의미한다.
Figure pat00075
The redefined motion vector,
Figure pat00076
Denotes motion vectors of the neighboring block determined as not distortion.

수정기(330)의 재수정은 1회 내지 5회의 반복횟수를 가질 수 있지만, 반드시 이에 한정되는 것은 아니며, 수정기(330)의 재수정 횟수는 n회 이상일 수 있다(n은 1 이상의 자연수). 재수정 과정을 통해 도 12과 같이 정확하게 추정된 벡터의 과도한 평활화(over smoothing) 문제없이 왜곡 영역을 효과적으로 제거할 수 있다. 도 12에 나타나 있는 숫자들은 수정기(330)의 재수정 반복횟수를 의미한다.The re-modification of the modifier 330 may have one to five repetitions, but is not limited thereto, and the number of re-modification of the modifier 330 may be n or more (n is a natural number of 1 or more). Through the re-correction process, it is possible to effectively remove the distortion region without the problem of over smoothing the correctly estimated vector as shown in FIG. 12. Numbers shown in Figure 12 refers to the number of re-modification iteration of the modifier 330.

도 13는 일 실시예에 따른 보간 방법을 나타낸 순서도이다.13 is a flowchart illustrating an interpolation method, according to an exemplary embodiment.

도 13를 참조하면, 추정기(200)는 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정한다(1610a). 제1 움직임 벡터는 프레임의 블록 단위 마다 추정될 수 있다.Referring to FIG. 13, the estimator 200 estimates a first motion vector using a current frame and a previous frame (1610a). The first motion vector may be estimated for each block unit of a frame.

추정기(200)는 현재 프레임 및 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정한다(1610b). 제2 움직임 벡터는 프레임의 블록 단위 마다 추정될 수 있다.The estimator 200 estimates the second motion vector by further using a frame consecutive to either the current frame or the previous frame (1610b). The second motion vector may be estimated for each block unit of the frame.

생성기(300)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성한다(1620).The generator 300 generates an intermediate frame between the current frame and the previous frame by using any one of the first motion vector and the second motion vector (1620).

도 14은 각 시퀀스 별 평균 PSNR과 SSIM 측정 결과를 나타낸 도면이고, 도 15는 Mobile 시퀀스의 결과를 나타낸 도면이고, 도 16은 Soccer 시퀀스의 결과를 나타낸 도면이고, 도 17는 Stefan 시퀀스의 결과를 나타낸 도면이다.FIG. 14 is a diagram illustrating average PSNR and SSIM measurement results for each sequence, FIG. 15 is a diagram illustrating a result of a mobile sequence, FIG. 16 is a diagram illustrating a soccer sequence, and FIG. 17 is a result of a Stefan sequence. Drawing.

실시예에 따른 보간 방법의 성능을 평가하기 위해서 벤치마크 비디오 시퀀스들을 이용하여 실험을 수행하였다. 실험에 사용한 시퀀스는 Common intermediate format (CIF)의 News, Stefan, City, Coastguard, Foreman, Mother&daughter, Mobile, Soccer이다. 이 시퀀스들의 짝수 번째 프레임들은 제거된 뒤 MCFI 방법들에 의해 다시 생성된다. 생성된 중간 프레임과 원본 짝수 번째 프레임을 비교하여 MCFI 방법의 성능을 측정할 수 있다.Experiments were performed using benchmark video sequences to evaluate the performance of the interpolation method according to the embodiment. The sequences used in the experiments were News, Stefan, City, Coastguard, Foreman, Mother & daughter, Mobile, and Soccer in Common intermediate format (CIF). Even frames of these sequences are removed and regenerated by MCFI methods. The performance of the MCFI method can be measured by comparing the generated intermediate frame with the original even-numbered frame.

실시예에 따른 보간 방법에서 블록 사이즈는 8x8을 사용하였고, 탐색 영역은

Figure pat00077
40 이다. 움직임 수정 방법에 사용된 CNN은 Caffe package를 통해 구현되었다. 일 실시예에 따른 보간 방법은 기존의 다른 보간 방법들, dual ME, novel TME, MBOH, Kim’s, Lim’s과 비교하였다.In the interpolation method according to the embodiment, the block size is 8x8, and the search area is
Figure pat00077
40 is. The CNN used for motion correction is implemented through the Caffe package. The interpolation method according to an embodiment is compared with other existing interpolation methods, dual ME, novel TME, MBOH, Kim's, and Lim's.

객관적 평가를 위해 비디오 시퀀스마다 평균 Peak signal to noise ratio(PSNR)과 Structural similarity(SSIM)를 측정하여 비교하였고 그 결과는 도 14와 같다. 이를 통하여, 다른 MCFI 방법들과 비교했을 때 실시예에 따른 보간 방법의 성능이 더 좋은 것을 확인 가능하다.For objective evaluation, average peak signal to noise ratio (PSNR) and structural similarity (SSIM) were measured for each video sequence, and the results are shown in FIG. 14. Through this, it can be confirmed that the performance of the interpolation method according to the embodiment is better than other MCFI methods.

주관적 평가를 위해 각 MCFI 방법을 통해 생성된 중간 프레임들을 비교하였으며 그 결과는 도 15 내지 도 17와 같다. 실시예에 따른 보간 방법을 통해 생성된 중간 프레임들이 가장 원본 프레임과 유사하다는 것을 확인할 수 있다. 도 15 내지 도 17는 각 MCFI 방법을 통해 생성된 중간 프레임, 중간 프레임과 원본 프레임 간의 residual error map이다. 도 15 내지 도 17의 (a)는 원본 프레임, (b)는 novel TME, (c)는 MBOH, (d)는 Kim’s method, (e)는 Lim’s method, (f)는 proposed method이다.Intermediate frames generated by each MCFI method are compared for subjective evaluation, and the results are shown in FIGS. 15 to 17. It can be seen that the intermediate frames generated through the interpolation method according to the embodiment most closely resemble the original frames. 15 to 17 are residual error maps between an intermediate frame, an intermediate frame, and an original frame generated through each MCFI method. 15 to 17 (a) is an original frame, (b) is a novel TME, (c) is MBOH, (d) is Kim's method, (e) is Lim's method, and (f) is proposed method.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and may configure the processing device to operate as desired, or process independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be embodied permanently or temporarily in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the accompanying drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even by substitution or replacement by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.

Claims (20)

현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 추정기; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 생성기
를 포함하고,
상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정되는 보간 장치.
An estimator for estimating a first motion vector using a current frame and a previous frame and further estimating a second motion vector using a frame continuous to any one of the current frame and the previous frame; And
A generator for generating an intermediate frame between the current frame and the previous frame by using any one of the first motion vector and the second motion vector.
Including,
And the first motion vector and the second motion vector are estimated for each block unit of a frame.
제1항에 있어서,
상기 추정기는,
상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하고,
상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하며,
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는
보간 장치.
The method of claim 1,
The estimator,
Estimating a first forward motion vector using forward motion estimation based on the current frame using the previous frame and the current frame,
Estimating a first backward motion vector by using backward motion estimation based on the previous frame using the current frame and the previous frame,
Estimating the first motion vector using any one of the first forward motion vector and the first backward motion vector
Interpolation device.
제2항에 있어서,
상기 추정기는,
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하고,
상기 제1 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는
보간 장치.
The method of claim 2,
The estimator,
Calculating a sum of absolute difference (SAD) value of the first forward motion vector and the first backward motion vector,
Estimating the first motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the first forward motion vector and a SAD value of the first backward motion vector;
Interpolation device.
제3항에 있어서,
상기 추정기는,
상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정하는
보간 장치.
The method of claim 3,
The estimator,
A bidirectional motion estimation method based on an intermediate frame between the current frame and the previous frame using a motion vector having a smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector. To estimate the first motion vector through
Interpolation device.
제1항에 있어서,
상기 추정기는,
상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정하고,
상기 현재 프레임, 상기 이전 프레임 및 상기 현재 프레임의 이후 프레임을 이용하여 상기 이후 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정하며,
상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는
보간 장치.
The method of claim 1,
The estimator,
Estimating a second forward motion vector by using forward motion estimation based on the previous frame using the current frame, the previous frame, and the previous frame of the previous frame,
Estimating a second backward motion vector by using backward motion estimation based on the next frame using the current frame, the previous frame, and a subsequent frame of the current frame,
Estimating the second motion vector by selecting any one of the second forward motion vector and the second reverse motion vector;
Interpolation device.
제5항에 있어서,
상기 추정기는,
상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하고,
상기 제2 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제2 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제2 움직임 벡터를 추정하는
보간 장치.
The method of claim 5,
The estimator,
Calculating a sum of absolute difference (SAD) value of the second forward motion vector and the second backward motion vector,
Estimating the second motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the second forward motion vector and a SAD value of the second backward motion vector;
Interpolation device.
제1항에 있어서,
상기 생성기는,
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 선택기;
상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 필터; 및
상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 수정기
를 포함하는 보간 장치.
The method of claim 1,
The generator,
A selector for selecting one of the first motion vector and the second motion vector for each block unit of a frame and outputting a motion vector field (MVF);
A filter for outputting a modified MVF by removing an error from the MVF; And
A modifier that generates an intermediate frame based on the modified MVF and an intermediate frame between the current frame and the previous frame using the modified MVF
Interpolation device comprising a.
제7항에 있어서,
상기 선택기는,
프레임 내 객체의 움직임이 비선형(nonlinear)일 경우, 상기 제1 움직임 벡터를 선택하고,
프레임 내 객체의 움직임이 선형(linear)일 경우, 상기 제2 움직임 벡터를 선택하는
보간 장치.
The method of claim 7, wherein
The selector,
If the motion of the object in the frame is nonlinear, select the first motion vector,
When the motion of the object in the frame is linear, selecting the second motion vector
Interpolation device.
제7항에 있어서,
상기 수정기는,
상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하고, 상기 왜곡 영역에 대응하는 상기 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하고, 상기 재수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는
보간 장치
The method of claim 7, wherein
The modifier,
Detects a distortion region of an intermediate frame based on the modified MVF, modifies a motion vector of the modified MVF corresponding to the distortion region, generates a modified MVF, and uses the current MVF and the modified MVF To generate an intermediate frame between previous frames
Interpolation device
제7항에 있어서,
상기 수정기는,
CNN(convolutional neural network)을 통해 왜곡 영역을 검출하는
보간 장치.
The method of claim 7, wherein
The modifier,
Detecting Distorted Areas Through Convolutional Neural Networks (CNNs)
Interpolation device.
현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하는 단계;
상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 단계; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계
를 포함하고,
상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정되는 보간 방법.
Estimating a first motion vector using the current frame and the previous frame;
Estimating a second motion vector further using a frame consecutive to any one of the current frame and the previous frame; And
Generating an intermediate frame between the current frame and the previous frame by using any one of the first and second motion vectors.
Including,
And the first motion vector and the second motion vector are estimated for each block unit of a frame.
제11항에 있어서,
상기 제1 움직임 벡터를 추정하는 단계는,
상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하는 단계;
상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하는 단계; 및
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 11,
Estimating the first motion vector,
Estimating a first forward motion vector by using forward motion estimation based on the current frame using the previous frame and the current frame;
Estimating a first backward motion vector using backward motion estimation based on the previous frame using the current frame and the previous frame; And
Estimating the first motion vector using any one of the first forward motion vector and the first backward motion vector.
Interpolation method comprising a.
제12항에 있어서,
상기 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계는,
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하는 단계; 및
상기 제1 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 12,
Estimating the first motion vector using the any one motion vector,
Calculating a sum of absolute difference (SAD) value of the first forward motion vector and the first backward motion vector; And
Estimating the first motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the first forward motion vector and a SAD value of the first backward motion vector;
Interpolation method comprising a.
제13항에 있어서,
상기 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계는,
상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 13,
Estimating the first motion vector using the motion vector having the smaller SAD value,
A bidirectional motion estimation method based on an intermediate frame between the current frame and the previous frame using a motion vector having a smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector. Estimating the first motion vector through
Interpolation method comprising a.
제11항에 있어서,
상기 제2 움직임 벡터를 추정하는 단계는,
상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정하는 단계;
상기 현재 프레임, 상기 이전 프레임 및 상기 현재 프레임의 이후 프레임을 이용하여 상기 이후 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정하는 단계; 및
상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 11,
Estimating the second motion vector,
Estimating a second forward motion vector through forward motion estimation based on the previous frame using the current frame, the previous frame, and the previous frame of the previous frame;
Estimating a second reverse motion vector by using backward motion estimation based on the next frame using the current frame, the previous frame, and a subsequent frame of the current frame; And
Estimating the second motion vector by selecting one of the second forward motion vector and the second reverse motion vector;
Interpolation method comprising a.
제15항에 있어서,
상기 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는 단계는,
상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하는 단계; 및
상기 제2 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제2 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제2 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 15,
Estimating the second motion vector by selecting the one motion vector;
Calculating a sum of absolute difference (SAD) value of the second forward motion vector and the second backward motion vector; And
Estimating the second motion vector using a motion vector having a smaller SAD value from a sum of absolute difference (SAD) value of the second forward motion vector and a SAD value of the second backward motion vector;
Interpolation method comprising a.
제11항에 있어서,
상기 생성하는 단계는,
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 단계;
필터가 상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 단계; 및
상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계;
를 포함하는 보간 방법.
The method of claim 11,
The generating step,
Selecting one of the first motion vector and the second motion vector for each block unit of a frame and outputting a motion vector field (MVF);
A filter removing the error from the MVF to output a modified MVF; And
Generating an intermediate frame based on the modified MVF and the intermediate frame between the current frame and the previous frame using the modified MVF;
Interpolation method comprising a.
제17항에 있어서,
상기 출력하는 단계는,
프레임 내 객체의 움직임이 비선형일 경우, 상기 제1 움직임 벡터를 선택하는 단계;
프레임 내 객체의 움직임이 선형(nonlinear)일 경우, 상기 제2 움직임 벡터를 선택하는 단계
를 포함하는 보간 방법.
The method of claim 17,
The outputting step,
If the motion of the object in the frame is nonlinear, selecting the first motion vector;
If the motion of the object in the frame is nonlinear, selecting the second motion vector
Interpolation method comprising a.
제17항에 있어서,
상기 생성하는 단계는,
상기 수정된 MVF에 기초한 중간 프레임을 생성하는 단계;
상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 단계;
상기 왜곡 영역에 대응하는 상기 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하는 단계; 및
상기 재수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계
를 포함하는 보간 방법.
The method of claim 17,
The generating step,
Generating an intermediate frame based on the modified MVF;
Detecting a distortion region of an intermediate frame based on the modified MVF;
Generating a modified MVF by modifying a motion vector of the modified MVF corresponding to the distortion area; And
Generating an intermediate frame between the current frame and the previous frame using the remodified MVF
Interpolation method comprising a.
제17항에 있어서,
상기 검출하는 단계는,
CNN(convolutional neural network)을 이용하여 상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 단계
를 포함하는 보간 방법.
The method of claim 17,
The detecting step,
Detecting a distortion region of an intermediate frame based on the modified MVF using a convolutional neural network (CNN)
Interpolation method comprising a.
KR1020180101422A 2018-08-28 2018-08-28 Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion KR102105766B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180101422A KR102105766B1 (en) 2018-08-28 2018-08-28 Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180101422A KR102105766B1 (en) 2018-08-28 2018-08-28 Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion

Publications (2)

Publication Number Publication Date
KR20200024572A true KR20200024572A (en) 2020-03-09
KR102105766B1 KR102105766B1 (en) 2020-04-29

Family

ID=69801906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180101422A KR102105766B1 (en) 2018-08-28 2018-08-28 Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion

Country Status (1)

Country Link
KR (1) KR102105766B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090068502A (en) * 2007-12-24 2009-06-29 엘지디스플레이 주식회사 Motion compensation method, motion compensation device, liquid crystal display device having the same, and driving method thereof
KR20100044984A (en) * 2008-10-23 2010-05-03 삼성전자주식회사 Apparatus and method for improving frame rate using motion trajectory
KR20150090454A (en) * 2014-01-29 2015-08-06 강원대학교산학협력단 Method for searching bidirectional motion using multiple frame and image apparatus with the same technique

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090068502A (en) * 2007-12-24 2009-06-29 엘지디스플레이 주식회사 Motion compensation method, motion compensation device, liquid crystal display device having the same, and driving method thereof
KR20100044984A (en) * 2008-10-23 2010-05-03 삼성전자주식회사 Apparatus and method for improving frame rate using motion trajectory
KR20150090454A (en) * 2014-01-29 2015-08-06 강원대학교산학협력단 Method for searching bidirectional motion using multiple frame and image apparatus with the same technique

Also Published As

Publication number Publication date
KR102105766B1 (en) 2020-04-29

Similar Documents

Publication Publication Date Title
KR101493325B1 (en) Apparatus and method for frame interpolation based on accurate motion estimation
US10404917B2 (en) One-pass video stabilization
KR100870115B1 (en) Method for forming image using block matching and motion compensated interpolation
EP2180695B1 (en) Apparatus and method for improving frame rate using motion trajectory
JP4220284B2 (en) Frame interpolation method, apparatus, and image display system using the same
CN103139568B (en) Based on the Video Stabilization method of degree of rarefication and fidelity constraint
KR101756842B1 (en) Method and apparatus for image frame interpolation
JP2012516637A5 (en)
KR101885839B1 (en) System and Method for Key point Selecting for Object Tracking
WO2016196909A1 (en) Method for dynamic video magnification
JP2009081574A (en) Image processor, processing method and program
JP5250638B2 (en) Flicker measurement method
KR20170027509A (en) Method and apparatus for image frame interpolation using supplemental information
KR102105766B1 (en) Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion
KR20080066486A (en) Apparatus and method for estimating motion vector
JP2017515372A (en) Motion field estimation
KR101574205B1 (en) An appratus for estimating a motion vector for frame rate conversion and a method thereof
KR101033242B1 (en) Object tracking method and apparatus for considering zoom environment
Ebdelli et al. Loss concealment based on video inpainting for robust video communication
KR102169166B1 (en) Method and Device of Zoom Motion Estimation for Depth Video
KR101589727B1 (en) Apparatus for frame rate up conversion in video recorded on moving object
JP4199712B2 (en) Decoded video quantization error reduction method and apparatus, decoded video quantization error reduction program used for realizing the quantization error reduction method, and computer-readable recording medium storing the program
KR102245740B1 (en) Method and Device of Zoom Motion Estimation for Depth Video
KR102467673B1 (en) Deep Iterative Frame Interpolation Based Video Stabilization Method
JP4484910B2 (en) Temporal filter processing apparatus with motion compensation, processing method, processing program, and computer-readable recording medium

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