KR20110094765A - 움직임 예측 장치 및 방법과 영상 처리 장치 - Google Patents
움직임 예측 장치 및 방법과 영상 처리 장치 Download PDFInfo
- Publication number
- KR20110094765A KR20110094765A KR1020100014373A KR20100014373A KR20110094765A KR 20110094765 A KR20110094765 A KR 20110094765A KR 1020100014373 A KR1020100014373 A KR 1020100014373A KR 20100014373 A KR20100014373 A KR 20100014373A KR 20110094765 A KR20110094765 A KR 20110094765A
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- motion
- history information
- user input
- block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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
영상 처리 장치에 관한 것으로, 움직임 예측을 이용한 동영상 부호화에 관한 것이다.
클라우드 컴퓨팅이나, 원격 데스크탑과 같은 프로그램의 개발로 인하여, 영상을 원격으로 전송하는 방식이 나타나게 되었다. 그러나, 기존의 원격 데스크탑의 경우, 게임이나 3D 그래픽 프로그램, 동영상 재생 프로그램 등과 같이, 영상의 구조가 복잡하고, 변화량이 많은 경우, 데이터 전송량을 줄이기 위하여, 동영상 부호화 방식을 사용하여 데이터를 압축하여 전송한다. 동영상 부호화시에 대용량의 데이터를 처리하게 되면, 부호화 시간이 오래 걸리게 되며, 이로 인해 실시간성을 보장하기 어렵다.
사용자 입력 장치를 통한 사용자 입력에 기반하여, 동영상 부호화를 신속하게 수행하기 위한 움직임 예측 장치 및 방법과 이러한 움직임 예측 장치를 포함하는 영상 처리 장치가 제공된다.
일 측면에 따른 움직임 예측 장치는 입력 수신부, 입력 패턴 분석부 및 움직임 예측부를 포함한다. 입력 수신부는, 사용자 입력을 수신한다. 입력 패턴 분석부는 수신된 사용자 입력의 패턴을 분석한다. 저장부는 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장한다. 움직임 예측부는 저장부로부터 분석된 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 현재 프레임의 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하고, 결정된 탐색 위치를 이용하여 움직임 추정 블록의 움직임 예측을 수행한다.
입력 패턴 분석부는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석할 수 있다.
저장부는, 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 로컬 움직임 벡터 이력 정보 저장부와, 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 글로벌 움직임 벡터 이력 정보 저장부를 포함할 수 있다.
움직임 예측부는, 현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 움직임 추정 블록에 대응하는 블록의 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들에 대하여, 최신에 갱신된 값일수록 높은 가중치를 부여하고, 가중치가 부여된 움직임 벡터 값들을 평균하여, 초기 예측을 수행할 수 있다.
움직임 예측부는, 참조 프레임에서 결정된 탐색 위치를 기준으로 움직임 추정 블록에 대한 움직임 예측을 수행하여, 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 저장부에 갱신할 수 있다.
움직임 예측부는, 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 누적되면, 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제할 수 있다.
다른 측면에 따른 영상 처리 장치는 네트워크를 통하여 연결된 단말 장치와 통신하는 통신부와, 단말 장치로부터 통신부를 통해 전달된 사용자 입력을 수신하는 가상 사용자 입력부와, 사용자 입력에 따라 애플리케이션을 수행하여 복수 개의 영상 프레임을 생성하는 애플리케이션 수행부와, 복수 개의 영상 프레임을 부호화하는 부호화부를 포함한다. 부호화부는 영상 프레임의 블록별 움직임 예측을 수행할 때, 수신된 사용자 입력의 패턴을 분석하고, 분석된 패턴에 따른 움직임 벡터의 이력 정보를 이용하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정한다.
또 다른 측면에 따른 움직임 예측 방법은, 사용자 입력을 수신하는 동작과, 수신된 사용자 입력의 패턴을 분석하는 동작과, 사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부로부터 분석된 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하는 동작과, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 동작과, 결정된 탐색 위치를 이용하여 움직임 예측을 수행하는 동작을 포함한다.
사용자 입력 신호를 기반으로 블록 탐색 위치를 결정하여 움직임 예측을 수행할 수 있으므로, 움직임 예측의 수행시간을 줄일 수 있다. 따라서, 움직임 예측이 큰 비중을 차지하는 동영상 부호화를 효율적으로 신속하게 수행할 수 있다.
도 1은 움직임 예측 장치의 구성의 일 예를 나타내는 블록도이다.
도 2는 블록별 움직임 벡터 예측의 일 예를 나타내는 도면이다.
도 3은 도 1의 저장부에 포함된 로컬 움직임 벡터 이력 정보 저장부의 구성의 일 예를 나타내는 도면이다.
도 4는 도 1의 저장부에 포함된 글로벌 움직임 벡터 이력 정보 저장부의 구성의 일 예를 나타내는 도면이다.
도 5는 도 1의 움직임 예측 장치의 움직임 추정 블록에 대한 움직임 벡터의 초기 예측의 일 예를 나타내는 도면이다.
도 6은 도 1의 움직임 예측 장치를 포함하는 영상 처리 장치의 구성의 일 예를 나타내는 도면이다.
도 7은 도 1의 움직임 예측 장치를 이용하여, 동영상 서비스를 제공하는 시스템 구조의 일 예를 나타내는 도면이다.
도 8은 움직임 예측 방법의 일 예를 나타내는 흐름도이다.
도 9는 움직임 예측 방법의 다른 예를 나타내는 흐름도이다.
도 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항에 있어서,
상기 입력 패턴 분석부는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석하는 움직임 예측 장치. - 제1항에 있어서,
상기 저장부는,
블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 로컬 움직임 벡터 이력 정보 저장부; 및
프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 글로벌 움직임 벡터 이력 정보 저장부를 포함하는 움직임 예측 장치. - 제3항에 있어서,
상기 움직임 예측부는,
현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행하는 움직임 예측 장치. - 제3항에 있어서,
상기 움직임 예측부는,
움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행하는 움직임 예측 장치. - 제3항에 있어서,
상기 움직임 예측부는,
상기 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들에 대하여, 최신에 갱신된 값일수록 높은 가중치를 부여하고, 가중치가 부여된 움직임 벡터 값들을 평균하여, 초기 예측을 수행하는 움직임 예측 장치. - 제1항에 있어서,
상기 움직임 예측부는,
상기 참조 프레임에서 결정된 탐색 위치를 기준으로 상기 움직임 추정 블록에 대한 움직임 예측을 수행하여, 상기 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 상기 저장부에 갱신하는 움직임 예측 장치. - 제1항에 있어서,
상기 움직임 예측부는,
상기 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 누적되면, 상기 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제하는 움직임 예측 장치. - 네트워크를 통하여 연결된 단말 장치와 통신하는 통신부;
상기 단말 장치로부터 상기 통신부를 통해 전달된 사용자 입력을 수신하는 가상 사용자 입력부;
상기 사용자 입력에 따라 애플리케이션을 수행하여 복수 개의 영상 프레임을 생성하는 애플리케이션 수행부; 및
상기 복수 개의 영상 프레임을 부호화하는 부호화부를 포함하고,
상기 부호화부는, 영상 프레임의 블록별 움직임 예측을 수행할 때, 상기 수신된 사용자 입력의 패턴을 분석하고, 상기 분석된 패턴에 따른 움직임 벡터의 이력 정보를 이용하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하고, 초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 영상 처리 장치. - 제9항에 있어서,
상기 통신부는, 상기 부호화된 복수 개의 영상 프레임을 상기 단말 장치로 전송하는 영상 처리 장치. - 제9항에 있어서,
상기 부호화부는,
블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보 및 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 저장부를 포함하는 영상 처리 장치. - 제11항에 있어서,
상기 부호화부는,
현재 영상 프레임의 미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 현재 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 글로벌 움직임 벡터 이력 정보를 참조하여, 상기 움직임 추정 블록의 움직임 벡터를 초기 예측하는 영상 처리 장치. - 제11항에 있어서,
상기 부호화부는,
움직임 추정 블록에 대응하는 블록에 대한 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이의 변화량이 임계값 이하인 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 상기 움직임 추정 블록의 움직임 벡터를 초기 예측하는 영상 처리 장치. - 제9항에 있어서,
상기 부호화부는,
상기 참조 프레임에서 결정된 탐색 위치를 기준으로 상기 움직임 추정 블록에 대한 움직임 예측을 수행하여, 상기 움직임 추정 블록의 움직임 벡터를 생성하고, 생성된 움직임 벡터를 상기 저장부에 갱신하는 영상 처리 장치. - 제9항에 있어서,
상기 부호화부는,
상기 저장부에 저장된 움직임 벡터 이력 정보가 일정 크기 이상이 되면, 상기 움직임 벡터 이력 정보에서 오래된 움직임 벡터 정보를 삭제하는 영상 처리 장치. - 사용자 입력을 수신하는 단계;
상기 수신된 사용자 입력의 패턴을 분석하는 단계;
사용자 입력 패턴에 따른 움직임 벡터의 이력 정보를 저장하는 저장부로부터 상기 분석된 패턴에 따른 움직임 벡터의 이력 정보를 참조하여, 움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계;
초기 예측된 움직임 벡터를 이용하여, 참조 프레임에서 움직임 추정 블록에 정합하는 블록의 탐색 위치를 결정하는 단계; 및
결정된 탐색 위치를 이용하여 움직임 예측을 수행하는 단계를 포함하는 움직임 예측 방법. - 제16항에 있어서,
상기 사용자 입력의 패턴을 분석하는 단계는, 사용자 입력 장치의 타입 및 사용자 입력 장치의 타입에 따른 입력 값으로부터 입력 패턴을 분석하는 단계를 포함하는 움직임 예측 방법. - 제16항에 있어서,
상기 저장부에 블록별 움직임 벡터의 이력을 나타내는 로컬 움직임 벡터 이력 정보를 저장하는 단계; 및
상기 저장부에 프레임 단위의 글로벌 움직임 벡터의 이력을 나타내는 글로벌 움직임 벡터 이력 정보를 저장하는 단계를 더 포함하는 움직임 예측 방법. - 제18항에 있어서,
움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계는,
미리 설정된 개수의 블록들에 대하여 움직임 벡터를 예측하고, 예측된 움직임 벡터들 사이의 표준 편차가 임계값 이하인 경우, 영상 프레임에 글로벌 움직임 벡터가 있는 것으로 결정하고, 상기 글로벌 움직임 벡터 이력 정보를 참조하여, 초기 예측을 수행하는 움직임 예측 방법. - 제18항에 있어서,
움직임 추정 블록의 움직임 벡터를 초기 예측하는 단계는,
움직임 추정 블록에 대응하는 블록의 로컬 움직임 벡터 이력 정보에 포함된 복수 개의 움직임 벡터 값들 사이에 미리 설정된 패턴이 발견되는 경우, 상기 로컬 움직임 벡터 이력 정보를 이용하여, 초기 예측을 수행하는 움직임 예측 방법.
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 true KR20110094765A (ko) | 2011-08-24 |
KR101630688B1 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014092293A1 (ko) * | 2012-12-12 | 2014-06-19 | 에스케이플래닛 주식회사 | 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치 |
CN110737799A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 视频搜索的方法、装置、设备和介质 |
WO2020060236A1 (ko) * | 2018-09-20 | 2020-03-26 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
Families Citing this family (55)
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 |
US9213556B2 (en) | 2012-07-30 | 2015-12-15 | Vmware, Inc. | Application directed user interface remoting using video encoding techniques |
US9277237B2 (en) | 2012-07-30 | 2016-03-01 | Vmware, Inc. | User interface remoting through video encoding techniques |
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 |
US20140055339A1 (en) * | 2012-08-22 | 2014-02-27 | David Stanasolovich | Adaptive visual output based on motion compensation of a mobile device |
US9214005B2 (en) | 2012-12-18 | 2015-12-15 | 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 |
US8982137B2 (en) * | 2012-12-18 | 2015-03-17 | 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 |
CN105518704A (zh) | 2013-05-03 | 2016-04-20 | 柯法克斯公司 | 检测和分类使用移动设备采集的视频中对象的系统和方法 |
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 |
US11062176B2 (en) | 2017-11-30 | 2021-07-13 | Kofax, Inc. | Object detection and image cropping using a multi-detector approach |
EP3788787A1 (en) | 2018-06-05 | 2021-03-10 | Beijing Bytedance Network Technology Co. Ltd. | Interaction between ibc and atmvp |
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 |
KR102660666B1 (ko) | 2018-06-29 | 2024-04-26 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut들을 업데이트하기 위한 조건들 |
SG11202012293RA (en) | 2018-06-29 | 2021-01-28 | Beijing Bytedance Network Technology Co Ltd | Update of look up table: fifo, constrained fifo |
TWI731360B (zh) | 2018-06-29 | 2021-06-21 | 大陸商北京字節跳動網絡技術有限公司 | 查找表的使用條件 |
CN110662057B (zh) | 2018-06-29 | 2022-06-21 | 北京字节跳动网络技术有限公司 | 视频处理方法、装置、设备以及存储比特流的方法 |
EP3791588A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Checking order of motion candidates in lut |
KR20210025537A (ko) | 2018-06-29 | 2021-03-09 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념 |
CN112369030B (zh) * | 2018-07-06 | 2023-11-10 | 寰发股份有限公司 | 解码器的视频解码方法及装置 |
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 |
CN110944193B (zh) | 2018-09-24 | 2023-08-11 | 北京字节跳动网络技术有限公司 | 视频编码和解码中的加权双向预测 |
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 |
CN112840645B (zh) * | 2018-10-10 | 2023-12-12 | 寰发股份有限公司 | 视频编码系统中组合多个预测子用于块预测的方法及装置 |
PL3861743T3 (pl) * | 2018-10-24 | 2024-05-13 | Huawei Technologies Co., Ltd. | Dekoder wideo i sposoby |
CN116886926A (zh) | 2018-11-10 | 2023-10-13 | 北京字节跳动网络技术有限公司 | 成对平均候选计算中的取整 |
WO2020098695A1 (en) * | 2018-11-13 | 2020-05-22 | Beijing Bytedance Network Technology Co., Ltd. | Construction method for a single type motion candidate list |
WO2020130617A1 (ko) * | 2018-12-18 | 2020-06-25 | 엘지전자 주식회사 | 비디오 데이터를 처리하기 위한 방법 및 장치 |
KR20210118068A (ko) * | 2018-12-29 | 2021-09-29 | 브이아이디 스케일, 인크. | 히스토리 기반 모션 벡터 예측 |
WO2020143824A1 (en) | 2019-01-13 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and shared merge list |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的插入顺序 |
WO2020164544A1 (en) * | 2019-02-13 | 2020-08-20 | Beijing Bytedance Network Technology Co., Ltd. | Updating of history based motion vector prediction tables |
WO2020164628A1 (en) * | 2019-02-17 | 2020-08-20 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate list construction for intra block copy (ibc) mode and non-ibc inter mode |
WO2020169109A1 (en) * | 2019-02-22 | 2020-08-27 | Beijing Bytedance Network Technology Co., Ltd. | Sub-table for history-based affine mode |
US11025948B2 (en) * | 2019-02-28 | 2021-06-01 | Tencent America LLC | Method and apparatus for motion prediction in video coding |
WO2020192611A1 (en) * | 2019-03-22 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between merge list construction and other tools |
CN110245554B (zh) * | 2019-04-29 | 2021-06-29 | 中科智城(广州)信息科技有限公司 | 一种行人运动趋势的预警的方法、系统平台及存储介质 |
CN114287129A (zh) | 2019-08-24 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 初始化基于历史的运动矢量预测器表 |
CN113259686A (zh) * | 2021-07-07 | 2021-08-13 | 摩尔线程智能科技(北京)有限责任公司 | 运动矢量搜索方法、装置和视频编码系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040084327A (ko) * | 2003-03-27 | 2004-10-06 | 최윤식 | 적응적 탐색 영역을 이용한 움직임 예측 방법 |
JP2007272733A (ja) * | 2006-03-31 | 2007-10-18 | Sony Corp | 画像処理装置および方法、並びにプログラム |
JP2008011455A (ja) * | 2006-06-30 | 2008-01-17 | Sanyo Electric Co Ltd | 符号化方法 |
KR20080022843A (ko) * | 2006-09-08 | 2008-03-12 | 엘지전자 주식회사 | 움직임 벡터를 이용한 탐색 영역 조절 방법 |
Family Cites Families (12)
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 |
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 |
WO2007122554A2 (en) * | 2006-04-21 | 2007-11-01 | Koninklijke Philips Electronics N.V. | Picture enhancing increasing precision smooth profiles |
JP4709794B2 (ja) | 2007-03-15 | 2011-06-22 | 株式会社東芝 | 動き推定装置及びその方法 |
KR101392732B1 (ko) * | 2007-08-20 | 2014-05-08 | 삼성전자주식회사 | 손떨림에 의한 움직임 추정 장치 및 방법, 그를 이용한영상 촬상 장치 |
-
2010
- 2010-02-17 KR KR1020100014373A patent/KR101630688B1/ko active IP Right Grant
- 2010-12-07 US US12/962,091 patent/US8724704B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040084327A (ko) * | 2003-03-27 | 2004-10-06 | 최윤식 | 적응적 탐색 영역을 이용한 움직임 예측 방법 |
JP2007272733A (ja) * | 2006-03-31 | 2007-10-18 | Sony Corp | 画像処理装置および方法、並びにプログラム |
JP2008011455A (ja) * | 2006-06-30 | 2008-01-17 | Sanyo Electric Co Ltd | 符号化方法 |
KR20080022843A (ko) * | 2006-09-08 | 2008-03-12 | 엘지전자 주식회사 | 움직임 벡터를 이용한 탐색 영역 조절 방법 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014092293A1 (ko) * | 2012-12-12 | 2014-06-19 | 에스케이플래닛 주식회사 | 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치 |
US10747755B2 (en) | 2012-12-12 | 2020-08-18 | Sk Planet Co., Ltd. | Method for providing immediate result for user input, and apparatus therefor |
CN110737799A (zh) * | 2018-07-03 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 视频搜索的方法、装置、设备和介质 |
CN110737799B (zh) * | 2018-07-03 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 视频搜索的方法、装置、设备和介质 |
WO2020060236A1 (ko) * | 2018-09-20 | 2020-03-26 | 삼성전자주식회사 | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20110200107A1 (en) | 2011-08-18 |
KR101630688B1 (ko) | 2016-06-16 |
US8724704B2 (en) | 2014-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101630688B1 (ko) | 움직임 예측 장치 및 방법과 영상 처리 장치 | |
RU2762933C2 (ru) | Кодирование и декодирование видео с повышенной устойчивостью к ошибкам | |
US11647219B2 (en) | Image encoding and decoding method with merge flag and motion vectors | |
CN103609115A (zh) | 具有基于知觉的帧内切换的模式决策 | |
CN103733621A (zh) | 基于低复杂度差错传播追踪的速率失真优化的视频编码模式选择 | |
CN103609122A (zh) | 用于视频编码的率失真优化 | |
JP5541364B2 (ja) | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、画像復号プログラム、及び画像符号化プログラム | |
KR20120034044A (ko) | 영상 변환 부호화/복호화 방법 및 장치 | |
JP6191296B2 (ja) | 動画像処理装置、動画像処理方法及びプログラム | |
CN107257459B (zh) | 动态图像预测解码装置以及动态图像预测解码方法 | |
KR101796876B1 (ko) | 움직임 추정을 이용한 영상 부호화 방법 및 장치 | |
US10652569B2 (en) | Motion vector selection and prediction in video coding systems and methods | |
KR101441899B1 (ko) | 움직임 정보 부호화 및 복호화 방법과 이를 이용한 장치 | |
US20130215966A1 (en) | Image encoding method, image decoding method, image encoding device, image decoding device | |
JP6101067B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2020182236A (ja) | 縮小された予測動きベクトルの候補に基づいて、動きベクトルを符号化/復号化する方法及び装置 | |
AU2018204301A1 (en) | Image predictive encoding device, image predictive encoding method, image predictive encoding program, image predictive decoding device, image predictive decoding method, and image predictive decoding program | |
JP2012209705A (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 |