KR102105766B1 - 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
KR102105766B1
KR102105766B1 KR1020180101422A KR20180101422A KR102105766B1 KR 102105766 B1 KR102105766 B1 KR 102105766B1 KR 1020180101422 A KR1020180101422 A KR 1020180101422A KR 20180101422 A KR20180101422 A KR 20180101422A KR 102105766 B1 KR102105766 B1 KR 102105766B1
Authority
KR
South Korea
Prior art keywords
motion vector
frame
motion
estimating
mvf
Prior art date
Application number
KR1020180101422A
Other languages
Korean (ko)
Other versions
KR20200024572A (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

선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 장치 및 방법이 개시된다. 일 실시예에 따른 보간 장치는 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 추정기와, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 생성기를 포함하고, 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정된다.Disclosed is a motion compensation frame interpolation device and method suitable for both linear and nonlinear motion. An interpolation apparatus according to an embodiment estimates a first motion vector using a current frame and a previous frame, and estimates a second motion vector using a frame consecutive to any one of the current frame and the previous frame And a generator that generates an intermediate frame between the current frame and the previous frame using any one of the first motion vector and the second motion vector, and includes the first motion vector and the second motion vector. The vector is estimated for each block unit of the 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 nonlinear motions {APPARATUS AND METHOD FOR MOTION COMPENSATED FRAME INTERPOLATION SUITABLE FOR BOTH LINEAR AND NOLINEAR MOTION}

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

통신 시스템에서 대역폭의 제약이 있을 때, 그 제약을 맞추기 위해 비디오의 프레임률(frame rate)을 낮춰서 전송한다. LCD(Liquid crystal display)의 경우 비디오의 프레임률이 낮을 때 모션 블러(motion blur)와 같은 시간적 왜곡이 발생하게 된다. 이러한 문제들은 디코더(decoder)에서 비디오의 프레임률을 향상시킴으로써 극복할 수 있다.When there is a bandwidth limitation in the communication system, the frame rate of the video is lowered and transmitted 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 in the decoder.

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

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

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

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

일 실시예에 따른 보간 장치는, 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 추정기와 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 생성기를 포함하고 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정된다.The interpolation apparatus according to an embodiment estimates a first motion vector using a current frame and a previous frame, and estimates a second motion vector 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 an estimator and 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 the 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 references the previous frame using the current frame and the previous frame. A first backward motion vector is estimated through backward motion estimation, and the first motion vector can 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 a sum of absolute difference (SAD) value of the first forward motion vector and the first reverse direction. The first motion vector may be estimated using a motion vector having a smaller SAD value among the SAD values of the motion vectors.

상기 추정기는, 상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정할 수 있다.The estimator uses a motion vector having a smaller SAD value among the SAD values of the first forward motion vector and the SAD values of the first backward motion vector, based on the middle frame between the current frame and the previous frame. The first motion vector can 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 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 subsequent frame of the current frame, and a motion vector of the second forward motion vector and the second backward motion vector is selected. The second motion vector can be estimated by selection.

상기 추정기는, 상기 제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 backward motion vector, and a sum of absolute difference (SAD) value of the second forward motion vector and the second reverse direction. 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 selects one motion vector among the first motion vector and the second motion vector for each block unit of a frame and outputs a motion vector field (MVF), and is corrected by removing an error from the MVF It may include a filter for outputting an MVF, and a modifier for 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.

상기 선택기는, 프레임 내 객체의 움직임이 비선형(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 corrector detects a distortion region of an intermediate frame based on the corrected MVF, corrects a motion vector of the corrected MVF corresponding to the distortion region, generates a corrected MVF, and uses the corrected MVF to An intermediate frame between the current frame and the previous frame can be generated.

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

일 실시예에 따른 보간 방법은, 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하는 단계와, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 단계와, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계를 포함하고, 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정된다.The interpolation method according to an embodiment may include estimating a first motion vector using a current frame and a previous frame, and further using a second sequence of motion frames using any one of the current frame and the previous frame. Estimating, and generating an intermediate frame between the current frame and the previous frame using any one of the first motion vector and the second motion vector, wherein the first motion vector and the 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 Estimating a first backward motion vector through backward motion estimation based on the previous frame using a frame, and using any one of the first forward motion vector and the first backward motion vector And 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 the first motion vector using any one of the motion vectors includes: calculating a sum of absolute difference (SAD) values 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 among the sum of absolute difference (SAD) value of the forward motion vector and the SAD value of the first backward motion vector.

상기 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계는, 상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정하는 단계를 포함할 수 있다.The estimating the first motion vector using the motion vector having the smaller SAD value may include: having a smaller SAD value among the SAD values of the first forward motion vector and the SAD values of the first backward motion vector. And 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 the previous frame of the previous frame. , Estimating a second backward motion vector through backward motion estimation based on the subsequent frame using the current frame, the previous frame, and the subsequent frame of the current frame, and the second forward motion vector and the second And estimating the second motion vector by selecting any 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 the second motion vector by selecting any one of the motion vectors includes calculating a sum of absolute difference (SAD) values 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 among the sum of absolute difference (SAD) value of the forward motion vector and the SAD value of the second backward motion vector.

상기 생성하는 단계는, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 단계와, 필터가 상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 단계와, 상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계를 포함할 수 있다.In the generating step, a motion vector field (MVF) is output by selecting any one of the first motion vector and the second motion vector for each block unit of a frame, and a filter generates an error in the MVF. The method may include 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 can contain.

상기 생성하는 단계는, 상기 수정된 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 a motion vector of the modified MVF corresponding to the distortion region. And generating a re-corrected MVF, and generating an intermediate frame between the current frame and the previous frame using the re-corrected 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 view showing a unidirectional motion estimation method.
2 is a diagram illustrating a bidirectional motion estimation method.
3 is an exemplary diagram of an estimated motion vector field.
4 is a schematic block diagram of an interpolation device according to an embodiment.
5 is a detailed block diagram of the estimator illustrated 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 showing a motion estimation method using three frames.
10 is a detailed block diagram of the generator illustrated in FIG. 4.
11 is a view showing a distortion region detected by a crystal.
12 is a view showing a distortion removal process according to the iterative correction of the corrector.
13 is a flowchart illustrating an interpolation method according to an embodiment.
14 is a view showing the average PSNR and SSIM measurement results for each sequence.
15 is a diagram showing the results of a Mobile sequence.
16 is a view showing the results of a Soccer sequence.
17 is a diagram showing the results of the Stefan sequence.

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

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

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

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

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that detailed descriptions of related known technologies may unnecessarily obscure the subject matter of the embodiments, detailed descriptions 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 (MCFI) refers to a technique of generating an interpolated frame between consecutive frames to improve a frame rate of video content. . MCFI can be divided into motion estimation, motion vector correction, and intermediate frame generation.

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

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

Figure 112018085409111-pat00001
Figure 112018085409111-pat00001

여기에서

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

단방향 움직임 추정 방법은 높은 정확도를 갖는 움직임 벡터를 추정할 수 있지만 중간 프레임 생성 시 필연적으로 중첩(overlap) 영역과 홀(hole) 영역이 발생한다.The unidirectional motion estimation method can estimate a motion vector with high accuracy, but an overlap region and a hole region inevitably occur 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 illustrated in FIG. 2. When generating an interpolated frame (t-1 / 2) between the previous frame (t-1) and the current frame (current frame, t), the motion vector is estimated based on the intermediate frame. The motion vector is estimated using equation (2).

Figure 112018085409111-pat00006
Figure 112018085409111-pat00006

여기에서

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

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

단방향 움직임 추정 방법 및 양방향 움직임 추정 방법을 통한 움직임 추정 과정을 통해 프레임의 모든 블록에 대해 움직임 벡터를 추정하게 된다. 움직임 추정 방법으로 구한 블록 단위의 움직임 벡터들은 도 3과 같이 움직임 벡터 필드(motion vector field(MVF))를 구성하게 된다.Through the motion estimation process using the unidirectional motion estimation method and the bidirectional motion estimation method, motion vectors are estimated for all blocks of the frame. Block-based motion vectors 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를 얻을 수 있다.Accurate motion vectors are not always estimated in the motion estimation process. Therefore, there are motion vectors that are incorrectly estimated on the MVF and must be corrected. Most MCFI methods apply mean filtering and median filtering to the estimated motion vector. When filtering the estimated motion vector, the motion vector is smoothed through the surrounding motion vectors, and thus a coherent MVF with reduced error can be obtained.

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

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

Figure 112018085409111-pat00011
Figure 112018085409111-pat00011

여기서

Figure 112018085409111-pat00012
는 중간프레임,
Figure 112018085409111-pat00013
Figure 112018085409111-pat00014
는 각각 이전 프레임과 현재 프레임을 의미한다. 또한
Figure 112018085409111-pat00015
는 움직임 벡터 후보들을 의미한다.이처럼, MCFI는 비디오 프레임 상의 물체의 움직임을 추정하고 이를 반영하여 중간 프레임을 생성, 삽입함으로써 프레임률을 향상시킨다. 따라서, 프레임 상의 물체의 움직임을 정확히 추정하는 것이 중요하다.here
Figure 112018085409111-pat00012
Is the middle frame,
Figure 112018085409111-pat00013
and
Figure 112018085409111-pat00014
Indicates the previous frame and the current frame, respectively. In addition
Figure 112018085409111-pat00015
Denotes motion vector candidates. 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, when an intermediate frame is generated, an overlap region and a hole region inevitably occur. In addition, since the bidirectional motion estimation method is to find a motion vector based on an intermediate frame without pixel information, an incorrectly estimated motion vector exists, and thus, the accuracy of motion vector estimation is deteriorated. In the filtering process, incorrectly estimated motion vectors that exist even after filtering excessively smooth the estimated motion vectors.

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

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

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

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

추정기(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 motion vector from the first motion vector and the second motion vector. The generator 300 may more accurately select the estimated motion vector. The selected motion vector may be a highly accurate motion vector estimated for the motion of the object.

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

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

도 5는 도 4에 도시된 추정기의 구체적인 블록도이다.5 is a detailed block diagram of the estimator illustrated 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 a 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 frame) 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 frame) using a frame (t frame) and a previous frame (t-1 frame). The first motion vector Vm may be estimated using any 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 that is continuous to any one of the current frame (t frame), the previous frame (t-1 frame), and the current frame (t frame) and the 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 references 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) of the previous frame. The second forward motion vector can be estimated through the forward motion estimation as. The second estimator 230 uses a current frame (t frame), a previous frame (t-1 frame), and a subsequent frame (t + 1 frame) of the current frame, based on a subsequent frame (t + 1 frame). The second backward motion vector may be estimated through motion estimation. The second estimator 230 may estimate the second motion vector Vt by selecting any one of the second forward motion vector and the second backward motion vector.

제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 a frame in the first estimator 210 and the second estimator 230.

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

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

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

Figure 112018085409111-pat00016
Figure 112018085409111-pat00016

Figure 112018085409111-pat00017
는 제1 정방향 움직임 벡터,
Figure 112018085409111-pat00018
는 이전 프레임,
Figure 112018085409111-pat00019
는 현재 프레임을 의미한다. 또한,
Figure 112018085409111-pat00020
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure 112018085409111-pat00017
Is the first forward motion vector,
Figure 112018085409111-pat00018
The old frame,
Figure 112018085409111-pat00019
Means the current frame. In addition,
Figure 112018085409111-pat00020
Denotes motion vector candidates, and B and S denote 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 112018085409111-pat00021
Figure 112018085409111-pat00021

Figure 112018085409111-pat00022
는 제1 역방향 움직임 벡터,
Figure 112018085409111-pat00023
는 이전프레임,
Figure 112018085409111-pat00024
는 현재 프레임을 의미한다. 또한
Figure 112018085409111-pat00025
는 움직임 벡터 후보들, BS는 각각 블록과 탐색 영역을 의미한다.
Figure 112018085409111-pat00022
Is the first reverse motion vector,
Figure 112018085409111-pat00023
Is the previous frame,
Figure 112018085409111-pat00024
Means the current frame. In addition
Figure 112018085409111-pat00025
Denotes motion vector candidates, and B and S denote 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 from the two vectors. A more accurately 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 in Equation 7 using Equation 6.

Figure 112018085409111-pat00026
Figure 112018085409111-pat00026

Figure 112018085409111-pat00027
Figure 112018085409111-pat00027

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

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

Figure 112018085409111-pat00032
)과 이전 프레임(
Figure 112018085409111-pat00033
) 간의 중간 프레임(
Figure 112018085409111-pat00034
)을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정할 수 있다.The first estimator 210 uses the motion vector having the smaller SAD value among the SAD value of the first forward motion vector and the SAD value of the first backward motion vector (
Figure 112018085409111-pat00032
) And previous frame (
Figure 112018085409111-pat00033
) Between intermediate frames (
Figure 112018085409111-pat00034
The first motion vector may be estimated through a bidirectional motion estimation method based on).

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

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

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

Figure 112018085409111-pat00037
Figure 112018085409111-pat00037

여기서

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

도 9는 제2 추정기가 세 장의 프레임을 이용하여 움직임 벡터를 추정하는 방법을 설명하기 위한 도면이다.FIG. 9 is a diagram for explaining a method of estimating a motion vector by using a three frame estimator.

제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 112018085409111-pat00042
Figure 112018085409111-pat00042

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

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

Figure 112018085409111-pat00048
Figure 112018085409111-pat00048

여기에서,

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

제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산할 수 있다.The second estimator 230 may calculate sum of absolute difference (SAD) values of the second forward motion vector and the second backward 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 backward motion vector. The second estimator 230 may calculate the second motion vector as shown in Equation 12 using Equation (11).

Figure 112018085409111-pat00054
Figure 112018085409111-pat00054

Figure 112018085409111-pat00055
Figure 112018085409111-pat00055

여기에서,

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

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

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

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

도 10은 도 4에 도시된 생성기의 구체적인 블록도의 일 예를 나타내고, 도 11은 도 10에 도시된 수정기가 검출한 왜곡 영역을 나타낸 도면이고, 도 12는 수정기의 재수정에 따른 왜곡 제거 과정을 나타낸 도면이다.FIG. 10 shows an example of a specific block diagram of the generator shown in FIG. 4, FIG. 11 is a view showing a distortion area detected by the crystal shown in FIG. 10, and FIG. 12 is a process for removing distortion according to re-correction of the corrector It is a view 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 to generate a motion vector field (MVF), and output the MVF.

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

선택기(310)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터를 선택할 수 있다. 더 정확하게 추정된 움직임 벡터라 함은, 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 움직임 벡터는 가운데(middle) 프레임이 픽셀 정보를 가지고 기준점 역할을 수행한다. 이 때문에 세 장의 프레임을 활용하는 움직임 추정 방법은 물체가 세 장의 프레임 동안 선형(linear)적으로 움직이는 경우 움직임 벡터 추정에 좋은 성능을 보인다. 세 장의 프레임을 활용하는 움직임 추정 방법은 세 장의 프레임 동안 물체가 비선형(nonlinear)적으로 움직일 때에는 오히려 움직임 벡터의 추정 성능이 떨어지게 된다. 물체가 비선형적으로 움직이는 경우에는 두 장의 프레임을 활용하는 움직임 추정 방법이 더 좋은 움직임 벡터의 추정 성능을 보인다. 따라서 여러 장의 프레임 동안 물체의 움직임이 선형적일 경우 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제2 움직임 벡터를 선택한다. 또한, 물체의 움직임이 비선형적일 경우 두 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제1 움직임 벡터를 선택한다. 이처럼 물체의 움직임 패턴에 따라서 다르게 선택한 움직임 벡터 블록으로 구성된 MVF는 기존의 움직임 추정 방법 보다 더욱 정확한 움직임 추정 성능을 보인다. 이때 선택기(310)가 선택한 움직임 벡터는 물체의 움직임 패턴에 따라 움직임 벡터를 선택하므로 추정기(200)가 추정한 제1 움직임 벡터와 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터라고 할 수 있다.The selector 310 may select a more accurately estimated motion vector from the first motion vector and the second motion vector. The more accurately estimated motion vector is a motion vector estimated by a motion estimation method using three frames, and a 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 the object moves linearly during 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. When the object is moving nonlinearly, the motion estimation method using two frames shows better motion vector estimation performance. Therefore, when the motion of the object is linear during several frames, a second motion vector estimated by a motion estimation method using three frames is selected. In addition, when the motion of the object is nonlinear, the first motion vector estimated by the motion estimation method using two frames is selected. MVF composed of motion vector blocks selected differently according to the motion pattern of the object has more accurate motion estimation performance than the existing motion estimation method. At this time, since the motion vector selected by the selector 310 selects a motion vector according to the motion pattern of the object, it may be said that the motion vector is 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 in order to more accurately select the estimated motion vector. In the case of a motion vector estimated by the estimator 200 more accurately, a difference in vector values from neighboring motion vectors is less. If this is used, a more accurately estimated motion vector can be selected from the first and second motion vectors estimated by the estimator 200.

선택기(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 Equation 13 below.

Figure 112018085409111-pat00065
Figure 112018085409111-pat00065

여기에서

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

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

필터(320)는, 선택기(310)로부터 출력된 MVF의 오류를 필터링을 통해 제거하여 수정된 MVF를 출력할 수 있다.The filter 320 may output the corrected 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 값을 가중치로 활용하면 효과적인 움직임 벡터 수정을 할 수 있다.The MVFs output from the selector 310 may include motion vectors that the estimator 200 incorrectly estimates. To correct this, most MCFI methods apply mean filtering and median filtering to motion vectors. When vector filtering is applied in this way, a smoothed motion vector is obtained through neighboring motion vectors, and thus a coherent motion vector field (MVF) with reduced error can be obtained. When filtering is performed using a surrounding motion vector, effective motion vector correction can be performed by using the SAD value as a weight.

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

Figure 112018085409111-pat00068
Figure 112018085409111-pat00068

Figure 112018085409111-pat00069
Figure 112018085409111-pat00069

여기서,

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

필터(320)는 수정된 움직임 벡터를 MVF에 적용하여 수정된 MVF를 생성할 수 있다.The filter 320 may generate a modified MVF by applying the modified motion vector to the 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 based on the modified MVF.

수정기(330)는, 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하고, 왜곡 영역에 대응하는 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하고, 재수정된 MVF를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다. 수정기(330)가 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 경우, 수정된 MVF와 수정된 MVF에 기초한 중간프레임을 이용하여 수정된 왜곡 영역을 검출할 수 있다.The corrector 330 detects the distortion region of the intermediate frame based on the modified MVF, corrects the motion vector of the modified MVF corresponding to the distortion region, generates a re-corrected MVF, and uses the re-corrected MVF to make the current frame And an intermediate frame between the previous frames. When the corrector 330 detects the distortion region of the intermediate frame based on the modified MVF, the corrected 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 correction of the motion vector in the corrector 330 may remove distortion occurring in the middle frame of the incorrectly estimated motion vectors remaining after filtering during the existing MCFI process. The corrector 330 first detects which region of the intermediate frame based on the modified MVF has caused distortion. Then, by correcting only the motion vectors corresponding to the region in which the corrector 330 detects distortion, it is possible to effectively remove the remaining incorrectly estimated motion vectors even after the filter 320 is filtered. In addition, over-smoothing of accurately estimated vectors may not occur due to the re-correction of the corrector 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 112018085409111-pat00072
k 사이즈의 n개의 필터를 갖는 convolutional layer를 뜻한다. s는 필터가 이동하는 간격, stride를 의미한다. F(m)은 m개의 뉴런을 갖는 fully connected layer를 뜻한다.The corrector 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). In CNN structure, C (n, k, s) is k
Figure 112018085409111-pat00072
It means a convolutional layer with n filters of size k. s means stride, the interval at which the filter moves. F (m) means a fully connected layer with m neurons.

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

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

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

Figure 112018085409111-pat00073
Figure 112018085409111-pat00073

Figure 112018085409111-pat00074
Figure 112018085409111-pat00074

Figure 112018085409111-pat00075
는 재수정된 움직임 벡터,
Figure 112018085409111-pat00076
는 왜곡이 아닌 것으로 판별된 이웃 블록의 움직임 벡터들을 의미한다.
Figure 112018085409111-pat00075
Is a revised motion vector,
Figure 112018085409111-pat00076
Denotes motion vectors of neighboring blocks determined to be not distortion.

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

도 13는 일 실시예에 따른 보간 방법을 나타낸 순서도이다.13 is a flowchart illustrating an interpolation method according to an 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 the frame.

추정기(200)는 현재 프레임 및 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정한다(1610b). 제2 움직임 벡터는 프레임의 블록 단위 마다 추정될 수 있다.The estimator 200 estimates the second motion vector by further using a frame that is continuous 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 using one of the first motion vector and the second motion vector (1620).

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

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

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

Figure 112018085409111-pat00077
40 이다. 움직임 수정 방법에 사용된 CNN은 Caffe package를 통해 구현되었다. 일 실시예에 따른 보간 방법은 기존의 다른 보간 방법들, dual ME, novel TME, MBOH, Kim’s, Lim’s과 비교하였다.In the interpolation method according to the embodiment, a block size of 8x8 was used, and the search area was
Figure 112018085409111-pat00077
It is 40. The CNN used for the motion correction method was implemented through the Caffe package. The interpolation method according to one embodiment was 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 and compared 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 compared to 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이다.For subjective evaluation, intermediate frames generated through each MCFI method were compared, and the results are shown in FIGS. 15 to 17. It can be confirmed that the intermediate frames generated through the interpolation method according to the embodiment are most similar to the original frame. 15 to 17 are residual error maps between intermediate frames, intermediate frames and original frames generated through each MCFI method. 15A to 17A are original frames, (b) novel TME, (c) MBOH, (d) Kim's method, (e) Lim's method, and (f) proposed method.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiments or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. 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, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and / or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed on networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

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

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

Claims (20)

현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하고, 상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 추정기; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 생성기
를 포함하고,
상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정되고,
상기 생성기는 프레임 내 객체의 움직임이 선형(linear) 또는 비선형(nonlinear)인지 여부에 따라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하는 보간 장치.
An estimator for estimating a first motion vector using a current frame and a previous frame, and estimating a second motion vector using a frame consecutive to any one of the current frame and the previous frame; And
Generator for generating an intermediate frame between the current frame and the previous frame using any one of the first motion vector and the second motion vector
Including,
The first motion vector and the second motion vector are estimated for each block unit of the frame,
The generator is an interpolation device that selects any one of the first motion vector and the second motion vector according to whether the motion of the object in the frame is linear or nonlinear.
제1항에 있어서,
상기 추정기는,
상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하고,
상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하며,
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는
보간 장치.
According to claim 1,
The estimator,
Estimating a first forward motion vector through forward motion estimation based on the current frame using the previous frame and the current frame,
A first backward motion vector is estimated through 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 reverse motion vector
Interpolation device.
제2항에 있어서,
상기 추정기는,
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산하고,
상기 제1 정방향 움직임 벡터의 SAD(Sum of absolute difference)값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는
보간 장치.
According to claim 2,
The estimator,
Calculate the sum of absolute difference (SAD) values of the first forward motion vector and the first reverse motion vector,
Estimating the first motion vector using a motion vector having a smaller SAD value among the sum of absolute difference (SAD) value of the first forward motion vector and the SAD value of the first backward motion vector
Interpolation device.
제3항에 있어서,
상기 추정기는,
상기 제1 정방향 움직임 벡터의 SAD값 및 상기 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정하는
보간 장치.
According to 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 values of the first forward motion vector and the SAD values of the first backward motion vector To estimate the first motion vector through
Interpolation device.
제1항에 있어서,
상기 추정기는,
상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제2 정방향 움직임 벡터를 추정하고,
상기 현재 프레임, 상기 이전 프레임 및 상기 현재 프레임의 이후 프레임을 이용하여 상기 이후 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제2 역방향 움직임 벡터를 추정하며,
상기 제2 정방향 움직임 벡터 및 상기 제2 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하여 상기 제2 움직임 벡터를 추정하는
보간 장치.
According to claim 1,
The estimator,
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,
A second backward motion vector is estimated through backward motion estimation based on the subsequent frame using the current frame, the previous frame, and the subsequent frame of the current frame,
Estimating the second motion vector by selecting any one of the second forward motion vector and the second backward 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,
Calculate the sum of absolute difference (SAD) values 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 among the sum of absolute difference (SAD) value of the second forward motion vector and the SAD value of the second backward motion vector
Interpolation device.
제1항에 있어서,
상기 생성기는,
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 출력하는 선택기;
상기 MVF에서 오류를 제거하여 수정된 MVF를 출력하는 필터; 및
상기 수정된 MVF에 기초한 중간 프레임 및 상기 수정된 MVF를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 수정기
를 포함하는 보간 장치.
According to claim 1,
The generator,
A selector which selects one motion vector among the first motion vector and the second motion vector for each block unit of a frame and outputs a motion vector field (MVF);
A filter that removes the error from the MVF and outputs a corrected 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,
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,
The corrector,
A distortion region of an intermediate frame based on the modified MVF is detected, and a revised MVF is generated by correcting a motion vector of the modified MVF corresponding to the distortion region, and the current frame and the modified MVF are used. To create an intermediate frame between previous frames
Interpolation device
제7항에 있어서,
상기 수정기는,
CNN(convolutional neural network)을 통해 왜곡 영역을 검출하는
보간 장치.
The method of claim 7,
The corrector,
Detecting distortion regions through a convolutional neural network (CNN)
Interpolation device.
현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정하는 단계;
상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정하는 단계; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 현재 프레임과 상기 이전 프레임 간의 중간 프레임을 생성하는 단계
를 포함하고,
상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 프레임의 블록 단위 마다 추정되고,
상기 생성하는 단계는,
프레임 내 객체의 움직임이 선형(linear) 또는 비선형(nonlinear)인지 여부에 따라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택하는 단계
를 포함하는 보간 방법.
Estimating a first motion vector using the current frame and the previous frame;
Estimating a second motion vector by 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 using any one of the first motion vector and the second motion vector
Including,
The first motion vector and the second motion vector are estimated for each block unit of the frame,
The generating step,
Selecting one of the first motion vector and the second motion vector according to whether the motion of the object in the frame is linear or nonlinear.
Interpolation method comprising a.
제11항에 있어서,
상기 제1 움직임 벡터를 추정하는 단계는,
상기 이전 프레임 및 상기 현재 프레임을 이용하여 상기 현재 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하는 단계;
상기 현재 프레임 및 상기 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하는 단계; 및
상기 제1 정방향 움직임 벡터 및 상기 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 상기 제1 움직임 벡터를 추정하는 단계
를 포함하는 보간 방법.
The method of claim 11,
Estimating the first motion vector,
Estimating a first forward motion vector through forward motion estimation based on the current frame using the previous frame and the current frame;
Estimating a first backward motion vector through 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 reverse 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 one of the motion vectors,
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 among the sum of absolute difference (SAD) value of the first forward motion vector and the 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 values of the first forward motion vector and the SAD values 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 backward motion vector through backward motion estimation based on the subsequent frame using the current frame, the previous frame, and the subsequent frame of the current frame; And
Estimating the second motion vector by selecting any one of the second forward motion vector and the second backward 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,
The estimating the second motion vector by selecting the one motion vector may include:
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 among the sum of absolute difference (SAD) value of the second forward motion vector and the 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,
Outputting a motion vector field (MVF) by selecting one motion vector among the first motion vector and the second motion vector for each block unit of a frame;
A filter removing the error from the MVF and outputting the corrected 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;
Interpolation method comprising a.
제17항에 있어서,
상기 출력하는 단계는,
프레임 내 객체의 움직임이 비선형일 경우, 상기 제1 움직임 벡터를 선택하는 단계;
프레임 내 객체의 움직임이 선형(nonlinear)일 경우, 상기 제2 움직임 벡터를 선택하는 단계
를 포함하는 보간 방법.
The method of claim 17,
The step of outputting,
When 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 re-corrected MVF by correcting a motion vector of the modified MVF corresponding to the distortion region; And
Generating an intermediate frame between the current frame and the previous frame using the revised MVF
Interpolation method comprising a.
제19항에 있어서,
상기 검출하는 단계는,
CNN(convolutional neural network)을 이용하여 상기 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 단계
를 포함하는 보간 방법.
The method of claim 19,
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 KR20200024572A (en) 2020-03-09
KR102105766B1 true 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)

Family Cites Families (3)

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

Also Published As

Publication number Publication date
KR20200024572A (en) 2020-03-09

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
EP2180695B1 (en) Apparatus and method for improving frame rate using motion trajectory
EP3488388B1 (en) Video processing method and apparatus
KR100870115B1 (en) Method for forming image using block matching and motion compensated interpolation
US8229233B2 (en) Method and apparatus for estimating and compensating spatiotemporal motion of image
CN107483960B (en) Motion compensation frame rate up-conversion method based on spatial prediction
WO2013100791A1 (en) Method of and apparatus for scalable frame rate up-conversion
Zhang et al. Weighted convolutional motion-compensated frame rate up-conversion using deep residual network
JP2009081574A (en) Image processor, processing method and program
Kim et al. An efficient motion-compensated frame interpolation method using temporal information for high-resolution videos
Choi et al. Triple-frame-based bi-directional motion estimation for motion-compensated frame interpolation
KR102105766B1 (en) Apparatus and method for motion compensated frame interpolation suitable for both linear and nolinear motion
US20080170617A1 (en) Apparatus for and method of estimating motion vector
KR102156410B1 (en) Apparatus and method for processing image considering motion of object
US8873809B2 (en) Global and dense motion estimation
Ebdelli et al. Loss concealment based on video inpainting for robust video communication
KR101574205B1 (en) An appratus for estimating a motion vector for frame rate conversion and a method thereof
JP4484910B2 (en) Temporal filter processing apparatus with motion compensation, processing method, processing program, and computer-readable recording medium
Lu et al. An artifact information based motion vector processing method for motion compensated frame interpolation
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
KR102467673B1 (en) Deep Iterative Frame Interpolation Based Video Stabilization Method
KR101574301B1 (en) An appratus for frame rate conversion and a method thereof
JP4452734B2 (en) Temporal filter processing apparatus with motion compensation, processing method, processing program, and computer-readable recording medium
KR100608048B1 (en) Apparatus for correcting motion vector error and method therefor, and recording medium for recording programs for realizing the same

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