KR102476204B1 - 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템 - Google Patents

멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템 Download PDF

Info

Publication number
KR102476204B1
KR102476204B1 KR1020170135827A KR20170135827A KR102476204B1 KR 102476204 B1 KR102476204 B1 KR 102476204B1 KR 1020170135827 A KR1020170135827 A KR 1020170135827A KR 20170135827 A KR20170135827 A KR 20170135827A KR 102476204 B1 KR102476204 B1 KR 102476204B1
Authority
KR
South Korea
Prior art keywords
data
motion estimation
codec
estimation information
frame
Prior art date
Application number
KR1020170135827A
Other languages
English (en)
Other versions
KR20190043825A (ko
Inventor
노성호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170135827A priority Critical patent/KR102476204B1/ko
Priority to US15/980,276 priority patent/US10931952B2/en
Priority to TW107124676A priority patent/TWI785073B/zh
Priority to CN201811214818.8A priority patent/CN109688408A/zh
Publication of KR20190043825A publication Critical patent/KR20190043825A/ko
Application granted granted Critical
Publication of KR102476204B1 publication Critical patent/KR102476204B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/436Methods 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
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/124Quantisation
    • 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/189Methods 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/196Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/39Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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

Abstract

멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템이 제공된다. 상기 멀티 코덱 인코더는 제1 및 제2 데이터를 각각 수신하는 제1 및 제2 파티셔닝 유닛으로서, 상기 제1 및 제2 데이터는 영상 데이터의 순차적으로 배치되는 프레임 중 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 파티셔닝 유닛, 상기 제1 데이터와 참조 데이터를 이용하여 모션 추정 정보를 생성하는 모션 추정 모듈, 상기 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱 및 상기 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함한다.

Description

멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템{Multi-codec encoder and multi-codec encoding system including the same}
본 발명은 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템에 관한 것이다.
HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 증가하고 있으며, 고해상도, 고품질의 영상을 처리하기 위해 고성능의 영상 압축 기술들이 활용되고 있다.
최근에는 휴대폰(Mobile Phone), 스마트 폰(Smart Phone) 등과 같은 모바일 기기가 널리 이용되고 있으며, 크기가 작고 배터리를 사용하는 등 제한된 환경을 가지는 모바일 기기 내에서 고해상도, 고품질의 영상을 효율적으로 압축할 수 있는 다양한 방안에 대한 연구가 진행되고 있다.
특히 최근에는 높은 값의 fps(Frame Per Second)로 영상을 인코딩하는 경우가 많아지고 있다. 다만, 현재 인코더는 제한된 값의 fps 값으로 인코딩을 수행할 수 있기 때문에 현실적으로 하나의 인코더를 이용하여 높은 값의 fps 값으로 인코딩을 진행하기 어려운 경우가 많다.
복수 개의 인코더를 사용하는 경우 높은 fps 값으로 영상을 인코딩할 수도 있다. 하지만, 복수 개의 인코더를 사용할 경우 인코딩 장치의 크기가 커지기 때문에 인코딩 장치를 내장한 디바이스의 크기도 커지게 되는 문제가 존재한다.
마찬가지로, 고해상도의 영상을 인코딩하는 경우에도 하나의 인코더를 이용하여 높은 속도를 유지하기 어려울 수 있어 복수 개의 인코더를 사용할 수 있다. 이러한 경우에도 인코딩 장치를 내장한 디바이스의 크기도 커지게 되는 문제가 존재한다.
본 발명이 해결하려는 과제는, 복수의 인코더를 사용하여 영상을 인코딩하되 복수 개의 인코더가 차지하는 공간을 최소화하는 멀티 코덱 인코더를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 복수의 인코더를 사용하여 영상을 인코딩하되 복수 개의 인코더가 차지하는 공간을 최소화하는 멀티 코덱 인코더를 포함하는 멀티 코덱 인코딩 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코더는, 제1 및 제2 데이터를 각각 수신하는 제1 및 제2 파티셔닝 유닛으로서, 상기 제1 및 제2 데이터는 영상 데이터의 순차적으로 배치되는 프레임 중 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 파티셔닝 유닛, 상기 제1 데이터와 참조 데이터를 이용하여 모션 추정 정보를 생성하는 모션 추정 모듈, 상기 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱 및 상기 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템은 영상 데이터를 순차적으로 배치되는 프레임 중 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 데이터로 분할하는 전처리 회로 및 상기 제1 및 제2 데이터를 수신하여 각각 인코딩하는 멀티 코덱 인코더를 포함하되, 상기 멀티 코덱 인코더는, 상기 제1 데이터와 참조 데이터를 이용하여 모션 추정 정보를 생성하는 모션 추정 모듈과, 상기 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱과, 상기 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함한다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코더는 제1 및 제2 데이터를 각각 수신하는 제1 및 제2 파티셔닝 유닛으로서, 상기 제1 및 제2 데이터는 영상 데이터의 순차적으로 배치되는 프레임 중 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 파티셔닝 유닛, 상기 제1 데이터와 참조 데이터를 이용하여 제1 모션 추정 정보를 생성하고, 상기 제2 데이터와 상기 참조 데이터를 이용하여 제2 모션 추정 정보를 생성하는 모션 추정 모듈로서, 상기 제1 및 제2 모션 추정 정보는 프레임의 절반을 이용하여 생성되는 모션 추정 모듈, 상기 제1 및 제2 모션 추정 정보를 저장하는 메모리, 상기 제1 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱; 및 상기 제2 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함한다.
도 1은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 멀티 코덱 인코딩 시스템으로 입력되는 영상 데이터의 분류를 설명하기 위한 개념도이다.
도 3은 도 1의 멀티 코덱 인코더를 세부적으로 설명하기 위한 블록도이다.
도 4는 도 3의 제1 및 제2 코덱의 비계층적(non-hierarchical) 방식의 인코딩을 설명하기 위한 개념도이다.
도 5는 도 3의 제1 및 제2 코덱의 계층적(hierarchical) 방식의 인코딩을 설명하기 위한 개념도이다.
도 6은 도 3의 제1 코덱을 세부적으로 설명하기 위한 블록도이다.
도 7은 도 6의 제1 예측 모듈을 세부적으로 설명하기 위한 블록도이다.
도 8은 도 3의 제2 코덱을 세부적으로 설명하기 위한 블록도이다.
도 9는 도 6의 제1 압축 모듈을 세부적으로 설명하기 위한 블록도이다.
도 10은 도 9의 양자화 모듈을 세부적으로 설명하기 위한 블록도이다.
도 11은 도 9의 역 양자화 모듈을 세부적으로 설명하기 위한 블록도이다.
도 12는 도 8의 제2 압축 모듈을 세부적으로 설명하기 위한 블록도이다.
도 13은 도 3의 레퍼런스 모듈을 세부적으로 설명하기 위한 블록도이다.
도 14는 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코더를 설명하기 위한 블록도이다.
도 15는 도 14의 제3 코덱을 세부적으로 설명하기 위한 블록도이다.
도 16은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템으로 입력되는 영상 데이터의 분류를 설명하기 위한 개념도이다.
도 17은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코더를 설명하기 위한 블록도이다.
도 18은 도 17의 제1 및 제2 코덱의 인코딩을 설명하기 위한 개념도이다.
도 19는 도 17의 모션 추정 모듈의 모션 벡터 생성 방법을 설명하기 위한 개념도이다.
도 20은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템을 설명하기 위한 블록도이다.
도 21은 도 20의 멀티 코덱 인코더를 세부적으로 설명하기 위한 블록도이다.
이하에서, 도 1 내지 도 13을 참조하여, 본 발명의 몇몇 실시예에 따른 메모리 장치에 대해서 설명한다.
도 1은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 멀티 코덱 인코딩 시스템으로 입력되는 영상 데이터의 분류를 설명하기 위한 개념도이다. 도 3은 도 1의 멀티 코덱 인코더를 세부적으로 설명하기 위한 블록도이고, 도 4는 도 3의 제1 및 제2 코덱의 비계층적(non-hierarchical) 방식의 인코딩을 설명하기 위한 개념도이다. 도 5는 도 3의 제1 및 제2 코덱의 계층적(hierarchical) 방식의 인코딩을 설명하기 위한 개념도이고, 도 6은 도 3의 제1 코덱을 세부적으로 설명하기 위한 블록도이다. 도 7은 도 6의 제1 예측 모듈을 세부적으로 설명하기 위한 블록도이고, 도 8은 도 3의 제2 코덱을 세부적으로 설명하기 위한 블록도이다. 도 9는 도 6의 제1 압축 모듈을 세부적으로 설명하기 위한 블록도이고, 도 10은 도 9의 양자화 모듈을 세부적으로 설명하기 위한 블록도이다. 도 11은 도 9의 역 양자화 모듈을 세부적으로 설명하기 위한 블록도이고, 도 12는 도 8의 제2 압축 모듈을 세부적으로 설명하기 위한 블록도이다. 도 13은 도 3의 레퍼런스 모듈을 세부적으로 설명하기 위한 블록도이다.
도 1을 참조하면, 제1 멀티 코덱 인코딩 시스템(10)은 영상을 촬영하여 데이터로 처리하고, 처리된 데이터를 디스플레이, 저장 또는 전송할 수 있는 다양한 장치를 의미할 수 있다.
예를 들어, 제1 멀티 코덱 인코딩 시스템(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으로 구현될 수 있다.
제1 멀티 코덱 인코딩 시스템(10)은 비디오 소스(50), 제1 멀티 코덱 인코딩 장치(100), 디스플레이(200), 입력 장치(210) 및 제2 메모리(220)를 포함할 수 있다.
도 1에 도시된 구성요소들은 제1 멀티 코덱 인코딩 시스템(10)을 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
제1 멀티 코덱 인코딩 장치(100)는 시스템 온 칩(System On Chip; SoC)으로 구성될 수 있다.
비디오 소스(50)는 예를 들어, CCD(Charge-Coupled Device) 또는 CMOS(Complementary metal-oxide-semiconductor) 이미지 센서를 탑재한 카메라로 구현될 수 있다.
비디오 소스(50)는 피사체를 촬영하고, 상기 피사체에 대한 영상 데이터(IM)를 생성하고, 생성된 영상 데이터(IM)를 제1 멀티 코덱 인코딩 장치(100)에 제공할 수 있다.
영상 데이터(IM)는 정지 영상 데이터 또는 동영상 데이터일 수 있다. 몇몇 실시예에서, 비디오 소스(50)는 이와 달리 호스트(HOST)에 포함될 수 있다. 이 경우, 영상 데이터(IM)는 호스트로부터 제공된 영상 데이터일 수 있다.
제1 멀티 코덱 인코딩 장치(100)는 제1 멀티 코덱 인코딩 시스템(10)의 동작을 전반적으로 제어할 수 있다.
예를 들어, 제1 멀티 코덱 인코딩 장치(100)는 몇몇 실시예에 따른 동작들을 수행할 수 있는 직접 회로(intergrated circuit; IC), 마더보드, 애플리케이션 프로세서(Application Processor; AP) 또는 모바일(mobile) AP를 포함할 수 있다.
제1 멀티 코덱 인코딩 장치(100)는 비디오 소스(50)로부터 출력된 영상 데이터(IM)를 처리하고, 처리된 데이터를 디스플레이(200)를 통해 디스플레이하거나, 제2 메모리(220)에 저장하거나, 다른 데이터 처리 시스템으로 전송할 수 있다.
제1 멀티 코덱 인코딩 장치(100)는 제1 전처리 회로(110), 제1 멀티 코덱 인코더(300), 프로세서(130), 제1 메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 버스(170), 모뎀(180) 및 사용자 인터페이스(190)를 포함할 수 있다.
다만, 상술한 구성 요소들은 제1 멀티 코덱 인코딩 장치(100)를 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
제1 멀티 코덱 인코더(300), 프로세서(130), 제1 메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 모뎀(180) 및 사용자 인터페이스(190)는 버스(170)를 통해 서로 데이터를 주고 받을 수 있다.
예를 들어, 버스(170)는 PCI 버스(Peripheral Component Interconnect Bus), PCI 익스프레스(PCI Express; PCIe) 버스, AMBA(Advanced High Performance Bus), AHB(Advanced High Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced Extensible Interface) 버스 및 이들의 어느 조합으로부터 선택된 적어도 하나로 구현될 수 있으나 이에 제한되는 것은 아니다.
제1 전처리 회로(110)는 예를 들어, 이미지 신호 프로세서(Image Signal Processor; ISP)를 포함할 수 있다. ISP는 제1 데이터 포맷을 갖는 영상 데이터(IM)를 제1 데이터(FI1) 및 제2 데이터(FI2)로 변환할 수 있다.
예를 들어, 영상 데이터(IM)는 베이어(Bayer) 패턴을 갖는 데이터이고 제1 데이터(FI1) 및 제2 데이터(FI2)는 YUV 데이터일 수 있으나 이에 제한되는 것은 아니다.
제1 전처리 회로(110)는 비디오 소스(50)로부터 출력된 영상 데이터(IM)를 수신할 수 있다. 제1 전처리 회로(110)는 수신된 영상 데이터(IM)를 처리하고, 처리 결과에 따라 생성된 제1 데이터(FI1) 및 제2 데이터(FI2)를 제1 멀티 코덱 인코더(300)에 제공할 수 있다.
제1 멀티 코덱 인코딩 장치(100)가 구동되는 환경에서, 영상 데이터(IM), 제1 데이터(FI1) 및 제2 데이터(FI2)는 예를 들어, 프레임(또는 픽쳐) 단위로 제공될 수 있다.
도 2를 참조하면, 예를 들어, 영상 데이터(IM)는 복수의 프레임(F1, F2, F3, F4) 데이터를 포함하는 데이터 집합일 수 있다. 여기서, 제2 프레임(F2)은 제1 프레임(F1)의 다음 프레임일 수 있다. 제3 프레임(F3)은 제2 프레임(F2)의 다음 프레임일 수 있다. 제4 프레임(F4)은 제3 프레임(F3)의 다음 프레임일 수 있다.
제1 멀티 코덱 인코더(300)에 전송되는 제1 데이터(FI1)는 홀수 번째 프레임(F1, F3)에 대한 데이터를 포함하는 데이터 그룹일 수 있다. 제1 멀티 코덱 인코더(300)에 전송되는 제2 데이터(FI2)는 짝수 번째 프레임(F2, F4)에 대한 데이터를 포함하는 데이터 그룹일 수 있다. 제1 데이터(FI1)는 추후에 도 3의 제1 코덱(320)으로 전송되고, 제2 데이터(FI2)는 추후에 도 3의 제2 코덱(330)으로 전송될 수 있다.
도 1에서 제1 전처리 회로(110)는 제1 멀티 코덱 인코딩 장치(100) 내부에 구현된 것으로 도시되어 있으나, 실시예가 이에 제한되는 것은 아니다. 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템의 제1 전처리 회로(110)는 제1 멀티 코덱 인코딩 장치(100) 외부에 구현될 수도 있다.
제1 멀티 코덱 인코더(300)는 복수의 프레임(F1, F2, F3, F4) 중 홀수 번째 프레임(예를 들어, 제1 프레임(F1) 및 제3 프레임(F3))에 대한 인코딩과 짝수 번째 프레임(예를 들어, 제2 프레임(F2) 및 제4 프레임(F4))의 인코딩을 나누어 수행할 수 있다. 이에 대해서는 추후에 자세히 설명한다.
상기 인코딩 동작은 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)는 제1 멀티 코덱 인코딩 장치(100)의 동작을 제어할 수 있다.
프로세서(130)는 하나 또는 그 이상의 애플리케이션들(예를 들어, 소프트웨어 애플리케이션들)을 실행할 수 있도록 사용자 입력을 제공받을 수 있다.
프로세서(130)에 의해 실행되는 애플리케이션들 중 일부는 영상 통화 애플리케이션일 수 있다. 또한, 프로세서(130)에 의해 실행되는 애플리케이션들은 운영 체저(operating system; OS), 워드프로세서 애플리케이션, 미디어 플레이어 애플리케이션, 비디오 게임 애플리케이션 및/또는 그래픽 사용자 인터페이스(Graphic User Interface; GUI) 애플리케이션을 포함할 수 있으나 이에 제한되는 것은 아니다.
프로세서(130)는 제1 전처리 회로(110)를 제어하여 홀수 번째 프레임(F1, F3) 데이터와 짝수 번째 프레임(F2, F4) 데이터를 제1 멀티 코덱 인코더(300)에 나누어 각각 할당할 수 있다. 즉, 프로세서(130)는 제1 데이터(FI1) 및 제2 데이터(FI2)로 분류되는 프레임을 결정할 수 있다.
다만, 프로세서(130)는 다양한 방법으로 제1 데이터(FI1) 및 제2 데이터(FI2)를 분류할 수 있다. 예를 들어, 프로세서(130)는 제1 데이터(FI1)에 짝수 번 프레임(F2, F4) 데이터를 할당하고, 제2 인데이터()에 홀수 번 프레임(F1, F3) 데이터를 할당할 수도 있다.
제1 메모리(140)는 메모리 컨트롤러(160)의 제어 하에, 제1 데이터(FI1) 및 제2 데이터(FI2) 내에서 제1 멀티 코덱 인코더(300)에 의해 현재 인코딩되고 있는 프레임들에 대응하는 정보를 제1 멀티 코덱 인코더(300)에 전송할 수 있다.
메모리 컨트롤러(160)는 제1 멀티 코덱 인코더(300) 또는 프로세서(130)의 제어 하에 제1 멀티 코덱 인코더(300)에서 인코딩된 데이터 또는 프로세서(130)로부터 출력된 데이터(예를 들어, 도 3의 제1 비트 스트림(BIT STEAM 1) 및 제2 비트 스트림(BIT STEAM 2))를 제2 메모리(220)에 라이트(write)할 수 있다.
제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에서는 제1 멀티 코덱 인코딩 장치(100)의 외부에 제2 메모리(220)가 도시되어 있으나, 이에 제한되는 것은 아니고, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템에서는 제2 메모리(220)는 제1 멀티 코덱 인코딩 장치(100)의 내부에 구현될 수도 있다.
디스플레이 컨트롤러(150)는, 제1 멀티 코덱 인코더(300) 또는 프로세서(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)은 제1 멀티 코덱 인코더(300) 또는 프로세서(130)에 의해 인코딩된 데이터를 무선 통신 기술을 이용하여 외부로 출력할 수 있다. 모뎀(180)은 예를 들어, 와이파이(WI-FI), 와이브로(WIBRO), 3G 무선통신, LTETM(long term evolution), LTE-A(long term evolution-advanced), 또는 광대역(broadband) LTE-A 등의 방식을 채용할 수 있으나, 이에 제한되는 것은 아니다.
도 3을 참조하면, 제1 멀티 코덱 인코더(300)는 제1 파티셔닝 유닛(340), 제2 파티셔닝 유닛(350), 모션 추정 모듈(310), 제1 코덱(320), 제2 코덱(330) 및 레퍼런스 모듈(360)을 포함할 수 있다.
도 2에 도시된 구성요소들은 제1 멀티 코덱 인코더(300)를 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나 또는 적은 구성요소들을 가질 수 있다.
제1 파티셔닝 유닛(340)은 제1 데이터(FI1)에 포함된 현재 부호화를 수행할 프레임(예를 들어, 도 2의 제1 프레임(F1))을 복수의 블록으로 구분할 수 있다. 마찬가지로, 제2 파티셔닝 유닛(350)은 제2 데이터(FI2)에 포함된 현재 부호화를 수행할 프레임(예를 들어, 도 2의 제2 프레임(F2))을 복수의 블록으로 구분할 수 있다.
제1 파티셔닝 유닛(340)은 제1 데이터(FI1)를 모션 추정 모듈(310)과 제1 코덱(320)으로 전송할 수 있다. 제2 파티셔닝 유닛(350)은 제2 데이터(FI2)를 제2 코덱(330)으로 전송할 수 있다. 제2 파티셔닝 유닛(350)은 제2 데이터(FI2)를 모션 추정 모듈(310)에 전달하지 않을 수 있다.
모션 추정 모듈(310)과 제1 코덱(320)은 제1 데이터(FI1)의 프레임, 예를 들어, 제1 프레임(F1)에 대한 인트라(intra) 예측 또는 인터(inter) 예측을 수행할 수 있다.
인트라 예측은 현재 부호화를 수행하는 프레임 외의 다른 프레임을 참조하지 않고 예측을 수행하는 것이고, 인터 예측은 현재 부호화를 수행하는 프레임 외의 다른 프레임을 참조하여 예측을 수행하는 것이다.
유사하게, 모션 추정 모듈(310)과 제2 코덱(330)은 제2 데이터(FI2)의 프레임, 예를 들어, 제2 프레임(F2)에 대한 인터 예측을 수행할 수 있다. 다만, 제2 코덱(330)은 제1 코덱(320)과 달리 인트라 예측을 수행할 수 없고, 오로지 인터 예측만을 수행할 수 있다.
제1 코덱(320) 및 제2 코덱(330)은 멀티 포맷 코덱(multi format codec, MFC)일 수 있다.
모션 추정 모듈(310)은 현재 부호화되는 프레임을 왜곡이 가장 적고 발생하는 비트 수가 가장 적도록 적당한 크기 및 적당한 개수의 복수의 블록으로 분할할 수 있다. 모션 추정 모듈(310)은 다양한 모션 추정의 모드(예를 들어, 일반 모드, 머지(merge) 모드 등) 중 왜곡이 가장 적고 발생하는 비트 수가 가장 적은 모드를 선택할 수 있다. 모션 추정 모듈(310)은 레퍼런스 모듈(360)에 저장되어 있는 참조 데이터(Ref)에서 모션 추정 모듈(310)에 입력되는 블록과 가장 매치가 잘되는 영역을 찾아 모션 벡터(motion vector)를 구할 수 있다.
모션 추정 모듈(310)은 제1 데이터(FI1)와 참조 데이터(Ref)를 이용하여 제1 모션 추정 정보(I1)를 생성할 수 있다. 제1 모션 추정 정보(I1)는 상기 모션 벡터를 포함한 정보일 수 있다.
모션 추정 모듈(310)은 제1 모션 추정 정보(I1)를 제1 코덱(320) 및 제2 코덱(330)에 전송할 수 있다. 제1 코덱(320)은 제1 데이터(FI1)에 대한 인코딩을 수행하고, 제2 코덱(330)은 제2 데이터(FI2)에 대한 인코딩을 수행하지만, 모션 추정 모듈(310)은 모두 동일한 제1 모션 추정 정보(I1)를 제1 코덱(320) 및 제2 코덱(330)에 전송할 수 있다. 이는 고프레임율(high frame rate)의 영상 데이터() 경우, 제1 프레임(F1)과 바로 인접한 제2 프레임(F2) 중 어느 프레임을 기준으로 모션 벡터 등의 모션 추정 정보를 구하더라도 큰 차이가 없음에 기인할 수 있다.
이를 통해서, 제1 코덱(320)과 제2 코덱(330)이 하나의 모션 추정 모듈(310)을 공유하여 인코딩을 할 수 있다. 일반적인 인코더에서 모션 추정 모듈(310)의 크기가 상대적으로 다른 모듈에 비해서 가장 크므로 이러한 모션 추정 모듈(310)의 공유를 통해서 전체적인 장치의 크기를 줄이고 인코딩 속도를 향상시킬 수 있다.
제1 코덱(320) 및 제2 코덱(330)은 서로 동기화될 수 있다. 즉, 동기화 신호(SYNC)에 의해서 동일한 시간에 입출력을 수행할 수 있다.
제1 코덱(320)은 인트라 예측 정보(I2)를 제2 코덱(330)에 전송할 수 있다. 제1 코덱(320)은 인트라 예측 및 인터 예측을 모두 수행함에 반해서, 제2 코덱(330)은 오로지 인터 예측()만을 수행할 수 있다. 따라서, 인트라 예측 정보(I2)가 제2 코덱(330)에 존재하지 않으므로, 제2 코덱(330)은 인트라 예측 정보(I2)를 제1 코덱(320)으로부터 수신할 수 있다.
제1 코덱(320)은 제1 양자화 파라미터 데이터(I3)를 제2 코덱(330)으로 전송할 수 있다. 제1 코덱(320)은 레이트 제어를 위한 제1 양자화 파라미터 데이터(I3)를 생성?K 수 있다. 이에 반해서, 제2 코덱(330)은 별도의 레이트 제어를 단독으로 수행할 수 없을 수 있다. 따라서, 제2 코덱(330)은 제1 코덱(320)으로부터 제1 양자화 파라미터 데이터(I3)를 수신할 수 있다. 제1 양자화 파라미터 데이터(I3)는 추후에 자세히 설명한다.
도 4를 참조하면, 제1 코덱(320) 및 제2 코덱(330)은 비계층적(non-hierarchical) 방식으로 인코딩을 수행할 수 있다.
즉, 제1 프레임(F1)은 기준이 되는 참조 데이터(Ref)가 아직 형성되기 전이므로, 인트라 예측을 통해서 인코딩될 수 있다. 이러한 제1 프레임(F1)을 참조 데이터(Ref)로 하여 제3 프레임(F3)이 제1 코덱(320)에 의해서 인터 예측에 의해 인코딩될 수 있다. 제3 프레임(F3)은 제1 모션 추정 정보(I1)를 이용하여 인코딩될 수 있다.
제2 프레임(F2)은 제2 코덱(330)에 의해서 인터 예측에 의해 인코딩될 수 있다. 이 때, 제2 코덱(330)은 제1 모션 추정 정보(I1)를 사용하여 제2 프레임(F2)을 인코딩할 수 있다. 상술하였듯이, 고프레임율의 영상 데이터() 경우, 제1 프레임(F1)과 바로 인접한 제2 프레임(F2) 중 어느 프레임을 기준으로 모션 벡터 등의 모션 추정 정보를 구하더라도 큰 차이가 없기 때문에 이러한 인터 예측의 인코딩이 가능할 수 있다.
이러한 방식으로, 제1 코덱(320)은 홀수 번째 프레임(F1, F3, F5, F7)을 인코딩할 수 있다. 이 때, 제1 프레임(F1) 및 제7 프레임(F7)은 인트라 예측에 의해서 인코딩될 수 있고, 제3 프레임(F3) 및 제5 프레임(F5)은 인터 예측에 의해서 인코딩될 수 있다. 제3 프레임(F3) 및 제5 프레임(F5)은 참조 데이터(Ref)로 저장될 수 있다.
제2 코덱(330)은 짝수 번째 프레임(F2, F4)을 인코딩할 수 있다. 이 때, 제2 프레임(F2)은 제3 프레임(F3)에 대한 제1 모션 추정 정보(I1)를 이용하여 인터 예측에 의한 인코딩이 수행될 수 있고, 제4 프레임()은 제5 프레임()에 대한 제1 모션 추정 정보(I1)를 이용할 수 있다.
제6 프레임(F6)은 비록 짝수 번째 프레임이지만, 인트라 예측에 의해서 인코딩되는 제7 프레임()의 직전에 있으므로, 제7 프레임()에 대한 모션 추정 정보를 이용할 수 없다. 이러한 경우에는 제6 프레임(F6)도 제1 코덱(320)에 의해서 인터 예측에 의한 인코딩이 수행될 수 있다. 단, 이를 위해서, 제1 전처리 회로(110)가 제6 프레임(F6)을 제1 데이터(FI1)로 미리 분류할 수 있다.
도 5를 참조하면, 제1 코덱(320) 및 제2 코덱(330)은 계층적(hierarchical) 방식으로 인코딩을 수행할 수 있다. 도 5는 계층적 방식 인코딩 중 5 레이어 방식을 예시적으로 도시하였다. 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템은 계층적 방식 인코딩 중 7 레이어 방식을 사용할 수도 있다.
상기 계층적 방식에 있어서도 제1 코덱(320)과 제2 코덱(330)이 교대로 연속적인 프레임의 인코딩을 수행할 수 있다. 이를 통해서, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템은 하나의 모션 추정 모듈(310)과 2개의 코덱을 이용하여 향상된 속도 및 효율의 인코딩이 가능할 수 있다.
도 3, 도 4 및 도 5를 참조하면, 제2 코덱(330)은 제1 모션 추정 정보(I1)를 스케일링(scaling)하여 사용할 수 있다. 즉, 제1 프레임(F1)을 참조 데이터(Ref)로 하고, 제3 프레임(F3)의 모션 벡터를 구하는 경우, 제1 프레임(F1)과 제3 프레임(F3)과의 시간적 제1 거리(d1)는 제1 프레임(F1)과 제2 프레임(F2)과의 시간적 제2 거리(d2)에 비해서 2배일 수 있다. 따라서, 제2 코덱(330)은 제3 프레임(F3)에 대한 제1 모션 추정 정보(I1)의 모션 벡터의 크기를 1/2로 스케일링 하여 인터 예측에 의한 인코딩을 수행할 수 있다.
동일한 방식으로 제2 코덱(330)은 제5 프레임()에 대한 제1 모션 추정 정보(I1)의 모션 벡터의 크기를 1/2로 스케일링 하여 제4 프레임()을 인코딩할 수 있다.
도 5에서는, 제3 거리(d3)에 비해서, 제4 거리(d4)는 1/4, 제5 거리(d5)는 1/2, 제6 거리(d6)는 3/4의 스케일링 값이 도출될 수 있다. 이를 통해서, 제2 코덱(330)은 제4 프레임()의 인코딩을 제5 프레임()에 대한 제1 모션 추정 정보(I1)의 모션 벡터의 크기를 3/4로 스케일링하여 수행할 수 있다. 단, 본 실시예가 이러한 스케일링 수치에 제한되는 것은 아니다.
도 6을 참조하면, 제1 코덱(320)은 제1 예측 모듈(321), 제1 레이트 제어 모듈(322), 제1 압축 모듈(323), 제1 감산기(325), 제1 가산기(326) 및 제1 엔트로피 인코딩 유닛(324)을 포함할 수 있다.
제1 예측 모듈(321)은 제1 데이터(FI1)와 제1 모션 추정 정보(I1)를 수신할 수 있다. 제1 예측 모듈(321)은 인트라 예측 또는 인터 예측을 수행하여 제1 예측 블록(PB1)을 생성할 수 있다. 제1 예측 모듈(321)은 인트라 예측 정보(I2)를 제2 코덱(330)으로 전송할 수 있다.
인트라 예측 정보(I2)는 인트라 예측을 수행한 블록에 대한 정보(예를 들어, 인트라 예측을 수행한 블록의 크기 및 개수에 대한 정보), 인트라 예측에 사용된 모드에 대한 정보, 참조 블록에 대한 정보 중 적어도 하나를 포함할 수 있다.
제1 감산기(325)는 제1 데이터(FI1) 중 현재 인코딩을 진행 중인 블록과 제1 예측 모듈(321)에서 생성된 제1 예측 블록(PB1)의 차분에 의해 제1 잔여 블록(RDB1)을 생성할 수 있다. 여기서, 제1 잔여 블록(RDB1)은 제1 데이터(FI1) 중 현재 인코딩을 진행 중인 블록과 제1 예측 블록(PB1) 사이의 차이를 나타내는 블록일 수 있다.
제1 레이트 제어 모듈(322)은 제1 예측 블록(PB1)을 이용하여 현재 프레임에 포함된 복수의 블록 각각의 양자화 파라미터 값을 조절할 수 있다. 즉, 제1 레이트 제어 모듈(322)은 제1 양자화 파라미터 데이터(I3)를 생성할 수 있다. 제1 레이트 제어 모듈(322)은 제1 양자화 파라미터 데이터(I3)를 제2 코덱(330)에 전송할 수 있다.
제1 압축 모듈(323)은 제1 양자화 파라미터 데이터(I3)와 제1 잔여 블록(RDB1)을 이용하여 제1 양자화 계수(QP1)를 생성할 수 있다. 또한, 제1 압축 모듈(323)은 제1 양자화 계수(QP1)를 역 양자화 및 역 변환한 역 양자화 블록(QB)을 생성할 수 있다.
제1 가산기(326)는 제1 예측 블록(PB1)과 역 양자화 블록(QB)을 더하여 복원 블록(RB)을 생성할 수 있다.
제1 엔트로피 인코딩 유닛(324)은 제1 양자화 계수(QP1)를 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 인코딩하여 제1 비트 스트림(BIT STEAM 1)을 출력할 수 있다. 엔트로피 인코딩 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서 디코딩 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란, 인코딩 대상 구문 요소(syntax element) 및 인코딩 파라미터(coding parameter), 잔여 블록 등을 의미할 수 있다. 인코딩 파라미터는, 인코딩 및 디코딩에 필요한 매개변수로서, 구문 요소와 같이 인코딩 장치에서 인코딩되어 디코딩 장치로 전달되는 정보뿐만 아니라, 인코딩 혹은 디코딩 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 인코딩하거나 디코딩할 때 필요한 정보일 수 있다.
인코딩 파라미터는 예를 들어, 인트라/인터 예측, 모션 벡터, 참조 데이터 색인, 인코딩 블록 패턴, 잔여 블록 유무, 변환 계수, 양자화된 변환 계수, 양자화 계수, 블록의 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다.
엔트로피 인코딩이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 인코딩 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 인코딩을 통해서 영상 인코딩의 압축 성능이 높아질 수 있다.
엔트로피 인코딩를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 인코딩 방법이 사용될 수 있다. 예를 들어, 제1 엔트로피 인코딩 유닛(324)에는 가변 길이 코딩(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 인코딩을 수행하기 위한 테이블이 저장될 수 있고, 제1 엔트로피 인코딩 유닛(324)은 저장된 가변 길이 코딩(VLC) 테이블을 사용하여 엔트로피 인코딩을 수행할 수 있다. 또한 제1 엔트로피 인코딩 유닛(324)은 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 인코딩을 수행할 수도 있다.
도 7을 참조하면, 제1 예측 모듈(321)은 모션 보상 유닛(321a), 인트라 예측 유닛() 및 스위치(321c)를 포함한다.
모션 보상 유닛(321a)은 모션 추정 모듈(310)에 의해 생성된 모션 벡터 등의 제1 모션 추정 정보(I1)와 레퍼런스 모듈(360)에 저장되어있는 참조 데이터(Ref)를 이용하여 모션 보상을 수행함으로써 제1 예측 블록(PB1)을 생성할 수 있다.
인트라 예측 모듈()은 현재 인코딩되는 프레임을 왜곡이 가장 적고 발생하는 비트 수가 가장 적도록 적당한 크기 및 적당한 개수의 복수의 블록으로 분할할 수 있다. 인트라 예측 모듈()은 다양한 인트라 예측의 모드(예를 들어, DC 모드, PLANAR 모드 등) 중 왜곡이 가장 적고 발생하는 비트 수가 가장 적은 모드를 선택할 수 있다.
인트라 예측 모듈()은 제1 데이터(FI1)의 현재 인코딩을 수행하고 있는 블록 주변의 이미 인코딩된 블록의 화소값을 이용하여 공간적 예측을 수행하여 제1 예측 블록(PB1)을 생성할 수 있다.
제1 예측 모듈(321)은 인트라 예측 및 인터 예측을 모두 수행한 후 수학식 1에 의해 산출된 코스트 값(J)을 이용하여 인트라 예측을 수행할지 아니면 인터 예측을 수행할지를 결정할 수 있다.
Figure 112017103204417-pat00001
수학식 1에서 D는 부호화된 이미지의 왜곡 지수를 나타내는 값이고, A는 양자화 파라미터 값에 비례하는 상수 값이고, R은 인트라 예측 또는 인터 예측을 통해 발생하는 비트 수를 나타내는 값이다.
제1 예측 모듈(321)은 코스트 값(J)을 비교하여 인터 예측을 수행하는 것이 적합하다고 인식한 경우, 스위치(321c)를 이용하여 인터 예측을 수행하도록 할 수 있다. 제1 예측 모듈(321)은 코스트 값(J)을 비교하여 인트라 예측을 수행하는 것이 적합하다고 인식한 경우, 스위치(321c)를 이용하여 인트라 예측을 수행하도록 할 수 있다.
도 8을 참조하면, 제2 코덱(330)은 제2 예측 모듈(331), 제2 압축 모듈(333), 제2 감산기(335) 및 제2 엔트로피 인코딩 유닛(334)을 포함할 수 있다.
제2 예측 모듈(331)은 제2 데이터(FI2)와 제1 모션 추정 정보(I1)를 수신할 수 있다. 제2 예측 모듈(331)은 인터 예측을 수행하여 제2 예측 블록(PB2)을 생성할 수 있다. 제2 예측 모듈(331)은 인트라 예측 정보(I2)를 수신할 수 있다.
제2 감산기(335)는 제2 데이터(FI2) 중 현재 인코딩을 진행 중인 블록과 제2 예측 모듈(331)에서 생성된 제2 예측 블록(PB2)의 차분에 의해 제2 잔여 블록(RDB2)을 생성할 수 있다. 여기서, 제2 잔여 블록(RDB2)은 제2 데이터(FI2) 중 현재 인코딩을 진행 중인 블록과 제2 예측 블록(PB2) 사이의 차이를 나타내는 블록일 수 있다.
제2 압축 모듈(333)은 제1 양자화 파라미터 데이터(I3)와 제2 잔여 블록(RDB2)을 이용하여 제2 양자화 계수(QP2)를 생성할 수 있다.
제2 엔트로피 인코딩 유닛(334)은 제2 양자화 계수(QP2)를 기초로, 심볼을 확률 분포에 따라 엔트로피 인코딩하여 제2 비트 스트림(BIT STEAM 2)을 출력할 수 있다.
도 9를 참조하면, 제1 압축 모듈(323)은 양자화 모듈(323a)과 역 양자화 모듈(323b)을 포함할 수 있다.
양자화 모듈(323a)은 제1 잔여 블록(RDB1)과 제1 양자화 파라미터 데이터(I3)를 수신하여 제1 양자화 계수(QP1)를 생성할 수 있다.
역 양자화 모듈(323b)은 제1 양자화 계수(QP1)를 수신하여 역 양자화 블록(QB)을 생성할 수 있다.
도 10을 참조하면, 양자화 모듈(323a)은 제1 변환 유닛(323a_1) 및 제1 양자화 유닛(323a_2)을 포함할 수 있다.
제1 변환 유닛(323a_1)은 제1 잔여 블록(RDB1)으로부터 변환된 블록 데이터를 형성할 수 있다. 제1 변환 유닛(323a_1)은, 이산 코사인 변환(Discrete Cosine Transform; DCT) 또는 웨이브렛 변환(wavelet transform)등을 사용할 수 있다. 제1 변환 유닛(323a_1)에서 생성된 제1 변환 계수(RDP1)는 제1 양자화 유닛(323a_2)으로 전송될 수 있다.
제1 양자화 유닛(323a_2)은 제1 변환 계수(RDP1)를 제1 레이트 제어 모듈(322)에 의해 결정된 제1 양자화 파라미터 데이터(I3)에 따라 양자화하여 제1 양자화 계수(QP1)를 출력할 수 있다. 제1 양자화 유닛(323a_2)은 제1 변환 계수(RDP1)를 양자화하여 비트 수를 감소시킬 수 있다. 이 과정에서 제1 레이트 제어 모듈(322)은 제1 양자화 파라미터 데이터(I3)를 조정함으로써 양자화 정도를 수정할 수 있다.
도 11을 참조하면, 역 양자화 모듈(323b)은 역 양자화 유닛(323b_1) 및 역 변환 유닛(323b_2)을 포함할 수 있다.
역 양자화 모듈(323b)은 제1 양자화 계수(QP1)를 역 양자화하여 역 양자화 계수(IQP1)를 생성할 수 있다. 역 변환 유닛(323b_2)은 역 양자화 계수(IQP1)를 역 변환하여 역 양자화 블록(QB)을 생성할 수 있다.
도 12를 참조하면, 제2 압축 모듈(333)은 제2 변환 유닛() 및 제2 양자화 유닛()을 포함할 수 있다. 제1 압축 모듈(323)과 비교하면, 제1 압축 모듈(323)의 양자화 모듈(323a)의 구성은 제2 압축 모듈(333)에 포함되어 있지만, 역 양자화 모듈(323b)의 구성은 제2 압축 모듈(333)에 포함되지 않을 수 있다.
제2 변환 유닛()은 제2 잔여 블록(RDB2)으로부터 변환된 블록 데이터를 형성할 수 있다. 제2 변환 유닛()은, 이산 코사인 변환 또는 웨이브렛 변환 등을 사용할 수 있다. 제2 변환 유닛()에서 생성된 제2 변환 계수(RDP2)는 제2 양자화 유닛()으로 전송될 수 있다.
제2 양자화 유닛()은 제2 변환 계수(RDP2)를 제1 레이트 제어 모듈(322)에 의해 결정된 제1 양자화 파라미터 데이터(I3)에 따라 양자화하여 제2 양자화 계수(QP2)를 출력할 수 있다. 제2 양자화 유닛()은 제2 변환 계수(RDP2)를 양자화하여 비트 수를 감소시킬 수 있다. 이 과정에서 제2 양자화 유닛()은 제1 코덱(320)의 제1 양자화 파라미터 데이터(I3)를 이용할 수 있다.
도 13을 참조하면, 레퍼런스 유닛()은 필터 유닛(361) 및 디코딩 픽쳐 버퍼(362)를 포함할 수 있다.
필터 유닛(361)은 복원 블록(RB)을 수신할 수 있다. 필터 유닛(316)은 디블로킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록(RB)에 적용할 수 있다. 필터 유닛(361)은 복원 블록(RB)에 필터를 적용하여 참조 데이터(Ref)를 생성할 수 있다.
디코딩 픽쳐 버퍼(362)는 참조 데이터(Ref)를 저장할 수 있다. 디코딩 픽쳐 버퍼(362)는 모션 추정 모듈(310)이 참조 데이터(Ref)를 필요로 하는 경우 이를 제공할 수 있다. 디코딩 픽쳐 버퍼(362)는 제1 코덱(320)이 참조 데이터(Ref)를 필요로 하는 경우에도 이를 제공할 수 있다.
본 발명의 몇몇 실시예에 따른 제1 멀티 코덱 인코딩 시스템(10)은 2개의 코덱 즉, 제1 코덱(320) 및 제2 코덱(330)이 하나의 모션 추정 모듈(310)을 공유하므로써 장치의 크기를 대폭 축소시킬 수 있다. 대신에, 본 발명의 몇몇 실시예에 따른 제1 멀티 코덱 인코딩 시스템(10)은 모션 추정 모듈(310)이 제1 코덱(320)에서 처리되는 프레임에 대한 제1 모션 추정 정보(I1)를 제2 코덱(330)에도 제공하므로써, 2개의 모션 추정 모듈(310)에 의한 인코딩 시스템과 유사한 성능을 가질 수 있다.
고 프레임율 영상의 인코딩의 경우, 인접하는 프레임에 대한 모션 벡터의 차이는 크지 않으므로, 제1 모션 추정 정보(I1)를 공유하는 것도 문제없이 가능할 수 있다.
이하, 도 14 및 도 15를 참조하여, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코더를 설명한다. 상술한 실시예와 중복되는 부분은 간략히 하거나 생략한다.
도 14는 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코더를 설명하기 위한 블록도이고, 도 15는 도 14의 제3 코덱을 세부적으로 설명하기 위한 블록도이다.
도 14를 참조하면, 본 발명의 몇몇 실시예에 따른 제2 멀티 코덱 인코더(301)는 도 3의 제2 코덱(330) 대신 제3 코덱(330')을 포함한다.
제3 코덱(330')은 제1 코덱(320)으로부터 제1 양자화 파라미터 데이터(I3)를 수신하지 않을 수 있다.
도 15를 참조하면, 제3 코덱(330')은 제2 레이트 제어 모듈(332)을 포함할 수 있다.
제2 레이트 제어 모듈(332)은 제2 예측 블록(PB2)을 이용하여 현재 프레임에 포함된 복수의 블록 각각의 양자화 파라미터 값을 조절할 수 있다. 즉, 제2 레이트 제어 모듈(332)은 제2 양자화 파라미터 데이터(I4)를 생성할 수 있다. 제2 레이트 제어 모듈(332)은 제2 양자화 파라미터 데이터(I4)를 제2 압축 모듈(333)에 전송할 수 있다.
제2 압축 모듈(333)은 제1 양자화 파라미터 데이터(I3) 대신 제2 양자화 파라미터 데이터(I4)를 이용하여 제2 양자화 계수(QP2)를 생성할 수 있다.
본 실시예에 따른 제2 멀티 코덱 인코더(301)는 제3 코덱(330') 내에 별도의 제2 레이트 제어 모듈(332)이 존재하므로, 제2 데이터(FI2)에 대한 양자화 조정을 더욱 세밀하게 수행할 수 있다. 즉, 제1 코덱(320)에서의 제1 양자화 파라미터 데이터(I3) 실제로 제1 예측 블록(PB1)을 기반으로 생성되므로, 제2 데이터(FI2)에 적합하지 않을 수도 있기 때문이다.
이하, 도 16 내지 도 19를 참조하여, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코더를 설명한다. 상술한 실시예와 중복되는 부분은 간략히 하거나 생략한다. 도 16 내지 도 19의 실시예에 따른 멀티 코덱 인코더는 도 1 내지 도 15의 실시예의 멀티 코덱 인코더와 동일한 구조를 가지지만, 내부 데이터의 이동이 조금 다를 수 있다. 즉, 입력되는 정보에 따라서, 동일한 구조에서 도 1 내지 도 15의 실시예 및 도 16 내지 도 19의 실시예가 선택적으로 구현될 수 있다.
도 16은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템으로 입력되는 영상 데이터의 분류를 설명하기 위한 개념도이고, 도 17은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코더를 설명하기 위한 블록도이다. 도 18은 도 17의 제1 및 제2 코덱의 인코딩을 설명하기 위한 개념도이고, 도 19는 도 17의 모션 추정 모듈의 모션 벡터 생성 방법을 설명하기 위한 개념도이다.
도 16을 참조하면, 예를 들어, 영상 데이터(IM)는 복수의 프레임(F0, F1, F2, F3, F4) 데이터를 포함하는 데이터 집합이고, 제1 데이터(FI1)는 첫번째 프레임(F0)과 상기 첫번째 프레임(F0)을 제외한 상태에서의 홀수 번째 프레임(예를 들어, F1, F3)을 포함하고, 제2 데이터(FI2)는 상기 첫번째 프레임(F0)을 제외한 상태에서의 짝수 번째 프레임(예를 들어, F2, F4)을 포함할 수 있다. 단, 이에 제한되는 것은 아니다.
도 17을 참조하면, 제1 멀티 코덱 인코더(300)는 제1 메모리()와 서로 정보를 주고 받을 수 있다.
구체적으로, 제1 멀티 코덱 인코더(300)의 제2 파티셔닝 유닛(350)은 제2 데이터(FI2)를 제2 코덱(330)뿐만 아니라 모션 추정 모듈(310)로 전송할 수 있다.
모션 추정 모듈(310)은 제1 데이터(FI1)와 참조 데이터(Ref)를 이용하여 제1 모션 추정 정보(I1a)를 생성할 수 있다. 제1 모션 추정 정보(I1a)는 모션 벡터를 포함한 정보일 수 있다. 모션 추정 모듈(310)은 제1 모션 추정 정보(I1a)를 제1 메모리()에 저장할 수 있다.
모션 추정 모듈(310)은 제2 데이터(FI2)와 참조 데이터(Ref)를 이용하여 제2 모션 추정 정보(I1b)를 생성할 수 있다. 제2 모션 추정 정보(I1b)는 모션 벡터를 포함한 정보일 수 있다. 모션 추정 모듈(310)은 제2 모션 추정 정보(I1b)를 제1 메모리()에 저장할 수 있다.
제1 메모리()는 제1 모션 추정 정보(I1) 및 제2 모션 추정 정보(I1b)를 각각 제1 코덱(320) 및 제2 코덱(330)에 전송할 수 있다.
제1 코덱(320)은 제1 메모리()로부터 제1 모션 추정 정보(I1)를 불러오고, 제2 코덱(330)은 제1 메모리()로부터 제2 모션 추정 정보(I1b)를 불러올 수 있다. 제1 코덱(320)은 제1 모션 추정 정보(I1)를 이용하여 제1 데이터(FI1)를 인코딩하고, 제2 코덱(330)은 제2 모션 추정 정보(I1b)를 이용하여 제2 데이터(FI2)를 인코딩할 수 있다.
도 18을 참조하면, 첫번째 프레임(F0)은 제1 코덱(320)에 의해서 인트라 예측에 의한 인코딩이 수행될 수 있다. 이어서, 제1 프레임(F1)은 제1 코덱(320)에 의해서 인터 예측에 의한 인코딩이 수행될 수 있다. 제2 프레임(F2)은 제2 코덱(330)에 의해서 인터 예측에 의한 인코딩이 수행될 수 있다. 이 때, 제1 프레임(F1)은 제3 프레임(F3) 및 제4 프레임(F4)에 대한 참조 데이터(Ref)로 활용될 수 있다. 이러한 방식으로 제3 내지 제6 프레임(F3~F6)의 인코딩이 진행될 수 있다.
도 19를 참조하면, 모션 추정 모듈(310)은 프레임의 모션 추정 정보를 생성할 때, 프레임의 블록 중 절반만을 사용할 수 있다. 예를 들어, 모션 추정 모듈(310)은 제1 프레임(F1)의 블록 중 홀수 번째 라인(Odd line)의 블록 만을 이용하여 제1 모션 추정 정보(I1)를 생성할 수 있다. 또는, 당연히 모션 추정 모듈(310)은 제1 프레임(F1)의 블록 중 짝수 번째 라인(Even line)의 블록 만을 이용하여 제1 모션 추정 정보(I1)를 생성할 수 있다.
마찬가지로, 모션 추정 모듈(310)은 제2 프레임(F2)의 블록 중 홀수 번째 라인(Odd line)의 블록 만을 이용하거나, 짝수 번째 라인(Even line)의 블록 만을 이용하여 제2 모션 추정 정보(I1b)를 생성할 수 있다.
또는, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코더는 프레임의 블록이 이루는 라인 중 절반만을 다른 방식으로 이용할 수도 있다. 즉, 하나의 프레임에 총 32라인으로 제1 내지 제32 라인이 있다고 가정하면 제1 내지 제16 라인만을 이용하고, 제17 내지 제32 라인은 사용하지 않는 방식도 가능할 수 있다.
본 실시예에 따른 제1 멀티 코덱 인코더(300)는 모션 추정 모듈(310)이 프레임의 정보 중 절반만을 이용하므로, 하나의 모션 추정 모듈(310) 만으로 2개의 코덱 즉, 제1 코덱(320) 및 제2 코덱(330)을 낭비없이 활용할 수 있다.
즉, 모션 추정 모듈(310)은 제1 프레임(F1)의 제1 모션 추정 정보(I1)를 빠르게 획득하여 제1 메모리()에 저장하고, 바로 다음의 제2 프레임(F2)의 제2 모션 추정 정보(I1b)를 빠르게 획득하여 제1 메모리()에 저장할 수 있다.
이에 대응하여, 제1 코덱(320)이 제1 모션 추정 정보(I1)를 제1 메모리()를 통해서 불러와서 인코딩하는 동안, 제2 코덱(330)이 제2 모션 추정 정보(I1b)를 제1 메모리()를 통해서 불러와서 인코딩을 시작할 수 있다. 이러한 형식으로, 본 실시예에 따른 제1 멀티 코덱 인코더(300)는 하나의 모션 추정 모듈(310)과 하나의 코덱이 가질 수 있는 속도의 2배의 속도를 하나의 모션 추정 모듈(310)과 2개의 코덱만으로 구현할 수 있다.
이에 따라서, 2개의 모션 추정 모듈 및 2개의 코덱이 장착된 장치와 동일한 성능을 유지하면서 하나의 모션 추정 모듈(310)의 크기만큼의 공간이 덜 필요하므로, 전체적인 장치의 크기를 작게 할 수 있다.
특히, 고해상도(high definition) 영상에서는 하나의 이미지에 픽셀이 세분화되어 존재하므로, 모션 추정 모듈(310)이 프레임 전체를 이용하지 않고, 절반만 이용하더라도 모션 벡터 및 모션 추정 정보의 정확성에 큰 문제가 발생하지 않을 수 있다.
따라서, 본 실시예에 따른 제1 멀티 코덱 인코더(300)는 동일한 성능에서 더 작은 장치를 구현할 수 있다.
이하, 도 20 및 도 21을 참조하여, 본 발명의 몇몇 실시예에 따른 멀티 코덱 인코딩 시스템을 설명한다. 상술한 실시예와 중복되는 부분은 간략히 하거나 생략한다.
도 20은 본 발명의 몇몇 실시예들에 따른 멀티 코덱 인코딩 시스템을 설명하기 위한 블록도이고, 도 21은 도 20의 멀티 코덱 인코더를 세부적으로 설명하기 위한 블록도이다.
도 20을 참조하면, 본 발명의 몇몇 실시예에 따른 제2 멀티 코덱 인코딩 시스템(11)은 제2 전처리 회로(111)와 제3 멀티 코덱 인코더(302)를 포함하는 제2 멀티 코덱 인코딩 장치(101)를 포함할 수 있다.
제2 전처리 회로(111)는 비디오 소스(50)로부터 출력된 영상 데이터(IM)를 수신할 수 있다. 제2 전처리 회로(111)는 수신된 영상 데이터(IM)를 처리하고, 처리 결과에 따라 생성된 영상 데이터(), 제1 데이터(FI1) 및 제2 데이터(FI2)를 제3 멀티 코덱 인코더(302)에 제공할 수 있다.
도 21을 참조하면, 제3 멀티 코덱 인코더(302)의 모션 추정 모듈(310)은 제2 전처리 회로(111)로부터 영상 데이터()를 수신할 수 있다.
제1 파티셔닝 유닛(340)은 제1 코덱(320)에 제1 데이터(FI1)를 전달하고, 모션 추정 모듈(310)로는 제1 데이터(FI1)를 전달하지 않을 수 있다. 제2 파티셔닝 유닛(350)은 제2 코덱(330)에 제2 데이터(FI2)를 전달하고, 모션 추정 모듈(310)로는 제2 데이터(FI2)를 전달하지 않을 수 있다.
본 발명의 몇몇 실시예에 따른 제3 멀티 코덱 인코더(302)는 제1 파티셔닝 유닛(340) 및 제2 파티셔닝 유닛(350)으로부터 분할된 제1 데이터(FI1) 및 제2 데이터(FI2)를 제공 받는 것이 아니라, 제2 전처리 회로(111)로부터 영상 데이터()를 직접 전송받으므로, 굳이 제1 데이터(FI1) 및 제2 데이터(FI2)의 병합을 하거나, 교대로 처리하는 동작 로직을 따로 가질 필요가 없다.
따라서, 본 실시예의 모션 추정 모듈(310)은 상대적으로 낮은 연산량을 통해서 더 나은 성능 및 속도를 가질 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 제한적이 아닌 것으로 이해해야만 한다.
310: 모션 추정 모듈
320: 제1 코덱
330: 제2 코덱

Claims (20)

  1. 제1 및 제2 데이터를 각각 수신하는 제1 및 제2 파티셔닝 유닛으로서, 상기 제1 및 제2 데이터는 영상 데이터의 시간적으로 순차적으로 배치되는 제1 내지 제4 프레임 중 상기 제1 프레임과 상기 제3 프레임은 상기 제1 데이터로 분류되며, 상기 제2 프레임과 상기 제4 프레임은 상기 제2 데이터로 분류되어, 상기 제1 데이터와 상기 제2 데이터가 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 파티셔닝 유닛;
    상기 제1 데이터와 참조 데이터를 이용하여 모션 추정 정보를 생성하는 모션 추정 모듈;
    상기 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱; 및
    상기 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함하는 멀티 코덱 인코더.
  2. 제1 항에 있어서,
    상기 제1 코덱은 제1 데이터의 복원 블록을 생성하고,
    상기 복원 블록을 수신하고, 상기 모션 추정 모듈에 상기 참조 데이터를 제공하는 레퍼런스 모듈을 더 포함하는 멀티 코덱 인코더.
  3. 제1 항에 있어서,
    상기 제1 코덱은,
    상기 제1 데이터 및 상기 제1 모션 추정 정보를 이용하여 제1 예측 블록을 생성하고, 인트라 예측 정보를 생성하는 제1 예측 모듈과,
    상기 제1 예측 블록과 상기 제1 데이터의 차이를 제1 잔여 블록으로 도출하는 제1 감산기와,
    상기 제1 잔여 블록을 양자화하는 제1 압축 모듈을 포함하는 멀티 코덱 인코더.
  4. 제3 항에 있어서,
    상기 제1 예측 모듈은,
    상기 모션 추정 정보를 이용하여 인터 예측을 수행하는 모션 보상 유닛과,
    상기 제1 데이터의 인트라 예측을 수행하여 상기 인트라 예측 정보를 생성하는 인트라 예측 유닛과,
    상기 모션 보상 유닛 및 상기 인트라 예측 유닛 중 어느 하나를 상기 제1 감산기와 연결시키는 스위치를 포함하는 멀티 코덱 인코더.
  5. 제3 항에 있어서,
    상기 제1 코덱은 상기 제1 예측 블록을 수신하여 제1 양자화 파라미터 데이터를 생성하여 상기 제1 압축 모듈에 전달하는 제1 레이트 제어 모듈을 더 포함하는 멀티 코덱 인코더.
  6. 제5 항에 있어서,
    상기 제1 레이트 제어 모듈은 상기 제1 양자화 파라미터 데이터를 상기 제2 코덱으로 전달하는 멀티 코덱 인코더.
  7. 제3 항에 있어서,
    상기 제2 코덱은,
    상기 제2 데이터, 상기 모션 추정 정보 및 상기 인트라 예측 정보를 이용하여 제2 예측 블록을 생성하는 제2 예측 모듈과,
    상기 제2 예측 블록과 상기 제2 데이터의 차이를 제2 잔여 블록으로 도출하는 제2 감산기와,
    상기 제2 잔여 블록을 양자화하는 제2 압축 모듈을 포함하는 멀티 코덱 인코더.
  8. 제7 항에 있어서,
    상기 제2 코덱은 상기 제2 예측 블록을 수신하여 제2 양자화 파라미터 데이터를 생성하여 상기 제2 압축 모듈에 전달하는 제2 레이트 제어 모듈을 더 포함하는 멀티 코덱 인코더.
  9. 제1 항에 있어서,
    상기 제1 및 제2 코덱은 계층적(hierarchical) 방식의 인코딩을 수행하는 멀티 코덱 인코더.
  10. 제9 항에 있어서,
    상기 계층적 방식은 5 레이어 방식 또는 7 레이어 방식인 멀티 코덱 인코더.
  11. 제1 항에 있어서,
    상기 모션 추정 정보는 제1 및 제2 모션 추정 정보를 포함하고,
    상기 모션 추정 모듈은 상기 제1 데이터와 상기 참조 데이터를 이용하여 제1 모션 추정 정보를 생성하고,
    상기 모션 추정 모듈은 상기 제2 데이터와 상기 참조 데이터를 이용하여 제2 모션 추정 정보를 생성하고,
    상기 제1 및 제2 모션 추정 정보를 저장하고, 상기 제1 및 제2 모션 추정 정보를 상기 제1 및 제2 코덱에 각각 전송하는 메모리를 더 포함하는 멀티 코덱 인코더.
  12. 제11 항에 있어서,
    상기 모션 추정 모듈은 상기 제1 데이터의 프레임의 블록 중 절반만을 이용하여 상기 제1 모션 추정 정보를 생성하는 멀티 코덱 인코더.
  13. 제11 항에 있어서,
    상기 모션 추정 모듈은 상기 제1 데이터의 프레임의 블록 중 홀수 및 짝수 번째 라인 중 어느 하나만을 이용하여 상기 제1 모션 추정 정보를 생성하는 멀티 코덱 인코더.
  14. 영상 데이터를 시간적으로 순차적으로 배치되는 제1 내지 제4 프레임 중 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 데이터로 분할하되, 상기 제1 데이터는 상기 제1 프레임과 상기 제3 프레임을 포함하고, 상기 제2 데이터는 상기 제2 프레임과 상기 제4 프레임을 포함하는 전처리 회로; 및
    상기 제1 및 제2 데이터를 수신하여 각각 인코딩하는 멀티 코덱 인코더를 포함하되,
    상기 멀티 코덱 인코더는,
    상기 제1 데이터와 참조 데이터를 이용하여 모션 추정 정보를 생성하는 모션 추정 모듈과,
    상기 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱과,
    상기 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함하는 멀티 코덱 인코딩 시스템.
  15. 제14 항에 있어서,
    상기 제1 코덱은 인트라 예측 정보를 생성하고,
    상기 제2 코덱은 상기 인트라 예측 정보를 상기 제1 코덱으로부터 수신하는 멀티 코덱 인코딩 시스템.
  16. 제14 항에 있어서,
    상기 제2 코덱은 상기 모션 추정 정보를 스케일링하여 이용하는 멀티 코덱 인코딩 시스템.
  17. 제14 항에 있어서,
    상기 모션 추정 정보는 제1 및 제2 모션 추정 정보를 포함하되, 상기 제1 및 제2 모션 추정 정보는 각각 상기 제1 및 제2 데이터에 대한 모션 추정 정보이고,
    상기 제1 및 제2 모션 추정 정보를 저장하고, 상기 제1 및 제2 코덱에 상기 제1 및 제2 모션 추정 정보를 각각 제공하는 메모리를 더 포함하고,
    각각의 모션 추정 정보는 프레임의 블록의 절반만을 이용하여 생성되는 멀티 코덱 인코딩 시스템.
  18. 제1 및 제2 데이터를 각각 수신하는 제1 및 제2 파티셔닝 유닛으로서, 상기 제1 및 제2 데이터는 영상 데이터의 시간적으로 순차적으로 배치되는 제1 내지 제4 프레임 중 상기 제1 프레임과 상기 제3 프레임은 상기 제1 데이터로 분류되며, 상기 제2 프레임과 상기 제4 프레임은 상기 제2 데이터로 분류되어, 상기 제1 데이터와 상기 제2 데이터가 서로 교대로 배치되는 프레임을 각각 포함하는 제1 및 제2 파티셔닝 유닛;
    상기 제1 데이터와 참조 데이터를 이용하여 제1 모션 추정 정보를 생성하고, 상기 제2 데이터와 상기 참조 데이터를 이용하여 제2 모션 추정 정보를 생성하는 모션 추정 모듈로서, 상기 제1 및 제2 모션 추정 정보는 프레임의 절반을 이용하여 생성되는 모션 추정 모듈;
    상기 제1 및 제2 모션 추정 정보를 저장하는 메모리;
    상기 제1 모션 추정 정보를 이용하여 상기 제1 데이터를 인코딩하는 제1 코덱; 및
    상기 제2 모션 추정 정보를 이용하여 상기 제2 데이터를 인코딩하는 제2 코덱을 포함하는 멀티 코덱 인코더.
  19. 제18 항에 있어서,
    상기 모션 추정 모듈은 프레임의 일부만을 이용하여 상기 제1 및 제2 모션 추정 정보를 생성하는 멀티 코덱 인코더.
  20. 제19 항에 있어서,
    상기 모션 추정 모듈은 프레임의 홀수 또는 짝수 라인만을 이용하여 상기 제1 및 제2 모션 추정 정보를 생성하는 멀티 코덱 인코더.
KR1020170135827A 2017-10-19 2017-10-19 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템 KR102476204B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170135827A KR102476204B1 (ko) 2017-10-19 2017-10-19 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템
US15/980,276 US10931952B2 (en) 2017-10-19 2018-05-15 Multi-codec encoder and multi-codec encoding system including the same
TW107124676A TWI785073B (zh) 2017-10-19 2018-07-17 多重轉碼器編碼器及多重轉碼器編碼系統
CN201811214818.8A CN109688408A (zh) 2017-10-19 2018-10-18 多重编解码器编码器及多重编解码器编码系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170135827A KR102476204B1 (ko) 2017-10-19 2017-10-19 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템

Publications (2)

Publication Number Publication Date
KR20190043825A KR20190043825A (ko) 2019-04-29
KR102476204B1 true KR102476204B1 (ko) 2022-12-08

Family

ID=66170252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170135827A KR102476204B1 (ko) 2017-10-19 2017-10-19 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템

Country Status (4)

Country Link
US (1) US10931952B2 (ko)
KR (1) KR102476204B1 (ko)
CN (1) CN109688408A (ko)
TW (1) TWI785073B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021177478A1 (ko) * 2020-03-02 2021-09-10 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 영상표시장치
CN112738526B (zh) * 2020-12-24 2023-11-03 深圳市广湖科技有限公司 一种缓提型多重解码器及其解码方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060196A1 (en) * 2010-09-02 2012-03-08 Ching-Lung Chang Machanism of interleaving video frame storage for p2p-based vod streaming system

Family Cites Families (30)

* Cited by examiner, † Cited by third party
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
US7424056B2 (en) * 2003-07-04 2008-09-09 Sigmatel, Inc. Method for motion estimation and bandwidth reduction in memory and device for performing the same
KR100547146B1 (ko) * 2003-10-06 2006-01-26 삼성전자주식회사 영상처리장치 및 그 방법
KR100965881B1 (ko) * 2003-10-10 2010-06-24 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
WO2006012383A2 (en) * 2004-07-20 2006-02-02 Qualcomm Incorporated Method and apparatus for motion vector prediction in temporal video compression
KR100727969B1 (ko) * 2005-08-27 2007-06-14 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
US20100027621A1 (en) * 2008-07-31 2010-02-04 Kabushiki Kaisha Toshiba Apparatus, method and computer program product for moving image generation
KR101085963B1 (ko) 2008-08-11 2011-11-22 에스케이플래닛 주식회사 동영상 부호화 장치 및 방법
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8311115B2 (en) * 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
JP5071413B2 (ja) * 2009-03-02 2012-11-14 沖電気工業株式会社 動画像符号化装置、方法及びプログラム、並びに、動画像符号化システム
WO2012045319A1 (en) * 2010-10-05 2012-04-12 Telefonaktiebolaget L M Ericsson (Publ) Multi-view encoding and decoding technique based on single-view video codecs
CA2722993A1 (fr) 2010-12-01 2012-06-01 Ecole De Technologie Superieure Systeme d'ecodage video parallele multitrames et multitranches avec encodage simultane de trames predites
US9319716B2 (en) * 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
CN104041034B (zh) * 2012-01-19 2018-10-16 索尼公司 图像处理设备和方法
JP6070692B2 (ja) * 2012-03-30 2017-02-01 ソニー株式会社 画像処理装置および方法、並びに、プログラム
US9584793B2 (en) * 2012-04-09 2017-02-28 Intel Corporation Signaling three-dimensional video information in communication networks
CN104335585B (zh) 2012-06-24 2019-02-19 Lg 电子株式会社 图像解码方法和使用其的装置
CN104813669B (zh) 2012-09-21 2018-05-22 诺基亚技术有限公司 用于视频编码的方法和装置
US20140169467A1 (en) * 2012-12-14 2014-06-19 Ce Wang Video coding including shared motion estimation between multple independent coding streams
WO2014094219A1 (en) 2012-12-18 2014-06-26 Intel Corporation Video frame reconstruction
EP2979447B1 (en) * 2013-03-28 2018-01-03 Huawei Technologies Co., Ltd. Method for determining predictor blocks for a spatially scalable video codec
US10212441B2 (en) 2014-02-12 2019-02-19 Chips & Media, Inc. Method and apparatus for processing video
KR101957556B1 (ko) 2014-05-28 2019-03-12 애리스 엔터프라이지즈 엘엘씨 멀티코어 프로세서 플랫폼에서 동작하는 hevc 디코더에서의 콘텐츠 인식 스케줄링
CN106576176B (zh) 2014-06-20 2020-10-02 索尼公司 图像编码设备和方法以及图像解码设备和方法
JP6410495B2 (ja) * 2014-07-07 2018-10-24 ルネサスエレクトロニクス株式会社 画像符号化装置、画像復号装置、および画像通信システム
KR20160105203A (ko) * 2015-02-27 2016-09-06 삼성전자주식회사 멀티미디어 코덱, 상기 멀티미디어 코덱을 포함하는 애플리케이션 프로세서, 및 상기 애플리케이션 프로세서의 동작 방법
KR20160131526A (ko) 2015-05-07 2016-11-16 삼성전자주식회사 시스템 온 칩, 상기 시스템 온 칩을 포함하는 디스플레이 시스템, 및 상기 디스플레이 시스템의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060196A1 (en) * 2010-09-02 2012-03-08 Ching-Lung Chang Machanism of interleaving video frame storage for p2p-based vod streaming system

Also Published As

Publication number Publication date
KR20190043825A (ko) 2019-04-29
CN109688408A (zh) 2019-04-26
TWI785073B (zh) 2022-12-01
TW201918069A (zh) 2019-05-01
US10931952B2 (en) 2021-02-23
US20190124333A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
KR102543444B1 (ko) 영상 부호화 장치
US10448027B2 (en) Method of encoding video data, video encoder performing the same and electronic system including the same
US20190037227A1 (en) Techniques for hardware video encoding
KR102390162B1 (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
US9967573B2 (en) Codec, system on chip (SOC) including the same, and data processing system including the SOC
US10841659B2 (en) Video encoding apparatus and video encoding system
US10674160B2 (en) Parallel video encoding device and encoder configured to operate in parallel with another encoder
KR102476204B1 (ko) 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템
US10304213B2 (en) Near lossless compression scheme and system for processing high dynamic range (HDR) images
TW201637444A (zh) 包括用於影像處理的編碼器之方法、系統及裝置
US10694178B2 (en) Video processing device for encoding frames constituting hierarchical structure
US10097830B2 (en) Encoding device with flicker reduction
TWI834621B (zh) 視訊編碼設備
WO2023184206A1 (en) Enhanced presentation of tiles of residual sub-layers in low complexity enhancement video coding encoded bitstream
RU2771925C1 (ru) Кодер, декодер и соответствующие способы с использованием компактного mv хранилища
JP2017060019A (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
US20190045196A1 (en) Speeding up small block intra-prediction in video coding
CN117501695A (zh) 用于基于深度学习的视频处理的增强体系结构

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant