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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
- H04N7/014—Conversion 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement 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
Description
아래 실시예들은 선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 장치 및 방법에 관한 것이다.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
여기에서 는 단방향 움직임 벡터, 는 이전 프레임 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다.From here Is a one-way motion vector, Frame the old Means the current frame. Also 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).
여기에서 는 양방향 움직임 벡터, 는 이전프레임, 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다.From here Is a bidirectional motion vector, Is the previous frame, Means the current frame. Also 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).
여기서 는 중간프레임, 과 는 각각 이전 프레임과 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들을 의미한다.이처럼, MCFI는 비디오 프레임 상의 물체의 움직임을 추정하고 이를 반영하여 중간 프레임을 생성, 삽입함으로써 프레임률을 향상시킨다. 따라서, 프레임 상의 물체의 움직임을 정확히 추정하는 것이 중요하다.here Is the middle frame, and Denotes the previous frame and the current frame, respectively. Also 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
추정기(200)는, 하나 이상의 프레임을 이용하여 두 가지 이상의 움직임 추정 방법으로 움직임 벡터를 추정할 수 있다. 움직임 추정 방법은 두 장의 프레임을 활용하는 움직임 추정 방법과 세 장의 프레임을 활용하는 움직임 추정 방법을 활용할 수 있다.The
추정기(200)는 두 장의 프레임을 이용하여 제1 움직임 벡터를 추정하고, 세 장의 프레임을 이용하여 제2 움직임 벡터를 추정할 수 있다. 제1 움직임 벡터 및 제2 움직임 벡터는 추정기(200)에서 프레임의 블록 단위 마다 추정될 수 있다.The
생성기(300)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 선택할 수 있다. 생성기(300)는 더 정확하게 추정된 움직임 벡터를 선택할 수 있다. 선택된 움직임 벡터는 물체의 움직임에 맞게 추정된 정확도 높은 움직임 벡터일 수 있다.The
생성기(300)는 선택된 움직임 벡터를 수정하고, 수정된 움직임 벡터를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다. 이때, 생성기(300)는 수정된 움직임 벡터의 왜곡 영역을 검출하고, 검출된 왜곡 영역의 움직임 벡터를 재수정함으로써 필터링 이후에도 존재하는 잘못 추정된 움직임 벡터들을 제거할 수 있다.The
상술한 바와 같이, 보간 장치(100)는 재수정된 움직임 벡터를 이용하여 중간 프레임을 생성함으로써, 비디오의 프레임률을 향상시키고 선형 및 비선형 움직임 모두에 적합한 움직임 보상 프레임 보간 기술을 제공할 수 있다.As described above, the
도 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
제1 추정기(210)는 두 장의 프레임을 이용하여 움직임 벡터를 추정할 수 있다. 예를 들어, 제1 추정기(210)는 현재 프레임(t frame)과 이전 프레임(t-1 frame)을 이용하여 제1 움직임 벡터(Vm)를 추정할 수 있다.The
제1 추정기(210)는 이전 프레임(t-1 frame) 및 현재 프레임(t frame)을 이용하여 현재 프레임(t frame)을 기준으로 하는 정방향 움직임 추정을 통해 제1 정방향 움직임 벡터를 추정하고, 현재 프레임(t frame) 및 이전 프레임(t-1 frame)을 이용하여 이전 프레임(t-1 frame)을 기준으로 하는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정하며, 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 제1 움직임 벡터(Vm)를 추정할 수 있다.The
제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
구체적으로, 제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
제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
도 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
는 제1 정방향 움직임 벡터, 는 이전 프레임, 는 현재 프레임을 의미한다. 또한, 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다. Is the first forward motion vector, Is the previous frame, Means the current frame. Also, Are motion vector candidates, B and S are blocks and search regions, respectively.
제1 추정기(210)는 역방향 움직임 추정을 통해 제1 역방향 움직임 벡터를 추정할 수 있다. 제1 추정기(210)는 수학식 5와 같이 제1 역방향 움직임 벡터를 계산할 수 있다.The
는 제1 역방향 움직임 벡터, 는 이전프레임, 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다. Is the first reverse motion vector, Is the previous frame, Means the current frame. Also Are motion vector candidates, B and S are blocks and search regions, respectively.
제1 추정기(210)는 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터를 각각 추정한 뒤, 두 벡터 중에서 현재 프레임 및 이전 프레임 사이의 SAD(Sum of absolute difference)값을 최소화하는 움직임 벡터를 선택함으로써 더 정확하게 추정된 움직임 벡터를 결정할 수 있다.The
제1 추정기(210)는 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 더 작은 SAD 값을 가지는 움직임 벡터를 결정할 수 있다. 제1 추정기(210)는 제1 움직임 벡터를 수학식 6을 이용하여 수학식 7과 같이 계산할 수 있다.The
은 제1 움직임 벡터, 는 이전프레임, 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다. Is the first motion vector, Is the previous frame, Means the current frame. Also Are motion vector candidates, B and S are blocks and search regions, respectively.
제1 추정기(210)는, 제1 정방향 움직임 벡터의 SAD값 및 제1 역방향 움직임 벡터의 SAD값 중에서 더 작은 SAD값을 가지는 움직임 벡터를 이용하여 현재 프레임()과 이전 프레임() 간의 중간 프레임()을 기준으로 하는 양방향 움직임 추정 방법을 통해 제1 움직임 벡터를 추정할 수 있다.The
제1 추정기(210)가 제1 정방향 움직임 벡터 및 제1 역방향 움직임 벡터 중에서 선택한 더 작은 SAD 값을 가지는 움직임 벡터 은 제1 움직임 벡터를 구하기 위하여 양방향 움직임 추정 방법의 초기 움직임 벡터로 쓰일 수 있다. 초기 움직임 벡터가 가리키는 부근의 좁은 탐색 영역에서 양방향 움직임 추정 방법을 통해 제1 움직임 벡터 가 결정될 수 있다.A motion vector having a smaller SAD value selected by the
제1 추정기(210)는 수학식 8과 같이 제1 움직임 벡터를 계산할 수 있다.The
여기서 는 제1 움직임 벡터, 과 는 각각 이전 프레임과 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다.here Is the first motion vector, and Denotes the previous frame and the current frame, respectively. Also 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
는 제2 정방향 움직임 벡터, 는 이전 프레임의 이전 프레임, 는 이전 프레임, 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다. Is the second forward motion vector, Is the previous frame of the previous frame, Is the previous frame, Means the current frame. Also Are motion vector candidates, B and S are blocks and search regions, respectively.
제2 추정기(230)는 역방향 움직임 추정 방법을 통해 제2 역방향 움직임 벡터를 추정할 수 있다. 제2 추정기(230)는 수학식 10과 같이 제2 역방향 움직임 벡터를 계산할 수 있다.The
여기에서, 는 제2 역방향 움직임 벡터, 는 이전 프레임, 는 현재 프레임, 는 현재 프레임의 이후 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다.From here, Is the second reverse motion vector, Is the previous frame, Is the current frame, Means a frame after the current frame. Also Are motion vector candidates, B and S are blocks and search regions, respectively.
제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터의 SAD(Sum of absolute difference)값을 계산할 수 있다.The
제2 추정기(230)는 제2 정방향 움직임 벡터 및 제2 역방향 움직임 벡터 중에서 더 작은 SAD 값을 가지는 움직임 벡터를 결정할 수 있다. 제2 추정기(230)는 제2 움직임 벡터를 수학식 11을 이용하여 수학식 12와 같이 계산할 수 있다.The
여기에서, 는 제2 움직임 벡터, 는 이전 프레임, 는 현재 프레임을 의미한다. 또한 는 움직임 벡터 후보들, B와 S는 각각 블록과 탐색 영역을 의미한다.From here, Is the second motion vector, Is the previous frame, Means the current frame. Also Are motion vector candidates, B and S are blocks and search regions, respectively.
세 장의 프레임을 활용한 움직임 추정 방법의 경우, 세 장의 프레임 중에서 가운데(middle) 프레임은 벡터 추정의 기준점 역할을 수행하게 될 수 있다. 예를 들어, 현재 프레임(), 이전 프레임() 및 이전 프레임의 이전 프레임()을 이용하는 경우에는 현재 프레임( 이 기준 프레임이 된다.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 ( ), Previous frame ( ) And the previous frame of the previous frame ( ), The current frame ( 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
선택기(310)는, 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 프레임의 블록 단위 마다 선택하여 MVF(motion vector field)를 생성하고, MVF를 출력할 수 있다.The
선택기(310)는, 프레임 내 객체의 움직임이 비선형(nonlinear)일 경우, 제1 움직임 벡터를 선택하고, 프레임 내 객체의 움직임이 선형(linear)일 경우, 제2 움직임 벡터를 선택할 수 있다. 프레임 내 객체의 움직임은 세 장의 프레임 동안의 프레임 내 객체의 움직임을 기준으로 선형 또는 비선형으로 나눌 수 있다.The
선택기(310)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터를 선택할 수 있다. 더 정확하게 추정된 움직임 벡터라 함은, 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 움직임 벡터는 가운데(middle) 프레임이 픽셀 정보를 가지고 기준점 역할을 수행한다. 이 때문에 세 장의 프레임을 활용하는 움직임 추정 방법은 물체가 세 장의 프레임 동안 선형(linear)적으로 움직이는 경우 움직임 벡터 추정에 좋은 성능을 보인다. 세 장의 프레임을 활용하는 움직임 추정 방법은 세 장의 프레임 동안 물체가 비선형(nonlinear)적으로 움직일 때에는 오히려 움직임 벡터의 추정 성능이 떨어지게 된다. 물체가 비선형적으로 움직이는 경우에는 두 장의 프레임을 활용하는 움직임 추정 방법이 더 좋은 움직임 벡터의 추정 성능을 보인다. 따라서 여러 장의 프레임 동안 물체의 움직임이 선형적일 경우 세 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제2 움직임 벡터를 선택한다. 또한, 물체의 움직임이 비선형적일 경우 두 장의 프레임을 활용하는 움직임 추정 방법으로 추정한 제1 움직임 벡터를 선택한다. 이처럼 물체의 움직임 패턴에 따라서 다르게 선택한 움직임 벡터 블록으로 구성된 MVF는 기존의 움직임 추정 방법 보다 더욱 정확한 움직임 추정 성능을 보인다. 이때 선택기(310)가 선택한 움직임 벡터는 물체의 움직임 패턴에 따라 움직임 벡터를 선택하므로 추정기(200)가 추정한 제1 움직임 벡터와 제2 움직임 벡터 중에서 더 정확하게 추정된 움직임 벡터라고 할 수 있다.The
선택기(310)는, 더 정확하게 추정된 움직임 벡터를 선택하기 위해서 추정기(200)가 추정한 움직임 벡터 주변에 존재하는 이미 추정된 이웃 움직임 벡터들과의 관계를 이용한다. 추정기(200)가 더 정확하게 추정한 움직임 벡터의 경우, 이웃 움직임 벡터들과의 벡터값 차이가 더 적다. 이를 이용한다면, 추정기(200)가 추정한 제1 및 제2 움직임 벡터 중 더 정확하게 추정된 움직임 벡터를 선택할 수 있다.The
선택기(310)는 추정기(200)에서 추정한 제1 움직임 벡터 및 제2 움직임 벡터 중 하나를 다음 수학식 13을 통하여 선택할 수 있다.The
여기에서 는 선택기(310)가 선택하는 움직임 벡터, 은 이미 추정된 이웃 블록의 움직임 벡터들을 의미한다.From here Is the motion vector selected by the
선택기(310)는 선택된 움직임 벡터들을 이용하여 MVF로 구성할 수 있다. 선택기(310)는 MVF를 필터(320)로 출력할 수 있다.The
필터(320)는, 선택기(310)로부터 출력된 MVF의 오류를 필터링을 통해 제거하여 수정된 MVF를 출력할 수 있다.The
선택기(310)로부터 출력된 MVF에는 추정기(200)가 잘못 추정한 움직임 벡터들이 존재할 수 있다. 이를 수정하기 위해, 대부분의 MCFI 방법들은 움직임 벡터들에 평균값 필터링(mean filtering), 중앙값 필터링(median filtering)을 적용한다. 이렇게 벡터 필터링을 적용하게 되면 주변 움직임 벡터들을 통해 평활화(smoothing) 된 움직임 벡터를 구하게 되므로, 오차를 줄인 일관성있는(coherent) 움직임 벡터 필드(MVF)를 얻을 수 있다. 주변 움직임 벡터를 사용하여 필터링을 수행할 때, SAD 값을 가중치로 활용하면 효과적인 움직임 벡터 수정을 할 수 있다.There may be motion vectors incorrectly estimated by the
필터(320)는 필터링을 통하여 수정된 움직임 벡터를 구할 수 있다. 필터(320)는 다음의 수학식 14를 이용하여 15와 같이 수정된 움직임 벡터를 계산할 수 있다.The
여기서, 은 수정된 움직임 벡터이고, 는 이웃 8개 블록의 움직임 벡터들을 의미한다.here, Is the modified motion vector, Denotes motion vectors of neighboring eight blocks.
필터(320)는 수정된 움직임 벡터를 MVF에 적용하여 수정된 MVF를 생성할 수 있다.The
수정기(330)는, 수정된 MVF에 기초한 중간 프레임 및 수정된 MVF를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다.The
수정기(330)는, 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하고, 왜곡 영역에 대응하는 수정된 MVF의 움직임 벡터를 수정하여 재수정된 MVF를 생성하고, 재수정된 MVF를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성할 수 있다. 수정기(330)가 수정된 MVF에 기초한 중간 프레임의 왜곡 영역을 검출하는 경우, 수정된 MVF와 수정된 MVF에 기초한 중간프레임을 이용하여 수정된 왜곡 영역을 검출할 수 있다.The
수정기(330)에서의 움직임 벡터 수정은, 기존 MCFI 과정 중 필터링 후에도 남아있는 잘못 추정된 움직임 벡터들이 중간 프레임 상에서 발생하는 왜곡을 제거할 수 있다. 수정기(330)는 수정된 MVF에 기초한 중간 프레임의 어느 영역에 왜곡이 발생하였는지를 먼저 검출해낸다. 그 다음, 수정기(330)가 왜곡을 검출한 영역에 해당하는 움직임 벡터들 만을 재수정 함으로써, 필터(320)의 필터링 후에도 남아있는 잘못 추정된 움직임 벡터들을 효과적으로 제거할 수 있다. 또한, 수정기(330)의 재수정으로 인하여 정확하게 추정된 벡터들의 과도한 평활화(over-smoothing)가 발생하지 않을 수 있다.The motion vector correction in the
수정기(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)는 kk 사이즈의 n개의 필터를 갖는 convolutional layer를 뜻한다. s는 필터가 이동하는 간격, stride를 의미한다. F(m)은 m개의 뉴런을 갖는 fully connected layer를 뜻한다.The
학습된 네트워크는 수정된 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
수정기(330)는 필터(320)에서 수정된 움직임 벡터를 재수정하여 재수정된 움직임 벡터를 구할 수 있다. 재수정된 움직임 벡터는 수학식 16을 이용하여 수학식 17과 같이 구할 수 있다.The
는 재수정된 움직임 벡터, 는 왜곡이 아닌 것으로 판별된 이웃 블록의 움직임 벡터들을 의미한다. The redefined motion vector, 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
도 13는 일 실시예에 따른 보간 방법을 나타낸 순서도이다.13 is a flowchart illustrating an interpolation method, according to an exemplary embodiment.
도 13를 참조하면, 추정기(200)는 현재 프레임과 이전 프레임을 이용하여 제1 움직임 벡터를 추정한다(1610a). 제1 움직임 벡터는 프레임의 블록 단위 마다 추정될 수 있다.Referring to FIG. 13, the
추정기(200)는 현재 프레임 및 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제2 움직임 벡터를 추정한다(1610b). 제2 움직임 벡터는 프레임의 블록 단위 마다 추정될 수 있다.The
생성기(300)는 제1 움직임 벡터 및 제2 움직임 벡터 중에서 어느 하나의 움직임 벡터를 이용하여 현재 프레임과 이전 프레임 간의 중간 프레임을 생성한다(1620).The
도 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을 사용하였고, 탐색 영역은 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 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 움직임 벡터는 프레임의 블록 단위 마다 추정되는 보간 장치.
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 움직임 벡터를 추정하는
보간 장치.
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.
상기 추정기는,
상기 제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.
상기 추정기는,
상기 제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.
상기 추정기는,
상기 현재 프레임, 상기 이전 프레임 및 상기 이전 프레임의 이전 프레임을 이용하여 상기 이전 프레임을 기준으로 하는 정방향 움직임 추정을 통해 제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.
상기 추정기는,
상기 제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 움직임 벡터 및 상기 제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.
상기 선택기는,
프레임 내 객체의 움직임이 비선형(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.
상기 수정기는,
상기 수정된 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
상기 수정기는,
CNN(convolutional neural network)을 통해 왜곡 영역을 검출하는
보간 장치.
The method of claim 7, wherein
The modifier,
Detecting Distorted Areas Through Convolutional Neural Networks (CNNs)
Interpolation device.
상기 현재 프레임 및 상기 이전 프레임 중에서 어느 하나에 연속하는 프레임을 더 이용하여 제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.
상기 제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.
상기 어느 하나의 움직임 벡터를 이용하여 상기 제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.
상기 더 작은 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.
상기 제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.
상기 어느 하나의 움직임 벡터를 선택하여 상기 제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.
상기 생성하는 단계는,
상기 제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.
상기 출력하는 단계는,
프레임 내 객체의 움직임이 비선형일 경우, 상기 제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.
상기 생성하는 단계는,
상기 수정된 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.
상기 검출하는 단계는,
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.
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)
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 |
-
2018
- 2018-08-28 KR KR1020180101422A patent/KR102105766B1/en active IP Right Grant
Patent Citations (3)
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 | |
CN103139568B (en) | Based on the Video Stabilization method of degree of rarefication and fidelity constraint | |
JP2004297719A (en) | Frame interpolation method and image display system using the same | |
JP2012516637A5 (en) | ||
KR101756842B1 (en) | Method and apparatus for image frame interpolation | |
KR101885839B1 (en) | System and Method for Key point Selecting for Object Tracking | |
WO2016196909A1 (en) | Method for dynamic video magnification | |
CN114339030B (en) | Network live video image stabilizing method based on self-adaptive separable convolution | |
JP2009081574A (en) | Image processor, processing method and program | |
JP2011510560A (en) | Flicker measurement method | |
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 | |
KR101033242B1 (en) | Object tracking method and apparatus for considering zoom environment | |
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 | |
US20130142397A1 (en) | Global and Dense Motion Estimation | |
KR102169166B1 (en) | Method and Device of Zoom Motion Estimation for Depth Video | |
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 |