KR102347598B1 - 영상 부호화 장치 및 인코더 - Google Patents
영상 부호화 장치 및 인코더 Download PDFInfo
- Publication number
- KR102347598B1 KR102347598B1 KR1020170133921A KR20170133921A KR102347598B1 KR 102347598 B1 KR102347598 B1 KR 102347598B1 KR 1020170133921 A KR1020170133921 A KR 1020170133921A KR 20170133921 A KR20170133921 A KR 20170133921A KR 102347598 B1 KR102347598 B1 KR 102347598B1
- Authority
- KR
- South Korea
- Prior art keywords
- encoder
- frame
- prediction
- information
- module
- 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/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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/124—Quantisation
-
- 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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
-
- 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
-
- 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/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/567—Motion estimation based on rate distortion criteria
-
- 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/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
Abstract
영상 부호화 장치가 제공된다. 영상 부호화 장치는, 제1 프레임에 포함된 복수의 제1 블록에 대한 인트라 예측 또는 인터 예측을 수행하는 예측 모듈을 포함하는 제1 인코더 및 상기 제1 프레임과 다른 제2 프레임을 부호화하고, 상기 예측 모듈을 포함하지 않는 제2 인코더를 포함하고, 상기 예측 모듈은, 상기 제1 블록에 대해 상기 인터 예측을 수행한 경우, 모션 추정에 대한 제1 정보를 상기 제2 인코더에 전송하고, 상기 제2 인코더는, 상기 제1 정보를 수신하고, 상기 제1 정보에 기초하여 상기 제2 프레임에 포함된 복수의 제2 블록에 대한 모션 보상을 수행하여 예측 블록을 생성하는 예측 블록 생성 모듈을 포함한다.
Description
본 발명은 영상 부호화 장치 및 인코더에 관한 것이다.
HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 증가하고 있으며, 고해상도, 고품질의 영상을 처리하기 위해 고성능의 영상 압축 기술들이 활용되고 있다.
최근에는 휴대폰(Mobile Phone), 스마트 폰(Smart Phone) 등과 같은 모바일 기기가 널리 이용되고 있으며, 크기가 작고 배터리를 사용하는 등 제한된 환경을 가지는 모바일 기기 내에서 고해상도, 고품질의 영상을 효율적으로 압축할 수 있는 다양한 방안에 대한 연구가 진행되고 있다.
특히 최근에는 높은 값의 fps(Frame Per Second)로 영상을 부호화하는 경우가 많아지고 있다. 다만, 현재 인코더는 제한된 fps로 부호화를 수행할 수 있기 때문에 현실적으로 하나의 인코더를 이용하여 높은 fps로 부호화를 진행하기 어려운 경우가 많다.
복수 개의 인코더를 사용하는 경우 높은 fps로 영상을 부호화할 수도 있다. 하지만, 복수 개의 인코더를 사용할 경우 부호화 장치의 크기가 커지기 때문에 부호화 장치를 내장한 디바이스의 크기도 커지게 되는 문제가 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 복수 개의 인코더를 사용하여 영상을 부호화하되 복수 개의 인코더가 차지하는 공간을 최소화하는 것을 목적으로 한다.
본 발명이 해결하고자 하는 다른 기술적 과제는 풀 인코더(full encoder) 및 부분 인코더(partial encoder)를 사용하여 영상을 부호화하되 화질 열화의 발생을 최소화하는 것을 목적으로 한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 영상 부호화 장치는, 제1 프레임에 포함된 복수의 제1 블록에 대한 인트라 예측 또는 인터 예측을 수행하는 예측 모듈을 포함하는 제1 인코더 및 상기 제1 프레임과 다른 제2 프레임을 부호화하고, 상기 예측 모듈을 포함하지 않는 제2 인코더를 포함하고, 상기 예측 모듈은, 상기 제1 블록에 대해 상기 인터 예측을 수행한 경우, 모션 추정에 대한 제1 정보를 상기 제2 인코더에 전송하고, 상기 제2 인코더는, 상기 제1 정보를 수신하고, 상기 제1 정보에 기초하여 상기 제2 프레임에 포함된 복수의 제2 블록에 대한 모션 보상을 수행하여 예측 블록을 생성하는 예측 블록 생성 모듈을 포함한다.
본 발명의 몇몇 실시예에 따르면, 인트라 예측 또는 인터 예측을 수행하는 예측 모듈을 포함하지 않고 제1 프레임의 부호화를 수행하는 인코더는, 상기 인코더와 다른 제1 인코더로부터 모션 추정에 대한 제1 정보 또는 인트라 예측에 대한 제2 정보를 수신하여 예측 블록을 생성하는 예측 블록 생성 모듈 및 상기 인코더를 통해 부호화된 데이터를 역양자화를 통해 복원한 복원 프레임을 상기 제1 프레임과 비교하여 화질 열화 상태를 감지하는 후처리 모듈을 포함한다.
본 발명의 몇몇 실시예에 따른 영상 부호화 장치는, 제1 인코더, 상기 제1 인코더와 다른 제2 인코더 및 입력 영상에 포함된 복수의 프레임 중 제1 프레임을 상기 제1 인코더에 할당하고 상기 복수의 프레임 중 상기 제1 프레임의 다음 프레임인 제2 프레임을 상기 제2 인코더에 할당하는 프로세서를 포함하고, 상기 프로세서는, 상기 제2 인코더를 통해 부호화된 이미지에서 화질 열화가 감지된 경우, 상기 제1 인코더에서 상기 제1 프레임의 부호화가 완료된 후 상기 제2 프레임을 상기 제1 인코더에 재할당하고 제2 프레임의 다음 프레임인 제3 프레임을 상기 제2 인코더에 할당한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 영상 부호화 시스템을 도시한 블록도이다.
도 2는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제1 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 3은 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 4는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 5는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 6은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위한 흐름도이다.
도 7은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 8은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 2는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제1 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 3은 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 4는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 5는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 6은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위한 흐름도이다.
도 7은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 8은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 1은 본 발명의 몇몇 실시예에 따른 영상 부호화 시스템을 도시한 블록도이다.
도 1을 참조하면, 영상 부호화 시스템(10)은 영상을 촬영하여 데이터로 처리하고, 처리된 데이터를 디스플레이, 저장 또는 전송할 수 있는 다양한 장치를 포함할 수 있다.
예를 들어, 영상 부호화 시스템(10)은, TV, DTV(Digital TV), IPTV(internet protocol TV), PC(personal computer), 데스크 탑 컴퓨터, 랩-탑(lap-top) 컴퓨터, 컴퓨터 워크스테이션(computer workstation), 태블릿(tablet) PC, 비디오 게임 플랫폼(또는 비디오 게임 콘솔), 서버 및 모바일 컴퓨팅 장치 중의 하나로 구현될 수 있다. 여기서, 모바일 컴퓨팅 장치는 이동 전화기, 스마트 폰(smart phone), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(Internet of Things; IOT) 장치, 만물 인터넷(Internet of Everything; IOE) 장치 또는 e-book으로 구현될 수 있다.
영상 부호화 시스템(10)은 비디오 소스(50), 영상 부호화 장치(100), 디스플레이(200), 입력 장치(210) 및 제2 메모리(220)를 포함할 수 있다.
도 1에 도시된 구성요소들은 영상 부호화 시스템(10)을 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
영상 부호화 장치(100)는 시스템 온 칩(System On Chip; SoC)으로 구성될 수 있다.
비디오 소스(50)는 예를 들어, CCD 또는 CMOS 이미지 센서를 탑재한 카메라로 구현될 수 있다.
비디오 소스(50)는 피사체를 촬영하고, 상기 피사체에 대한 제1 데이터(IM)를 생성하고, 생성된 제1 데이터(IM)를 영상 부호화 장치(100)에 제공할 수 있다.
제1 데이터(IM)는 정지 영상 데이터 또는 동영상 데이터일 수 있다. 몇몇 실시예에서, 비디오 소스(50)는 이와 달리 호스트(HOST)에 포함될 수 있다. 이 경우, 제1 데이터(IM)는 호스트로부터 제공된 영상 데이터일 수 있다.
영상 부호화 장치(100)는 영상 부호화 시스템(10)의 동작을 전반적으로 제어할 수 있다.
예를 들어, 영상 부호화 장치(100)는 몇몇 실시예에 따른 동작들을 수행할 수 있는 직접 회로(intergrated circuit; IC), 마더보드, 애플리케이션 프로세서(Application Processor; AP) 또는 모바일(mobile) AP를 포함할 수 있다.
영상 부호화 장치(100)는 비디오 소스(50)로부터 출력된 제1 데이터(IM)를 처리하고, 처리된 데이터를 디스플레이(200)를 통해 디스플레이하거나, 제2 메모리(220)에 저장하거나, 다른 데이터 처리 시스템으로 전송할 수 있다.
영상 부호화 장치(100)는 전-처리 회로(110), 제1 인코더(310, Encoder 1), 제2 인코더(320, Encoder 2), 프로세서(130), 제1 메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 버스(170), 모뎀(180) 및 사용자 인터페이스(190)를 포함할 수 있다.
다만, 상술한 구성 요소들은 영상 부호화 장치(100)를 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
제1 인코더(310), 제2 인코더(320), 프로세서(130), 제1 메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 모뎀(180) 및 사용자 인터페이스(190)는 버스(170)를 통해 서로 데이터를 주고 받을 수 있다.
예를 들어, 버스(170)는 PCI 버스(Peripheral Component Interconnect Bus), PCI 익스프레스(PCI Express; PCIe) 버스, AMBA(Advanced Microcontroller Bus Architecture), AHB(Advanced High Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced Extensible Interface) 버스 및 이들의 어느 조합으로부터 선택된 적어도 하나로 구현될 수 있으나 이에 한정되는 것은 아니다.
전-처리 회로(110)는 예를 들어, 이미지 신호 프로세서(Image Signal Processor; ISP)를 포함할 수 있다. ISP는 제1 데이터 포맷을 갖는 제1 데이터(IM)를 제2 데이터(FI1) 및 제3 데이터(FI2)로 변환할 수 있다.
예를 들어, 제1 데이터(IM)는 베이어(Bayer) 패턴을 갖는 데이터이고 제2 데이터(FI1) 및 제3 데이터(FI2)는 YUV 데이터일 수 있으나 이에 한정되는 것은 아니다.
전-처리 회로(110)는 비디오 소스(50)로부터 출력된 제1 데이터(IM)를 수신할 수 있다. 전-처리 회로(110)는 수신된 제1 데이터(IM)를 처리하고, 처리 결과에 따라 생성된 제2 데이터(FI1) 및 제3 데이터(FI2)를 제1 인코더(310) 및 제2 인코더(320)에 제공할 수 있다.
영상 부호화 장치(100)가 구동되는 환경에서, 제1 데이터(IM), 제2 데이터(FI1) 및 제3 데이터(FI2)는 예를 들어, 프레임(또는 픽쳐) 단위로 제공될 수 있다.
예를 들어, 제1 데이터(IM)는 복수의 프레임(F1, F2, F3, F4) 데이터를 포함하는 데이터 집합일 수 있다. 여기서, 제2 프레임(F2)은 제1 프레임(F1)의 다음 프레임일 수 있다. 제3 프레임(F3)은 제2 프레임(F2)의 다음 프레임일 수 있다. 제4 프레임(F4)은 제3 프레임(F3)의 다음 프레임일 수 있다.
제1 인코더(310)에 전송되는 제2 데이터(FI1)는 홀수 번 프레임(F1, F3)에 대한 데이터를 포함하는 데이터 그룹일 수 있다. 제2 인코더(320)에 전송되는 제3 데이터(FI2)는 짝수 번 프레임(F2, F4)에 대한 데이터를 포함하는 데이터 그룹일 수 있다.
도 1에서 전-처리 회로(110)는 영상 부호화 장치(100) 내부에 구현된 것으로 도시되어 있으나, 실시예가 이에 한정되는 것은 아니고 전-처리 회로(110)는 영상 부호화 장치(100) 외부에 구현될 수도 있다.
제1 인코더(310)는 복수의 프레임(F1, F2, F3, F4) 중 홀수 번째 프레임(예를 들어, 제1 프레임(F1) 및 제3 프레임(F3))에 대한 부호화를 수행할 수 있다. 이 경우, 제2 인코더(320)는 제1 프레임(F1) 다음 프레임인 제2 프레임(F2)에 대한 부호화를 수행할 수 있다. 다만, 이에 한정되는 것은 아니고, 제1 인코더(310)에 짝수 번째 프레임(예를 들어, 제2 프레임(F2) 및 제4 프레임(F4))이 할당 또는 재할당된 경우, 제1 인코더(310)는 짝수 번째 프레임을 부호화할 수 있다.
제1 인코더(310)는 제1 프레임(F1)(또는, 제3 프레임(F3))에 포함된 복수의 블록들 각각에 대한 부호화 동작을 수행하면서 획득된 모션 추정에 대한 제1 정보, 인트라 예측에 대한 제2 정보 및 레이트 제어 모듈에 의해 결정된 양자화 파라미터 값에 대한 제3 정보 중 적어도 하나를 제2 인코더(320)에 전송할 수 있다.
제2 인코더(320)는 제2 프레임(F2)에 포함된 복수의 블록들 각각에 대한 부호화 동작을 수행할 때, 모션 추정, 인트라 예측 또는 양자화 파라미터 값의 조절 중 적어도 하나를 수행하지 않을 수 있다. 대신, 제2 인코더(320)는 제1 정보, 제2 정보 및 제3 정보 중 적어도 하나를 수신하여 제2 프레임(F2) 데이터에 포함된 복수의 블록들 각각에 대한 예측 블록을 생성할 수 있다.
몇몇 실시예에 따르면, 제1 인코더(310)는 풀 인코더(full encoder)일 수 있고, 제2 인코더(320)는 파셜 인코더(partial encoder)일 수 있다. 즉, 제1 인코더(310)에 포함된 일부 구성 요소는 제2 인코더(320)에 포함되지 않을 수 있다. 예를 들어, 레이터 제어 모듈, 모션 추정 모듈 및 인트라 예측 모듈 중 적어도 하나가 제2 인코더(320)에 포함되지 않을 수 있다.
상기 부호화 동작은 JPEG(Joint Picture Expert Group), MPEG (Motion Picture Expert Groups), MPEG-2, MPEG-4, VC-1, H. 264, H. 265, 또는 HEVC (High Efficiency Video Coding) 등의 영상 데이터 부호화 기술을 이용 할 수 있으나 이에 한정되는 것은 아니다.
프로세서(130)는 영상 부호화 장치(100)의 동작을 제어할 수 있다.
프로세서(130)는 하나 또는 그 이상의 애플리케이션들(예를 들어, 소프트웨어 애플리케이션들)을 실행할 수 있도록 사용자 입력을 제공받을 수 있다.
프로세서(130)에 의해 실행되는 애플리케이션들 중 일부는 영상 통화 애플리케이션일 수 있다. 또한, 프로세서(130)에 의해 실행되는 애플리케이션들은 운영 체저(operating system; OS), 워드프로세서 애플리케이션, 미디어 플레이어 애플리케이션, 비디오 게임 애플리케이션 및/또는 그래픽 사용자 인터페이스(Graphic User Interface; GUI) 애플리케이션을 포함할 수 있으나 이에 한정되는 것은 아니다.
프로세서(130)는 전-처리 회로(110)를 제어하여 홀수 번 프레임(F1, F3) 데이터는 제1 인코더(310)에 할당하고, 짝수 번 프레임(F2, F4) 데이터는 제2 인코더(320)에 할당할 수 있다. 즉, 프로세서(130)는 제1 인코더(310) 및 제2 인코더(320)에 할당되는 프레임을 결정할 수 있다.
다만, 프로세서(130)는 다양한 방법으로 제1 인코더(310) 및 제2 인코더(320)에 프레임 데이터를 할당할 수 있다. 예를 들어, 프로세서(130)는 제1 인코더(310)에 짝수 번 프레임(F2, F4) 데이터를 할당하고, 제2 인코더(320)에 홀수 번 프레임(F1, F3) 데이터를 할당할 수도 있다.
몇몇 실시예에 따르면, 프로세서(130)는 제2 인코더(320)를 통해 부호화된 이미지를 역부호화하여 생성된 프레임에서 화질 열화가 감지된 경우, 제1 인코더(310)에서 현재 부호화 중인 프레임의 부호화가 완료된 후 화질 열화가 감지된 프레임을 제1 인코더(310)에 재할당하고, 화질 열화가 감지된 프레임의 다음 프레임을 제2 인코더(320)에 할당할 수 있다. 이 경우, 제1 인코더(310) 및 제2 인코더(320)에 할당되는 프레임이 변경될 수 있다.
예를 들어, 제1 인코더(310)에서 제1 프레임(F1)을 부호화하고, 제2 인코더(320)에서 제2 프레임(F2)을 부호화하였다고 가정하면, 프로세서(130)는 제2 프레임를 부호화한 데이터를 역 부호화한 프레임에서 화질 열화가 감지되면 제1 인코더(310)에 제2 프레임(F2)을 재할당할 수 있다. 그리고, 프로세서(130)는 제2 인코더(320)에 제2 프레임(F2)의 다음 프레임인 제3 프레임(F3)을 할당할 수 있다.
제1 메모리(140)는 메모리 컨트롤러(160)의 제어 하에, 제2 데이터(FI1) 및 제3 데이터(FI2) 내에서 제1 인코더(310) 및 제2 인코더(320)에 의해 현재 부호화되고 있는 프레임들에 대응하는 정보를 제1 인코더(310) 및 제2 인코더(320)에 전송할 수 있다.
메모리 컨트롤러(160)는 제1 인코더(310), 제2 인코더(320) 또는 프로세서(130)의 제어 하에 제1 인코더(310) 및 제2 인코더(320)에서 부호화된 데이터 또는 프로세서(130)로부터 출력된 데이터(예를 들어, 비트 스트림)를 제2 메모리(220)에 라이트할 수 있다.
제1 메모리(140)는 SRAM(Static Random Access Memory)과 같은 휘발성 메모리로 구현될 수 있다. 휘발성 메모리는 RAM(random access memory), SRAM(static RAM), DRAM (dynamic RAM), SDRAM(synchronous DRAM), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니고 제1 메모리(140)는 비휘발성 메모리로 구현될 수도 있다.
제2 메모리(220)는 비휘발성 메모리로 구현될 수 있다. 비휘발성 메모리는 EEPROM(electrically erasable programmable read-only memory), 플래시(flash) 메모리, MRAM(magnetic RAM), 스핀전달토크 MRAM (spin-transfer torque MRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), 또는 RRAM(resistive RAM)으로 구현될 수 있다. 또한, 비휘발성 메모리는 MMC(multimedia card), eMMC(embedded MMC), UFS(universal flash storage), 솔리드 스테이트 드라이브(solid state drive or solid state disk(SSD)), USB 플래시 드라이브, 또는 하드디스크 드라이브(hard disk drive; HDD)로 구현될 수 있다. 다만, 이에 한정되는 것은 아니고 제2 메모리(220)는 휘발성 메모리로 구현될 수도 있다.
도 1에서는 영상 부호화 장치(100)의 외부에 제2 메모리(220)가 도시되어 있으나, 이에 한정되는 것은 아니고 제2 메모리(220)는 영상 부호화 장치(100)의 내부에 구현될 수도 있다.
디스플레이 컨트롤러(150)는, 인코더(120) 또는 프로세서(130)로부터 출력된 데이터를 디스플레이(200)로 전송할 수 있다. 디스플레이(200)는 모니터, TV 모니터, 프로젝션 장치(projection device), TFT-LCD(thin film transistorliquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다.
예컨대, 디스플레이 컨트롤러(150)는 MIPI 디스플레이 시리얼 인터페이스 (display serial interface; DSI)를 통해 데이터를 디스플레이(200)로 전송할 수 있다.
입력 장치(210)는 사용자로부터 입력된 사용자 입력을 수신하고, 상기 사용자 입력에 응답하여 입력 신호를 사용자 인터페이스(190)로 전송할 수 있다.
입력 장치(210)는 터치 패널(touch panel), 터치 스크린(touch screen), 음성 인식기(voice recognizer), 터치 펜, 키보드, 마우스, 트랙 포인트 등으로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 입력 장치(210)가 터치 스크린인 경우에, 입력 장치(210)는 터치 패널과 터치 패널 컨트롤러를 포함할 수 있다. 입력 장치(210)는 디스플레이(200)와 접속될 수 있고, 디스플레이(200)와 분리되어 구현될 수도 있다.
입력 장치(210)는 입력 신호를 사용자 인터페이스(190)로 전송할 수 있다.
사용자 인터페이스(190)는 입력 장치(210)로부터 입력 신호를 수신하고, 상기 입력 신호에 의해 발생되는 데이터를 프로세서(130)로 전송할 수 있다.
모뎀(180)은 인코더(120) 또는 프로세서(130)에 의해 인코딩된 데이터를 무선 통신 기술을 이용하여 외부로 출력할 수 있다. 모뎀(180)은 예를 들어, 와이파이(WI-FI), 와이브로(WIBRO), 3G 무선통신, LTETM(long term evolution), LTE-A(long term evolution-advanced), 또는 광대역(broadband) LTE-A 등의 방식을 채용할 수 있으나, 이에 한정되는 것은 아니다. 도 2는 도 1에 도시된 영상 부호화 시스템에 포함된 인코더의 예시적인 블록도이다.
도 2는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제1 인코더의 일례를 설명하기 위해 도시한 블록도이다.
도 2를 참조하면, 제1 인코더(310)는 파티셔닝 유닛(Partitioning Unit; 311), 예측 모듈(312), 압축 모듈(313), 레이트 제어 모듈(Rate Control Module; 314), 디코딩 픽쳐 버퍼(Decoding Picture Buffer; DPB, 315), 필터 유닛(Filter Unit; 316), 엔트로피 인코딩 유닛(Entropy Encoding Unit, 317) 및 합산기(318, 319)를 포함할 수 있다.
도 2에 도시된 구성요소들은 제1 인코더(310)를 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나 또는 적은 구성요소들을 가질 수 있다.
파티셔닝 유닛(311)은 제2 데이터(FI1)에 포함된 현재 부호화를 수행할 프레임(예를 들어, 도 1의 제1 프레임(F1))을 복수의 블록으로 구분할 수 있다.
예측 모듈(312)은 제1 프레임에 대한 인트라(intra) 예측 또는 인터(inter) 예측을 수행할 수 있다.
인트라 예측은 현재 부호화를 수행하는 프레임 외의 다른 프레임을 참조하지 않고 예측을 수행하는 것이고, 인터 예측은 현재 부호화를 수행하는 프레임 외의 다른 프레임을 참조하여 예측을 수행하는 것이다.
예측 모듈(312)은 모션 추정 모듈(Motion Estimation Module, 312a), 모션 보상 모듈(Motion Compensation Module, 312b), 인트라 예측 모듈(312c) 및 스위치(312d)를 포함할 수 있다.
모션 추정 모듈(312a)은 현재 부호화되는 프레임을 왜곡이 가장 적고 발생하는 비트 수가 가장 적도록 적당한 크기 및 적당한 개수의 복수의 블록으로 분할할 수 있다. 모션 추정 모듈(312a)은 다양한 모션 추정의 모드(예를 들어, 일반 모드, 머지(merge) 모드 등) 중 왜곡이 가장 적고 발생하는 비트 수가 가장 적은 모드를 선택할 수 있다. 모션 추정 모듈(312a)은 디코딩 픽쳐 버퍼(315)에 저장되어 있는 참조 영상에서 예측 모듈(312)에 입력되는 블록과 가장 매치가 잘되는 영역을 찾아 움직임 벡터를 구할 수 있다.
모션 보상 모듈(312b)은 모션 추정 모듈(312a)에 의해 생성된 움직임 벡터와 디코딩 픽쳐 버퍼(315)에 저장되어있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
인트라 예측 모듈(312c)은 현재 부호화되는 프레임을 왜곡이 가장 적고 발생하는 비트 수가 가장 적도록 적당한 크기 및 적당한 개수의 복수의 블록으로 분할할 수 있다. 인트라 예측 모듈(312c)은 다양한 인트라 예측의 모드(예를 들어, DC 모드, PLANAR 모드 등) 중 왜곡이 가장 적고 발생하는 비트 수가 가장 적은 모드를 선택할 수 있다. 인트라 예측 모듈(312c)은 현재 부호화를 수행하고 있는 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
예측 모듈(312)은 인트라 예측 및 인터 예측을 모두 수행한 후 수학식 1에 의해 산출된 코스트 값(J)을 이용하여 인트라 예측을 수행할지 아니면 인터 예측을 수행할지를 결정할 수 있다.
수학식 1에서 D는 부호화된 이미지의 왜곡 지수를 나타내는 값이고, A는 양자화 파라미터 값에 비례하는 상수 값이고, R은 인트라 예측 또는 인터 예측을 통해 발생하는 비트 수를 나타내는 값이다.
예측 모듈(312)은 코스트 값(J)을 비교하여 인터 예측을 수행하는 것이 적합하다고 인식한 경우, 스위치(312d)를 이용하여 인터 예측을 수행하도록 할 수 있다. 예측 모듈(312)은 코스트 값(J)을 비교하여 인트라 예측을 수행하는 것이 적합하다고 인식한 경우, 스위치(312d)를 이용하여 인트라 예측을 수행하도록 할 수 있다.
몇몇 실시예에 따르면, 제1 인코더(310)에서 인터 예측이 수행된 경우, 제1 인코더(310)는 모션 추정을 수행한 블록에 대한 정보(예를 들어, 모션 추정을 수행한 블록의 크기 및 개수에 대한 정보), 모션 추정에 사용된 모드에 대한 정보, 참조 프레임에 대한 정보 및 움직임 벡터 정보 중 적어도 하나를 포함하는 모션 추정에 대한 제1 정보(I1)를 제2 인코더(320)에 전송할 수 있다.
몇몇 실시예에 따르면, 제1 인코더(310)에서 인트라 예측이 수행된 경우, 제1 인코더(310)는 인트라 예측을 수행한 블록에 대한 정보(예를 들어, 인트라 예측을 수행한 블록의 크기 및 개수에 대한 정보), 인트라 예측에 사용된 모드에 대한 정보, 참조 블록에 대한 정보 중 적어도 하나를 포함하는 인트라 예측에 대한 제2 정보(I2)를 제2 인코더(320)에 전송할 수 있다.
감산기(318)는 현재 부호화를 진행 중인 블록과 예측 모듈(312)에서 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성할 수 있다. 여기서, 잔여 블록은 현재 부호화를 진행 중인 블록과 예측 블록 사이의 차이를 나타내는 블록일 수 있다.
레이트 제어 모듈(314)은 예측 블록을 이용하여 현재 프레임에 포함된 복수의 블록 각각의 양자화 파라미터 값을 조절할 수 있다.
몇몇 실시예에 따르면, 제1 인코더(310)는 레이트 제어 모듈(314)에 의해 결정된 양자화 파라미터 값에 대한 제3 정보(I3)를 제2 인코더(320)에 전송할 수 있다.
압축 모듈(313)은 변환 모듈(313a), 양자화 유닛(313b), 역양자화 모듈(313c) 및 역변환 모듈(313d)을 포함할 수 있다.
변환 모듈(313a)은 잔여 블록으로부터 변환된 블록 데이터를 형성할 수 있다. 변환 모듈(313a)은, 이산 코사인 변환(Discrete Cosine Transform; DCT) 또는 웨이브렛 변환(wavelet transform)등을 사용할 수 있다. 변환 모듈(313a)에서 생성된 변환 계수들은 양자화 유닛(313b)으로 전송될 수 있다.
양자화 유닛(313b)은 변환 계수를 레이터 제어 모듈(314)에 의해 결정된 양자화 파라미터 값에 따라 양자화하여 양자화된 계수를 출력할 수 있다. 양자화 유닛(313b)은 변환 계수들을 양자화하여 비트 수를 감소시킬 수 있다. 이 과정에서 레이터 제어 모듈(314)은 양자화 파라미터 값을 조정함으로써 양자화 정도를 수정할 수 있다.
양자화된 계수는 역양자화 모듈(313c)에서 역양자화되고 역변환 모듈(313d)에서 역변환될 수 있다. 역양자화 및 역변환된 계수는 가산기(319)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터 유닛(316)을 거칠 수 있다. 필터 유닛(316)은 디블로킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록에 적용할 수 있다. 필터 유닛(316)을 거친 복원 블록은 디코딩 픽쳐 버퍼(315)에 저장될 수 있다.
엔트로피 인코딩 유닛(317)은 양자화 유닛(313b)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 부호화하여 제1 비트 스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서 복호 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란, 부호화 대상 구문 요소(syntax element) 및 부호화 파라미터(coding parameter), 잔여 블록 등을 의미할 수 있다. 부호화 파라미터는, 부호화 및 복호화에 필요한 매개변수로서, 구문 요소와 같이 부호화 장치에서 부호화되어 복호화 장치로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 부호화하거나 복호화할 때 필요한 정보일 수 있다. 부호화 파라미터는 예를 들어, 인트라/인터 예측, 움직임 벡터, 참조 영상 색인, 부호화 블록 패턴, 잔여 블록 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터 값, 블록의 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 인코딩 유닛(317)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 인코딩 유닛(317)은 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 인코딩 유닛(317)은 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
도 3 내지 도 5는 몇몇 실시예에 따른 도 1의 영상 부호화 장치에 포함된 제2 인코더의 일례를 설명하기 위해 도시한 블록도들이다.
도 3을 참조하면, 제2 인코더(320)는 파티셔닝 유닛(Partitioning Unit; 321), 예측 블록 생성 모듈(322), 압축 모듈(323), 필터 유닛(Filter Unit; 325), 후처리 모듈(326), 엔트로피 인코딩 유닛(Entropy Encoding Unit, 327) 및 합산기(328, 329)를 포함할 수 있다.
도 3에 도시된 구성요소들은 제2 인코더(320)를 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나 또는 적은 구성요소들을 가질 수 있다.
파티셔닝 유닛(321)은 제3 데이터(FI2)에 포함된 제2 프레임(도 1의 F2)을 복수의 블록으로 구분할 수 있다. 여기서, 제2 프레임은 제1 인코더(310)에서 부호화되는 제1 프레임의 다음 프레임일 수 있다.
제2 인코더(320)는 제1 인코더(도 2의 310)와 다르게 예측 모듈(도 2의 312)을 포함하지 않을 수 있다. 다만, 제2 인코더(320)는 예측 모듈(도 2의 312) 대신 예측 블록 생성 모듈(322)을 포함할 수 있다.
예측 블록 생성 모듈(322)은 제1 인코더(도 2의 310)로부터 제1 정보(I1) 또는 제2 정보(I2)를 수신하여 예측 블록을 생성할 수 있다.
제2 프레임은 제1 프레임의 바로 다음 프레임이므로 제2 프레임과 제1 프레임은 서로 유사할 가능성이 크다. 따라서, 제1 인코더(도 2의 310)에서 제1 프레임에 대한 인트라 예측 또는 모션 추정을 수행하고 그 수행 결과 생성되는 정보를 제2 인코더(320)와 공유하여 제2 인코더(320)는 인트라 예측 모듈 또는 모션 추정 모듈 없이 예측 블록을 생성할 수 있게 된다.
일례로, 예측 블록 생성 모듈(322)은, 제1 인코더(도 2의 310)로부터 모션 추정을 수행한 블록에 대한 정보(예를 들어, 모션 추정을 수행한 블록의 크기 및 개수에 대한 정보), 모션 추정에 사용된 모드에 대한 정보, 참조 프레임에 대한 정보 및 움직임 벡터 정보 중 적어도 하나를 포함하는 모션 추정에 대한 제1 정보(I1)를 수신한 경우, 제1 정보에 기초하여 제2 프레임에 포함된 복수의 블록에 대한 모션 보상을 수행하여 예측 블록을 생성할 수 있다.
다른 일례로, 예측 블록 생성 모듈(322)은, 제1 인코더(도 2의 310)로부터 제1 인코더(310)는 인트라 예측을 수행한 블록에 대한 정보(예를 들어, 인트라 예측을 수행한 블록의 크기 및 개수에 대한 정보), 인트라 예측에 사용된 모드에 대한 정보, 참조 블록에 대한 정보 중 적어도 하나를 포함하는 인트라 예측에 대한 제2 정보(I2)를 수신한 경우, 제2 정보에 기초하여 제2 프레임에 포함된 복수의 블록에 대한 예측 블록을 생성할 수 있다.
보통 인코더 내에서 모션 추정 모듈의 크기가 가장 크기 때문에 모션 추정 모듈 및 인트라 예측 모듈이 포함되지 않은 제2 인코더(320)의 크기는 많이 작아질 수 있다. 결과적으로, 복수의 인코더를 사용하여 높은 값의 fps로 영상의 부호화를 수행함과 동시에 부호화 장치의 크기를 최소화할 수 있다.
몇몇 실시예에 따르면, 제2 인코더(320)에는 움직임 추정 모듈(312a)만 포함되지 않을 수도 있다. 이 경우, 예측 블록 생성 모듈(322)은 인트라 예측은 수행할 수 있지만, 인터 예측은 수행할 수 없으므로 제1 인코더(도 2의 310)로부터 제1 정보(I1)만 수신할 수도 있다.
감산기(328)는, 제2 프레임 내의 복수의 블록 중 현재 부호화되는 블록과 예측 블록 생성 모듈(322)을 통해 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성할 수 있다. 여기서, 잔여 블록은 현재 부호화되는 블록과 예측 블록 사이의 차이를 나타내는 블록일 수 있다.
압축 모듈(323)은 변환 모듈(323a), 양자화 유닛(323b), 역양자화 모듈(323c) 및 역변환 모듈(323d)을 포함할 수 있다.
변환 모듈(323a)은 잔여 블록으로부터 변환된 블록 데이터를 형성할 수 있다. 변환 모듈(323a)은, 이산 코사인 변환(Discrete Cosine Transform; DCT) 또는 웨이브렛 변환(wavelet transform)등을 사용할 수 있다. 변환 모듈(323a)에서 생성된 변환 계수들은 양자화 유닛(323b)으로 전송될 수 있다.
몇몇 실시예에 따르면, 양자화 유닛(323b)은 제1 인코더(도 2의 310)에 포함된 레이트 제어 모듈(도 2의 314)에 의해 결정된 양자화 파라미터 값에 대한 제3 정보(I3)를 수신할 수 있다. 양자화 유닛(323b)은 제1 인코더(도 2의 310)로부터 수신된 제3 정보(I3)에 기초하여 양자화 파라미터 값을 조절할 수 있다. 양자화 유닛(323b)은 변환 계수를 상기 조절된 양자화 파라미터 값에 따라 양자화하여 양자화된 계수를 출력할 수 있다.
앞서 살펴본 바와 같이, 제2 프레임은 제1 프레임의 바로 다음 프레임이므로 제2 프레임과 제1 프레임은 서로 유사할 가능성이 크다. 따라서, 동일한 양자화 파라미터 값을 사용하더라도 문제가 발생할 가능성이 낮다. 따라서, 제2 인코더(320)에서 레이트 제어 모듈을 제거하고, 제1 인코더(도 2의 310)로부터 수신된 제3 정보(I3)에 기초하여 양자화 파라미터 값을 결정하는 경우, 제2 인코더(320)의 크기를 감소시킬 수 있다.
한편, 도 4를 참조하면, 몇몇 실시예에 따른 제2 인코더(320)는 레이터 제어 모듈(324)을 포함할 수도 있다. 이 경우, 도 3과 달리 양자화 유닛(323b)은 제1 인코더(도 2의 310)로부터 제3 정보(I3)를 수신하지 않는다. 그리고, 레이트 제어 모듈(324)은 예측 블록을 이용하여 현재 프레임에 포함된 복수의 블록 각각의 양자화 파라미터 값을 조절할 수 있다. 양자화 유닛(323b)은 변환 계수를 레이터 제어 모듈(324)에 의해 결정된 양자화 파라미터 값에 따라 양자화하여 양자화된 계수를 출력할 수 있다. 도 4에서 제2 인코더(320)에 포함되는 구성 요소들은 레이트 제어 모듈(324)을 제외하고 도 3과 동일한바 도 4에서 다른 구성 요소들에 대한 자세한 설명은 생략한다.
다시 도 3을 참조하면, 양자화된 계수는 역양자화 모듈(323c)에서 역양자화되고 역변환 모듈(323d)에서 역변환될 수 있다. 역양자화 및 역변환된 계수는 가산기(329)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터 유닛(325)을 거칠 수 있다. 필터 유닛(325)은 디블로킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록에 적용할 수 있다. 필터 유닛(325)을 거친 복원 블록은 후처리 모듈(326)에 전송될 수 있다.
후처리 모듈(326)은 복원 블록을 수신하여 프레임을 복원할 수 있다. 후처리 모듈(326)은 복원된 프레임을 제2 인코더(320)에서 부호화를 진행한 제2 프레임과 비교할 수 있다. 후처리 모듈(326)은 복원된 프레임과 제2 프레임의 비교한 결과 화질 열화 상태를 감지한 경우 영상 부호화 장치의 프로세서(도 1의 130)에게 화질 열화 상태가 발생하였다는 제4 정보(I4)를 전송할 수 있다. 여기서, 후처리 모듈(326)은 복원된 프레임과 제2 프레임이 기 설정된 정도 이상으로 차이가 나는 경우 화질 열화 상태가 발생하였다고 인식할 수 있다.
도 5를 참조하면, 후처리 모듈(326)은 제1 인코더(도 2의 310)를 통해 복수의 블록(A)을 수신하여 제3 프레임을 생성할 수도 있다. 여기서, 복수의 블록(A)은 도 2의 파티셔닝 유닛(311)을 통해 제1 프레임을 분할한 복수의 블록일 수도 있고, 도 2의 필터 유닛(316)을 통해 복원된 복수의 블록일 수도 있다. 그리고, 후처리 모듈(326)은 도 5의 필터 유닛(325)을 통해 수신한 복원 블록을 이용하여 제4 프레임을 생성할 수 있다.
후처리 모듈(326)은 제3 프레임과 제4 프레임을 비교하여 기 설정된 정도 이상으로 차이가 나는 경우 화질 열화 상태가 발생하였다고 인식할 수 있다. 후처리 모듈(326)은 화질 열화 상태가 발생하였다고 인식한 경우, 화질 열화 상태가 발생하였다는 제4 정보(I4)를 영상 부호화 장치의 프로세서(도 1의 130)에게 전송할 수 있다.
도 5에서 제2 인코더(320)에 포함되는 구성 요소들은 레이트 제어 모듈(324)을 제외하고 도 3과 동일한바 도 5에서 다른 구성 요소들에 대한 자세한 설명은 생략한다.
몇몇 실시예에 따르면, 프로세서(도 1의 130)는 화질 열화 상태가 발생하였다는 제4 정보(I4)를 수신한 경우, 제1 인코더 및 제2 인코더에 프레임을 재할당 할 수 있다. 이에 대한 자세한 설명은 도 6 내지 도 8을 참조하여 자세히 후술한다.
도 3을 다시 참조하면, 엔트로피 인코딩 유닛(327)은 양자화 유닛(323b)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값등을 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 부호화하여 제2 비트 스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서 복호 가능한 2진수의 열로 표현하는 방법이다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 인코딩 유닛(317)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 인코딩 유닛(327)은 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 인코딩 유닛(327)은 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
도 6은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위한 흐름도이다. 도 7 및 도 8은 몇몇 실시예에 따른 영상 부호화 장치에서 화질 열화 상태가 인식된 경우 제1 인코더 및 제2 인코더에 입력되는 프레임을 재할당하는 방법의 일례를 설명하기 위해 도시한 도면들이다.
도 6 내지 도 8과 관련하여 도 1 내지 도 5와 관련하여 상술한 바와 중복되는 내용은 다시 설명하지 않으며 이하 차이점을 중심으로 설명한다.
도 6을 참조하면, 영상 부호화 장치(도 1의 100)에 포함된 프로세서(도 1의 130)는, 제1 인코더(도 2의 310) 및 제2 인코더(도 3의 320)에 입력되는 프레임을 할당할 수 있다(S410).
입력 데이터가 복수의 프레임을 포함하는 경우, 프로세서(도 1의 130)는 홀수 번째 프레임은 제1 인코더(도 2의 310)에 입력되도록 할당하고, 짝수 번째 프레임은 제2 인코더(도 3의 320)에 입력되도록 할당할 수 있다. 이렇게 복수의 프레임을 제1 인코더와 제2 인코더 각각에 중복되지 않도록 할당할 경우, 영상 부호화 장치의 fps(Frame Per Second)가 높아진다.
예를 들어, 도 7을 참조하면, 프로세서(도 1의 130)는 복수의 프레임에 포함된 제1 프레임(F1)을 제1 인코더(310)에 할당할 수 있고, 상기 제1 프레임(F1)의 다음 프레임인 제2 프레임(F2)을 제2 인코더(320)에 할당할 수 있다.
도 6을 다시 참조하면, 제1 인코더(도 2의 310) 및 제2 인코더(도 3의 320)는 자신에게 할당된 프레임 각각을 부호화할 수 있다(S420).
한편, 제2 인코더(도 3의 320)에 포함된 후처리 모듈(도 3의 326)은 화질 열화 상태를 감지할 수 있다(S430).
도 1 내지 도 5에서 상술한 바와 같이 제2 인코더(320)에는 인트라 예측 또는 인터 예측을 수행하는 예측 모듈이 포함되어 있지 않다. 그리고, 제2 인코더(320)는 제1 인코더(310)에서 생성된 인트라 예측 또는 인터 예측에 대한 정보를 수신하여 예측 블록을 생성하게 된다.
도 7을 참조하면, 제2 인코더(320)에서 부호화하는 제2 프레임(F2)이 제1 인코더(310)에서 부호화하는 제1 프레임(F1)과 다른 경우(예를 들어, 제1 프레임(F1)의 밝기(brightness) 값이 제2 프레임(F2)의 밝기 값과 다른 경우, 제1 프레임(F1)의 움직임 벡터(motion vector)가 제2 프레임(F2)의 움직임 벡터와 다른 경우, 제2 프레임(F1) 내의 씬(scene)이 제1 프레임(F1)과 전혀 다른 경우), 제2 인코더(320)에서 복호화된 프레임 내에 화질 열화 현상이 발생하게 된다. 따라서, 이러한 문제점을 해결할 필요가 있다.
도 6을 다시 참조하면, 화질 열화 현상이 발생하게 되는 경우, 제2 인코더(도 3의 320)에 포함된 후처리 모듈(도 3의 326)은 화질 열화 상태가 발생하였다고 인식할 수 있다(S430, Y). 후처리 모듈(도 3의 326)이 화질 열화 상태를 감지하는 방법은 도 3 및 도 5와 관련하여 상술한 바 자세한 설명은 생략한다.
제2 인코더(도 3의 320)에 포함된 후처리 모듈(도 3의 326)이 화질 열화 상태가 발생하였다고 인식한 경우(S430, Y), 후처리 모듈(도 3의 326)은 프로세서(도 1의 130)에게 화질 열화 상태가 인식되었다는 정보를 전송할 수 있다. 이 경우, 프로세서(도 1의 130)는 상기 정보를 수신함에 따라 제1 인코더(도 2의 310) 및 제2 인코더(도 3의 320)에 입력되는 프레임을 재할당할 수 있다(S440).
예를 들어, 도 8을 참조하면, 프로세서(도 1의 130)는 제2 인코더(도 3의 320)에 포함된 후처리 모듈(도 3의 326)로부터 화질 열화 상태가 발생하였다는 정보를 수신한 경우, 제1 인코더(310)에서 제1 프레임(F1)에 대한 부호화가 종료된 후에 제2 프레임(F2)을 제1 인코더(310)에 재할당하고, 제2 프레임(F2) 다음 프레임인 제3 프레임(F3)을 제2 인코더(320)에 할당할 수 있다. 즉, 제1 인코더(310)에서 제1 프레임(F1)에 대한 부호화가 완료된 후, 프로세서(도 1의 130)는 제1 인코더(310)에 짝수 번의 프레임을 할당하고 제2 인코더(320)에 홀수 번의 프레임을 할당하게 된다. 즉, 프로세서(도 1의 130)는 화질 열화 현상을 감지한 경우 프레임 할당 방법을 변경할 수 있다.
도 6을 다시 참조하면, 제1 인코더(도 2의 310)는 제1 인코더(도 3의 310)에 재할당된 제2 프레임에 대한 부호화를 수행하고, 제2 인코더(도 3의 320)는 제2 인코더에 할당된 제3 프레임에 대한 부호화를 수행하게 된다. 제1 인코더(도 2의 310)는 제2 인코더(도 3의 320)와 달리 예측 모듈이 포함되어 있다. 따라서, 제1 인코더(도 2의 310)에서 해당 프레임을 다시 부호화함으로써 해당 프레임에서 발생하는 화질 열화 현상이 해결될 수 있다.
몇몇 실시예에 따르면, 제2 인코더(도 3의 320)의 후처리 모듈(도 3의 326)에서 화질 열화 상태가 감지된 경우, 프로세서(130)는 제2 인코더(도 3의 320)에서 생성된 제2 비트 스트림을 저장 또는 전송하지 않고 삭제할 수도 있다.
프로세서(130)는, 제2 인코더(도 3의 320)에 포함된 후처리 모듈(도 3의 326)이 화질 열화 상태를 인식하지 못한 경우(S430, N), 제1 인코더(도 2의 310) 또는 제2 인코더(도 3의 320)에서 부호화를 진행한 프레임이 마지막 프레임인지 여부를 인식할 수 있다(S450).
프로세서(도 1의 130)는 부호화를 진행한 프레임이 마지막 프레임이라고 인식한 경우(S450, Y), 영상 부호화를 종료할 수 있다. 다만, 프로세서(도 1의 130)는 부호화를 진행한 프레임이 마지막 프레임이 아니라고 인식한 경우, 상술한 단계들(S410-S450)을 반복할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
50: 비디오 소스 100: 영상 부호화 장치
110: 전-처리 회로 130: 프로세서
140, 220: 제1 메모리 150: 디스플레이 컨트롤러
160: 메모리 컨트롤러 170: 버스
180: 모뎀 190: 사용자 인터페이스
200: 디스플레이 210: 입력 장치
310: 제1 인코더 320: 제2 인코더
110: 전-처리 회로 130: 프로세서
140, 220: 제1 메모리 150: 디스플레이 컨트롤러
160: 메모리 컨트롤러 170: 버스
180: 모뎀 190: 사용자 인터페이스
200: 디스플레이 210: 입력 장치
310: 제1 인코더 320: 제2 인코더
Claims (10)
- 제1 프레임에 포함된 복수의 제1 블록에 대한 인트라 예측 또는 인터 예측을 수행하는 예측 모듈과, 상기 제1 프레임에 대한 양자화 파라미터 값을 생성하는 레이트 제어 모듈을 포함하는 제1 인코더;
상기 제1 프레임과 다르고, 상기 제1 프레임과 연속하는 제2 프레임을 부호화하고, 상기 예측 모듈과 상기 레이트 제어 모듈을 포함하지 않는 제2 인코더; 및
상기 제1 프레임을 상기 제1 인코더에 전송하고, 상기 제2 프레임을 상기 제2 인코더에 전송하는 전-처리 회로를 포함하고,
상기 예측 모듈은,
상기 제1 블록에 대해 상기 인터 예측을 수행한 경우, 모션 추정에 대한 제1 정보를 상기 제2 인코더에 전송하고,
상기 제2 인코더는,
상기 제1 정보를 수신하고, 상기 제1 정보에 기초하여 상기 제2 프레임에 포함된 복수의 제2 블록에 대한 모션 보상을 수행하여 예측 블록을 생성하는 예측 블록 생성 모듈을 포함하는, 영상 부호화 장치. - 제 1 항에 있어서,
상기 제1 인코더는,
상기 복수의 제1 블록 각각에 대한 양자화 파라미터 값을 결정하는 레이트 제어 모듈을 더 포함하고,
상기 제2 인코더는,.
상기 레이트 제어 모듈에서 결정된 상기 양자화 파라미터 값에 대한 제3 정보를 수신하여 양자화를 수행하는 양자화 유닛을 더 포함하는, 영상 부호화 장치. - 제 1 항에 있어서,
상기 제1 인코더는,
상기 복수의 제1 블록 각각에 대한 양자화 파라미터 값을 결정하는 제1 레이트 제어 모듈을 더 포함하고,
상기 제2 인코더는,
상기 복수의 제2 블록 각각에 대한 양자화 파라미터 값을 결정하는 제2 레이트 제어 모듈을 더 포함하는, 영상 부호화 장치. - 인트라 예측 또는 인터 예측을 수행하는 예측 모듈을 포함하지 않고 제1 프레임의 부호화를 수행하는 인코더에 있어서,
상기 인코더와 다른 제1 인코더로부터 상기 제1 프레임과 연속하고, 상기 제1 프레임과 다른 제2 프레임에 대한 모션 추정에 대한 제1 정보 또는 인트라 예측에 대한 제2 정보를 수신하여 예측 블록을 생성하는 예측 블록 생성 모듈; 및
상기 제1 인코더를 통해 부호화된 데이터를 역양자화를 통해 복원한 복원 프레임을 상기 제1 프레임과 비교하여 화질 열화 상태를 감지하는 후처리 모듈을 포함하는 인코더. - 제 4 항에 있어서,
상기 후처리 모듈은,
상기 제1 프레임과 상기 복원 프레임이 기 설정된 정도 이상으로 차이가 나는 경우 상기 화질 열화 상태가 발생한 것으로 감지하는, 인코더. - 제1 인코더;
상기 제1 인코더와 다른 제2 인코더; 및
입력 영상에 포함된 복수의 프레임 중 제1 프레임을 상기 제1 인코더에 할당하고 상기 복수의 프레임 중 상기 제1 프레임과 다르며, 상기 제1 프레임의 다음 프레임인 제2 프레임을 상기 제2 인코더에 할당하는 프로세서를 포함하고,
상기 프로세서는,
상기 제2 인코더를 통해 부호화된 이미지에서 화질 열화가 감지된 경우, 상기 제1 인코더에서 상기 제1 프레임의 부호화가 완료된 후 상기 제2 프레임을 상기 제1 인코더에 재할당하고 제2 프레임의 다음 프레임인 제3 프레임을 상기 제2 인코더에 할당하는, 영상 부호화 장치. - 제 6 항에 있어서,
상기 제1 인코더는,
제1 프레임에 포함된 복수의 제1 블록에 대한 인트라 예측 또는 인터 예측을 수행하는 예측 모듈을 포함하고,
상기 제1 블록에 대해 상기 인터 예측을 수행한 경우, 모션 추정에 대한 제1 정보를 상기 제2 인코더에 전송하고,
상기 제1 블록에 대해 상기 인트라 예측을 수행한 경우, 상기 인트라 예측에 대한 제2 정보를 상기 제2 인코더에 전송하는, 영상 부호화 장치. - 제 7 항에 있어서,
상기 제2 인코더는,
상기 제1 정보 또는 상기 제2 정보를 수신하고, 상기 제1 정보 또는 상기 제2 정보에 기초하여 상기 제2 프레임에 포함된 복수의 제2 블록에 대한 예측 블록을 생성하는 예측 블록 생성 모듈을 포함하는, 영상 부호화 장치. - 제 6 항에 있어서,
상기 제2 인코더는,
상기 화질 열화를 감지한 경우 제4 정보를 상기 프로세서에 전송하는 후처리 모듈을 더 포함하는, 영상 부호화 장치. - 제 9 항에 있어서,
상기 프로세서는,
상기 제4 정보를 수신한 경우, 상기 화질 열화가 감지되었다고 인식하는, 영상 부호화 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170133921A KR102347598B1 (ko) | 2017-10-16 | 2017-10-16 | 영상 부호화 장치 및 인코더 |
US15/962,217 US10674160B2 (en) | 2017-10-16 | 2018-04-25 | Parallel video encoding device and encoder configured to operate in parallel with another encoder |
TW107124713A TWI816684B (zh) | 2017-10-16 | 2018-07-18 | 視訊編碼器件以及編碼器 |
CN201811197684.3A CN109672890B (zh) | 2017-10-16 | 2018-10-15 | 视频编码器件及编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170133921A KR102347598B1 (ko) | 2017-10-16 | 2017-10-16 | 영상 부호화 장치 및 인코더 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190042234A KR20190042234A (ko) | 2019-04-24 |
KR102347598B1 true KR102347598B1 (ko) | 2022-01-05 |
Family
ID=66096274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170133921A KR102347598B1 (ko) | 2017-10-16 | 2017-10-16 | 영상 부호화 장치 및 인코더 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10674160B2 (ko) |
KR (1) | KR102347598B1 (ko) |
CN (1) | CN109672890B (ko) |
TW (1) | TWI816684B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11190810B2 (en) * | 2018-01-26 | 2021-11-30 | Samsung Electronics Co., Ltd. | Device and method for compressing image data using quantization parameter and entropy tables |
CN115767245A (zh) | 2021-08-30 | 2023-03-07 | 瑞昱半导体股份有限公司 | 视频处理***以及方法 |
CN114598843A (zh) * | 2022-02-09 | 2022-06-07 | 上海赫千电子科技有限公司 | 一种应用于大型汽车多路摄像头的图像处理***及方法 |
CN115633176B (zh) * | 2022-12-08 | 2023-03-21 | 北京蔚领时代科技有限公司 | 动态调整画面群组长度的方法、装置和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356589B1 (en) | 1999-01-28 | 2002-03-12 | International Business Machines Corporation | Sharing reference data between multiple encoders parallel encoding a sequence of video frames |
JP2009533938A (ja) | 2006-04-11 | 2009-09-17 | サムスン エレクトロニクス カンパニー リミテッド | 多階層基盤のビデオエンコーディング方法および装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978029A (en) | 1997-10-10 | 1999-11-02 | International Business Machines Corporation | Real-time encoding of video sequence employing two encoders and statistical analysis |
CN101411203B (zh) * | 2006-04-04 | 2012-11-07 | 高通股份有限公司 | 自适应编码器辅助帧速率上变换 |
WO2007138151A1 (en) * | 2006-05-30 | 2007-12-06 | Hantro Products Oy | Apparatus, arrangement, method and computer program product for digital video processing |
WO2008008150A2 (en) | 2006-07-10 | 2008-01-17 | Thomson Licensing | Methods and apparatus for enhanced performance in a multi-pass video encoder |
US20080152014A1 (en) * | 2006-12-21 | 2008-06-26 | On Demand Microelectronics | Method and apparatus for encoding and decoding of video streams |
US8311115B2 (en) * | 2009-01-29 | 2012-11-13 | Microsoft Corporation | Video encoding using previously calculated motion information |
KR20110047310A (ko) * | 2009-10-30 | 2011-05-09 | 삼성전자주식회사 | 비디오 인코딩 장치 및 비디오 인코딩 방법 |
US20110150074A1 (en) | 2009-12-23 | 2011-06-23 | General Instrument Corporation | Two-pass encoder |
US8681858B2 (en) | 2009-12-23 | 2014-03-25 | General Instrument Corporation | Rate control for two-pass encoder |
US9319716B2 (en) * | 2011-01-27 | 2016-04-19 | Qualcomm Incorporated | Performing motion vector prediction for video coding |
US20130259137A1 (en) * | 2012-03-30 | 2013-10-03 | Google Inc. | System and Method for Multi-Core Hardware Video Encoding And Decoding |
US8948529B1 (en) | 2012-10-30 | 2015-02-03 | Google Inc. | Multi-pass encoding |
CN104782124B (zh) | 2012-12-17 | 2018-09-07 | 英特尔公司 | 利用编码器硬件对视频内容进行预处理 |
KR20150035318A (ko) | 2013-09-27 | 2015-04-06 | 삼성테크윈 주식회사 | 인코딩 장치 및 방법, 그리고 인코딩 장치를 구비한 카메라 |
US10057590B2 (en) * | 2014-01-13 | 2018-08-21 | Mediatek Inc. | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding |
KR102264840B1 (ko) * | 2014-11-27 | 2021-06-15 | 삼성전자주식회사 | 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치 |
KR102483269B1 (ko) * | 2016-08-29 | 2023-01-02 | 삼성전자주식회사 | 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템 |
US10115223B2 (en) * | 2017-04-01 | 2018-10-30 | Intel Corporation | Graphics apparatus including a parallelized macro-pipeline |
-
2017
- 2017-10-16 KR KR1020170133921A patent/KR102347598B1/ko active IP Right Grant
-
2018
- 2018-04-25 US US15/962,217 patent/US10674160B2/en active Active
- 2018-07-18 TW TW107124713A patent/TWI816684B/zh active
- 2018-10-15 CN CN201811197684.3A patent/CN109672890B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356589B1 (en) | 1999-01-28 | 2002-03-12 | International Business Machines Corporation | Sharing reference data between multiple encoders parallel encoding a sequence of video frames |
JP2009533938A (ja) | 2006-04-11 | 2009-09-17 | サムスン エレクトロニクス カンパニー リミテッド | 多階層基盤のビデオエンコーディング方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109672890B (zh) | 2023-04-07 |
TWI816684B (zh) | 2023-10-01 |
US10674160B2 (en) | 2020-06-02 |
CN109672890A (zh) | 2019-04-23 |
TW201918070A (zh) | 2019-05-01 |
KR20190042234A (ko) | 2019-04-24 |
US20190116362A1 (en) | 2019-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10291925B2 (en) | Techniques for hardware video encoding | |
KR102543444B1 (ko) | 영상 부호화 장치 | |
US10448027B2 (en) | Method of encoding video data, video encoder performing the same and electronic system including the same | |
KR102347598B1 (ko) | 영상 부호화 장치 및 인코더 | |
KR102274747B1 (ko) | 코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템 | |
US11025913B2 (en) | Encoding video using palette prediction and intra-block copy | |
US10841659B2 (en) | Video encoding apparatus and video encoding system | |
US10694178B2 (en) | Video processing device for encoding frames constituting hierarchical structure | |
US20170013262A1 (en) | Rate control encoding method and rate control encoding device using skip mode information | |
KR102476204B1 (ko) | 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템 | |
US10728557B2 (en) | Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels | |
CN111108747B (zh) | 获得信号的时间样本的目标表示 | |
RU2783385C2 (ru) | Кодер, декодер и соответствующие способы с использованием компактного mv хранилища | |
RU2771925C1 (ru) | Кодер, декодер и соответствующие способы с использованием компактного mv хранилища | |
US12015780B2 (en) | Inter prediction method and apparatus, video encoder, and video decoder | |
US10951900B2 (en) | Speeding up small block intra-prediction in video coding | |
US20210258591A1 (en) | Buffer apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |