KR101630688B1 - 움직임 예측 장치 및 방법과 영상 처리 장치 - Google Patents

움직임 예측 장치 및 방법과 영상 처리 장치 Download PDF

Info

Publication number
KR101630688B1
KR101630688B1 KR1020100014373A KR20100014373A KR101630688B1 KR 101630688 B1 KR101630688 B1 KR 101630688B1 KR 1020100014373 A KR1020100014373 A KR 1020100014373A KR 20100014373 A KR20100014373 A KR 20100014373A KR 101630688 B1 KR101630688 B1 KR 101630688B1
Authority
KR
South Korea
Prior art keywords
motion vector
motion
unit
history information
user input
Prior art date
Application number
KR1020100014373A
Other languages
English (en)
Other versions
KR20110094765A (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 KR1020100014373A priority Critical patent/KR101630688B1/ko
Priority to US12/962,091 priority patent/US8724704B2/en
Publication of KR20110094765A publication Critical patent/KR20110094765A/ko
Application granted granted Critical
Publication of KR101630688B1 publication Critical patent/KR101630688B1/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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • 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/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

사용자 입력 장치의 입력에 기반하여, 동영상 부호화를 신속하게 수행하기 위한 움직임 예측 장치 및 방법과 이러한 움직임 예측 장치를 포함하는 영상 처리 장치가 제공된다. 움직임 예측 장치는, 입력 수신부, 입력 패턴 분석부, 저장부 및 움직임 예측부를 포함한다. 입력 수신부는 사용자 입력을 수신한다. 입력 패턴 분석부는 수신된 사용자 입력의 패턴을 분석한다. 저장부는 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장한다. 움직임 예측부는 분석된 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 현재 프레임의 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하고, 결정된 탐색 위치를 이용하여 움직임 추정 블록의 움직임 예측을 수행한다.

Description

움직임 예측 장치 및 방법과 영상 처리 장치{Apparatus for motion estimation and method thereof and image processing apparatus}
영상 처리 장치에 관한 것으로, 움직임 예측을 이용한 동영상 부호화에 관한 것이다.
클라우드 컴퓨팅이나, 원격 데스크탑과 같은 프로그램의 개발로 인하여, 영상을 원격으로 전송하는 방식이 나타나게 되었다. 그러나, 기존의 원격 데스크탑의 경우, 게임이나 3D 그래픽 프로그램, 동영상 재생 프로그램 등과 같이, 영상의 구조가 복잡하고, 변화량이 많은 경우, 데이터 전송량을 줄이기 위하여, 동영상 부호화 방식을 사용하여 데이터를 압축하여 전송한다. 동영상 부호화시에 대용량의 데이터를 처리하게 되면, 부호화 시간이 오래 걸리게 되며, 이로 인해 실시간성을 보장하기 어렵다.
사용자 입력 장치를 통한 사용자 입력에 기반하여, 동영상 부호화를 신속하게 수행하기 위한 움직임 예측 장치 및 방법과 이러한 움직임 예측 장치를 포함하는 영상 처리 장치가 제공된다.
일 측면에 따른 움직임 예측 장치는 입력 수신부, 입력 패턴 분석부 및 움직임 예측부를 포함한다. 입력 수신부는, 사용자 입력을 수신한다. 입력 패턴 분석부는 수신된 사용자 입력의 패턴을 분석한다. 저장부는 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장한다. 움직임 예측부는 저장부로부터 분석된 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 현재 프레임의 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하고, 결정된 탐색 위치를 이용하여 움직임 추정 블록의 움직임 예측을 수행한다.
입력 패턴 분석부는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석할 수 있다.
저장부는, 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 로컬 움직임 벡터 이력 정보 저장부와, 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 글로벌 움직임 벡터 이력 정보 저장부를 포함할 수 있다.
움직임 예측부는, 현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 움직임 추정 블록에 대응하는 블록의 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들에 대하여, 최신에 갱신된 값일수록 높은 가중치를 부여하고, 가중치가 부여된 움직임 벡터 값들을 평균하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 참조 프레임에서 결정된 탐색 위치를 기준으로 움직임 추정 블록에 대한 움직임 예측을 수행하여, 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 저장부에 갱신할 수 있다.
움직임 예측부는, 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 누적되면, 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제할 수 있다.
다른 측면에 따른 영상 처리 장치는 네트워크를 통하여 연결된 단말 장치와 통신하는 통신부와, 단말 장치로부터 통신부를 통해 전달된 사용자 입력을 수신하는 가상 사용자 입력부와, 사용자 입력에 따라 애플리케이션을 수행하여 복수 개의 영상 프레임을 생성하는 애플리케이션 수행부와, 복수 개의 영상 프레임을 부호화하는 부호화부를 포함한다. 부호화부는 영상 프레임의 블록별 움직임 예측을 수행할 때, 수신된 사용자 입력의 패턴을 분석하고, 분석된 패턴에 따른 움직임 벡터의 이력 정보를 이용하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정한다.
또 다른 측면에 따른 움직임 예측 방법은, 사용자 입력을 수신하는 동작과, 수신된 사용자 입력의 패턴을 분석하는 동작과, 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부로부터 분석된 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하는 동작과, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 동작과, 결정된 탐색 위치를 이용하여 움직임 예측을 수행하는 동작을 포함한다.
사용자 입력 신호를 기반으로 블록 탐색 위치를 결정하여 움직임 예측을 수행할 수 있으므로, 움직임 예측의 수행시간을 줄일 수 있다. 따라서, 움직임 예측이 큰 비중을 차지하는 동영상 부호화를 효율적으로 신속하게 수행할 수 있다.
도 1은 움직임 예측 장치의 구성의 일 예를 나타내는 블록도이다.
도 2는 블록별 움직임 벡터 예측의 일 예를 나타내는 도면이다.
도 3은 도 1의 저장부에 포함된 로컬 움직임 벡터 이력 정보 저장부의 구성의 일 예를 나타내는 도면이다.
도 4는 도 1의 저장부에 포함된 글로벌 움직임 벡터 이력 정보 저장부의 구성의 일 예를 나타내는 도면이다.
도 5는 도 1의 움직임 예측 장치의 움직임 추정 블록에 대한 움직임 벡터의 초기 예측의 일 예를 나타내는 도면이다.
도 6은 도 1의 움직임 예측 장치를 포함하는 영상 처리 장치의 구성의 일 예를 나타내는 도면이다.
도 7은 도 1의 움직임 예측 장치를 이용하여, 동영상 서비스를 제공하는 시스템 구조의 일 예를 나타내는 도면이다.
도 8은 움직임 예측 방법의 일 예를 나타내는 흐름도이다.
도 9는 움직임 예측 방법의 다른 예를 나타내는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 움직임 예측 장치의 구성의 일 예를 나타내는 블록도이다.
움직임 예측 장치(100)는 입력 수신부(110), 입력 패턴 분석부(120), 움직임 예측부(130) 및 저장부(140)를 포함할 수 있다.
입력 수신부(110)는 사용자 입력을 수신할 수 있다. 입력 수신부(110)는 키보드, 터치 패드, 조이스틱, 리모콘 등 다양한 사용자 입력 장치로부터 생성된 사용자 입력 신호를 수신하도록 구성될 수 있다. 사용자 입력 신호는 패킷화되어 네트워크를 통해 입력 수신부(110)로 전송될 수도 있다. 예를 들어, 사용자 입력은 하나의 키 또는 버튼의 입력일 수 있으며, 여러 개의 키나 버튼이 눌러져 있는 상태의 조합일 수 있다.
입력 패턴 분석부(120)는 수신된 사용자 입력의 패턴을 분석한다. 입력 패턴 분석부(120)는, 사용자 입력 신호로부터 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값을 포함하는 입력 패턴을 분석한다. 입력 패턴은 일시적인 사용자 입력 신호로부터 분석될 수도 있고, 일정 기간 수신된 사용자 입력 신호의 조합으로부터 분석될 수도 있다.
사용자 입력 신호에는 사용자 입력 장치의 종류를 나타내는 타입 정보 및 입력 값이 포함될 수 있다. 입력 값은, 사용자 입력 장치의 종류에 따른 하나 이상의 입력값을 포함할 수 있다. 또한, 입력 값은, 입력 패턴이 마우스 입력인 경우, 마우스의 위치 또는 단위 시간당 위치의 변화량일 수 있다. 입력 값은, 실제 사용자 입력 장치의 입력 값일 수도 있으나, 입력 값을 처리하여 생성될 값일 수도 있다. 예를 들어, 마우스 입력 값으로, 단위 시간당 위치의 변화량의 범위를 나타내는 대표값이 이용될 수 있다.
움직임 예측부(130)는 입력되는 프레임에 대하여, 참조 프레임을 기준으로 블록 단위로 움직임 예측을 수행할 수 있다.
도 2는 블록별 움직임 벡터 예측의 일 예를 나타내는 도면이다. 도 2를 참조하면, 프레임 #2(220)의 화살표(10)로 표시한 바와 같이, 일반적으로, 프레임의 좌측 상단에서 우측 하단 방향으로 일정한 크기의 블록 단위로 움직임 추정이 수행될 수 있다. 움직임 추정이 수행되는 블록을 움직임 추정 블록이라 한다. 예를 들어, 참조 프레임인 프레임 #1(210)에서 프레임 #2(220)의 움직임 추정 블록(20)과 가장 유사한 블록(30)을 찾기 위하여, 다양한 블록 정합 알고리즘이 이용될 수 있다.
예를 들어, 전역 탐색(full search) 방법, 3-스텝 탐색(3-step search) 방법, 다이아몬드 탐색(diamond search) 방법, 헥사곤 기반 탐색(hexagon-based search) 방법 등 다양한 블록 정합 알고리즘에 따라 움직임 예측이 수행될 수 있다. 전역 탐색 방법은, 현재 프레임의 움직임 추정 블록과 참조 프레임의 블록들 사이의 픽셀 값의 SAD(sum of absolute difference)가 가장 적은 블록을 찾기 위하여, 참조 프레임의 모든 블록들에 대하여 SAD 값을 비교하는 방법이다. 나머지 방법들은 움직임 추정 블록과의 SAD를 계산하는데 이용되는 참조 프레임들의 개수를 줄임으로써 계산량을 줄이는 방법이다.
다시 도 1을 참조하면, 움직임 예측부(130)는 입력 패턴 분석부(120)로부터 분석된 패턴을 수신하고, 분석된 패턴에 따라 움직임 예측을 수행할 수 있다. 통상적인 움직임 예측 동작은 입력 영상을 기반으로 수행되므로, 입력 영상의 생성에 영향을 주는 요소는 고려되지 않는다. 입력 영상의 생성에 사용자 입력이 이용되는 경우, 움직임 예측부(130)는 사용자 입력 신호를 이용하여 움직임 예측을 수행함으로써, 움직임 예측이 효율적으로 수행될 수 있다.
또한, 움직임 예측부(130)는 사용자 입력에 기반한 움직임 예측을 수행하기 위하여, 블록 단위 움직임 예측을 수행한 결과로서 생성된 블록별 움직임 벡터 정보를 움직임 벡터 이력 정보로서 저장부(140)에 저장할 수 있다.
저장부(140)는 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장한다. 저장부(140)는 로컬 움직임 벡터 이력 정보 저장부(142) 및 글로벌 움직임 벡터 이력 정보 저장부(144)를 포함할 수 있다.
로컬 움직임 벡터 이력 정보 저장부(142)는 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장할 수 있다. 글로벌 움직임 벡터 이력 정보 저장부(144)는 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장할 수 있다.
움직임 예측부(130)는 저장부(140)로부터 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정할 수 있다. 움직임 예측부(130)는 결정된 탐색 위치를 이용하여 영상 프레임의 블록별 움직임 예측을 수행할 수 있다.
예를 들어, 움직임 예측부(130)는 움직임 추정 블록에 대한 움직임 예측시에 참조 프레임에서 결정된 탐색 위치를 기준으로 일정 범위를 설정하여, 설정된 영역 내에서 전역 탐색 알고리즘을 수행할 수 있다. 또는, 움직임 예측부(130)는 참조 프레임에서 결정된 탐색 위치를 기준으로 3-스텝 탐색 방법, 다이아몬드 탐색 방법, 헥사곤 기반 탐색 방법 등에 따른 탐색 알고리즘을 수행할 수 있다.
움직임 예측부(130)는 일반적인 움직임 예측 동작을 수행하면서, 필요한 경우, 사용자 입력에 기반한 움직임 예측을 수행할 수 있다. 예를 들어, 움직임 예측의 초기와 같이, 저장부(140)에 움직임 벡터 이력 정보가 누적되지 않은 상태인 경우, 움직임 예측부(130)는 프레임 정보만을 가지고 일반적인 움직임 예측을 수행할 수 있다. 또한, 사용자 입력에 기반한 움직임 예측에 대한 오류가 누적되는 경우에 대비하여, 움직임 예측부(130)는 미리 설정된 프레임 개수의 처리시마다 또는 주기적으로 일반적인 움직임 예측을 수행할 수 있다.
움직임 예측부(130)는, 현재 프레임에서 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행할 수 있다.
또한, 움직임 예측부(130)는, 움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 로컬 움직임 벡터 정보를 참조하여 초기 예측을 수행할 수 있다. 예를 들어, 움직임 예측부(130)는 움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 변화량이 임계값 이하인 경우, 복수 개의 움직임 벡터값들 사이에 패턴이 있다고 결정하고, 복수 개의 움직임 벡터 값들 사이의 변화량을 이용하여, 초기 예측을 수행할 수 있다.
또한, 움직임 예측부(130)는, 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들에 대하여, 최신에 갱신된 값일수록 높은 가중치를 부여하고, 가중치가 부여된 움직임 벡터 값들을 평균하여, 초기 예측을 수행할 수 있다.
움직임 예측부(130)는 저장부(140)의 정보를 관리할 수 있다. 이를 위해, 움직임 예측부(130)는, 참조 프레임에서 결정된 탐색 위치를 기준으로 움직임 추정 블록에 대한 움직임 예측을 수행하여, 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 저장부(140)에 갱신할 수 있다. 또한, 움직임 예측부(130)는, 저장부(140)에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 누적되면, 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제할 수 있다.
이와 같이, 사용자 입력 신호를 이용하여 생성된 영상들을 부호화할 때, 사용자 입력 신호를 기반으로 블록 탐색 위치를 결정하여 움직임 예측을 수행할 수 있으므로, 움직임 예측의 수행시간을 줄일 수 있다. 따라서, 움직임 예측이 큰 비중을 차지하는 동영상 부호화를 효율적으로 신속하게 수행할 수 있다.
도 3은 도 1의 저장부(140)에 포함된 로컬 움직임 벡터 이력 정보 저장부(142)의 구성의 일 예를 나타내는 도면이다.
로컬 움직임 벡터 이력 정보 저장부(142)는 도 3에 도시된 바와 같이, 각 블록에 대하여, 입력 타입, 및 입력 값에 대한 움직임 벡터를 저장한다. 키보드, 마우스 뿐만 아니라 다양한 입력 장치의 입력 값들이 로컬 움직임 벡터 이력 정보를 구성하는데 입력 타입으로 이용될 수 있다.
예를 들어, 키보드 입력의 경우, 입력 값이, 좌측 화살표(Left_arrow)의 경우, {(-1, 3), (-5, 1), (-4, -1), (0, 1)}의 움직임 벡터 이력 정보가 저장될 수 있다. 움직임 벡터 이력 정보는 왼쪽에 기록될수록 최신의 정보를 나타낼 수 있다.
도 4는 도 1의 저장부(140)에 포함된 글로벌 움직임 벡터 이력 정보 저장부(144)의 구성의 일 예를 나타내는 도면이다.
글로벌 움직임 벡터 이력 정보 저장부(144)에 저장된 글로벌 움직임 벡터 이력 정보는 프레임에 대해서 들어온 글로벌 움직임 벡터가 존재하는지 확인하는데 이용될 수 있다. 글로벌 움직임 벡터 이력 정보는 미리 설정되어 저장되어 있을 수 있으며, 움직임 예측부(130)에 의해 실시간으로 계산되어 갱신될 수도 있다. 키보드, 마우스 뿐만 아니라 다양한 입력 장치의 입력 값들이 글로벌 움직임 벡터 이력 정보를 구성하는데 입력 타입으로 이용될 수 있다. 글로벌 움직임 벡터 이력 정보 저장부(144)는 도 4에 도시된 바와 같이, 입력 타입 및 입력 값에 대한 글로벌 움직임 벡터의 값을 저장한다. 글로벌 움직임 벡터 이력 정보는 왼쪽에 기록될수록 최신의 정보를 나타낼 수 있다.
도 5는 도 1의 움직임 예측 장치의 움직임 추정 블록에 대한 움직임 벡터의 초기 예측의 일 예를 나타내는 도면이다.
움직임 예측부(130)가 현재 블록(501)의 움직임 예측을 수행한다고 가정한다. 블록(501)에 대응하는 위치의 블록에 대한 로컬 움직임 벡터 이력 정보가 {(-1, 3), (-5, 1), (-4, -1), (0, 1)}이라고 가정한다. 또한, 움직임 벡터 이력 정보에서 왼쪽에 기록될수록 최신의 정보라고 가정한다.
도 5에서, 움직임 벡터의 값은 각각 도면부호 510, 520, 530 및 540에 해당한다. 움직임 예측부(130)는 로컬 움직임 벡터 이력 정보에 포함된 각각의 움직임 벡터에 대하여 가중치를 부여할 수 있다. 이때, 부여되는 가중치의 합은 1일 수 있다. 움직임 예측부(130)는 최신의 움직임 벡터일수록 높은 가중치를 부여할 수 있다. 움직임 예측부(130)가 움직임 벡터 (-1, 3)에 가중치 0.4, 움직임 벡터(-5, 1)에 가중치 0.3, 움직임 벡터 (-4, -1)에 가중치 0.2, 움직임 벡터 (0, 1)에 가중치 0.1을 부여하고, 가중치가 부여된 움직임 벡터들을 합하면 (-2.7, 1.4)의 값을 얻게 된다. 얻은 값을 반올림하면, (-3, 1)이 되고, 이 값은 도 5에서 도면 부호 503에 해당된다.
움직임 예측부(130)는 결정된 움직임 벡터 (-3, 1) 위치의 블록(503)을 기준으로 참조 프레임에서 블록 정합 알고리즘을 적용할 수 있다. 예를 들어, 움직임 예측부(130)는 참조 프레임에서 위치(503)를 기준으로 일정 범위를 설정하고, 설정된 범위에서 전역 탐색을 수행할 수 있으며, 또는, 블록(503)을 시작으로 3-스텝 탐색, 다이아몬드 탐색, 헥사곤 기반 탐색 등을 수행할 수 있다.
도 6은 도 1의 움직임 예측 장치(100)를 포함하는 영상 처리 장치의 구성의 일 예를 나타내는 도면이다.
영상 처리 장치(600)는 사용자 입력 기반을 수행하는 움직임 예측부(620)를 이용하여, 프레임에 대한 H.264 부호화를 수행하는 부호화 장치이다.
영상 처리 장치(600)는 입력 수신부(630), 입력 패턴 분석부(632), 움직임 예측부(634), 저장부(636), 움직임 보상부(638), 인트라 모드 예측부(640), 인트라 예측부(642), 변환부(644), 양자화부(646), 엔트로피 부호화부(648), 역양자화부(650), 역변환부(652) 및 디블록킹 필터(654)를 포함한다. 도 6에서, 프레임(610)은 현재 프레임을 나타내고, 프레임(620)은 참조 프레임을 나타낸다.
입력 수신부(630), 입력 패턴 분석부(632), 움직임 예측부(624), 및 저장부(636)는 도 1의 입력 수신부(110), 입력 패턴 분석부(120), 움직임 예측부(130) 및 저장부(140)의 구성에 대응하므로 상세한 설명은 생략한다.
움직임 예측부(634)는 여러 장의 참조 프레임(620)으로부터 움직임 벡터를 찾는 기능과 매크로블록 타입을 찾는 매크로블록 모드 결정 기능을 수행한다. 움직임 보상부(638)는 움직임 예측부(634)에서 찾은 움직임 벡터와 매크로블록 모드 타입에 따라서 참조 프레임으로부터 보상 영상을 획득하는 기능을 수행한다.
인트라 모드 예측부(640)는 매크로블록을 인트라로 코딩할 때에 인접한 주위의 블록들로부터 예측을 수행하여, 최적의 인트라 예측 모드를 선택한다. 인트라 16× 16 블록인 경우에는 4개의 예측 모드가 존재하고, 인트라 4 × 4 블록인 경우에는 9개의 예측 모드가 존재한다.
인트라 예측부(642)는 인트라 모드 예측부(640)에서 선택된 인트라 예측 모드를 이용하여 이전에 코딩된 인접 블록으로부터 인트라 예측이 된 보상 영상을 획득하는 기능을 수행한다.
변환부(644)는 4 × 4 DCT를 변형한 4 × 4 인티저 변환(integer transform)을 수행하고, 양자화부(646)는 변환부(644)에서 변환된 계수들을 양자화하는 기능을 수행한다. H.264에서 사용되는 4 × 4 인티저 변환은 직교(orthogonal)하지 않기 때문에, 반드시 양자화부(646)를 통해서 변환을 보상하는 것이 필요하다. 따라서, 변환부(644) 및 양자화부(646)는 같이 연동되어 사용된다. 역변환부(652) 및 역양자화부(650)는 변환부(644) 및 양자화부(646)에서 수행된 것을 반대로 수행한다. 역변환부(652)의 수행 결과가 디블록킹 필터(654)를 통과하지 않은 복원 영상이다.
엔트로피 부호화부(648)는 양자화된 DCT 계수들의 발생 확률에 따른 비트 할당을 사용하여 엔트로피 부호화를 수행한다.
디블로킹 필터(654)에서는 역변환부(652)를 통해서 획득된 복원 영상을 좀 더 좋은 화질의 영상으로 개선하는 기능을 수행하고, 이 개선된 영상은 이후에 입력되는 영상들의 참조 프레임(620)이 된다.
H.264 표준에는, 종래의 MPEG 표준들과 비슷하게 I_슬라이스(Slice), P_슬라이스, B_슬라이스, SI_슬라이스 및 SP_슬라이스 등이 존재하는데, H.264 표준은 슬라이스 단위로 부호화를 수행한다. 설명의 편의상 슬라이스를 하나의 프레임으로 인식할 수 있다. 즉, I_슬라이스는 종래의 MPEG 표준에서의 I_픽쳐, P_슬라이스는 종래의 P_픽쳐, B_슬라이스는 종래의 B_픽쳐와 유사하다. SI_슬라이스 및 SP_슬라이스는 특수 목적으로 이용된다.
I_슬라이스인 경우, 움직임 예측부(634) 및 움직임 보상부(638)는 수행되지 않고, 인트라 모드 예측부(640) 및 인트라 예측부(642)가 수행되어, 최적으로 인트라 예측이 수행된다. 그 결과인 보상 영상과 원 영상을 차분한 차분 영상에 대해 변환부(644) 및 양자화부(646)가 수행되어, 양자화된 DCT 계수인 결과가 획득된다. 엔트로피 부호화부(648)는 이 결과에 엔트로피 부호화를 수행하여 비트열을 생성한다.
그리고, 다음에 입력되는 슬라이스들에 대해 역양자화부(650) 및 역변환부(652)가 적용되어 차분 영상을 복원하고, 이를 보상 영상과 함께 합하여 복원 영상이 생성된다. 복원된 영상은 디블록킹 필터(654)를 통하여 참조 프레임(620)이 된다. 여기에서, 인트라 예측을 위한 영상은, 디블록킹 필터(654)를 거치기 전의 영상이 사용된다.
P_슬라이스의 경우, 움직임 예측부(634) 및 움직임 보상부(638)가 수행되어, 최적의 움직임 벡터 및 매크로블록 모드가 결정된다. 그리고, 인트라 모드 예측부(640) 및 인트라 예측부(642)가 수행되어, 최적으로 인트라 예측이 수행된다. 그 후, 움직임 예측부(634) 및 움직임 보상부(638)의 수행 결과와, 인트라 모드 예측부(640) 및 인트라 예측부(642)의 수행 결과가 비교되어, 더 좋은 결과가 선택되고, 보상 영상이 획득된다. 이후의 동작은 I_슬라이스의 경우에서의 동작과 동일하다.
B_슬라이스인 경우, P_슬라이스의 경우와 동일하게 처리되지만, 움직임 예측부(634) 및 움직임 보상부(638)의 수행에 있어서, 과거 영상 뿐만 아니라 미래 영상이 참조 영상으로 사용되는 점이 다르다.
도 7은 도 1의 움직임 예측 장치를 이용하여, 동영상 서비스를 제공하는 시스템 구조의 일 예를 나타내는 도면이다.
동영상 서비스를 제공하는 시스템(700)은 애플리케이션 서버(710) 및 단말 장치(720)를 포함할 수 있다. 애플리케이션 서버(710) 및 단말 장치(720)는 유선 또는 무선 네트워크로 연결될 수 있다.
애플리케이션 서버(710)는 단말 장치(720)의 사용자가 원하는 애플리케이션을 수행하고, 애플리케이션 수행 결과로서 동영상을 제공하는 서버이다. 애플리케이션 서버(710)는 클라우드 컴퓨팅 서비스나 가상 머신을 제공하는 서버일 수 있으며, 또는 원격 데스크탑으로 사용되는 일반적인 개인용 컴퓨터일 수 있다.
애플리케이션 서버(710)는 통신부(711), 가상 입력부(712), 애플리케이션 수행부(713), 가상 출력부(714) 및 부호화부(715)를 포함할 수 있다.
통신부(711)는 단말 장치(720)와 통신을 수행한다. 통신부(711)에 사용자 입력이 패킷화되어 전달되면, 통신부(711)는 패킷화된 사용자 입력을 디패킷화하여 가상 입력부(712)에 전달할 수 있다. 가상 입력부(712)는 사용자 입력을 애플리케이션 수행부(713)에 전달한다. 가상 입력부(712)는 사용자 입력을 부호화부(715)에도 전달하여, 도 1의 입력 수신부(110)의 기능을 수행할 수 있다.
애플리케이션 수행부(713)는 사용자가 선택한 애플리케이션을 수행한다. 애플리케이션 수행부(713)는 가상 입력부(712)로부터 전달된 사용자 입력에 따라 애플리케이션을 수행하면서, 애플리케이션 수행을 나타내는 복수 개의 프레임으로 구성되는 동영상을 생성할 수 있다. 생성된 동영상은 가상 출력부(402)를 통해 부호화부(715)로 전달된다.
부호화부(715)는 도 6의 영상 처리 장치에서 입력 수신부(615)를 제외한 구성을 포함할 수 있다. 부호화부(715)는 도 1 내지 도 6을 참조하여 설명한 바와 같이, 사용자 입력에 기반한 움직임 예측을 수행하여, 동영상을 부호화할 수 있다. 즉, 부호화부(715)는 영상 프레임의 블록별 움직임 예측을 수행할 때, 수신된 사용자 입력의 패턴을 분석하고, 분석된 패턴에 따른 움직임 벡터의 이력 정보를 이용하여, 움직임 벡터를 초기 예측한다. 그런 다음, 부호화부(715)는 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정할 수 있다. 부호화된 동영상 즉 복수 개의 프레임은 통신부(711)을 통해 단말 장치(720)에 전달된다.
단말 장치(720)는 사용자가 직접 사용하는 장치이다. 단말 장치(720)는 사용자 입력부(721), 통신부(722), 복호화부(723) 및 표시부(724)를 포함할 수 있다.
사용자 입력부(721)는 사용자가 애플리케이션 서버(710)의 애플리케이션 수행부(713)에 전달할 사용자 입력을 입력할 수 있는 장치이다. 사용자 입력부(721)는 키보드, 마우스, 게임패드, 리모큰 등 다양한 사용자 입력 장치일 수 있다. 사용자 입력부(721)는 입력된 사용자 입력 장치의 타입 및 입력 값을 통신부(722)에 전달할 수 있다.
통신부(722)는 사용자 입력부(721)에 입력된 사용자 입력을 애플리케이션 서버(710)에 전달한다. 또한, 통신부(722)는 애플리케이션 서버(710)로부터 수신된 부호화된 동영상을 수신하여 복호화부(723)에 전달한다.
복호화부(723)은 부호화된 동영상을 복호화하고, 복호화된 동영상을 표시부(724)에 전달한다. 표시부(724)는 전달된 동영상을 표시할 수 있다.
단말 장치(720)는 오디오 복호화 모듈 및 오디오 출력부를 더 포함할 수 있다. 단말 장치(720)는 애플리케이션 실행 모듈이 없으며, 애플리케이션 서버(710)로부터 전달된 애플리케이션 실행 결과를 출력할 수 있다.
도 8은 움직임 예측 방법의 일 예를 나타내는 흐름도이다.
도 1 및 도 8을 참조하면, 움직임 예측 장치(100)의 입력 수신부(110)는 사용자 입력을 수신한다(810). 입력 패턴 분석부(120)는 수신된 사용자 입력의 패턴을 분석한다(820). 사용자 입력의 패턴은 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 분석될 수 있다.
움직임 예측부(130)는 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부(140)로부터 분석된 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측한다(830).
움직임 예측부(130)는 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정한다(840).
움직임 예측부(130)는 결정된 탐색 위치를 이용하여 움직임 예측을 수행한다(850).
움직임 예측부(130)는 저장부(140)에 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하고, 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 동작을 더 수행할 수 있다. 또한, 움직임 예측부(130)는 저장부(140)에 저장된 움직임 벡터 이력 정보를 관리하는 동작을 더 수행할 수 있다.
도 9는 움직임 예측 방법의 다른 예를 나타내는 흐름도이다.
도 1 및 도 9를 참조하면, 움직임 예측 장치(100)의 입력 패턴 분석부(120)는 수신되는 사용자 입력의 패턴을 분석한다(910). 움직임 예측부(130)는 사용자 입력을 기반으로 한 움직임 예측을 수행할 수도 있으나, 움직임 예측에 오류가 누적되는 경우를 대비하여, 미리 설정된 방식에 따라서 일반적 움직임 예측을 수행할 수 있다.
움직임 예측부(130)가 일반적 움직임 예측을 수행해야 하는 경우, 현재 움직임 추정 블록에 대하여 일반적 움직임 예측을 수행한다(914).
움직임 예측부(130)가 사용자 입력을 기반으로 한 움직임 예측을 수행하는 경우에는, 현재 프레임에 대하여 글로벌 움직임 벡터가 존재하는지 결정한다(916). 현재 움직임 추정 블록에 대한 움직임 예측 전에, 현재 프레임에 대한 미리 설정된 대표 블록들에 대하여 움직임 예측을 수행한 결과, 움직임 예측부(130)은 현재 프레임의 대표 블록들에 대해 예측된 움직임 벡터간의 표준 편차가 임계값 이하인 경우, 현재 프레임에 대하여 글로벌 움직임 벡터가 존재한다고 결정할 수 있다.
글로벌 움직임 벡터가 존재하는 경우, 움직임 예측부(130)는 글로벌 움직임 벡터 이력 정보를 이용하여 참조 프레임에서의 탐색 위치를 결정할 수 있다(926). 움직임 예측부(130)는 결정된 탐색 위치를 이용하여 움직임 예측을 수행한다(928). 그런 다음, 움직임 예측부(130)는 움직임 예측 결과를 이용하여 글로벌 움직임 벡터 이력 정보 저장부(144)를 갱신한다(930).
글로벌 움직임 벡터가 존재하지 않는 경우, 움직임 예측부(130)는 현재 움직임 추정 블록의 로컬 움직임 벡터 이력 정보를 참조하여, 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터간에 패턴이 있는지 결정한다(918).
로컬 움직임 벡터 이력 정보에 포함된 움직임 벡터 사이에 패턴이 있는 경우(920), 움직임 예측부(130)는 로컬 움직임 벡터 이력 정보를 이용하여 탐색 위치를 결정하고, 결정된 탐색 위치를 이용하여 움직임 예측을 수행할 수 있다(922). 그런 다음, 움직임 예측부(130)는 움직임 예측 결과를 이용하여 로컬 움직임 벡터 이력 정보 저장부(142)를 갱신한다(922). 로컬 움직임 벡터 이력 정보에 포함된 움직임 벡터 사이에 패턴이 없다고 결정되는 경우(920), 움직임 예측부(130)는 일반적인 움직임 예측 동작을 수행할 수 있다.
현재 움직임 추정 블록이 현재 프레임의 마지막 블록인 경우(932), 움직임 예측을 종료하고, 현재 움직임 추정 블록이 마지막 블록이 아닌 경우(932), 동작 912로 되돌아갈 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.

Claims (20)

  1. 사용자 입력을 수신하는 입력 수신부;
    상기 수신된 사용자 입력 패턴을 분석하는 입력 패턴 분석부;
    사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부; 및
    상기 저장부로부터 분석된 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 현재 프레임의 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 상기 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하고, 상기 결정된 탐색 위치를 이용하여 상기 움직임 추정 블록의 움직임 예측을 수행하는 움직임 예측부를 포함하는 움직임 예측 장치.
  2. 제1항에 있어서,
    상기 입력 패턴 분석부는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석하는 움직임 예측 장치.
  3. 제1항에 있어서,
    상기 저장부는,
    블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 로컬 움직임 벡터 이력 정보 저장부; 및
    프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 글로벌 움직임 벡터 이력 정보 저장부를 포함하는 움직임 예측 장치.
  4. 제3항에 있어서,
    상기 움직임 예측부는,
    현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행하는 움직임 예측 장치.
  5. 제3항에 있어서,
    상기 움직임 예측부는,
    움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행하는 움직임 예측 장치.
  6. 제3항에 있어서,
    상기 움직임 예측부는,
    상기 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들에 대하여, 최신에 갱신된 값일수록 높은 가중치를 부여하고, 가중치가 부여된 움직임 벡터 값들을 평균하여, 초기 예측을 수행하는 움직임 예측 장치.
  7. 제1항에 있어서,
    상기 움직임 예측부는,
    상기 참조 프레임에서 결정된 탐색 위치를 기준으로 상기 움직임 추정 블록에 대한 움직임 예측을 수행하여, 상기 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 상기 저장부에 갱신하는 움직임 예측 장치.
  8. 제1항에 있어서,
    상기 움직임 예측부는,
    상기 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 누적되면, 상기 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제하는 움직임 예측 장치.
  9. 네트워크를 통하여 연결된 단말 장치와 통신하는 통신부;
    상기 단말 장치로부터 상기 통신부를 통해 전달된 사용자 입력을 수신하는 가상 사용자 입력부;
    상기 사용자 입력에 따라 애플리케이션을 수행하여 복수 개의 영상 프레임을 생성하는 애플리케이션 수행부; 및
    상기 복수 개의 영상 프레임을 부호화하는 부호화부를 포함하고,
    상기 부호화부는, 영상 프레임의 블록별 움직임 예측을 수행할 때, 상기 수신된 사용자 입력의 패턴을 분석하고, 상기 분석된 패턴에 따른 움직임 벡터의 이력 정보를 이용하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 영상 처리 장치.
  10. 제9항에 있어서,
    상기 통신부는, 상기 부호화된 복수 개의 영상 프레임을 상기 단말 장치로 전송하는 영상 처리 장치.
  11. 제9항에 있어서,
    상기 부호화부는,
    블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보 및 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 저장부를 포함하는 영상 처리 장치.
  12. 제11항에 있어서,
    상기 부호화부는,
    현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 상기 움직임 추정 블록의 움직임 벡터를 초기 예측하는 영상 처리 장치.
  13. 제11항에 있어서,
    상기 부호화부는,
    움직임 추정 블록에 대응하는 블록에 대한 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이의 변화량이 임계값 이하인 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 상기 움직임 추정 블록의 움직임 벡터를 초기 예측하는 영상 처리 장치.
  14. 제11항에 있어서,
    상기 부호화부는,
    상기 참조 프레임에서 결정된 탐색 위치를 기준으로 상기 움직임 추정 블록에 대한 움직임 예측을 수행하여, 상기 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 상기 저장부에 갱신하는 영상 처리 장치.
  15. 제11항에 있어서,
    상기 부호화부는,
    상기 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 되면, 상기 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제하는 영상 처리 장치.
  16. 사용자 입력을 수신하는 단계;
    상기 수신된 사용자 입력의 패턴을 분석하는 단계;
    사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부로부터 상기 분석된 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계;
    초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 단계; 및
    결정된 탐색 위치를 이용하여 움직임 예측을 수행하는 단계를 포함하는 움직임 예측 방법.
  17. 제16항에 있어서,
    상기 사용자 입력의 패턴을 분석하는 단계는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석하는 단계를 포함하는 움직임 예측 방법.
  18. 제16항에 있어서,
    상기 저장부에 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 단계; 및
    상기 저장부에 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 단계를 더 포함하는 움직임 예측 방법.
  19. 제18항에 있어서,
    움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계는,
    미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 상기 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행하는 움직임 예측 방법.
  20. 제18항에 있어서,
    움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계는,
    움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행하는 움직임 예측 방법.
KR1020100014373A 2010-02-17 2010-02-17 움직임 예측 장치 및 방법과 영상 처리 장치 KR101630688B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100014373A KR101630688B1 (ko) 2010-02-17 2010-02-17 움직임 예측 장치 및 방법과 영상 처리 장치
US12/962,091 US8724704B2 (en) 2010-02-17 2010-12-07 Apparatus and method for motion estimation and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100014373A KR101630688B1 (ko) 2010-02-17 2010-02-17 움직임 예측 장치 및 방법과 영상 처리 장치

Publications (2)

Publication Number Publication Date
KR20110094765A KR20110094765A (ko) 2011-08-24
KR101630688B1 true KR101630688B1 (ko) 2016-06-16

Family

ID=44369623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100014373A KR101630688B1 (ko) 2010-02-17 2010-02-17 움직임 예측 장치 및 방법과 영상 처리 장치

Country Status (2)

Country Link
US (1) US8724704B2 (ko)
KR (1) KR101630688B1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769354B2 (en) 2005-03-24 2017-09-19 Kofax, Inc. Systems and methods of processing scanned data
US9576272B2 (en) 2009-02-10 2017-02-21 Kofax, Inc. Systems, methods and computer program products for determining document validity
US9767354B2 (en) 2009-02-10 2017-09-19 Kofax, Inc. Global geographic information retrieval, validation, and normalization
US10146795B2 (en) 2012-01-12 2018-12-04 Kofax, Inc. Systems and methods for mobile image capture and processing
US8989515B2 (en) 2012-01-12 2015-03-24 Kofax, Inc. Systems and methods for mobile image capture and processing
US9277237B2 (en) 2012-07-30 2016-03-01 Vmware, Inc. User interface remoting through video encoding techniques
US9213556B2 (en) 2012-07-30 2015-12-15 Vmware, Inc. Application directed user interface remoting using video encoding techniques
US20140055339A1 (en) * 2012-08-22 2014-02-27 David Stanasolovich Adaptive visual output based on motion compensation of a mobile device
US9690334B2 (en) 2012-08-22 2017-06-27 Intel Corporation Adaptive visual output based on change in distance of a mobile device to a user
EP2933730B1 (en) * 2012-12-12 2018-11-28 SK Planet Co., Ltd. Method for providing immediate result for user input, and system and apparatus therefor
US8982137B2 (en) * 2012-12-18 2015-03-17 Google Technology Holdings LLC Methods and systems for overriding graphics commands
US9137320B2 (en) 2012-12-18 2015-09-15 Google Technology Holdings LLC Methods and systems for overriding graphics commands
US9214005B2 (en) 2012-12-18 2015-12-15 Google Technology Holdings LLC Methods and systems for overriding graphics commands
US10715817B2 (en) * 2012-12-19 2020-07-14 Nvidia Corporation Apparatus and method for enhancing motion estimation based on user input
US10602175B2 (en) * 2012-12-21 2020-03-24 Nvidia Corporation Using an average motion vector for a motion search
US9355312B2 (en) 2013-03-13 2016-05-31 Kofax, Inc. Systems and methods for classifying objects in digital images captured using mobile devices
US9208536B2 (en) 2013-09-27 2015-12-08 Kofax, Inc. Systems and methods for three dimensional geometric reconstruction of captured image data
US20140316841A1 (en) 2013-04-23 2014-10-23 Kofax, Inc. Location-based workflows and services
DE202014011407U1 (de) 2013-05-03 2020-04-20 Kofax, Inc. Systeme zum Erkennen und Klassifizieren von Objekten in durch Mobilgeräte aufgenommenen Videos
KR102131326B1 (ko) * 2013-08-22 2020-07-07 삼성전자 주식회사 영상 프레임 움직임 추정 장치, 그것의 움직임 추정 방법
JP2016538783A (ja) 2013-11-15 2016-12-08 コファックス, インコーポレイテッド モバイル映像データを用いて長尺文書の合成画像を生成するためのシステムおよび方法
US9760788B2 (en) 2014-10-30 2017-09-12 Kofax, Inc. Mobile document detection and orientation based on reference object characteristics
US10467465B2 (en) 2015-07-20 2019-11-05 Kofax, Inc. Range and/or polarity-based thresholding for improved data extraction
US10242285B2 (en) 2015-07-20 2019-03-26 Kofax, Inc. Iterative recognition-guided thresholding and data extraction
US9779296B1 (en) 2016-04-01 2017-10-03 Kofax, Inc. Content-based detection and three dimensional geometric reconstruction of objects in image and video data
US10803350B2 (en) 2017-11-30 2020-10-13 Kofax, Inc. Object detection and image cropping using a multi-detector approach
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
GB2589223B (en) 2018-06-21 2023-01-25 Beijing Bytedance Network Tech Co Ltd Component-dependent sub-block dividing
CN110662056B (zh) * 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 哪个查找表需要更新或不更新
TWI744661B (zh) 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 要根據模式檢查的查找表中的運動候選的數量
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
CN110737799B (zh) * 2018-07-03 2023-06-27 阿里巴巴集团控股有限公司 视频搜索的方法、装置、设备和介质
BR112021000004A8 (pt) 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
CN113016188A (zh) * 2018-09-20 2021-06-22 三星电子株式会社 视频解码方法和设备以及视频编码方法和设备
CN110944196B (zh) 2018-09-24 2023-05-30 北京字节跳动网络技术有限公司 简化的基于历史的运动矢量预测
US10735759B2 (en) * 2018-10-06 2020-08-04 Tencent America LLC Pairwise average motion vector prediction
EP3857888A4 (en) * 2018-10-06 2022-08-03 HFI Innovation Inc. METHOD AND APPARATUS FOR AN AREA OF A SHARED MERGER CANDIDATE LIST FOR ENABLING VIDEO CODING
WO2020073920A1 (en) * 2018-10-10 2020-04-16 Mediatek Inc. Methods and apparatuses of combining multiple predictors for block prediction in video coding systems
CN113315974B (zh) * 2018-10-24 2022-06-10 华为技术有限公司 视频解码器和方法
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
JP7231729B2 (ja) * 2018-11-13 2023-03-01 北京字節跳動網絡技術有限公司 イントラブロックコピーのための履歴ベース動き候補リスト構築
US11876957B2 (en) * 2018-12-18 2024-01-16 Lg Electronics Inc. Method and apparatus for processing video data
CN113316936A (zh) * 2018-12-29 2021-08-27 Vid拓展公司 基于历史的运动向量预测
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
US11025948B2 (en) * 2019-02-28 2021-06-01 Tencent America LLC Method and apparatus for motion prediction in video coding
CN113615193A (zh) * 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN110245554B (zh) * 2019-04-29 2021-06-29 中科智城(广州)信息科技有限公司 一种行人运动趋势的预警的方法、系统平台及存储介质
CN113259686A (zh) * 2021-07-07 2021-08-13 摩尔线程智能科技(北京)有限责任公司 运动矢量搜索方法、装置和视频编码系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272733A (ja) 2006-03-31 2007-10-18 Sony Corp 画像処理装置および方法、並びにプログラム
JP2008011455A (ja) 2006-06-30 2008-01-17 Sanyo Electric Co Ltd 符号化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100396558B1 (ko) * 2001-10-25 2003-09-02 삼성전자주식회사 적응 움직임 보상형 프레임 및/또는 레이트 변환 장치 및그 방법
KR100453714B1 (ko) * 2001-12-31 2004-10-20 (주)펜타마이크로 Mpeg 영상 압축 기술을 이용한 디지털 영상 저장장치에서의 움직임 검출 장치 및 그 방법
KR100492127B1 (ko) * 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
KR20040084327A (ko) * 2003-03-27 2004-10-06 최윤식 적응적 탐색 영역을 이용한 움직임 예측 방법
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
KR100573696B1 (ko) 2003-07-31 2006-04-26 삼성전자주식회사 패턴 분석에 기반한 움직임 벡터 보정 장치 및 방법
JP4537136B2 (ja) 2004-07-16 2010-09-01 財団法人北九州産業学術推進機構 動き推定方法及び動き推定装置、並びにプログラム
KR20070056627A (ko) * 2005-11-30 2007-06-04 삼성전자주식회사 움직임 추정장치, 움직임 추정방법 및 전역 움직임추정장치
US8494052B2 (en) 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
EP2024929A2 (en) * 2006-04-21 2009-02-18 Koninklijke Philips Electronics N.V. Picture enhancing increasing precision smooth profiles
KR20080022843A (ko) * 2006-09-08 2008-03-12 엘지전자 주식회사 움직임 벡터를 이용한 탐색 영역 조절 방법
JP4709794B2 (ja) 2007-03-15 2011-06-22 株式会社東芝 動き推定装置及びその方法
KR101392732B1 (ko) * 2007-08-20 2014-05-08 삼성전자주식회사 손떨림에 의한 움직임 추정 장치 및 방법, 그를 이용한영상 촬상 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272733A (ja) 2006-03-31 2007-10-18 Sony Corp 画像処理装置および方法、並びにプログラム
JP2008011455A (ja) 2006-06-30 2008-01-17 Sanyo Electric Co Ltd 符号化方法

Also Published As

Publication number Publication date
US8724704B2 (en) 2014-05-13
KR20110094765A (ko) 2011-08-24
US20110200107A1 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
KR101630688B1 (ko) 움직임 예측 장치 및 방법과 영상 처리 장치
CN101595735B (zh) 对视频进行编码和解码的方法和设备
CN101889405B (zh) 用于执行运动估计的方法和装置
CN103609115A (zh) 具有基于知觉的帧内切换的模式决策
KR20070011225A (ko) 인터-코딩에 사용된 기준 화상의 수를 최소화하기 위한방법 및 장치
US20120237132A1 (en) Image-encoding method, image-encoding device, and computer-readable recording medium storing image-encoding program
US20130223526A1 (en) Image decoding method, image coding method, image decoding device, image coding device, and recording medium
WO2019104611A1 (en) System and method for controlling video coding within image frame
JP2017069866A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2006180298A (ja) 画像符号化制御方法及びその装置
RU2715519C1 (ru) Устройство кодирования видео с предсказанием, способ кодирования видео с предсказанием, программа кодирования видео с предсказанием, устройство декодирования видео с предсказанием, способ декодирования видео с предсказанием и программа декодирования видео с предсказанием
JP6191296B2 (ja) 動画像処理装置、動画像処理方法及びプログラム
JP2015211386A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US10652569B2 (en) Motion vector selection and prediction in video coding systems and methods
JP5281597B2 (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
JP2017073602A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
KR101441899B1 (ko) 움직임 정보 부호화 및 복호화 방법과 이를 이용한 장치
US20130215966A1 (en) Image encoding method, image decoding method, image encoding device, image decoding device
JP2013251759A (ja) 電子機器及び復号方法
JP5375697B2 (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法、及びプログラム
KR100932702B1 (ko) 고속모드선택방법 및 그 기록매체
KR20170044599A (ko) 움직임 추정을 이용한 영상 부호화 방법 및 장치
JP6101067B2 (ja) 画像処理装置及び画像処理プログラム
JP5274181B2 (ja) 動画像符号化装置および動画像符号化方法
JP5637010B2 (ja) 動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラム

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
FPAY Annual fee payment

Payment date: 20190812

Year of fee payment: 4