KR20170057312A - 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화 - Google Patents

비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화 Download PDF

Info

Publication number
KR20170057312A
KR20170057312A KR1020177009463A KR20177009463A KR20170057312A KR 20170057312 A KR20170057312 A KR 20170057312A KR 1020177009463 A KR1020177009463 A KR 1020177009463A KR 20177009463 A KR20177009463 A KR 20177009463A KR 20170057312 A KR20170057312 A KR 20170057312A
Authority
KR
South Korea
Prior art keywords
initial
value
sample
samples
modified
Prior art date
Application number
KR1020177009463A
Other languages
English (en)
Other versions
KR101918873B1 (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 퀄컴 인코포레이티드
Publication of KR20170057312A publication Critical patent/KR20170057312A/ko
Application granted granted Critical
Publication of KR101918873B1 publication Critical patent/KR101918873B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/74Circuits for processing colour signals for obtaining special effects
    • H04N9/75Chroma key
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • H04N5/23206
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/642Multi-standard receivers

Abstract

비디오 코더는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환한다. 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함할 수 있다. 초기 크로마 샘플들은 초기 Cb 샘플과 초기 Cr 샘플을 포함할 수 있다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함할 수 있다. 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함할 수 있다. 추가로, 비디오 코더는 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하여 재구성된 샘플들을 생성할 수 있다.

Description

비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화{HARMONIZATION OF CROSS-COMPONENT PREDICTION AND ADAPTIVE COLOR TRANSFORM IN VIDEO CODING}
본 출원은 2014년 10월 10일에 출원된 미국 가특허 출원번호 제 62/062,728호의 이익을 주장하며, 이의 전체 내용이 참고로 본원에 포함된다.
기술 분야
본 개시물은 비디오 인코딩 및 비디오 디코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기 (PDA) 들, 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, 전자책 단말기, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰", 원격 화상회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 에 의해 정의된 표준들, HEVC (High Efficiency Video Coding) 표준, 및 이러한 표준들의 확장안들, 예컨대 스케일러블 비디오 코딩 (SVC), 멀티뷰 비디오 코딩 (MVC), 스케일러블 HEVC (SHVC), 멀티뷰 HEVC (MV-HEVC), 3D-HEVC, the HEVC 레인지 확장안, 및 HEVC 스크린 컨텐츠 코딩 (SCC) 확장안들에서 설명된 바와 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은, 그러한 비디오 코딩 기법들을 구현함으로써 보다 효율적으로 디지털 비디오 정보를 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 코딩 기법들은, 비디오 시퀀스들에 내재하는 중복성 (redundancy) 을 감소시키거나 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 포함한다. 블록 기반 비디오 코딩에 있어서, 비디오 슬라이스 (예를 들어, 비디오 프레임, 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이 비디오 블록들은 또한 트리블록들, 코딩 트리 유닛 (CTU) 들, 코딩 유닛 (CU) 들 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처에서 이웃 블록들에 있는 참조 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처에서의 이웃 블록들에 있는 참조 샘플들에 대한 공간 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록을 위한 예측 블록을 초래한다. 잔차 데이터는 코딩될 원래 블록과 예측 블록 사이의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은, 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔차 변환 계수들을 초래할 수도 있으며, 다음으로 이들은 양자화될 수도 있다. 양자화된 변환 계수들은 보다 많은 압축을 달성하기 위해 엔트로피 코딩될 수도 있다.
비디오 인코더 또는 비디오 디코더와 같은 비디오 코더는 컬러 성분 측 변환 및 컬러 변환을 결합하는 변환을 수행할 수 있다. 결합된 변환은 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이를 이용한다. 따라서, 일부 예들에서, 비디오 코더는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하고, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다.
일례에서, 본 개시물은 비디오 데이터를 디코딩하는 방법을 기재하며, 그 방법은 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 단계로서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함하며, 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하는 단계; 및 비디오 데이터의 재구성된 샘플들을 생성하기 위해 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 디바이스를 기재하며, 그 디바이스는 비디오 데이터를 저장하도록 구성된 데이터 저장 매체; 및 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 것으로서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함하며, 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하고; 그리고 비디오 데이터의 재구성된 샘플들을 생성하기 위해 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하도록 구성된다.
다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 디바이스를 기재하며, 그 디바이스는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 수단으로서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함하며, 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하는 수단; 및 비디오 데이터의 재구성된 샘플들을 생성하기 위해 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하는 수단을 포함한다.
다른 예에서, 본 개시물은 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체 (예를 들어, 비일시적 컴퓨터 판독가능 저장 매체) 를 기재하며, 명령들이 실행되는 경우 비디오 데이터를 코딩하기 위한 디바이스로 하여금, 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하게 하는 것으로서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함하며, 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하게 하고; 그리고 비디오 데이터의 재구성된 샘플들을 생성하기 위해 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하게 한다.
본 개시물의 하나 이상의 예들의 세부사항들은 첨부되는 도면들 및 하기의 설명들에서 기술된다. 다른 특징들, 목적들 및 이점들은 설명, 도면들, 및 청구범위로부터 명확해질 것이다.
도 1 은 본 개시물의 하나 이상의 양태들에 따른 기술들을 수행할 수 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 나타내는 블록도이다.
도 2 는 고효율 비디오 코딩 (HEVC) 에서의 인트라 예측 모드들을 나타낸 개념도이다.
도 3a 는 병합 모드에 대한 공간적으로 이웃하는 모션 벡터 후보들의 예를 나타내는 개념도이다.
도 3b 는 어드밴스드 모션 벡터 예측 (AMVP) 모드에 대한 공간적으로 이웃하는 모션 벡터 후보들의 예를 나타내는 개념도이다.
도 4 는 인트라 블록 카피의 일례를 나타낸 개념도이다.
도 5 는 스크린 콘텐츠 코딩에서의 디코딩 프로세스의 예를 나타낸 블록도이다.
도 6 은 본 개시물의 기술에 따라, 비디오 디코더의 구현예를 나타낸 블록도이다.
도 7 은 본 개시물의 기술에 따라, 비디오 인코더의 구현예를 나타낸 블록도이다.
도 8 은 본 개시물의 기술에 따라, 비디오 코더의 동작예를 나타낸 흐름도이다.
비디오 코딩에서, 픽처는 픽셀들의 어레이를 포함한다. 픽처의 각 픽셀은 샘플들의 세트를 포함할 수 있다. 예를 들어, 픽셀은 적색 샘플, 녹색 샘플 및 청색 샘플을 포함할 수 있다. 적색, 녹색 및 청색 샘플들의 각각의 휘도는 픽셀의 인지된 컬러 및 밝기를 제어한다. 적색 샘플, 녹색 샘플 및 청색 샘플을 포함하는 픽셀들은 RGB 포맷이라고 한다. 일부 예에서, 픽셀들은 픽셀의 휘도 (즉, Y 샘플) 에 대응하는 루마 샘플 및 샘플의 색차에 대응하는 2 개의 색차 샘플 (즉, U 샘플 및 V 샘플) 을 포함한다.
비디오 데이터를 인코딩할 때, 비디오 인코더는 블록과 하나 이상의 예측 블록 간의 차이로서 블록에 대한 잔차 데이터를 발생시킬 수 있다. 비디오 인코더는 모션 보상 또는 인트라 예측을 사용하여 예측 블록들을 발생시킬 수 있다. 또한, 비디오 인코더는 RGB 포맷의 잔차 샘플을 YCbCr 포맷 또는 YCoCg 포맷과 같은 다른 포맷의 샘플들로 변환하는 컬러 변환을 적용할 수도 있다. 일부 예들에서, 비디오 인코더는 적응형 컬러 변환 (ACT) 을 사용한다. 비디오 인코더가 ACT 를 사용할 때, 비디오 인코더는 블록 단위로 적응적으로 컬러 변환을 적용한다. 예를 들어, 비디오 인코더는 픽처의 일부 블록에 컬러 변환을 적용할 수 있지만, 동일한 픽처의 다른 블록들에는 적용하지 않을 수 있다. 비디오 인코더는, 비디오 인코더가 특정 블록에 컬러 변환을 적용했는지 여부를 시그널링할 수 있다.
컬러 변환이 데이터의 양을 감소시킬 수 있지만, 비디오 인코더는 교차 성분 예측 (CCP) 변환을 적용함으로써 추가 감소를 달성할 수 있다. CCP 변환은, 크로마 성분들에 대한 예측자로서 루마 성분을 사용함으로써 컬러 성분들 간의 상관 관계를 제거할 수 있다. CCP 변환의 적용 후에, 비디오 인코더는 잔차 샘플을 주파수 도메인의 변환 계수로 변환하기 위해 이산 코사인 변환 (DCT) 과 같은 또 다른 변환을 적용할 수 있다. 비디오 인코더는 이후 변환 계수를 양자화하고, 양자화된 변환 계수를 나타내는 신택스 엘리먼트를 엔트로피 인코딩할 수 있다.
비디오 디코더는 원본 컬러 포맷의 잔차 샘플 값을 얻기 위해 변환을 역전시킬 수 있다. 예를 들어, 비디오 디코더는 변환 계수들의 블록을 포함하는 비트스트림을 수신할 수도 있다. 이 예에서, 비디오 디코더는 역 변환을 적용하여 변환 계수를 주파수 도메인으로부터 잔차 샘플들의 블록으로 변환한다. 또한, 비디오 디코더는 잔차 샘플들의 블록에 역 CCP 변환을 적용한다. 역 CCP 변환을 적용한 후에, 비디오 디코더는 잔차 샘플들의 블록에 역 컬러 변환을 적용할 수 있다. 예를 들어, 비디오 디코더는 잔차 샘플들의 블록에 역 ACT 를 적용할 수 있다. 후속하여, 비디오 디코더는 잔차 샘플들의 블록 내의 샘플들을 모션 보상 또는 인트라 예측을 사용하여 발생된 예측 블록의 대응하는 샘플들에 추가함으로써 적어도 부분적으로 비디오 데이터의 블록을 재구성할 수 있다.
Xiaoyu Xiu 등의, "스크린 컨텐츠 코딩을 위한 성분간의 상관 관계 해제에 관함", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 18차 회의: 일본, 삿포로, 2014 년 6 월 30 일 ~ 7 월 9 일, JCTVC-S0179 문서 (이하 JCTVC-S0179) 로서, 이는 http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=9626에서 입수가능하며, ACT와 CCP 변환을 결합하여 단일 결합된 변환으로 변환하는 것을 설명한다. 그러나, JCTVC-S0179 에 의해 기재된 결합된 변환은 샘플의 내부 비트 심도를 3만큼 증가시켰다. 또한, JCTVC-S0179 에 의해 기재된 결합된 변환은 결합된 변환의 변환 계수의 절대 값이 더 이상 2 미만이 아니기 때문에 다수의 복잡한 곱셈 연산을 수반하였다.
본 개시물은 또한 이러한 문제점을 해결하는 기술을 설명한다. 본원에 기재된 바와 같이, 역 CCP와 역 ACT가 2 개의 연속적인 스텝 대신 하나의 스텝을 사용하여 함께 결합될 때, 그리고 결합된 변환 처리의 최종 스테이지에서의 우측 시프트의 비트의 결정을 위해, 루마 성분들의 비트 심도를 단지 고려하는 대신 루마 및 성분의 비트 심도를 고려한다. 따라서, 일부 예들에서, 비디오 코더는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하고, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다.
예를 들어, 비디오 인코더 또는 비디오 디코더와 같은 비디오 코더는 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환할 수 있다. 이 예에서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다. 초기 크로마 샘플들은 초기 Cb 샘플과 초기 Cr 샘플을 포함할 수 있다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함할 수 있다. 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함할 수 있다. 비디오 코더는 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하여 재구성된 샘플들을 생성할 수 있다.
이 예에서, 변환을 적용하는 부분으로서, 비디오 코더는 비트 시프트 값을, 초기 루마 샘플의 비트 심도에서 초기 크로마 샘플들의 비트 심도를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정한다. 더욱이, 비디오 코더는 제 1 파라미터 값을 비트 시프트 값만큼 1 좌측 시프트된 것으로서 결정한다. 비디오 코더는 제 2 파라미터 값을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정한다. 비디오 코더는 제 3 파라미터 값을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정한다.
이 예에서, 비디오 코더는 루마 잔차 계수 값을, 제 1 파라미터 값과 제 2 파라미터 값의 합을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cb 샘플로 곱한 값을 더한 값으로서 결정한다. 비디오 코더는 제 1 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값 사이의 차이로서 결정한다. 이 예에서, 제 1 중간 값은 제 1 파라미터 값에서 제 2 파라미터 값을 뺀 값에 초기 루마 샘플로 곱한 값에서, 제 1 파라미터 값에 초기 Cb 샘플을 곱한 값을 뺀 값이다. 더욱이, 이 예에서, 제 2 중간 값은 제 3 파라미터 값을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cr 샘플로 곱한 값을 더한 값이다. 비디오 코더는 제 2 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값의 합으로서 결정한다.
이 예에서, 비디오 코더는 수정된 루마 샘플을 비트 시프트 값만큼 우측 시프트된 루마 잔차 계수 값으로서 결정한다. 비디오 코더는 수정된 Cb 샘플을, 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로 결정한다. 비디오 코더는 수정된 Cb 샘플을, 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로 결정한다.
도 1 은 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 예시하는 블록도이다. 본원에서 사용될 때, 용어 "비디오 코더" 는 비디오 인코더들 및 비디오 디코더들 양쪽을 포괄적으로 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩" 은 비디오 인코딩 또는 비디오 디코딩을 포괄적으로 지칭할 수도 있다.
도 1 에 나타낸 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 발생시킨다. 따라서, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로서 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로서 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예컨대, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들 등을 포함한, 광범위한 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 소스 디바이스 (12) 로부터 채널 (16) 을 통해서 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시키는 것이 가능한 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 일 예에서, 채널 (16) 은 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라서, 인코딩된 비디오 데이터를 변조할 수도 있으며, 변조된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예컨대, 인터넷) 와 같은, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
또 다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생되는 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 예를 들어 디스크 액세스 또는 카드 액세스를 통해서 저장 매체에 액세스할 수도 있다. 저장 매체는 Blu-ray 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적합한 디지털 저장 매체들과 같은 다양한 로컬-액세스되는 데이터 저장 매체들을 포함할 수도 있다.
추가 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 발생된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해서 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신가능한 서버의 형태일 수도 있다. 예시적인 파일 서버들은 (예컨대, 웹사이트용) 웹 서버들, 파일 전송 프로토콜 (FTP) 서버들, NAS (network attached storage) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인코딩된 비디오 데이터에 인터넷 접속과 같은 표준 데이터 접속을 통해서 액세스할 수도 있다. 데이터 접속들의 예시적인 유형들은 무선 채널들 (예컨대, Wi-Fi 접속들), 유선 접속들 (예컨대, DSL, 케이블 모뎀, 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하는데 적합한 양쪽의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이 양쪽의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정들에 한정되지 않는다. 이 기법들은 오버-디-에어 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들을 지원하는 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화 통신과 같은, 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 에 나타낸 비디오 코딩 시스템 (10) 은 단지 일 예이며, 본 개시물의 기법들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지는 않는 비디오 코딩 설정들 (예컨대, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 다른 예들에서, 데이터는 로컬 메모리로부터 취출되거나, 네트워크를 통해서 스트리밍되거나, 또는 기타 등등으로 이루어질 수 있다. 비디오 인코딩 디바이스는 데이터 인코딩하여 메모리에 저장할 수도 있거나, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은, 서로 통신하지 않지만, 메모리에 데이터를 간단히 인코딩하거나 및/또는 메모리로부터 데이터를 취출하여 디코딩하는 디바이스들에 의해 수행된다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 데이터를 저장하도록 구성된 메모리들을 포함할 수 있다. 비디오 인코더 (20) 는 메모리에 저장된 비디오 데이터를 인코딩할 수도 있다. 비디오 디코더 (30) 는 인코딩된 비디오 데이터를 디코딩하고 결과물인 비디오 데이터를 메모리에 저장한다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예컨대, 비디오 카메라, 이전에 캡쳐된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 공급 인터페이스, 및/또는 비디오 데이터를 발생하기 위한 컴퓨터 그래픽스 시스템, 또는 이런 비디오 데이터의 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해서 목적지 디바이스 (14) 로 직접 송신한다. 다른 예들에서, 인코딩된 비디오 데이터는 또한 디코딩 및/또는 플레이백을 위해 목적지 디바이스 (14) 에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버 상으로 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 인코딩된 비디오 데이터를 채널 (16) 을 통해 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 또는 그 외부에 있을 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 다양한 디스플레이 디바이스들, 예컨대 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드-프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 임의의 이들의 조합들과 같은, 다양한 적합한 회로 중 임의의 회로로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현되면, 디바이스는 소프트웨어용 명령들을 적합한 비일시성 컴퓨터-판독가능 저장 매체에 저장할 수도 있으며, 본 개시물의 기법들을 수행하기 위해 그 명령들을 하드웨어에서 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함한) 전술한 것 중 임의의 것이 하나 이상의 프로세서들로 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 개별 디바이스에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
본 개시물은 일반적으로 어떤 정보를 또 다른 디바이스, 이를테면 비디오 디코더 (30) 로 "시그널링하는" 또는 "송신하는" 비디오 인코더 (20) 와 관련될 수도 있다. 용어 "시그널링하는" 또는 "송신하는" 은 일반적으로, 압축된 비디오 데이터를 디코딩하는데 이용되는 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 그러한 통신은 실시간 또는 근실시간으로 일어날 수도 있다. 대안으로, 그러한 통신은, 인코딩 시에 인코딩된 비트스트림에서 컴퓨터 판독가능 저장 매체에 신택스 엘리먼트들을 저장할 때 일어날 수도 있고, 다음으로 이 매체에 저장된 후에 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있는 바처럼 시간 기간에 걸쳐 일어날 수도 있다.
일부 경우들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 고효율 비디오 코딩 (HEVC) 표준과 같은 비디오 압축 표준에 따라 동작한다. Wang 등의 "고효율 비디오 코딩 (HEVC) 흠결 보고서 4", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 17차 회의: 스페인, 발렌시아, 2014 년 3 월 27 일 - 4 월 4 일, JCTVC-Q1003 (v.1) 문서 (이하, "JCTVC-Q1003") 가 HEVC를 설명하는 문헌이다. 본 개시물에서, JCTVC-Q1003 에서와 같은 HEVC 사양 텍스트는 "HEVC 버전 1"로 지칭될 수 있다. 기본 HEVC 표준에 추가하여, HEVC에 대한 스케일러블 비디오 코딩, 멀티뷰 비디오 코딩, 및 3D 코딩 확장안을 생성하려는 노력이 계속되고 있다.
HEVC 및 다른 비디오 코딩 표준들에서, 비디오 시퀀스는 일반적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb 및 SCr 로 표기되는, 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 색차 샘플들의 2차원 어레이이다. SCr 은 Cr 색차 샘플들의 2차원 어레이이다. 색차 샘플들은 또한 본원에서 "크로마" 샘플들로서 지칭될 수도 있다. 다른 경우, 픽처는 단색일 수도 있으며 단지 루마 샘플들의 어레이를 포함할 수도 있다.
픽처의 인코딩된 표현을 발생시키기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 발생시킬 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들일 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은, 다른 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 특정의 사이즈에 반드시 제한되지 않으며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔으로 연속적으로 순서화된 정수 개의 CTU들을 포함할 수도 있다.
코딩된 CTU 를 발생하기 위해, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들로 분할하기 위해 (이로 인해, "코딩 트리 유닛들"로 명명) CTU 의 코딩 트리 블록들에 관해 쿼드-트리 파티셔닝을 회귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 갖는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들일 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 픽처의 크로마 샘플들의 2개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하는데 사용되는 신택스 구조들일 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb 및 Cr 예측 블록들에 대한 예측 루마, Cb 및 Cr 블록들을 발생시킬 수도 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 발생시키기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 발생시키기 위해 인트라 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관되는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 발생시킬 수도 있다. HEVC 버전 1에서, 각각의 PU 의 루마 성분에 대해, 인트라 예측 방법은 도 2에 도시된 바와 같이 (2에서 34까지로 인덱싱된) 33개의 각도 예측 모드들, (1로 인덱싱된) DC 모드 및 (0으로 인덱싱된) 플래너 모드에 의해 이용된다. 도 2 는 고효율 비디오 코딩 (HEVC) 에서의 인트라 예측 모드들을 나타낸 개념도이다.
상기 35개의 인트라 모드들에 추가하여, 'I-PCM'이라 명명되는 모드가 하나 더 있으며, 이는 HEVC에 의해 또한 채용된다. I-PCM 모드에서는, 예측 샘플들이 미리정의된 비트 수에 의해 코딩되는 동안 예측, 변환, 양자화 및 엔트로피 코딩이 바이패싱된다. I-PCM 모드의 주 목적은, 신호가 다른 모드들에 의해 효율적으로 코딩될 수 없는 경우 상황을 핸들링하는 것이다.
비디오 인코더 (20) 가 PU 의 예측 블록들을 발생하기 위해 인터 예측을 이용하면, 비디오 인코더 (20) 는 PU 와 연관되는 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여, PU 의 예측 블록들을 발생시킬 수도 있다. 비디오 인코더 (20) 는 PU 의 예측 블록들을 발생시키기 위해 단방향-예측 또는 양방향-예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 에 대한 예측 블록들을 발생시키기 위해 단방향-예측을 이용할 때, PU 는 단일 모션 벡터를 가질 수도 있다. 비디오 인코더 (20) 가 PU 에 대한 예측 블록들을 발생시키기 위해 양방향-예측을 이용할 때, PU 는 2개의 모션 벡터들을 가질 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예를 들어, 예측 루마, Cb, 및 Cr 블록들) 을 발생시킨 이후, 비디오 인코더 (20) 는 CU 의 잔차 블록을 발생시킬 수 있다. CU 의 잔차 블록에서의 각각의 샘플은 CU 의 PU 에 대한 예측 블록에서의 샘플과 CU 의 코딩 블록에서의 대응 샘플 간의 차이를 나타낸다. 예를 들어, 비디오 인코더 (20) 는 CU 의 루마 잔차 블록을 발생시킬 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 PU 의 예측 루마 블록에서의 루마 샘플과 CU 의 루마 코딩 블록에서의 대응 샘플 간의 차이를 나타낸다.
추가하여, 비디오 인코더 (20) 는 CU 의 Cb 잔차 블록을 발생시킬 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 PU 의 예측 Cb 블록에서의 Cb 샘플과 CU 의 Cb 코딩 블록에서의 대응 샘플 간의 차이를 나타낼 수 있다. 비디오 인코더 (20) 는 또한 CU 의 Cr 잔차 블록을 발생시킬 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 PU 에 대한 예측 Cr 블록에서의 Cr 샘플과 CU 의 Cr 코딩 블록에서의 대응 샘플 간의 차이를 나타낼 수 있다.
더욱이, 비디오 인코더 (20) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb, 및 Cr 변환 블록들) 로 쿼드 트리 파티셔닝을 이용할 수 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2개의 상응하는 변환 블록들, 및 변환 블록 샘플들을 변환하기 위해 사용되는 신택스 구조체들일 수 있다. 이로써, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브 블록일 수 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브 블록일 수 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브 블록일 수 있다. 단색 픽처들 또는 3개의 별개의 컬러 평면들을 가지는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 하나 이상의 변환들을 TU 에 대한 변환 블록에 적용하여, TU 에 대한 계수 블록을 발생시킬 수도 있다. 예를 들어, 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 에 대한 루마 변환 블록에 적용하여, TU 에 대한 루마 계수 블록을 발생시킬 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용하여, TU 에 대한 Cb 계수 블록을 발생시킬 수도 있다. 비디오 인코더 (20) 는 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용하여, TU 에 대한 Cr 계수 블록을 발생시킬 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수 있다. 변환 계수는 스컬러량일 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 발생시킨 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 변환 계수들을 나타내는데 사용되는 데이터의 양을 감소시킬 수 있도록 양자화되어 추가 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 관해 컨텍스트-적응 2진 산술 코딩 (CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피-인코딩된 신택스 엘리먼트들을 비트스트림으로 출력할 수도 있다. 비트스트림은 비디오 데이터의 인코딩된 표현을 포함할 수도 있다.
비디오 인코더 (20) 는 엔트로피-인코딩된 신택스 엘리먼트들을 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 코딩된 픽처들 및 연관되는 데이터의 표현을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하며, 미가공 바이트 시퀀스 페이로드 (RBSP; raw byte sequence payload) 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 유형 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 지정된 NAL 유닛 유형 코드는 NAL 유닛의 유형을 표시한다. RBSP 는 NAL 유닛 내에 캡슐화된 정수의 바이트들을 포함하는 신택스 구조일 수 있다. 일부의 경우, RBSP 는 제로 비트들을 포함한다.
상이한 유형들의 NAL 유닛들이 상이한 유형들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, NAL 유닛의 제 1 유형은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있으며, NAL 유닛의 제 2 유형은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있으며, NAL 유닛의 제 3 유형은 보충 강화 정보 (SEI) 에 대한 RBSP 를 캡슐화할 수도 있는 등이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과는 반대로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로서 지칭될 수도 있다.
도 1 의 예에서, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 발생되는 비트스트림을 수신한다. 게다가, 비디오 디코더 (30) 는 비트스트림을 파싱하여, 비트스트림으로부터 신택스 엘리먼트들을 획득할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하는 프로세스는 일반적으로 비디오 인코더 (20) 에 의해 수행되는 프로세스와 반대일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들의 예측 블록들을 결정하기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU들에 대한 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 계수 블록들에 관해 역 변환들을 수행하여, 현재의 CU 에 대한 변환 블록들을 재구성할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들에 대한 변환 블록들의 대응하는 샘플들에 가산함으로써, 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대해 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 그 픽처를 재구성할 수도 있다.
HEVC 표준에서, PU 에 대해 각각 병합 모드 및 어드밴스드 모션 벡터 예측 (AMVP) 모드로 명명되는 2가지 인터 예측 모드가 있다. 소위 스킵 모드는 병합 모드의 특수한 경우로 간주된다. AMVP 모드 또는 병합 모드에서, 비디오 코더는 다수의 모션 벡터 예측자에 대한 모션 벡터 (MV) 후보 리스트를 유지한다. PU 의 병합 모드에서의 참조 인덱스뿐만 아니라 모션 벡터(들)는 MV 후보 리스트로부터 하나의 후보를 취함으로써 발생된다.
일부 예들에서, MV 후보 리스트는 병합 모드에 대한 최대 5개의 후보들 및 AMVP 모드에 대한 단지 2개의 후보들을 포함한다. 병합 후보는 모션 정보의 세트, 예를 들어, 참조 픽처 리스트 (리스트 0 및 리스트 1) 및 참조 인덱스 모두에 대응하는 모션 벡터를 포함할 수 있다. 병합 후보가 병합 인덱스에 의해 식별되는 경우, 참조 픽처가 현재 블록의 예측을 위해 사용될 뿐만 아니라, 연관된 모션 벡터가 결정되는 참조 픽처가 이용된다. 그러나, 리스트 0 또는 리스트 1로부터의 각 개개의 포텐셜 예측 방향에 대한 AMVP 모드하에서, 비디오 인코더 (20) 는 각각의 AMVP 후보가 단지 모션 벡터를 포함하기 때문에 각각의 참조 인덱스를 MV 후보 리스트에 대한 MVP 인덱스와 함께 명시적으로 시그널링한다. AMVP 모드에서, 예측 모션 벡터는 더욱 리파인될 수 있다. 상기에서 알 수 있듯이, 병합 후보는 전체 모션 정보 세트에 대응하는 반면, AMVP 후보는 특정 예측 방향 및 참조 인덱스에 대해 단지 하나의 모션 벡터만을 포함한다. 양 모드에 대한 후보들은 동일한 공간적 및 시간적으로 이웃하는 블록들로부터 비디오 인코더 (20) 및 비디오 디코더 (30) 에 의해 유사하게 도출된다.
도 3a 는 병합 모드에 대한 공간적으로 이웃하는 모션 벡터 후보들의 예를 나타내는 개념도이다. 도 3b 는 AMVP 모드에 대한 공간적으로 이웃하는 모션 벡터 후보의 예를 나타낸 개념도이다. 비디오 코더 (예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는, 도 4에 도시된 이웃 블록들로부터 공간 MV 후보를 도출할 수 있다. 도 3a 및 도 3b를 참조하면, 비록 블록들로부터 후보들을 생성하는 방법이 병합 및 AMVP 모드들에 대해 상이하지만, 특정 PU (PU0) 에 대해도 3b에 도시된다. 병합 모드에서, 최대 4개의 공간 MV 후보가 숫자들에 의해 도 3a에 도시된 순서로 도출될 수 있고, 그 순서는 다음과 같다: 도 3a에 도시된 바와 같이 좌측 (0), 상부 (1), 우상부 (2), 좌하부 (3), 좌상부 (4).
AMVP 모드에서, 이웃하는 블록들은 도 2b에 도시된 바와 같이, 블록들 0과 1로 구성된 좌측 그룹과, 블록 2, 3, 및 4로 이루어진 상부 그룹의 두 그룹으로 나뉜다. 각 그룹에 대해, 시그널링된 참조 인덱스에 의해 지시된 것과 동일한 참조 픽처를 참조하는 이웃하는 블록 내의 잠재적 후보는 그룹의 최종 후보를 형성하기 위해 선택되는 최고 우선순위를 갖는다. 이웃 블록들 중 어느 것도 동일한 참조 픽처를 가리키는 모션 벡터를 포함하지 않을 수 있다. 따라서, 그러한 후보가 발견될 수 없다면, 비디오 코더는 최종 후보를 형성하기 위해 제 1 이용가능한 후보를 스케일링할 수 있다; 따라서, 시간적 거리 차이가 보상될 수 있다.
HEVC 표준에 대한 확장인 HEVC 범위 확장안은 HEVC에 추가적인 컬러 표현 ("컬러 포맷"이라고도 함) 및 증가된 컬러 비트 심도에 대한 지원을 추가한다. HEVC 범위 확장의 초안은 Flynn 등의, "HEVC Range Extension text specification: Draft 7," 17차 회의: 스페인, 발렌시아, 2014 년 3 월 27 일부터 4 월 4 일, JCTVC-Q1005_v7 문서 (이하 JCTVC-Q1005) 로서, 이는 http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v9.zip 에서 입수가능하다. 컬러 비트 심도는 컬러 표현의 각 성분을 나타내는데 사용되는 비트 수이다. 다른 컬러 포맷에 대한 지원은, HEVC 메인 프로파일과 다른 크로마 서브샘플링 패턴을 사용하고 다른 컬러 표현을 갖는 비디오 데이터 뿐만 아니라, 비디오 데이터의 RGB 소스를 인코딩 및 디코딩하기 위한 지원을 포함할 수 있다.
모션과 함께 텍스트 및 그래픽과 같은 스크린 컨텐츠 재료를 코딩하기 위한 HEVC의 다른 확장안, 즉 스크린 컨텐츠 코딩 (SCC) 이 개발되고 있다. Joshi 등의, "고효율 비디오 코딩 (HEVC) 스크린 컨텐츠 코딩: 초안 1", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 18차 회의: 일본, 삿포로, 2014 년 6 월 30 일 ~ 7 월 9 일, JCTVC-R1005_v3 문서 (이하 JCTVC-R1005) 로서, 이는 http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1005-v3.zip 에서 입수가능하며, SCC의 작업 초안 (WD) 이다.
인트라 블록 복사 (BC) 모드는 HEVC의 SCC 확장안에 포함되어 있다. 인트라 (Intra) BC의 예는 도 4에 도시되며, 현재 CU는 현재 픽처/슬라이스의 이미 디코딩된 블록으로부터 예측된다. 즉, 도 4 는 인트라 BC의 일례를 나타낸 개념도이다. 현재의 인트라 BC 블록 크기는, 일부 응용의 경우 추가 제약이 적용될 수 있지만, 8x8 내지 64x64의 범위인 CU 크기만큼 커질 수 있다.
도 4의 예에 도시된 바와 같이, 비디오 인코더 (20) 는 예를 들어 픽셀 차이 값에 기초하여, 현재 CU (52) 의 PU 의 예측 블록에 가장 근접하게 매칭되는 블록에 대해 탐색 영역 (50) 내에서 탐색을 수행할 수 있다. 도 4의 예에서는, 비디오 인코더 (20) 는 예측 신호 (54) 로 라벨링된 블록을 예측 블록과 가장 근접하게 매칭되는 블록으로서 식별한다. 비디오 인코더 (20) 는 예측 블록에 대한 예측 신호 (54) 의 변위를 나타내는 오프셋 벡터 (56) 를 결정한다.
비디오 데이터의 각 블록의 픽셀은 각각 "컬러 표현"으로 지칭되는 특정 포맷의 컬러를 나타낸다. 상이한 비디오 코딩 표준은 비디오 데이터의 블록에 대해 상이한 컬러 표현을 사용할 수 있다. 일례로, 비디오 코딩 공동 협력 팀 (JCT-VC) 에 의해 개발중인 고효율 비디오 코딩 (HEVC) 비디오 표준의 주요 프로파일은 YCbCr 컬러 표현을 사용하여 비디오 데이터의 블록의 픽셀을 표현한다.
YCbCr 컬러 표현은 일반적으로, 비디오 데이터의 각 픽셀이 컬러 정보 "Y", "Cb" 및 "Cr"의 3 개의 성분 또는 채널로 표현되는 컬러 표현을 지칭한다. Y 채널은 특정 픽셀에 대한 휘도 (즉, 광도 또는 밝기) 데이터를 나타낸다. Cb 및 Cr 성분은 각각 청색 차이 및 적색 차이의 색차, 즉, "크로마" 성분이다. YCbCr은 Y, Cb 및 Cr 각 성분들 간에 강한 상관 관계가 없기 때문에 압축된 비디오 데이터에서 컬러를 나타내는데 자주 사용되며, 이것은 Y, Cb 및 Cr 각 성분들 간에 중복되거나 쓸모없는 데이터가 거의 없음을 의미한다. 따라서 YCbCr 컬러 표현을 사용하여 비디오 데이터를 코딩하면 많은 경우에 우수한 압축 성능을 제공한다.
YCgCo 컬러 표현은 일반적으로, 비디오 데이터의 각 픽셀이 컬러 정보 "Y", "Cg" 및 "Co"의 3개의 성분 또는 채널로 표현되는 컬러 표현을 지칭한다. YCbCr 에서와 같이 Y 채널은 특정 픽셀에 대한 휘도 (즉, 광도 또는 밝기) 데이터를 나타낸다. Cg 및 Co 성분은 각각 녹색 차이 및 오렌지색 차이의 색차, 즉, "크로마" 성분이다. YCbCr 컬러 모델보다 YCgCo 컬러 모델의 잠재적인 이점은 압축 성능을 향상시키기 위해 컬러 평면의 더 단순하고 더 빠른 계산과 더 나은 상관 관계가 없다는 것이다.
HEVC 메인 프로파일은 루마 성분과 컬러 표현의 2개의 크로마 성분 (또한 컬러 포맷으로도 지칭됨) 사이의 일반적으로 강한 컬러 상관 관계 해제 때문에 YCbCr을 사용한다. 하지만, 어떤 경우에는, Y, Cb 및 Cr 성분들 간에 여전히 상관 관계가 있을 수 있다. 컬러 표현의 성분들 간의 상관 관계는 교차 컬러 성분 상관 관계 또는 컬러간 상관 관계로 지칭될 수 있다.
비디오 코더는 상이한 성분의 값 (예를 들어, 루마 성분의 샘플) 에 기초하여 하나의 성분의 값 (예를 들어, 크로마 성분의 샘플) 을 예측하도록 구성될 수 있다. 제 2 성분에 기초하여 제 1 성분으로부터 샘플을 예측하는 프로세스는 "컬러 비디오에 대한 교차 성분 예측" 또는 "컬러간 성분 예측"으로 지칭된다. 비디오 코더는 제 1 성분의 값을 제 1 성분과 제 2 성분 사이의 상관 관계에 기초하여 예측할 수 있다.
교차 성분 예측 (CCP) 은 Pu 등의 "RCE1: Descriptions and Results for Experiments 1, 2, 3, and 4", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 15차 회의: 스위치, 제네바, 2013 년 10 월 25 일 ~ 11 월 1 일, JCTVC-O0202 문서로서, 이는 http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O0202-v5.zip (이하, "JCTVC-O0202") 에서 입수가능하며, HEVC 범위 및 SCC 확장안 모두에 의해 채용된다. JCTVC-O0202 는 크로마 성분을 위한 예측자로서 루마 잔차를 사용함으로써 컬러 성분들 간의 상관 관계를 제거한다고 기술했다. 스케일링 파라미터의 세트가 미리 정의되고, 그 중 하나가 선택되고 비트스트림에서 시그널링된다. 이 예측은 인트라 코딩된 블록과 인터 코딩된 블록 모두에 대해 수행된다. 그러나, 인트라 코딩의 경우, DM 크로마 모드를 갖는 것만이 (즉, 크로마 예측 모드는 파티션 크기가 2N×2N 일 때 루마 예측 모드와 동일한 한편, 크로마 예측 모드는 파티션 크기가 N×N 일 때 제 1 (상부 - 좌측) 예측 유닛과 연관된 루마 예측 모드와 동일하다) 이 예측을 이용하도록 허용된다. JCTVC-O0202 에서, 스케일링 파라미터는 각각의 변환 블록에 대해 선택될 수 있다.
JCTVC-O0202 에 기재된 바와 같이, rC(x, y) 는 위치 (x, y) 에서의 최종 크로마 재구성된 잔차 샘플을 나타내고, rc'(x, y) 는 위치 (x, y) 에서의 비트 스트림으로부터 재구성된 크로마 잔차 샘플을 나타내고, 그리고 rL(x, y) 는 위치 (x, y) 에서의 루마 성분에서의 재구성된 잔차 샘플을 나타낸다. JCTVC-O0202 의 CCP 프로세스에서, 비디오 인코더는 다음과 같은 크로마 잔차를 예측한다:
Figure pct00001
(1)
비디오 디코더는 다음과 같은 크로마 잔차를 보상하는 역 CCP 프로세스를 수행한다:
Figure pct00002
(2)
비디오 인코더는 스케일링 파라미터 α를 계산하고 시그널링한다.
또한, JCTVC-O0202 에서, BDc (즉, 크로마 샘플들의 비트 심도) 가 BDY (즉, 루마 샘플들의 비트 심도) 와 동일한 것으로 가정하면, 역 CCP 프로세스는 다음의 행렬 곱셈으로 나타낼 수 있다:
Figure pct00003
(3)
여기서
Figure pct00004
는 역 CCP의 행렬이고,
Figure pct00005
Figure pct00006
는 각각 크로마 성분의 시그널링된 CCP 파라미터이다. 따라서,
Figure pct00007
는 Cg 크로마 값을 보상하기 위해 식 (2) 에 사용될 스케일링 파라미터 α에 대응하고
Figure pct00008
는 Co 크로마 값을 보상하기 위해 식 (2) 에 사용될 스케일링 파라미터 α에 대응한다.
HEVC 버전 1은 루마 및 크로마 성분에 대해 상이한 비트 심도의 사용을 허용한다. 루마 및 크로마 성분에 대한 비트 심도가 상이한 경우를 고려하기 위해, 식 (2) 는 다음으로 추가 수정될 수 있다:
Figure pct00009
(4)
식 (4) 에서, BDc 및 BDY 는 각각 크로마 및 루마의 비트 심도이다. BDc, BDY 는 각각 BitDepthC 및 BitDepthY 로 표기된다. 이 경우, 식 (3) 의
Figure pct00010
는 다음으로 수정될 수 있다:
Figure pct00011
(5)
스케일링 파라미터 α는 {-8, -4, -2, -1, 0, 1, 2, 4, 8} 의 값들의 세트로부터 포괄적으로 선택될 수 있다. 비디오 인코더는 스케일링 파라미터 α를 선택하기 위해 레이트 왜곡 메트릭을 사용할 수 있다. 일부 예에서, 비디오 인코더는 상이한 스케일링 파라미터를 계산하기 위해 또 다른 고속 알고리즘을 사용할 수 있다. α= 0 일 때, 성분간 잔차 예측은 턴 오프된다. 각각의 TU 에 대해, 비디오 인코더는 TU 에 적합한 최상의 α를 선택할 수 있으며, 예를 들어, HEVC 범위 확장안 및 SCC 확장안에서 TU 레벨 온/오프 스위치가 채용된다.
CU-레벨 적응형 컬러 변환 (ACT) 은, Zhang 등의, "SCCE5 Test 3.2.1: In-loop color-space transform", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 18차 회의: 일본, 삿포로, 2014 년 6 월 30 일 ~ 7 월 9 일, JCTVC-R0147 문서 (이하 JCTVC-R0147) 에 기재되었으며, 이는 http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R0147-v2.zip 에서 입수가능하고, 18차 JCTVC 회의에서 채택된다. JCTVC-R0147 에 기재된 바와 같이, 인트라 코딩된 CU, 인트라 BC 코딩된 CU 및 인터 코딩된 CU 에 대해, 비디오 인코더는 조건부로 적응형 컬러 변환의 사용을 나타내는 플래그를 시그널링한다. 하나의 CU 에 대해 ACT 가 인에이블될 때, 비디오 인코더는 먼저, 인트라 예측 (인트라 BC 포함) 또는 인터 예측을 사용하여 결정될 수 있는 예측 에러 (즉, 잔차 데이터) 를 다른 컬러 공간으로, 컬러 변환을 호출함으로써 변환시킨다. 이후 비디오 인코더는 변환된 예측 에러를 디스에이블된 ACT 를 갖는 블록들과 동일한 방식으로, 즉, CCP, 변환, 양자화 및 엔트로피 코딩을 순서대로 호출함으로써 처리한다. 디코더 측에서는, CCP 를 호출한 후, 현재 CU 가 인에이블된 ACT 를 사용하여 코딩된 경우 역 컬러 변환 모듈이 추가된다.
도 5 는 스크린 콘텐츠 코딩에서의 디코딩 프로세스의 예를 나타낸 블록도이다. 스크린 컨텐츠 코딩과 관련하여 설명되었지만, 도 5 의 디코딩 프로세스는 스크린 컨텐츠 코딩에 제한되지 않는다. 따라서, 도 5 는 ACT 가 포함된 디코딩 흐름을 도시한다. 도 5 의 예에서는, 비디오 디코더는 엔트로피 디코딩 유닛 (100), 탈양자화 유닛 (102), 역 변환 유닛 (104), CCP 유닛 (106), 역 컬러 변환 유닛 (108), 모션 보상 유닛 (110), 인트라 예측 유닛 (112), 디블로킹 필터 유닛 (114), 샘플 적응 오프셋 (SAO) 필터 유닛 (116), 및 디코딩된 픽처 버퍼 (118) 를 포함한다.
엔트로피 디코딩 유닛 (100) 은 비트스트림을 수신한다. 엔트로피 디코딩 유닛 (100) 은 비트스트림으로부터 신택스 엘리먼트들을 파싱할 수 있다. 비트스트림으로부터 신택스 엘리먼트들을 파싱하는 일부로서, 엔트로피 디코딩 유닛 (100) 은 비트스트림 내의 데이터를 엔트로피 디코딩하여, 변환 계수를 나타내는 신택스 엘리먼트들을 포함하는 특정 신택스 엘리먼트들을 리커버할 수 있다. 탈양자화 유닛 (102) 은 변환 계수들을 탈양자화할 수 있다. 역 변환 유닛 (104) 은 역 DCT 와 같은 역 변환을 변환 계수의 블록에 적용하여 잔차 데이터의 블록을 생성할 수 있다.
더욱이, 도 5 의 예에서, CCP 유닛 (106) 은 잔차 데이터의 블록에 역 CCP 변환을 적용한다. 역 컬러 변환 유닛 (108) 은 잔차 데이터의 블록에 역 컬러 변환을 적용한다. 도 5 의 예에 도시된 바와 같이, 역 컬러 변환 유닛 (108) 은 잔차 데이터의 일부 블록들에 대해 우회될 수 있다. 후속하여, CCP 유닛 (106) 또는 역 컬러 변환 유닛 (108) 에 의해 발생된 잔차 샘플은 샘플을 재구성하기 위해 인트라 예측 블록 또는 인터 예측 블록의 대응하는 샘플에 추가될 수 있다.
모션 보상 유닛 (110) 또는 인트라 예측 유닛 (112) 은 예측 블록을 발생시킬 수도 있다. 인트라 예측 유닛 (112) 은 인트라 예측을 이용하여 예측 블록을 발생시킬 수도 있다. 인트라 예측은 동일한 디코딩된 슬라이스의 샘플 값과 같은 데이터 엘리먼트에 기초하여 데이터 엘리먼트를 예측하는 기술이다. 예를 들어, 인트라 예측 유닛 (112) 은 방향성 인트라 예측 모드, DC 인트라 예측 모드, 평면 인트라 예측 모드, 인트라 BC, 또는 동일한 디코딩된 슬라이스의 데이터 엘리먼트에 기초하여 동일한 값과 같은 데이터 엘리먼트를 예측하는 또 다른 기술을 이용할 수 있다. 모션 보상 유닛 (110) 은 예를 들어 모션 벡터를 정의하는 신택스 엘리먼트를 사용하여 예측 블록을 발생시키기 위해 모션 보상을 이용할 수 있다.
디블로킹 필터 유닛 (114) 은 재구성된 샘플에 디블로킹 (deblocking) 필터를 적용할 수 있다. 디블로킹 필터는 블로킹 아티팩트를 제거할 수 있다. SAO 필터 유닛 (116) 은 재구성된 샘플에 SAO 필터를 적용할 수 있다.
DPB (118) 는 재구성된 샘플들을 저장할 수 있다. 따라서, DPB (118) 는 비디오 데이터를 저장하도록 구성된 메모리 또는 컴퓨터 판독가능 저장 매체일 수 있다. DPB (118) 는, 예를 들어 인트라 코딩 모드 또는 인터 코딩 모드에서, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 사용하기 위한 참조 비디오 데이터 (예를 들어, 참조 픽처) 를 저장하는 참조 픽처 메모리일 수 있다. 디코딩된 픽처 버퍼 (118) 는 SDRAM (synchronous DRAM), MRAM (magnetoresistive RAM), RRAM (resistive RAM) 를 포함하는 동적 랜덤 액세스 메모리 (DRAM, dynamic random access memory), 또는 다른 유형의 메모리 디바이스와 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수 있다. 디코딩된 픽처 버퍼 (118) 는 동일한 메모리 디바이스 또는 개별 메모리 디바이스들에 의해 제공될 수 있다. 다양한 예들에서, 디코딩된 픽처 버퍼 (118) 는 비디오 디코더 (30) 의 다른 컴포넌트과 함께 온-칩일 수 있거나, 또는 이들 컴포넌트들에 대해 오프-칩일 수 있다.
JCTVC-R1005 에서, 컬러 변환은 다음과 같이 정의된다:
YCoCg-R (무손실 코딩을 위함):
순방향:
Figure pct00012
역방향:
Figure pct00013
YCoCg-R (Co 및 Cg 성분을 2배 스케일링하는 RGB <-> YCgCo의 가역 형태)). 공통 리프팅 기법을 사용함으로써, 순방향 및 역방향 변환은 아래의 방정식에 의해 달성될 수 있다:
순방향:
Figure pct00014
역방향:
Figure pct00015
CCP 및 ACT 의 양자는 이웃하는 블록 및 이웃하는 픽셀과 독립적이기 때문에, CCP 및 ACT 의 양자는 픽셀 수준의 프로세싱으로 수행될 수 있다. ACT 플래그가 CU 레벨에서 시그널링되고 CCP가 TU 레벨에서 시그널링되더라도, 이들 모두는 픽셀 레벨에서 수행될 수 있다. ACT 플래그는 컬러 변환이 적용되는지 여부를 나타낼 수 있다. ACT 및 CCP 의 양자가 픽셀/TU 레벨에서 수행된다면, 디코딩 지연이 감소될 수 있다.
Xiaoyu Xiu 등의, "스크린 컨텐츠 코딩을 위한 성분간의 상관 관계 해제에 관함", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 비디오 코딩에 관한 공동 협력팀 (JCT-VC), 18차 회의: 일본, 삿포로, 2014 년 6 월 30 일 ~ 7 월 9 일, JCTVC-S0179 문서 (이하 "JCTVC-S0179") 로서, 이는 http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=9626에서 입수가능하며, 무손실 코딩을 위한 상이한 변환 매트릭스를 이용함으로써 2 단계 (즉, ACT와 CCP) 를 1 단계로 병합하는 것을 설명하였다.
BDc 가 BDY 와 동일하다는 가정하에, 손실 코딩을 위해, 결합된 디코딩 프로세스는 간단히 두 연산의 행렬을 승산함으로써 달성될 수 있다, 즉,
Figure pct00016
BDc 가 BDY 와 다른 경우, 손실 코딩을 위해, 상기 식 (3) 을 식 (5) 로 대입함으로써, 대응하는 디코딩 프로세스는 다음과 같이 정의될 수 있다:
Figure pct00017
즉, 3 개의 컬러 성분에 대해 rY[ x ][ y ], rCb[ x ][ y ], rCr[ x ][ y ]로 표현되는 입력 샘플을 취하면, 수정된 샘플 값의 출력은 다음 단계에 의해 계산된다:
Figure pct00018
(8) 과 위의 단계의 입력은 Y (Y), Cg (Cb) 및 Co (Cr) 이고; (8) 과 위의 단계의 출력은 G (rY), B (rCb), R (rCr) 이다. 따라서, (8) 과 위의 단계에서, 다른 변수가 있지만 같은 의미를 갖는다. 위의 단계에서, ResScaleVal [1][xTbY][yTbY] 및 ResScaleVal [2][xTbY][yTbY]는 각각 rCb 및 rCr에 해당하는 교차 구성 요소 예측 (CCP) 파라미터를 나타낸다. 예를 들어, 입력 샘플은 변환 블록 내의 위치 (xTbY, yTby) 에 있는 것으로 가정된다. 따라서, ResScaleVal [1][xTbY][yTbY]는 Cb에 대한 스케일링 파라미터 α이고, ResScalVal [1][xTbY][yTbY]는 Cr에 대한 스케일링 파라미터 α이다.
JCTVC-S0179 의 설계는 적어도 다음의 문제점을 갖는다. 수학식 (8) 의 결합된 단계들을 원래의 역 YCoCg 변환과 비교할 때, 내부 비트 심도가 (3+ BitDepthY) 만큼 증가된다는 것을 알 수 있다. 또한, 절대 변환 계수가 2보다 작지 않으므로, 보다 복잡한 곱셈이 요구된다. 본 개시물의 예는 JCTVC-S0179 에서의 설계와 비교하여 디코더 복잡성을 감소시킬 수 있다.
역 CCP 와 역 ACT 가 함께, 즉 2개의 연속적인 스텝 대신 하나의 스텝을 사용하여 결합되는 경우, 그리고 최종 스테이지에서의 우측 시프트의 비트의 결정에 있어서, 루마 성분의 비트 심도를 단지 고려하는 대신 루마 및 성분들의 비트 심도의 차이를 고려한다. 좀 더 정확히 말하자면, JCTVC-S0179 의 bShift 의 정의는 3 + max (0, BitDepthY - BitDepthC) 로 대체되고, 여기서 max 함수는 2개의 변수 중 더 큰 값을 리턴한다. 이 경우, 내부 비트 심도 증분이 (3 + BitDepthY) 에서 (3 + max (0, BitDepthY - BitDepthC)) 로 감소된다.
수정된 디코딩 프로세스는 다음과 같이 정의되며, JCTVC-S0179 에 대한 삭제는 이중 브래킷으로 둘러싸이고 이탤릭체로 도시되며 (예를 들어, [[예]]), JCTVC-S0179 에 대한 추가는 밑줄이 그어져 있다 (예를 들어, ).
Figure pct00019
따라서, 본 개시물의 예에 따라, 비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은 비디오 코더는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환시킬 수 있다. 이 예에서, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다. 일부 예들에서, 초기 크로마 샘플들의 세트는 초기 Cb 샘플과 초기 Cr 샘플을 포함한다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함한다. 일부 예들에서, 수정된 크로마 샘플은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함한다. 비디오 코더는, 재구성된 샘플들을 생성하기 위해 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가할 수 있다.
일부 예들에서, 변환을 적용하는 경우, 비디오 코더는 비트 시프트 값 (예를 들어, bShift) 을, 초기 루마 샘플의 비트 심도 (예를 들어, BitDepthY) 에서 초기 크로마 샘플들의 비트 심도 (예를 들어, BitDepthC) 를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정한다. 비디오 코더는 제 1 파라미터 값 (예를 들어, wPara0) 을 비트 시프트 값에 의해 1 좌측 시프트된 것으로 결정할 수 있다. 비디오 코더는 제 2 파라미터 값 (예를 들어, wPara1) 을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정할 수 있다. 비디오 코더는 제 3 파라미터 값 (예를 들어, wPara2) 을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정한다.
이 예에서, 비디오 코더는 루마 잔차 계수 값 (예를 들어, resCoeffY) 을, 제 1 파라미터 값과 제 2 파라미터 값의 합을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cb 샘플로 곱한 값을 더한 값으로서 결정한다. 더욱이, 비디오 코더는 제 1 크로마 잔차 계수 값 (예를 들어, resCoeffCb) 을, 제 1 중간 값 (예를 들어, tmp0) 과 제 2 중간 값 (예를 들어, tmp1) 사이의 차이로서 결정한다. 이 예에서, 제 1 중간 값은 제 1 파라미터 값에서 제 2 파라미터 값을 뺀 값에 초기 루마 샘플로 곱한 값에서, 제 1 파라미터 값에 초기 Cb 샘플을 곱한 값을 뺀 값이다. 더욱이, 이 예에서, 제 2 중간 값은 제 3 파라미터 값을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cr 샘플로 곱한 값을 더한 값이다. 비디오 코더는 제 2 크로마 잔차 계수 값 (예를 들어, resCoeffCr) 을, 제 1 중간 값과 제 2 중간 값의 합으로서 결정한다.
이 예에서, 비디오 코더는 수정된 루마 샘플 (예를 들어, rY[ x ][ y ]) 을 비트 시프트 값만큼 우측 시프트된 루마 잔차 계수 값으로서 결정한다. 이 예에서, 비디오 코더는 수정된 Cb 샘플 (예를 들어, rCb[ x ][ y ]) 을 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로서 결정한다. 이 예에서, 비디오 코더는 수정된 Cr 샘플 (예를 들어, rCr[ x ][ y ]) 을 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로서 결정한다.
비디오 코더가 비디오 인코더 (20) 와 같은 비디오 인코더인 경우에, 비디오 코더는 비트스트림에서 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 시그널링할 수 있다. 유사하게, 비디오 코더가 비디오 디코더 (30) 와 같은 비디오 디코더인 경우에, 비디오 코더는, 비트스트림으로부터, 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 획득할 수 있다.
대안으로, wPara1 및 wPara2의 정의에 다음이 적용될 수 있다:
Figure pct00020
도 6 은 본 개시물의 기술에 따라, 비디오 디코더 (30) 의 구현예를 나타낸 블록도이다. 도 6 에 도시된 비디오 디코더 (30) 의 구현예는 도 5 의 비디오 디코더와 유사하다. 하지만, CCP 유닛 (106) 및 역 컬러 변환 유닛 (108) 을 포함하는 대신에, 도 6 의 비디오 디코더는 결합된 CCP/ACT 유닛 (120) 을 포함한다. 결합된 CCP/ACT 유닛 (120) 은 결합된 역 CCP 및 ACT 를 적용한다.
본 개시물의 하나 이상의 기술들에 따라, 결합된 CCP/ACT 유닛 (120) 은, 초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하고, 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다. 초기 크로마 샘플은 초기 Cb 샘플과 초기 Cr 샘플을 포함한다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함한다. 수정된 크로마 샘플은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함한다.
도 7 은 본 개시물의 기술에 따라, 비디오 인코더 (20) 의 구현예를 나타낸 블록도이다. 도 7 은 설명의 목적으로 제공되며 본 개시물에서 광범위하게 예시되고 설명된 기술의 제한으로 간주되어서는 안된다. 설명의 목적을 위해, 본 개시물은 HEVC 코딩의 맥락에서 비디오 인코더 (20) 를 설명한다. 그러나, 본 개시물의 기술들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 7 의 예에서, 비디오 인코더 (20) 는 비디오 데이터 메모리 (130), 예측 프로세싱 유닛 (132), 잔차 발생 유닛 (134), 결합된 CCP/ACT 유닛 (136), 변환 프로세싱 유닛 (138), 양자화 유닛 (140), 역 양자화 유닛 (142), 역 변환 프로세싱 유닛 (144), 역 결합된 CCP/ACT 유닛 (146), 재구성 유닛 (148), 필터 유닛 (150), 디코딩된 픽처 버퍼 (152), 및 엔트로피 인코딩 유닛 (154) 을 포함한다. 예측 프로세싱 유닛 (132) 은 인터 예측 프로세싱 유닛 (156) 및 인트라 예측 프로세싱 유닛 (158) 을 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많은, 더 적은, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.
비디오 데이터 메모리 (130) 는 비디오 인코더 (20) 의 컴포넌트에 의해 인코딩될 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리 (130) 에 저장된 비디오 데이터는 예를 들어 비디오 소스 (18) 로부터 획득될 수 있다. 디코딩된 픽처 버퍼 (152) 는 비디오 인코더 (20) 에 의해 비디오 데이터를 예를 들어 인트라 코딩 모드 또는 인터 코딩 모드로 인코딩하는데 사용하기 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수 있다. 비디오 데이터 메모리 (130) 및 디코딩된 픽처 버퍼 (152) 는 SDRAM (synchronous DRAM), MRAM (magnetoresistive RAM), RRAM (resistive RAM) 를 포함하는 동적 랜덤 액세스 메모리 (DRAM), 또는 다른 유형의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 디바이스에 의해 형성될 수 있다. 비디오 데이터 메모리 (130) 및 디코딩된 픽처 버퍼 (152) 는 동일한 메모리 디바이스 또는 개별 메모리 디바이스들에 의해 제공될 수 있다. 다양한 예들에서, 비디오 데이터 메모리 (130) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩일 수 있거나, 또는 이들 컴포넌트들에 대해 오프-칩일 수 있다.
비디오 인코더 (20) 는 CU들 (즉, 코딩된 CU들) 의 인코딩된 표현을 발생시키기 위해 CTU 의 CU들을 인코딩할 수 있다. CU를 인코딩하는 일부로서, 예측 프로세싱 유닛 (132) 은 CU 의 하나 이상의 PU들 중에서 CU와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수 있다. 인터 예측 프로세싱 유닛 (156) 은 CU 의 각각의 PU 에 대한 인터 예측을 수행함으로써 PU 에 대한 예측 데이터를 발생시킬 수 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수 있다. 인트라 예측 프로세싱 유닛 (158) 은 PU 에 대한 인트라 예측을 수행함으로써 PU 에 대한 예측 데이터를 발생시킬 수도 있다. 예측 프로세싱 유닛 (132) 은, PU들에 대한 인터-예측 프로세싱 유닛 (156) 에 의해 발생된 예측 데이터, 또는 PU들에 대한 인트라-예측 프로세싱 유닛 (158) 에 의해 발생된 예측 데이터 중에서, CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다.
잔차 발생 유닛 (134) 은 CU 의 코딩 블록들 및 CU 의 PU들의 선택된 예측 블록들에 기초하여, CU 의 잔차 블록들을 발생시킬 수도 있다. 예를 들어, 잔차 발생 유닛 (134) 은 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 샘플 블록에서의 대응하는 샘플 사이의 차이와 동일한 값을 갖도록, CU 의 잔차 블록들을 발생시킬 수도 있다.
결합된 CCP/ACT 유닛 (136) 은 잔차 발생 유닛 (134) 에 의해 발생된 잔차 데이터에 결합된 CCP 및 ACT 를 적용한다. 결합된 CCP/ACT 유닛 (136) 은, 초기 루마 샘플의 비트 심도와 초기 크로마 샘플의 비트 심도 사이의 차이에 기초하여, 초기 샘플의 세트를 수정된 샘플의 세트로 변환시킬 수 있다. 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다. 초기 크로마 샘플은 초기 Cb 샘플과 초기 Cr 샘플을 포함한다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함한다. 수정된 크로마 샘플은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함한다. 일부 예에서, 3개의 컬러 성분은 (Y, Cb, Cr) 과 같은 다른 방식으로 명명될 수 있다.
변환 프로세싱 유닛 (138) 은 하나 이상의 변환들을 TU 의 변환 블록들에 적용함으로써, CU 의 각각의 TU 에 대한 변환 계수 블록들을 발생시킬 수도 있다. 변환 프로세싱 유닛 (138) 은 여러 변환들을 TU 의 변환 블록에 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (138) 은 변환 블록에 이산 코사인 변환 (DCT), 방향성 변환, 또는 개념적으로 유사한 변환을 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (138) 은 변환들을 변환 블록에 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 취급될 수도 있다.
양자화 유닛 (140) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 그 변환 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 중에 m-비트 변환 계수로 절삭될 수도 있는데, 여기서 n 은 m 보다 크다. 양자화는 정보의 손실을 도입할 수도 있으며, 따라서 양자화된 변환 계수들은 원래 정밀도들보다 낮은 정밀도를 가질 수도 있다.
역 양자화 유닛 (142) 및 역 변환 프로세싱 유닛 (144) 은 역 양자화 및 역 변환들을 계수 블록에 각각 적용하여, 계수 블록으로부터 잔차 블록을 재구성할 수도 있다. 역 결합된 CCP/ACT 유닛 (146) 은 역 변환 프로세싱 유닛 (144) 에 의해 발생된 잔차 데이터에 역 CCP 및 ACT 를 적용한다. 이를 테면, 본 개시물의 기술들에 따라, 역 결합된 CCP/ACT 유닛 (146) 은, 초기 루마 샘플의 비트 심도와 초기 크로마 샘플의 비트 심도 사이의 차이에 기초하여, 초기 샘플의 세트를 수정된 샘플의 세트로 변환시킬 수 있다. 초기 샘플들의 세트는 초기 루마 샘플 및 초기 크로마 샘플들을 포함한다. 초기 크로마 샘플은 초기 Cb 샘플과 초기 Cr 샘플을 포함한다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함한다. 수정된 크로마 샘플은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함한다.
재구성 유닛 (148) 은 그 재구성된 잔차 블록을 예측 프로세싱 유닛 (132) 에 의해 발생되는 하나 이상의 예측 샘플 블록들로부터의 대응하는 샘플들에 가산하여, TU 와 연관되는 재구성된 변환 블록을 생성할 수도 있다. 이 방법으로 CU 의 각각의 TU 에 대한 변환 블록들을 재구성함으로써, 비디오 인코더 (20) 는 CU 의 코딩 블록들을 재구성할 수도 있다. 이 방식에서, 비디오 인코더 (20) 는 비디오 데이터를 디코딩하는 방법을 수행할 수 있다.
필터 유닛 (150) 은 CU 와 연관되는 코딩 블록들에서 블로킹 아티팩트들을 감소시키기 위해, 하나 이상의 디블로킹 동작들을 수행할 수도 있다. 디코딩된 픽처 버퍼 (152) 는 필터 유닛 (150) 이 재구성된 코딩 블록들에 관해 하나 이상의 디블로킹 동작들을 수행한 후 그 재구성된 코딩 블록들을 저장할 수도 있다. 인터-예측 프로세싱 유닛 (156) 은 그 재구성된 코딩 블록들을 포함하는 참조 픽처를 이용하여, 다른 픽처들의 PU들에 대해 인터 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (154) 은 비디오 인코더 (20) 의 다른 기능적 구성요소들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (154) 은 양자화 유닛 (140) 으로부터 계수 블록들을 수신할 수도 있으며 예측 프로세싱 유닛 (132) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (154) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여, 엔트로피-인코딩된 데이터를 발생시킬 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (154) 은 CABAC 동작, 컨텍스트-적응 가변 길이 코딩 (CAVLC) 동작, 변수-대-변수 (V2V) 길이 코딩 동작, 신택스-기반 컨텍스트-적응 2진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-Golomb 인코딩 동작, 또는 또다른 유형의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (154) 에 의해 발생된 엔트로피-인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.
도 8 은 본 개시물의 기술에 따라 비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은 비디오 코더의 예시적인 동작을 나타내는 흐름도이다. 도 8은 일례로서 제공된다. 다른 예들은 보다 많거나, 보다 작거나, 또는 상이한 액션들을 포함할 수 있다. 또한, 다른 예에서, 액션들은 상이한 순서로 이루어질 수 있다.
도 8 의 예에서, 비디오 코더는 초기 루마 샘플의 비트 심도와 초기 크로마 샘플의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환할 수 있다 (200). 초기 샘플들의 세트는 초기 루마 샘플 (예를 들어, rY[x][y]) 및 초기 크로마 샘플들을 포함한다. 일부 예들에서, 초기 크로마 샘플은 초기 Cb 샘플 (예를 들어, rCb[x][y]) 및 초기 Cr 샘플 (예를 들어, rCr[x][y]) 을 포함한다. 수정된 샘플의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플을 포함한다. 일부 예들에서, 수정된 크로마 샘플은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함한다.
도 8 의 예에서, 초기 샘플들을 변환하기 위해, 비디오 코더는 비트 시프트 값 (예를 들어, bShift) 을, 초기 루마 샘플의 비트 심도 (예를 들어, BitDepthY) 에서 초기 크로마 샘플들의 비트 심도 (예를 들어, BitDepthC) 를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정할 수도 있다 (202).
비디오 코더는 제 1 파라미터 값 (예를 들어, wPara0) 을 비트 시프트 값 (204) 에 의해 1 좌측 시프트된 것으로 결정할 수 있다. 또한, 비디오 코더는 제 2 파라미터 값 (예를 들어, wPara1) 을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 (예를 들어, ResScalVal[1][xTbY][yTbY]) 로서 결정할 수 있다 (206). 비디오 코더는 제 3 파라미터 값을, 초기 크로마 샘플들의 비트 심도에서 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터 (예를 들어, ResScalVal[2][xTbY][yTbY]) 로서 결정할 수 있다 (208).
비디오 코더는 루마 잔차 계수 값 (resCoeffY) 을, 상기 제 1 파라미터 값과 상기 제 2 파라미터 값의 합을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cb 샘플로 곱한 값을 더한 값으로서 결정할 수 있다 (210). 비디오 코더는 제 1 크로마 잔차 계수 값 (예를 들어, resCoeffCb) 을, 제 1 중간 값 (예를 들어, tmp0) 과 제 2 중간 값 (예를 들어, tmp1) 사이의 차이로서 결정할 수 있다 (212). 제 1 중간 값은 제 1 파라미터 값에서 제 2 파라미터 값을 뺀 값에 초기 루마 샘플로 곱한 값에서, 제 1 파라미터 값에 초기 Cb 샘플을 곱한 값을 뺀 값일 수 있다 (예를 들어, tmp0 = (wPara0 - wPara1) * rY[ x ][ y ] - wPara0 * rCb[ x ][ y ]). 제 2 중간 값은, 제 3 파라미터 값을 초기 루마 샘플로 곱한 값에, 제 1 파라미터 값을 초기 Cr 샘플로 곱한 값으로 더한 값이다 (예를 들어, tmp1 = wPara2 * rY[ x ][ y ] + wPara0 * rCr[ x ][ y ]). 비디오 코더는 제 2 크로마 잔차 계수 값 (예를 들어, resCoeffCr) 을, 제 1 중간 값과 제 2 중간 값의 합으로서 결정할 수 있다 (214).
비디오 코더는 수정된 루마 샘플을 비트 시프트 값만큼 우측 시프트된 루마 잔차 계수 값 (예를 들어, resCoeffY >> bShift) 으로서 결정할 수 있다 (216). 비디오 코더는 수정된 Cb 샘플을, 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값 (예를 들어, resCoeffCb >> bShift) 으로 결정할 수 있다 (218). 비디오 코더는 수정된 Cr 샘플을, 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값 (예를 들어, resCoeffCr >> bShift) 으로 결정할 수 있다 (220).
초기 샘플들을 수정된 샘플들로 변환한 후에, 비디오 코더는 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하여 재구성된 샘플들을 생성할 수 있다 (222). 인코딩 프로세스의 맥락에서, 재구성된 샘플들은 다른 블록들의 인터 예측을 위해 사용될 수 있다. 디코딩 프로세스에서, 재구성된 샘플은 출력 및 디스플레이를 위해 저장될 수 있다.
그 예에 따라서, 본원에서 설명되는 기법들 중 임의의 기법의 어떤 행위들 또는 이벤트들이 상이한 시퀀스로 수행될 수 있으며, 추가되거나, 병합되거나, 또는 모두 제외시킬 수도 있는 (예컨대, 모든 설명되는 행위들 또는 이벤트들이 기법들의 실시에 필수적인 것은 아닌) 것으로 인식되어야 한다. 더욱이, 어떤 예들에서, 행위들 또는 이벤트들은 순차적으로 보다는, 동시에, 예컨대, 멀티-쓰레드된 프로세싱, 인터럽트 프로세싱, 또는 다수의 프로세서들을 통해서 수행될 수도 있다. 하드웨어 및 소프트웨어의 이러한 상호 교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들을 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능성을 구현할 수도 있으나, 그러한 구현 결정들이 본 발명의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어 (예를 들어, 전자 하드웨어), 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 또는 컴퓨터-판독가능 매체를 통해서 송신될 수도 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 소프트웨어로 구현되는 경우, 기술들은 실행되는 경우 상술된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수 있다. 컴퓨터-판독가능 매체는 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방법으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비일시적 유형의 컴퓨터-판독가능 저장 매체, 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이런 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 스토리지, 자기디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술들, 예컨대 적외선, 라디오, 및 마이크로파를 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 무선 기술들 예컨대 적외선, 라디오, 및 마이크로파가 그 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 접속부들, 반송파들, 신호들, 또는 다른 일시적 매체를 포함하지 않고, 그 대신, 비-일시적 유형의 저장 매체로 송신되는 것으로 해석되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 Blu-ray 디스크를 포함하며, 디스크들 (disks) 은 데이터를 자기적으로 보통 재생하지만, 디스크들 (discs) 은 레이저로 데이터를 광학적으로 재생한다. 앞에서 언급한 것들의 결합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 이 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩을 위해 구성되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 구성요소들, 모듈들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 대신, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.

Claims (23)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 단계로서, 상기 초기 샘플들의 세트는 상기 초기 루마 샘플 및 상기 초기 크로마 샘플들을 포함하고, 상기 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하는 단계; 및
    상기 비디오 데이터의 재구성된 샘플들을 생성하기 위해 상기 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 초기 크로마 샘플들은 초기 Cb 샘플 및 초기 Cr 샘플을 포함하고, 그리고
    상기 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함하는, 비디오 데이터를 디코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 초기 샘플들의 세트를 변환하는 단계는:
    비트 시프트 값을, 상기 초기 루마 샘플의 비트 심도에서 상기 초기 크로마 샘플들의 비트 심도를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정하는 단계;
    제 1 파라미터 값을, 상기 비트 시프트 값만큼 1 좌측 시프트된 것으로 결정하는 단계;
    제 2 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정하는 단계;
    제 3 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정하는 단계;
    루마 잔차 계수 값을, 상기 제 1 파라미터 값과 상기 제 2 파라미터 값의 합을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cb 샘플로 곱한 값을 더한 것으로서 결정하는 단계;
    제 1 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값 사이의 차이로서 결정하는 단계로서,
    상기 제 1 중간 값은 상기 제 1 파라미터 값에서 상기 제 2 파라미터 값을 뺀 값에 상기 초기 루마 샘플로 곱한 값에서, 상기 제 1 파라미터 값에 상기 초기 Cb 샘플을 곱한 값을 뺀 값이고,
    상기 제 2 중간 값은 상기 제 3 파라미터 값을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cr 샘플로 곱한 값을 더한 값인, 상기 제 1 크로마 잔차 계수 값을 결정하는 단계;
    제 2 크로마 잔차 계수 값을, 상기 제 1 중간 값과 상기 제 2 중간 값의 합으로서 결정하는 단계;
    상기 수정된 루마 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 상기 루마 잔차 계수 값으로서 결정하는 단계;
    상기 수정된 Cb 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로 결정하는 단계; 및
    상기 수정된 Cr 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  4. 제 3 항에 있어서,
    비트스트림으로부터, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 획득하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  5. 제 3 항에 있어서,
    비트스트림에서, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 시그널링하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  6. 비디오 데이터를 코딩하는 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 데이터 저장 매체; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은:
    초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 것으로서, 상기 초기 샘플들의 세트는 상기 초기 루마 샘플 및 상기 초기 크로마 샘플들을 포함하고, 상기 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하고; 그리고
    상기 비디오 데이터의 재구성된 샘플들을 생성하기 위해 상기 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  7. 제 6 항에 있어서,
    상기 초기 크로마 샘플들은 초기 Cb 샘플 및 초기 Cr 샘플을 포함하고, 그리고
    상기 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  8. 제 7 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 초기 샘플들의 세트를 변환하는 일부로서, 상기 하나 이상의 프로세서들이:
    비트 시프트 값을, 상기 초기 루마 샘플의 비트 심도에서 상기 초기 크로마 샘플들의 비트 심도를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정하고;
    제 1 파라미터 값을, 상기 비트 시프트 값만큼 1 좌측 시프트된 것으로 결정하고;
    제 2 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정하고;
    제 3 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정하고;
    루마 잔차 계수 값을, 상기 제 1 파라미터 값과 상기 제 2 파라미터 값의 합을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cb 샘플로 곱한 값을 더한 것으로서 결정하고;
    제 1 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값 사이의 차이로서 결정하는 것으로서,
    상기 제 1 중간 값은 상기 제 1 파라미터 값에서 상기 제 2 파라미터 값을 뺀 값에 상기 초기 루마 샘플로 곱한 값에서, 상기 제 1 파라미터 값에 상기 초기 Cb 샘플을 곱한 값을 뺀 값이고,
    상기 제 2 중간 값은 상기 제 3 파라미터 값을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cr 샘플로 곱한 값을 더한 값인, 상기 제 1 크로마 잔차 계수 값을 결정하고;
    제 2 크로마 잔차 계수 값을, 상기 제 1 중간 값과 상기 제 2 중간 값의 합으로서 결정하고;
    상기 수정된 루마 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 상기 루마 잔차 계수 값으로서 결정하고;
    상기 수정된 Cb 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로 결정하고; 그리고
    상기 수정된 Cr 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로 결정하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  9. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들은:
    비트스트림으로부터, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 획득하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  10. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들은:
    비트스트림에서, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 시그널링하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  11. 제 6 항에 있어서,
    상기 디바이스는:
    집적 회로;
    마이크로프로세서; 또는
    무선 핸드셋 중 적어도 하나를 포함하는, 비디오 데이터를 코딩하는 디바이스.
  12. 제 6 항에 있어서,
    디코딩된 비디오 데이터를 디스플레이하도록 구성된 디스플레이를 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  13. 제 6 항에 있어서,
    상기 비디오 데이터를 캡쳐하도록 구성되는 카메라를 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  14. 비디오 데이터를 코딩하는 디바이스로서,
    초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하는 수단으로서, 상기 초기 샘플들의 세트는 상기 초기 루마 샘플 및 상기 초기 크로마 샘플들을 포함하고, 상기 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하는 수단; 및
    상기 비디오 데이터의 재구성된 샘플들을 생성하기 위해 상기 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하는 수단을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  15. 제 14 항에 있어서,
    상기 초기 크로마 샘플들은 초기 Cb 샘플 및 초기 Cr 샘플을 포함하고, 그리고
    상기 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  16. 제 15 항에 있어서,
    상기 초기 샘플들의 세트를 변환하는 수단은:
    비트 시프트 값을, 상기 초기 루마 샘플의 비트 심도에서 상기 초기 크로마 샘플들의 비트 심도를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정하는 수단;
    제 1 파라미터 값을, 상기 비트 시프트 값만큼 1 좌측 시프트된 것으로 결정하는 수단;
    제 2 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정하는 수단;
    제 3 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정하는 수단;
    루마 잔차 계수 값을, 상기 제 1 파라미터 값과 상기 제 2 파라미터 값의 합을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cb 샘플로 곱한 값을 더한 것으로서 결정하는 수단;
    제 1 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값 사이의 차이로서 결정하는 수단으로서,
    상기 제 1 중간 값은 상기 제 1 파라미터 값에서 상기 제 2 파라미터 값을 뺀 값에 상기 초기 루마 샘플로 곱한 값에서, 상기 제 1 파라미터 값에 상기 초기 Cb 샘플을 곱한 값을 뺀 값이고,
    상기 제 2 중간 값은 상기 제 3 파라미터 값을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cr 샘플로 곱한 값을 더한 값인, 상기 제 1 크로마 잔차 계수 값을 결정하는 수단;
    제 2 크로마 잔차 계수 값을, 상기 제 1 중간 값과 상기 제 2 중간 값의 합으로서 결정하는 수단;
    상기 수정된 루마 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 상기 루마 잔차 계수 값으로서 결정하는 수단;
    상기 수정된 Cb 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로 결정하는 수단; 및
    상기 수정된 Cr 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로 결정하는 수단을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  17. 제 16 항에 있어서,
    비트스트림으로부터, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 획득하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  18. 제 16 항에 있어서,
    비트스트림에서, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 시그널링하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  19. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들이 실행될 때 비디오 데이터를 코딩하는 디바이스로 하여금,
    초기 루마 샘플의 비트 심도와 초기 크로마 샘플들의 비트 심도 사이의 차이에 기초하여, 초기 샘플들의 세트를 수정된 샘플들의 세트로 변환하게 하는 것으로서, 상기 초기 샘플들의 세트는 상기 초기 루마 샘플 및 상기 초기 크로마 샘플들을 포함하고, 상기 수정된 샘플들의 세트는 수정된 루마 샘플 및 수정된 크로마 샘플들을 포함하는, 상기 변환하게 하고; 그리고
    상기 비디오 데이터의 재구성된 샘플들을 생성하기 위해 상기 수정된 샘플들을 예측 블록의 대응하는 샘플들에 추가하게 하는, 컴퓨터 판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 초기 크로마 샘플들은 초기 Cb 샘플 및 초기 Cr 샘플을 포함하고, 그리고
    상기 수정된 크로마 샘플들은 수정된 Cb 샘플 및 수정된 Cr 샘플을 포함하는, 컴퓨터 판독가능 저장 매체.
  21. 제 20 항에 있어서,
    상기 디바이스로 하여금 상기 초기 샘플들의 세트를 변환하게 하는 일부로서,
    상기 명령들은 디바이스로 하여금,
    비트 시프트 값을, 상기 초기 루마 샘플의 비트 심도에서 상기 초기 크로마 샘플들의 비트 심도를 뺀 값과 0 중 최대값에 3을 더한 값으로서 결정하게 하고;
    제 1 파라미터 값을, 상기 비트 시프트 값만큼 1 좌측 시프트된 것으로 결정하게 하고;
    제 2 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터로서 결정하게 하고;
    제 3 파라미터 값을, 상기 초기 크로마 샘플들의 비트 심도에서 상기 초기 루마 샘플의 비트 심도를 뺀 값과 0 중 최대값만큼 좌측 시프트된 초기 Cr 샘플에 대한 교차 성분 예측 파라미터로서 결정하게 하고;
    루마 잔차 계수 값을, 상기 제 1 파라미터 값과 상기 제 2 파라미터 값의 합을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cb 샘플로 곱한 값을 더한 것으로서 결정하게 하고;
    제 1 크로마 잔차 계수 값을, 제 1 중간 값과 제 2 중간 값 사이의 차이로서 결정하게 하는 것으로서,
    상기 제 1 중간 값은 상기 제 1 파라미터 값에서 상기 제 2 파라미터 값을 뺀 값에 상기 초기 루마 샘플로 곱한 값에서, 상기 제 1 파라미터 값에 상기 초기 Cb 샘플을 곱한 값을 뺀 값이고,
    상기 제 2 중간 값은 상기 제 3 파라미터 값을 상기 초기 루마 샘플로 곱한 값에, 상기 제 1 파라미터 값을 상기 초기 Cr 샘플로 곱한 값을 더한 값인, 상기 제 1 크로마 잔차 계수 값을 결정하게 하고;
    제 2 크로마 잔차 계수 값을, 상기 제 1 중간 값과 상기 제 2 중간 값의 합으로서 결정하게 하고;
    상기 수정된 루마 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 상기 루마 잔차 계수 값으로서 결정하게 하고;
    상기 수정된 Cb 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 1 크로마 계수 값으로 결정하게 하고; 그리고
    상기 수정된 Cr 샘플을, 상기 비트 시프트 값만큼 우측 시프트된 제 2 크로마 계수 값으로 결정하게 하는, 컴퓨터 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 명령들은 상기 디바이스로 하여금:
    비트스트림으로부터, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 획득하게 하는, 컴퓨터 판독가능 저장 매체.
  23. 제 21 항에 있어서,
    상기 명령들은 상기 디바이스로 하여금:
    비트스트림에서, 상기 초기 Cb 샘플에 대한 교차 성분 예측 파라미터 및 상기 초기 Cr 샘플에 대한 교차 성분 예측 파라미터를 나타내는 신택스 엘리먼트들을 시그널링하게 하는, 컴퓨터 판독가능 저장 매체.
KR1020177009463A 2014-10-10 2015-10-01 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화 KR101918873B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462062728P 2014-10-10 2014-10-10
US62/062,728 2014-10-10
US14/871,235 US9838662B2 (en) 2014-10-10 2015-09-30 Harmonization of cross-component prediction and adaptive color transform in video coding
US14/871,235 2015-09-30
PCT/US2015/053534 WO2016057309A1 (en) 2014-10-10 2015-10-01 Harmonization of cross-component prediction and adaptive color transform in video coding

Publications (2)

Publication Number Publication Date
KR20170057312A true KR20170057312A (ko) 2017-05-24
KR101918873B1 KR101918873B1 (ko) 2018-11-14

Family

ID=54293409

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009463A KR101918873B1 (ko) 2014-10-10 2015-10-01 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화

Country Status (6)

Country Link
US (1) US9838662B2 (ko)
EP (1) EP3205101B1 (ko)
JP (1) JP6396588B2 (ko)
KR (1) KR101918873B1 (ko)
CN (1) CN106717004B (ko)
WO (1) WO2016057309A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020185022A1 (ko) * 2019-03-12 2020-09-17 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2021101317A1 (ko) * 2019-11-22 2021-05-27 엘지전자 주식회사 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2531004A (en) * 2014-10-06 2016-04-13 Canon Kk Residual colour transform signalled at sequence level for specific coding modes
CN106210525A (zh) * 2016-07-29 2016-12-07 乐视控股(北京)有限公司 用于实现视频直播的相机及方法
US10368107B2 (en) 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
CN117579826A (zh) * 2018-01-09 2024-02-20 夏普株式会社 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
GB2571313B (en) * 2018-02-23 2022-09-21 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
CN117376587A (zh) 2018-09-07 2024-01-09 华为技术有限公司 用于视频译码中帧内预测和帧间预测的插值滤波方法和装置
EP3861739A4 (en) * 2018-11-06 2022-04-06 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFIED PARAMETER DERIVATION FOR INTRAPREDICTION
CN113170122B (zh) 2018-12-01 2023-06-27 北京字节跳动网络技术有限公司 帧内预测的参数推导
CN116781915A (zh) * 2018-12-13 2023-09-19 华为技术有限公司 色度块的预测方法和装置
SG11202107959WA (en) 2019-02-02 2021-08-30 Beijing Bytedance Network Technology Co Ltd Buffer management for intra block copy in video coding
WO2020156546A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using extra-buffer samples for intra block copy in video coding
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
KR20210104891A (ko) 2019-03-12 2021-08-25 텐센트 아메리카 엘엘씨 Vvc에서의 컬러 변환을 위한 방법 및 장치
CN113196765A (zh) * 2019-03-25 2021-07-30 Oppo广东移动通信有限公司 图像预测方法、编码器、解码器以及存储介质
CN112118451B (zh) * 2019-06-20 2022-09-27 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
MX2022000102A (es) 2019-07-06 2022-02-03 Beijing Bytedance Network Tech Co Ltd Bufer de prediccion virtual para la copia intra-bloque en codificacion de video.
AU2020312053B2 (en) 2019-07-10 2023-09-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
CN114430901A (zh) 2019-09-20 2022-05-03 北京字节跳动网络技术有限公司 带有色度缩放的亮度映射
JP2021061501A (ja) * 2019-10-04 2021-04-15 シャープ株式会社 動画像変換装置及び方法
WO2021086022A1 (ko) * 2019-10-28 2021-05-06 엘지전자 주식회사 적응적 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN115066897A (zh) * 2019-11-14 2022-09-16 抖音视界有限公司 低位深度视觉媒体数据的编解码
CN111246220B (zh) * 2020-01-20 2021-10-15 中南大学 一种基于vvc帧内编码的深度预测方法、设备及存储介质
CN111586417B (zh) * 2020-04-26 2022-06-17 中南大学 一种基于多视频编码标准的vvc转码系统及方法
CN115665409A (zh) * 2020-06-03 2023-01-31 北京达佳互联信息技术有限公司 对视频数据进行编码的方法和设备
KR20220037382A (ko) 2020-09-17 2022-03-24 레몬 인크. 디코더 구성 레코드에서의 픽처 치수 표시
US20220103842A1 (en) * 2020-09-30 2022-03-31 Qualcomm Incorporated Fixed bit depth processing for cross-component linear model (cclm) mode in video coding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8036274B2 (en) * 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
CN101796841B (zh) * 2007-06-27 2012-07-18 汤姆逊许可公司 用增强层残差预测对视频数据编码/解码的方法和设备
US9948938B2 (en) * 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
CN103501437B (zh) * 2013-09-29 2016-06-22 北京航空航天大学 一种基于分形和h.264的高光谱图像压缩方法
KR102051193B1 (ko) * 2014-09-12 2019-12-02 브이아이디 스케일, 인크. 비디오 코딩을 위한 성분간 탈상관

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020185022A1 (ko) * 2019-03-12 2020-09-17 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11418811B2 (en) 2019-03-12 2022-08-16 Apple Inc. Method for encoding/decoding image signal, and device therefor
WO2021101317A1 (ko) * 2019-11-22 2021-05-27 엘지전자 주식회사 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11575919B2 (en) 2019-11-22 2023-02-07 Lg Electronics Inc. Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream

Also Published As

Publication number Publication date
WO2016057309A1 (en) 2016-04-14
JP2017535178A (ja) 2017-11-24
KR101918873B1 (ko) 2018-11-14
US20160105657A1 (en) 2016-04-14
EP3205101A1 (en) 2017-08-16
JP6396588B2 (ja) 2018-09-26
US9838662B2 (en) 2017-12-05
CN106717004A (zh) 2017-05-24
CN106717004B (zh) 2019-05-10
EP3205101B1 (en) 2019-11-20

Similar Documents

Publication Publication Date Title
KR101918873B1 (ko) 비디오 코딩에서 교차 구성 예측과 적응형 컬러 변환의 조화
US10477240B2 (en) Linear model prediction mode with sample accessing for video coding
US10097842B2 (en) Restriction of escape pixel signaled values in palette mode video coding
US10455249B2 (en) Downsampling process for linear model prediction mode
KR102060868B1 (ko) 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑
KR101977450B1 (ko) 팔레트 코딩 모드에서의 비디오 블록의 이스케이프 픽셀들의 양자화
JP6541682B2 (ja) ビデオコーディングのためのランレングスコードを用いるパレット予測子シグナリング
KR102142181B1 (ko) 비디오 코딩에서의 팔레트 블록 사이즈에 대한 제한
KR102210792B1 (ko) 잔차 차동 펄스 코드 변조 (dpcm) 확장들 및 변환 스킵, 회전 및 스캔들과의 조화
US10158866B2 (en) Parsing dependency reduction for palette index coding
US10097837B2 (en) Palette run hiding in palette-based video coding
KR20170097655A (ko) 서브샘플링 포맷을 위한 팔레트 모드
JP2016526334A (ja) 色成分の間のサンプル予測を使用したビデオコード化

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant