KR20200076000A - 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치 - Google Patents

계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치 Download PDF

Info

Publication number
KR20200076000A
KR20200076000A KR1020180164425A KR20180164425A KR20200076000A KR 20200076000 A KR20200076000 A KR 20200076000A KR 1020180164425 A KR1020180164425 A KR 1020180164425A KR 20180164425 A KR20180164425 A KR 20180164425A KR 20200076000 A KR20200076000 A KR 20200076000A
Authority
KR
South Korea
Prior art keywords
candidate blocks
image
candidate
decimated
current block
Prior art date
Application number
KR1020180164425A
Other languages
English (en)
Inventor
정요원
김기원
변주원
송원섭
안지훈
양정엽
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180164425A priority Critical patent/KR20200076000A/ko
Priority to US16/504,916 priority patent/US10893292B2/en
Priority to TW108128277A priority patent/TWI802733B/zh
Priority to CN201911052393.XA priority patent/CN111343465A/zh
Publication of KR20200076000A publication Critical patent/KR20200076000A/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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • 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/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/169Methods 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/17Methods 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/172Methods 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
    • 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/169Methods 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/17Methods 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/176Methods 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
    • 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/169Methods 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/182Methods 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 a pixel
    • 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
    • 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
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Abstract

전자 회로는 이미지들 사이의 모션 추정을 수행하기 위해 블록 판별기, 후보 선택기, 및 모션 벡터 생성기를 포함한다. 블록 판별기는 원본 이미지로부터 생성되는 데시메이션된 이미지들 각각과 관련하여 현재 블록 및 후보 블록들을 판별하되, 가장 낮은 해상도의 제 1 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 현재 블록의 위치에 기초하여 제 1 개수의 제 1 후보 블록들을 판별한다. 후보 선택기는, 블록 판별기가 원본 이미지와 관련하여 제 1 개수보다 적은 제 2 개수의 제 2 후보 블록들을 판별하도록, 가장 높은 해상도의 제 2 데시메이션된 이미지와 관련하여 제 1 후보 블록들 중 일부분인 제 2 후보 블록들을 선택한다. 모션 벡터 생성기는 제 2 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들로부터 판별되는 하나의 참조 패치에 기초하여 현재 블록에 대한 모션 벡터를 생성한다.

Description

계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치 {ELECTRONIC CIRCUIT AND ELECTRONIC DEVICE PERFORMING MOTION ESTIMATION THROUGH HIERARCHICAL SEARCH}
본 개시는 전자 회로 및 전자 장치에 관한 것으로, 좀 더 구체적으로는 이미지 또는 비디오 처리의 모션 추정을 위한 회로 및 장치에 관한 것이다.
근래 다양한 유형의 전자 장치가 이용되고 있다. 전자 장치는 그 전자 장치에 포함되는 전자적인 구성 요소들(예컨대, 장치들 및 회로들)의 동작들에 따라 고유의 기능들을 수행한다.
근래 이용되는 전자 장치들의 대부분은 이미지 및/또는 비디오의 정보를 생성하고 출력할 수 있는 구성 요소들을 포함한다. 예로서, 카메라 장치는 객체를 촬영하여 정지 이미지 및/또는 동영상의 데이터를 생성할 수 있고, 디스플레이 장치는 데이터에 기초하여 시각적으로 인식되는 이미지 정보를 출력할 수 있다.
한편, 더 생생한 이미지 및 비디오의 정보에 대한 요구가 증가함에 따라, 이미지 및 비디오를 표시하기 위한 데이터의 양이 점점 증가하고 있고, 이미지 및 비디오를 처리하기 위한 다양한 기법이 개발되고 있다. 그러나, 많은 양의 데이터가 처리되어야 하는 경우, 메모리로부터 데이터를 읽고 읽힌 데이터를 처리하는 데에 긴 시간이 소요될 수 있다. 이 경우, 데이터 처리의 속도가 저하될 수 있고, 많은 양의 전력이 데이터 처리에 소모될 수 있다.
본 개시의 실시 예들은, 모션 추정의 정확도의 저하 없이 또는 최소화된 저하로, 계층 탐색 기반의 모션 추정에 소요되는 시간을 감소시킬 수 있다. 실시 예들에서, 모션 추정은 완전 탐색을 수반하지 않는 계층 탐색을 통해 후보 블록들이 갖는 후보 모션 벡터들에 기초하여 수행될 수 있다.
몇몇 실시 예에서, 전자 회로는 이미지들 사이의 모션 추정을 수행할 수 있고, 블록 판별기, 후보 선택기, 및 모션 벡터 생성기를 포함할 수 있다. 블록 판별기는 상이한 해상도들을 갖도록 원본 이미지로부터 생성되는 데시메이션된(Decimated) 이미지들 각각과 관련하여 현재 블록 및 후보 블록들을 판별할 수 있다. 블록 판별기는 가장 낮은 제 1 해상도의 제 1 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 현재 블록의 위치에 기초하여 제 1 개수의 제 1 후보 블록들을 판별할 수 있다. 후보 선택기는 제 1 데시메이션된 이미지부터 가장 높은 제 2 해상도의 제 2 데시메이션된 이미지까지의 순서에 따라 데시메이션된 이미지들 각각과 관련하여 후보 블록들 중 일부분을 선택하여 후보 블록들의 개수를 감소시킬 수 있다. 후보 선택기는, 블록 판별기가 원본 이미지와 관련하여 제 1 개수보다 적은 제 2 개수의 제 2 후보 블록들을 판별하도록, 제 2 데시메이션된 이미지와 관련하여 제 1 후보 블록들 중 일부분인 제 2 후보 블록들을 선택할 수 있다. 모션 벡터 생성기는 제 2 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들로부터 판별되는 하나의 참조 패치에 기초하여 현재 블록에 대한 모션 벡터를 생성할 수 있다.
실시 예들에 따르면, 계층 탐색 기반의 모션 추정에 참조되는 데이터의 양이 감소하여, 모션 추정의 속도가 향상될 수 있고 전력 소모가 줄어들 수 있다.
도 1은 몇몇 실시 예에 따른 전자 회로를 포함할 수 있는 전자 장치의 예시적인 구성을 보여주는 블록도이다.
도 2는 도 1의 전자 장치에서 수행되는 모션 추정을 설명하기 위한 개념도이다.
도 3a 내지 도 3c는 모션 추정과 관련하여 이미지를 구성하는 블록들에 대한 반복(Recursion)들을 설명하기 위한 개념도들이다.
도 4는 모션 추정을 수행하기 위한 예시적인 동작들을 설명하는 흐름도이다.
도 5a 및 도 5b는 모션 추정에서 참조되는 현재 블록 및 후보 블록들의 예들을 보여주는 개념도들이다.
도 6은 현재 블록과 참조 패치 사이의 유사도를 설명하기 위한 개념도이다.
도 7 및 도 8a 내지 도 8c는 모션 추정을 위한 완전 탐색을 설명하기 위한 개념도들이다.
도 9는 다음의 현재 블록에 대한 이어지는 모션 추정을 설명하기 위한 개념도이다.
도 10은 몇몇 실시 예에 따라 모션 추정을 수행하기 위한 예시적인 구성을 보여주는 블록도이다.
도 11a 내지 도 11c는 몇몇 실시 예에 따른 모션 추정을 위해 참조되는 원본 이미지 및 데시메이션된(Decimated) 이미지들의 예들을 보여주는 개념도들이다.
도 12a 내지 도 12d는 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정에서 후보 블록들 중 일부분을 선택하는 예들을 보여주는 개념도들이다.
도 13은 몇몇 실시 예에 따른 계층 탐색 기반의 모션 추정을 설명하기 위한 개념도이다.
도 14a 및 도 14b는 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정에서 후보 블록들 중 일부분을 선택하는 예들을 보여주는 개념도들이다.
도 15는 몇몇 실시 예에 따른 계층 탐색 기반의 모션 추정을 설명하기 위한 개념도이다.
도 16은 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정을 수행하기 위한 예시적인 구성을 보여주는 블록도이다.
도 17은 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정을 수행하기 위한 예시적인 동작들을 설명하는 흐름도이다.
도 18은 도 1의 CODEC의 예시적인 구성을 보여주는 블록도이다.
도 19는 몇몇 실시 예에 따른 모션 추정과 비디오 인코딩 사이의 관계를 설명하기 위한 개념도이다.
아래에서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자들이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
도 1은 몇몇 실시 예에 따른 전자 회로를 포함할 수 있는 전자 장치(1000)의 예시적인 구성을 보여주는 블록도이다.
예로서, 전자 장치(1000)는 데스크톱 컴퓨터, 태블릿 컴퓨터, 랩톱 컴퓨터, 스마트 폰, 웨어러블(Wearable) 장치, 디지털 카메라, 디스플레이 장치, 워크스테이션, 서버, 전기 자동차, 가전기기, 의료기기 등과 같은 다양한 유형의 전자 장치들 중 하나로 구현될 수 있다.
전자 장치(1000)는 다양한 전자 회로 및 장치를 포함할 수 있다. 예로서, 전자 장치(1000)는 이미지 처리 블록(1100), 통신 블록(1200), 오디오 처리 블록(1300), 버퍼 메모리(1400), 불휘발성 메모리(1500), 유저 인터페이스(1600), 디스플레이 패널(1700), 메인 프로세서(1800), 및 전력 관리 회로(1900)를 포함할 수 있다.
이미지 처리 블록(1100)은 렌즈(1110)를 통해 빛을 수신할 수 있다. 이미지 처리 블록(1100)의 이미지 센서(1120)는 수신되는 빛에 기초하여 외부 객체와 관련되는 이미지 신호를 생성할 수 있다. 이미지 신호는 외부 객체에 대한 정지 이미지(Still Image) 및/또는 동영상(Moving Image)을 표현할 수 있다. 예로서, 정지 이미지는 사진을 제공할 수 있고, 동영상은 비디오를 제공할 수 있다.
통신 블록(1200)은 안테나(1210)를 통해 외부 장치/시스템과 신호를 교환할 수 있다. 통신 블록(1200)의 송수신기(1220) 및 MODEM(Modulator/Demodulator, 1230)은 다양한 유선/무선 통신 규약 중 하나 이상에 따라, 외부 장치/시스템과 교환되는 신호를 처리할 수 있다.
오디오 처리 블록(1300)은 오디오 신호 처리기(1310)를 이용하여 소리 정보를 처리할 수 있다. 오디오 처리 블록(1300)은 마이크(1320)를 통해 오디오 입력을 수신할 수 있고, 스피커(1330)를 통해 오디오를 출력할 수 있다.
버퍼 메모리(1400)는 전자 장치(1000)의 동작에 이용되는 데이터를 저장할 수 있다. 예로서, 버퍼 메모리(1400)는 메인 프로세서(1800)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 예로서, 버퍼 메모리(1400)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 및/또는 PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
불휘발성 메모리(1500)는 전력이 공급되는지에 관계 없이 데이터를 저장할 수 있다. 예로서, 불휘발성 메모리(1500)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 다양한 불휘발성 메모리 중 적어도 하나를 포함할 수 있다. 예로서, 불휘발성 메모리(1500)는 SD(Secure Digital) 카드 또는 SSD(Solid State Drive)와 같은 착탈식 메모리, 및/또는 eMMC(Embedded Multimedia Card)와 같은 내장(Embedded) 메모리를 포함할 수 있다.
유저 인터페이스(1600)는 사용자와 전자 장치(1000) 사이의 통신을 중재할 수 있다. 예로서, 유저 인터페이스(1600)는 사용자로부터 입력을 수신하기 위한 입력 인터페이스 및 사용자에게 정보를 출력하기 위한 출력 인터페이스를 포함할 수 있다.
디스플레이 패널(1700)은 사용자에게 시각 정보를 제공할 수 있다. 예로서, 디스플레이 패널(1700)은 이미지 데이터에 기초하여 정지 이미지 및/또는 동영상을 표시할 수 있다. 예로서, 디스플레이 패널(1700)은 LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, OLED(Organic LED) 디스플레이, AMOLED(Active Matrix OLED) 디스플레이 등으로 구현될 수 있다.
메인 프로세서(1800)는 전자 장치(1000)의 구성 요소들의 전반적인 동작들을 제어할 수 있다. 메인 프로세서(1800)는 전자 장치(1000)를 동작시키기 위해 다양한 연산을 처리할 수 있다. 예로서, 메인 프로세서(1800)는 범용(General-purpose) 프로세서, 전용(Special-purpose) 프로세서, 어플리케이션(Application) 프로세서, 마이크로프로세서 등으로 구현될 수 있고, 하나 이상의 프로세서 코어를 포함할 수 있다.
예로서, 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)는 하나 이상의 프로세서(예컨대, 메인 프로세서(1800))에 의해 실행되는 명령어들을 저장할 수 있다. 명령어들은 소프트웨어 및/또는 펌웨어의 프로그램 코드에 기초하여 제공될 수 있다. 예로서, 명령어들이 메인 프로세서(1800)에 의해 실행되는 경우, 명령어들은 메인 프로세서(1800)가 본 개시에서 설명되는 동작들을 수행하도록 야기할 수 있다.
몇몇 실시 예에서, 메인 프로세서(1800)는 ISP(Image Signal Processor)(1130), FRC(Frame Rate Converter)(1730), 및 CODEC(Encoder/Decoder)(1830)을 포함할 수 있다.
ISP(1130)는 이미지 센서(1120)에 의해 생성되는 이미지 신호에 대해 다양한 신호 처리를 수행할 수 있다. 예로서, ISP(1130)는 디모자이싱(Demosaicing), 디지털 이미지 안정화(Digital Image Stabilization), 노이즈 리덕션(Noise Reduction), 엣지 인핸스먼트(Edge Enhancement) 등과 같은 이미지 신호 처리들을 수행하여, 외부 객체를 적절히 표현하는 이미지 데이터를 출력할 수 있다. 예로서, 이미지 데이터는 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)에 저장될 수 있고, 이미지 데이터에 기반하는 시각 정보는 디스플레이 패널(1700) 상에 표시될 수 있다.
CODEC(1830)은 이미지 데이터를 인코딩 및 디코딩할 수 있다. 예로서, CODEC(1830)은 ISP(1130)에 의해 생성되는 이미지 데이터의 양을 감소시키기 위해(예컨대, 이미지 데이터를 압축하기 위해) 인코딩을 수행할 수 있다. 예로서, CODEC(1830)은 인코딩된 이미지 데이터를 디코딩할 수 있고, 디코딩된 이미지 데이터에 기반하는 시각 정보가 디스플레이 패널(1700) 상에 출력될 수 있다.
FRC(1730)는 이미지 데이터의 빈도와 관련되는 프레임 레이트를 조절할 수 있다. 예로서, FRC(1730)는 ISP(1130)와 CODEC(1830) 사이에서 동작할 수 있고, 및/또는 CODEC(1830)과 디스플레이 패널(1700) 사이에서 동작할 수 있다. 예로서, FRC(1730)는 이미지 데이터의 포맷에 적합하도록 ISP(1130)에 의해 생성되는 이미지 데이터의 프레임 레이트를 변환할 수 있다.
예로서, 디스플레이 패널(1700)이 CODEC(1830)에 의해 디코딩된 이미지 데이터에 기초하여 시각 정보를 표시하는 경우, FRC(1730)는 디스플레이 패널(1700)의 동작 특성에 적합하도록 이미지 데이터의 프레임 레이트를 변환할 수 있다. 예로서, 비디오 정보를 표현하는 이미지 데이터의 프레임 레이트가 디스플레이 패널(1700)의 프레임 레이트보다 낮은 경우, FRC(1730)는 프레임 레이트를 증가시키기 위해 비디오 프레임들 사이에 중간의 프레임(Intermediate Frame)을 삽입할 수 있다.
도 1은 ISP(1130), FRC(1730), 및 CODE(1830)이 메인 프로세서(1800)에 포함되는 것을 보여준다. 그러나, 도 1은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 개시를 한정하도록 의도되지 않는다. 몇몇 실시 예에서, 메인 프로세서(1800)는 어플리케이션 프로세서를 포함할 수 있고, 어플리케이션 프로세서, ISP(1130), FRC(1730), 및 CODEC(1830)은 하나의 SoC(System-on-chip)로 구현될 수 있다.
또는, ISP(1130), FRC(1730), 및/또는 CODEC(1830) 중 적어도 하나는 메인 프로세서(1800) 외부에 제공될 수 있다. 예로서, ISP(1130)는 이미지 처리 블록(1100)에서 이미지 센서(1120)와 함께 하나의 칩으로 구현될 수 있고, FRC(1730)는 디스플레이 패널(1700)과 함께 하나의 디스플레이 장치 내에 구현될 수 있다. 또는, ISP(1130), FRC(1730), 및/또는 CODEC(1830) 중 적어도 하나는 다른 구성 요소들과 별개로 독립적인 IP(Intellectual Property)로 구현될 수 있다.
ISP(1130), FRC(1730), 및 CODEC(1830)은 본 개시에서 설명되는 동작들을 수행하도록 구성되는 하드웨어 회로들(예컨대, 아날로그 회로들, 논리 회로들 등)로 구현될 수 있다. 또는, ISP(1130), FRC(1730), 및 CODEC(1830)은 소프트웨어 및/또는 펌웨어의 프로그램 코드로 구현될 수 있고, 하나 이상의 프로세서(예컨대, 메인 프로세서(1800))는 프로그램 코드의 명령어들을 실행하여 ISP(1130), FRC(1730), 및 CODEC(1830)의 동작들을 제공할 수 있다. 몇몇 경우, ISP(1130), FRC(1730), 및 CODEC(1830) 각각은 하드웨어와 소프트웨어의 하이브리드 형태로 구현될 수 있다.
몇몇 실시 예에서, ISP(1130), FRC(1730), 및 CODEC(1830) 각각은 모션 추정(Motion Estimation)을 수반할 수 있다. 전자 장치(1000)에서 수행되는 모션 추정은 도 2 내지 도 17을 참조하여 설명될 것이다.
전력 관리 회로(1900)는 전자 장치(1000)를 동작시키는 데에 이용되는 전력을 공급할 수 있다. 전력 관리 회로(1900)는 배터리 및/또는 외부 전원으로부터 제공되는 전력을 변환하여 전자 장치(1000)의 구성 요소들을 동작시키는 데에 적합한 전력을 생성할 수 있다.
도 2는 도 1의 전자 장치에서 수행되는 모션 추정을 설명하기 위한 개념도이다. 도 3a 내지 도 3c는 모션 추정과 관련하여 이미지를 구성하는 블록들에 대한 반복(Recursion)들을 설명하기 위한 개념도들이다.
도 2를 참조하면, 모션 추정은 이미지들 사이에서 객체의 움직임을 추정하기 위해 수행될 수 있다. 예로서, 모션 추정은 현재 프레임으로서 제공되는 이미지와 이전 프레임으로서 제공되었던 이미지 사이에서 수행될 수 있다. 모션 추정을 위해, 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)는 현재 프레임의 이미지의 데이터 및 이전 프레임의 이미지의 데이터를 저장할 수 있다.
예로서, 모션 추정을 수행하기 위해, 각 프레임의 이미지는 블록(예컨대, 매크로블록)의 단위들로 분할될 수 있다. 이와 관련하여, 분할된 블록들이 이미지를 구성하는 것으로 이해될 수 있다. 각 블록은 이미지 상의 좌표에 의해 지시되는 위치에 대응하도록 배열될 수 있다.
하나의 블록은 이미지를 구성하는 복수의 픽셀을 포함하도록 분할될 수 있다. 예로서, 블록(BK0)은 M x N 픽셀들이 블록(BK0)을 구성하도록 분할될 수 있다(M 및 N은 양의 실수). 각 블록의 크기는 모션 추정에 적합하도록 다양하게 변경 또는 수정될 수 있다.
예로서, 모션 추정에서 객체(10)의 움직임을 추정하고자 의도될 수 있다. 현재 프레임과 관련하여, 객체(10)는 블록(BK2)에 대응하는 위치에서 표시될 수 있다. 반면, 이전 프레임과 관련하여, 객체(10)는 블록(BK1)에 대응하는 위치에서 표시될 수 있다. 이 경우, 모션 추정은 객체(10)의 움직임과 관련하여 블록(BK1)으로부터 모션 벡터(MV)를 획득할 수 있다.
모션 벡터는 현재 프레임의 이미지와 이전 프레임의 이미지 사이에서 블록의 위치의 변화를 지시하는 요소일 수 있다. 예로서, 도 2의 모션 벡터(MV)는 현재 프레임의 블록(BK2)에 적용될 수 있고, 객체(10)의 움직임 또는 블록(BK1)과 블록(BK2) 사이의 위치 변화와 관련될 수 있다.
모션 추정은 현재 프레임의 이미지를 구성하는 블록들 전부에 대한 모션 벡터들을 생성하기 위해 수행될 수 있다. 모션 벡터를 생성하는 동작은 이미지를 구성하는 블록들에 대해 반복하여 수행될 수 있다. 이 반복들은 블록들을 따르는 순서에 따라 수행될 수 있다.
예로서, 도 3a 및 도 3b를 참조하면, 모션 벡터를 생성하는 동작은 하나의 행을 구성하는 블록들에 대해 반복하여 수행된 다음, 다른 하나의 행을 구성하는 블록들에 대해 반복하여 계속될 수 있다. 도 3a를 참조하면, 모션 벡터를 생성하는 동작은 인접하는 행들에서 동일한 방향으로 진행될 수 있다. 또는, 도 3b를 참조하면, 모션 벡터를 생성하는 동작은 인접하는 행들에서 반대 방향들로 진행될 수 있다. 또는, 도 3c를 참조하면, 모션 벡터를 생성하는 동작은 대각선 방향의 블록들을 따라 반복하여 수행될 수 있다.
그러나, 도 3a 내지 도 3c의 순서들은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 개시는 도 3a 내지 도 3c의 순서들로 한정되지 않는다. 모션 벡터를 생성하는 동작의 블록 순서는 모션 추정에 적합하도록 다양하게 변경 또는 수정될 수 있다. 다만, 아래의 설명들에서 더 나은 이해를 가능하게 하기 위해, 모션 추정이 도 3a에 도시된 순서에 기반하는 것으로 가정될 것이다.
모션 추정은 ISP(1130), FRC(1730), 및 CODEC(1830)에서 채용될 수 있다. 예로서, ISP(1130)는, 디지털 이미지 안정화 또는 시간적인(Temporal) 노이즈 리덕션과 관련하여, 의도된 이미지 성분을 의도되지 않은 노이즈 성분과 구별하기 위해 모션 추정을 채용할 수 있다. 예로서, FRC(1730)는 이전 프레임과 다음 프레임 사이에서 객체의 움직임이 적절히 반영된 중간의 프레임을 생성하기 위해 모션 추정을 채용할 수 있다. 예로서, CODEC(1830)은 블록의 위치 변화에 기초하여 이미지 데이터를 압축하기 위해 모션 추정을 채용할 수 있다. 이 외에도, 모션 추정은 이미지 처리 및 비디오 처리를 위해 다양하게 채용될 수 있다.
따라서, 모션 추정을 정확하고 효율적으로 수행하는 것은 이미지 처리 및 비디오 처리의 품질을 향상시키는 데에 도움될 수 있다. 이와 관련하여, 사람에 의해 인식되는 움직임에 가까운 움직임을 추정하는 트루(True) 모션 추정은 이미지 처리 및 비디오 처리의 품질을 향상시키는 데에 더 유익할 수 있고, 사용자 만족도를 높일 수 있다. 아래에서 설명될 실시 예들은 정확하고 효율적인 트루 모션 추정을 가능하게 할 수 있다.
도 4는 모션 추정을 수행하기 위한 예시적인 동작들을 설명하는 흐름도이다. 도 5a 및 도 5b는 모션 추정에서 참조되는 현재 블록 및 후보 블록들의 예들을 보여주는 개념도들이다. 도 6은 현재 블록과 참조 패치 사이의 유사도를 설명하기 위한 개념도이다. 도 7 및 도 8a 내지 도 8c는 모션 추정을 위한 완전 탐색(Full Search)을 설명하기 위한 개념도들이다. 도 9는 다음의 현재 블록에 대한 이어지는 모션 추정을 설명하기 위한 개념도이다.
본 개시에서 설명되는 모션 추정은 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소에 의해 수행될 수 있다. 예로서, 모션 추정을 채용하는 구성 요소는 모션 추정을 수행하기 위한 전자 회로(도 10 참조)를 포함할 수 있고, 그 전자 회로가 본 개시에서 설명되는 동작들을 수행할 수 있다. 추가로 또는 대안적으로, 명령어가 하나 이상의 프로세서에 의해 실행됨에 따라, 하나 이상의 프로세서(예컨대, 메인 프로세서(1800))가 본 개시에서 설명되는 동작들을 야기할 수 있다.
도 4를 참조하면, 모션 추정은 현재 블록을 판별할 수 있다(도 4의 S110). 현재 블록은 현재 프레임으로서 제공되는 이미지를 구성하는 블록들 중 현재 반복에서 모션 벡터를 생성하는 동작이 수행될 블록을 의미할 수 있다. 현재 위치는 이미지 상의 현재 위치(예컨대, 좌표)에 대응할 수 있다. 도 3a 내지 도 3c를 참조하여 설명된 것처럼, 현재 블록 및 현재 위치는 블록들을 따르는 순서에 따라 판별될 수 있다.
모션 추정은 후보 블록들을 판별할 수 있다(도 4의 S120). 후보 블록들은 현재 블록에 대한 모션 벡터를 획득하기 위해 참조될 후보 모션 벡터들을 갖는 블록들을 의미할 수 있다. 후보 모션 벡터들 중 현재 블록과 가장 유사한 참조 패치를 지시하는 후보 모션 벡터는 현재 블록에 대한 모션 벡터를 획득하는 데에 적합할 것으로 기대될 수 있다. 패치 또는 참조 패치는 현재 프레임의 이미지 상의 위치에서 블록의 크기와 동일한 크기를 갖는 단위 영역을 의미할 수 있다.
후보 블록들은 이미지 상에서 현재 블록의 현재 위치에 대한 상대적인 위치들에 대응할 수 있다. 이미지 상에서 현재 블록의 현재 위치가 판별되는 경우, 후보 블록들은 현재 블록의 위치를 기준으로 하여 각 상대적인 위치들 상에 판별될 수 있다.
예로서, 도 5a를 참조하면, 현재 블록(CB1)이 (X1, Y1)의 현재 위치에 대응할 수 있다. 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)은 현재 위치에 대한 상대적인 위치들에 대응할 수 있다. 예로서, 후보 블록(SC11)은 (X1, Y1)의 위치에 대한 상대적인 위치인 (X1+1, Y1+5)에 대응할 수 있다. 다른 후보 블록들의 위치들에 관한 설명들은 간결성을 위해 이하 생략될 것이다.
그러나, 본 개시는 도 5a의 도시로 한정되지 않고, 후보 블록들의 상대적인 위치들은 다양하게 변경 또는 수정될 수 있다. 예로서, 도 5b를 참조하면, 현재 블록(CB1)이 (X1, Y1)의 현재 위치에 대응할 수 있고, 후보 블록들(SC11 내지 SC91, TC11 내지 TC61)이 현재 위치에 대한 상대적인 위치들에 대응할 수 있다.
아래의 설명들로부터, 도 5a 및 도 5b의 예시적인 후보 블록들은 더 나은 이해를 가능하게 하기 위해 제공됨이 잘 이해될 것이다. 후보 블록들의 개수, 위치, 분포 등과 같은 속성들은 모션 추정의 정확도, 성능 등과 같은 다양한 요인을 고려하여 설계될 수 있다. 다만, 아래의 설명들에서 더 나은 이해를 가능하게 하기 위해, 모션 추정이 도 5a에 도시된 현재 블록(CB1)의 현재 위치와 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 상대적인 위치들 사이의 좌표 관계에 기반하는 것으로 가정될 것이다.
후보 블록들의 상대적인 위치들은 모션 추정을 정확하고 적절하게 수행하기 위해 다양하게 변경 또는 수정될 수 있다. 예로서, 후보 블록들의 상대적인 위치들은 전자 장치(1000)가 동작하기 전에 모션 추정을 채용하는 구성 요소(예컨대, ISP(1130), FRC(1730), CODEC(1830) 등)의 설계자에 의해 미리 설정될 수 있다. 또는, 후보 블록들의 상대적인 위치들은 전자 장치(1000)의 동작 동안 적절히 재프로그램될 수 있다.
한편, 모션 추정이 도 3a에 도시된 순서에 기반하는 경우, 후보 블록들(SC11 내지 SC61)에 대한 모션 벡터들은 현재 프레임과 관련하여 이미 생성되었을 수 있다. 반면, 후보 블록들(TC11 내지 TC61)에 대한 모션 벡터들은 현재 프레임과 관련하여 아직 생성되지 않았을 수 있다. 그러나, 이전 프레임과 관련하여, 후보 블록들(TC11 내지 TC61)에 대한 모션 벡터들이 생성되었을 수 있다.
모션 추정은 상대적인 위치들에 대응하는 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들을 참조하기 위해 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)로부터 참조 패치들의 데이터를 읽을 수 있다. 모션 추정은 현재 프레임의 이미지의 데이터에 기초하여 후보 블록들(SC11 내지 SC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들을 참조할 수 있다. 이와 관련하여, 후보 블록들(SC11 내지 SC61)은 공간적인(Spatial) 후보 블록들로서 이해될 수 있다.
모션 추정은 이전 프레임의 이미지의 데이터에 기초하여 후보 블록들(TC11 내지 TC61)을 참조할 수 있다. 이와 관련하여, 후보 블록들(TC11 내지 TC61)은 시간적인 후보 블록들로서 이해될 수 있다.
도 4로 돌아오면, 모션 추정은 현재 블록과 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도를 계산할 수 있다(도 4의 S130). 현재 블록과 가장 유사한 참조 패치를 지시하는 후보 모션 벡터는 현재 블록과 관련하여 얻고자 의도되는 모션 벡터와 유사할 가능성이 있다. 모션 추정은 유사도 계산에 기초하여 어느 참조 패치가 현재 블록과 가장 유사한지 판별할 수 있다.
예로서, 모션 추정은 가장 큰 유사도에 기초하여 하나의 참조 패치를 판별할 수 있다(도 4의 S140). 즉, 판별된 하나의 참조 패치와 관련하여 계산되는 유사도는 전체 참조 패치들과 관련하여 계산되는 유사도들 중 가장 클 수 있다. 본 개시에서, 판별된 하나의 참조 패치를 지시하는 후보 모션 벡터는 최선(Best) 후보 모션 벡터로 언급될 수 있다.
현재 블록과 참조 패치 사이의 유사도는 다양한 방식으로 계산될 수 있다. 예로서, 도 6을 참조하면, 유사도는 픽셀 값에 기초하여 계산될 수 있다. 픽셀 값은 블록 또는 패치를 구성하는 픽셀에 대응하는 값(예컨대, RGB 값, 밝기 값, 투명도 값 등)을 의미할 수 있다.
예로서, 모션 추정은 현재 블록에 대한 픽셀 값들과 참조 패치에 대한 픽셀 값들 사이의 차이들을 계산할 수 있다. 그 다음, 모션 추정은 계산된 차이들의 합을 계산할 수 있다. 계산된 합은 SAD(Sum of Absolute Difference)로 이해될 수 있다.
유사도는 SAD에 기초하여 계산될 수 있다. 참조 패치와 관련하여 계산된 SAD가 큰 경우, 그 참조 패치와 현재 블록 사이의 유사도는 작은 것으로 이해될 수 있다. 반면, 참조 패치와 관련하여 계산된 SAD가 작은 경우, 그 참조 패치와 현재 블록 사이의 유사도는 큰 것으로 이해될 수 있다. 참조 패치들 중, 가장 작은 SAD에 대응하는 참조 패치는 현재 블록과 가장 유사한 것으로 이해될 수 있다.
이러한 방식으로, 모션 추정은 참조 패치들 중 현재 블록과 가장 유사한 하나의 참조 패치를 판별할 수 있다. 다만, 도 6을 참조하여 설명된 유사도 계산은 가능한 방법들 중 하나일 뿐이고, 본 개시를 한정하도록 의도되지 않는다. 유사도 계산은 모션 추정에 적합하도록 다양하게 변경 또는 수정될 수 있다.
도 4로 돌아오면, 모션 추정은 판별된 하나의 참조 패치에 기초하여 완전 탐색을 수행할 수 있다(도 4의 S150). 예로서, 판별된 하나의 참조 패치는 다른 참조 패치들보다 현재 블록과 더 유사할 수 있지만, 현재 블록과 조금 다를 수 있다. 따라서, 완전 탐색은 판별된 하나의 참조 패치 주변의 탐색 범위(Range) 내에서 현재 블록과 조금 더 유사한 패치를 탐색하기 위한 정밀 조절(Fine Tuning)을 제공할 수 있다.
모션 추정은 완전 탐색을 통해 탐색 범위 내에서 최종 참조 패치를 판별할 수 있다(도 4의 S160). 최종 참조 패치는 탐색 범위에 포함되는 패치들 중 현재 블록과 가장 유사한 것으로 판별되는 참조 패치를 의미할 수 있다. 본 개시에서, 최종 참조 패치를 지시하는 모션 벡터는 최종 모션 벡터로 언급될 수 있다.
도 7을 참조하면, 최선 후보 모션 벡터에 의해 지시되는 참조 패치가 유사도 계산에 기초하여 판별된 경우, 모션 추정은 판별된 참조 패치 주변에 탐색 범위를 설정할 수 있다. 탐색 범위는 완전 탐색이 수행되는 범위를 의미할 수 있다.
탐색 범위는 판별된 참조 패치를 구성하는 픽셀들을 포함할 수 있다. 게다가, 탐색 범위는 판별된 참조 패치의 픽셀들의 위치들에 기초하여 결정되는 픽셀들을 더 포함할 수 있다. 예로서, 탐색 범위는 판별된 참조 패치의 픽셀들을 기준으로 하여 가로 방향 및 세로 방향을 따라 몇 개의 픽셀들을 더 포함하도록 설정될 수 있다. 다만, 이는 가능한 예들 중 하나일 뿐이고, 본 개시를 한정하도록 의도되지 않는다.
이후, 모션 추정은 탐색 범위에 포함되는 픽셀들을 조합하여 탐색 패치들을 판별할 수 있다. 모션 추정은 각 탐색 패치를 구성하는 픽셀들과 현재 블록을 구성하는 픽셀들 사이의 유사도에 기초하여 최종 참조 패치를 판별할 수 있다. 유사도는 도 6을 참조하여 설명된 방법 또는 그 외 다른 방법을 통해 계산될 수 있다.
예로서, 도 8a를 참조하면, 모션 추정은 현재 블록을 구성하는 픽셀들과 동일한 개수의 픽셀들을 포함하는 제 1 탐색 패치를 탐색 범위 내에 판별할 수 있고, 현재 블록과 제 1 탐색 패치 사이의 유사도를 계산할 수 있다. 나아가, 도 8b를 참조하면, 모션 추정은 유사한 방식으로 제 2 탐색 패치를 탐색 범위 내에 판별할 수 있고, 현재 블록과 제 2 탐색 패치 사이의 유사도를 계산할 수 있다.
이러한 방식으로, 도 8c를 참조하면, 모션 추정은 현재 블록을 구성하는 픽셀들과 동일한 개수의 픽셀들을 조합하여 복수의 탐색 패치를 탐색 범위 내에 판별할 수 있다. 예로서, 모션 추정은 유사한 방식으로 제 6 탐색 패치 및 제 25 탐색 패치를 판별할 수 있다. 나아가, 모션 추정은 현재 블록과 복수의 탐색 패치 각각 사이의 유사도를 계산할 수 있다.
모션 추정은 복수의 탐색 패치 중 현재 블록과 가장 유사한 탐색 패치를 최종 참조 패치로서 판별할 수 있다. 도 7 내지 도 8c의 완전 탐색을 통해, 모션 추정은 현재 블록과 가장 유사한 최종 참조 패치를 판별할 수 있다. 예로서, 최종 참조 패치를 지시하는 최종 모션 벡터는 현재 블록에서 구하고자 하는 모션 벡터와 유사할 가능성이 있다. 따라서, 최종 모션 벡터는 현재 블록에 대한 모션 벡터를 획득하는 데에 가장 적합할 수 있다.
. S110 내지 S160 동작들을 통해, 모션 추정은 후보 블록들이 갖는 후보 모션 벡터들 중 최선 후보 모션 벡터에 기초하여 현재 블록에 대한 모션 벡터를 획득할 수 있다. 예로서, 현재 블록에 대한 모션 벡터는 탐색 범위 내의 최종 참조 패치를 지시하는 최종 모션 벡터에 기초하여 생성될 수 있다. 생성된 모션 벡터는 현재 블록의 위치 변화 또는 현재 블록과 관련되는 객체의 움직임을 표현할 수 있다.
한편, 현재 프레임의 이미지를 구성하는 블록들 전부와 관련하여 모션 벡터들이 생성되지 않은 경우(도 4의 S170의 No), 모션 벡터가 생성되지 않은 블록에 대해 S110 내지 S160 동작들이 수행될 수 있다. 이를 위해, 모션 추정은, 현재 프레임의 이미지 상의 현재 위치가 모션 벡터가 생성되지 않은 블록에 대응하여 이동하도록, 현재 블록을 새롭게 판별할 수 있다.
예로서, 도 5a의 현재 블록(CB1)에 대한 모션 벡터가 생성된 경우, 모션 추정은 도 9의 현재 블록(CB2)을 새롭게 판별할 수 있다. 도 9를 참조하면, 예로서, 현재 블록(CB2)은 현재 블록(CB2)에 대응하는 현재 위치 (X2, Y2)가 도 5a의 위치 (X1, Y1)로부터 이동하도록 판별될 수 있다(예로서, 도 3a의 순서가 채용되는 경우 (X2, Y2)=(X1+1, Y1)). 현재 블록(CB2)에 대한 모션 벡터를 생성하기 위해 도 4의 S110 내지 S160 동작들이 수행될 수 있다.
현재 블록(CB2)에 대한 모션 벡터를 생성하기 위해, 모션 추정은 후보 블록들(SC12 내지 SC62, TC12 내지 TC62)을 판별할 수 있다. 후보 블록들(SC12 내지 SC62, TC12 내지 TC62)은 현재 블록(CB2)의 현재 위치 (X2, Y2)에 대한 상대적인 위치들에 대응할 수 있다.
모션 추정은, 이동된 현재 위치와 후보 블록들에 대응하는 상대적인 위치들 사이의 좌표 관계가 변하지 않도록, 후보 블록들을 판별할 수 있다. 예로서, 도 5a를 도 9와 비교하면, 현재 블록(CB2)의 현재 위치와 후보 블록들(SC12 내지 SC62, TC12 내지 TC62)의 상대적인 위치들 사이의 좌표 관계는 도 5a에서의 현재 블록(CB1)의 현재 위치와 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 상대적인 위치들 사이의 좌표 관계와 동일할 수 있다. 즉, 모션 추정은 미리 설정된 또는 재프로그램된 상대적인 위치들의 변경 없이 후보 블록들을 판별할 수 있다.
도 4 내지 도 9를 참조하여 설명된 동작들은 현재 프레임의 이미지를 구성하는 블록들에 대해 반복하여 수행될 수 있다. 즉, 이미지를 구성하는 블록들에 대한 각 반복마다, 모션 추정은 현재 블록 및 후보 블록들을 판별하고, 후보 블록들이 갖는 모션 벡터들에 의해 지시되는 참조 패치들에 대한 유사도들에 기초하여 최종 참조 패치를 판별하고, 최종 참조 패치를 지시하는 최종 모션 벡터로부터 현재 블록에 대한 모션 벡터를 생성할 수 있다. 이미지를 구성하는 블록들에 대한 각 반복마다, 현재 위치에 대한 상대적인 위치들은 변하지 않을 수 있다.
현재 프레임의 이미지를 구성하는 블록들 전부에 대한 모션 벡터들이 생성된 후(도 4의 S170의 Yes), 이미지를 구성하는 블록들에 대한 반복들이 완료될 수 있다. 모션 추정이 완료된 이미지는 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소의 기능을 수행하기 위해 참조될 수 있다. 이후, 예로서, 현재 프레임을 뒤잇는 다음 프레임과 관련하여, 도 4 내지 도 9를 참조하여 설명된 동작들이 수행될 수 있다.
도 4 내지 도 9를 참조하여 설명된 모션 추정은 모션 벡터가 이미 생성된 후보 블록을 참조하여 수행될 수 있다. 이러한 모션 추정은 현재 프레임의 이미지의 데이터에 더하여 이전 프레임의 이미지의 데이터를 이용할 수 있다. 이와 관련하여, 이러한 모션 추정은 3DRS(3-Dimensional Recursive Search) 방식을 채용한 것으로 이해될 수 있다.
도 10은 몇몇 실시 예에 따라 모션 추정을 수행하기 위한 예시적인 구성을 보여주는 블록도이다.
몇몇 실시 예에서, 이미지들 사이에서 모션 추정을 수행하기 위한 전자 회로(2000)가 제공될 수 있다. 본 개시에서 설명되는 모션 추정은 전자 회로(2000)에 의해 수행될 수 있다.
예로서, 전자 회로(2000)는 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소에 포함될 수 있다. 또는, 전자 회로(2000)는 독립적인 IP로 구현될 수 있다. 전자 회로(2000)는 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소에 의해 공유될 수 있고, 또는 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소를 위해 별개로 제공될 수 있다.
전자 회로(2000)는 본 개시에서 설명되는 모션 추정을 수행하도록 구성되는 하드웨어 회로들(예컨대, 하드웨어 회로들, 논리 회로들 등)을 포함할 수 있다. 몇몇 실시 예에서, 전자 회로(2000)는 ASIC(Application Specific Integrated Circuit) 또는 FPGA(Field Programmable Gate Array)로 구현될 수 있다.
추가로 또는 대안적으로, 전자 회로(2000)는 하나 이상의 프로세서(예컨대, 메인 프로세서(1800))의 일부일 수 있고, 본 개시에서 설명되는 모션 추정을 수행하도록 구성되는 프로그램 코드의 명령어들을 실행할 수 있다. 몇몇 경우, 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)는 명령어들을 저장할 수 있고, 전자 회로(2000)는 명령어들을 실행하기 위해 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)와 통신할 수 있다.
예로서, 버퍼 메모리(1400)는 이미지 데이터(DAT1)를 저장할 수 있다. 이미지 데이터(DAT1)는, 적어도, 현재 프레임의 이미지의 데이터 및 이전 프레임의 이미지의 데이터를 포함할 수 있다. 예로서, 이미지 데이터(DAT1)는 픽셀 값들의 정보를 포함할 수 있다. 전자 회로(2000)는 모션 추정을 수행하는 동안 이미지 데이터(DAT1)를 읽기 위해 버퍼 메모리(1400)와 통신할 수 있다.
실시 예들에서, 모션 추정은 계층 탐색(Hierarchical Search)에 기반하여 수행될 수 있다. 이를 위해, 이미지 데이터(DAT1)는 원본 이미지의 데이터 및 K개의 데시메이션된(Decimated) 이미지의 데이터를 포함할 수 있다(K는 자연수). 이러한 데시메이션은 현재 이미지 및 이전 이미지 모두에 대해 동일하게 적용될 수 있다. 데시메이션된 이미지 및 계층 탐색은 도 11 내지 도 15를 참조하여 설명될 것이다.
도 10에는 도시되지 않았으나, 몇몇 경우, 불휘발성 메모리(1500)가 이미지 데이터(DAT1)를 저장할 수 있다. 이 경우, 전자 회로(2000)는 불휘발성 메모리(1500)로부터 이미지 데이터(DAT1)를 읽기 위해 불휘발성 메모리(1500)와 통신할 수 있다. 또는, 불휘발성 메모리(1500)의 이미지 데이터(DAT1)가 버퍼 메모리(1400)로 로드될 수 있고, 전자 회로(2000)는 버퍼 메모리(1400)와 통신할 수 있다.
예로서, 전자 회로(2000)는 모션 추정에서 참조 패치들을 참조하기 위해 후보 블록들이 갖는 후보 모션 벡터들에 의해 지시되는 참조 패치들과 관련되는 데이터를 버퍼 메모리(1400)(및/또는 불휘발성 메모리(1500))의 이미지 데이터(DAT1)로부터 읽을 수 있다. 모션 추정에 참조되는 데이터의 양이 많아지는 경우, 메모리로부터 데이터를 읽고 읽힌 데이터를 처리하는 데에 긴 시간이 소요될 수 있다. 따라서, 데이터 처리의 속도가 저하되어 모션 추정에 소요되는 시간이 증가할 수 있고, 많은 양의 전력이 데이터 처리에 소모될 수 있다. 게다가, 메모리 액세스를 위한 대역폭 또는 빈도가 증가함에 따라, 메모리에 의해 소모되는 전력의 양이 증가할 수 있다.
따라서, 성능 및 전력 소모의 측면에서, 모션 추정에 참조되는 데이터의 양을 감소시키는 것은 사용자 만족도를 높이는 데에 도움될 수 있다. 모션 추정에서 데이터의 양을 감소시키는 예시들이 도 11 내지 도 15를 참조하여 설명될 것이다.
도 11a 내지 도 11c는 몇몇 실시 예에 따른 모션 추정을 위해 참조되는 원본 이미지 및 데시메이션된 이미지들의 예들을 보여주는 개념도들이다.
도 11a를 참조하면, 원본 이미지는 수정 없이 이미지 처리 블록(1100)을 통해 생성된 또는 디스플레이 패널(1700) 상에 표시될 이미지 자체를 의미할 수 있다. 원본 이미지는 블록의 단위들로 분할될 수 있고, 각 블록은 복수의 픽셀을 포함할 수 있다. 예로서, 원본 이미지는 블록(BK3)을 포함할 수 있고, 블록(BK3)은 복수의 픽셀을 포함할 수 있다.
실시 예들에서, 모션 추정은 원본 이미지로부터 데시메이션된 이미지들을 생성할 수 있다. 여기서, 데시메이션은 샘플링 레이트(Sampling Rate)를 감소시키는 것 또는 다운-샘플링을 의미할 수 있다. 모션 추정은 데시메이션된 이미지들 각각을 생성하기 위해 원본 이미지를 다운-샘플링할 수 있다.
예로서, 도 11b를 참조하면, 제 1 데시메이션된 이미지는 원본 이미지의 1/2의 이미지 크기를 갖도록 원본 이미지를 다운-샘플링하여 생성될 수 있다. 이 경우, 제 1 데시메이션된 이미지의 블록(BK3)과 관련하여 샘플링된 픽셀들의 개수는 원본 이미지의 블록(BK3)에 포함되는 픽셀들의 개수의 1/4일 수 있다.
예로서, 도 11c를 참조하면, 제 2 데시메이션된 이미지는 원본 이미지의 1/4의 이미지 크기를 갖도록 원본 이미지를 다운-샘플링하여 생성될 수 있다. 이 경우, 제 2 데시메이션된 이미지의 블록(BK3)과 관련하여 샘플링된 픽셀들의 개수는 원본 이미지의 블록(BK3)에 포함되는 픽셀들의 개수의 1/16일 수 있다.
데시메이션된 이미지들은 상이한 해상도들을 갖도록 생성될 수 있다. 이를 위해, 데시메이션된 이미지들은 원본 이미지를 상이한 비율들만큼 다운-샘플링하여 생성될 수 있다. 데시메이션된 이미지들의 해상도(Resolution)들 각각은 원본 이미지의 해상도보다 낮을 수 있다. 원본 이미지의 해상도는 원본 이미지 및 데시메이션된 이미지들을 포함하는 이미지들 전부의 해상도들 중 가장 높을 수 있다.
원본 이미지 상의 좌표들은 데시메이션된 이미지들 각각 상의 좌표들과 대응 관계를 가질 수 있다. 예로서, 도 11b 및 도 11c의 데시메이션된 이미지들 각각의 블록(BK3)과 관련하여 샘플링된 픽셀들의 좌표들은 도 11a의 원본 이미지의 블록(BK3)에 포함되는 픽셀들의 좌표들에 대응할 수 있다.
이러한 방식으로, 데시메이션된 이미지들이 원본 이미지로부터 생성될 수 있다. 두 개의 데시메이션된 이미지가 설명되었으나(K=2), 데시메이션된 이미지들의 개수는 다양하게 변경 또는 수정될 수 있고, 이는 아래에서 설명될 것이다. 나아가, 각 데시메이션된 이미지를 생성하기 위한 다운-샘플링의 비율은 1/4 또는 1/16과 상이하도록 다양하게 변경 또는 수정될 수 있다. 다만, 더 나은 이해를 가능하게 하기 위해, 도 11a 내지 도 11c의 이미지들과 관련되는 예들이 아래에서 설명될 것이다.
실시 예들에서, 모션 추정은, 단일 이미지와 관련하여 수행되는 대신, 원본 이미지 및 데시메이션된 이미지들을 포함하는 이미지들 각각을 참조하여 수행될 수 있다. 이를 위해, 모션 추정은 데시메이션된 이미지들을 참조하기 전에 미리 다운-샘플링을 통해 데시메이션된 이미지들을 생성할 수 있고, 데시메이션된 이미지들의 데이터는 이미지 데이터(DAT1)로서 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)에 미리 저장될 수 있다.
도 12a 내지 도 12d는 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정에서 후보 블록들 중 일부분을 선택하는 예들을 보여주는 개념도들이다. 도 13은 몇몇 실시 예에 따른 계층 탐색 기반의 모션 추정을 설명하기 위한 개념도이다.
계층 탐색 기반의 모션 추정(이하, 모션 추정)은 원본 이미지 및 데시메이션된 이미지들을 포함하는 이미지들 각각을 참조할 수 있다. 모션 추정은 이미지들 각각과 관련하여 현재 블록 및 후보 블록들을 판별할 수 있다. 현재 블록 및 후보 블록들 각각은 원본 이미지 및 데시메이션된 이미지들 상에서 대응하는 좌표들 상에 판별될 수 있다.
각 데시메이션된 이미지 상에서, 현재 블록 및 후보 블록들의 크기들은 원본 이미지로부터 데시메이션된 양에 비례하여 감소할 수 있다. 각 데시메이션된 이미지 상에서, 현재 블록에 대한 후보 블록들의 상대적인 위치들은 원본 이미지로부터 데시메이션된 양에 비례하여 현재 블록의 현재 위치로 가까워질 수 있다. 나아가, 각 데시메이션된 이미지 상에서, 후보 블록들이 갖는 후보 모션 벡터들의 길이들은 원본 이미지로부터 데시메이션된 양에 비례하여 감소할 수 있다.
예로서, 도 12a를 참조하면, 모션 추정은 먼저 제 2 데시메이션된 이미지와 관련하여 현재 블록(CB1)의 위치에 기초하여 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)을 판별할 수 있다. 제 2 데시메이션된 이미지와 관련하여, 모션 추정은 도 4의 S110 및 S120 동작들, 및 도 5a 및 도 5b를 참조하여 설명된 것처럼 현재 블록(CB1)의 현재 위치에 대한 상대적인 위치들 상에 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)을 판별할 수 있다.
모션 추정은 제 2 데시메이션된 이미지와 관련하여, 전체 픽셀들에 대한 완전 탐색을 수행하는 대신, 몇 개의 선택된 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)만 판별할 수 있고, 선택된 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 후보 모션 벡터들만 참조할 수 있다. 제 2 데시메이션된 이미지와 관련하여, 모션 추정은 도 4의 S130 동작 및 도 6을 참조하여 설명된 것처럼 현재 블록(CB1)과 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도를 계산할 수 있다.
모션 추정은 유사도에 기초하여 후보 블록들(SC11 내지 SC61, TC11 내지 TC61) 중 일부분을 선택할 수 있다. 예로서, 모션 추정은 후보 블록들(SC11 내지 SC61, TC11 내지 TC61) 중 더 큰 유사도들에 대응하는 절반의 후보 모션 벡터들을 갖는 후보 블록들을 선택할 수 있다. 선택된 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들은 비선택된 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들보다 클 수 있다.
제 2 데시메이션된 이미지와 관련하여 선택되는 후보 블록들은 제 2 데시메이션된 이미지가 참조된 직후에 제 1 데시메이션된 이미지와 관련하여 참조될 수 있다. 예로서, 도 12b를 참조하면, 제 2 데시메이션된 이미지와 관련하여 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)이 선택된 경우, 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)은 제 1 데시메이션된 이미지와 관련하여 이용될 수 있다. 반면, 제 2 데시메이션된 이미지와 관련하여 선택되지 않은 후보 블록들은 제 1 데시메이션된 이미지와 관련하여 이용되지 않고 배제될 수 있다.
모션 추정은 제 1 데시메이션된 이미지와 관련하여 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)을 판별할 수 있다. 제 1 데시메이션된 이미지와 관련하여, 모션 추정은 현재 블록(CB1)과 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도를 계산할 수 있다. 모션 추정은 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61) 중 좀 더 큰 유사도들에 대응하는 절반의 후보 모션 벡터들을 갖는 후보 블록들을 선택할 수 있다.
제 1 데시메이션된 이미지와 관련하여 선택되는 후보 블록들은 제 1 데시메이션된 이미지가 참조된 직후에 원본 이미지와 관련하여 참조될 수 있다. 예로서, 도 12c를 참조하면, 제 1 데시메이션된 이미지와 관련하여 후보 블록들(SC41, SC61, TC41)이 선택된 경우, 후보 블록들(SC41, SC61, TC41)은 원본 이미지와 관련하여 이용될 수 있다. 반면, 제 1 데시메이션된 이미지와 관련하여 선택되지 않은 후보 블록들은 원본 이미지와 관련하여 이용되지 않고 배제될 수 있다.
모션 추정은 원본 이미지와 관련하여 후보 블록들(SC41, SC61, TC41)을 판별할 수 있다. 원본 이미지와 관련하여, 모션 추정은 도 4 내지 도 6을 참조하여 설명된 것처럼 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들 중 최선 후보 모션 벡터에 의해 지시되는 하나의 참조 패치를 판별할 수 있다. 예로서, 도 12d를 참조하면, 후보 블록(SC61)의 후보 모션 벡터가 최선 후보 모션 벡터일 수 있다.
이후, 모션 추정은 도 4 내지 도 8c를 참조하여 설명된 것처럼 원본 이미지와 관련하여 최선 후보 모션 벡터에 의해 지시되는 참조 패치에 기초하여 완전 탐색을 수행할 수 있고, 완전 탐색으로부터 판별되는 최종 참조 패치에 기초하여 현재 블록(CB1)에 대한 모션 벡터를 생성할 수 있다.
도 13을 참조하면, 도 12a 내지 도 12d의 모션 추정은 데시메이션된 이미지들 및 원본 이미지를 포함하는 계층 구조의 계층들을 따라 현재 블록(CB1)과 유사한 참조 패치들을 탐색할 수 있고, 탐색된 참조 패치들에 대해 도 4 내지 도 9를 참조하여 설명된 3DRS 방식을 적용할 수 있다.
이를 위해, 먼저, 모션 추정은 데시메이션된 이미지들 중 가장 낮은 해상도의 데시메이션된 이미지(예컨대, 도 13의 제 2 데시메이션된 이미지)와 관련하여, 도 4의 S110 및 S120 동작들, 및 도 5a 및 도 5b를 참조하여 설명된 것처럼 현재 블록(CB1) 및 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)을 판별할 수 있다.
여기서, 모션 추정은 제 2 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 현재 블록(CB1)의 위치에 기초하여 상대적인 위치들의 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)을 판별할 수 있고, 판별된 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들을 참조할 수 있다. 따라서, 가장 낮은 해상도의 데시메이션된 이미지 상에서 완전 탐색을 수행하는 방식에 비해, 모션 추정을 위해 참조되는 데이터의 양이 감소할 수 있다.
예로서, 모션 추정은 제 2 데시메이션된 이미지와 관련하여 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들을 참조하기 위해 메모리(예컨대, 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500))로부터 이미지 데이터(DAT1)를 읽을 수 있다. 메모리로부터 읽히는 이미지 데이터(DAT1)의 양은 완전 탐색을 위한 데이터의 양보다 적을 수 있다.
모션 추정은 데시메이션된 이미지들 각각과 관련하여 판별된 후보 블록들 중 일부분을 선택할 수 있다. 후보 블록들 중 일부분은 현재 블록(CB1) 및 후보 블록들에 기초하여(예컨대, 현재 블록(CB1)과 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도에 기초하여) 선택될 수 있다.
예로서, 모션 추정은 가장 낮은 해상도의 데시메이션된 이미지(예컨대, 도 13의 제 2 데시메이션된 이미지)부터 가장 높은 해상도의 데시메이션된 이미지(예컨대, 도 13의 제 1 데시메이션된 이미지)까지의 순서에 따라 데시메이션된 이미지들을 참조할 수 있다. 나아가, 모션 추정은 이 순서에 따라 각 데시메이션된 이미지와 관련하여 후보 블록들 중 일부분을 선택할 수 있다. 예로서, 모션 추정은 데시메이션된 이미지들 각각과 관련하여 설정된 비율(Ratio) 또는 개수만큼 후보 블록들 중 일부분을 선택할 수 있다.
예로서, 모션 추정은 제 2 데시메이션된 이미지와 관련하여 판별된 후보 블록들(SC11 내지 SC61, TC11 내지 TC61) 중 절반의 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)을 선택할 수 있다. 선택된 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들은 비선택된 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들보다 클 수 있다. 여기서, 후보 블록들 중 일부분을 선택하기 위한 절반의 비율은 더 나은 이해를 가능하게 하기 위한 예일 뿐이고, 비율 또는 개수는 모션 추정에 적합하도록 다양하게 변경 또는 수정될 수 있다.
선택된 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)은 제 2 데시메이션된 이미지의 직후에 참조되는 제 1 데시메이션된 이미지와 관련하여 이용될 수 있다. 모션 추정은 제 1 데시메이션된 이미지와 관련하여 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)을 판별할 수 있다.
예로서, 모션 추정은 제 1 데시메이션된 이미지와 관련하여 판별된 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61) 중 절반의 후보 블록들(SC41, SC61, TC41)을 선택할 수 있다. 선택된 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들은 비선택된 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 현재 블록(CB1) 사이의 유사도들보다 클 수 있다. 제 1 데시메이션된 이미지와 관련하여 선택되는 후보 블록들(SC41, SC61, TC41)은 제 2 데시메이션된 이미지와 관련하여 선택되는 후보 블록들(SC41, SC61, TC21, TC41, TC51, TC61)의 일부분일 수 있다.
선택된 후보 블록들(SC41, SC61, TC41)은 제 1 데시메이션된 이미지의 직후에 참조되는 원본 이미지와 관련하여 이용될 수 있다. 모션 추정은 원본 이미지와 관련하여 후보 블록들(SC41, SC61, TC41)을 판별할 수 있다. 원본 이미지와 관련하여 판별되는 후보 블록들(SC41, SC61, TC41)의 개수는 제 2 데시메이션된 이미지와 관련하여 판별되는 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 개수보다 적을 수 있다(예컨대, 1/4).
이러한 방식으로, 모션 추정은 먼저 참조되는 이미지와 관련하여 후보 블록들 중 일부분을 선택할 수 있고, 선택된 후보 블록들만 다음의 데시메이션된 이미지와 관련하여 이용할 수 있다. 이처럼, 순서에 따라 원본 이미지 및 데시메이션된 이미지들 각각에 기초하여 후보 블록들 중 일부분이 선택됨에 따라, 이용되는 후보 블록들의 개수가 점차 감소할 수 있다. 따라서, 원본 이미지와 관련하여 참조되는 데이터의 양이 감소할 수 있다.
모션 추정은 후보 블록들(SC41, SC61, TC41)을 이용하여(예컨대, 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들에 의해 지시되는 참조 패치들을 참조하여) 현재 블록(CB1)에 대한 모션 벡터를 생성할 수 있다. 이를 위해, 모션 추정은 원본 이미지와 관련하여 판별된 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각과 현재 블록(CB1) 사이의 유사도를 계산할 수 있다. 유사도는 도 4의 S130 동작 및 도 6을 참조하여 설명된 것처럼 계산될 수 있다.
모션 추정은 유사도에 기초하여 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들에 의해 지시되는 참조 패치들로부터 하나의 참조 패치(예컨대, 최선 후보 모션 벡터에 의해 지시되는 것)를 선택할 수 있다. 선택된 참조 패치는 후보 블록들(SC41, SC61, TC41)의 후보 모션 벡터들에 의해 지시되는 참조 패치들 중 현재 블록(CB1)에 대한 픽셀 값들과 가장 유사한 픽셀 값들을 가질 수 있다. 선택된 참조 패치는 계층 탐색을 통해 후보 블록들의 개수가 감소함에 따라 후보 블록들(SC11 내지 SC61, TC11 내지 TC61)의 후보 모션 벡터들에 의해 지시되는 참조 패치들로부터 마지막에 선택될 수 있다.
모션 추정은 원본 이미지와 관련하여 선택되는 참조 패치에 기초하여 현재 블록(CB1)에 대한 모션 벡터를 생성할 수 있다. 이를 위해, 모션 추정은 도 4의 S150 동작, 및 도 7 및 도 8a 내지 도 8c를 참조하여 설명된 것처럼 원본 이미지와 관련하여 선택된 참조 패치에 기초하여 완전 탐색을 수행할 수 있다. 다만, 참조 패치를 선택하는 것은 후보 블록을 선택하여 그 선택된 후보 블록의 후보 모션 벡터에 의해 지시되는 참조 패치를 판별하는 것으로서 이해될 수 있다.
모션 추정은 완전 탐색으로부터 판별되는 최종 참조 패치에 기초하여 현재 블록(CB1)에 대한 모션 벡터를 생성할 수 있다. 현재 블록(CB1)에 대한 모션 벡터는 최종 참조 패치를 지시하는 최종 모션 벡터에 기초하여 획득될 수 있다.
도 14a 및 도 14b는 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정에서 후보 블록들 중 일부분을 선택하는 예들을 보여주는 개념도들이다.
도 14a를 참조하면, 예로서, 현재 블록(CB1)의 현재 위치에 인접하는 좌표들에 대응하는 상대적인 위치들의 후보 블록들(SC51, SC61, TC11, TC21)의 후보 모션 벡터들에 의해 지시되는 참조 패치들은 현재 블록(CB1)과 유사할 가능성이 있다(따라서, 현재 블록(CB1)에 대한 모션 벡터를 생성하는 데에 적합할 가능성이 있다).
이와 관련하여, 몇몇 실시 예에서, 후보 블록들(SC51, SC61, TC11, TC21)은 비선택됨이 없이 데시메이션된 이미지들 전부와 관련하여 선택될 수 있다. 몇몇 실시 예에서, 후보 블록들(SC51, SC61, TC11, TC21)이 데시메이션된 이미지들 전부와 관련하여 판별되고 선택되는 경우, 후보 블록들(SC51, SC61, TC11, TC21)의 후보 모션 벡터들에 의해 지시되는 참조 패치들과 관련되는 유사도 계산은 생략될 수 있다.
반면, 현재 블록(CB1)의 현재 위치에 인접하지 않는 좌표들에 대응하는 상대적인 위치들의 후보 블록들(SC11 내지 SC41, TC31 내지 TC61)은 현재 블록(CB1)에 대한 유사도에 기초하여 선택되거나 선택되지 않을 수 있다. 위에서 설명된 것처럼, 선택된 후보 블록들만 다음의 이미지와 관련하여 참조될 수 있다.
예로서, 도 14b를 참조하면, 선택된 후보 블록들은 현재 블록(CB1)의 좌표에 인접한 좌표들의 후보 블록들(SC51, SC61, TC11, TC21)을 포함할 수 있다. 나아가, 모션 추정은 현재 블록의 좌표에 인접하지 않은 좌표들의 후보 블록들 중 일부분(예컨대, 후보 블록들(SC41, TC41, TC51, TC61))을 선택할 수 있다. 반면, 모션 추정은 현재 블록의 좌표에 인접하지 않은 좌표들의 후보 블록들 중 다른 일부분을 선택하지 않을 수 있다.
예로서, 후보 블록들(SC51, SC61, TC11, TC21)은 비선택됨이 없이 제 2 데시메이션된 이미지와 관련하여 선택될 수 있고 제 1 데시메이션된 이미지와 관련하여 판별될 수 있다. 다만, 후보 블록들(SC51, SC61, TC11, TC21) 각각은 원본 이미지와 관련하여 계산되는 유사도에 기초하여 최선 후보 모션 벡터를 갖는 것으로 판별되거나 판별되지 않을 수 있다.
후보 블록들(SC41, TC41, TC51, TC61)은 유사도에 기초하여 제 2 데시메이션된 이미지와 관련하여 선택될 수 있고 제 1 데시메이션된 이미지와 관련하여 판별될 수 있다. 다른 후보 블록들은 제 2 데시메이션된 이미지와 관련하여 선택되지 않을 수 있고, 제 1 데시메이션된 이미지와 관련하여 참조되지 않을 수 있다.
도 15는 몇몇 실시 예에 따른 계층 탐색 기반의 모션 추정을 설명하기 위한 개념도이다.
도 11 내지 도 14를 참조하여 두 개의 데시메이션된 이미지 및 후보 블록들을 선택하기 위한 절반의 비율이 설명되었으나, 본 개시는 여기에 한정되지 않는다. 모션 추정은 K개의 데시메이션된 이미지 및 후보 블록들을 선택하는 것을 채용하기 위해 다양하게 변경 또는 수정될 수 있다.
예로서, 제 K 데시메이션된 이미지는 원본 이미지의 1/J의 이미지 크기를 갖도록 원본 이미지를 다운-샘플링하여 생성될 수 있고(J는 양의 실수), 데시메이션된 이미지들 중 가장 낮은 해상도를 가질 수 있다. 제 K 데시메이션된 이미지와 관련하여, 모션 추정은 현재 블록 및 후보 블록들을 판별할 수 있다. 실시 예들에서, 제 K 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 후보 블록들만 이용될 수 있고, 따라서 참조되는 데이터의 양이 감소할 수 있다.
제 K 데시메이션된 이미지와 관련하여 후보 블록들의 일부분이 선택될 수 있고, 선택된 후보 블록들은 제 (K-1) 데시메이션된 이미지(미도시됨)와 관련하여 판별되고 참조될 수 있다. 이러한 방식으로, 제 3 데시메이션된 이미지(미도시됨)와 관련하여 후보 블록들의 1/P이 선택될 수 있고(P는 양의 실수), 선택된 후보 블록들이 제 2 데시메이션된 이미지와 관련하여 판별되고 이용될 수 있다.
제 2 데시메이션된 이미지는 원본 이미지의 1/L의 이미지 크기를 갖도록 원본 이미지를 다운-샘플링하여 생성될 수 있다(L은 양의 실수). 모션 추정은 제 2 데시메이션된 이미지와 관련하여 후보 블록들의 1/R을 선택할 수 있고(R은 양의 실수), 선택된 후보 블록들이 제 1 데시메이션된 이미지와 관련하여 판별되고 이용될 수 있다.
제 1 데시메이션된 이미지는 원본 이미지의 1/Q의 이미지 크기를 갖도록 원본 이미지를 다운-샘플링하여 생성될 수 있고(Q는 양의 실수, Q<L<J), 데시메이션된 이미지들 중 가장 높은 해상도를 가질 수 있다. 모션 추정은 제 1 데시메이션된 이미지와 관련하여 후보 블록들의 1/S을 선택할 수 있고(S는 양의 실수), 선택된 후보 블록들이 원본 이미지와 관련하여 판별되고 이용될 수 있다. 모션 추정은 원본 이미지와 관련하여 판별된 후보 블록들을 이용하여 현재 블록에 대한 모션 벡터를 생성할 수 있다.
이러한 방식으로, 가장 낮은 해상도의 데시메이션된 이미지부터 가장 높은 해상도의 데시메이션된 이미지까지의 순서에 따라 후보 블록들 중 일부분이 선택됨에 따라, 이용되는 후보 블록들의 개수가 점차 감소할 수 있다. 따라서, 원본 이미지와 관련하여 참조되는 데이터의 양이 감소할 수 있다.
몇몇 실시 예에서, 각 이미지들의 픽셀들을 표현하기 위한 비트들의 개수들이 상이할 수 있다. 예로서, 원본 이미지를 구성하는 각 픽셀은 W개의 비트들에 기초하여 표현될 수 있고, 제 1 데시메이션된 이미지를 구성하는 각 픽셀은 X개의 비트들에 기초하여 표현될 수 있다. 제 2 데시메이션된 이미지를 구성하는 각 픽셀은 Y개의 비트들에 기초하여 표현될 수 있고, 제 K 데시메이션된 이미지를 구성하는 각 픽셀은 Z개의 비트들에 기초하여 표현될 수 있다(W, X, Y, Z는 자연수).
여기서, Z는 Y보다 작을 수 있고, Y는 X보다 작을 수 있고, X는 W보다 작을 수 있다. 즉, 낮은 해상도를 갖는 데시메이션된 이미지의 픽셀은 적은 개수의 비트들에 기초하여 표현될 수 있다. 따라서, 낮은 해상도를 갖는 데시메이션된 이미지와 관련하여 계산되는 유사도는 적은 개수의 비트들에 기초하여 얻어질 수 있다. 이 경우, 모션 추정을 위해 참조되는 데이터의 양이 감소할 수 있다.
후보 블록들의 개수, 데시메이션된 이미지들의 개수, 각 데시메이션된 이미지의 해상도, 후보 블록들을 선택하기 위한 비율 또는 개수, 각 이미지의 픽셀을 표현하는 비트들의 개수 등은 다양하게 변경 또는 수정될 수 있다. 예로서, 더 많은 개수의 후보 블록들을 참조하고자 의도되는 경우, 더 많은 데시메이션된 이미지들이 더 낮은 해상도들을 갖도록 생성될 수 있다. 그 밖에, 수치들은 모션 추정의 요구사항에 적합하도록 다양하게 변경 또는 수정될 수 있다.
위에서 설명된 것처럼, 실시 예들에서, 모션 추정에 참조되는 데이터의 양이 감소할 수 있다. 이 경우, 메모리로부터 데이터를 읽고 읽힌 데이터를 처리하는 데에 소요되는 시간이 감소할 수 있다. 따라서, 데이터 처리의 속도가 향상되어 모션 추정에 소요되는 시간이 감소할 수 있고, 데이터 처리에 소모되는 전력의 양이 감소할 수 있다. 메모리 액세스를 위한 대역폭 또는 빈도가 감소함에 따라, 메모리에 의해 소모되는 전력의 양도 감소할 수 있다. 데이터의 양이 감소하더라도, 계층 탐색이 채용됨에 따라, 모션 추정의 정확도가 저하되지 않거나 모션 추정의 정확도의 저하가 최소화될 수 있다.
도 16은 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정을 수행하기 위한 예시적인 구성을 보여주는 블록도이다. 도 17은 몇몇 실시 예에 따라 계층 탐색 기반의 모션 추정을 수행하기 위한 예시적인 동작들을 설명하는 흐름도이다.
도 16을 참조하면, 몇몇 실시 예에서, 전자 회로(2000)는 데시메이터(2050), 블록 판별기(2100), 후보 선택기(2300), 유사도 계산기(2500), 완전 탐색 연산기(2700), 및 모션 벡터 생성기(2900)를 포함할 수 있다. 데시메이터(2050), 블록 판별기(2100), 후보 선택기(2300), 유사도 계산기(2500), 완전 탐색 연산기(2700), 및 모션 벡터 생성기(2900)는 본 개시에서 설명되는 동작들을 수행하도록 구성되는 하드웨어 회로들로 구현될 수 있다.
추가로 또는 대안적으로, 데시메이터(2050), 블록 판별기(2100), 후보 선택기(2300), 유사도 계산기(2500), 완전 탐색 연산기(2700), 및 모션 벡터 생성기(2900)는 소프트웨어 모듈들로 구현될 수 있다. 하나 이상의 프로세서(예컨대, 메인 프로세서(1800), 전자 회로(2000)를 위한 별개의 프로세서(들)(2005) 등)가 명령어를 실행함에 따라, 데시메이터(2050), 블록 판별기(2100), 후보 선택기(2300), 유사도 계산기(2500), 완전 탐색 연산기(2700), 및 모션 벡터 생성기(2900)의 동작들이 야기될 수 있다.
데시메이터(2050)는 이미지 데이터(DAT1)에 기초하여 원본 이미지로부터 데시메이션된 이미지들을 생성할 수 있고(도 17의 S205), 이는 도 11a 내지 도 11c를 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다. 데시메이션된 이미지들은 이미지 데이터(DAT1)의 일부로서 저장될 수 있다.
블록 판별기(2100)는 이미지 데이터(DAT1)에 기초하여 현재 블록을 판별할 수 있다(도 17의 S210). 나아가, 블록 판별기(2100)는 가장 낮은 해상도의 제 K 데시메이션된 이미지와 관련하여 후보 블록들을 판별할 수 있다(도 17의 S212). 이들은 도 4의 S110 및 S120 동작들, 도 5a 및 도 5b, 도 12a 및 도 13을 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
유사도 계산기(2500)는 이미지 데이터(DAT1)에 기초하여, 데시메이션된 이미지들 각각과 관련하여 블록 판별기(2100)에 의해 판별된 현재 블록과 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도를 계산할 수 있고(도 17의 S213), 이는 도 4의 S130 동작, 도 6 및 도 13을 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
후보 선택기(2300)는 데시메이션된 이미지들 각각과 관련하여 유사도 계산기(2500)에 의해 계산된 유사도에 기초하여 더 큰 유사도들에 대응하는 후보 모션 벡터들을 갖는 후보 블록들을 설정된 비율 또는 개수만큼 선택할 수 있고(도 17의 S214), 이는 도 12a 내지 도 12d 및 도 13을 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
가장 높은 해상도의 제 1 데시메이션 이미지와 관련하여 후보 블록 선택이 수행되지 않은 경우(도 17의 S218의 No), 블록 판별기(2100)는 후보 선택기(2300)에 의해 선택된 후보 블록들을 다음의 데시메이션된 이미지와 관련하여 판별하여, 선택된 후보 블록들 및 그들의 후보 모션 벡터들을 다음의 데시메이션된 이미지로 투영(Project)할 수 있다(도 17의 S219). 따라서, 다음의 데시메이션된 이미지와 관련하여 유사도 계산 및 후보 블록 선택이 반복될 수 있다(도 17의 S213 및 S214). 이들은 도 12a 내지 도 12d 및 도 13을 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
제 1 데시메이션된 이미지와 관련하여 후보 블록 선택이 수행된 경우(도 17의 S218의 Yes), 블록 판별기(2100)는 원본 이미지와 관련하여 후보 블록들을 판별하여, 판별된 후보 블록들 및 그들의 후보 모션 벡터들을 원본 이미지로 투영할 수 있다(도 17의 S220).
유사도 계산기(2500)는 원본 이미지와 관련하여 현재 블록과 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도를 계산할 수 있다(도 17의 S230). 나아가, 유사도 계산기(2500)는 가장 큰 유사도에 기초하여 최선 후보 모션 벡터에 의해 지시되는 참조 패치를 판별할 수 있다(도 17의 S240). 이들은 도 12a 내지 도 12d 및 도 13을 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
완전 탐색 연산기(2700)는 유사도 계산기(2500)에 의해 판별된 참조 패치 주변의 탐색 영역에 대해 완전 탐색을 수행할 수 있고(도 17의 S250), 이는 도 4의 S150 동작, 및 도 7 및 도 8a 내지 도 8c를 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
모션 벡터 생성기(2900)는 완전 탐색 연산기(2700)의 완전 탐색의 결과에 기초하여 탐색 영역 내에서 최종 참조 패치를 판별할 수 있고(도 17의 S260), 이는 도 4의 S160 동작, 및 도 7 및 도 8a 내지 도 8c를 참조하여 설명된 것들과 실질적으로 동일하거나 유사할 수 있다.
모션 벡터 생성기(2900)는 최종 참조 패치를 지시하는 최종 모션 벡터 기초하여 현재 블록에 대한 모션 벡터(MV)를 생성할 수 있다. 모션 벡터(MV)의 데이터는 모션 추정 데이터(DAT2)로서 버퍼 메모리(1400)(및/또는 불휘발성 메모리(1500))에 저장될 수 있다. 모션 추정 데이터(DAT2)는 ISP(1130), FRC(1730), CODEC(1830), 및/또는 그 외 다른 구성 요소의 기능을 수행하기 위해 참조될 수 있다.
현재 프레임의 이미지를 구성하는 블록들 전부와 관련하여 모션 벡터들이 생성되지 않은 경우(도 17의 S270의 No), 모션 벡터가 생성되지 않은 블록에 대해 S205 내지 S260 동작들이 수행될 수 있다. 이를 위해, 블록 판별기(2100)는, 현재 프레임의 이미지 상의 현재 위치가 모션 벡터가 생성되지 않은 블록에 대응하여 이동하도록, 현재 블록을 새롭게 판별할 수 있다. 현재 프레임의 이미지를 구성하는 블록들 전부에 대한 모션 벡터들이 생성된 후(도 17의 S270의 Yes), 이미지를 구성하는 블록들에 대한 반복들이 완료될 수 있다.
도 18은 도 1의 CODEC(1830)의 예시적인 구성을 보여주는 블록도이다.
예로서, CODEC(1830)은 비디오 처리 표준(예컨대, HEVC/H265, VP9 등)에 따라 비디오 데이터를 인코딩 및 디코딩하기 위한 전자 회로로 구현될 수 있다. 이를 위해, 예로서, CODEC(1830)은 분할 컨트롤러(3110), 변환기/양자화기(3120), 역변환기/역양자화기(3130), 필터(3140), 프레임 버퍼(3150), 인트라-예측기(3160), 모션 보상기(3170), 모션 추정기(3180), 및 엔트로피 인코더(3190)를 포함할 수 있다.
CODEC(1830)의 각 구성 요소는 아래에서 설명되는 동작들을 수행하도록 구성되는 하드웨어 회로를 포함할 수 있다. 추가로 또는 대안적으로, CODEC(1830)의 각 구성 요소를 구현하기 위한 명령어들이 하나 이상의 프로세서에 의해 실행됨에 따라, 하나 이상의 프로세서가 아래에서 설명되는 동작들을 야기할 수 있다.
분할 컨트롤러(3110)는 원본 데이터(DAT_ORG)를 수신할 수 있다. 원본 데이터(DAT_ORG)는 디스플레이 패널(1700) 상에 이미지 또는 비디오를 표시하기 위해 참조되는 데이터를 포함할 수 있다. 분할 컨트롤러(3110)는 원본 데이터(DAT_ORG)를 분할하여, 잔차 데이터를 포함하는 변환 단위의 데이터 및 인트라-예측 및/또는 모션 보상에 참조될 예측 단위의 데이터를 생성할 수 있다.
변환기/양자화기(3120)는 잔차 데이터를 수신할 수 있다. 잔차 데이터는 분할 컨트롤러(3110)의 출력과 인트라-예측기(3160) 및 모션 보상기(3170) 중 하나의 출력 사이의 차에 대응할 수 있다. 변환기/양자화기(3120)는 잔차 데이터를 변환 및 양자화하여 변환된 데이터를 생성할 수 있다. 역변환기/역양자화기(3130)는 변환된 데이터를 역변환 및 역양자화하여 잔차 데이터를 복원할 수 있다.
필터(3140)는 인트라-예측기(3160) 및 모션 보상기(3170) 중 하나의 출력과 복원된 잔차 데이터의 합을 수신할 수 있다. 필터(3140)는 블록들 사이의 경계에 포함되는 노이즈를 제거하기 위한 디블로킹 필터(Deblocking Filter), 원본 데이터(DAT_ORG)의 프레임과 복원된 데이터의 프레임 사이의 왜곡을 보상하기 위한 샘플 적응적 오프셋 필터(Sample Adaptive Offset Filter), 인코딩 동안 발생한 정보 손실을 보상하기 위한 적응적 루프 필터(Adaptive Loop Filter) 등을 포함할 수 있다.
프레임 버퍼(3150)는 원본 데이터(DAT_ORG)의 이전 프레임의 데이터를 버퍼링할 수 있다. 예로서, 버퍼 메모리(1140) 및/또는 불휘발성 메모리(1150)는 프레임 버퍼(3150)로서 이용될 수 있다. 버퍼링된 데이터는 현재 프레임의 데이터와 함께 모션 보상기(3170) 및 모션 추정기(3180)에 의해 참조될 수 있다.
인트라-예측기(3160)는 인트라-예측기(3160) 및 모션 보상기(3170) 중 하나의 출력과 복원된 잔차 데이터의 합을 수신할 수 있다. 인트라-예측기(3160)는 원본 데이터(DAT_ORG)의 현재 프레임의 예측 대상 블록에 인접한 블록을 이용하여 예측 대상 블록에 대한 예측 데이터를 획득할 수 있다. 인트라-예측은 하나의 프레임에 포함되는 블록들에 기초하여 수행될 수 있다.
모션 추정기(3180)는, 도 2 내지 도 16을 참조하여 설명된 것들과 유사하게, 현재 프레임의 이미지와 이전 프레임의 이미지 사이에서 인터-예측(Inter-prediction)을 수행할 수 있다. 모션 추정기(3180)는 현재 프레임의 이미지를 구성하는 블록들에 대응하는 모션 벡터들을 생성할 수 있다.
모션 보상기(3170)는 인터-예측에 의해 검출된 예측 데이터를 획득할 수 있다. 인트라-예측에 의해 획득된 예측 데이터 및 인터-예측에 의해 획득된 예측 데이터 중 하나가 변환기/역변환기(3120) 및 필터(3140)를 위해 이용될 수 있다.
모션 추정기(3180)에 의해 생성된 모션 벡터들 및 변환기/역변환기(3120)에 의해 생성된 잔차 데이터는 엔트로피 인코더(3190)로 제공될 수 있다. 엔트로피 인코더(3190)는 모션 벡터들 및 잔차 데이터에 기초하여 인코딩된 데이터(DAT_ENC)를 생성할 수 있다. 예로서, 인코딩된 데이터(DAT_ENC)는 버퍼 메모리(1400) 및/또는 불휘발성 메모리(1500)에 저장될 수 있다. 인코딩된 데이터(DAT_ENC)는 디스플레이 패널(1700) 상에 시각 정보를 표시하기 위해 참조될 수 있다.
도 19는 몇몇 실시 예에 따른 모션 추정과 비디오 인코딩 사이의 관계를 설명하기 위한 개념도이다.
도 10 내지 도 17을 참조하여 설명된 것처럼, 전자 회로(2000)는 모션 벡터를 생성하기 위해 실시 예들에 따라 계층 탐색 기반의 모션 추정을 수행할 수 있다. 예로서, 전자 회로(2000)는 제 K 데시메이션된 이미지부터 제 1 데시메이션된 이미지까지의 순서에 따라 현재 블록과 더 유사한 후보 블록들을 선택할 수 있다.
도 18을 참조하여 설명된 것처럼, CODEC(1830)은 모션 추정에 기초하여 비디오 인코딩 및 디코딩을 수행하기 위해 모션 추정기(3180)를 포함할 수 있다. 몇몇 실시 예에서, 모션 추정기(3180) 역시 계층 탐색 기반의 모션 추정을 수행할 수 있다. 예로서, 모션 추정기(3180)는 제 K 데시메이션된 이미지와 관련하여 완전 탐색을 수행할 수 있고, 제 (K-1) 데시메이션된 이미지로부터 제 1 데시메이션된 이미지까지의 순서에 따라 현재 블록과 더 유사한 후보 블록들을 선택할 수 있다.
몇몇 실시 예에서, CODEC(1830)에서 모션 추정을 수행하도록 구성되는 모션 추정기(3180)의 하드웨어 구성 요소들의 일부 또는 전부는 전자 회로(2000)에 의해 공유될 수 있다. 예로서, CODEC(1830) 및 전자 회로(2000)는 제 (K-1) 데시메이션된 이미지 내지 제 1 데시메이션된 이미지와 관련하여 공유된 하드웨어 구성 요소들을 이용하여 모션 추정을 수행할 수 있다. 다만, 제 K 데시메이션된 이미지와 관련하여, 전자 회로(2000)는 독립적인 하드웨어 구성 요소들을 이용하여 완전 탐색 대신 후보 블록 선택을 수행할 수 있다.
그러나, 본 개시는 위 설명들로 한정되지 않는다. 몇몇 실시 예에서, 모션 추정기(3180) 역시 제 K 데시메이션된 이미지와 관련하여 완전 탐색 대신 후보 블록 선택을 수행할 수 있다. 이 경우, CODEC(1830) 및 전자 회로(2000)는 동일한 하드웨어 구성 요소들을 공유할 수 있다.
위 설명들은 본 개시를 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 개시는 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 개시는 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (20)

  1. 이미지들 사이의 모션 추정을 수행하기 위한 전자 회로에 있어서,
    상이한 해상도들을 갖도록 원본 이미지로부터 생성되는 데시메이션된(Decimated) 이미지들 각각과 관련하여 현재 블록 및 후보 블록들을 판별하되, 상기 해상도들 중 가장 낮은 제 1 해상도의 제 1 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 상기 현재 블록의 위치에 기초하여 제 1 개수의 제 1 후보 블록들을 판별하기 위한 블록 판별기;
    상기 데시메이션된 이미지들 각각과 관련하여 상기 판별된 후보 블록들 중 일부분을 선택하되, 상기 블록 판별기가 상기 원본 이미지와 관련하여 상기 제 1 개수보다 적은 제 2 개수의 제 2 후보 블록들을 판별하도록, 상기 해상도들 중 가장 높은 제 2 해상도의 제 2 데시메이션된 이미지와 관련하여 상기 제 1 후보 블록들 중 일부분인 상기 제 2 후보 블록들을 선택하기 위한 후보 선택기; 및
    상기 제 2 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들로부터 판별되는 하나의 참조 패치에 기초하여 상기 현재 블록에 대한 모션 벡터를 생성하기 위한 모션 벡터 생성기를 포함하는 전자 회로.
  2. 제 1 항에 있어서,
    상기 해상도들 각각은 상기 원본 이미지의 해상도보다 낮고,
    상기 원본 이미지 상의 좌표들은 상기 데시메이션된 이미지들 각각 상의 좌표들과 대응 관계를 갖고,
    상기 블록 판별기는 상기 현재 블록 및 상기 후보 블록들 각각이 상기 원본 이미지 및 상기 데시메이션된 이미지들 상에서 대응하는 좌표들 상에 판별되도록 상기 현재 블록 및 상기 후보 블록들을 판별하는 전자 회로.
  3. 제 1 항에 있어서,
    상기 후보 선택기는 상기 제 1 해상도의 상기 제 1 데시메이션된 이미지부터 상기 제 2 해상도의 상기 제 2 데시메이션된 이미지까지의 순서에 따라 상기 데시메이션된 이미지들 각각과 관련하여 상기 후보 블록들 중 상기 일부분을 선택하여 상기 후보 블록들의 개수를 감소시키는 전자 회로.
  4. 제 1 항에 있어서,
    상기 후보 선택기는 상기 현재 블록과 상기 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들 각각 사이의 유사도에 기초하여 상기 후보 블록들 중 상기 일부분을 선택하고,
    상기 전자 회로는:
    상기 현재 블록에 대한 픽셀 값들과 상기 후보 블록들의 상기 후보 모션 벡터들에 의해 지시되는 상기 참조 패치들 각각에 대한 픽셀 값들 사이의 차이들의 합에 기초하여 상기 유사도를 계산하기 위한 유사도 계산기를 더 포함하는 전자 회로.
  5. 제 1 항에 있어서,
    상기 원본 이미지와 관련하여, 상기 블록 판별기는 상기 현재 블록 및 상기 제 2 후보 블록들을 판별하고, 상기 후보 선택기는 상기 제 2 후보 블록들로부터 상기 하나의 후보 블록을 선택하고,
    상기 하나의 참조 패치는 상기 제 2 후보 블록들의 상기 후보 모션 벡터들에 의해 지시되는 상기 참조 패치들 중 상기 현재 블록에 대한 픽셀 값들과 가장 유사한 픽셀 값들을 갖고,
    상기 모션 벡터 생성기는:
    상기 하나의 참조 패치를 구성하는 제 1 픽셀들 및 상기 원본 이미지 상의 상기 제 1 픽셀들의 위치들에 기초하여 결정되는 제 2 픽셀들과 상기 현재 블록을 구성하는 제 3 픽셀들 사이의 유사도에 기초하여 최종 참조 패치를 판별하고; 그리고
    상기 최종 참조 패치를 지시하는 최종 모션 벡터에 기초하여 상기 모션 벡터를 획득하는 전자 회로.
  6. 제 1 항에 있어서,
    상기 제 1 데시메이션된 이미지를 구성하는 각 픽셀을 표현하기 위한 비트들의 제 1 개수는 상기 제 2 데시메이션된 이미지를 구성하는 각 픽셀을 표현하기 위한 비트들의 제 2 개수보다 적고,
    상기 제 2 개수는 상기 원본 이미지를 구성하는 각 픽셀을 표현하기 위한 비트들의 제 3 개수보다 적은 전자 회로.
  7. 상이한 해상도들의 이미지들의 제 1 데이터를 저장하기 위한 메모리; 및
    상기 해상도들 중 가장 낮은 제 1 해상도의 제 1 이미지부터 상기 해상도들 중 가장 높은 제 2 해상도의 제 2 이미지까지의 순서에 따라 상기 이미지들 각각과 관련하여 현재 블록 및 후보 블록들의 후보 모션 벡터들에 의해 지시되는 참조 패치들에 기초하여 상기 후보 블록들 중 일부분을 선택하고, 상기 제 2 이미지와 관련하여 선택되는 하나의 후보 블록의 후보 모션 벡터에 의해 지시되는 참조 패치에 기초하여 상기 현재 블록에 대한 모션 벡터를 생성하기 위한 제 1 전자 회로를 포함하되,
    상기 제 1 이미지와 관련하여, 상기 제 1 전자 회로는 전체 픽셀들에 대한 완전 탐색 없이 상기 이미지들 상의 상기 현재 블록의 위치에 기초하여 상기 후보 블록들을 판별하는 전자 장치.
  8. 제 7 항에 있어서,
    상기 이미지들 중 상기 제 2 이미지를 제외한 다른 이미지들 각각은 상기 제 2 이미지를 다운-샘플링하여 생성되는 전자 장치.
  9. 제 7 항에 있어서,
    상기 제 1 전자 회로는 상기 순서에 따라 상기 이미지들을 참조하고,
    상기 이미지들 중 제 3 이미지와 관련하여 선택되는 제 1 후보 블록들은 상기 제 3 이미지가 참조된 직후에 제 4 이미지와 관련하여 이용되고,
    상기 제 3 이미지와 관련하여 선택되지 않는 제 2 후보 블록들은 상기 제 4 이미지와 관련하여 이용되지 않는 전자 장치.
  10. 제 9 항에 있어서,
    상기 제 4 이미지와 관련하여 선택되는 제 3 후보 블록들은 상기 제 1 후보 블록들의 일부분인 전자 장치.
  11. 제 7 항에 있어서,
    상기 제 1 전자 회로는 상기 이미지들 상에서 상기 현재 블록의 제 1 좌표에 인접하지 않은 제 2 좌표들의 후보 블록들 중 제 1 일부분을 선택하고 상기 제 2 좌표들의 상기 후보 블록들 중 제 2 일부분을 선택하지 않는 전자 장치.
  12. 제 7 항에 있어서,
    상기 선택된 후보 블록들은 상기 이미지들 상에서 상기 현재 블록의 좌표에 인접한 좌표들의 후보 블록들을 포함하는 전자 장치.
  13. 제 7 항에 있어서,
    상기 순서에 따라 상기 이미지들 각각에 기초하여 상기 후보 블록들 중 상기 일부분이 선택됨에 따라, 상기 이미지들 각각과 관련하여 선택되는 후보 블록들의 개수가 감소하고,
    상기 하나의 후보 블록은 상기 개수가 감소함에 따라 상기 후보 블록들로부터 마지막에 선택되는 전자 장치.
  14. 제 7 항에 있어서,
    상기 제 1 전자 회로는 상기 모션 벡터를 생성하기 위해 제 1 모션 추정을 수행하고,
    상기 전자 장치는 제 2 모션 추정에 기초하여 비디오 인코딩 및 디코딩을 수행하기 위한 제 2 전자 회로를 더 포함하고,
    상기 제 2 전자 회로에서 상기 제 2 모션 추정을 수행하도록 구성되는 하드웨어 구성 요소들의 일부 또는 전부는 상기 제 1 모션 추정을 수행하기 위해 상기 제 1 전자 회로에 의해 공유되는 전자 장치.
  15. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 명령어들을 저장하기 위한 메모리를 포함하되,
    상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행되는 경우, 상기 하나 이상의 프로세서가:
    원본 이미지의 제 1 해상도보다 낮은 해상도들을 갖도록 상기 원본 이미지로부터 생성되는 데시메이션된(Decimated) 이미지들 중 가장 낮은 제 2 해상도의 제 1 데시메이션된 이미지와 관련하여 전체 픽셀들에 대한 완전 탐색 없이 현재 블록의 위치에 기초하여 후보 블록들을 판별하고; 그리고
    상기 데시메이션된 이미지들 각각과 관련하여 상기 현재 블록 및 상기 후보 블록들에 기초하여 상기 후보 블록들 중 일부분을 선택하여 상기 후보 블록들의 개수를 감소시키도록 야기하는 전자 장치.
  16. 제 15 항에 있어서,
    상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행되는 경우, 상기 하나 이상의 프로세서가 상기 데시메이션된 이미지들 각각과 관련하여 설정된 비율 또는 개수만큼의 상기 일부분을 선택하도록 야기하는 전자 장치.
  17. 원본 이미지의 제 1 데이터 및 상기 원본 이미지의 제 1 해상도보다 낮은 해상도들을 갖도록 상기 원본 이미지로부터 생성되는 데시메이션된(Decimated) 이미지들의 제 2 데이터를 저장하기 위한 메모리; 및
    상기 데시메이션된 이미지들 각각과 관련하여 현재 블록 및 후보 블록들에 기초하여 상기 후보 블록들 중 일부분을 선택하고, 상기 해상도들 중 가장 높은 제 2 해상도의 제 1 데시메이션된 이미지와 관련하여 선택되는 제 1 후보 블록들을 이용하여 상기 현재 블록에 대한 모션 벡터를 생성하기 위한 전자 회로를 포함하되,
    상기 해상도들 중 가장 낮은 제 3 해상도의 제 2 데시메이션된 이미지와 관련하여, 상기 전자 회로는 전체 픽셀들에 대한 완전 탐색 없이 상기 현재 블록의 위치에 기초하여 제 2 후보 블록들을 판별하고,
    상기 제 1 후보 블록들은 상기 제 2 후보 블록들의 일부분인 전자 장치.
  18. 제 17 항에 있어서,
    상기 데시메이션된 이미지들의 상기 해상도들은 상이하고,
    상기 전자 회로는 상기 제 3 해상도의 상기 제 2 데시메이션된 이미지부터 상기 제 2 해상도의 상기 제 1 데시메이션된 이미지까지의 순서에 따라 상기 데시메이션된 이미지들 각각과 관련하여 상기 현재 블록 및 상기 후보 블록들에 기초하여 상기 후보 블록들 중 상기 일부분을 선택하는 전자 장치.
  19. 제 17 항에 있어서,
    상기 전자 회로가 상기 후보 블록들 중 상기 일부분을 선택함에 따라, 상기 제 1 후보 블록들의 개수는 상기 제 2 후보 블록들의 개수보다 감소하는 전자 장치.
  20. 제 17 항에 있어서,
    상기 전자 회로는 상기 2 후보 블록들을 판별하기 위해 상기 메모리로부터 상기 제 1 데이터 및 상기 제 2 데이터를 읽고,
    상기 메모리로부터 읽히는 상기 제 1 데이터 및 상기 제 2 데이터의 양은 상기 완전 탐색을 위한 데이터의 양보다 적은 전자 장치.
KR1020180164425A 2018-12-18 2018-12-18 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치 KR20200076000A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180164425A KR20200076000A (ko) 2018-12-18 2018-12-18 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치
US16/504,916 US10893292B2 (en) 2018-12-18 2019-07-08 Electronic circuit and electronic device performing motion estimation through hierarchical search
TW108128277A TWI802733B (zh) 2018-12-18 2019-08-08 透過階層式搜尋執行移動估算的電子電路以及電子裝置
CN201911052393.XA CN111343465A (zh) 2018-12-18 2019-10-31 电子电路和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180164425A KR20200076000A (ko) 2018-12-18 2018-12-18 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치

Publications (1)

Publication Number Publication Date
KR20200076000A true KR20200076000A (ko) 2020-06-29

Family

ID=71073769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180164425A KR20200076000A (ko) 2018-12-18 2018-12-18 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치

Country Status (4)

Country Link
US (1) US10893292B2 (ko)
KR (1) KR20200076000A (ko)
CN (1) CN111343465A (ko)
TW (1) TWI802733B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615156B1 (ko) * 2018-12-18 2023-12-19 삼성전자주식회사 감소된 개수의 후보 블록들에 기초하여 모션 추정을 수행하는 전자 회로 및 전자 장치
CN113949869B (zh) * 2020-07-16 2024-04-26 晶晨半导体(上海)股份有限公司 估计像素块运动矢量的方法和视频处理装置及设备和介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761398A (en) 1995-12-26 1998-06-02 C-Cube Microsystems Inc. Three stage hierarchal motion vector determination
US6363117B1 (en) 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
KR100534207B1 (ko) * 2002-12-09 2005-12-08 삼성전자주식회사 비디오 부호화기의 움직임 추정기 및 그 방법
KR100970726B1 (ko) * 2003-10-04 2010-07-16 삼성전자주식회사 계층적 움직임 추정 방법
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7649549B2 (en) * 2004-09-27 2010-01-19 Texas Instruments Incorporated Motion stabilization in video frames using motion vectors and reliability blocks
US20060233258A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Scalable motion estimation
US20080260033A1 (en) * 2007-04-17 2008-10-23 Horizon Semiconductors Ltd. Hybrid hierarchical motion estimation for video streams
JP5633720B2 (ja) * 2009-09-29 2014-12-03 Dic株式会社 微細パターン形成用インキ組成物
US20110255596A1 (en) 2010-04-15 2011-10-20 Himax Technologies Limited Frame rate up conversion system and method
JP5669523B2 (ja) * 2010-07-06 2015-02-12 三菱電機株式会社 フレーム補間装置及び方法、並びにプログラム及び記録媒体
US9706221B2 (en) * 2013-10-29 2017-07-11 Vixs Systems Inc. Motion search with scaled and unscaled pictures
CN107113442B (zh) * 2014-10-31 2020-08-07 三星电子株式会社 用于对运动矢量进行编码/解码的方法和装置
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10187655B2 (en) * 2015-09-30 2019-01-22 Apple Inc. Memory-to-memory low resolution motion estimation systems and methods

Also Published As

Publication number Publication date
CN111343465A (zh) 2020-06-26
TWI802733B (zh) 2023-05-21
US10893292B2 (en) 2021-01-12
TW202038628A (zh) 2020-10-16
US20200195964A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
JP7004782B2 (ja) 画像予測方法および関連装置
CN110741640B (zh) 用于视频代码化中的运动补偿预测的光流估计
JP6163674B2 (ja) 高効率次世代ビデオコーディングのためのコンテンツ適応双方向性又は機能性予測マルチパスピクチャ
US20220167004A1 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
US9357228B2 (en) Motion estimation of images
TW201830972A (zh) 用於視訊寫碼之低複雜度符號預測
TW202041002A (zh) 解碼器側運動向量精緻化之限制
US10742989B2 (en) Variable frame rate encoding method and device based on a still area or a motion area
US20210358005A1 (en) Video coding apparatus and video coding method
KR20240033137A (ko) 모션 벡터 리파인먼트를 위한 제한된 메모리 액세스 윈도우
US10284810B1 (en) Using low-resolution frames to increase frame rate of high-resolution frames
WO2009110670A1 (en) Encoding system using motion estimation and encoding method using motion estimation
US20190141332A1 (en) Use of synthetic frames in video coding
US8170110B2 (en) Method and apparatus for zoom motion estimation
KR20200076000A (ko) 계층 탐색을 통해 모션 추정을 수행하는 전자 회로 및 전자 장치
NZ590990A (en) Content adaptive and art directable scalable video coding
Sanchez et al. DMPDS: a fast motion estimation algorithm targeting high resolution videos and its FPGA implementation
KR102615156B1 (ko) 감소된 개수의 후보 블록들에 기초하여 모션 추정을 수행하는 전자 회로 및 전자 장치
Aysu et al. A low energy adaptive hardware for H. 264 multiple reference frame motion estimation
WO2018120420A1 (zh) 一种基于模板匹配的预测方法及装置
US10187656B2 (en) Image processing device for adjusting computational complexity of interpolation filter, image interpolation method, and image encoding method
TWI834707B (zh) 根據候選區塊減少數目執行移動估算之電子電路與電子裝置
JP2022509982A (ja) ビデオシーケンスのためのピクチャエンコーディング及びデコーディング方法及び装置
WO2021046692A1 (en) Resolution-adaptive video coding with conditional interpolation filters
WO2021003671A1 (en) Resolution-adaptive video coding

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal