KR102169166B1 - 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치 - Google Patents

깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치 Download PDF

Info

Publication number
KR102169166B1
KR102169166B1 KR1020190050478A KR20190050478A KR102169166B1 KR 102169166 B1 KR102169166 B1 KR 102169166B1 KR 1020190050478 A KR1020190050478 A KR 1020190050478A KR 20190050478 A KR20190050478 A KR 20190050478A KR 102169166 B1 KR102169166 B1 KR 102169166B1
Authority
KR
South Korea
Prior art keywords
block
motion estimation
search
size
search block
Prior art date
Application number
KR1020190050478A
Other languages
English (en)
Inventor
권순각
이동석
Original Assignee
동의대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동의대학교 산학협력단 filed Critical 동의대학교 산학협력단
Priority to KR1020190050478A priority Critical patent/KR102169166B1/ko
Application granted granted Critical
Publication of KR102169166B1 publication Critical patent/KR102169166B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • 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/537Motion estimation other than block-based

Landscapes

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

Abstract

본 발명의 실시예에 따른 움직임 추정 방법은 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할 단계; 상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면의 미리 설정된 제2 크기의 탐색 영역 내에서 탐색 블록을 선택하는 단계; 상기 선택된 탐색 블록에 신축을 이용하여 제1 움직임 추정을 수행하는 단계; 및 움직임 추정 정보를 부호화하는 블록 부호화 단계;를 포함하고, 상기 제1 움직임 추정을 수행하는 단계는, 상기 대상 블록 내 화소들의 깊이 값의 제1 대표값와 상기 탐색 블록 내 화소들의 깊이 값의 제2 대표값에 기초하여 신축 비율을 계산하는 단계; 상기 신축 비율에 따라 상기 탐색 블록을 신축하는 단계; 신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값을 신축비율을 이용하여 보간하는 단계; 및 상기 보간된 탐색 블록과 상기 대상 블록 사이의 움직임 추정 차신호를 계산하는 단계; 상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하는 단계;를 포함하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.

Description

깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치{Method and Device of Zoom Motion Estimation for Depth Video}
본 발명은 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치에 관한 것이다. 보다 상세하게는 본 발명은 부호화 부담을 줄이고 움직임 추정 성능을 향상시키면서 움직임 추정 방법 및 장치에 관한 것이다.
움직임 추정은 색상신호 또는 명도신호에 대하여 현재화면내의 블록과 시간방향으로 이웃한 화면 내에서 가장 가까운 블록을 찾는 것을 의미한다. 보통 블록크기가 작을수록 추정의 정확도가 커지지만 추정에 필요 되는 복잡도가 증가되는 단점이 있다.
MPEG-1,2에서는 명도신호에 대하여 수평방향으로 16화소, 수직방향으로 16화소로 블록이 구성되어 있으며, H. 264에서는 16x16, 8x8, 4x4 등의 블록크기를 가변적으로 선택할 수 있도록 하고 있다.
움직임 추정시의 평가척도로는 크게 MSE (평균제곱오차: Mean Square Error)와 MAE (평균절대오차: Mean Absolute Error)가 사용된다. 정확도는 MSE가 우수하나, 복잡도가 크기 때문에 MAE가 많이 사용되고 있다.
색상신호 또는 명도신호에 대하여 신축 움직임 추정에 있어서 복잡도를 낮추기 위한 여러 연구가 이루어져왔다. 여러 신축 비율의 참조 화면을 생성하여 신축 움직임을 추정하는 방법, 블록기반의 고속 스케일링을 이용한 확대 및 축소 움직임 추정 방법, 계산 효율, 정확도 등을 고려한 반복적 최소-자승 추정에 대한 다양한 개선방법 등이 있다. 기존 색상 영상에서 신축 움직임 추정 방법 중 여러 신축 비율의 참조 화면을 생성하여 신축 움직임을 추정하는 방법은 시간상의 각각의 참조 화면들에 대해 다양한 신축 비율로 신축한 참조 화면을 생성한다. 그 후 현재 영상의 블록에 대해 참조 화면들 중 제일 유사한 블록을 선택하여 신축 추정을 하는 방법이다. 이 방법은 신축 움직임을 추정하기 위해 각 참조 화면마다 여러 신축 비율에 대한 참조 화면을 새로 생성해야 하기 때문에 메모리 소모가 크고, 신축 움직임 추정에 있어 정확도를 높이기 위해서는 많은 신축 비율에 대해서 참조 화면이 생성되고 이를 참조하는 과정이 추가되어야 하므로 계산 복잡도가 커진다는 문제점이 있다.
카메라의 색상 정보만을 통해 신축 비율을 추정하는 방법은 정확한 신축 비율을 추정하는데 어려움이 크고, 계산 복잡도를 개선하는데도 한계가 있다. 이러한 어려움을 극복하기 대한민국등록특허공보(10-1371826)의 신축 움직임 추정장치 및 그 추정방법은 깊이 카메라를 이용하여 객체의 신축 비율을 추정하여 움직임 추정 및 움직임 보상을 하는 방법이 제안하여 신축 움직임 추정을 위한 복잡도를 개선하면서도 움직임 추정 정확도를 높이고 있다. 다만, 선행기술은 움직임 추정 차신호 계산 시 객체가 카메라 방향으로 이동함에 따라 깊이 영상 내에서 객체의 크기의 변화의 영향을 반영하고 있으나, 깊이 값으로 이루어진 화소의 값의 변화의 영향을 반영하지 못하고, 색상 영상의 부호화에 한정해서 사용된다는 한계가 있다.
또한, 탐색 블록과 대상 블록 사이의 움직임 추정 차신호를 계산하여 움직임을 추정하는 대한민국등록특허공보(10-1906173)의 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치는 움직임 추정의 복잡도를 낮추고 연산량을 감소 시켰지만 객체의 이동에 따른 깊이 값의 변동량에 따른 영향을 제거하여 움직임 추정의 오차가 발생할 가능성이 있고 화면 간 부호화 과정에서 필요한 정보가 많은 문제점이 있다.
KR 10-1371826 B1 KR 10-1906173 B1
본 발명의 목적은 객체가 카메라 방향으로 이동하거나 카메라 방향에서 멀어짐에 따른 깊이 영상 내의 객체의 크기 변화와 화소 값의 변화를 이용하여 정확하고 정밀하게 움직임을 추정할 수 있는 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치를 제공함에 있다.
또한, 본 발명의 목적은 미리 정의된 모든 신축 비율에 대해 신축 연산을 적용하여 비교하는 기존 방법과 달리 거리를 나타내는 깊이 영상내 화소를 이용하여 하나의 신축 비율을 계산함으로써 연산량과 메모리 기억량을 감소시킬 수 있는 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치를 제공함에 있다.
또한, 본 발명의 목적은 움직임 대상 경계를 포함한 블록의 신축을 이용할 경우 발생되는 부정확한 추정과 압축 효율이 낮아지는 문제를 해결한 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치를 제공함에 있다.
또한, 본 발명의 목적은 화면 부호화시 필요한 부호화 정보를 감소시킨 움직임 추정 방법 및 장치를 제공함에 있다.
본 발명의 실시예는 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할 단계; 상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면의 미리 설정된 제2 크기의 탐색 영역 내에서 탐색 블록을 선택하는 단계; 상기 선택된 탐색 블록에 신축을 이용하여 제1 움직임 추정을 수행하는 단계; 및 움직임 추정 정보를 부호화하는 블록 부호화 단계;를 포함하고, 상기 제1 움직임 추정을 수행하는 단계는, 상기 대상 블록 내 화소들의 깊이 값의 제1 대표값와 상기 탐색 블록 내 화소들의 깊이 값의 제2 대표값에 기초하여 신축 비율을 계산하는 단계; 상기 신축 비율에 따라 상기 탐색 블록을 신축하는 단계; 신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값을 신축비율을 이용하여 보간하는 단계; 및 상기 보간된 탐색 블록과 상기 대상 블록 사이의 움직임 추정 차신호를 계산하는 단계; 상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하는 단계;를 포함하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
다른 측면에서, 상기 제1 움직임 추정을 수행하는 단계는, 결정된 복수의 움직임 추정 차신호에 대해 평균절대오차 또는 평균제곱오차를 계산하는 단계; 및 상기 평균절대오차 또는 평균제곱오차가 최소값을 가지는 움직임 추정 차신호에 대응하는 대상 블록과 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율을 움직임 벡터로 결정하는 단계;를 더 포함하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
또 다른 측면에서, 상기 신축 비율은
Figure 112019044486909-pat00001
을 충족하고, X는 기 설정된 상수인 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
또 다른 측면에서, 상기 신축 비율에 따라 상기 탐색 블록을 신축하는 단계는, 상기 탐색 블록의 가로 및 세로 각각의 크기를 상기 신축 비율로 확대 또는 축소하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
또 다른 측면에서, 상기 탐색 블록 선택 후 상기 움직임 추정 대상의 경계를 포함하는지 판단하는 단계; 상기 경계를 포함하면 상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계;를 포함하고, 상기 블록 부호화 단계는 상기 제2 움직임 추정을 수행하면 상기 제2 움직임 추정에 따른 정보를 부호화하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
또 다른 측면에서, 상기 탐색 블록 선택 후 상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계; 상기 제1 움직임 추정에 따른 상기 탐색 블록 간 비용을 계산하는 단계; 상기 제2 움직임 추정에 따른 상기 탐색 블록 간 비용을 계산하는 단계; 및 더 낮은 비용의 움직임 추정을 선택하는 단계;를 더 포함하고, 상기 블록 부호화 단계는 선택된 움직임 추정에 따른 정보를 부호화하는 깊이 영상에서 신축을 이용한 움직임 추정 방법을 제공할 수 있다.
또 다른 측면에서, 적어도 하나의 메모리; 및 적어도 하나의 프로세서;를 포함하고, 상기 적어도 하나의 프로세서는 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할하고, 상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면의 미리 설정된 제2 크기의 탐색 영역 내에서 탐색 블록을 선택하고, 상기 선택된 탐색 블록에 신축을 이용하여 제1 움직임 추정을 수행하고, 움직임 추정 정보를 부호화하는 블록 부호화 수행을 하고, 상기 제1 움직임 추정은, 상기 적어도 하나의 프로세서가 상기 대상 블록 내 화소들의 깊이 값의 제1 평균치와 상기 탐색 블록 내 화소들의 깊이 값의 제2 평균치에 기초하여 신축 비율을 계산하고, 상기 신축 비율에 따라 상기 탐색 블록을 신축하고, 상기 신축된 탐색 블록에 제1 블록 보간을 수행하여 상기 신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값을 신축비율을 이용하여 보간하고, 상기 보간된 탐색 블록과 상기 대상 블록 사이의 움직임 추정 차신호를 계산하고, 상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하는 깊이 영상에서 신축을 이용한 움직임 추정 장치를 제공할 수 있다.
또 다른 측면에서, 상기 제1 움직임 추정은, 상기 적어도 하나의 프로세서가 결정된 복수의 움직임 추정 차신호에 대해 평균절대오차 또는 평균제곱오차를 계산하고, 상기 평균절대오차 또는 평균제곱오차가 최소값을 가지는 움직임 추정 차신호에 대응하는 대상 블록과 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율을 움직임 벡터로 결정하도록 구성되는 깊이 영상에서 신축을 이용한 움직임 추정 장치를 제공할 수 있다.
또 다른 측면에서, 상기 프로세서는, 상기 탐색 블록 선택 후 상기 움직임 추정 대상의 경계를 포함하는지 판단하고, 상기 경계를 포함하면 상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하고, 상기 블록 부호화 수행은 상기 프로세서가 상기 제2 움직임 추정을 수행하면 상기 제2 움직임 추정에 따른 정보를 부호화하는 깊이 영상에서 신축을 이용한 움직임 추정 장치를 제공할 수 있다.
또 다른 측면에서, 상기 프로세서는, 상기 탐색 블록 선택 후 상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하고, 상기 제1 움직임 추정에 따른 상기 탐색 블록 간 비용을 계산하고, 상기 제2 움직임 추정에 따른 상기 탐색 블록 간 비용을 계산하고, 더 낮은 비용의 움직임 추정을 선택하고, 상기 블록 부호화 수행은 상기 프로세서가 선택된 움직임 추정에 따른 정보를 부호화하는 깊이 영상에서 신축을 이용한 움직임 추정 장치를 제공할 수 있다.
또 다른 측면에서, 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하기 위해 상기 프로세서에 의해 실행가능하고, 상기 동작들은, 현재 깊이 화면을 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할하고, 상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면의 미리 설정된 제2 크기의 탐색 영역 내에서 탐색 블록을 선택하고, 상기 대상 블록 내 화소들의 깊이 값의 제1 평균치와 상기 탐색 블록 내 화소들의 깊이 값의 제2 평균치에 기초하여 신축 비율을 계산하고, 상기 신축 비율에 따라 상기 탐색 블록을 신축하고, 상기 신축된 탐색 블록에 제1 블록 보간을 수행하여 상기 신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값을 신축비율을 이용하여 보간하고, 상기 보간된 탐색 블록과 상기 대상 블록 사이의 움직임 추정 차신호를 계산하고, 상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하고, 결정된 복수의 움직임 추정 차신호에 대해 평균절대오차 또는 평균제곱오차를 계산하고, 상기 평균절대오차 또는 평균제곱오차가 최소값을 가지는 움직임 추정 차신호에 대응하는 대상 블록과 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율을 움직임 벡터로 결정하도록 구성하는 것을 포함하는 비일시적 컴퓨터 판독가능 매체를 제공할 수 있다.
본 발명의 실시예는 객체의 이동에 따른 크기의 영향과 깊이 값의 변화를 이용하여 정확하고 정밀한 움직임 추정을 향상시킬 수 있다.
또한, 본 발명의 실시예는 움직임 대상 경계를 포함한 블록에서도 정확한 움직임 추정을 할 수 있고 압축 효율이 높다.
또한, 본 발명의 실시예는 탐색 영역 내의 탐색 블록과 대상 블록 사이의 움직임 추정 차신호를 계산하므로 움직임 추정의 복잡도를 낮추고 연산량을 감소시킬 수 있다.
또한, 본 발명의 실시예는 화면 부호화시 필요한 부호화 정보를 감소시킬 수 있다.
도 1은 본 발명의 실시예에 따른 깊이 영상에서 신축을 이용하여 움직임을 추정할 수 있도록 한 움직임 추정 장치를 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 움직임 추정 방법에 대한 순서도이다.
도 3은 대상 블록이 표시된 현재 깊이 화면과 탐색 영역과 신축이 적용된 탐색 블록이 표시된 참조 깊이 화면에 대한 예시도이다.
도 4 일 실시예에 따른 신축이 적용된 탐색 블록을 현재 블록의 크기로 보간한 모습의 예시도이다.
도 5는 일 실시예에 따른 신축이 적용된 탐색 블록의 크기 및 탐색 블록내 화소들의 깊이 값을 보간한 모습의 예시도이다.
도 6은 본 발명의 다른 실시예에 따른 움직임 추정 방법에 대한 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른 움직임 추정 방법에 대한 순서도이다.
도 8은 본 발명의 실시예에 따른 움직임 추정의 평가척도인 평균제곱오값의 비교예이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시예에 따른 깊이 영상에서 신축을 이용하여 움직임을 추정할 수 있도록 한 움직임 추정 장치를 도시하는 블록도이다.
움직임 추정 장치(100)는 영상 데이터를 데이터수신장치(200)로 제공할 수 있다.
움직임 추정 장치(100)와 데이터수신장치(200)는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화기 핸드셋들, 이른바 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 매우 다양한 디바이스들 중 임의의 것을 포함할 수도 있다.
일부 구현예에서는, 움직임 추정 장치(100)와 데이터수신장치(200)는 무선 통신을 위한 구성(10)이 갖추어질 수 있다.
또한, 데이터수신장치(200)는 영상 처리된 영상 데이터를 컴퓨터 판독 가능 매체를 통해 수신할 수도 있다.
컴퓨터 판독 가능 매체는 움직임 추정 장치(100)로부터 영상처리된 영상 데이터를 데이터수신장치(200)로 이동시킬 수 있는 임의 유형의 매체 또는 디바이스를 포함할 수 있다. 일 예로, 컴퓨터 판독 가능 매체는 움직임 추정 장치(100)가 영상 데이터를 데이터수신장치(200)로 직접 실시간으로 송신하는 것을 가능하게 하는 통신 매체, 이를테면 송신 채널을 포함할 수 있다.
영상 처리된 영상 데이터는 통신 표준, 이를테면 무선 통신 프로토콜에 따라 변조되고 데이터수신장치(200)로 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를테면 라디오 주파수 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 패킷 기반 네트워크, 이를테면 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 움직임 추정 장치(100)로부터 데이터수신장치(200)로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 몇몇 예들에서 영상 처리된 영상 데이터가 출력 인터페이스(130)로부터 컴퓨터 판독 가능 저장 매체, 이를 테면 비일시적(non-transitory) 컴퓨터 판독가능 저장 매체, 즉, 데이터 저장 디바이스로 출력될 수도 있다. 마찬가지로 영상 데이터는 데이터수신장치(200)의 입력 인터페이스(230)에 의해 저장 디바이스로부터 엑세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 영상 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산형 또는 국부적으로 액세스되는 비일시적 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는 움직임 추정 장치(100)에 의해 생성된 영상 데이터를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 해당할 수도 있다.
데이터수신장치(200)는 저장 디바이스로부터의 저장된 영상 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다.
도 1의 예에서 움직임 추정 장치(100)는 영상 소스(110) 및 영상처리부(120)를 포함할 수 있다. 또한, 움직임 추정 장치(100)는 출력 인터페이스(130)를 더 포함할 수 있다.
데이터수신장치(200)는 입력 인터페이스(230) 및 데이터처리부(220)를 포함할 수 있다.
다른 예에서 움직임 추정 장치(100)와 데이터처리부(220)는 다른 컴포넌트들을 포함할 수 있다.
예를 들어 움직임 추정 장치(100)는 외부 비디오 소스, 이를테면 외부 카메라로부터 영상을 수신할 수 있고, 외부 카메라는 깊이 영상(depth image)을 생성하는 깊이 영상 촬영 디바이스가 될 수 있다.
움직임 추정 장치(100)의 영상 소스(110)는 깊이 영상 촬영 디바이스, 이를테면 카메라, 이전에 촬영된 깊이 영상을 포함하는 아카이브 (archive), 및/또는 깊이 영상 콘텐츠 제공자로부터의 깊이 영상을 수신하는 인터페이스를 포함할 수도 있다.
일부 구현예에서 깊이 영상 촬영 디바이스는 장면의 깊이 정보를 예를 들어 mm 단위의 16비트의 정수형으로 표현한 깊이 영상으로 제공할 수 있다. 깊이 정보를 표현하기 위한 비트수는 16비트에 제한되는 것은 아니고 변경될 수 있으며, 또한 정수형으로 한정되지 않고 실수형으로 제공될 수 있다. 깊이 영상 촬영 디바이스는 적외선 등을 이용하여 깊이 영상 촬영 디바이스로부터 객체 및 배경까지의 거리를 측정하여 거리에 비례 또는 반비례하는 값을 갖는 깊이 영상을 제공할 수 있다.
깊이 영상의 화소 값은 예를 들어, RGB의 색상 정보가 아닌 일 예로 mm 단위(이에 한정하는 것은 아님)의 정수로 된 깊이 정보가 될 수 있다.
움직임 추정 장치(100)와 데이터수신장치(200) 각각은 하나 이상의 메모리와 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 개별 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 그것들의 임의의 조합과 같은 다양한 형태로 구성될 수 있다.
메모리는 컴퓨터 판독가능 명령들 또는 프로세서 판독가능 명령들과 같은 명령들(예를 들어, 실행가능 명령들)을 포함한다. 명령들은 하나 이상의 프로세서들 각각에 의해서와 같이 컴퓨터에 의해 실행가능한 하나 이상의 명령어들을 포함할 수도 있다.
예를 들어 하나 이상의 명령들은 하나 이상의 프로세서들로 하여금 깊이 영상의 움직임 벡터를 결정하고 깊이 영상을 부호화하기 위해 깊이 영상을 프로세싱하는 것을 포함하는 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능 할 수도 있다.
상세하게는, 영상처리부(120)는 명령어들을 저장하는 하나 이상의 메모리(121)와 상기 명령어들을 실행하는 적어도 하나의 프로세서(122)를 포함할 수 있다.
영상처리부(120)의 프로세서(122)는 깊이 영상의 움직임 벡터를 결정하기 위한 기법들이 적용되도록 구성될 수 있다.
일부 구현예에서는, 영상처리부(120)의 프로세서(122)는 깊이 영상을 부호화하기 위한 기법들이 적용되도록 구성될 수 있다.
다른 구현예에서는 영상처리부(120)의 프로세서(122)는 깊이 영상을 부호화 및 복호화하는 기법이 적용되도록 구성될 수도 있다.
데이터처리부(220)는 영상처리부(120)로부터의 영상 데이터를 외부 장치로 전송, 디스플레이, 분석 등을 수행할 수 있도록 구성될 수 있다.
일부 구현예에서는, 데이터처리부(220)는 영상처리부(120)로부터의 부호화된 영상 데이터를 복호화할 수 있도록 구성될 수도 있다.
도 1에 도시되지 않았지만, 몇몇 실시예에서, 움직임 추정 장치(100)와 데이터처리장치는 통합된 장치가 될 수 있다. 이를테면 움직임 추정 장치(100)는 깊이 영상을 부호화하고, 부호화된 영상 데이터를 복호화할 수 있도록 구성될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 움직임 추정 방법에 대한 순서도이고, 도 3은 대상 블록이 표시된 현재 깊이 화면과 탐색 영역과 신축이 적용된 탐색 블록이 표시된 참조 깊이 화면에 대한 예시도이고, 도 4 일 실시예에 따른 신축이 적용된 탐색 블록을 현재 블록의 크기로 보간한 모습의 예시도이고, 도 5는 일 실시예에 따른 신축이 적용된 탐색 블록의 크기 및 탐색 블록내 화소들의 깊이 값을 보간한 모습의 예시도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 움직임 추정 방법은, 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S110), 참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S120), 현재 깊이 화면의 대상 블록과 탐색 블록 각각의 깊이 값의 대표값을 계산하는 블록 내 화소들의 깊이 값의 대표값을 계산 단계(S130), 대상 블록의 대표값과 탐색 블록의 대표값을 이용하여 신축 비율을 계산하는 신축 비율 계산 단계(S140), 계산된 신축 비율을 이용하여 탐색 블록의 크기를 신축하는 탐색 블록 신축 단계(S150), 탐색 블록의 크기와 탐색 블록 내 화소들의 깊이 값을 보간하는 단계(S160), 대상 블록과 탐색 블록의 차신호를 계산하여 움직임 추정 차신호를 결정하는 단계(S170), 대상 블록에 대한 움직임 추정 차신호의 최소값을 고려하여 탐색 블록의 좌표와 신축 비율을 대상 블록의 움직임 벡터로 결정하는 대상 블록 움직임 벡터 결정 단계(S180) 및 대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S190)를 포함할 수 있다.
본 발명의 일 실시예에 따른 움직임 추정 방법의 각 단계를 보다 상세하게 설명한다.
현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S110).
움직임 추정 장치(100)의 프로세서(122)는 현재의 깊이 영상에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 블록으로 분할할 수 있다.
예를 들어 깊이 영상은 m*n의 블록 단위로 분할될 수 있다. 복수의 블록 각각은 m*n(m, n은 자연수) 화소로 이루어진 영역으로 정의할 수 있다.
이를테면 m*n의 블록은 8*8화소나 16*16화소로 이루어진 영역으로 정의할 수 있고 해상도가 증가하면 기본 단위는 32*32나 64*64 화소로 이루어진 영역으로 정의할 수도 있다. 또한, 프로세서(122)는 깊이 영상을 2개 이상의 크기 단위를 통해 깊이 영상을 분할할 수도 있다. 예를 들어, 프로세서(122)는 8*8의 블록과 16*16의 블록으로 깊이 영상을 분할할 수 있다.
또한, 여기서의 미리 설정된 제1 크기는 서로 반비례하는 정확도와 복잡도를 고려하여 미리 결정될 수 있다.
예를 들어 블록의 크기가 작을수록 움직임 추정의 정확도가 증가하지만 블록의 수가 많아져 추정에 요구되는 연산의 복잡도가 증가하고 움직임 벡터의 정보가 증가한다. 따라서 정확도와 복잡도를 고려하여 블록의 제1 크기를 설정할 수 있다.
또한, 프로세서(122)는 현재 깊이 화면을 복수의 블록으로 분할하고 분할된 각 블록의 위치 및 화소 내의 깊이 값의 정보를 메모리(121)에 저장할 수 있다.
참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S120).
움직임 추정 장치(100)의 프로세서(122)는 현재 깊이 화면의 이전 프레임의 깊이 영상 또는 현재 깊이 화면의 다음 프레임의 깊이 영상인 참조 깊이 화면의 미리 설정된 제2 크기의 탐색 영역 내에서 전술한 미리 설정된 제1 크기의 탐색 블록을 선택할 수 있다. 여기서의 제2 크기의 탐색 영역은 M*N(M>m, N>n, M 및 N은 자연수)의 크기가 될 수 있다.
또한, 탐색 영역의 기준 점은 현재 깊이 화면의 복수의 블록 중에서 움직임 추정 대상인 대상 블록의 위치와 공간상으로 동일한 위치가 될 수 있다. 즉, 참조 깊이 화면 내에서 대상 블록의 위치와 동일한 위치가 될 수 있다.
또한, 프로세서(122)는 기준 점을 중심으로 제2 크기의 탐색 영역에 있는 제1 크기의 탐색 블록을 선택할 수 있다.
또한, 탐색 영역 내의 모든 블록들 각각을 탐색 블록으로 하여 각 탐색 블록에 대해 이하의 동작이 수행될 수 있다.
또한, 프로세서(122)는 탐색 블록의 위치 및 화소 내의 깊이 값의 정보를 메모리(121)에 저장할 수 있다.
현재 깊이 화면의 대상 블록과 탐색 블록 각각의 깊이 값의 대표값을 계산하는 블록 내 화소들의 깊이 값의 대표값을 계산 단계(S130).
프로세서(122)는 대상 블록 내의 화소들의 깊이 값들의 제1 대표값(dcur)과 탐색 블록 내의 화소들의 깊이 값들의 제2 대표값(dref)를 연산할 수 있다. 일 예로, 제1 대표값(dcur)은 대상 블록 내의 화소들의 깊이 값들의 평균값이고, 제2 대표값(dref)은 탐색 블록 내의 화소들의 깊이 값들의 평균값일 수 있다. 다른 예로, 제1 대표값(dcur)은 대상 블록 내의 화소들의 깊이 값들의 최빈값이고, 제2 대표값(dref)은 탐색 블록 내의 화소들의 깊이 값들의 최빈값일 수 있다.
일 예로, 객체가 깊이 영상 촬영 디바이스와 가까워지는 경우 참조 깊이 화면 내의 객체의 크기는 현재 깊이 화면의 객체의 크기보다 크게 나타나고, 해당 객체에 대응하는 화소들의 깊이 값은 더 작은 값을 가지게 된다. 따라서 제1 대표값(dcur)은 제2 대표값(dref)보다 큰 값이 될 수 있다.
이와 달리, 객체가 깊이 영상 촬영 디바이스로부터 멀어지는 경우 참조 깊이 화면 내의 객체의 크기는 현재 깊이 화면의 객체의 크기보다 작게 나타나고, 해당 객체에 대응하는 화소들의 깊이 값은 더 큰 값을 가지게 된다. 따라서 제1 대표값(dcur)은 제2 대표값(dref)보다 작은 값이 될 수 있다.
또한, 프로세서(122)는 계산된 제1 및 제2 대표값(dcur, dref)를 메모리(121)에 저장할 수 있다.
대상 블록의 평균치와 탐색 블록의 대표값을 이용하여 신축 비율을 계산하는 신축 비율 계산 단계(S140).
프로세서(122)는 제1 및 제2 대표값(dcur, dref)를 이용하여 수학식 1을 충족하는 신축 비율(S)을 연산할 수 있다.
[수학식 1]
Figure 112019044486909-pat00002
수학식 1에서 x는 깊이 영상 촬영 디바이스의 초점에 따라서 미리 결정되는 상수 값이다. 일 예로, x는 깊이 카메라의 왜곡으로 인해 0.9일 수 있다.
또한, 프로세서(122)는 계산된 신축 비율(S)을 메모리(121)에 저장할 수 있다.
계산된 신축 비율을 이용하여 탐색 블록의 크기를 신축하는 탐색 블록 신축 단계(S150).
프로세서(122)는 계산된 신축 비율(S)을 이용하여 탐색 블록의 크기를 신축할 수 있다. 즉, 프로세서(122)는 탐색 블록의 크기를 대상 블록의 크기인 제 1 크기가 아닌, 제1 크기의 가로와 세로 모두 신축 비율(S)를 곱한 (S*m)*(S*n) 크기로 탐색 블록 크기를 가지는 블록으로 탐색 블록을 재설정을 함으로써 탐색 블록을 신축할 수 있다.
예를 들어, 참조 깊이 화면에서의 객체가 현재 깊이 화면에서의 객체보다 깊이 영상 촬영 디바이스에 더 가까운 경우 탐색 블록 내의 화소들의 깊이 값의 평균이 대상 블록 내의 깊이 값의 평균보다 작으므로 dcur>dref 관계가 되어 신축 비율(S)은 1보다 커지게 된다. 따라서 탐색 블록은 크기가 확대된 블록으로 재결정된다.
또한, 프로세서(122)는 확대된 탐색 블록에 속하는 화소들의 위치 정보와 깊이 값의 정보를 메모리(121)에 저장할 수 있다.
탐색 블록의 크기와 탐색 블록 내 화소들의 깊이 값을 보간하는 단계(S160).
도 4를 참조하면, 프로세서(122)는 신축된 탐색 블록에 대해 선형 보간, 쌍선형 보간, 삼차 보간 등의 보간법을 이용하여 신축된 탐색 블록의 크기(sm * sn)를 대상 블록의 제1 크기(m*n)와 일치되도록 한다. 보간법은 블록의 크기를 조절할 수 있는 보간(interpolation)이라면 어떠한 보간법이라도 적용될 수 있고, 특정 보간법에 한정하는 것은 아니다. 또한, 프로세서(1220)는 신축된 탐색 블록의 크기를 조절한 후 탐색 블록 내 화소들의 깊이 값을 신축비율을 이용하여 보간할 수 있다. 일 예로, 도 5를 참조하면, 프로세서(122)는 탐색 블록(참조 블록)의 크기를 대상 블록(현재 블록)의 크기로 조절한 후 크기가 조절된 탐색 블록(참조 블록) 내 화소들의 깊이 값을 신축 비율(S)을 곱함으로써 신축할 수 있다. 따라서, 보간된 탐색 블록(참조 블록)은 탐색 블록(현재 블록)의 크기와 화소들의 깊이 값이 유사해진다.
대상 블록과 탐색 블록의 차신호를 계산하여 움직임 추정 차신호를 결정하는 단계(S170).
프로세서(122)는 크기가 서로 일치하고 화소들의 깊이 값이 유사해진 탐색 블록과 대상 블록의 차 신호를 계산하여 움직임 추정 차신호를 결정하고, 계산된 차 신호에 대해 MAE(평균절대오차: Mean Absolute Error) 또는 MSE(평균제곱오차: Mean Square Error) 중 어느 하나를 계산한다.
또한, 프로세서(122)는 탐색 영역 내의 모든 블록들 각각에 대해 전술한 과정에 따라 탐색 블록과 대상 블록의 차 신호를 계산하고, 계산된 차 신호에 대해 MAE 또는 MSE 중 어느 하나를 계산한다.
대상 블록에 대한 움직임 추정 차신호의 최소값을 고려하여 탐색 블록의 좌표와 신축 비율을 대상 블록의 움직임 벡터로 결정하는 대상 블록 움직임 벡터 결정 단계(S180).
프로세서(122)는 계산된 MAE(또는 MSE)가 최소값을 가지는 탐색 블록을 선택하고, 대상 블록과 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율(S)을 움직임 벡터로 결정할 수 있다.
대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S190).
프로세서(122)는 탐색 블록과 참조 블록의 움직임 추정 차신호 최소값, 움직임 벡터, 신축 비율(S)을 부호화할 수 있다. 일 예로, 프로세서(122)는 움직임 벡터를 기존 동영상 부호화 표준에 따른 방법을 이용하여 압축할 수 있다. 프로세서(122)는 신축 비율(S)에서 1을 뺀 값에 대해 소수점 첫째자리까지 부호화 할 수 있다. 부호화 방법은 허프만 부호화, 산술 부호화를 사용할 수 있고 이에 제한되는 것은 아니다. 예를 들어, S=1.3일 경우, (1.3-1)*10-3을 부호화 할 수 있다.
따라서, 본 발명의 일 실시예는 객체의 이동에 따른 크기의 영향과 깊이 값의 변화를 이용하여 정확하고 정밀한 움직임 추정을 향상시킬 수 있다. 또한, 본 발명의 일 실시예는 탐색 블록에 대해서만 신축 연산을 적용함으로써 연산량과 메모리 기억량을 감소시킬 수 있다. 또한, 본 발명의 일 실시예는 탐색 영역 내의 탐색 블록과 대상 블록 사이의 움직임 추정 차신호를 계산하므로 움직임 추정의 복잡도를 낮추고 연산량을 감소시킬 수 있다. 또한, 본 발명의 일 실시예는 화면 부호화시 필요한 부호화 정보를 감소시킬 수 있다.
도 6은 본 발명의 다른 실시예에 따른 움직임 추정 방법에 대한 순서도이다.
도 6을 참조하면, 본 발명의 다른 실시예에 따른 움직임 추정 방법은, 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S210), 참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S220), 움직임 추정 대상의 경계를 포함하는지 판단하는 단계(S230), 경계를 포함하지 않으면 신축을 이용한 제1 움직임 추정을 수행하는 단계(S240, S250), 경계를 포함하면 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계(S240, S260) 및 대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S270)를 포함할 수 있다.
본 발명의 다른 실시예에 따른 움직임 추정 방법의 각 단계를 보다 상세하게 설명한다.
현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S210).
프로세서(122)는 도 2의 일 실시예에 따른 움직임 추정 방법의 블록 분할 단계(S110)와 동일한 동작을 수행할 수 있다.
참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S220) .
프로세서(122)는 도 2의 일 실시예에 따른 움직임 추정 방법의 탐색 블록 선택 단계(S120)와 동일한 동작을 수행할 수 있다.
탐색 블록 선택 후 움직임 추정 대상의 경계를 포함하는지 판단하는 단계(S230).
프로세서(122)는 선택된 탐색 블록에 움직임 추정 대상의 경계를 포함하는지 판단할 수 있다. 즉, 프로세서(122)는 선택된 탐색 블록에 움직임 추정 대상이 아닌 배경 또는 움직임 추정 대상이 아닌 대상이 포함되었는지 판단할 수 있다. 예를 들어, 프로세서(1220)는 탐색 블록 내의 움직임 추정 대상에 해당되는 화소의 깊이값을 기준으로 인접한 화소의 깊이값 들을 비교하여 인접한 화소간 깊이 값의 차이가 임계값 이상이면 경계가 포함된 것으로 판단할 수 있다. 탐색 블록에 경계 유무를 판단하는 이유는 움직임 추정대상의 경계를 포함하는 대상블록의 대표값이 정확하게 구해지지 않을 수 있어서 잘못된 탐색 블록을 참조할 수 있고 신축 비율이 정확하게 계산되지 않아 압축 효율이 낮아지는 문제가 발생하기 때문이다.
경계를 포함하지 않으면 신축을 이용한 제1 움직임 추정을 수행하는 단계(S240, S250).
프로세서(122)는 탐색 블록 내 경계를 포함하지 않다고 판단하면 제1 움직임 추정을 수행할 수 있다. 제1 움직임 추정은 도 2의 일 실시예에 따른 움직임 추정 방법의 대표값 계산 단계(S130), 신축 비율 계산 단계(S140), 탐색 블록 신축 단계(S150), 블록 보간 단계(S160), 움직임 추정 차신호 결정 단계(S170) 및 움직임 벡터 결정 단계(S190)를 포함하여 동일한 동작을 수행 할 수 있다.
경계를 포함하면 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계(S240, S260).
프로세서(122)는 탐색 블록 내 경계를 포함한다고 판단하면 제2 움직임 추정을 수행할 수 있다. 제2 움직임 추정은 제1 움직임 추정과 달리 신축을 적용하지 않고 대상 블록과 참조 블록과의 비교를 통해 움직임 추정 대상의 움직임을 추정하는 기존의 기술일 수 있다. 또한, 제2 움직임 추정은 기좀 움직임 추정 방법일 수 있다. 기존 움직임 추정 방법으로는 예시적으로, 시간축 방향으로 나열된 영상열의 상관성을 이용한 부호화를 화면간 예측 부호화 (interframe predictive coding), 움직임 보상 예측 (motion compensated prediction), 화소 반복법 (PRA: Pel Recursive Algorithm), 블록 정합법 (BMA: Block Matching Algorithm), 중첩 블록 움직임 보상(OBMC: Overlapped Block Motion Compensation) 등 다양한 방법이 있을 수 있으며, 표준화된 압축 방식에서 적용되는 움직임 추정 방법이 적용될 수도 있다. 다만, 상술한 예시에 제한되는 것은 아니다.
대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S270).
프로세서(122)는 S250의 제1 움직임 추정을 수행한 경우 도 2의 일 실시예에 따른 움직임 추정 방법의 블록 부호화 단계(S190)와 동일한 동작을 수행하고, S260의 제2 움직임 추정을 수행한 경우 제2 움직임 추정 수행에 따라 생성된 움직임 추정 정보를 부호화할 수 있다.
따라서, 본 발명의 다른 실시예는 객체의 이동에 따른 크기의 영향과 깊이 값의 변화를 이용하여 정확하고 정밀한 움직임 추정을 향상시킬 수 있다. 또한, 본 발명의 다른 실시예는 탐색 블록에 대해서만 신축 연산을 적용함으로써 연산량과 메모리 기억량을 감소시킬 수 있다. 또한, 본 발명의 다른 실시예는 움직임 대상 경계를 포함한 블록에서도 정확한 움직임 추정을 할 수 있고 압축 효율이 높다. 또한, 본 발명의 다른 실시예는 탐색 영역 내의 탐색 블록과 대상 블록 사이의 움직임 추정 차신호를 계산하므로 움직임 추정의 복잡도를 낮추고 연산량을 감소시킬 수 있다. 또한, 본 발명의 다른 실시예는 화면 부호화시 필요한 부호화 정보를 감소시킬 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 움직임 추정 방법에 대한 순서도이다.
도 7을 참조하면, 본 발명의 또 다른 실시예에 따른 움직임 추정 방법은, 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S310), 참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S320), 신축을 이용한 제1 움직임 추정을 수행하는 단계(S330), 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계(S340), 신축을 이용한 제1 움직임 추정에 따른 탐색 블록간 비용 계산 단계(S350), 신축을 이용하지 않는 제2 움직임 추정에 따른 탐색 블록간 비용 계산 단계(S360), 더 낮은 비용의 움직임 추정 정보 선택(S370), 대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S380)를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 움직임 추정 방법의 각 단계를 보다 상세하게 설명한다.
현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 크기로 분할하는 현재 깊이 화면의 블록 분할 단계(S310).
프로세서(122)는 도 2의 일 실시예에 따른 움직임 추정 방법의 블록 분할 단계(S110)와 동일한 동작을 수행할 수 있다.
참조 깊이 화면의 탐색 영역 내에서 미리 설정된 크기의 탐색 블록을 선택하는 탐색 블록 선택 단계(S320).
프로세서(122)는 도 2의 일 실시예에 따른 움직임 추정 방법의 탐색 블록 선택 단계(S120)와 동일한 동작을 수행할 수 있다.
신축을 이용한 제1 움직임 추정을 수행하는 단계(S330).
프로세서(122)는 제1 움직임 추정을 수행하여 도 2의 일 실시예에 따른 움직임 추정 방법의 대표값 계산 단계(S130), 신축 비율 계산 단계(S140), 탐색 블록 신축 단계(S150), 블록 보간 단계(S160), 움직임 추정 차신호 결정 단계(S170) 및 움직임 벡터 결정 단계(S190)를 포함하여 동일한 동작을 수행 할 수 있다.
신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계(S340).
프로세서(122)는 제2 움직임 추정을 수행하여 제1 움직임 추정과 달리 신축을 적용하지 않고 대상 블록과 참조 블록과의 비교를 통해 움직임 추정 대상의 움직임을 추정할 수 있다. 제2 움직임 추정은 제1 움직임 추정과 달리 신축을 적용하지 않고 대상 블록과 참조 블록과의 비교를 통해 움직임 추정 대상의 움직임을 추정하는 기존의 기술일 수 있다. 또한, 제2 움직임 추정은 기좀 움직임 추정 방법일 수 있다. 기존 움직임 추정 방법으로는 예시적으로, 시간축 방향으로 나열된 영상열의 상관성을 이용한 부호화를 화면간 예측 부호화 (interframe predictive coding), 움직임 보상 예측 (motion compensated prediction), 화소 반복법 (PRA: Pel Recursive Algorithm), 블록 정합법 (BMA: Block Matching Algorithm), 중첩 블록 움직임 보상(OBMC: Overlapped Block Motion Compensation) 등 다양한 방법이 있을 수 있으며, 표준화된 압축 방식에서 적용되는 움직임 추정 방법이 적용될 수도 있다. 다만, 상술한 예시에 제한되는 것은 아니다.
신축을 이용한 제1 움직임 추정에 따른 탐색 블록간 비용 계산 단계(S350).
프로세서(122)는 제1 움직임 추정에 의해 생성된 탐색 블록 간에 유사도 측정인 SAD(Sum of Absolute Differences) 또는 SSD(Sum of Squared Difference)의 결과를 비용(Loss)으로 할 수 있다.
신축을 이용하지 않는 제2 움직임 추정에 따른 탐색 블록간 비용 계산 단계(S360).
프로세서(122)는 제2 움직임 추정에 의해 생성된 탐색 블록 간에 유사도 측정인 SAD(Sum of Absolute Differences) 또는 SSD(Sum of Squared Difference)의 결과를 비용(Loss)으로 할 수 있다.
더 낮은 비용의 움직임 추정 정보 선택(S370).
프로세서(122)는 제1 움직임 추정에 따른 탐색 블록간 비용과 제2 움직임 추정에 따른 탐색 블록간 비용을 비교하여 더 낮은 비용에 해당하는 움직임 추정 방법을 선택할 수 있다. 즉, 프로세서(122)는 유사도 측정의 비용이 낮을수록 성능이 우수한 것으로 판단할 수 있다. 신축을 이용한 제1 움직임 추정 수행 단계가 종래 기술에 해당하는 제2 움직임 추정 수행 단계 보다 성능이 떨어지는 경우는 움직임 추정대상의 경계를 포함하는 경우이다. 움직임 추정 대상의 경계를 포함하면 대상블록의 대표값이 정확하게 구해지지 않을 수 있어서 잘못된 탐색 블록을 참조할 수 있다. 이에 탐색 블록에 움직임 추정대상의 경계를 포함하는 경우 제2 움직임 추정 수행이 보다 성능이 우수할 수 있다. 따라서, 본 발명의 또 다른 실시예에 따른 움직임 추정 방법은 제1 움직임 추정 수행의 미비점을 제2 움직임 추정 수행으로 보완하여 보다 정확한 움직임 추정을 할 수 있다.
대상 블록와 탐색 블록의 움직임 추정에 관한 정보를 부호화 하는 단계(S380).
프로세서(122)는 선택된 움직임 추정 수행에 따라 움직임 추정 정보를 부호화할 수 있다. 예를 들어, 프로세서(122)는 제1 움직임 추정 수행이 선택되면 도 2의 일 실시예에 따른 움직임 추정 방법의 블록 부호화 단계(S190)와 동일한 동작을 수행하고, 제2 움직임 추정 수행이 선택되면 제2 움직임 추정 수행에 따라 생성된 움직임 추정 정보를 부호화할 수 있다.
따라서, 본 발명의 또 다른 실시예는 객체의 이동에 따른 크기의 영향과 깊이 값의 변화를 이용하여 정확하고 정밀한 움직임 추정을 향상시킬 수 있다. 또한, 본 발명의 또 다른 실시예는 탐색 블록에 대해서만 신축 연산을 적용함으로써 연산량과 메모리 기억량을 감소시킬 수 있다. 또한, 본 발명의 또 다른 실시예는 움직임 대상 경계를 포함한 블록에서도 정확한 움직임 추정을 할 수 있고 압축 효율이 높다. 또한, 본 발명의 또 다른 실시예는 탐색 영역 내의 탐색 블록과 대상 블록 사이의 움직임 추정 차신호를 계산하므로 움직임 추정의 복잡도를 낮추고 연산량을 감소시킬 수 있다. 또한, 본 발명의 또 다른 실시예는 화면 부호화시 필요한 부호화 정보를 감소시킬 수 있다.
도 8은 본 발명의 실시예에 따른 움직임 추정의 평가척도인 평균제곱오값의 비교예이다.
도 8을 참조하면, 본 발명의 실시예에 따른 움직임 추정은 도 2의 신축을 이용한 제1 움직임 추정 수행이 종래 기술인 제2 움직임 추정 수행보다 움직임 추정이 더 정확함을 알 수 있고, 제1 움직임 추정 수행과 제2 움직임 추정 수행을 동시에 수행하는 도 7의 움직임 추정 방법이 도 2의 신축을 이용한 제1 움직임 추정 수행만 하는 경우 보다 더 정확함을 알 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.
100: 움직임 추정 장치
110: 영상 소스
120: 영상처리부
121: 메모리
122: 프로세서
130: 출력인터페이스
200: 데이터수신장치
210: 디스플레이 디바이스
220: 데이터 처리부
230: 입력 인터페이스

Claims (11)

  1. 현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할 단계;
    상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면에서 상기 대상 블록의 위치와 동일한 위치를 기준으로 하고 상기 제1 크기보다 큰 사이즈를 가진 미리 설정된 제2 크기의 탐색 영역 내에서 상기 제1 크기의 탐색 블록을 선택하는 단계;
    상기 선택된 탐색 블록에 신축을 이용하여 제1 움직임 추정을 수행하는 단계;
    상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하는 단계; 및
    상기 제1 움직임 추정이 진행된 탐색 블록과 상기 대상 블록 사이의 유사도 측정인 SAD(Sum of Absolute Differences) 또는 SSD(Sum of Squared Difference)의 결과를 제1 비용으로 계산하고 상기 제2 움직임 추정이 진행된 탐색 블록과 상기 대상 블록 사이의 유사도 측정인 SAD 또는 SSD의 결과를 제2 비용으로 계산하고, 제1 비용이 제2 비용보다 낮으면 상기 선택된 탐색 블록에는 경계가 포함되지 않은 것으로 판단하여 상기 제1 움직임 추정에 따른 움직임 추정 정보를 부호화하는 블록 부호화 단계;를 포함하고,
    상기 제1 움직임 추정을 수행하는 단계는,
    상기 대상 블록 내 화소들의 깊이 값의 제1 대표값와 상기 탐색 블록 내 화소들의 깊이 값의 제2 대표값에 기초하여 신축 비율을 계산하는 단계;
    상기 신축 비율에 따라 상기 탐색 블록을 신축하는 단계;
    신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값에 신축비율을 곱 연산하여 보간하는 단계;
    상기 보간된 탐색 블록과 상기 대상 블록 사이의 차 신호를 계산하여 움직임 추정 차신호를 계산하는 단계;
    상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하는 단계;
    결정된 복수의 움직임 추정 차신호에 대해 평균절대오차 또는 평균제곱오차를 계산하는 단계; 및
    상기 평균절대오차 또는 평균제곱오차가 최소값을 가지는 탐색 블록을 선택하고, 상기 대상 블록과 해당 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율을 움직임 벡터로 결정하는 단계;를 포함하는
    깊이 영상에서 신축을 이용한 움직임 추정 방법.
  2. 삭제
  3. 제1 항에 있어서,
    상기 신축 비율은
    Figure 112019044486909-pat00003
    을 충족하고, X는 기 설정된 상수인
    깊이 영상에서 신축을 이용한 움직임 추정 방법.
  4. 제1 항에 있어서,
    상기 신축 비율에 따라 상기 탐색 블록을 신축하는 단계는,
    상기 탐색 블록의 가로 및 세로 각각의 크기를 상기 신축 비율로 확대 또는 축소하는
    깊이 영상에서 신축을 이용한 움직임 추정 방법.
  5. 제1 항에 있어서,
    상기 제2 움직임 추정은
    화면간 예측 부호화 (interframe predictive coding), 움직임 보상 예측 (motion compensated prediction), 화소 반복법 (PRA: Pel Recursive Algorithm), 블록 정합법 (BMA: Block Matching Algorithm), 중첩 블록 움직임 보상(OBMC: Overlapped Block Motion Compensation) 중 어느 하나인
    깊이 영상에서 신축을 이용한 움직임 추정 방법.
  6. 삭제
  7. 명령들을 저장하는 적어도 하나의 메모리; 및
    적어도 하나의 프로세서;를 포함하고,
    상기 명령들은 상기 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하기 위해 상기 적어도 하나의 프로세서에 의해 실행가능 하고,
    상기 동작들은:
    현재 깊이 화면에서 움직임 추정대상에 대하여 미리 설정된 제1 크기의 대상 블록으로 분할하는 블록 분할하고,
    상기 현재 깊이 화면의 이전 프레임 또는 다음 프레임인 참조 깊이 화면에서 상기 대상 블록의 위치와 동일한 위치를 기준으로 하고 상기 제1 크기보다 큰 사이즈를 가진 미리 설정된 제2 크기의 탐색 영역 내에서 상기 제1 크기의 탐색 블록을 선택하고,
    상기 선택된 탐색 블록에 신축을 이용하여 제1 움직임 추정을 수행하고,
    상기 선택된 탐색 블록에 신축을 이용하지 않는 제2 움직임 추정을 수행하고,
    상기 제1 움직임 추정이 진행된 탐색 블록과 상기 대상 블록 사이의 유사도 측정인 SAD(Sum of Absolute Differences) 또는 SSD(Sum of Squared Difference)의 결과를 제1 비용으로 계산하고 상기 제2 이 진행된 탐색 블록과 상기 대상 블록 사이의 유사도 측정인 SAD 또는 SSD의 결과를 제2 비용으로 계산하고, 제1 비용이 제2 비용보다 낮으면 상기 선택된 탐색 블록에는 경계가 포함되지 않은 것으로 판단하여 상기 제1 움직임 추정에 따른 움직임 추정 정보를 부호화하는 블록 부호화 수행을 하고,
    상기 제1 움직임 추정은, 상기 적어도 하나의 프로세서가
    상기 대상 블록 내 화소들의 깊이 값의 제1 평균치와 상기 탐색 블록 내 화소들의 깊이 값의 제2 평균치에 기초하여 신축 비율을 계산하고,
    상기 신축 비율에 따라 상기 탐색 블록을 신축하고,
    상기 신축된 탐색 블록에 제1 블록 보간을 수행하여 상기 신축된 탐색 블록의 크기를 상기 대상 블록의 제1 크기와 일치시킨 후 상기 제1 크기의 탐색 블록 내 화소들의 깊이 값에 신축비율을 곱 연산하여 보간하고,
    상기 보간된 탐색 블록과 상기 대상 블록 사이의 움직임 추정 차신호를 계산하고,
    상기 대상 블록과 상기 탐색 영역 내의 복수의 신축되고 보간된 탐색 블록 각각들 사이의 움직임 추정 차신호를 결정하고
    결정된 복수의 움직임 추정 차신호에 대해 평균절대오차 또는 평균제곱오차를 계산하며,
    상기 평균절대오차 또는 평균제곱오차가 최소값을 가지는 탐색 블록을 선택하고, 상기 대상 블록과 해당 탐색 블록의 상대적인 좌표 정보와 해당 탐색 블록의 신축 비율을 움직임 벡터로 결정하는
    것을 포함하는
    깊이 영상에서 신축을 이용한 움직임 추정 장치.
  8. 삭제
  9. 제7 항에 있어서,
    상기 제2 움직임 추정은
    화면간 예측 부호화 (interframe predictive coding), 움직임 보상 예측 (motion compensated prediction), 화소 반복법 (PRA: Pel Recursive Algorithm), 블록 정합법 (BMA: Block Matching Algorithm), 중첩 블록 움직임 보상(OBMC: Overlapped Block Motion Compensation) 중 어느 하나인
    깊이 영상에서 신축을 이용한 움직임 추정 장치.
  10. 삭제
  11. 제7 항에 따른 상기 명령들을 저장하는 비일시적 컴퓨터 판독가능 기록 매체.
KR1020190050478A 2019-04-30 2019-04-30 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치 KR102169166B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190050478A KR102169166B1 (ko) 2019-04-30 2019-04-30 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190050478A KR102169166B1 (ko) 2019-04-30 2019-04-30 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102169166B1 true KR102169166B1 (ko) 2020-10-22

Family

ID=73035600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190050478A KR102169166B1 (ko) 2019-04-30 2019-04-30 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102169166B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371826B1 (ko) 2012-11-01 2014-03-12 동의대학교 산학협력단 신축 움직임 추정장치 및 그 추정방법
KR101906173B1 (ko) 2017-06-05 2018-10-10 동의대학교 산학협력단 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371826B1 (ko) 2012-11-01 2014-03-12 동의대학교 산학협력단 신축 움직임 추정장치 및 그 추정방법
KR101906173B1 (ko) 2017-06-05 2018-10-10 동의대학교 산학협력단 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
이동석외 1인, "깊이 영상 부호화에서 신축 움직임 추정 방법", 멀티미디어학회논문지20(11), (2017.11.30.) 1부.* *
장원석외 2인,"적응적 신축 움직임 추정 방법", 멀티미디어학회논문지17(8), (2014.08.31.) 1부.* *

Similar Documents

Publication Publication Date Title
KR102424189B1 (ko) 적응형 보간 필터
JP7507166B2 (ja) デコーダ側動きベクトル改良に対する制約
KR100919074B1 (ko) 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어
AU2002324085B2 (en) Method for sub-pixel value interpolation
JP5144545B2 (ja) 動画像コーデック装置及びその方法
KR100242406B1 (ko) 디지탈 비디오 동화상의 움직임 보상 방법
US9118927B2 (en) Sub-pixel interpolation and its application in motion compensated encoding of a video signal
WO2018161868A1 (zh) 帧内编码帧码率分配方法、计算机设备和存储介质
CN111201795B (zh) 存储访问窗口和用于运动矢量修正的填充
JP5766815B2 (ja) 画像符号化方法、および画像符号化装置
US10284810B1 (en) Using low-resolution frames to increase frame rate of high-resolution frames
TW202046721A (zh) 用於視訊寫碼之以梯度為基礎的預測細化
CN103563370A (zh) 用于图像运动预测的方法、装置及计算机程序产品
CN109089121B (zh) 一种基于视频编码的运动估计方法、装置及电子设备
US20190141332A1 (en) Use of synthetic frames in video coding
KR101906173B1 (ko) 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치
JP2000224593A (ja) フレーム補間方法および装置およびこの方法を記録した記録媒体
CN113940078A (zh) 视频编解码中的双向光流计算的简化
US20110194610A1 (en) Motion-Vector Estimation
US10911779B2 (en) Moving image encoding and decoding method, and non-transitory computer-readable media that code moving image for each of prediction regions that are obtained by dividing coding target region while performing prediction between different views
KR100254667B1 (ko) 폐색을 검출하는 방법 및 장치
KR102169166B1 (ko) 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치
CN113870302A (zh) 运动估计方法、芯片、电子设备以及存储介质
KR102098322B1 (ko) 평면모델링을 통한 깊이 영상 부호화에서 움직임 추정 방법 및 장치와 비일시적 컴퓨터 판독가능 기록매체
KR102245740B1 (ko) 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant