KR20190015120A - 복수의 프레임에 대한 모션 추정 방법 및 장치 - Google Patents

복수의 프레임에 대한 모션 추정 방법 및 장치 Download PDF

Info

Publication number
KR20190015120A
KR20190015120A KR1020180088654A KR20180088654A KR20190015120A KR 20190015120 A KR20190015120 A KR 20190015120A KR 1020180088654 A KR1020180088654 A KR 1020180088654A KR 20180088654 A KR20180088654 A KR 20180088654A KR 20190015120 A KR20190015120 A KR 20190015120A
Authority
KR
South Korea
Prior art keywords
single block
block
vector
motion
candidate
Prior art date
Application number
KR1020180088654A
Other languages
English (en)
Other versions
KR102496619B1 (ko
Inventor
페트르 폴
알렉세이 미카일로비치 그루즈데브
이고르 미로노비치 코블리가
발레리 발레리예비치 애니시모브스키
로만 아르주만얀
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/053,233 priority Critical patent/US10523961B2/en
Priority to EP18840249.9A priority patent/EP3596698B1/en
Priority to PCT/KR2018/008825 priority patent/WO2019027280A1/en
Publication of KR20190015120A publication Critical patent/KR20190015120A/ko
Application granted granted Critical
Publication of KR102496619B1 publication Critical patent/KR102496619B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시는 복수의 프레임을 포함하는 비디오 데이터에 대한 모션 추정 방법 및 그 장치에 관한 것이다. 본 개시의 일 실시예에 따른 모션 추정 방법 은, 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정하는 단계, 상기 현재 프레임 유닛이 이중 블록에 해당할 경우, 상기 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하는 단계, 상기 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 상기 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하는 단계 및 ,계산된 상기 각 후보 벡터의 신뢰 함수값을 기초로 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 단계를 포함한다.

Description

복수의 프레임에 대한 모션 추정 방법 및 장치{MOTION ESTIMATION METHOD AND APPARATUS FOR A PLURALITY OF FRAMES}
본 발명은 복수의 프레임에 대한 모션 추정 방법 및 장치에 관한 것으로, 특히 비디오 프레임 레이트 변환을 위한 모션 추정 방법 및 장치에 관한 것이다.
모션 추정은 비디오 인코딩, 비디오 프레임 레이트 변환 및 움직이는 이미지 구조를 만드는데 사용되는 많은 알고리즘에서 중요한 요소이다. 그러나 모션 추정 알고리즘은 태스크 세트에 크게 의존하기 때문에, 어떤 응용 프로그램에서도 똑같이 받아들여 질 수 있는 단일 범용 알고리즘은 존재하지 않는다.
예를 들어, 모바일 장치에서 비디오를 재생하기 위한 프레임 레이트 변환의 모션 추정은 성능 제한, 전원 제한, 복잡한 모션, 이동 물체의 경계선에 발생하는 모션 아티팩트(motion artifacts), 갑작스럽고 부드럽지 않은 트위치(twitchy) 동작과 같은 특성 및 복잡성을 갖는다.
성능을 향상시키는 동시에 증가하는 사용자의 요구를 충족시키고, 비디오의 인식을 향상시키기 위해 프레임 레이트 변환의 모션 추정에 대한 요구 사항이 지속적으로 증가하고 있다.
예를 들어 모바일 장치는 메모리 공간을 절약하고 인터넷 트래픽의 필요한 대역폭을 줄이거나 카메라 관련 요구 사항을 줄이기 위해 프레임 전환 속도가 낮은 비디오 컨텐츠를 사용한다.
비디오 컨텐츠를 추가 처리 없이 재생하는 것은, 눈에 보이는 트위치 동작 및 매끄럽지 않은 동작을 포함할 수 있기 때문에 항상 사용자에게 허용되는 것은 아니다.
따라서 재생 중인 비디오에서 모션의 부드러움을 향상시키려면 프레임 레이트를 높이는 것이 필요하며, 이러한 프레임 레이트 변환 알고리즘은 잡음에 강할 것, 고성능일 것, 진정한 모션에 가깝게 변환할 것, 멀티 스레딩, 이동성, 실시간 작업이 가능할 것 및 저전력 소비와 같은 여러 요구 사항을 충족해야 한다.
도 1은 종래의 3DRS의 사행 스캔 순서의 예를 도시한다.
종래의 3D 재귀적 탐색(3D recursive search, 3DRS) 모션 추정은 스캐닝 프레임 블록의 궤도가 사행(meandering)처럼 보이는 사행 스캔 검색 패턴(101)을 사용하여 수행된다.
탐색 결과는 모션 벡터를 수신할 때 사행 스캔 순서에 적응된 제어 유닛 및 모션 보상 유닛(MC)에 대한 모션 벡터를 출력할 때 래스터 스캔 순서(103)를 갖는 순환 메모리 버퍼에 놓인다. 이와 같은 원형 버퍼는 필요한 양의 메모리를 한다. 그러나 이러한 솔루션은 현재 널리 사용되는 멀티 코어 시스템에서 향상된 성능을 제공하지 못한다.
도 2는 종래의 3DRS의 사행 스캔이 별도의 스레드를 통해 개별적으로 이루어지는 모습의 예를 도시한다.
모션 추정(ME)은 개별 파트 각각에 대해 동시에 수행되며, 몇몇 병렬 스레드는 멀티 코어 시스템에서 모션 추정 계산 성능을 향상시킬 수 있다. 그러나 이와 같은 접근법은 많은 단점을 가지고 있다
일 예로, 블록 간 인접 부분에서 블록을 스캐닝하는 방향이 반대라는 사실은 메모리 액세스의 비 지역성(non-locality)을 초래하여 성능을 저하시킨다.
또한, 홀수 및 짝수 라인의 블록 이동은 서로 다른 방향에서 분산되어 객체의 가장자리에 인터레이스(interlaced) 효과를 유발할 수 있다.
또한, 하나의 스레드(도 2의 ME1 스레드 및 A 블록)의 모션 추정은 현재 블록에 인접한 블록을 기반으로 하며, 나머지 스레드(도 2의 ME2, ME3, ME4 스레드 및 B, C, D 블록)에서 추정 프로세스는 일부 인접한 블록 대신에 불가피하게 오류를 유발하는 현재 블록으로부터 일정 간격 떨어져 있는 블록을 사용하게 된다.
또한, 일부 스레드(도 2의 ME2, ME3, ME4 스레드)에서의 모션 추정은 다른 스레드에서 이미 수행된 추정을 기반으로 하며, 이는 스레드 간의 강력한 동기화와 자체 프로세싱을 완전히 독립적으로 만들지 못하고 추정 성능을 저하시킬 수 있다.
도 3은 블록 기반 모션 추정 및 전역 모션 추정을 사용하는 종래의 3DRS 모션 추정의 예를 도시한다.
도 3을 참조하면, 블록 기반 모션 추정(BME) 및 전역 모션 추정(GME)을 사용하여 3DRS 모션 추정이 수행되는 태스크 세트에 대한 다른 접근법이 나타나 있다. 여기서 GME는 BME의 모션 벡터 통계를 사용하고(31) 전역 모션의 후보 벡터를 BME에 출력한다(32).
그러나 이러한 솔루션의 전역 모션 추정은 너무 단순한 모션 벡터 통계를 사용하므로(즉, BME에서 가장 많이 사용되는 모션 벡터 중 첫 번째 및 두 번째 모션 벡터를 사용함), 품질 결과를 얻는 데 충분하지 않다는 단점이 있다.
 또한 이러한 솔루션의 전역 모션 추정 결과는 전체 프레임에 적용되는 반면, 한두 개의 전역 모션 벡터가 프레임의 다른 부분에 적합하지 않은 경우가 종종 있으며,  획득된 모션 필드가 실제 모션 필드와 일치하지 않기 때문에 프레임 속도 변환 중에 이동하는 물체의 경계에서 계단 형상, 즉 모션 아티팩트가 발생할 수도 있다.
본 발명은 비디오 프레임 레이트 변환을 위한 모션 추정 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
이러한 목적을 달성하기 위한 본 발명의 일 측면은 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정하는 단계, 상기 현재 프레임 유닛이 이중 블록에 해당할 경우, 상기 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하는 단계, 상기 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 상기 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하는 단계 및 계산된 상기 각 후보 벡터의 신뢰 함수값을 기초로 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 단계를 포함하는 복수의 프레임에 대한 모션 추정 방법을 제공할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 단계는 상기 후보 벡터 중 상기 제1 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제1 단일 블록의 추정된 모션 벡터로 선택하는 단계 및 상기 후보 벡터 중 상기 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제2 단일 블록의 추정된 모션 벡터로 선택하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 후보 벡터 세트는 공간적 후보 벡터, 시간적 후보 벡터 및 랜덤 후보 벡터 중 적어도 하나를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 복수의 프레임에 대한 모션 추정 방법은 상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계, 상기 분석 결과에 기초하여, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계 및 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정한 경우, 상기 제2 단일 블록의 추정된 모션 벡터를 다시 획득하는 단계를 더 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제2 단일 블록의 추정된 모션 벡터를 다시 획득하는 단계는 상기 제2 단일 블록에 대응하는 후보 벡터 세트를 획득하는 단계 및 상기 제2 단일 블록의 후보 벡터 중 상기 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제2 단일 블록의 추정된 모션 벡터로 선택하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계는 상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값 사이의 차이의 절대값을 계산하는 단계 및 상기 계산된 절대값을 미리 설정된 제1 임계치와 비교하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계는 상기 계산된 절대값이 상기 제1 임계값 이상인 경우, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계는 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 미리 설정된 제2 임계값과 비교하는 단계를 더 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계는 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값이 상기 제2 임계값 이상인 경우, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하는 단계는 현재 프레임에 대한 순방향 모션 필드의 추정에서, 이전 프레임 및 현재 프레임 쌍에 대해 추정된 역방향 모션 필드로부터 시간적 후보 벡터를 선택하는 단계 및 현재 프레임에 대한 역방향 모션 필드의 추정에서, 현재 프레임 및 후속 프레임 쌍에 대해 추정된 순방향 모션 필드로부터 시간적 후보 벡터를 선택하는 단계를 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 모션 추정은 프레임의 행 내의 이웃하는 프레임 유닛들의 세트를 나타내는 집합 프레임 유닛들에 대해 수행되고, 상기 집합 프레임 유닛들에 대한 스캐닝은 상기 프레임의 각 모서리 중 어느 하나의 모서리에 위치한 집합 프레임 유닛으로부터 시작하여 대각선 스캐닝 방향에 따라 수행될 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 모션 추정은 각 집합 프레임 유닛이 개별적으로 처리되는 두 개 이상의 처리 스레드에서 동시에 수행될 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 랜덤 후보 벡터는 상기 현재 프레임 유닛에서 적용 가능 마스크가 활성 상태일 경우, 상기 현재 프레임의 반 전역 모션 벡터에 랜덤 오프셋을 더하여 획득될 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 반 전역 모션 벡터는 상기 현재 프레임의 이전에 추정된 모션 필드의 2차원 히스토그램에 대한 분석을 통해 획득되고, 상기 적용 가능 마스크는 상기 획득된 반 전역 모션 벡터에 대응하는 객체 움직임이 존재하는 프레임 영역에 형성될 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하는 단계는 상기 현재 프레임 유닛과 상기 각 후보 벡터가 나타내는 블록 간의 MAD (mean absolute difference)를 계산하는 단계, 상기 각 후보 벡터와 상기 반 전역 모션 벡터 사이의 거리에 기초하여 페널티 함수값을 계산하는 단계 및 상기 MAD 및 상기 페널티 함수값을 더하여 상기 신뢰 함수값을 획득하는 단계를 포함할 수 있다.
한편, 이러한 목적을 달성하기 위한 본 발명의 다른 측면은, 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정하고, 상기 현재 프레임 유닛이 이중 블록에 해당할 경우, 상기 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하며, 상기 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 상기 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하고, 계산된 상기 각 후보 벡터의 신뢰 함수값을 기초로 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 프로세서 및 획득된 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 저장하는 메모리를 포함하는 복수의 프레임에 대한 모션 추정 장치를 제공할 수 있다.
본 발명의 모션 추정 방법 및 장치에 의하면, 이중 블록을 모션 추정이 수행될 현재 프레임 유닛으로 사용함으로써 모션 추정 품질을 높일 수 있는 효과가 있다.
도 1은 종래의 3DRS의 사행 스캔 순서의 예를 도시한다.
도 2는 종래의 3DRS의 사행 스캔이 별도의 스레드를 통해 개별적으로 이루어지는 모습의 예를 도시한다.
도 3은 블록 기반 모션 추정 및 전역 모션 추정을 사용하는 종래의 3DRS 모션 추정의 예를 도시한다.
도 4는 종래의 3DRS 모션 추정 알고리즘을 사용한 모션 추정 방법의 예를 도시한다.
도 5는 일 실시예에 따른 복수의 프레임에 대한 모션 추정 장치의 블록도를 도시한다.
도 6은 일 실시예에 따른 복수의 프레임에 대한 모션 추정 방법의 흐름도를 도시한다.
도 7은 모션 필드의 추정을 위해 이전에 추정된 모션 필드를 사용하는 일 예를 개념적으로 도시한다.
도 8은 일 실시예에 따른 확장된 3DRS 모션 추정 알고리즘의 이중 블록을 사용한 모션 추정 방법을 도시한다.
도 9는 일 실시예에 따른 복수의 프레임에 대한 3DRS의 흐름도를 도시한다.
도 10은 풀 프레임 사행 스캔 순서를 사용하는 종래의 3DRS의 예를 도시한다.
도 11은 웨이브프론트 스캔 순서를 갖는 3DRS의 예를 도시한다.
도 12는 일 실시예에 따른 이중 블록의 프레임 유닛으로 분할된 프레임에 대한 스캔 순서를 도시한다.
도 13은 일 실시예에 따른 세 개의 이중 블록을 포함하는 집합 프레임 유닛에 대한 스캔 순서를 도시한다.
도 14는 일 실시예에 따른 집합 프레임 유닛에 대한 역방향 프레임 스캐닝 순서를 도시한다.
도 15는 일 실시예에 따른 세 개의 이중 블록을 포함하는 집합 프레임 유닛에 대한 또 다른 스캔 순서를 도시한다.
도 16은 일 실시예에 따른 반 전역 모션 후보 벡터를 사용하는 복수의 프레임에 대한 3DRS의 흐름도를 도시한다.
도 17a 내지 도 17c는 일 실시예에 따른 반 전역 모션이 적용된 프레임을 도시한다.
본 개시의 3D 재귀적 탐색 알고리즘은 한 쌍의 비디오 시퀀스 프레임에서 순차 반복(sequential iterations)을 사용하여 블록 모션 필드를 검색하기 위해 사용된다.
또한, 본 개시의 모션 필드는 모션 벡터의 세트이며, 각각의 모션 벡터는 각 픽셀 또는 현재 프레임의 블록, 즉 통상적으로 정사각형 또는 직사각형 형태의 인접한 픽셀들의 모임인 블록과 대응한다.
여기서 모션 벡터는 현재 프레임의 블록과 다른 프레임의 블록 사이의 오프셋인 두 블록의 좌표 차이에 해당한다. 이 오프셋은 정수 픽셀 정밀도와 분수 픽셀 정밀도를 모두 포함할 수 있다.
따라서, 각각의 모션 벡터는 항상 다른 프레임을 가리키며, 모션 필드의 존재는 현재 프레임과 다른 프레임(예를 들어, 다음 프레임 또는 이전 프레임)이 존재함을 의미한다.
본 개시의 모션 추정 과정은 각 블록에 대한 복수의 후보 벡터, 즉 모션 추정에 사용될 수 있는 벡터의 존재를 확인하는 과정을 포함한다. 이때 복수의 후보 벡터 중 최상의 추정치를 갖는 후보 벡터는 현재 블록에 대한 모션 벡터가 될 수 있다.
복수의 후보 벡터는 후보 벡터 세트를 구성하며, 가장 간단한 후보 벡터 세트는 프레임에 존재할 수 있는 모든 가능한 오프셋을 포함할 수 있다.
다만, 이와 같은 모든 가능한 오프셋을 포함하는 후보 벡터 세트는 너무 큰 사이즈를 갖는다. 예를 들어, 하나의 픽셀마다 특정 오프셋이 존재할 경우, 후보 벡터 세트에 포함된 후보 벡터의 수는 프레임에 포함된 전체 픽셀의 수와 동일할 것이다.
현재 블록에 대한 후보 벡터 세트를 형성하는 데 있어서, 현재의 모션 필드의 주변 블록들로부터 이전에 추정된 모션 벡터들(공간적 후보 벡터들로 지칭 됨) 및 이전에 계산된 모션 필드에 포함되는 모션 벡터들(시간적 후보 벡터들로 지칭됨) 모두가 사용된다
또한, 제로 오프셋과 관련된 랜덤 오프셋 및 다른 후보 벡터에 대한 랜덤 오프셋(랜덤 후보 벡터로 지칭됨)이 사용될 수 있다.
 또한, 전역(global) 모션 추정이 사용되는 경우, 후보 벡터 세트는 전역 모션 벡터(전역 후보 벡터들로 지칭될 수 있음)를 포함할 수 있다. 이때 전역 후보 벡터에 랜덤 오프셋을 추가함으로써 랜덤 후보 벡터들을 얻을 수도 있다.
도 4는 종래의 3DRS 모션 추정 알고리즘을 사용한 모션 추정 방법의 예를 도시한다.
도 4에 나타난 것과 같이, 후보 벡터 세트는 각 단일 블록에 대해 개별적으로 형성될 수 있다.
예를 들어, 제1 블록(1)에 대하여, 현재 모션 필드에서 제3 블록(3), 제5 블록(5), 제7 블록(7), 제9 블록(9) 및 제11 블록(11)으로부터 공간적 후보 벡터가 선택되고, 이전에 계산된 모션 필드에서 제1 블록(1), 제2 블록(2), 제13 블록(13) 및 제15 블록(15)으로부터 시간적 후보 벡터가 선택되어, 총 9개의 후보 벡터를 포함하는 후보 벡터 세트가 형성될 수 있다.
한편, 제2 블록(2)에 대하여, 현재 모션 필드에서 제4 블록(4), 제6 블록(6), 제8 블록(8), 제10 블록(10) 및 제1 블록(1)으로부터 공간적 후보 벡터가 선택되고, 이전에 계산된 모션 필드에서 제2 블록(2), 제12 블록(12), 제14 블록(14) 및 제16 블록(16)으로부터 시간적 후보가 선택되어, 총 9개의 후보 벡터를 포함하는 후보 벡터 세트가 형성될 수 있다.
일 실시예에서, 후보 벡터가 선택될 블록은 다음과 같은 규칙에 따라 결정될 수 있다.
우선, 후보 벡터가 선택될 블록의 배열(패턴)은 이미 추정된 모션의 방향이 다른 방향으로부터 현재 블록을 향하도록 해야 하며, 이와 같은 규칙에 따라 추정된 모션 벡터는 특정 조건 하에서 가장 빨리 실제 모션으로 수렴할 수 있다.
한편, 시간적 후보 벡터가 선택되는 블록들은 현재 모션 필드 중 모션 벡터가 아직 추정되지 않은 부분에 배치되며, 이것이 이전에 계산된 모션 필드가 사용되는 이유이다.
도 5는 일 실시예에 따른 복수의 프레임에 대한 모션 추정 장치의 블록도를 도시한다.
도 5를 참조하면, 본 개시의 일 실시예에 따른 모션 추정 장치(50)는 프로세서(501) 및 메모리(502)를 포함한다.
프로세서(501)는 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정할 수 있다.
프로세서(501)는 현재 프레임 유닛이 이중 블록에 해당할 경우, 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 이중 블록의 후보 벡터 세트로서 획득할 수 있다.
이와 같은 후보 벡터 세트는 공간적 후보 벡터, 시간적 후보 벡터 및 랜덤 후보 벡터 중 적어도 하나를 포함할 수 있다.
이중 블록의 후보 벡터 세트를 획득하기 위하여, 프로세서(501)는 현재 프레임에 대한 순방향 모션 필드의 추정에서, 이전 프레임 및 현재 프레임 쌍에 대해 추정된 역방향 모션 필드로부터 시간적 후보 벡터를 선택할 수 있다.
또한, 프로세서(501)는 현재 프레임에 대한 역방향 모션 필드의 추정에서, 현재 프레임 및 후속 프레임 쌍에 대해 추정된 순방향 모션 필드로부터 시간적 후보 벡터를 선택할 수 있다.
이전에 추정된 모션 필드에 기초한 후보 벡터의 선택 방법은 도 7을 통해 후술한다.
프로세서(501)는 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산할 수 있다.
프로세서(501)는 계산된 각 후보 벡터의 신뢰 함수값을 기초로 제1 단일 블록의 추정된 모션 벡터 및 제2 단일 블록의 추정된 모션 벡터를 획득할 수 있다.
보다 구체적으로, 프로세서(501)는 후보 벡터 중 제1 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 제1 단일 블록의 추정된 모션 벡터로 선택할 수 있다.
마찬가지로, 프로세서(501)는 후보 벡터 중 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 제2 단일 블록의 추정된 모션 벡터로 선택할 수 있다.
한편, 프로세서(501)는 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값의 분석 결과에 기초하여, 제1 단일 블록에 대한 모션 벡터와 개별적으로 제2 단일 블록에 대한 모션 벡터를 추정할지 여부를 결정할 수 있다.
예를 들어, 프로세서(501)는 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값 사이의 차이의 절대값을 계산하고, 계산된 절대값을 미리 설정된 제1 임계치와 비교할 수 있다.
만약 계산된 절대값이 제1 임계값 이상인 경우, 프로세서(501)는 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정할 수 있다.
다른 예로, 프로세서(501)는 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 미리 설정된 제2 임계값과 비교할 수 있다.
만약 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값이 제2 임계값 이상인 경우, 프로세서(501)는 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정할 수 있다.
제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정한 경우, 프로세서(501)는 제2 단일 블록의 추정된 모션 벡터를 다시 획득할 수 있다.
즉, 프로세서(501)는 제2 단일 블록에 대응하는 후보 벡터 세트를 개별적으로 획득하고, 제2 단일 블록의 후보 벡터 중 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 제2 단일 블록의 추정된 모션 벡터로 다시 선택할 수 있다.
한편, 프로세서(501)의 모션 추정은 프레임의 행 내의 이웃하는 프레임 유닛들의 세트를 나타내는 집합 프레임 유닛들에 대해 수행될 수 있다.
이와 같은 집합 프레임 유닛들에 대한 스캐닝은 프레임의 각 모서리 중 어느 하나의 모서리에 위치한 집합 프레임 유닛으로부터 시작하여 대각선 스캐닝 방향에 따라 수행될 수 있다.
이때 프로세서(501)의 모션 추정은 각 집합 프레임 유닛이 개별적으로 처리되는 두 개 이상의 처리 스레드에서 동시에 수행될 수 있다.
한편, 후보 벡터 세트에 포함된 랜덤 후보 벡터는 현재 프레임 유닛에서 적용 가능 마스크가 활성 상태일 경우, 현재 프레임의 반 전역 모션 벡터에 랜덤 오프셋을 더하여 획득될 수 있다.
여기서 반 전역 모션 벡터는 현재 프레임의 이전에 추정된 모션 필드의 2차원 히스토그램에 대한 분석을 통해 획득될 수 있다. 적용 가능 마스크는 획득된 반 전역 모션 벡터에 대응하는 객체 움직임이 존재하는 프레임 영역에 형성될 수 있다.
이와 같은 반 전역 모션 벡터에 대해서, 프로세서(501)는 현재 프레임 유닛과 각 후보 벡터가 나타내는 블록 간의 MAD (mean absolute difference)를 계산하고, 각 후보 벡터와 반 전역 모션 벡터 사이의 거리에 기초하여 페널티 함수값을 계산할 수 있다.
계산된 MAD 및 페널티 함수값은 프로세서(501)에 의하여 서로 더해져 신뢰 함수값의 획득에 사용될 수 있다.
메모리(502)는 획득된 제1 단일 블록의 추정된 모션 벡터 및 제2 단일 블록의 추정된 모션 벡터를 저장할 수 있다.
도 6은 일 실시예에 따른 복수의 프레임에 대한 모션 추정 방법의 흐름도를 도시한다.
S601 단계에서, 프로세서는 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정한다.
S602 단계에서, 프로세서는 현재 프레임 유닛이 이중 블록에 해당할 경우, 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 이중 블록의 후보 벡터 세트로서 획득한다.
S603 단계에서, 프로세서는 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산한다.
S604 단계에서, 프로세서는 계산된 각 후보 벡터의 신뢰 함수값을 기초로 제1 단일 블록의 추정된 모션 벡터 및 제2 단일 블록의 추정된 모션 벡터를 획득한다.
도 7은 모션 필드의 추정을 위해 이전에 추정된 모션 필드를 사용하는 일 예를 개념적으로 도시한다.
본 개시에 따르면, 프레임들의 각 쌍(예를 들어, FRAME1과 FRAME2, FRAME2와 FRAME3, 및 FRAME3과 FRAME4)에 대하여 순방향 모션 필드(forward motion field, FW) 및 역방향 모션 필드(backward motion field, BW)가 각각 추정될 수 있다.
순방향 모션 필드 FW<N>는 현재 프레임 N에 대한 모션 벡터의 세트이고, 후속 프레임 N + 1을 가리킨다. 반면, 역방향 모션 필드 BW<N-1>는 현재 프레임 N에 대한 모션 벡터의 세트이고, 이전 프레임 N-1을 가리킨다.
순방향 모션 필드 FW<N>의 추정에서, 시간적 후보는 이전 프레임 및 현재 프레임 쌍(N-1, N)에 대해 추정된 역방향 모션 필드 BW<N-1>로부터 선택된다.
보다 구체적으로, 순방향 모션 필드 FW<N>의 추정에서, 이전 프레임 및 현재 프레임 쌍(N-1, N)에 대해 추정된 역방향 모션 필드 BW<N-1>의 부호를 반대 부호로 변환한 모션 필드로부터 시간적 후보가 선택될 수 있다.
한편, 역방향 모션 필드 BW<N>의 추정에서, 시간적 후보는 현재 프레임 및 후속 프레임 쌍(N, N + 1)에 대해 추정된 순방향 모션 필드 FW<N>로부터 선택된다.
보다 구체적으로, 역방향 모션 필드 BW<N>의 추정에서, 현재 프레임 및 후속 프레임 쌍(N, N + 1)에 대해 추정된 순방향 모션 필드 FW<N>가 역방향으로 투영된(inverted projected) 모션 필드로부터 시간적 후보가 선택될 수 있다.
모션 필드를 투영하는 과정은 투영될 모션 필드의 현재 블록에 대한 모션 벡터를 선택하고, 선택된 모션 벡터의 값을 투영된 모션 필드의 블록에 입력하는 과정을 포함한다.
본 개시의 일 실시예에 따른 모션 추정 방법은 역방향 모션 필드 BW<N>의 벡터들을 추정하기 위해, 순방향 모션 필드 FW<N>을 사용하여 추정된 반 전역(semi global) 후보 벡터를 사용할 수 있다.
도 8은 일 실시예에 따른 확장된 3DRS 모션 추정 알고리즘의 이중 블록을 사용한 모션 추정 방법을 도시한다.
본 개시에 따른 모션 추정 방법에 의해 처리되는 유닛은 이중 블록일 수 있으며, 이중 블록은 함께 처리되는 한 쌍의 이웃한 단일 블록에 해당한다.
이때 이중 블록을 위해 하나의 후보 벡터 세트만이 사용될 수 있으며, 후보 벡터 세트에 포함된 각 후보 벡터는 이중 블록을 구성하는 한 쌍의 단일 블록에 대한 단일 스캐닝 루프를 통해 동시에 추정될 수 있다. 이와 같은 하나의 후보 벡터 세트의 사용을 통해 후보 벡터 계산 비용이 감소될 수 있다.
도 8에 도시된 일 실시예에서, 제1 단일 블록(A) 및 제2 단일 블록(B)은 이중 블록(A+B) 내에서 동시에 분석된다. 이중 블록(A+B)의 경우 제3 블록(3), 제5 블록(5), 제7 블록(7), 제9 블록(9) 및 제11 블록(11)에서 공간적 후보 벡터가 선택되고 제1 단일 블록(A), 제2 단일 블록(B), 제13 블록(13) 및 제15 블록(15) 중에서 시간적 후보 벡터가 선택되어, 총 9개의 후보 벡터를 포함하는 후보 벡터 세트가 획득될 수 있다.
이중 블록(A+B)에 대한 후보 벡터 세트는 단일 제1 단일 블록(A)에 대한 후보 벡터 세트와 실질적으로 동일하며, 선택된 9개의 후보 블록은 단일 블록인 제1 단일 블록(A)에 대한 종래의 접근법에 따라 분석될 수 있다.
따라서, 공간적 후보 벡터 및 시간적 후보 벡터의 소스의 수는 도 4에 도시된 후보 벡터 세트가 각 단일 블록에 대해 개별적으로 형성된 경우의 절반에 해당한다.
추가로 설명되는 바와 같이, 이중 블록(A+B)의 두 번째 블록에 대한 추가 후보, 즉 제2 단일 블록(B)에 대한 후보의 분석은 이중 블록에 포함된 한 쌍의 단일 블록에 대한 신뢰 함수값 CF(MVcand, block)가 특정 조건을 만족시키는 경우에만 발생한다.
또한, 공간적 후보 벡터가 선택될 블록을 식별할 때, 가장 오른쪽 블록이 웨이브프론트(wavefront) 경계를 넘어가지 않을 조건이 만족되어야 한다. 이는 현재 모션 필드의 벡터들이 웨이브프론트 경계 및 웨이브프론트 경계 너머에서 아직 추정되지 않았기 때문이다.
도 9는 일 실시예에 따른 복수의 프레임에 대한 3DRS의 흐름도를 도시한다.
S900 단계에서, 획득 규칙 세트를 특정함으로써 현재 프레임 유닛에 대한 후보 벡터 세트가 형성된다. 본 실시예에서 몇 가지 예외를 제외하고는, 현재 프레임 유닛은 이중 블록에 해당한다.
S900 단계에서 획득되는 현재 프레임 유닛에 대한 후보 벡터 세트는 현재 프레임 유닛의 두 개의 이웃하는 단일 블록 중 어느 하나의 단일 블록(예를 들어, 첫 번째 단일 블록)에 대한 후보 벡터 세트로 구성된다.
예를 들어, 도 8에 도시 된 바와 같이, 이중 블록(A+B)에 대한 후보 벡터가 획득 규칙에 따라 제1 블록(1)에서 먼저 선택된다. 획득 규칙은 프레임의 모든 유닛에 대해서 동일하고, 순방향 모션 필드 및 역방향 모션 필드에 대해서는 서로 상이할 수 있다.
획득 규칙 세트는 다음과 같은 획득 규칙들 중 하나 이상의 획득 규칙을 포함할 수 있다. 이때 스캔 순서는 왼쪽에서 오른쪽으로, 위에서 아래로 진행하는 것으로 가정한다.
1) 이전 모션 필드의 블록으로부터 추정된 모션 벡터를 획득하며, 이전 모션 필드의 블록의 좌표는 현재 유닛의 좌표와 동일함
2) 추정될 모션 필드의 블록으로부터 추정된 모션 벡터를 획득하며, 블록의 좌표는 현재 유닛의 좌표에 왼쪽 방향으로 하나의 단위 오프셋을 더하여 얻어진 좌표와 동일함
3) 추정될 모션 필드의 블록으로부터 추정된 모션 벡터를 획득하며, 블록의 좌표는 현재 유닛의 좌표에 위쪽 방향으로 하나의 단위 오프셋을 더하여 얻어진 좌표와 동일함
4) 이전 모션 필드의 블록으로부터 추정된 모션 벡터를 획득하며, 이전 모션 필드의 블록의 좌표는 현재 유닛의 좌표에 오른쪽 방향으로 하나의 블록 오프셋을 더하여 얻어진 좌표와 동일함
5) 이전 모션 필드의 블록으로부터 추정된 모션 벡터를 획득하며, 이전 모션 필드의 블록의 좌표는 현재 유닛의 좌표에 아래쪽 방향으로 하나의 블록 오프셋을 더하여 얻어진 좌표와 동일함.
6) XY 범위 [-3...3][-2...2]에서 랜덤 오프셋을 취함
7) 이전에 추정된 후보 벡터로부터 최상의 후보 벡터를 취하여, XY 범위 [-3...3][-2...2]의 랜덤 오프셋을 추가함
위의 규칙 목록에는 7개의 규칙이 포함되어 있으므로, 각 프레임 유닛에 대해 최대 7개의 후보 벡터가 존재함이 간주된다. 한편, 모든 후보 벡터의 값이 같을 경우 동일한 오프셋을 여러 번 평가하는 것은 의미가 없으므로, 최소 후보 벡터의 수는 1개로 간주된다.
본 개시의 모션 추정 방법은 전술한 특정 획득 규칙들의 사용에 한정되지 않으며, 당업자는 본 개시를 벗어나지 않고 다른 획득 규칙을 사용할 수 있음을 이해할 것이다.
한편, 규칙 7)은 현재 프레임 유닛을 처리하기 이전에 후보 벡터 세트가 완전히 형성되는 것을 허용하지 않으며, 이는 후보 벡터 중 어느 후보 벡터가 최상인지는 미리 알 수 없기 때문이다. 최상의 후보 벡터는 후술할 신뢰 함수의 계산 후에만 명확해질 것이다.
S901 단계에서, 미리 결정된 획득 규칙 세트에 기초하여 형성된 후보 벡터 세트로부터 현재 후보 벡터가 선택된다.
그 다음 S902 단계에서, 선택된 현재 후보 벡터를 기초로, 현재 이중 블록의 각 단일 블록(예를 들어, 제1 블록 및 제2 블록)에 대한 CF(MVcand,A) 및 CF(MVcand,B)가 계산된다.
신뢰 함수 CF(MVcand, block)는 MAD(MVcand, block) 및 f(Prior, MVcand)의 합을 통해 구해질 수 있다. 여기서 MAD는 평균 절대 차(mean absolute difference)를 의미하며, 다음과 같은 식 1을 통해 획득될 수 있다.
[식 1]
Figure pat00001
- vx, vy : 후보 벡터 (오프셋)
- x, y : 현재 블록의 픽셀 좌표
- M, L : 현재 블록의 선형 크기
- FN, FN + l : 현재 프레임 및 후속 프레임(순방향 모션 필드 검색용)
- f (Prior, MVcand) : 이전에 계산된 정보를 사용하고 모션 필드의 추가 정규화에 사용되는 페널티 기능(이전에 계산된 정보는 전역 모션 또는 반 전역 모션에 대한 정보일 수 있음)
- MVcand : 분석 중인 후보 벡터
- (block) : 현재 프레임에서 (현재) 블록의 좌표 또는 위치
신뢰 함수값이 클수록 후보 벡터에 대한 신뢰도는 낮아지며, 신뢰 함수값이 낮을수록 후보 벡터에 대한 신뢰도는 높아진다.
S903 단계에서, 이전 후보 벡터들과 비교하여 현재 후보 벡터의 CF(MVcand, block)가 더 작은 값을 갖는 경우, 현재 후보 벡터는 최상의 후보 벡터로 메모리에 저장된다.
메모리에 최상의 후보 벡터가 아직 저장되지 않은 경우에는, 현재 후보 벡터는 최상의 후보 벡터로서 메모리에 저장될 수 있다.
메모리에 최상의 후보 벡터가 이미 저장되어있는 경우에는, 후속 후보 벡터인 현재 후보 벡터의 CF(MVcand, block)값과 저장된 최상의 후보 벡터의 CF(MVcand, block)값의 비교를 통해, 더 작은 CF(MVcand, block)값을 갖는 후보 벡터가 최상의 후보 벡터로 저장될 수 있다.
예를 들어, 제1 후보 벡터가 이미 메모리에 최상의 후보 벡터로 저장되어 있고, 현재 후보 벡터인 제3 후보 벡터의 CF(MVcand, blcok)값이 제1 후보 벡터의 CF(MVcand, blcok)값보다 더 작은 경우, 제3 후보 벡터가 최상의 후보 벡터로서 메모리에 다시 저장될 수 있다.
S904 단계에서, 획득된 현재 후보 벡터가 현재 유닛에 대한 최종 벡터인지, 즉 미리 결정된 후보 벡터 세트에서의 마지막 후보 벡터인지 여부가 검사된다.
현재 후보 벡터가 마지막 벡터가 아닌 경우, 추정 방법은 S901 단계로 다시 돌아가고 다음 후보 벡터의 분석을 진행한다. 반면, 현재 후보 벡터가 마지막 벡터인 경우, 다음의 S905 단계로 진행한다.
결국, 현재 유닛에 대한 모든 후보 벡터의 분석이 완료된 뒤에는 최소 CF(MVcand, block)값을 갖는 후보 벡터가 최상의 후보 벡터로 메모리에 저장될 수 있다.
S905 단계에서, 현재 프레임 단위인 이중 블록, 즉 현재 이중 블록에 포함된 각 단일 블록에 대한 한 쌍의 CF(MVcand, block)값에 대한 분석이 이루어진다.
보다 구체적으로, 현재 이중 블록의 두 번째 단일 블록인 제2 단일 블록에 대한 CF(MVcand best B,B)와 현재 이중 블록의 첫 번째 단일 블록인 제1 단일 블록에 대한 CF(MVcand best A,A)의 차이를 기초로 차이값 d(BA)가 계산된다. 계산된 차이값 d(BA)는 소정의 차등 임계치 Tdiff 와 비교된다.
차등 임계치 Tdiff를 초과하는 차이값 d(BA)는 CF(MVcand best B,B)와 CF(MVcand best A,A) 사이의 차이가 상대적으로 크다는 것을 보여주며, 이를 통해 제1 단일 블록 및 제2 단일 블록이 모션 경계에 있음(즉, 모션이 서로 다른 객체에 속함)을 나타낼 수 있다.
또한, S905 단계에서, 현재 이중 블록의 두 번째 단일 블록에 대한 CF (MVcand best B,B)의 값은 미리 결정된 절대 임계치 Tabs와 비교되며, 이는 CF (MVcand best B,B)의 값이 과도하게 큰 값에 해당하는지 여부를 나타낼 수 있다.
특정 후보 벡터가 분석될 때, CF(MVcand, block)의 값은 이중 블록의 각 블록에 대해 개별적으로 계산된다는 점에 유의해야 한다.
이중 블록에 포함된 어느 하나의 단일 블록에 대하여 계산된 CF(MVcand, block1)값이 어느 하나의 단일 블록에 적용된 모든 이전 후보 벡터에 대하여 계산된 신뢰 함수값보다 작을 때, 현재 후보 벡터가 이중 블록에 대한 최상의 벡터가 될 것이다. 이때, 이중 블록에 포함된 나머지 단일 블록에 대하여 계산된 CF(MVcand, block2)값은 이전에 분석된 후보 벡터 MVcand best2에 대한 CF(MVcand best2, block2)의 값의 값보다 클 수 있다.
따라서, 이중 블록에 포함된 각 단일 블록은 서로 상이한 최상의 후보 벡터 및 신뢰 함수값을 가질 수 있다.
S906 단계에서, 이전 S905 단계에서 수행된 분석에 기초하여 현재 프레임 유닛이 두 개의 별개의 단일 블록으로서 분석되어야 하는지, 또는 이중 블록으로 사용 가능한지 여부가 결정된다.
일 실시예에서, 현재 유닛의 d(BA)의 값이 임계치 Tdiff의 값보다 크고, CF(MVcand best B,B)의 값이 Tabs보다 클 경우, 두 개의 단일 블록을 개별적으로 분석한다는 결정이 내려진다.
미리 결정된 값 Tdiff 및 Tabs는 모션 필드의 품질, 즉 추정된 모션 필드가 실제 모션 필드에 근접한 정도와 모션 추정 속도 사이의 절충을 가능하게 한다.
보다 구체적으로, 상대적으로 높은 값을 갖는 Tdiff와 Tabs가 정의되면 추가 후보의 분석은 덜 빈번하게 발생하고 모션 추정 속도는 증가하지만 모션 필드의 품질은 다소 낮아질 수 있으며, 그 반대의 경우 상대적으로 낮은 Tdiff와 Tabs이 정의되면 추가 후보 분석이 더 자주 발생하고 모션 추정 속도는 감소하지만 모션 필드 품질은 다소 높아질 수 있다.
S906 단계에서 이중 블록의 사용이 가능하다고 판단되면, S908 단계가 진행되어 처리 대상이 후속 프레임 유닛(이 경우, 스캔 순서에 따라 현재 프레임 유닛, 즉 현재 이중 블록의 후속 이중 블록)으로 전환되고, 상술한 모션 추정 방법의 모든 단계는 후속 프레임 유닛에서 실행된다.
그러나, S906 단계에서 두 개의 단일 블록이 개별적으로 분석되어야 하는 것으로 결정되면, 제2 단일 블록(B)에 대한 후보 벡터 세트가 형성되는 S907 단계가 진행된다. 그 결과, 제2 단일 블록(B)의 각 후보 벡터에 대한 CF(MVcand B,B)값이 계산되며, CF(MVcand B,B)값이 최소인 후보 벡터가 제2 단일 블록(B)에 대한 최상의 후보 벡터로 선택된다.
즉, 본 실시예에서 S901 단계 내지 S904 단계에서 사용되는 이중 블록은 어느 하나의 단일 블록에 대한 후보 벡터 세트를 각 단일 블록에 대하여 공통으로 사용할 수 있다. 그 결과, 상대적으로 후보 벡터의 수는 줄어들고 신뢰 함수값의 계산은 적게 요구되므로, 모션 추정 속도는 향상될 수 있다. 또한, 메모리 액세스 패턴이 개선되므로, 연산 복잡성 및 전력 소모는 감소될 수 있다.
도 10은 풀 프레임 사행 스캔 순서를 사용하는 종래의 3DRS의 예를 도시한다.
종래의 사행 스캔 순서에 따르면, 이미지는 블록의 행으로 분할되고 스캔은 행 방향으로 수행된다. 이와 같은 스캔 방법은 모든 이전 블록이 의존성 트리(dependency tree)에 포함되기 때문에, 병렬화를 불가능하게 만든다.
예를 들어, 도 10에서 현재 프레임 유닛(1001)의 화살표는 현재 블록에 대해 후보 벡터가 취해진 복수의 블록을 나타낸다. 따라서 현재 프레임 유닛(1001)에 대한 처리는 프레임의 특정 블록이 이미 처리되어 있어야만 가능하다는 의존성이 존재한다.
기존의 3DRS 방식에서는 현재 프레임 유닛(1001) 다음에 오는 모든 프레임 유닛은 현재 프레임 유닛(1001)에 의존하며, 현재 프레임 유닛(1001)보다 앞선 프레임 유닛은 모두 현재 프레임 유닛(1001)보다 먼저 처리되어야 한다.
도 11은 웨이브프론트 스캔 순서를 갖는 3DRS의 예를 도시한다.
일반적인 웨이브프론트 방식은 부호화 또는 복호화하는 현재 픽쳐 또는 슬라이스 내에서 의존성이 존재하지 않는 블록들을 병렬화하기 위해 사용된다.
도 11에서 스캔 대상이 되는 구성 요소는 롤링 웨이브(rolling wave)처럼 보이는 블록들의 그룹이고, 각 블록은 행 단위가 아닌 대각선 방향으로 처리된다. 이때 각 블록에 대한 스캔은 오른쪽 위에서 왼쪽 아래 방향으로 진행된다.
예를 들어, 도 11에 도시된 것과 같이, 현재 프레임의 첫 번째 행의 첫 번째 프레임 유닛(1101)이 처리된 다음, 첫 번째 행의 첫 번째 프레임 유닛(1101)의 오른쪽에 인접한 첫 번째 행의 두 번째 프레임 유닛(1102) 및 첫 번째 행의 첫 번째 프레임 유닛(1101)의 아래쪽에 인접한 첫 번째 열의 두 번째 프레임 유닛(1103)이 첫 번째 대각선 방향(111)에 따라 순서대로 처리된다.
이후, 첫 번째 행의 세 번째 프레임 유닛(1104)으로부터 첫 번째 열의 세 번째 프레임 유닛(1105)까지 두 번째 대각선 방향(112)에 따라 순서대로 처리되고, 모든 후속 프레임 유닛은 첫 번째 대각선 방향(111) 내지 두 번째 대각선 방향(112)에 대응하는 프레임 유닛들과 유사한 방식으로 처리된다. 이 경우, 처리 종속성은 병렬 처리를 허용한다.
예를 들어, 도 11에 도시 된 바와 같이 대각선 방향의 프레임 유닛들은 서로 독립적이므로 병렬로 처리될 수 있다. 다만, 이와 같은 처리는 메모리에 대한 액세스가 매우 불연속적이어서, 필연적으로 사행(meander) 또는 래스터(raster) 스캔 순서와 관련하여 성능이 현저하게 저하될 수 있다.
도 12는 일 실시예에 따른 이중 블록의 프레임 유닛으로 분할된 프레임에 대한 스캔 순서를 도시한다.
본 실시예에서, 프레임은 통상적으로 행의 인접 프레임 유닛(예를 들어, 이중 블록)의 세트를 나타내는 집합 프레임 유닛으로 분할된다. 집합 프레임 유닛의 스캔 순서는 전술한 웨이브프론트 처리 방법의 스캔 순서와 동일할 수 있다.
예를 들어, 도 12에 도시된 것과 같이, 현재 프레임의 첫 번째 행의 첫 번째 집합 프레임 유닛(1201)이 처리된 다음, 첫 번째 행의 첫 번째 집합 프레임 유닛(1201)의 오른쪽에 인접한 첫 번째 행의 두 번째 집합 프레임 유닛(1202) 및 첫 번째 행의 첫 번째 집합 프레임 유닛(1201)의 아래쪽에 인접한 첫 번째 열의 두 번째 집합 프레임 유닛(1203)이 첫 번째 대각선 방향(121)에 따라 순서대로 처리된다.
이 경우, 도 11에서 대각선 방향의 프레임 유닛들은 서로 독립적이므로 병렬로 처리될 수 있는 것과 유사하게, 도 12의 대각선 방향의 집합 프레임 유닛들 또한 서로 독립적이므로 병렬로 처리될 수 있다.
전술한 종래의 웨이브프론트 처리 방법과 비교하여, 이 방법은 하나의 스레드 내에서 래스터 스캔 순서의 요소, 즉 좌측에서 우측으로의 다수의 프레임 유닛의 순차 처리를 허용함으로써, 메모리 액세스 패턴을 향상시킬 수 있다. 그 결과, 모션 필드 품질은 감소하지 않으나, 모션 추정 방법의 전반적인 성능은 향상될 수 있다.
도 13은 일 실시예에 따른 세 개의 이중 블록을 포함하는 집합 프레임 유닛에 대한 스캔 순서를 도시한다.
도 13을 참조하면, 세 개의 처리 스레드(1301, 1302, 1033)가 존재하며, 집합 프레임 유닛은 한 행에서 세 개의 이웃한 이중 블록을 포함한다.
각 스레드 내의 각 집합 프레임 유닛에서 이중 블록들은 순차적으로 처리되며, 메모리 액세스는 국부적인(localized) 방식으로 순차적으로 이루어진다. 따라서, 이미지의 대부분에 대한 독립적인 병렬 처리가 허용된다.
도 14는 일 실시예에 따른 집합 프레임 유닛에 대한 역방향 프레임 스캐닝 순서를 도시한다.
(상술한 도 10 내지 도 13의 프레임 유닛은 이중 블록에 해당하지만, 프레임 유닛은 단일 블록일 수도 있다.)
집합 프레임 유닛에 대한 웨이브프론트 처리 방법에서, 프레임 스캐닝의 다른 변형 예 또한 사용 가능하다.
예를 들어, 도 14는 첫 행의 첫 번째 집합 프레임 유닛(1401)으로부터 스캐닝을 시작하는 것이 아니라 마지막 행의 마지막 집합 프레임 유닛(1402)으로부터 스캐닝이 시작되는 역순 스캐닝의 다이어그램을 도시한다.
이와 같은 역순 스캐닝 방식을 기초로, 스캔 순서는 프레임마다 적절하게 변경될 수 있으며, 추정된 모션 필드의 품질은 향상될 수 있다.
구체적으로, 각 모션 필드는 이전에 추정된 모션 필드에 따라 달라지므로, 일반적으로 이전에 추정된 모든 모션 필드에 대하여 스캔 순서가 변경되면, 처음 추정되는 모션 필드를 제외한 모든 모션 필드가 향상될 수 있다.
도 15는 일 실시예에 따른 세 개의 이중 블록을 포함하는 집합 프레임 유닛에 대한 또 다른 스캔 순서를 도시한다.
도 15의 스캔 순서를 참조하면, 도 12 및 도 13에 도시된 실시예와 유사하게, 먼저 현재 프레임의 첫 번째 행의 첫 번째 집합 프레임 유닛(1501)이 처리된 다음, 첫 번째 행의 첫 번째 집합 프레임 유닛(1501)의 오른쪽에 인접한 첫 번째 행의 두 번째 집합 프레임 유닛(1502) 및 첫 번째 행의 첫 번째 집합 프레임 유닛(1501)의 아래쪽에 인접한 첫 번째 열의 두 번째 집합 프레임 유닛(1503)이 첫 번째 대각선 방향(151)에 따라 순서대로 처리된다.
이후의 처리 순서는, 도 12 및 도 13에 도시된 실시예와 달리, 첫 번째 행의 세 번째 집합 유닛(1504)으로 이어지지 않고, 첫 번째 열의 세 번째 집합 유닛(1505), 즉 첫 번째 열의 두 번째 집합 프레임 유닛(1503)의 아래쪽에 인접한 집합 프레임 유닛으로 이어진다(153).
이러한 프레임 스캐닝 순서의 변형은 프레임 내에서 훨씬 적은 홉(hop) 전환을 사용할 수 있도록 하여, 메모리 액세스를 보다 잘 국부화하여 모션 추정 성능을 향상시킬 수 있다.
도 16은 일 실시예에 따른 반 전역 모션 후보 벡터를 사용하는 복수의 프레임에 대한 3DRS의 흐름도를 도시한다.
반 전역 모션 후보 벡터를 사용하는 3DRS 에서, 현재 모션 필드로부터의 공간적 후보 벡터 및 이전 모션 필드로부터의 시간적 후보 벡터에 더하여, 후보 벡터 세트는 이전 모션 필드에서 추정된 반 전역 모션에 기초하여 유도된 추가 후보 벡터를 더 포함한다.
S1601 단계에서, 추가적인 후보 벡터를 얻기 위해, 이전 모션 필드의 2차원 히스토그램이 분석되고, 분석된 2차원 히스토그램으로부터 반 전역 모션 벡터(semi global motion vectors, SGMV)가 유도된다. 이와 같은 반 전역 모션 벡터는 2차원 히스토그램의 복수의 피크(peak)의 좌표일 수 있다.
이때 각 반 전역 모션 벡터에 대응하는 마스크가 형성될 수 있으며, 각 마스크는 프레임의 어느 부분에 모션 벡터가 존재하는지를 나타낼 수 있다.
본 개시에서, 프레임 유닛에 반 전역 모션 벡터에 상응하는 움직임이 있을 수 있다고 결정되면. 각 반 전역 모션 벡터에 대응하는 마스크가 각 프레임 유닛에서 활성화되는 것으로 가정된다.
또한, S901 단계 내지 S904 단계의 사이클을 실행할 때, 현재 프레임 유닛(단일 블록 또는 이중 블록)이 반 전역 모션 벡터의 적용 가능 마스크(applicability mask) 영역에 속하는 경우, 반 전역 모션 벡터를 기초로 현재 프레임 유닛에 대한 후보 벡터 세트에 추가적으로 포함되는 랜덤 후보 벡터가 획득될 수 있다.
따라서, 각 반 전역 모션 벡터에 대응하는 적용 가능 마스크를 통해, 현재 프레임 유닛에 대한 반 전역 모션 벡터의 존재 가능성을 식별할 수 있다.
이 경우, 랜덤 오프셋이 반 전역 모션 벡터에 더해지고, 그 결과에 따른 랜덤 후보 벡터가 후보 벡터 세트에 추가된다.
S903 단계에서, 임의의 방식으로 계산된 벡터들 사이의 거리 관점에서, 가장 가까운 반 전역 모션 벡터 후보로부터 멀리 떨어진 후보 벡터에 대해서는 추가적인 페널티가 주어질 수 있다.
페널티가 주어진 현재 후보 벡터는 페널티 함수값에 기초하여 가장 가까운 반 전역 모션 벡터와 현재 후보 벡터 사이의 거리가 감소함에 따라 감소한다.
또한, 페널티가 주어진 현재 후보 벡터는 페널티 함수값에 기초하여 가장 가까운 반 전역 모션 벡터의 마스크가 활성 상태이면 0에 도달하며, 가장 가까운 반 전역 모션 벡터의 마스크가 활성 상태가 아니면 0보다 크지만 페널티 함수값의 최대 값(VPmax)보다는 작은 값(VPmin)에 도달한다.
이와 같은 페널티 함수값의 단조(monotonic) 과정을 통해 모션 필드는 정규화(regularization)될 수 있다.
발견된 모든 전역 모션 벡터가 추가 후보 벡터로 간주되는 종래의 방식과 달리, 본 개시에서는 적용 가능 마스크가 현재 프레임 유닛의 위치와 일치할 경우, 즉 적용 가능 마스크가 활성 상태인 모션 벡터만이 추가 후보 벡터의 획득에 사용된다. 이것이 본 3DRS 방법이 "반 전역" 모션에 기초하여 추가 후보 벡터를 획득하는 것으로 지칭되는 이유이다.
도 17a 내지 도 17c는 일 실시예에 따른 반 전역 모션이 적용된 프레임을 도시한다.
도 17a를 참조하면, 라이더가 말을 타고 있는 장면을 보여주는 하나의 프레임(1700)의 일 예가 나타나 있으며, 각 프레임 유닛에 대한 이전 모션 필드의 추정된 모션 벡터가 프레임(1700) 전체에 걸쳐 도시되어있다.
본 실시예에서 카메라는 라이더와 나란히 움직이고 있기 때문에, 라이더와 말은 프레임 상에서 거의 움직이지 않고 있다. 이때, 라이더와 말의 움직임은 벡터 SGMV2 = (1,1)(즉, 벡터가 한 픽셀 오른쪽 및 한 픽셀 아래쪽 위치를 가리킴)에 해당할 수 있는 반면, 배경은 프레임 상에서 빠르게 움직이며 벡터 SGMV1 = (8,1)(즉, 벡터가 여덟 픽셀 오른쪽 및 한 픽셀 아래쪽 위치를 가리킴)에 해당할 수 있다.
벡터 SGMV1 및 SGMV2 각각에 대한 적용 가능 마스크가 도 17b의 백색 중첩 영역(1701) 및 17c의 백색 중첩 영역(1702)을 통해 나타나있다.
본 개시의 일 실시예에서, 상술한 실시예들의 통합된 3DRS 방법은 반 전역 모션을 사용하는 프레임의 확대된 웨이브프론트 이중 블록 처리와 함께 사용될 수 있다.
이와 같은 방법과 관련하여, 다시 도 16을 참조하면, S1601 단계에서 반 전역 모션이 이전 모션 필드로부터 검색되고, 각 반 전역 모션 벡터에 대한 적용 가능 마스크가 구성된다.
그 다음, S900 단계에서, 현재 프레임 유닛에 대한 후보 벡터 세트가 획득 규칙들에 기초하여 형성된다.
이후, 적용 가능 마스크들에 대응하는 추가의 반 전역 모션 벡터들 및 모션 필드의 정규화를 위한 페널티 함수값들에 기초하여, S901 단계 내지 S904 단계의 사이클이 수행된다.
현재 프레임 유닛에 대한 모든 후보 벡터가 분석되면, 현재 프레임 유닛의 각 블록에 대한 신뢰 함수값이 추정되는 S905 단계가 진행된다.
현재 프레임 유닛의 각 블록에 대한 신뢰 함수값에 기초하여, S906 단계에서 단일 블록에 대한 처리가 필요한지 결정된다.
 단일 블록에 대한 처리가 불필요한 경우(즉, 이중 블록 사용이 가능한 경우), 다음의 프레임 유닛으로의 전환이 이루어지는 S908 단계가 진행된다.
반대로, 단일 블록에 대한 처리가 필요하다면, S907 단계에서 단일 블록에 대한 처리가 수행되고, 이후 S908 단계가 진행된다.
S900 단계 내지 S908 단계는 여러 개의 스레드에서 병렬 실행될 수 있으며, 별개의 집합 프레임 유닛이 각 스레드에서 처리될 수 있다. 이때 집합 프레임 유닛에 대한 스캔은 프레임의 한 모퉁이에서 시작하여 대각선 방향으로 수행될 수 있다.
이와 같은 통합된 3DRS 방법은 본 개시의 세 가지 실시예의 모든 장점을 가지며, 품질의 저하 없이 프레임 레이트 변환에 대한 움직임 추정을 가속화할 수 있는 장점을 갖는다.
한편, 본 개시의 모션 추정 방법은 소프트웨어로 구현될 수 있으며, 저전력으로 프레임 레이트를 변환하기 위해 모바일 디바이스 상에서 실시간으로 동작할 수 있다.
특히, 본 개시의 모션 추정 방법은 15 내지 30 또는 30 내지 60 frame/sec으로의 프레임 레이트 변환을 요구하는 FHD, FHD + 및 WQHD 컨텐츠의 재생에 적용될 수 있고, 화상 통신, 온라인 회의(예를 들어, webinars) 및 프레임 레이트 변환를 사용하여 전송 채널의 손실에 대한 프레임 속도를 복원하는 경우에도 적용될 수 있다.
아래의 표 1은 종래의 3DRS 알고리즘 및 본 발명에 따른 모션 추정 방법 알고리즘의 소정의 조건에 대한 테스트 결과의 일 예를 요약한 것이다.
알고리즘 테스트 결과
시간/프레임 쌍[ms] 내부 데이터 세트의
평균 PSNR [dB]
기본 3DRS 22.96 34.73
일반적인 웨이브프론트,
단일 블록 처리,
1 스레드
31.41 34.24
일반적인 웨이브프론트,
단일 블록 처리,
2 스레드
18.15 34.24
확대된 웨이브프론트,
단일 블록 처리,
1 스레드
28.19 34.24
확대된 웨이브프론트,
단일 블록 처리,
2 스레드
15.77 34.24
확대된 웨이브프론트,
이중 블록 처리,
2 스레드
14.82 34.22
확대된 웨이브프론트,
단일 블록 처리,
2 스레드,
반 전역 모션 사용
15.91 34.61
전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.

Claims (16)

  1. 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정하는 단계;
    상기 현재 프레임 유닛이 이중 블록에 해당할 경우, 상기 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하는 단계;
    상기 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 상기 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하는 단계; 및
    계산된 상기 각 후보 벡터의 신뢰 함수값을 기초로 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 단계;를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  2. 제1항에 있어서,
    상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 단계는
    상기 후보 벡터 중 상기 제1 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제1 단일 블록의 추정된 모션 벡터로 선택하는 단계; 및
    상기 후보 벡터 중 상기 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제2 단일 블록의 추정된 모션 벡터로 선택하는 단계;를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  3. 제1항에 있어서,
    상기 후보 벡터 세트는
    공간적 후보 벡터, 시간적 후보 벡터 및 랜덤 후보 벡터 중 적어도 하나를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  4. 제1항에 있어서,
    상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계;
    상기 분석 결과에 기초하여, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계; 및
    상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정한 경우, 상기 제2 단일 블록의 추정된 모션 벡터를 다시 획득하는 단계;를 더 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  5. 제4항에 있어서,
    상기 제2 단일 블록의 추정된 모션 벡터를 다시 획득하는 단계는
    상기 제2 단일 블록에 대응하는 후보 벡터 세트를 획득하는 단계; 및
    상기 제2 단일 블록의 후보 벡터 중 상기 제2 단일 블록에 대하여 최소 신뢰 함수값을 갖는 후보 벡터를 상기 제2 단일 블록의 추정된 모션 벡터로 선택하는 단계;를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  6. 제4항에 있어서,
    상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계는
    상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값 사이의 차이의 절대값을 계산하는 단계; 및
    상기 계산된 절대값을 미리 설정된 제1 임계치와 비교하는 단계를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  7. 제6항에 있어서,
    상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계는
    상기 계산된 절대값이 상기 제1 임계값 이상인 경우, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정하는 단계를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  8. 제4항에 있어서,
    상기 제1 단일 블록의 추정된 모션 벡터의 신뢰 함수값 및 상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 분석하는 단계는
    상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값을 미리 설정된 제2 임계값과 비교하는 단계를 더 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  9. 제8항에 있어서,
    상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정할지 여부를 결정하는 단계는
    상기 제2 단일 블록의 추정된 모션 벡터의 신뢰 함수값이 상기 제2 임계값 이상인 경우, 상기 제2 단일 블록에 대한 모션 벡터를 개별적으로 추정하기로 결정하는 단계를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  10. 제1항에 있어서,
    상기 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하는 단계는
    현재 프레임에 대한 순방향 모션 필드의 추정에서, 이전 프레임 및 현재 프레임 쌍에 대해 추정된 역방향 모션 필드로부터 시간적 후보 벡터를 선택하는 단계; 및
    현재 프레임에 대한 역방향 모션 필드의 추정에서, 현재 프레임 및 후속 프레임 쌍에 대해 추정된 순방향 모션 필드로부터 시간적 후보 벡터를 선택하는 단계;를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  11. 제1항에 있어서,
    상기 모션 추정은
    프레임의 행 내의 이웃하는 프레임 유닛들의 세트를 나타내는 집합 프레임 유닛들에 대해 수행되고, 상기 집합 프레임 유닛들에 대한 스캐닝은 상기 프레임의 각 모서리 중 어느 하나의 모서리에 위치한 집합 프레임 유닛으로부터 시작하여 대각선 스캐닝 방향에 따라 수행되는
    복수의 프레임에 대한 모션 추정 방법.
  12. 제11항에 있어서,
    상기 모션 추정은
    각 집합 프레임 유닛이 개별적으로 처리되는 두 개 이상의 처리 스레드에서 동시에 수행되는
    복수의 프레임에 대한 모션 추정 방법.
  13. 제3항에 있어서,
    상기 랜덤 후보 벡터는
    상기 현재 프레임 유닛에서 적용 가능 마스크가 활성 상태일 경우, 상기 현재 프레임의 반 전역 모션 벡터에 랜덤 오프셋을 더하여 획득되는
    복수의 프레임에 대한 모션 추정 방법.
  14. 제13항에 있어서,
    상기 반 전역 모션 벡터는 상기 현재 프레임의 이전에 추정된 모션 필드의 2차원 히스토그램에 대한 분석을 통해 획득되고,
    상기 적용 가능 마스크는 상기 획득된 반 전역 모션 벡터에 대응하는 객체 움직임이 존재하는 프레임 영역에 형성되는
    복수의 프레임에 대한 모션 추정 방법.
  15. 제13항에 있어서,
    상기 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하는 단계는
    상기 현재 프레임 유닛과 상기 각 후보 벡터가 나타내는 블록 간의 MAD (mean absolute difference)를 계산하는 단계;
    상기 각 후보 벡터와 상기 반 전역 모션 벡터 사이의 거리에 기초하여 페널티 함수값을 계산하는 단계; 및
    상기 MAD 및 상기 페널티 함수값을 더하여 상기 신뢰 함수값을 획득하는 단계;를 포함하는
    복수의 프레임에 대한 모션 추정 방법.
  16. 모션 추정이 수행될 현재 프레임 유닛이 이중 블록에 해당하는지 여부를 결정하고, 상기 현재 프레임 유닛이 이중 블록에 해당할 경우, 상기 이중 블록에 포함된 제1 단일 블록에 대응하는 후보 벡터 세트를 상기 이중 블록의 후보 벡터 세트로서 획득하며, 상기 이중 블록에 포함된 제1 단일 블록 및 제2 단일 블록에 대하여, 상기 이중 블록의 후보 벡터 세트에 포함된 각 후보 벡터의 신뢰 함수값을 개별적으로 계산하고, 계산된 상기 각 후보 벡터의 신뢰 함수값을 기초로 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 획득하는 프로세서; 및
    획득된 상기 제1 단일 블록의 추정된 모션 벡터 및 상기 제2 단일 블록의 추정된 모션 벡터를 저장하는 메모리;를 포함하는
    복수의 프레임에 대한 모션 추정 장치.
KR1020180088654A 2017-08-03 2018-07-30 복수의 프레임에 대한 모션 추정 방법 및 장치 KR102496619B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/053,233 US10523961B2 (en) 2017-08-03 2018-08-02 Motion estimation method and apparatus for plurality of frames
EP18840249.9A EP3596698B1 (en) 2017-08-03 2018-08-03 Motion estimation method and apparatus for plurality of frames
PCT/KR2018/008825 WO2019027280A1 (en) 2017-08-03 2018-08-03 METHOD AND APPARATUS FOR MOTION ESTIMATING FOR A PLURALITY OF FRAMES

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2017127691A RU2656785C1 (ru) 2017-08-03 2017-08-03 Оценка движения путем трехмерного рекурсивного поиска (3drs) в реальном времени для преобразования частоты кадров (frc)
RU2017127691 2017-08-03

Publications (2)

Publication Number Publication Date
KR20190015120A true KR20190015120A (ko) 2019-02-13
KR102496619B1 KR102496619B1 (ko) 2023-02-07

Family

ID=62560000

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180088654A KR102496619B1 (ko) 2017-08-03 2018-07-30 복수의 프레임에 대한 모션 추정 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102496619B1 (ko)
RU (1) RU2656785C1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542743B (zh) * 2020-04-22 2024-07-09 瑞昱半导体股份有限公司 图像处理方法及图像处理装置
CN113160267B (zh) * 2021-05-21 2024-04-16 上海通途半导体科技有限公司 一种基于深度学习的运动矢量计算方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535746A2 (en) * 1991-09-30 1993-04-07 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US20110176613A1 (en) * 2010-01-18 2011-07-21 Mediatek Inc. Motion Prediction Method and Video Encoding Method
EP3104611A1 (en) * 2015-06-08 2016-12-14 Imagination Technologies Limited Motion estimation using collocated blocks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100525452C (zh) * 2007-05-24 2009-08-05 北京航空航天大学 用于图像稳定的频域快速亚像素全局运动估计方法
US8284839B2 (en) * 2008-06-23 2012-10-09 Mediatek Inc. Joint system for frame rate conversion and video compression
EP2446638B1 (en) * 2009-06-25 2016-12-28 Koninklijke Philips N.V. Stereoscopic image capturing method, system and camera
US8265160B2 (en) * 2009-06-29 2012-09-11 Nxp B.V. Parallel three-dimensional recursive search (3DRS) meandering algorithm
TW201345262A (zh) * 2012-04-20 2013-11-01 Novatek Microelectronics Corp 影像處理電路及影像處理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535746A2 (en) * 1991-09-30 1993-04-07 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US20110176613A1 (en) * 2010-01-18 2011-07-21 Mediatek Inc. Motion Prediction Method and Video Encoding Method
EP3104611A1 (en) * 2015-06-08 2016-12-14 Imagination Technologies Limited Motion estimation using collocated blocks

Also Published As

Publication number Publication date
RU2656785C1 (ru) 2018-06-06
KR102496619B1 (ko) 2023-02-07

Similar Documents

Publication Publication Date Title
US8018998B2 (en) Low complexity motion compensated frame interpolation method
US6380986B1 (en) Motion vector search method and apparatus
KR100870115B1 (ko) 블록정합 및 움직임 보상 보간을 이용한 영상 형성 방법
CN106254885B (zh) 数据处理系统、执行运动估计的方法
TWI382770B (zh) 視訊影像傳輸中遇到封包遺失時的有效選取方法
US8149915B1 (en) Refinement of motion vectors in hierarchical motion estimation
US20060098737A1 (en) Segment-based motion estimation
US20120250945A1 (en) Method for analyzing object motion in multi frames
CN106331723B (zh) 一种基于运动区域分割的视频帧率上变换方法及系统
EP1960967A1 (en) Motion estimation using prediction guided decimated search
KR20070088322A (ko) 움직임 벡터 산출 장치 및 움직임 벡터 산출 방법
JP6394876B2 (ja) 符号化回路、符号化方法
Kaviani et al. Frame rate upconversion using optical flow and patch-based reconstruction
EP3596698B1 (en) Motion estimation method and apparatus for plurality of frames
CN107077742B (zh) 一种图像处理装置和方法
JP2012079251A (ja) 画像処理装置及び画像処理システム
CN107483960A (zh) 一种基于空间预测的运动补偿帧率上转换方法
KR102496619B1 (ko) 복수의 프레임에 대한 모션 추정 방법 및 장치
CN109600667B (zh) 一种基于网格与帧分组的视频重定向的方法
Guo et al. Frame rate up-conversion using linear quadratic motion estimation and trilateral filtering motion smoothing
US9674503B2 (en) Stereo matching apparatus using image property
CN106303545B (zh) 用于在帧序列中执行运动估计的数据处理系统和方法
WO2016131270A1 (zh) 一种错误隐藏的方法和装置
US20150350669A1 (en) Method and apparatus for improving estimation of disparity in a stereo image pair using a hybrid recursive matching processing
KR20000045075A (ko) 움직임 추정방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant