KR20210133844A - 단안 이벤트-기반 센서를 사용하는 모션 추정의 시스템 및 방법 - Google Patents
단안 이벤트-기반 센서를 사용하는 모션 추정의 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210133844A KR20210133844A KR1020200148201A KR20200148201A KR20210133844A KR 20210133844 A KR20210133844 A KR 20210133844A KR 1020200148201 A KR1020200148201 A KR 1020200148201A KR 20200148201 A KR20200148201 A KR 20200148201A KR 20210133844 A KR20210133844 A KR 20210133844A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- size
- event density
- module
- motion estimation
- 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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/57—Motion estimation characterised by a search window with variable size or shape
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법이 제공된다. 방법은 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하는 단계, 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하는 단계, 결정된 이벤트 밀도 계수를 임계 값과 비교하는 단계, 비교에 기초하여 블록의 모션 벡터를 추정하는 단계, 및 블록의 추정된 모션 벡터에 기초하여 비디오 스트림 내 블록을 처리하는 단계를 포함하되, 블록의 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 블록에서 축적된 이벤트들의 수에 대응한다.
Description
본 개시의 예시적인 실시 예들은 비디오 스트림들의 처리에 관한 것으로, 보다 상세하게는, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템 및 방법에 관한 것이다.
전통적인 카메라는 고정된 시간 간격들로 프레임들을 출력할 수 있다. 또한, 연속적인 프레임들은 엄청난 양의 중복 정보, 예를 들어, 변화가 발생되지 않은 부분들에 관한 정보를 포함한다. 이로 인해 메모리 액세스, RAM(Random access memory), 디스크 공간, 에너지, 계산 전력, 및 시간 등과 같은 리소스들이 낭비된다. 또한, 각 프레임이 모든 픽셀에 동일한 노출 시간을 부과하는 점을 고려하면, 매우 어두운 그리고 매우 밝은 영역들을 포함하는 장면들을 선명하게 캡처하기가 어려워 진다. 이러한 결함들을 해결하기 위해, 이벤트-기반 센서들이 프레임에서 변화를 목격하는 부분을 검출하기 위해 사용된다. 그러면, 전체 프레임 대신에, 이러한 부분들만이 추가로 처리된다.
특히, 이벤트-기반 센서는 마이크로 초 해상도로 비동기 이벤트들을 출력하고, 적어도 하나의 픽셀의 값에서 변화를 감지한 경우에만 이벤트를 생성한다. 그러므로, 고정된 프레임 속도로 전체 이미지들을 낭비적으로 전송하는 대신, 장면에서 이동에 의해 야기된 로컬 픽셀-레벨 변화들은 그것들이 발생한 시점에서만 전송된다. 그 결과 초당 수천 프레임들로 실행되는 전통적인 고속 비전 센서들과 동등하거나 그 이상인 마이크로 초 해상도로 이벤트들의 스트림이 생성된다. 그러므로, 프레임의 관련(관심) 부분에서만 모션을 추정함으로써, 전체 과정이 상대적으로 간단해진다.
장면, 예를 들어, 이벤트-기반 센서들에 의해 모니터링되는 장면에서 모션을 추정하기 위해, 프레임으로부터의 각 블록은 기준(reference) 프레임으로부터의, 예를 들어, 이전 프레임으로부터의 블록과 비교된다. 모션 추정과 연관된 복잡도는 해상도 및 프레임 속도와 같은, 계수(인자, factor)들에 따라 다르다. 예를 들어, 비디오 스트림의 해상도 및 프레임 속도가 증가하면서 복잡도가 증가한다. 유사하게, 고정 검색 메커니즘, 검색 범위, 모션 벡터들의 전진(세차 운동, precession), 및 블록 파티션 크기와 같은 다른 계수들은 또한 모션 추정과 연관된 복잡도에 기여한다. 예를 들어, 상당히 높은 처리 리소스들이 요구되므로, 모션을 추정하기 위해 프레임의 각 블록을 기준 프레임의 모든 블록들과 매칭시키는 것은 실제로 불가능하다. 그러므로, 기준 프레임의 일부 블록들만이, 예를 들어, 원래 블록의 부근에 있는 블록들만이 매칭된다. 따라서, 기존 기술들은 본질적으로 조각화되고 또한 복잡하다. 더욱이, 기존 기술들에 의한 비디오 스트림의 처리와 연관된 비용은 높다.
그러므로, 인코딩 애플리케이션들, 스트리밍 애플리케이션들, 및 압축 애플리케이션들을 위한 것과 같은, 비디오 스트림들의 처리를 위한 모션 추정의 포괄적이고 비용-효율적인 접근이 필요하다.
본 발명의 목적은 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템 및 방법을 제공하는데 있다.
하나 이상의 예시적인 실시 예는 비디오 스트림들의 처리를 제공하고, 보다 상세하게는, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템 및 방법을 제공한다.
예시적인 실시 예의 양상에 따르면, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법이 제공된다. 상기 방법은 상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하는 단계, 상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하는 단계, 상기 결정된 이벤트 밀도 계수를 임계 값과 비교하는 단계, 상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하는 단계, 및 상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하는 단계를 포함한다. 상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응한다.
예시적인 실시 예의 다른 양상에 따르면, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법이 제공된다. 상기 방법은 상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하는 단계, 상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하는 단계, 상기 결정된 이벤트 밀도 계수를 상기 이벤트 밀도 계수의 임계 값과 비교하는 단계, 상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하여 상기 비디오 스트림을 처리하는 단계, 상기 블록에 대한 상기 이벤트 밀도 계수와 상기 임계 값의 상기 비교에 기초하여 이벤트 밀도 맵을 생성하는 단계, 상기 이벤트 밀도 맵의 공간 상관 분석에 기초하여 블록-레벨 분절 맵을 생성하는 단계, 및 상기 블록-레벨 분절 맵에 기초하여 상기 복수의 블록들 각각의 크기를 결정하고 모션 추정을 위한 상기 적어도 하나의 프레임을 분절하는 단계를 포함한다. 상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응한다. 유사한 밀도 영역들은 함께 그룹화되어 상기 블록-레벨 분절 맵을 생성한다. 상기 크기는 상기 모션 추정을 위한 최소 지원 크기이다.
예시적인 실시 예의 다른 양상에 따르면, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템이 제공된다. 상기 시스템이 포함하는 적어도 하나의 프로세서는, 상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하도록 구성된 분절 모듈, 상기 분절 모듈과 통신하고, 상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하도록 구성된 결정 모듈, 상기 결정 모듈과 통신하고, 상기 결정된 이벤트 밀도 계수를 임계 값과 비교하도록 구성된 비교 모듈, 상기 비교 모듈과 통신하고, 상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하도록 구성된 추정 모듈, 및 상기 추정 모듈과 통신하고, 상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하도록 구성된 처리 모듈을 구현하도록 구성된다. 상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응한다.
본 발명의 실시 예에 따르면, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템 및 방법을 제공된다.
또한, 본 발명의 실시 예에 따르면, 이벤트 밀도 계수에 기초하여 모션 벡터를 추정함으로써, 중복 정보를 위한 연산이 감소되고 처리 속도가 향상된, 비디오 스트림을 처리하는 모션 추정의 시스템 및 방법을 제공된다.
예시의 상술된 및/또는 다른 특징들, 양상들, 및 다른 이점들은 첨부된 도면들을 참조하여 후술되는 상세한 설명들을 읽으면서 보다 명백하게 이해될 것이다.
도 1은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템의 블록도를 도시한다.
도 2는 예시적인 실시 예에 따른 시스템에 의해 처리된 예시적인 비트 스트림을 도시한다.
도 3은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 4는 다른 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 5는 또 다른 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 6은 예시적인 실시 예에 따른 한 쌍의 프레임들에 걸친 블록 매칭을 나타내는 예시를 도시한다.
도 7은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 1은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템의 블록도를 도시한다.
도 2는 예시적인 실시 예에 따른 시스템에 의해 처리된 예시적인 비트 스트림을 도시한다.
도 3은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 4는 다른 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 5는 또 다른 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
도 6은 예시적인 실시 예에 따른 한 쌍의 프레임들에 걸친 블록 매칭을 나타내는 예시를 도시한다.
도 7은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법을 나타내는 순서도를 도시한다.
이하에서, 첨부된 도면들에서 도시된 예시적인 실시 예들이 보다 상세하게 설명될 것이고, 명세서 전체에서 유사한 참조 번호들은 유사한 구성 요소들을 지칭한다. 이와 관련하여, 예시적인 실시 예들은 상이한 형태들을 가질 수 있고 본 명세서에서 명시된 설명들로 제한되는 것으로 해석되어서는 아니 된다. 따라서, 예시적인 실시 예들은 단지, 도면들을 참조하여, 양상들을 설명하기 위해 기술된다. 본 명세서에서 사용된, 용어 “및/또는”은 하나 이상의 연관된 열거 항목들의 임의의 그리고 모든 조합들을 포함한다. “적어도 하나의”와 같은 표현들은, 요소들의 목록에 선행하면, 요소들의 목록 전체를 수식하고, 목록의 개별 요소들을 수식하지 않는다. 예를 들어, 표현 “a, b, 및 c 중 적어도 하나”는 a 만, b 만, c 만, a 및 b 모두, a 및 c 모두, b 및 c 모두, 그리고 a, b, 및 c 모두를 포함하는 것으로 이해되어야 한다.
또한, 도면들에서의 요소들은 단순화를 위해 도시되었으며, 반드시 축적에 맞게 그려지지 않았을 수 있다. 예를 들어, 순서도들은 본 개시의 양상들의 이해를 향상시키는 것을 돕기 위해 단계들에서의 방법을 예시한다. 더욱이, 장치의 구성의 측면에서, 장치의 하나 이상의 구성 요소가 기존 기호들에 의해 도면들에서 표시되었을 수 있고, 도면들은 세부 사항들이 도면들을 모호하게 하지 않도록 예시적인 실시 예들을 이해하는데 적합한 특정 세부 사항들만을 도시할 수 있고, 이는 본 발명이 속한 기술 분야에서의 통상의 기술자에 의해 명백하게 이해될 것이다.
이하에서, 첨부된 도면들을 참조하여 예시적인 실시 예들이 보다 상세하게 설명될 것이다.
도 1은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림(video stream)을 처리하는 모션 추정의 시스템(100)의 블록도를 도시한다. 시스템(100)은 단안(monocular) 이벤트-기반 센서와 통신하여 캡처된 장면의 입력 데이터를 수신할 수 있다. 입력 데이터는 장면의 이벤트 데이터 및 장면의 픽셀 세기 데이터의 스트림을 포함할 수 있으나, 이에 제한되지 않는다. 장면의 이벤트 데이터는 이벤트 속도 데이터 및 어드레스 이벤트 표현(AER; address event representation) 데이터를 더 포함할 수 있으나, 이에 제한되지 않는다.
예시적인 실시 예에서, 단안 이벤트-기반 센서는 액티브 픽셀 센서(APS; active pixel sensor) 및 이벤트-기반 센서(EBS; event-based sensor)를 포함할 수 있으나, 이에 제한되지 않는다. APS는 장면의 픽셀 세기 데이터의 스트림을 획득하도록 구성될 수 있는 반면, EBS는 장면의 이벤트 데이터를 획득하도록 구성될 수 있다. 그러므로, 시스템(100)은 모션 추정을 위한 입력 데이터를 수신하여 비디오 스트림을 처리할 수 있다.
예시적인 실시 예에서, 시스템(100)은 프로세서(102), 메모리(104), 모듈들(106), 및 데이터(108)를 포함할 수 있으나, 이에 제한되지 않는다. 모듈들(106) 및 메모리(104)는 프로세서(102)에 연결될 수 있다. 프로세서(102)는 단일 처리 유닛(unit) 또는 다수의 유닛들일 수 있으며, 이들은 다수의 연산 유닛들을 포함할 수 있다. 프로세서(102)는 하나 이상의 마이크로 프로세서들, 마이크로 컴퓨터들, 마이크로 컨트롤러들, 디지털 신호 프로세서들, 중앙 처리 장치들, 상태 머신들, 논리 회로들, 및/또는 연산 명령어들에 기초한 신호들을 조작하는 임의의 장치들로서 구현될 수 있다. 프로세서(102)는 메모리(104)에 저장된 데이터 및 컴퓨터-판독가능 명령어들을 페치(fetch)하고 실행하도록 구성될 수 있다.
메모리(104)는, 예를 들어, 정적 랜덤 액세스 메모리(SRAM; static random access memory) 및 동적 랜덤 액세스 메모리(DRAM; dynamic random access memory)와 같은 휘발성 메모리, 및/또는 읽기-전용 메모리(ROM; read-only memory), 이레이저블(erasable) 프로그래머블(programmable) ROM, 플레시 메모리들, 하드 디스크들, 광 디스크들, 및 자기 테이프들과 같은 비-휘발성 메모리를 포함하는 임의의 비-일시적 컴퓨터-판독가능 매체를 포함할 수 있다.
모듈들(106)은 특정 업무들을 수행하거나 데이터 타입들을 구현하는 루틴(routine)들, 프로그램들, 객체들, 구성 요소들, 데이터 구조들, 등을 포함할 수 있다. 모듈들(106)은 또한 신호 프로세서(들), 상태 머신(들), 논리 회로들, 및/또는 연산 명령어들에 기초한 신호들을 조작하는 임의의 다른 장치나 또는 구성 요소로서 구현될 수 있다.
또한, 모듈들(106)은 하드웨어, 처리 유닛에 의해 실행되는 명령어들, 또는 이들의 조합으로 구현될 수 있다. 처리 유닛은 컴퓨터, 프로세서(102)와 같은 프로세서, 상태 머신, 논리 어레이 또는 명령어들을 처리할 수 있는 임의의 다른 적절한 장치들을 포함할 수 있다. 처리 유닛은 범용 프로세서가 필요한 업무들을 수행하게 하는 명령어들을 실행하는 범용 프로세서일 수 있거나, 처리 유닛은 필요한 기능들을 수행하기 위해 전용될 수 있다. 다른 예시적인 실시 예에서, 모듈들(106)은, 프로세서/처리 유닛에 의해 실행되면, 임의의 설명된 기능들을 수행할 수 있는 머신-판독가능 명령어들(소프트웨어)일 수 있다.
구현에서, 모듈들(106)은 분절(segmenting) 모듈(110), 결정 모듈(112), 비교 모듈(114), 추정 모듈(116), 처리 모듈(118), 할당 모듈(120), 및 생성 모듈(122)을 포함할 수 있다. 분절 모듈(110), 결정 모듈(112), 비교 모듈(114), 추정 모듈(116), 처리 모듈(118), 할당 모듈(120), 및 생성 모듈(122)은 서로 통신할 수 있다. 또한, 데이터(108)는 모듈들(106) 중 하나 이상에 의해 처리되고, 수신되고, 그리고 생성된 데이터를 저장하도록 구성될 수 있다.
단안 이벤트-기반 센서로부터 입력 데이터를 수신하면, 분절 모듈(110)은 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절(segment)할 수 있다. 예시적인 실시 예에서, 분절 모듈(110)은 결정 모듈(112)과 통신할 수 있다. 결정 모듈(112)은 프레임의 각 블록에 대한 이벤트 밀도 계수(event density factor)를 결정할 수 있다. 블록의 이벤트 밀도 계수는 미리 정의된 시간 기간에서 프레임들에 걸쳐 블록에서 축적된 이벤트들의 수를 나타낼 수 있다. 예시적인 실시 예에서, 이벤트 밀도 계수는 후술되는 수학식 1에 기초하여 결정될 수 있고, 여기서 Dxy는 블록 위치(x, y)에서의 이벤트 밀도이고, Exy는 이벤트 존재 여부(+1/-1이면 이벤트 존재, 0이면 이벤트 없음)이고, h는 밀도 계산을 위한 블록의 높이이고, 그리고 w는 밀도 계산을 위한 블록의 폭이다.
결정 모듈(112)은 비교 모듈(114)과 통신할 수 있다.
비교 모듈(114)은 결정된 이벤트 밀도 계수와 이벤트 밀도 계수의 미리 정의된 임계 값을 비교할 수 있다. 미리 정의된 임계 값은 장면에서 캡처될 모션의 감도(sensitivity)에 기초하여 선택될 수 있다. 비교 모듈(114)은 추정 모듈(116)과 통신할 수 있다.
추정 모듈(116)은 비교에 기초하여, 블록에서의 모션 벡터를 추정할 수 있다. 블록의 모션 벡터는 프레임들에 걸친 블록의 이동을 나타낸다. 모션 벡터는 2개의 프레임들 사이의 블록의 이동에서 변화를 나타내는 양-방향 포인터로서 이해될 수 있다. 이동은 수평 및 수직 좌표들의 측면에서 표시될 수 있다. 추정 모듈(116)은 처리 모듈(118)과 통신할 수 있다. 처리 모듈(118)은 추정된 모션 벡터에 기초하여 비디오 스트림 내 블록들을 처리할 수 있다.
예시적인 실시 예에서, 비교 모듈(114)은 처리 모듈(118)과 통신할 수 있다. 예시적인 실시 예에서, 이벤트 밀도 계수가 미리 정의된 임계 값보다 높으면, 추정 모듈(116)은 블록에서의 모션 벡터를 추정할 수 있다.
비교 모듈(114)은 또한 할당 모듈(120)과 통신할 수 있다. 예시적인 실시 예에서, 이벤트 밀도 계수가 미리 정의된 임계 값보다 낮으면, 할당 모듈(120)은 블록에 제로 모션 벡터를 할당하여 그 블록을 처리되지 않을 것으로 마크(mark)할 수 있다. 그러므로, 제로 모션 벡터는 그 블록이 더 이상 처리되지 않음을 나타낸다. 시스템(100)은 이벤트 밀도 계수가 미리 정의된 임계 값보다 높은 경우들에서만 블록을 처리한다. 시스템(100)은 미리 정의된 임계 값보다 낮은 이벤트 밀도 계수를 갖는 블록을 처리하지 않는다. 이것은 비디오 스트림 처리와 연관된 복잡도, 시간, 및 비용을 크게 감소시킨다.
다른 예시적인 실시 예에서, 비교 모듈(114)은 생성 모듈(122)과 통신할 수 있다. 생성 모듈(122)은 이벤트 밀도 맵을 생성할 수 있다. 이벤트 밀도 맵은 각 블록에 대한 미리 정의된 임계 값과 이벤트 밀도 계수의 비교에 기초하여 생성될 수 있다. 그러므로, 이벤트 밀도 맵은 프레임의 모든 블록들의 이벤트 밀도 계수들을 나타낼 수 있다. 예시적인 실시 예에서, 이벤트 밀도 맵을 생성하기 위해, 시스템(100)은 이벤트 밀도 계수에 대한 복수의 임계 값들을 결정할 수 있다. 또한, 블록의 이벤트 밀도 계수와 복수의 임계 값들과의 비교에 기초하여, 블록은 이벤트 밀도 맵에서 표시될 수 있다. 예를 들어, 시스템(100)은 이벤트 밀도 계수의 3개의 임계 값들(TH1, TH2, 및 TH3)을 설정하여, 이벤트 밀도 맵을 생성할 수 있다. 예를 들어, 각 블록은 제1 내지 제4 그룹들 중 하나에 속할 수 있고, 제1 그룹에서 Dxy < TH1이고, 제2 그룹에서 TH1 < Dxy < TH2이고, 제3 그룹에서 TH2 < Dxy < TH3이고, 그리고 제4 그룹에서 TH3 < Dxy이다.
또한, 시스템(100)은 이벤트 밀도 맵의 공간 상관 분석(spatial correlation analysis)을 수행할 수 있다. 이벤트 밀도 맵의 공간 상관 분석에 기초하여, 생성 모듈(122)은 블록-레벨 분절 맵을 생성할 수 있다. 블록-레벨 분절 맵에서, 유사한 밀도 영역들은 함께 그룹화될 수 있다. 생성 모듈(122)은 결정 모듈(112)과 통신할 수 있다.
블록-레벨 분절 맵에 기초하여, 결정 모듈(112)은 블록들의 크기를 결정하여 모션 추정을 위해 프레임을 분절하도록 적응될 수 있다. 결정 모듈(112)에 의해 결정된 크기는 모션 추정을 위한 최소 지원 크기(minimum supported size)일 수 있다.
예시적인 실시 예에서, 결정 모듈(112)은 처리 모듈(118)과 더 통신할 수 있다. 처리 모듈(118)은, 복수의 블록들이 제1 크기이면, 블록에 대한 모션 추정을 수행할 수 있다. 유사하게, 처리 모듈(118)은, 복수의 블록들이 제1 크기와 다른 제2 크기이면, 블록에 대한 모션 추정을 수행할 수 있다. 처리 모듈(118)은 또한 분절 모듈(110)과 통신할 수 있다. 분절 모듈(110)은 제1 크기 및 제2 크기의 블록에 대한 모션 추정과 연관된 복잡도에 기초하여, 프레임을 제1 크기 및 제2 크기 중 하나의 복수의 블록들로 분절할 수 있다.
예를 들어, 시스템(100)은 블록들의 제1 크기를 갖는 모션 추정과 연관된 복잡도를 결정할 수 있다. 또한, 시스템(100)은 블록들의 제1 크기가 비디오 스트림의 처리 또는 모션 추정을 위한 최소 가능 크기(minimum possible size)인지를 결정할 수 있다. 시스템(100)이 제1 크기가 최소 가능 크기라고 결정하면, 시스템(100)은 처리를 위해 프레임의 다음 블록으로 진행할 수 있다. 시스템(100)이 제1 크기가 최소 가능 크기가 아니라고 결정하면, 분절 모듈(100)은 프레임을 제2 크기의 블록으로 더 분절할 수 있다.
예시에서, 프레임은 128x128의 블록들로 분절될 수 있다. 시스템(100)이 이것이 최소 가능 크기가 아니라고 결정하면, 이 후 프레임은 64x64의 블록들로 분절될 수 있다. 시스템(100)이 여전히 이것이 최소 가능 크기가 아니라고 결정하면, 프레임은 32x32의 블록들로 분절될 수 있다. 그러므로, 모션 추정을 위한 최소 가능 크기가 획득될 때까지, 시스템(100)은 계속 프레임을 분절할 수 있다. 그러므로, 복잡도 및 최소 가능 크기에 따라, 프레임은 비디오 스트림을 처리하기 위해 시스템(100)에 의해 분절된다.
다른 예시적인 실시 예에서, 블록-레벨 분절 맵에 기초하여, 추정 모듈(116)은 모션 추정을 위한 프레임의 분절을 위해 블록들의 제1 크기를 추정할 수 있다. 또한, 결정 모듈(112)은 프레임의 각 블록에 대한 이벤트 밀도 계수를 결정할 수 있다. 블록은 제1 크기일 수 있다. 이벤트 밀도 맵에 기초하여, 비교 모듈(114)은 이벤트 밀도 계수를 이벤트 밀도 계수에 대한 미리 정의된 임계 값과 비교할 수 있다. 비교에 기초하여, 추정 모듈(116)은 블록에서 모션 벡터를 추정하여 비디오 스트림을 처리할 수 있다. 예시적인 실시 예에 따르면, 시스템(100)이 EBS로부터의 데이터에 기초하여 생성된 블록 분절 맵으로부터 파생된 블록 크기를 갖는 프레임을 처리하는 낮은 복잡도 솔루션이 제공될 수 있다.
도 2는 예시적인 실시 예에 따른 시스템(100)에 의해 처리된 예시적인 비트 스트림(202) 및 예시적인 히트 맵(204)을 도시한다. 도시된 바와 같이, 이벤트 밀도 계수가 제로인 프레임의 블록들이 있고, 이것들은 EBS에 의해 감지되는 이벤트들이 없는 부분들이다. 따라서, 시스템(100)은 제로 모션 벡터를 이러한 부분들에 할당하고, 이러한 부분들은 처리되지 않는다. 또한, 모션 벡터가 제로가 아니고 일부 이동이 검출된 블록들에서, 블록은 자세한 분석을 위해 서브-블록들로 더 분절될 수 있다.
도 3은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법(300)을 나타내는 순서도를 도시한다. 예시적인 실시 예에서, 방법(300)은 컴퓨터로 구현된 방법(300)일 수 있다. 예시적인 실시 예에서, 방법(300)은 프로세서(102)에 의해 실행될 수 있다. 또한, 도 1 및 도 2와 관련하여 상세하게 설명된 특징들은 생략될 것이다.
단계(302)에서, 각 프레임은 복수의 블록들로 분절된다. 예시적인 실시 예에서, 시스템(100)의 분절 모듈(110)은 프레임을 블록들로 분절할 수 있다.
단계(304)에서, 프레임의 각 블록에 대한 이벤트 밀도 계수가 결정된다. 블록의 이벤트 밀도 계수는 미리 정의된 시간 기간에서 프레임들에 걸쳐 블록에서 축적된 이벤트들의 수를 나타낸다. 예시적인 실시 예에서, 결정 모듈(112)은 이벤트 밀도 계수를 결정할 수 있다.
단계(306)에서, 결정된 이벤트 밀도 계수는 이벤트 밀도 계수의 미리 정의된 임계 값과 비교된다. 예시적인 실시 예에서, 비교 모듈(114)은 비교를 수행할 수 있다.
단계(308)에서, 블록에서의 모션 벡터는 비교에 기초하여 추정된다. 예시적인 실시 예에서, 추정 모듈(116)은 모션 벡터를 추정할 수 있다.
단계(310)에서, 비디오 스트림에서의 블록들은 추정된 모션 벡터에 기초하여 처리된다. 예시적인 실시 예에서, 처리 모듈(118)은 비디오 스트림에서의 블록들을 처리할 수 있다.
예시적인 실시 예에서, 방법(300)은, 이벤트 밀도 계수가 미리 정의된 임계 값보다 높으면, 블록에서의 모션 벡터를 추정하는 것을 포함한다. 다른 예시적인 실시 예에서, 방법(300)은, 이벤트 밀도 계수가 미리 정의된 임계 값보다 낮으면, 블록을 처리되지 않을 것으로 마크하기 위해 블록에 제로 모션 벡터를 할당하는 것을 포함한다.
도 4는 다른 예시적인 실시 예에 따른, 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법(400)을 나타내는 순서도를 도시한다. 예시적인 실시 예에서, 방법(400)은 컴퓨터로 구현된 방법(400)일 수 있다. 예시적인 실시 예에서, 방법(400)은 프로세서(102)에 의해 실행될 수 있다. 또한, 도 1, 도 2, 및 도 3과 관련하여 상세하게 설명된 특징들은 생략될 것이다.
단계(402)에서, 각 프레임은 복수의 블록들로 분절된다. 예시적인 실시 예에서, 시스템(100)의 분절 모듈(110)은 프레임을 블록들로 분절할 수 있다.
단계(404)에서, 프레임의 각 블록에 대한 이벤트 밀도 계수가 결정된다. 블록의 이벤트 밀도 계수는 미리 정의된 시간 기간에서 프레임들에 걸쳐 블록에서 축적된 이벤트들의 수를 나타낸다. 예시적인 실시 예에서, 결정 모듈(112)은 이벤트 밀도 계수를 결정할 수 있다.
단계(406)에서, 결정된 이벤트 밀도 계수는 이벤트 밀도 계수의 미리 정의된 임계 값과 비교된다. 예시적인 실시 예에서, 비교 모듈(114)은 비교를 수행할 수 있다.
단계(408)에서, 비디오 스트림을 처리하기 위한 블록에서의 모션 벡터는 비교에 기초하여 추정된다. 예시적인 실시 예에서, 추정 모듈(116)은 모션 벡터를 추정할 수 있다.
단계(410)에서, 이벤트 밀도 맵은 각 블록에 대한 미리 정의된 임계 값과 이벤트 밀도 계수의 비교에 기초하여 생성된다. 예시적인 실시 예에서, 생성 모듈(122)은 이벤트 밀도 맵을 생성할 수 있다.
단계(412)에서, 블록-레벨 분절 맵은 이벤트 밀도 맵의 공간 상관 분석에 기초하여 생성된다. 블록-레벨 분절 맵에서, 유사한 밀도 영역들은 함께 그룹화된다. 예시적인 실시 예에서, 생성 모듈(122)은 블록-레벨 분절 맵을 생성할 수 있다.
단계(414)에서, 모션 추정을 위해 프레임을 분절할 블록들의 크기는 블록-레벨 분절 맵에 기초하여 결정된다. 크기는 모션 추정을 위한 최소 지원 크기이다. 예시적인 실시 예에서, 결정 모듈(112)은 블록들의 크기를 결정할 수 있다.
예시적인 실시 예에서, 방법(400)은, 복수의 블록들이 제1 크기이고 그리고 제1 크기와 다른 제2 크기이면, 블록에 대한 모션 추정을 수행하는 것을 포함한다. 방법(400)은, 제1 크기 및 제2 크기의 블록에 대한 모션 추정과 연관된 복잡도에 기초하여, 프레임을 제1 크기 및 제2 크기 중 하나의 복수의 블록들로 분절하는 것을 포함한다.
도 5는 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법(500)을 나타내는 순서도를 도시한다. 예시적인 실시 예에서, 방법(500)은 컴퓨터로 구현된 방법(500)일 수 있다. 예시적인 실시 예에서, 방법(500)은 프로세서(102)에 의해 실행될 수 있다. 또한, 도 1, 도 2, 도 3, 및 도 4와 관련하여 상세하게 설명된 특징들은 생략된다.
단계(502)에서, 블록 크기(N)는 NEBSMax로 선택될 수 있다. 크기는 EBS로부터의 데이터를 사용하여 생성된 블록-레벨 분절 맵에 기초하여 선택될 수 있다. 단계(504)에서, NXN의 블록 크기에 대한 모션 추정이 수행될 수 있다. 단계(506)에서, 블록의 이벤트 밀도 계수가 미리 정의된 임계 값보다 큰지 여부가 결정된다.
예시적인 실시 예에서, 이벤트 밀도 계수가 미리 정의된 임계 값보다 낮다고 결정되면, 방법(500)은 단계(508)로 진행한다. 단계(508)에서, 제로 모션 벡터가 블록에 할당된다. 단계(510)에서, 블록들의 추가 분석을 위해 블록 크기는 NXN으로 설정된다. 그 다음에, 방법(500)은 분석될 다음 블록에 대해 반복된다.
단계(506)에서 이벤트 밀도 계수가 미리 정의된 임계 값보다 크다고 결정되면, 방법(500)은 단계(512)로 진행한다. 단계(512)에서, 블록 매칭(matching)이 프레임들 사이에서 계산된다. 도 6은 예시적인 실시 예에 따른 한 쌍의 프레임들에 걸친 블록 매칭을 나타내는 예시(600)를 도시한다. 도 6에서 도시된 바와 같이, 현재 프레임으로부터의 블록은 기준 프레임에서의 대응하는 블록과 비교되거나 매칭된다. 현재 프레임으로부터의 블록과 매핑하기 위해 검색되는 기준 프레임에서의 지정된 검색 영역이 있다. 블록의 이동은 모션 벡터에 의해 표시된다.
다시 도 5를 참조하면, 단계(514)에서, 매핑에 기초하여, 기준 프레임에 관한 블록의 임의의 상당한 이동이 있었는지 여부가 결정된다. 블록의 임의의 상당한 이동이 없었다고 결정되면, 방법(500)은 블록의 모션 벡터가 제로로 설정된 단계(508)로 진행하고 방법(500)은 상술된 바와 같이 진행한다.
단계(514)에서 블록의 상당한 이동이 있었다고 결정되면, 방법(500)은 단계(516)으로 진행한다. 단계(516)에서, 크기 NXN의 블록들의 모션 추정과 연관된 복잡도가 계산된다. 단계(518)에서, N이 비디오 스트림의 처리를 위한 최소 지원 크기인지 여부가 결정된다. 단계(518)에서 N이 최소 지원 크기라고 결정되면, 방법(500)은 단계(520)으로 진행한다. 단계(520)에서, 최소 복잡도에 대한 그리고 따라서 비디오 스트림을 처리하는 것의 최소 비용에 대한 블록 크기가 설정된다. 그 다음에, 방법(500)은 분석을 위한 다음 블록을 선택하는 것을 포함한다.
단계(518)에서 N이 최소 지원 크기가 아니라고 결정되면, 방법(500)은 단계(522)로 진행한다. 단계(522)에서, 블록들에 대한 다음으로 가능한 가장 작은 크기(next possible smallest size)가 선택된다. 단계(522)로부터, 방법(500)은 선택된 가장 작은 블록 크기에 대한 모션 추정이 수행되는 단계(504)를 진행한다. 그러므로, 방법(500)은 블록들에 대한 최소 가능 크기가 획득될 때까지 반복될 수 있다.
다시 도 4를 참조하면, 예시적인 실시 예에서, 방법(400)은 블록-레벨 분절 맵에 기초하여 모션 추정을 위한 프레임의 분절에 대한 블록들의 제1 크기를 추정하는 것을 포함한다. 이 후, 방법(400)은 프레임의 각 블록에 대한 이벤트 밀도 계수를 결정하는 것, 그리고 이벤트 밀도 맵에 기초하여 결정된 이벤트 밀도 계수를 이벤트 밀도 계수의 미리 정의된 임계 값과 비교하는 것을 포함한다. 비교에 기초하여, 방법(400)은 비디오 스트림을 처리하기 위해 블록에서의 모션 벡터를 추정하는 것을 포함한다.
도 7은 예시적인 실시 예에 따른 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법(700)을 나타내는 순서도를 도시한다. 예시적인 실시 예에 따르면, 훨씬 더 적은 복잡도를 갖는 솔루션이 제공될 수 있다. 예시적인 실시 예에서, 방법(700)은 컴퓨터로 구현된 방법(700)일 수 있다. 예시적인 실시 예에서, 방법(700)은 프로세서(102)에 의해 실행될 수 있다. 또한, 도 1, 도 2, 도 3, 도 4, 도 5, 및 도 6과 관련하여 상세하게 설명된 특징들은 생략될 것이다.
단계(702)에서, 블록 크기(N)는 NEBS로 선택된다. 크기는 EBS로부터의 데이터를 사용하여 생성된 블록-레벨 분절 맵에 기초하여 선택될 수 있다. 단계(704)에서, NXN의 블록 크기에 대한 모션 추정이 수행된다. 단계(706)에서, 블록의 이벤트 밀도 계수가 미리 정의된 임계 값보다 큰지 여부가 결정된다.
예시적인 실시 예에서, 단계(706)에서 이벤트 밀도 계수가 미리 정의된 임계 값보다 낮다고 결정되면, 방법(700)은 단계(708)로 진행한다. 단계(708)에서, 제로 모션 벡터가 블록에 할당된다. 그 다음에, 방법(700)은 분석될 다음 블록에 대해 반복된다.
단계(706)에서 이벤트 밀도 계수가 미리 정의된 임계 값보다 크다고 결정되면, 방법(700)은 단계(710)로 진행한다. 단계(710)에서, 블록 매칭이 프레임들 사이에서 계산된다. 단계(712)에서, 매핑에 기초하여, 기준 프레임에 관한 블록의 임의의 상당한 이동이 있었는지 여부가 결정된다. 단계(712)에서 블록의 임의의 상당한 이동이 없었다고 결정되면, 방법(700)은 블록의 모션 벡터가 제로로 설정된 단계(708)로 진행하고 방법(700)은 상술된 바와 같이 진행한다.
단계(712)에서 블록의 상당한 이동이 있었다고 결정되면, 방법(700)은 단계(714)로 진행한다. 단계(714)에서, 블록에 대한 파생된 모션 벡터가 블록의 이동에 기초하여 설정된다. 방법(700)은 후속 블록에 대해 동일한 방식으로 더 진행한다.
예시적인 실시 예들에 따르면, 비디오 스트림을 처리하는 모션 추정의 포괄적인 접근이 제공된다. 예를 들어, 시스템(100)에 의한 이벤트 밀도 계수의 고려로 인해, 예를 들어, 모션 추정의 정확도가 상당히 향상될 수 있다. 또한, EBS로부터 수신된 데이터는 스트리밍 애플리케이션들, 압축 애플리케이션들, 및 인코딩 애플리케이션들을 위한 것과 같은, 비디오 스트림의 다양한 처리에 사용될 수 있다.
또한, 블록-레벨 분절 맵은 시스템(100)이 추정된 블록 크기를 결정하여 블록들의 처리를 개시(initiate)하도록 보조할 수 있다. 예를 들어, 관련 예시가 128x128의 크기를 갖는 블록들의 처리를 개시할 수 있으면, 예시적인 실시 예들에 따른 시스템(100)은 32x32의 크기를 갖는 블록들의 처리를 개시할 수 있다. 그러므로, 블록-레벨 분절 맵은 시스템(100)이 예시적인 실시 예들에 따른 블록들의 적어도 2개의 더 큰 크기들을 처리하는 것을 피하게 할 수 있다.
또한, 시스템(100)은 비디오 스트림의 처리의 품질을 유지하면서 블록들의 최소 크기를 획득할 수 있다. 시스템(100)은 정확한 크기가 획득될 때까지 반복적으로 블록 크기를 제안할 수 있다. 시스템(100)은 EBS 데이터 이벤트들을 지능적으로 사용하여 프레임의 크기들에 대한 예측 단위 블록을 결정하는 것을 도울 수 있는 공간 상관 계수들을 고려할 수 있다. 특히, 비디오 압축의 경우, 블록들이 적절하게 분할되면 나머지(residual)는 매우 효율적으로 계산될 것이다. 또한, 멀티-프레임 노이즈 감소의 경우, 블록 정밀도(precision)는 공간 영역의 측면에서 더 나은 매칭을 제공하여 노이즈 감소 성능을 향상시킬 것이다. 공간 상관성(spatial correlation)이 높은 더 부드러운(smoother) 영역 및 배경의 경우, 더 큰 블록 크기들 그리고 따라서 더 적은 엔트로피(entropy)가 달성될 수 있다.
더욱이, 예시적인 실시 예들에 따른 시스템(100)은 모션 추정의 더 간단한 접근을 제공할 수 있다. 예를 들어, 시스템(100)은 블록-레벨 분절 맵에 의해 먼저 제안된 블록 크기를 갖는 모션 추정을 개시할 수 있다. 그러므로, 예시적인 실시 예는 비디오 스트림의 모션 추정 및 후속 처리를 위한 시간을 감소시킬 수 있다.
더욱이, 예시적인 실시 예들에 따른 시스템(100)은 변화들 및 모션에 적응할 수 있고, 그러므로 노이즈 관리가 개선될 수 있다. 또한, 모션 추정의 속도가 상당히 개선될 수 있다. 예시적인 실시 예들에 따른 시스템(100)은, 예를 들어, 단안 이벤트-기반 센서로부터의 데이터에 기초하여, 처리를 위한 프레임들의 해상도나 프레임 속도를 증가시킬 수 있다. 또한, 전력 소모가 프레임들의 감소된 처리에 기초하여 감소될 수 있다. 이 후, 절감된 전력은 사후 처리 또는 품질 향상을 위해 소비될 수 있다. 또한, EBS 맵 생성의 고유 특성, 임계-기반 이벤트 생성은 압축의 손실 특성에 대한 모션 벡터의 계산을 향상시킬 것이다. 멀티-프레임 노이즈 감소의 경우, 예시적인 실시 예들에 따른 시스템(100)은 노이즈 감소를 위한 더 많은 기준들을 처리할 수 있다. 그러므로, 예시적인 실시 예들에 따른 비디오 스트림의 처리를 위한 모션 추정은 구현에서 포괄적이고, 간단하고, 시간-효율적이고, 정확하고, 그리고 유연할 수 있으며, 넓은 적용 범위를 가질 수 있다.
본 명세서에서 설명된 예시적인 실시 예들은 제한하려는 목적이 아닌 설명적인 의미에서 고려되어야 한다는 것을 이해하여야 한다. 각 예시적인 실시 예에서 특징들이나 양상들의 설명들은 일반적으로 다른 실시 예들에서의 양상들이나 다른 유사한 특징들에 대해서도 이용 가능한 것으로 고려되어야 한다.
예시적인 실시 예들이 첨부된 도면들을 참조하여 설명되었지만, 후술되는 청구범위에 의해 정의된 사상 및 범위를 벗어나지 않으면서 본 명세서에서 세부 사항들 및 형태가 다양하게 변화될 수 있음이 본 발명이 속한 기술 분야에서의 통상의 기술자에 의해 이해될 것이다.
Claims (20)
- 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법에 있어서:
상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하는 단계;
상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하는 단계;
상기 결정된 이벤트 밀도 계수를 임계 값과 비교하는 단계;
상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하는 단계; 및
상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하는 단계를 포함하되,
상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응하는 방법. - 제 1 항에 있어서,
상기 블록의 상기 모션 벡터를 추정하는 것은 상기 임계 값보다 큰 상기 블록의 상기 이벤트 밀도 계수에 기초하여 수행되는 방법. - 제 1 항에 있어서,
상기 임계 값보다 낮은 상기 블록의 상기 이벤트 밀도 계수에 기초하여 상기 블록에 제로 모션 벡터를 할당하여 상기 블록을 처리되지 않을 것으로 마크하는 단계를 더 포함하는 방법. - 제 1 항에 있어서,
상기 블록에 대한 상기 결정된 이벤트 밀도 계수와 상기 임계 값의 상기 비교에 기초하여 이벤트 밀도 맵을 생성하는 단계;
상기 이벤트 밀도 맵의 공간 상관 분석에 기초하여 블록-레벨 분절 맵을 생성하는 단계; 및
상기 블록-레벨 분절 맵에 기초하여 상기 복수의 블록들 각각의 크기를 결정하고 모션 추정을 위한 상기 적어도 하나의 프레임을 분절하는 단계를 더 포함하되,
유사한 밀도 영역들은 함께 그룹화되어 상기 블록-레벨 분절 맵을 생성하고,
상기 크기는 상기 모션 추정을 위한 최소 지원 크기인 방법. - 제 4 항에 있어서,
상기 블록-레벨 분절 맵에 기초하여 상기 크기를 제1 크기로 설정하는 단계; 및
상기 제1 크기를 갖는 상기 블록의 상기 이벤트 밀도 계수를 상기 임계 값과 비교하는 단계를 더 포함하는 방법. - 제 5 항에 있어서,
상기 임계 값보다 큰 상기 제1 크기를 갖는 상기 블록의 상기 이벤트 밀도 계수에 기초하여 상기 미리 결정된 시간 기간에서의 상기 프레임들 사이의 블록-매칭을 획득하는 단계; 및
상기 블록의 주요 이동이 있는지를 결정하는 단계를 더 포함하는 방법. - 제 5 항에 있어서,
상기 임계 값보다 낮은 상기 블록의 상기 이벤트 밀도 계수에 기초하여 상기 블록에 제로 모션 벡터를 할당하여 상기 블록을 처리되지 않을 것으로 마크하는 단계를 더 포함하는 방법. - 제 6 항에 있어서,
상기 블록의 상기 주요 이동이 있다는 결정에 기초하여 상기 제1 크기를 갖는 상기 블록의 상기 모션 추정의 복잡도를 획득하는 단계; 및
상기 제1 크기가 상기 모션 추정을 위한 상기 최소 지원 크기인지를 결정하는 단계를 더 포함하는 방법. - 제 6 항에 있어서,
상기 블록의 상기 주요 이동이 없다는 결정에 기초하여 상기 블록에 제로 모션 벡터를 할당하여 상기 블록을 처리되지 않을 것으로 마크하는 단계를 더 포함하는 방법. - 제 8 항에 있어서,
상기 제1 크기가 상기 모션 추정을 위한 상기 최소 지원 크기가 아니라는 결정에 기초하여 상기 크기를 제2 크기로 설정하는 단계; 및
상기 모션 추정을 위한 상기 최소 지원 크기가 획득될 때까지 상기 크기의 상기 설정을 반복하는 단계를 더 포함하되,
상기 제2 크기는 상기 제1 크기와 다른 상기 제1 크기 다음으로 가장 작은 크기인 방법. - 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 방법에 있어서:
상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하는 단계;
상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하는 단계;
상기 결정된 이벤트 밀도 계수를 상기 이벤트 밀도 계수의 임계 값과 비교하는 단계;
상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하여 상기 비디오 스트림을 처리하는 단계;
상기 블록에 대한 상기 이벤트 밀도 계수와 상기 임계 값의 상기 비교에 기초하여 이벤트 밀도 맵을 생성하는 단계;
상기 이벤트 밀도 맵의 공간 상관 분석에 기초하여 블록-레벨 분절 맵을 생성하는 단계; 및
상기 블록-레벨 분절 맵에 기초하여 상기 복수의 블록들 각각의 크기를 결정하고 모션 추정을 위한 상기 적어도 하나의 프레임을 분절하는 단계를 포함하되,
상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응하고,
유사한 밀도 영역들은 함께 그룹화되어 상기 블록-레벨 분절 맵을 생성하고,
상기 크기는 상기 모션 추정을 위한 최소 지원 크기인 방법. - 제 11 항에 있어서,
상기 크기를 제1 크기로 결정하고, 상기 블록에 대한 상기 모션 추정을 수행하는 단계;
상기 크기를 상기 제1 크기와 다른 제2 크기로 결정하고, 상기 블록에 대한 상기 모션 추정을 수행하는 단계; 및
상기 제1 크기 및 상기 제2 크기의 상기 블록에 대한 상기 모션 추정과 연관된 복잡도에 기초하여, 상기 적어도 하나의 프레임을 상기 제1 크기 및 상기 제2 크기 중 하나의 상기 복수의 블록들로 분절하는 단계를 더 포함하는 방법. - 제 11 항에 있어서,
상기 블록-레벨 분절 맵에 기초하여 블록들의 제1 크기를 추정하고 상기 모션 추정을 위한 상기 적어도 하나의 프레임을 분절하는 단계;
상기 적어도 하나의 프레임에 포함된 상기 블록에 대한 상기 이벤트 밀도 계수를 결정하는 단계;
상기 이벤트 밀도 맵에 기초하여 상기 결정된 이벤트 밀도 계수를 상기 이벤트 밀도 계수의 상기 임계 값과 비교하는 단계;
상기 비교에 기초하여 상기 블록의 상기 모션 벡터를 추정하는 단계; 및
상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하는 단계를 더 포함하는 방법. - 제 13 항에 있어서,
상기 블록의 상기 모션 벡터를 추정하는 것은 상기 임계 값보다 큰 상기 블록의 상기 이벤트 밀도 계수에 기초하여 수행되는 방법. - 복수의 프레임들을 포함하는 비디오 스트림을 처리하는 모션 추정의 시스템에 있어서, 상기 시스템이 포함하는 적어도 하나의 프로세서는:
상기 복수의 프레임들 중 적어도 하나의 프레임을 복수의 블록들로 분절하도록 구성된 분절 모듈;
상기 분절 모듈과 통신하고, 상기 적어도 하나의 프레임에 포함된 블록에 대한 이벤트 밀도 계수를 결정하도록 구성된 결정 모듈;
상기 결정 모듈과 통신하고, 상기 결정된 이벤트 밀도 계수를 임계 값과 비교하도록 구성된 비교 모듈;
상기 비교 모듈과 통신하고, 상기 비교에 기초하여 상기 블록의 모션 벡터를 추정하도록 구성된 추정 모듈; 및
상기 추정 모듈과 통신하고, 상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하도록 구성된 처리 모듈을 구현하도록 구성되고,
상기 블록의 상기 이벤트 밀도 계수는 미리 결정된 시간 기간에서 프레임들에 걸쳐 상기 블록에서 축적된 이벤트들의 수에 대응하는 시스템. - 제 15 항에 있어서,
상기 추정 모듈은 상기 임계 값보다 큰 상기 블록의 상기 이벤트 밀도 계수에 기초하여 상기 블록의 상기 모션 벡터를 추정하도록 더 구성된 시스템. - 제 15 항에 있어서,
상기 적어도 하나의 프로세서는:
상기 비교 모듈과 통신하고, 상기 임계 값보다 낮은 상기 블록의 상기 이벤트 밀도 계수에 기초하여 상기 블록에 제로 모션 벡터를 할당하여 상기 블록을 처리되지 않을 것으로 마크하도록 구성된 할당 모듈을 구현하도록 더 구성된 시스템. - 제 16 항에 있어서,
상기 적어도 하나의 프로세서는 상기 비교 모듈과 통신하도록 구성된 생성 모듈을 구현하도록 더 구성되고,
상기 비교 모듈은:
상기 블록에 대한 상기 이벤트 밀도 계수와 상기 임계 값의 상기 비교에 기초하여 이벤트 밀도 맵을 생성하고; 그리고
상기 이벤트 밀도 맵의 공간 상관 분석에 기초하여 블록-레벨 분절 맵을 생성하도록 구성되고,
유사한 밀도 영역들은 함께 그룹화되어 상기 블록-레벨 분절 맵을 생성하고,
상기 결정 모듈은 상기 생성 모듈과 통신하고, 상기 블록-레벨 분절 맵에 기초하여 상기 복수의 블록들 각각의 크기를 결정하고 모션 추정을 위한 상기 적어도 하나의 프레임을 분절하도록 더 구성되고,
상기 크기는 상기 모션 추정을 위한 최소 지원 크기인 시스템. - 제 18 항에 있어서,
상기 처리 모듈은 상기 결정 모듈과 통신하도록 더 구성되고,
상기 처리 모듈은:
상기 복수의 블록들이 제1 크기를 가지면, 상기 블록에 대한 상기 모션 추정을 수행하고; 그리고
상기 복수의 블록들이 상기 제1 크기와 다른 제2 크기를 가지면, 상기 블록에 대한 상기 모션 추정을 수행하도록 더 구성되고,
상기 분절 모듈은 상기 처리 모듈과 통신하고, 상기 제1 크기 및 상기 제2 크기의 상기 블록에 대한 상기 모션 추정과 연관된 복잡도에 기초하여, 상기 적어도 하나의 프레임을 상기 제1 크기 및 상기 제2 크기 중 하나의 상기 복수의 블록들로 분절하도록 더 구성된 시스템. - 제 18 항에 있어서,
상기 추정 모듈은 상기 블록-레벨 분절 맵에 기초하여, 상기 모션 추정을 위한 상기 적어도 하나의 프레임의 상기 분절을 위해 블록들의 제1 크기를 추정하도록 더 구성되고,
상기 결정 모듈은 상기 적어도 하나의 프레임에 포함된 상기 블록에 대한 상기 이벤트 밀도 계수를 결정하도록 더 구성되고,
상기 비교 모듈은 상기 이벤트 밀도 맵에 기초하여 상기 결정된 이벤트 밀도 계수를 상기 임계 값과 비교하도록 더 구성되고,
상기 추정 모듈은 상기 비교에 기초하여 상기 블록의 상기 모션 벡터를 추정하도록 더 구성되고, 그리고
상기 처리 모듈은 상기 블록의 상기 추정된 모션 벡터에 기초하여 상기 비디오 스트림 내 상기 블록을 처리하도록 더 구성된 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041018373 | 2020-04-29 | ||
IN202041018373 | 2020-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210133844A true KR20210133844A (ko) | 2021-11-08 |
Family
ID=76658128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200148201A KR20210133844A (ko) | 2020-04-29 | 2020-11-09 | 단안 이벤트-기반 센서를 사용하는 모션 추정의 시스템 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11057641B1 (ko) |
KR (1) | KR20210133844A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3506622A1 (en) * | 2017-12-26 | 2019-07-03 | Prophesee | Method for outputting a signal from an event based sensor, and event-based sensor using such method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5477278A (en) * | 1991-12-24 | 1995-12-19 | Sharp Kabushiki Kaisha | Apparatus for detecting motion of moving picture |
KR100453714B1 (ko) * | 2001-12-31 | 2004-10-20 | (주)펜타마이크로 | Mpeg 영상 압축 기술을 이용한 디지털 영상 저장장치에서의 움직임 검출 장치 및 그 방법 |
JP4155118B2 (ja) * | 2003-06-13 | 2008-09-24 | カシオ計算機株式会社 | 静止画合成装置、及び動画像からの静止画合成方法 |
-
2020
- 2020-09-14 US US17/019,609 patent/US11057641B1/en active Active
- 2020-11-09 KR KR1020200148201A patent/KR20210133844A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US11057641B1 (en) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268869B (zh) | 目标检测方法、装置及*** | |
JP7253258B2 (ja) | 動的視覚センサ用ブロックマッチングオプティカルフローとステレオ視 | |
CN113286194A (zh) | 视频处理方法、装置、电子设备及可读存储介质 | |
Chen et al. | Spatiotemporal background subtraction using minimum spanning tree and optical flow | |
US10158864B2 (en) | Method, apparatus and coder for selecting optimal reference frame in HEVC coding | |
US20180005039A1 (en) | Method and apparatus for generating an initial superpixel label map for an image | |
KR20160062571A (ko) | 영상 처리 방법 및 장치 | |
US11871125B2 (en) | Method of processing a series of events received asynchronously from an array of pixels of an event-based light sensor | |
KR101296318B1 (ko) | 적응적 블록 분할에 의한 객체 추적 장치 및 방법 | |
TW202117667A (zh) | 物件定位系統及方法 | |
JP2015226326A (ja) | 映像解析方法及び映像解析装置 | |
KR20210133844A (ko) | 단안 이벤트-기반 센서를 사용하는 모션 추정의 시스템 및 방법 | |
CN114049483A (zh) | 基于事件相机的目标检测网络自监督训练方法及装置 | |
Dai et al. | Pyramid structured optical flow learning with motion cues | |
US9082176B2 (en) | Method and apparatus for temporally-consistent disparity estimation using detection of texture and motion | |
CN115169387B (zh) | 脉冲信号的前景检测方法、装置、电子设备及存储介质 | |
US20200065979A1 (en) | Imaging system and method with motion detection | |
Mahmoudi et al. | Real-time GPU-based motion detection and tracking using full HD videos | |
Wang et al. | Component-based distributed framework for coherent and real-time video dehazing | |
JP4201958B2 (ja) | 動画像のオブジェクト抽出装置 | |
KR20200047389A (ko) | 이미지 내의 동작 정보에 기초한 동적 이미지 캡처 방법 및 장치 | |
CN113033551A (zh) | 对象检测的方法、装置、设备和存储介质 | |
Medvedeva et al. | Motion detection algorithm implemented on the ARM-based hardware | |
CN114972422B (zh) | 图像序列运动遮挡检测方法、装置、存储器和处理器 | |
Stumpp | Optimization and Hardware Acceleration of Event-Based Optical Flow for Real-Time Processing and Compression on Embedded Platforms |