KR20160096181A - 멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3d 룩업 테이블에 대한 컬러 값들의 시그널링 - Google Patents

멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3d 룩업 테이블에 대한 컬러 값들의 시그널링 Download PDF

Info

Publication number
KR20160096181A
KR20160096181A KR1020167018519A KR20167018519A KR20160096181A KR 20160096181 A KR20160096181 A KR 20160096181A KR 1020167018519 A KR1020167018519 A KR 1020167018519A KR 20167018519 A KR20167018519 A KR 20167018519A KR 20160096181 A KR20160096181 A KR 20160096181A
Authority
KR
South Korea
Prior art keywords
color
video
color mapping
video data
mapping coefficients
Prior art date
Application number
KR1020167018519A
Other languages
English (en)
Other versions
KR102282811B1 (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 KR20160096181A publication Critical patent/KR20160096181A/ko
Application granted granted Critical
Publication of KR102282811B1 publication Critical patent/KR102282811B1/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • G06T7/408
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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/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/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
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

멀티-계층 비디오 코딩에서 색역 스케일러빌러티를 위한 3 차원 (3D) 컬러 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링하기 위한 기법들이 설명된다. 비디오 데이터의 하위 계층은 제 1 색역에서의 컬러 데이터를 포함할 수도 있고, 비디오 데이터의 상위 계층은 제 2 색역에서의 컬러 데이터를 포함할 수도 있다. 인터-계층 참조 픽처들을 생성하기 위하여, 비디오 인코더 또는 비디오 디코더는 제 1 색역에서의 참조 픽처의 컬러 데이터를 제 2 색역으로 변환하기 위하여 3D 룩업 테이블을 이용하여 컬러 예측을 수행한다. 기법들에 따르면, 비디오 인코더는 색역 스케일러빌러티를 위해 생성된 3D 룩업 테이블의 파티션 정보 및/또는 컬러 값들을 인코딩할 수도 있다. 비디오 디코더는 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 생성하기 위한 파티션 정보 및/또는 컬러 값들을 디코딩할 수도 있다.

Description

멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3D 룩업 테이블에 대한 컬러 값들의 시그널링{SIGNALING COLOR VALUES FOR 3D LOOKUP TABLE FOR COLOR GAMUT SCALABILITY IN MULTI-LAYER VIDEO CODING}
관련된 출원들
이 출원은 2013 년 12 월 17 일자로 출원된 미국 가출원 제 61/917,228 호 및 2014 년 5 월 30 일자로 출원된 미국 가출원 제 62/005,845 호의 우선권을 주장하고, 그 각각의 내용들은 그 전체적으로 참조로 본원에 편입된다.
이 개시물은 비디오 코딩에 관한 것이다.
디지털 비디오 기능들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 정보 단말 (personal digital assistant; PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 소위 "스마트폰들", 화상 원격회의 디바이스들, 비디오 스트리밍 디바이스들 및 기타 등등을 포함하는 광범위한 디바이스들 내에 편입될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 진보된 비디오 코딩 (Advanced Video Coding; AVC) 에 의해 정의된 표준들, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신하고, 수신하고, 인코딩하고, 디코딩하고, 및/또는 저장할 수도 있다.
비디오 코딩 기법들은 비디오 시퀀스들에 내재된 중복성을 감소시키거나 제거하기 위한 공간적 (인트라-픽처 (intra-picture)) 예측 및/또는 시간적 (인터-픽처 (inter-picture)) 예측을 포함한다. 블록-기반 비디오 코딩을 위하여, 비디오 슬라이스 (예컨대, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝 (partitioning) 될 수도 있으며, 이 비디오 블록들은 또한, 트리블록 (treeblock) 들, 코딩 유닛 (coding unit; CU) 들 및/또는 코딩 노드들로서 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스 내의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩되어야 할 블록에 대한 예측 블록을 낳는다. 잔차 데이터 (residual data) 는 코딩되어야 할 원래의 블록 및 예측 블록 사이의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터와, 코딩된 블록과 예측 블록과의 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위하여, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어 잔차 변환 계수들을 낳을 수도 있고, 그 후 이들은 양자화될 수도 있다. 초기에 2 차원 어레이로 배치된 양자화된 변환 계수들은 변환 계수들의 1 차원 벡터를 생성하기 위해 스캔될 수도 있고, 엔트로피 코딩은 훨씬 더 많은 압축을 달성하기 위해 적용될 수도 있다.
일반적으로, 이 개시물은 멀티-계층 비디오 코딩에서 색역 스케일러빌러티 (color gamut scalability) 를 위한 3 차원 (3D) 컬러 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링하기 위한 기법들을 설명한다. 색역 스케일러빌러티를 위한 컬러 예측 기법들은 비디오 데이터의 하위 계층 (lower layer) 에 대한 색역 (color gamut) 이 비디오 데이터의 상위 계층 (higher layer) 에 대한 색역과는 상이할 때에 인터-계층 참조 픽처들을 생성하기 위하여 비디오 인코더들 및/또는 비디오 디코더들에 의해 이용될 수도 있다. 예를 들어, 비디오 인코더 및/또는 비디오 디코더는 먼저, 하위 계층에 대한 참조 픽처의 컬러 데이터를 상위 계층에 대한 색역으로 변환하기 위하여 색역 스케일러빌러티를 위한 3D 룩업 테이블을 이용하여 컬러 예측을 수행할 수도 있고, 그 다음으로, 변환된 컬러 데이터에 기초하여 인터-계층 참조 픽처들을 생성할 수도 있다. 이 개시물에서 설명된 기법들에 따르면, 비디오 인코더는 색역 스케일러빌러티를 위해 생성된 3D 룩업 테이블의 파티션 정보 및/또는 컬러 값들을 인코딩할 수도 있다. 비디오 디코더는 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 생성하기 위한 파티션 정보 및/또는 컬러 값들을 디코딩할 수도 있다.
하나의 예에서, 이 개시물은 비디오 데이터를 디코딩하는 방법에 관한 것이고, 상기 방법은, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블에 대한 기본 파티션 값을 결정하는 단계; 3D 룩업 테이블의 루마 컴포넌트 (luma component) 에 대한 루마 파티션 값을 결정하는 단계; 및 크로마 컴포넌트들에 대한 더욱 조대한 (coarser) 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 (finer) 파티셔닝을 갖는 3D 룩업 테이블을 생성하는 단계로서, 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트 (chroma component), 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트 (octant) 들로 파티셔닝하는 것과, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하는 것을 포함하는, 상기 3D 룩업 테이블을 생성하는 단계를 포함한다. 방법은 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하는 단계; 및 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하는 단계를 더 포함한다.
또 다른 예에서, 이 개시물은 비디오 데이터를 인코딩하는 방법에 관한 것이고, 상기 방법은, 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블을 생성하는 단계로서, 3D 룩업 테이블에 대한 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트들로 파티셔닝하는 것과, 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하는 것을 포함하는, 상기 3 차원 (3D) 룩업 테이블을 생성하는 단계를 포함한다. 방법은 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 비디오 데이터의 비디오 블록들을 예측하는 단계; 및 비트스트림에서의 비디오 블록들의 잔차 데이터를 인코딩하는 단계를 더 포함한다.
추가의 예에서, 이 개시물은 비디오 데이터를 저장하도록 구성된 메모리; 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스에 관한 것이다. 하나 이상의 프로세서들은 비디오 데이터의 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블에 대한 기본 파티션 값을 결정하고, 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 결정하고, 그리고 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성하도록 구성되고, 하나 이상의 프로세서들은 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트들로 파티셔닝하고, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하도록 구성된다. 하나 이상의 프로세서들은 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하고, 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하도록 추가로 구성된다.
또 다른 예에서, 이 개시물은 비디오 데이터를 저장하도록 구성된 메모리; 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스에 관한 것이다. 하나 이상의 프로세서들은 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 비디오 데이터의 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블을 생성하도록 구성되고, 하나 이상의 프로세서들은 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트들로 파티셔닝하고, 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하도록 구성된다. 하나 이상의 프로세서들은 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 비디오 데이터의 비디오 블록들을 예측하고, 비트스트림에서의 비디오 블록들의 잔차 데이터를 인코딩하도록 추가로 구성된다.
추가적인 예에서, 이 개시물은 비디오 디코딩 디바이스에 관한 것이고, 상기 비디오 디코딩 디바이스는, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블에 대한 기본 파티션 값을 결정하기 위한 수단; 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 결정하기 위한 수단; 및 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트들로 파티셔닝하기 위한 수단과, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하기 위한 수단을 포함하는, 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성하기 위한 수단을 포함한다. 비디오 디코딩 디바이스는 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하기 위한 수단; 및 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하기 위한 수단을 더 포함한다.
추가의 예에서, 이 개시물은 비디오 데이터를 디코딩하기 위한 명령들을 저장하는 컴퓨터-판독가능 저장 매체에 관한 것이고, 상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블에 대한 기본 파티션 값을 결정하게 하고; 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 결정하게 하고; 그리고 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성하게 하고, 명령들은 하나 이상의 프로세서들로 하여금, 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각을 제 1 수의 옥탄트들로 파티셔닝하게 하고, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 파티셔닝하게 한다. 명령들은 하나 이상의 프로세서들로 하여금, 추가로, 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하게 하고, 그리고 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하게 한다.
또 다른 예에서, 이 개시물은 비디오 데이터를 디코딩하는 방법에 관한 것이고, 상기 방법은, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블의 3 개의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하는 단계; 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수 (linear color mapping function) 에 대한 컬러 맵핑 계수들을 디코딩하는 단계; 및 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여, 3D 룩업 테이블을 생성하는 단계를 포함한다. 방법은 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하는 단계; 및 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하는 단계를 더 포함한다.
추가의 예에서, 이 개시물은 비디오 데이터를 인코딩하는 방법에 관한 것이고, 상기 방법은, 3 개의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블을 생성하는 단계; 및 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩하는 단계를 포함한다. 방법은 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 비디오 데이터의 비디오 블록들을 예측하는 단계; 및 비트스트림에서의 비디오 블록들의 잔차 데이터를 인코딩하는 단계를 더 포함한다.
추가적인 예에서, 이 개시물은 비디오 데이터를 저장하도록 구성된 메모리; 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스에 관한 것이다. 하나 이상의 프로세서들은 비디오 데이터의 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블의 3 개의 컬러 컴포넌트들의 각각에 대해 옥탄트들의 수를 결정하고, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하고, 그리고 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여, 3D 룩업 테이블을 생성하도록 구성된다. 하나 이상의 프로세서들은 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하고, 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하도록 추가로 구성된다.
추가의 예에서, 이 개시물은 비디오 데이터를 저장하도록 구성된 메모리; 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스에 관한 것이다. 하나 이상의 프로세서들은 3 개의 컬러 컴포넌트들의 각각에 대해 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여, 비디오 데이터의 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블을 생성하고; 그리고 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩하도록 구성된다. 하나 이상의 프로세서들은 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 비디오 데이터의 비디오 블록들을 예측하고, 비트스트림에서의 비디오 블록들의 잔차 데이터를 인코딩하도록 추가로 구성된다.
또 다른 예에서, 이 개시물은 비디오 디코딩 디바이스에 관한 것이고, 상기 비디오 디코딩 디바이스는, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블의 3 개의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하기 위한 수단; 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하기 위한 수단; 및 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여, 3D 룩업 테이블을 생성하기 위한 수단을 포함한다. 비디오 디코딩 디바이스는 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하기 위한 수단; 및 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하기 위한 수단을 더 포함한다.
추가적인 예에서, 이 개시물은 비디오 데이터를 디코딩하기 위한 명령들을 저장하는 컴퓨터-판독가능 저장 매체에 관한 것이고, 상기 명령들은, 하나 이상의 프로세서들로 하여금, 색역 스케일러빌러티를 위한 3 차원 (3D) 룩업 테이블의 3 개의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하게 하고; 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하게 하고; 그리고 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여, 3D 룩업 테이블을 생성하게 한다. 명령들은 하나 이상의 프로세서들로 하여금, 추가로, 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하게 하고, 그리고 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여, 비디오 데이터의 비디오 블록들을 재구성하게 한다.
하나 이상의 예들의 세부사항들은 첨부한 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 장점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백할 것이다.
도 1 은 3D 룩업 테이블 기반 색역 스케일러빌러티를 위한 기법들을 사용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 3 개의 상이한 차원들에서의 스케일러빌러티의 예를 도시하는 개념적인 예시도이다.
도 3 은 스케일러블 비디오 코딩 비트스트림의 일 예의 구조를 도시하는 개념적인 예시도이다.
도 4 는 비트스트림 순서에서 일 예의 스케일러블 비디오 코딩 액세스 유닛들을 도시하는 개념적인 예시도이다.
도 5 는 HEVC 에 대한 일 예의 스케일러블 비디오 코딩 (SHVC) 인코더를 예시하는 블록도이다.
도 6 은 샘플 비디오 시퀀스의 일 예의 색역을 예시하는 그래프이다.
도 7 은 고해상도 (high definition; HD) 색역 BT.709 로부터 초고해상도 (ultra-high definition; UHD) 색역 BT.2020 으로의 변환을 예시하는 블록도이다.
도 8 은 기본 계층 색역 및 강화 계층 색역이 상이할 때에 인터-계층 참조 픽처를 생성할 수도 있는 컬러 예측 프로세싱 유닛을 포함하는 색역 스케일러블 코더를 예시하는 블록도이다.
도 9 (a) 및 도 9 (b) 는 색역 스케일러빌러티를 위한 일 예의 3D 룩업 테이블을 도시하는 개념적인 예시도이다.
도 10 은 색역 스케일러빌러티를 위한 3D 룩업 테이블에 의한 3-선형 보간 (tri-linear interpolation) 을 도시하는 개념적인 예시도이다.
도 11 은 색역 스케일러빌러티를 위한 3D 룩업 테이블에 의한 4면체 보간 (tetrahedral interpolation) 을 도시하는 개념적인 예시도이다.
도 12 는 4면체 보간을 이용하여 보간되어야 할 3D 룩업 테이블의 포인트 P 를 둘러싸기 위하여 이용된 4면체들의 6 개의 예들을 도시하는 개념적인 예시도이다.
도 13 은 독립적으로 파티셔닝된 루마 컴포넌트 및 공동으로 파티셔닝된 크로마 컴포넌트들을 갖는 일 예의 3D 룩업 테이블을 도시하는 개념적인 예시도이다.
도 14 는 멀티-계층 비디오 코딩에서 3D 룩업 테이블 기반 색역 스케일러빌러티를 이용하기 위한 기법들을 구현할 수도 있는 비디오 인코더의 예를 예시하는 블록도이다.
도 15 는 멀티-계층 비디오 코딩에서 3D 룩업 테이블 기반 색역 스케일러빌러티를 이용하기 위한 기법들을 구현할 수도 있는 비디오 디코더의 예를 예시하는 블록도이다.
도 16 은 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 파티션 정보를 인코딩하는 일 예의 동작을 예시하는 플로우차트이다.
도 17 은 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 파티션 정보를 디코딩하는 일 예의 동작을 예시하는 플로우차트이다.
도 18 은 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 인코딩하는 일 예의 동작을 예시하는 플로우차트이다.
도 19 는 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 디코딩하는 일 예의 동작을 예시하는 플로우차트이다.
이 개시물은 멀티-계층 비디오 코딩에서 색역 스케일러빌러티에 대한 3 차원 (3D) 컬러 예측을 위한 기법들을 설명한다. 멀티-계층 비디오 코딩은 스케일러블 비디오 코딩 확장, 멀티뷰 비디오 코딩 확장, 3D 비디오 코딩 (즉, 멀티뷰 비디오 코딩 플러스 심도) 확장, 또는 HEVC 에 대한 다른 멀티-계층 비디오 코딩 확장들 중의 임의의 것을 포함하는 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준에 따를 수도 있다. 기법들은 비디오 데이터의 하위 계층에 대한 색역이 비디오 데이터의 상위 계층에 대한 색역과는 상이할 때에 인터-계층 참조 픽처들을 생성하기 위하여 비디오 인코더들 및/또는 비디오 디코더들에 의해 이용될 수도 있다. 일부의 예들에서, 기법들은 또한, 비디오 데이터의 하위 계층의 비트 심도 (bit depth) 가 비디오 데이터의 상위 계층에 대한 비트 심도와는 상이할 때에 이용될 수도 있다.
색역은 예컨대, 비디오 데이터의 픽처, 슬라이스, 블록, 또는 계층에서 이미지에 대해 재현될 수 있는 컬러들의 완전한 범위를 포함한다. 기존에는, 멀티-계층 비디오 코딩에서, 비디오 데이터의 하위 계층 (예컨대, 기본 계층) 및 비디오 데이터의 상위 계층 (예컨대, 강화 계층) 은 동일한 색역, 예컨대, 고해상도 (HD) 색역 BT.709 에서의 컬러 데이터를 포함한다. 이 경우, 비디오 인코더 및/또는 비디오 디코더는 비디오 데이터의 상위 계층에 대한 인터-계층 참조 픽처들을, 비디오 데이터의 하위 계층에 대한 함께 위치된 참조 픽처들의 업-샘플링된 (up-sampled) 버전들로서 생성할 수도 있다.
그러나, 일부의 예들에서, 비디오 데이터의 하위 계층은 제 1 색역, 예컨대, BT.709 에서의 컬러 데이터를 포함할 수도 있고, 비디오 데이터의 상위 계층은 상이한 제 2 색역, 예컨대, 초고해상도 (UHD) 색역 BT.2020 에서의 컬러 데이터를 포함할 수도 있다. 이 예에서, 비디오 데이터의 상위 계층에 대한 인터-계층 참조 픽처들을 생성하기 위하여, 비디오 인코더 및/또는 비디오 디코더는 먼저, 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 참조 픽처의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 컬러 예측을 수행해야 한다.
비디오 인코더 및/또는 비디오 디코더는 색역 스케일러빌러티를 위한 3D 룩업 테이블을 이용하여 컬러 예측을 수행할 수도 있다. 일부의 예들에서, 별도의 3D 룩업 테이블은 컬러 컴포넌트들, 즉, 루마 (Y) 컴포넌트, 제 1 크로마 (U) 컴포넌트, 및 제 2 크로마 (V) 컴포넌트의 각각에 대해 생성될 수도 있다. 3D 룩업 테이블들의 각각은 루마 (Y) 차원, 제 1 크로마 (U) 차원, 및 제 2 크로마 (V) 차원을 포함하고, 3 개의 독립적인 컬러 컴포넌트들 (Y, U, V) 을 이용하여 인덱싱된다.
기존에는, 3D 룩업 테이블들은, 3D 룩업 테이블들이 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트에 대해 동일한 크기 (size) 를 가지도록 항상 대칭적이다. 게다가, 기존에는, 3D 룩업 테이블들은, 3D 룩업 테이블들의 각각의 차원의 크기가 항상 동일하도록 항상 균형잡혀져 있다. 이것은 높은 연산 복잡도 및 높은 시그널링 비용들을 갖는 큰 테이블 크기들을 낳을 수도 있다. 예를 들어, 테이블 크기들은 9x9x9 또는 17x17x17 까지일 수도 있다.
2014 년 10 월 10 일자로 출원된 미국 특허 출원 제 14/512,177 호 (대리인 관리번호 제 1212-712US01/140193 호) 에서는, 3D 룩업 테이블이 루마 컴포넌트에 대하여, 제 1 크로마 컴포넌트 및 제 2 크로마 컴포넌트에 대한 것과는 상이한 크기를 가지도록, 비디오 인코더 및/또는 비디오 디코더가 비대칭적 및/또는 불균형한 3D 룩업 테이블을 생성하는 것을 가능하게 하는 기법들이 설명되어 있다. 비디오 인코더 및/또는 비디오 디코더는 루마 컴포넌트를 제 1 및 제 2 크로마 컴포넌트들과는 상이한 수의 세그먼트들로 파티셔닝함으로써 이 비대칭적 및/또는 불균형한 3D 룩업 테이블을 생성할 수도 있다. 이 예에서, 테이블 크기들은 8x2x2 까지일 수도 있다.
이 개시물의 기법들은 색역 스케일러빌러티를 위한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보의 시그널링에 관한 것이다. 기법들에 따르면, 비디오 인코더는 색역 스케일러빌러티를 위해 생성된 3D 룩업 테이블의 파티션 정보 및/또는 컬러 값들을 인코딩할 수도 있다. 비디오 디코더는 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 생성하기 위한 파티션 정보 및/또는 컬러 값들을 디코딩할 수도 있다. 이 개시물에서 설명된 기법들은 비대칭적 및/또는 불균형한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링함에 있어서 특히 유용할 수도 있다.
개시된 기법들의 하나의 예에서, 비디오 디코더 및/또는 비디오 인코더는 컬러 컴포넌트들의 각각을 기본 파티션 값, 예컨대, 3D 룩업 테이블에 대한 최대 분할된 심도에 따라 다수의 옥탄트들로 파티셔닝함으로써, 그리고 그 다음으로, 루마 파티션 값에 기초하여 루마 컴포넌트의 옥탄트들의 각각을 추가로 파티셔닝함으로써, 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝 및 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성할 수도 있다. 이러한 방법으로, 3D 룩업 테이블의 크로마 컴포넌트들은 더 작은 수 또는 더 적은 옥탄트들로 파티셔닝되고 (즉, 더욱 개략적으로 파티셔닝됨), 3D 룩업 테이블의 루마 컴포넌트는 더 큰 수 또는 더 많은 옥탄트들로 파티셔닝된다 (즉, 더욱 미세하게 파티셔닝됨).
하나의 예에서, 루마 파티션 값은 비디오 인코더에 의해 비디오 디코더로 비트스트림에서 시그널링될 수도 있다. 다른 예들에서, 기본 파티션 값은 또한, 비디오 인코더에 의해 비디오 디코더로 비트스트림에서 시그널링될 수도 있다. 다른 경우들에는, 루마 파티션 값은 비디오 인코더 및 비디오 디코더의 양자에 의해 유도될 수도 있고, 및/또는 기본 파티션 값은 비디오 인코더 및 비디오 디코더의 양자에서 알려진 미리 정의된 값일 수도 있다.
예로서, 기본 파티션 값은 제 1 크로마, 제 2 크로마, 및 루마 컬러 컴포넌트들의 각각이 단일 옥탄트로 파티셔닝되도록 1 과 동일하고, 루마 파티션 값은 루마 컴포넌트의 단일 옥탄트가 4 개의 옥탄트들로 파티셔닝되도록 4 와 동일하고, 이것은 크기 4x1x1 의 3D 룩업 테이블을 낳는다. 또 다른 예로서, 기본 파티션 값은 제 1 크로마, 제 2 크로마, 및 루마 컬러 컴포넌트들의 각각이 2 개의 옥탄트들로 파티셔닝되도록 2 와 동일하고, 루마 파티션 값은 루마 컴포넌트의 2 개의 옥탄트들의 각각이 4 개의 옥탄트들로 파티셔닝되도록 4 와 동일하고, 이것은 크기 8x2x2 의 3D 룩업 테이블을 낳는다. 알 수 있는 바와 같이, 더 낮은 파티션 값은 컬러 컴포넌트에 대한 더욱 조대한 파티셔닝 (즉, 더 작은 수의 옥탄트들) 을 낳는다.
기법들에 따르면, 컬러 컴포넌트들의 각각은 기본 파티션 값 또는 루마 파티션 값 중의 하나 이상에 기초하여 하나 이상의 옥탄트들로 파티셔닝될 수도 있다. 이 개시물에서, 용어 "옥탄트" 는 8 개의 정점 (vertex) 들을 포함하는 3 차원 영역으로서 정의된다. 이 개시물에서, 용어들 "파티션", "옥탄트", "세그먼트", 및 "큐보이드 (cuboid)" 는 3D 룩업 테이블의 컬러 컴포넌트들의 파티셔닝된 영역들을 설명하기 위하여 상호 교환가능하게 이용될 수도 있다.
게다가, 1 초과의 옥탄트, 즉, 1 보다 더 큰 기본 파티션 값으로 파티셔닝되는 3D 룩업 테이블의 제 1 또는 제 2 크로마 컴포넌트들 중의 적어도 하나에 기초하여, 비디오 인코더는 크로마 컴포넌트들 중의 하나에 대한 파티셔닝 경계를 비디오 디코더로 시그널링할 수도 있다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 (uneven) 파티셔닝을 정의한다. 다시 말해서, 크로마 컴포넌트들 중의 하나 또는 양자는 2 개 이상의 불균등한 또는 동일한 크기의 옥탄트들로 파티셔닝되지 않을 수도 있다. 이 경우, 크로마 컴포넌트들의 소정의 하나에 대하여, 옥탄트들 중의 적어도 하나는 하나 이상의 다른 옥탄트들과는 상이한 크기를 가진다. 이 개시물의 기법들에 따르면, 비디오 인코더는 크로마 컴포넌트들 중의 하나가 1 초과의 옥탄트로 파티셔닝된다는 조건에 기초하여 파티셔닝 경계를 시그널링하기만 한다. 이와 다를 경우, 파티션 경계는 불필요하고, 비디오 디코더로 시그널링되지 않는다.
개시된 기법들의 또 다른 예에서, 비디오 인코더 및/또는 비디오 디코더는 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다. 위에서 설명된 바와 같이, 일부의 경우들에는, 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수는 또한, 비디오 인코더에 의해 비디오 디코더로 시그널링될 수도 있다. 비디오 디코더가 3D 룩업 테이블에서 컬러 값들을 결정하기 위하여, 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들은 비디오 인코더에 의해 비디오 디코더로 시그널링된다. 선형 컬러 맵핑 함수는 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용되고, 컬러 맵핑 계수들은 비디오 데이터의 하위 및 상위 계층들의 컬러 컴포넌트들 사이의 가중화 인자들이다. 컬러 컴포넌트들의 각각에 대하여, 컬러 맵핑 계수들 중의 하나는 비디오 데이터의 하위 및 상위 계층들의 동일한 컬러 컴포넌트 사이의 가중화 인자를 정의하는 핵심 계수일 수도 있다.
선형 컬러 맵핑 함수의 컬러 맵핑 계수들은 부동 소수점 (floating point) 값들로서 유도된다. 컬러 맵핑 계수들을 비트스트림에서 시그널링하기 전에, 부동 소수점 값들은 정수 (integer) 값들로 변환될 수도 있다. 정수 값들이 부동 소수점 값들보다 덜 정확할 수도 있지만, 정수 값들은 시그널링하기가 더 용이하고, 정수 연산들은 부동 소수점 연산들보다 연산적으로 덜 고비용이다. 변환은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 기초하여 정수 값들에 대한 비트-심도를 이용할 수도 있다. 게다가, 컬러 맵핑 계수들의 값들은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초하여 소정의 범위 내에 있도록 한정될 수도 있다.
컬러 맵핑 계수들 중의 하나 이상은, 컬러 맵핑 계수들의 원래의 값들과, 컬러 맵핑 계수들의 예측된 값과의 사이의 잔차 값들이 비트스트림에서 인코딩되도록 예측될 수도 있다. 예를 들어, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 선형 컬러 맵핑 함수의 컬러 맵핑 계수들은 미리 정의된 고정된 값들에 기초하여 예측될 수도 있다. 하나의 예에서, 선형 컬러 맵핑 함수의 핵심 계수는 미리 정의된 비-제로 (non-zero) 값과 동일한 예측된 값에 기초하여 예측될 수도 있고, 임의의 나머지 컬러 맵핑 계수들은 제로와 동일한 예측된 값에 기초하여 예측될 수도 있다. 이 예에서, 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들은 제 1 옥탄트와 같은 적어도 하나의 이전의 옥탄트로부터의 예측된 값들에 기초하여 예측될 수도 있다. 일부의 경우들에는, 컬러 맵핑 계수들의 잔차 값들이 결정된 양자화 값에 기초하여 양자화될 수도 있다. 비디오 인코더는 비디오 디코더가 컬러 맵핑 계수들을 적당하게 디코딩하기 위하여 역양자화를 수행하기 위한 결정된 양자화 값을 시그널링할 수도 있다.
비디오 코딩 표준들은 그 스케일러블 비디오 코딩 (SVC) 및 멀티-뷰 비디오 코딩 (MVC) 확장들을 포함하는, ITU-T H.261, ISO/IEC MPEG-1 비주얼 (Visual), ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 를 포함한다.
새로운 비디오 코딩 표준, 즉, HEVC 의 설계는 ITU-T 비디오 코딩 전문가 그룹 (Video Coding Experts Group; VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (Motion Picture Experts Group; MPEG) 의 비디오 코딩에 관한 공동 협력 팀 (Joint Collaboration Team on Video Coding; JCT-VC) 에 의해 완결되었다. HEVC 작업 초안 10 (WD10) 으로서 지칭된, Bross 등, "High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call) {(FDIS & 최후 호출에 대한) 고효율 비디오 코딩 (HEVC) 텍스트 초안 10}", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 공동 협력 팀 (JCT-VC), 12차 회의: Geneva, CH, 2013 년 1 월 14-23 일, JCTVC-L1003v34 에서의 HEVC 초안 사양은 http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip 로부터 입수가능하다. 완결된 HEVC 표준은 HEVC 버전 1 로서 지칭된다.
결함 보고, Wang 등, "High efficiency video coding (HEVC) Defect Report (고효율 비디오 코딩 (HEVC) 결함 보고)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 공동 협력 팀 (JCT-VC), 14 차 회의: Vienna, AT, 2013 년 7 월 25 - 8 월 2 일, JCTVC-N1003v1 은 http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip 로부터 입수가능하다. 완결된 HEVC 표준 문서는 ITU-T H.265, 시리즈 H 로서 발표되어 있다: 오디오비주얼 (Audiovisual) 및 멀티미디어 시스템들, 오디오비주얼 서비스들의 기반구조 - 동화상의 코딩, 고효율 비디오 코딩, 국제 전기통신 연합 (International Telecommunication Union; ITU) 의 전기통신 표준화 섹터, 2013 년 4월.
HEVC 에 대한 멀티-뷰 확장 (MV-HEVC) 및 더욱 진보된 3D 비디오 코딩에 대한 또 다른 HEVC 확장 (3D-HEVC) 은 JCT-3V 에 의해 개발되고 있다. MV-HEVC 작업 초안 5 (WD5) 로서 지칭되고, Tech 등, "MV-HEVC Draft Text 5 (MV-HEVC 초안 텍스트 5)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 3D 비디오 코딩 확장 개발에 관한 공동 협력 팀 (JCT-3V), 5 차 회의: Vienna, AT, 2013 년 7월 27 - 8 월 2 일, JCT3V-E1004v6 에서의 MV-HEVC 의 초안 사양은 http://phenix.int-evry.fr/jct/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1004-v6.zip 로부터 입수가능하다. 3D-HEVC 작업 초안 1 (WD1) 로서 지칭되고, Tech 등, "3D-HEVC Draft Text 1 (3D-HEVC 작업 초안 1)", ITU-T SG 16 WP 3 및 ISO/IEC JTC1/SC29/WG11 의 3D 비디오 코딩 확장 개발에 관한 공동 협력 팀 (JCT-3V), 5 차 회의: Vienna, AT, 2013 년 7 월 27 일 - 8 월 2 일, JCT3V-E1001v3 에서 설명된 3D-HEVC 의 초안 사양은 http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1001-v3.zip 로부터 입수가능하다.
HEVC 에 대한 스케일러블 확장 (SHVC) 는 JCT-VC 에 의해 개발되고 있다. SHVC 작업 초안 3 (WD3) 으로서 지칭되는, Tech 등, "SHVC Draft 3 (SHVC 초안 3)", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 비디오 코딩에 관한 공동 협력 팀 (JCT-3V), 14 차 회의: Vienna, AT, 2013 년 7 월 25 - 8 월 2 일, JCTVC-N1008v3 에서의 SHVC 의 초안 사양은 http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zip 로부터 입수가능하다.
도 1 은 3D 룩업 테이블 기반 색역 스케일러빌러티를 위한 기법들을 사용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에서 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 더 이후의 시간에 디코딩되어야 할 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 컴퓨터-판독가능 매체 (16) 를 통해 비디오 데이터를 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 (set-top) 박스들, 소위 "스마트" 폰들과 같은 전화 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 광범위한 디바이스들 중의 임의의 것을 포함할 수도 있다. 일부의 경우들에는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 무선 통신을 위해 구비될 수도 있다.
목적지 디바이스 (14) 는 컴퓨터-판독가능 매체 (16) 를 통해, 디코딩되어야 할 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터-판독가능 매체 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터-판독가능 매체 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스 (14) 로 직접 송신하는 것을 가능하게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수도 있고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하기 위해 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부의 예들에서, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 (Blu-ray) 디스크들, DVD 들, CD-ROM 들, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적당한 디지털 저장 매체들과 같은, 다양한 분산되거나 국소적으로 액세스된 데이터 저장 매체들 중의 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터의 저장된 비디오 데이터를 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장할 수 있으며 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 타입의 서버일 수도 있다. 일 예의 파일 서버들은 (예컨대, 웹사이트를 위한) 웹 서버, FTP 서버, 네트워크 연결 저장 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터를 액세스할 수도 있다. 이것은, 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하기에 적당한 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 그 조합일 수도 있다.
이 개시물의 기법들은 무선 애플리케이션들 또는 세팅들로 반드시 제한되는 것은 아니다. 기법들은 오버-디-에어 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 를 통한 동적 적응 스트리밍 (dynamic adaptive streaming over HTTP; DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들 중의 임의의 것의 지원 하에서 비디오 코딩에 적용될 수도 있다. 일부의 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 및/또는 화상 통화 (video telephony) 와 같은 애플리케이션들을 지원하기 위하여 일방향 (one-way) 또는 양방향 (two-way) 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 이 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 비디오 데이터를 병렬로 프로세싱하기 위한 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하는 것이 아니라, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 예시된 시스템 (10) 은 하나의 예에 불과하다. 비디오 데이터를 병렬로 프로세싱하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로, 이 개시물의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 기법들은 또한, "CODEC" 으로서 전형적으로 지칭된 비디오 인코더/디코더에 의해 수행될 수도 있다. 또한, 이 개시물의 기법들은 또한, 비디오 프리프로세서 (video preprocessor) 에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 이러한 코딩 디바이스들의 예들에 불과하다. 일부의 예들에서, 디바이스들 (12, 14) 은, 디바이스들 (12, 14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이 때문에, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 화상 통화를 위하여, 비디오 디바이스들 (12, 14) 사이의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 소스 비디오로서, 또는 라이브 비디오 (live video), 아카이빙된 비디오 (archived video), 및 컴퓨터-생성된 비디오의 조합으로서, 컴퓨터 그래픽-기반 (computer graphics-based) 데이터를 생성할 수도 있다. 일부의 경우들에는, 비디오 소스 (18) 가 비디오 카메라일 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급된 바와 같이, 이 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에는, 캡처된, 프리-캡처된 (pre-captured), 또는 컴퓨터-생성된 비디오가 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 다음으로, 인코딩된 비디오 정보는 출력 인터페이스 (22) 에 의해 컴퓨터-판독가능 매체 (16) 상으로 출력될 수도 있다.
컴퓨터-판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 순시적 매체 (transient medium) 들, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터-판독가능 매체들과 같은 저장 매체들 (즉, 비-일시적인 저장 매체들) 을 포함할 수도 있다. 일부의 예들에서, 네트워크 서버 (도시되지 않음) 는 예컨대, 네트워크 송신을 통해, 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있으며 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 (disc stamping) 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있고, 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 그러므로, 컴퓨터-판독가능 매체 (16) 는 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터-판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 컴퓨터-판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터-판독가능 매체 (16) 의 정보는, 블록들 및 다른 코딩된 유닛들, 예컨대, 픽처들의 그룹 (group of pictures; GOP) 들의 특성들 및/또는 프로세싱을 설명하는 신택스 엘리먼트들을 포함하는 신택스 정보로서, 비디오 인코더 (20) 에 의해 정의되며 또한, 비디오 디코더 (30) 에 의해 이용되는 상기 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (cathode ray tube; CRT), 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 또 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중의 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (digital signal processor; DSP) 들, 주문형 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 들, 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그 임의의 조합들과 같은 다양한 적당한 인코더 회로부 중의 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어를 위한 명령들을 적당한 비-일시적인 (non-transitory) 컴퓨터-판독가능 매체에서 저장할 수도 있고, 이 개시의 기법들을 수행하기 위하여 하나 이상의 프로세서들을 이용하여 명령들을 하드웨어로 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 이들 중 어느 것도 조합된 인코더/디코더 (CODEC) 의 일부로서 각각의 디바이스 내에 통합될 수도 있다.
일부의 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 그 스케일러블 비디오 코딩 (SVC) 확장, 멀티-뷰 비디오 코딩 (MVC) 확장, 및 MVC-기반 3 차원 비디오 (three-dimensional video; 3DV) 확장을 포함하는 (또한, ISO/IEC MPEG-4 AVC 로서 알려진) ISO/IEC MPEG-4 비주얼 및 ITU-T H.264 와 같은 비디오 압축 표준에 따라 동작한다. 일부의 사례들에서, MVC-기반 3DV 를 준수하는 임의의 비트스트림은 MVC 프로파일, 예컨대, 스테레오 하이 프로파일 (stereo high profile) 에 순응하는 서브-비트스트림을 항상 포함한다. 또한, H.264/AVC 에 대한 3DV 코딩 확장, 즉, AVC-기반 3DV 를 생성하기 위한 진행 중인 노력이 있다. 비디오 코딩 표준들의 다른 예들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, 및 ITU-T H.264, ISO/IEC 비주얼을 포함한다.
도 1 의 예에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 동화상 전문가 그룹 (MPEG) 의 비디오 코딩에 관한 공동 협력 팀 (JCT-VC) 에 의해 완결된 고효율 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있다. 위에서 참조된 HEVC 초안 사양은 HEVC 작업 초안 10 (WD10) 으로서 지칭되고, HEVC 표준의 완결된 버전은 HEVC 버전 1 로서 지칭된다. MV-HEVC 및 3D-HEVC 는 JCT-3V 에 의해 개발되고 있다. MV-HEVC 의 최신 초안 사양은 MV-HEVC WD5 로서 지칭되고, 3D-HEVC 의 최신 초안 사양은 3D-HEVC WD1 로서 지칭된다. SHVC 는 JCT-VC 에 의해 개발되고 있다. SHVC 의 최신 초안 사양은 SHVC WD3 으로서 지칭된다.
HEVC 및 다른 비디오 코딩 표준들에서는, 비디오 시퀀스가 전형적으로 일련의 픽처들을 포함한다. 픽처들은 또한, "프레임들" 로서 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 나타낸 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플 (luma sample) 들의 2 차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로미넌스 샘플 (chrominance sample) 들의 2 차원 어레이이다. SCr 은 Cr 크로미넌스 샘플들의 2 차원 어레이이다. 크로미넌스 샘플들은 또한, 본원에서 "크로마 (chroma)" 샘플들로서 지칭될 수도 있다. 다른 사례들에서, 픽처는 단색일 수도 있고 루마 샘플들의 어레이를 포함하기만 할 수도 있다.
비디오 인코더 (20) 는 코딩 트리 유닛 (coding tree unit; CTU) 들의 세트를 생성할 수도 있다. CTU 들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처, 또는 3 개의 별도의 컬러 평면들을 포함하는 픽처에서는, CTU 가 단일 코딩 트리 블록과, 코딩 트리 블록의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한, "트리 블록" 또는 "최대 코딩 유닛 (largest coding unit)" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU 들은 H.264/AVC 와 같은 다른 비디오 코딩 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 반드시 특정한 크기로 제한되는 것은 아니고, 하나 이상의 코딩 유닛 (CU; coding unit) 들을 포함할 수도 있다. 슬라이스는 래스터 스캔 (raster scan) 에서 연속적으로 순서화된 정수 개수의 CTU들을 포함할 수도 있다.
이 개시물은 샘플들의 하나 이상의 블록들과, 샘플들의 하나 이상의 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 지칭하기 위하여 용어 "비디오 유닛" 또는 "비디오 블록" 을 이용할 수도 있다. 일 예의 타입들의 비디오 유닛들은 HEVC 에서의 CTU 들, CU 들, PU 들, 변환 유닛 (TU) 들, 또는 다른 비디오 코딩 표준들에서의 매크로블록들, 매크로블록 파티션들, 및 기타 등등을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위하여, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들, 이 때문에, 명칭 "코딩 트리 유닛들" 로 분할하기 위하여, CTU 의 코딩 트리 블록들에 대해 쿼드-트리 파티셔닝 (quad-tree partitioning) 을 재귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는, 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 가지는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들 및 루마 샘플들의 코딩 블록과, 코딩 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처에서는, CU 가 단일 코딩 블록과, 코딩 블록의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 픽처의 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처에서는, PU 가 단일 예측 블록과, 예측 블록 샘플들을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb, 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 생성하기 위하여 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인트라 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인터 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 인터 예측은 단방향 인터 예측 (즉, 단방향-예측 (uni-prediction)) 또는 양방향 인터 예측 (즉, 양방향-예측 (bi-prediction)) 일 수도 있다. 단방향-예측 또는 양방향-예측을 수행하기 위하여, 비디오 인코더 (20) 는 현재의 슬라이스에 대한 제 1 참조 픽처 리스트 (RefPicList0) 및 제 2 참조 픽처 리스트 (RefPicList1) 를 생성할 수도 있다.
참조 픽처 리스트들의 각각은 하나 이상의 참조 픽처들을 포함할 수도 있다. 단방향-예측을 이용할 때, 비디오 인코더 (20) 는 참조 픽처 내에서 참조 로케이션을 결정하기 위하여 RefPicList0 및 RefPicList1 의 어느 하나 또는 양자에서 참조 픽처들을 검색할 수도 있다. 또한, 단방향-예측을 이용할 때, 비디오 인코더 (20) 는 참조 로케이션에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 샘플 블록들을 생성할 수도 있다. 또한, 단방향-예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 예측 블록과 참조 로케이션 사이의 공간적 변위를 표시하는 단일 모션 벡터 (motion vector) 를 생성할 수도 있다. PU 의 예측 블록과 참조 로케이션 사이의 공간적 변위를 표시하기 위하여, 모션 벡터는 PU 의 예측 블록과 참조 로케이션 사이의 수평 변위를 지정하는 수평 컴포넌트를 포함할 수도 있고, PU 의 예측 블록과 참조 로케이션 사이의 수직 변위를 지정하는 수직 컴포넌트를 포함할 수도 있다.
PU 를 인코딩하기 위하여 양방향-예측을 이용할 때, 비디오 인코더 (20) 는 RefPicList0 내의 참조 픽처에서의 제 1 참조 로케이션, 및 RefPicList1 내의 참조 픽처에서의 제 2 참조 로케이션을 결정할 수도 있다. 다음으로, 비디오 인코더 (20) 는 제 1 및 제 2 참조 로케이션들에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측 블록들을 생성할 수도 있다. 또한, PU 를 인코딩하기 위하여 양방향-예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 샘플 블록과 제 1 참조 로케이션 사이의 공간적 변위를 표시하는 제 1 모션, 및 PU 의 예측 블록과 제 2 참조 로케이션 사이의 공간적 변위를 표시하는 제 2 모션을 생성할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU 들에 대한 예측 루마, Cb 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중의 하나에서의 루마 샘플과, CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시한다. 게다가, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중의 하나에서의 Cb 샘플과, CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중의 하나에서의 Cr 샘플과, CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다.
또한, 비디오 인코더 (20) 는 CU 의 루마, Cb, 및 Cr 잔차 블록들을 하나 이상의 루마, Cb, 및 Cr 변환 블록들로 분해하기 위하여 쿼드-트리 파티셔닝을 이용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처에서는, TU 가 단일 변환 블록과, 변환 블록 샘플들을 변환하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 이에 따라, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록 (sub-block) 일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 루마 변환 블록에 적용할 수도 있다. 계수 블록은 변환 계수들의 2 차원 어레이일 수도 있다. 변환 계수는 스칼라량 (scalar quantity) 일 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용할 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들을 나타내기 위하여 이용된 데이터의 양을 가능한 대로 감소시키기 위하여 변환 계수들이 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 또한, 비디오 인코더 (20) 는 변환 계수들을 역양자화할 수도 있고, 픽처의 CU 들의 TU 들의 변환 블록들을 재구성하기 위하여 역변환을 변환 계수들에 적용할 수도 있다. 비디오 인코더 (20) 는 CU 의 코딩 블록들을 재구성하기 위하여, CU 의 TU 들의 재구성된 변환 블록들 및 CU 의 PU 들의 예측 블록들을 이용할 수도 있다. 픽처의 각각의 CU 의 코딩 블록들을 재구성함으로써, 비디오 인코더 (20) 는 픽처를 재구성할 수도 있다. 비디오 인코더 (20) 는 재구성된 픽처들을 디코딩된 픽처 버퍼 (decoded picture buffer; DPB) 내에 저장할 수도 있다. 비디오 인코더 (20) 는 인터 예측 및 인트라 예측을 위하여 DPB 에서의 재구성된 픽처들을 이용할 수도 있다.
비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 컨텍스트-적응 2진 산술 코딩 (Context-Adaptive Binary Arithmetic Coding; CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피-인코딩된 신택스 엘리먼트들을 비트스트림에서 출력할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하고, 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 를 캡슐화 (encapsulate) 한다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 지정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에서 캡슐화되는 정수 개수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부의 사례들에서, RBSP 는 제로 비트 (zero bit) 들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP 들을 캡슐화할 수도 있다. 예를 들어, 제 1 타입의 NAL 유닛은 픽처 파라미터 세트 (picture parameter set; PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, 제 2 타입의 NAL 유닛은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있고, 제 3 타입의 NAL 유닛은 보충 강화 정보 (Supplemental Enhancement Information; SEI) 에 대한 RBSP 를 캡슐화할 수도 있는 등등과 같다. PPS 는 제로 이상의 전체 코딩된 픽처들에 적용하는 신택스 엘리먼트들을 포함할 수도 있는 신택스 구조이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP 들과는 반대로) 비디오 코딩 데이터에 대한 RBSP 들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (video coding layer; VCL) NAL 유닛들로서 지칭될 수도 있다. 코딩된 슬라이스를 캡슐화하는 NAL 유닛은 코딩된 슬라이스 NAL 유닛으로서 본원에서 지칭될 수도 있다. 코딩된 슬라이스에 대한 RBSP 는 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다.
비디오 디코더 (30) 는 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 디코딩하기 위하여 비트스트림을 파싱 할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 디코딩된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 일반적으로, 비디오 인코더 (20) 에 의해 수행된 프로세스와 상반적일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 블록들을 결정하기 위하여 PU 들의 모션 벡터들을 이용할 수도 있다. 비디오 디코더 (30) 는 PU 들에 대한 예측 블록들을 생성하기 위하여 PU 들의 모션 벡터 또는 모션 벡터들을 이용할 수도 있다.
게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 변환 블록들을 재구성하기 위하여 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 샘플 블록들의 샘플들을 현재의 CU 의 TU 들의 변환 블록들의 대응하는 샘플들에 추가함으로써, 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다. 비디오 디코더 (30) 는 다른 픽처들을 디코딩함에 있어서 출력 및/또는 이용하기 위하여, 디코딩된 픽처들을 디코딩된 픽처 버퍼 내에 저장할 수도 있다.
MV-HEVC, 3D-HEVC, 및 SHVC 에서는, 비디오 인코더가 일련의 네트워크 추상화 계층 (NAL) 유닛들을 포함하는 멀티-계층 비트스트림을 생성할 수도 있다. 비트스트림의 상이한 NAL 유닛들은 비트스트림의 상이한 계층들과 연관될 수도 있다. 계층은 동일한 계층 식별자를 가지는 비디오 코딩 계층 (video coding layer; VCL) NAL 유닛들 및 연관된 비-VCL (non-VCL) NAL 유닛들의 세트로서 정의될 수도 있다. 계층은 멀티-뷰 비디오 코딩에서의 뷰와 동등할 수도 있다. 멀티-뷰 비디오 코딩에서, 계층은 상이한 시간 인스턴스 (instance) 들을 갖는 동일한 계층의 모든 뷰 컴포넌트들을 포함할 수 있다. 각각의 뷰 컴포넌트는 특정 시간 인스턴스에서 특정한 뷰에 속하는 비디오 장면 (video scene) 의 코딩된 픽처일 수도 있다. 3D 비디오 코딩에서는, 계층이 특정 뷰의 모든 코딩된 심도 픽처들 또는 특정 뷰의 코딩된 텍스처 픽처들 중의 어느 한 쪽을 포함할 수도 있다. 유사하게, 스케일러블 비디오 코딩의 맥락에서는, 계층이 전형적으로 다른 계층들에서의 코딩된 픽처들과는 상이한 비디오 특성들을 가지는 코딩된 픽처들에 대응한다. 이러한 비디오 특성들은 전형적으로 공간적 해상도 및 품질 레벨 (신호-대-잡음 비) 을 포함한다. HEVC 및 그 확장들에서는, 특정한 시간적 레벨을 갖는 픽처들의 그룹을 서브-계층 (sub-layer) 으로서 정의함으로써, 시간적 스케일러빌러티 (temporal scalability) 가 하나의 계층 내에서 달성될 수도 있다.
비트스트림의 각각의 개별 계층에 대하여, 하위 계층에서의 데이터는 임의의 상위 계층에서의 데이터를 참조하지 않으면서 디코딩될 수도 있다. 스케일러블 비디오 코딩에서는, 예를 들어, 기본 계층에서의 데이터가 강화 계층 (enhancement layer) 에서의 데이터를 참조하지 않으면서 디코딩될 수도 있다. NAL 유닛들은 단일 계층의 데이터를 캡슐화하기만 한다. SHVC 에서는, 비디오 디코더가 임의의 다른 계층의 데이터를 참조하지 않으면서 뷰에서의 픽처들을 디코딩할 수 있을 경우에, 뷰는 "기본 계층" (base layer) 으로서 지칭될 수도 있다. 기본 계층은 HEVC 기본 사양을 준수할 수도 있다. 이에 따라, 비트스트림의 최상위 나머지 계층의 데이터를 캡슐화하는 NAL 유닛들은 비트스트림의 나머지 계층들에서의 데이터의 디코딩가능성에 영향을 주지 않으면서 비트스트림으로부터 제거될 수도 있다. MV-HEVC 및 3D-HEVC 에서는, 상위 계층들이 추가적인 뷰 컴포넌트들을 포함할 수도 있다. SHVC 에서는, 상위 계층들이 신호 대 잡음 비 (signal to noise ratio; SNR) 강화 데이터, 공간적 강화 데이터, 및/또는 시간적 강화 데이터를 포함할 수도 있다.
일부의 예들에서, 상위 계층에서의 데이터는 하나 이상의 하위 계층들에서의 데이터를 참조하지 않으면서 디코딩될 수도 있다. 하위 계층들은 인터-계층 예측을 이용하여 상위 계층을 압축하기 위하여 참조 픽처들로서 이용될 수도 있다. 하위 계층들의 데이터는 상위 계층들과 동일한 해상도를 가지도록 업-샘플링 (up-sample) 될 수도 있다. 일반적으로, 하나 이상의 업-샘플링된 하위 계층들이 하나 이상의 이웃하는 픽처들과는 반대로 참조 픽처들로서 이용될 수도 있다는 것을 제외하고는, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 위에서 설명된 인터 예측과 유사한 방식으로 인터-계층 예측을 수행할 수도 있다.
도 2 는 3 개의 상이한 차원들에서의 스케일러빌러티의 예를 도시하는 개념적인 예시도이다. 스케일러블 비디오 코딩 구조에서는, 스케일러빌러티들이 3 개의 차원들에서 인에이블 (enable) 된다. 도 2 의 예에서, 스케일러빌러티들은 공간적 (S) 차원 (100), 시간적 (T) 차원 (102), 및 신호-대-잡음 비 (SNR) 또는 품질 (Q) 차원 (104) 에서 인에이블된다. 시간적 차원 (102) 에서, 예를 들어, 7.5 Hz (T0), 15 Hz (T1), 또는 30 Hz (T2) 를 갖는 프레임 레이트들은 시간적 스케일러빌러티에 의해 지원될 수도 있다. 공간적 스케일러빌러티가 지원될 때, 예를 들어, QCIF (S0), CIF (S1), 및 4CIF (S2) 와 같은 상이한 해상도들은 공간적 차원 (100) 에서 인에이블된다. 각각의 특정 공간적 해상도 및 프레임 레이트에 대하여, SNR 계층들 (Q1) 은 픽처 품질을 개선시키기 위하여 SNR 차원 (104) 에서 추가될 수 있다.
일단 비디오 컨텐츠 (video content) 가 이러한 스케일러블 방법으로 인코딩되었으면, 추출기 도구 (tool) 는 예컨대, 클라이언트들 또는 송신 채널에 종속적인 애플리케이션 요건들에 따라 실제적인 전달된 컨텐츠를 적응시키기 위하여 이용될 수도 있다. 도 2 에서 도시된 예에서, 각각의 입방체 (cubic) 는 동일한 프레임 레이트 (시간적 레벨), 공간적 해상도, 및 SNR 계층들을 갖는 픽처들을 포함한다. 차원들 (100, 102, 또는 104) 중의 임의의 것에서 큐브 (cube) 들 (즉, 픽처들) 을 추가함으로써 달성될 수도 있다. 조합된 스케일러빌러티는 인에이블된 2 개, 3 개, 또는 심지어 더 많은 스케일러빌러티들이 있을 때에 지원된다.
H.264 에 대한 SVC 확장 또는 SHVC 와 같은 스케일러블 비디오 코딩 표준들에서, 최저 공간적 및 SNR 계층을 갖는 픽처들은 단일 계층 비디오 코덱과 양립가능하고, 최저 시간적 레벨에서의 픽처들은 더 높은 시간적 레벨들에서 픽처들로 강화될 수도 있는 시간적 기본 계층을 형성한다. 기본 계층에 추가하여, 몇몇 공간적 및/또는 SNR 강화 계층들은 공간적 및/또는 품질 스케일러빌러티들을 제공하기 위하여 추가될 수도 있다. 각각의 공간적 또는 SNR 강화 계층 자체는 기본 계층과 동일한 시간적 스케일러빌러티 구조로 시간적으로 스케일러블일 수도 있다. 하나의 공간적 또는 SNR 강화 계층에 대하여, 그것이 종속되는 하위 계층은 그 특정 공간적 또는 SNR 강화 계층의 기본 계층으로서 지칭될 수도 있다.
도 3 은 스케일러블 비디오 코딩 비트스트림의 일 예의 구조 (110) 를 도시하는 개념적인 예시도이다. 비트스트림 구조 (110) 는 픽처들 또는 슬라이스들 I0, P4, 및 P8 을 포함하는 계층 0 (112) 과, 픽처들 또는 슬라이스들 (B2, B6, 및 B10) 을 포함하는 계층 1 (114) 을 포함한다. 게다가, 비트스트림 구조 (110) 는 픽처들 0, 2, 4, 6, 8, 및 10 을 각각 포함하는 계층 2 (116) 및 계층 3 (117) 과, 픽처들 0 내지 11 을 포함하는 계층 4 (118) 를 포함한다.
기본 계층은 최저 공간적 및 품질 계층 (즉, QCIF 해상도를 갖는 계층 0 (112) 및 계층 1 (114) 에서의 픽처들) 을 가진다. 이들 중에서, 최저 시간적 레벨의 그러한 픽처들은 도 3 의 계층 0 (112) 에서 도시된 바와 같이, 시간적 기본 계층을 형성한다. 시간적 기본 계층 (계층 0) (112) 은 더 높은 시간적 레벨의 픽처들, 예컨대, 15 Hz 의 프레임 레이트를 갖는 계층 1 (114), 또는 30 Hz 의 프레임 레이트를 갖는 계층 4 (118) 로 강화될 수 있다.
기본 계층 (112, 114) 에 추가하여, 몇몇 공간적 및/또는 SNR 강화 계층들은 공간적 및/또는 품질 스케일러빌러티들을 제공하기 위하여 추가될 수도 있다. 예를 들어, CIF 해상도를 갖는 계층 2 (116) 는 기본 계층 (112, 114) 에 대한 공간적 강화 계층일 수도 있다. 또 다른 예에서, 계층 3 (117) 은 기본 계층 (112, 114) 및 계층 2 (116) 에 대한 SNR 강화 계층일 수도 있다. 도 3 에서 도시된 바와 같이, 각각의 공간적 또는 SNR 강화 계층 자체는 기본 계층 (112, 114) 과 동일한 시간적 스케일러빌러티 구조로 시간적으로 스케일러블일 수도 있다. 게다가, 강화 계층은 공간적 해상도 및 프레임 레이트 양자를 강화할 수도 있다. 예를 들어, 계층 4 (118) 는 4CIF 해상도 강화 계층을 제공하고, 이것은 프레임 레이트를 15 Hz 로부터 30 Hz 로 추가로 증가시킨다.
도 4 는 비트스트림 순서에서 일 예의 스케일러블 비디오 코딩 액세스 유닛들 (120A 내지 120E) ("액세스 유닛들 (120)") 을 도시하는 개념적인 예시도이다. 도 4 에서 도시된 바와 같이, 동일한 시간 인스턴스들에서의 코딩된 픽처들 또는 슬라이스들은 비트스트림 순서에서 연속적이고, H.264 에 대한 SVC 확장 또는 SHVC 와 같은 스케일러블 비디오 코딩 표준의 맥락에서 하나의 액세스 유닛을 형성한다. 다음으로, 액세스 유닛들 (120) 은, 디스플레이 순서와는 상이할 수 있고, 예를 들어, 액세스 유닛들 (120) 사이의 시간적 예측 관계에 의해 결정될 수 있는 디코딩 순서를 따른다.
예를 들어, 액세스 유닛 (120A) 은 계층 0 (112) 으로부터의 픽처 I0, 계층 2 (116) 로부터의 픽처 0, 계층 3 (117) 으로부터의 픽처 0, 및 계층 4 (118) 로부터의 픽처 0 을 포함한다. 액세스 유닛 (120B) 은 계층 0 (112) 으로부터의 픽처 P4, 계층 2 (116) 로부터의 픽처 4, 계층 3 (117) 으로부터의 픽처 4, 및 계층 4 (118) 로부터의 픽처 4 를 포함한다. 액세스 유닛 (120C) 은 계층 1 (114) 로부터의 픽처 B2, 계층 2 (116) 로부터의 픽처 2, 계층 3 (117) 으로부터의 픽처 2, 및 계층 4 (118) 로부터의 픽처 2 를 포함한다. 액세스 유닛 (120D) 은 계층 4 (118) 로부터의 픽처 1 을 포함하고, 액세스 유닛 (120E) 은 계층 4 (118) 로부터의 픽처 3 을 포함한다.
도 5 는 일 예의 3-계층 SHVC 인코더 (122) 를 예시하는 블록도이다. 도 5 에서 예시된 바와 같이, SHVC 인코더 (122) 는 기본 계층 인코더 (124), 제 1 강화 계층 인코더 (125), 및 제 2 강화 계층 인코더 (126) 를 포함한다. 하이-레벨 신택스 단독 SHVC 에서는, HEVC 단일 계층 코딩과 비교할 때에 새로운 블록 레벨 코딩 도구 (coding tool) 들이 없다. SHVC 에서는, 슬라이스 및 상부 레벨 신택스 변경들과, 픽처 필터링 또는 업-샘플링과 같은 픽처 레벨 동작만이 허용된다.
계층들 사이의 중복성을 감소시키기 위하여, 하위/기본 계층에 대한 업-샘플링된 함께 위치된 (co-located) 참조 계층 픽처들이 상위/강화 계층에 대하여 생성될 수도 있고 참조 버퍼 내에 저장될 수도 있어서, 인터-계층 예측은 단일 계층 내의 인터-프레임 예측과 동일한 방법으로 달성될 수도 있다. 도 5 에서 예시된 바와 같이, 재샘플링된 인터-계층 참조 (inter-layer reference; ILR) 픽처 (128) 는 기본 계층 인코더 (124) 에서 참조 픽처로부터 생성되고, 제 1 강화 계층 인코더 (125) 에서 저장된다. 유사하게, 재샘플링된 ILR 픽처 (129) 는 제 1 강화 계층 인코더 (125) 에서 참조 픽처로부터 생성되고, 제 2 강화 계층 인코더 (126) 에서 저장된다. SHVC WD3 에서, ILR 픽처는 강화 계층에 대한 장기 참조 픽처로서 표기된다. 인터-계층 참조 픽처와 연관된 모션 벡터 차이는 제로로 제약된다.
초고해상도 텔레비전 (UHDTV) 디바이스들 및 컨텐츠의 당면한 전개는 레거시 디바이스들과는 상이한 색역을 이용할 것이다. 구체적으로, HD 는 BT.709 추천안, 2010 년 12 월자의 ITU-R 추천안 BT.709 "Parameter values for the HDTV standards for production and international programme exchange (생산 및 국제 프로그램 교환을 위한 HDTV 표준들에 대한 파라미터 값들)" 을 이용하는 반면, UHDTV 는 BT.2020 추천안, 2012 년 4 월자의 ITU-R 추천안 BT.2020 "Parameter values for UHDTV systems for production and international programme exchange (생산 및 국제 프로그램 교환을 위한 UHDTV 시스템들에 대한 파라미터 값들" 을 이용한다. 색역은 예컨대, 비디오 데이터의 픽처, 슬라이스, 블록, 또는 계층에서 이미지에 대해 재현될 수 있는 컬러들의 완전한 범위를 포함한다. 이 시스템들 사이의 핵심적인 차이는 UHDTV 의 색역이 HD 보다 상당히 더 크다는 점이다. UHDTV 는 더욱 실물 같거나 현실적인 시청 경험을 제공할 것이고, 이것은 고해상도와 같은 다른 UHDTV 특성들과 부합한다는 점이 주장된다.
도 6 은 샘플 비디오 시퀀스 (130) 의 일 예의 색역을 예시하는 그래프이다. 도 6 에서 예시된 바와 같이, SWG1 샘플 비디오 시퀀스 (130) 는 UHD 색역 BT.2020 (132) 의 라인 윤곽 내의 도트 (dot) 들의 클러스터 (cluster) 로서 표시된다. 비교의 목적들을 위하여, HD 색역 BT.709 (134) 의 윤곽 및 국제 조명 위원회 (International Commission on Illumination; CIE) - XYZ 선형 색 공간 (136) 의 윤곽은 SWG1 샘플 비디오 시퀀스 (130) 를 오버레이 (overlay) 한다. UHD 색역 BT.2020 (132) 이 HD 색역 BT.709 (134) 보다 훨씬 더 크다는 것은 도 6 으로부터 용이하게 관찰된다. BT.709 색역 (134) 의 외부에 속하는 SWG1 샘플 비디오 시퀀스 (130) 에서의 픽셀들의 수에 주목한다.
도 7 은 HD 색역 BT.709 (134) 로부터 UHD 색역 BT.2020 (132) 으로의 변환을 예시하는 블록도이다. HD 색역 BT.709 (134) 및 UHD 색역 BT.2020 (132) 의 양자는 루마 및 크로마 컴포넌트들 (예컨대, YCbCr 또는 YUV) 에서의 컬러 픽셀들의 표현들을 정의한다. 각각의 색역은 CIE-XYZ 선형 색 공간 (136) 으로의, 그리고 CIE-XYZ 선형 색 공간 (136) 으로부터의 변환을 정의한다. 이 공통적인 중간 색 공간은 HD 색역 BT.709 (134) 에서의 루마 및 크로마 값들의, UHD 색역 BT.2020 (132) 에서의 대응하는 루마 및 크로마 값들로의 변환을 정의하기 위하여 이용될 수도 있다.
도 6 에서 예시된 샘플 시퀀스의 색역 및 도 7 에서 예시된 색역 변환에 관한 더 많은 세부사항들은 L. Kerofsky, A. Segall, S.-H. Kim, K. Misra, "Color Gamut Scalable Video Coding: New Results (색역 스케일러블 비디오 코딩: 새로운 결과들)" JCTVC-L0334, Geneva, CH, 2013 년 1 월 14 - 23 일 (이하에서, "JCTVC-L0334" 로서 지칭됨) 에서 발견될 수도 있다.
도 8 은 기본 계층 색역 및 강화 계층 색역이 상이할 때에 인터-계층 참조 픽처를 생성할 수도 있는 컬러 예측 프로세싱 유닛 (144) 을 포함하는 색역 스케일러블 코더 (140) 를 예시하는 블록도이다. 컬러 예측 프로세싱 유닛 (144) 은 기본 및 강화 계층의 색역이 상이한 색역 스케일러블 비디오 코딩을 수행하기 위하여, 도 1 로부터의 비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은 비디오 코더에 의해 이용될 수도 있다.
도 8 에서 예시된 예에서, 기본 계층 코딩 루프 (142) 는 제 1 색역, 예컨대, BT.709 에서의 컬러 데이터를 포함하는 픽처들의 비디오 코딩을 수행하고, 강화 계층 코딩 루프 (146) 는 제 2 색역, 예컨대, BT.2020 에서의 컬러 데이터를 포함하는 픽처들의 비디오 코딩을 수행한다. 컬러 예측 프로세싱 유닛 (144) 은 제 1 색역에서의 기본 계층 참조 픽처의 컬러 데이터를 제 2 색역으로 맵핑하거나 변환하기 위하여 컬러 예측을 수행하고, 기본 계층 참조 픽처의 맵핑된 컬러 데이터에 기초하여 강화 계층에 대한 인터-계층 참조 픽처를 생성한다.
높은 코딩 효율을 달성하기 위하여, 컬러 예측 프로세싱 유닛 (144) 은 인터-계층 참조 픽처들을 생성할 때에 특정 컬러 예측을 수행하도록 구성된다. 이하에서 더욱 상세하게 설명된 바와 같이, 컬러 예측 프로세싱 유닛 (144) 은 선형 예측 모델, 구간적 선형 예측 모델 (piecewise linear prediction model), 또는 3D 룩업 테이블 기반 컬러 예측 모델 중의 임의의 것에 따라 컬러 예측을 수행하도록 구성될 수도 있다.
선형 예측 모델은 위에서 참조된 JCTVC-L0334 에서 제안되어 있다. 일반적으로, 선형 예측 모델의 컬러 예측 프로세스는 이득 및 오프셋 모델로서 설명될 수도 있다. 선형 예측 모델은 개별적인 컬러 평면들 상에서 동작한다. 정수 계산을 용이하게 하기 위하여, 파라미터는 파라미터 numFractionBits 를 이용한 계산에서 이용된 분수 비트들의 수를 설명한다. 각각의 채널에 대하여, gain[c] 및 offset[c] 이 지정된다. 선형 예측 모델은 다음과 같이 정의된다:
Pred[c][x][y] = (gain[c]*In[x][y] + (1<<(numFractionBits-1)) >> numFractionBits + offset[c]
구간적 선형 예측 모델은 위에서 참조된 JCTVC-L0334 에 기초한, C. Auyeung, K. Sato, "AHG14: Color gamut scalable video coding with piecewise linear predictions and shift-offset model (AHG14: 구간적 선형 예측들 및 시프트-오프셋 모델을 갖는 색역 스케일러블 비디오 코딩)", JCTVC-N0271, Vienna, Austria, 2013 년 7 월에서 제안되어 있다. 구간적 선형 예측 모델의 컬러 예측 프로세스는 또한, 이득 및 오프셋 모델로서 설명될 수도 있다. 구간적 선형 예측 모델은 다음과 같이 정의된다:
Let d[c][x][y] = In[c][x][y] - knot[c].
If d[c][x][y] <= 0
Pred[c][x][y] = (gain1[c]*d[c][x][y] + offset[c] + (1<<(numFractionBits-1))) >> numFractionBits
else
Pred[c][x][y] = (gain2[c]*d[c][x][y] + offset[c] + (1<<(numFractionBits-1))) >> numFractionBits
예측 파라미터들 knot[c], offset[c], gain1[c], 및 gain2[c] 은 비트스트림에서 인코딩될 수도 있다.
도 9 (a) 및 도 9 (b) 는 색역 스케일러빌러티를 위한 일 예의 3D 룩업 테이블 (150) 을 도시하는 개념적인 예시도들이다. 3D 룩업 테이블 기반 컬러 예측 모델은 P. Bordes, P. Andrivon, F. Hiron, "AHG14: Color Gamut Scalable Video Coding using 3D LUT: New Results (AHG14: 3D LUT 를 이용한 색역 스케일러블 비디오 코딩: 새로운 결과들)" JCTVC-N0168, Vienna, Austria, 2013 년 7 월 (이하, "JCTVC-N0168" 로서 지칭됨) 에서 제안되어 있다. 색역 스케일러빌러티를 위한 3D 룩업 테이블의 원리는 도 9 (a) 및 도 9 (b) 에서 도시되어 있다. 3D 룩업 테이블 (150) 은 제 1 3D 색 공간, 예컨대, HD 색역 BT.709 의 서브-샘플링으로서 고려될 수 있고, 여기서, 각각의 정점은 제 2 3D 색 공간 (즉, 예측된) 값들, 예컨대, UHD 색역 BT.2020 에 대응하는 컬러 트리플렛 (y, u, v) 과 연관된다.
일반적으로, 제 1 색역은 각각의 컬러 차원 (즉, Y, U, 및 V) 에서 옥탄트들 또는 큐보이드들로 파티셔닝될 수도 있고, 옥탄트들의 정점들은 제 2 색역에 대응하는 컬러 트리플렛과 연관되고, 3D 룩업 테이블 (150) 을 파퓰레이팅하기 위하여 이용된다. 각각의 컬러 차원에서의 정점들 또는 세그먼트들의 수는 3D 룩업 테이블의 크기를 표시한다. 도 9 (a) 는 각각의 컬러 차원에서 옥탄트들의 정점들 또는 교차하는 격자점 (lattice point) 들을 예시한다. 도 9 (b) 는 정점들의 각각과 연관된 상이한 컬러 값들을 예시한다. 예시된 바와 같이, 도 9 (a) 에서는, 각각의 컬러 차원이 4 개의 정점들을 가지고, 도 9 (b) 에서는, 각각의 컬러 차원이 4 개의 컬러 값들을 포함한다.
도 10 은 색역 스케일러빌러티를 위한 3D 룩업 테이블 (152) 에 의한 3-선형 보간을 도시하는 개념적인 예시도이다. 제 1 색역에서의 소정의 기본 계층 컬러 샘플에 대하여, 강화 계층을 위한 제 2 색역에서의 그 예측의 연산은 다음의 수학식에 따른 3-선형 보간을 이용하여 행해진다:
Figure pct00001
여기서:
Figure pct00002
S0(y) = y1-y 및 S1(y) = y-y0
y0 는 y 보다 열등한 가장 근접한 서브-샘플링된 정점의 인덱스이고,
y1 은 y 보다 우수한 가장 근접한 서브-샘플링된 정점의 인덱스이다.
도 9 에서 예시된 3D 룩업 테이블의 더 많은 세부사항들과, 도 10 에서 예시된 3D 룩업 테이블에 의한 3-선형 보간은 위에서 참조된 JCTVC-N0168 에서 발견될 수도 있다.
도 11 은 색역 스케일러빌러티를 위한 3D 룩업 테이블 (154) 에 의한 4면체 보간을 도시하는 개념적인 예시도이다. 4면체 보간은 3D 룩업 테이블의 연산 복잡도를 감소시키기 위하여, 위에서 설명된 3-선형 보간 대신에 이용될 수도 있다.
도 12 는 4면체 보간을 이용하여 보간되어야 할 3D 룩업 테이블의 포인트 P 를 둘러싸기 위하여 이용된 4면체들 (156A 내지 156F) (집합적으로, "사면체들 (156)") 의 6 개의 예들을 도시하는 개념적인 예시도이다. 도 12 의 예에서는, 정점들 P0 및 P7 이 4면체에서 포함되어야 하면, 3D 룩업 테이블의 옥탄트에서 보간되어야 할 포인트 P 를 포함하는 4면체를 결정하기 위한 6 개의 선택들이 있다. 4면체 보간을 이용하면, 3D 룩업 테이블은 각각의 2 개의 컴포넌트들: y 및 u, y 및 v, u 및 v 의 관계를 검사하는 대신에, 고속 판정을 위해 설계될 수도 있다.
일부의 예들에서, 별도의 3D 룩업 테이블은 컬러 컴포넌트들, 즉, 루마 (Y) 컴포넌트, 제 1 크로마 (U) 컴포넌트, 및 제 2 크로마 (Y) 컴포넌트의 각각에 대해 생성될 수도 있다. 3D 룩업 테이블들의 각각은 루마 (Y) 차원, 제 1 크로마 (U) 차원, 및 제 2 크로마 (V) 차원을 포함하고, 3 개의 독립적인 컬러 컴포넌트들 (Y, U, V) 을 이용하여 인덱싱된다.
하나의 예에서, 맵핑 함수는 3D 룩업 테이블에 기초하여 각각의 컬러 컴포넌트에 대해 정의될 수도 있다. 루마 (Y) 픽셀 값에 대한 일 예의 맵핑 함수는 다음 수학식에서 제시된다:
YE = LUTY(YB, UB, VB)*YB + LUTU(YB, UB, VB)*UB + LUTv(YB, UB, VB)*VB + LUTC(YB, UB, VB)
상기 수학식에서, YE 는 강화 계층에서 루마 픽셀 값을 나타내고, (YB, UB, VB) 는 기본 계층 픽셀 값을 나타내고, LUTY, LUTU, LUTV, 및 LUTC 는 각각의 컬러 컴포넌트 Y, U, V, 및 상수에 대한 3D 룩업 테이블을 각각 나타낸다. 유사한 맵핑 함수들은 강화 계층에서 제 1 크로마 (U) 픽셀 값 및 제 2 크로마 (V) 픽셀 값에 대해 정의될 수도 있다.
일반적으로, 3D 룩업 테이블 기반 색역 스케일러빌러티는 양호한 코딩 성능을 낳는다. 그러나, 3D 룩업 테이블이 전형적으로 하드웨어 구현에서 캐시 메모리 내에 저장되므로, 3D 룩업 테이블의 크기가 관심사일 수도 있다. 기존에는, 3D 룩업 테이블들은, 3D 룩업 테이블들이 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트에 대해 동일한 크기를 가지도록 항상 대칭적이다. 게다가, 기존에는, 3D 룩업 테이블들은, 3D 룩업 테이블들의 각각의 차원의 크기가 항상 동일하도록 항상 균형잡혀져 있다. 이것은 높은 연산 복잡도 및 높은 시그널링 비용들을 갖는 큰 테이블 크기들을 낳는다. 예를 들어, 테이블 크기들은 9x9x9 또는 17x17x17 까지일 수도 있다.
일부의 경우들에는, 색역 스케일러빌러티를 위해 이용된 3D 룩업 테이블의 크기가 너무 크고, 이것은 실제적인 구현들에서의 어려움으로 이어질 수도 있다. 게다가, 큰 테이블 크기 및 3D 룩업 테이블에 대한 3-선형 보간의 이용은 높은 연산 복잡도를 낳는다.
2014 년 10 월 10 일자로 출원된 미국 특허 출원 제 14/512,177 호 (대리인 관리 번호 제 1212-712US01/140193 호) 에서는, 3D 룩업 테이블 기반 색역 스케일러빌러티를 위한 시그널링 비용 및 연산 복잡도의 양자가 감소될 수도 있도록, 다음의 방법들이 제안되어 있다.
제 1 방법은 루마 (Y) 및 크로마 (U 및 V) 컴포넌트들이 상이한 크기들을 가지도록 비대칭적인 3D 룩업 테이블을 생성하는 것을 포함한다. 일부의 경우들에는, 3D 룩업 테이블이 제 1 및 제 2 크로마 컴포넌트들의 각각에 대한 것보다는 루마 컴포넌트에 대하여 더 큰 크기, 즉, 더 많은 세그먼트들 또는 옥탄트들을 가질 수도 있다. 이 경우, 크로마 컴포넌트들은 더욱 조대한 룩업 테이블을 이용할 수도 있고, 루마 컴포넌트는 더욱 세분화된 룩업 테이블을 이용할 수도 있다. 예를 들어, 테이블 크기들은 8x2x2 까지일 수도 있다. 다른 경우들에는, 3D 룩업 테이블은 루마 컴포넌트에 대한 것보다는 크로마 컴포넌트들 중의 하나 또는 양자에 대하여 더 큰 크기를 가질 수도 있다.
제 2 방법은 불균형한 3D 룩업 테이블, 즉, table[M][N][K] 을 생성하는 것을 포함하여, 각각의 차원의 크기는 어느 컬러 컴포넌트가 3D 룩업 테이블을 위한 테이블 인덱스로서 이용되고 있는지에 따라 상이하다. 3D 룩업 테이블은 테이블 인덱스로서 이용된 컬러 컴포넌트와 연관된 차원에 대하여 더 큰 크기를 가질 수도 있다. 이 경우, 컬러 맵핑은 테이블 인덱스로서 이용된 컬러 컴포넌트에 대하여 더욱 정확할 수도 있는 반면, 다른 컬러 컴포넌트들에 대하여 덜 정확할 수도 있다.
제 3 방법은 3D 룩업 테이블 루마 컴포넌트만을 생성하는 것과, 루마 컴포넌트 예측을 수행하기 위하여 3D 룩업 테이블을 이용하는 것만을 포함한다. 1 차원 (1D) 선형 맵핑 또는 구간적 선형 맵핑 기법들은 크로마 컴포넌트들을 위해 이용될 수도 있다.
이 개시물의 기법들은 색역 스케일러빌러티를 위한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보의 시그널링에 관한 것이다. 기법들에 따르면, 비디오 인코더 (20) 는 색역 스케일러빌러티를 위해 생성된 3D 룩업 테이블의 파티션 정보 및/또는 컬러 값들을 인코딩할 수도 있다. 비디오 디코더 (30) 는 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 생성하기 위한 파티션 정보 및/또는 컬러 값들을 디코딩할 수도 있다. 개시된 기법들은 3D 룩업 테이블의 컬러 컴포넌트들의 효율적인 파티셔닝과, 3D 룩업 테이블에 대한 파티션 정보 및/또는 컬러 값들의 효율적인 시그널링을 제공한다. 이러한 방법으로, 개시된 기법들은 3D 룩업 테이블을 생성하기 위한 시그널링 비용 및 연산 복잡도의 양자를 감소시킬 수도 있다. 이 개시물에서 설명된 기법들은 비대칭적 및/또는 불균형한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링함에 있어서 특히 유용할 수도 있다.
하나의 예에서, 이 개시물에서 설명된 기법들은, 3D 룩업 테이블이 제 1 및 제 2 크로마 (예컨대, Cb 및 Cr, 또는 U 및 V) 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 (예컨대, Y) 컴포넌트에 대한 더욱 미세한 파티셔닝을 가지도록 비대칭적인 파티셔닝들을 가능하게 함으로써, 3D 룩업 테이블의 컬러 컴포넌트들의 더욱 효율적인 파티셔닝을 제공할 수도 있다. 기법들은 또한, 3D 룩업 테이블에 대한 파티션들의 기본 수뿐만 아니라, 루마 컴포넌트에 대한 추가적인 파티션들의 수를 시그널링함으로써, 3D 룩업 테이블에 대한 파티션 정보의 더욱 효율적인 시그널링을 제공할 수도 있다. 또 다른 예에서, 기법들은 제 1 및 제 2 크로마 (예컨대, Cb 및 Cr, 또는 U 및 V) 컴포넌트들의 공동 파티셔닝을 가능하게 함으로써, 3D 룩업 테이블의 컬러 컴포넌트들의 더욱 효율적인 파티셔닝을 제공할 수도 있다.
기법들은 또한, 다음 중의 하나 이상을 가능하게 함으로써 색역 스케일러빌러티 (color gamut scalability; CGS) 를 위한 3D 룩업 테이블을 생성하기 위하여 이용된 정보의 더욱 효율적인 시그널링을 제공할 수도 있다. 제 1 예에서, 플래그 또는 인덱스는 비디오 파라미터 세트 (video parameter set; VPS), 시퀀스 파라미터 세트 (sequence parameter set; SPS), 픽처 파라미터 세트 (picture parameter set; PPS), 슬라이스 헤더, 또는 임의의 다른 하이 레벨 신택스 헤더에서와 같이, CGS 컬러 예측 정보가 어디에서 시그널링되는지를 표시하기 위하여 시그널링될 수도 있다. 제 2 예에서, 파티션들의 수는 비대칭적 및/또는 불균형한 3D 룩업 테이블의 크기, 즉, 세그먼트들 또는 옥탄트들의 수를 표시하기 위하여 시그널링될 수도 있다. 제 3 예에서, 크로마 컴포넌트들이 공동으로 파티셔닝될 때, 크로마 중심 파티션의 범위가 시그널링될 수도 있다.
제 4 예에서, CGS 컬러 예측 정보의 더 낮은 레벨 (예컨대, 슬라이스 레벨) 파라미터들은 CGS 컬러 예측 정보의 더 높은 레벨 (예컨대, PPS 레벨) 파라미터들로부터 예측방식으로 코딩될 수도 있다. 제 5 예에서, CGS 컬러 예측 정보의 신택스 테이블은 VPS, SPS, PPS, 또는 슬라이스 헤더에서와 같이, 비트스트림에서 시그널링될 수도 있다. 몇몇 CGS 컬러 예측 신택스 테이블들이 비트스트림에서의 상이한 로케이션들에서 시그널링될 때, 코딩되어야 할 픽처를 커버하는 최저 레벨에서의 신택스 테이블은 픽처에 대하여 이용될 수도 있다. 제 6 예에서, CGS 컬러 예측 정보의 신택스 테이블은 텍스처 예측이 코딩되어야 할 픽처에 대해 가능하게 되는지 여부에 따라 조건부로 시그널링될 수도 있다. 비디오 데이터의 상위 계층, 즉, 강화 계층이 다수의 텍스처 참조 계층들을 가질 때, CGS 컬러 예측 신택스 테이블들은 그 색역이 강화 계층과는 상이한 참조 계층들의 전부 또는 일부에 대해 시그널링될 수도 있다. 제 7 예에서는, 낮은 복잡도를 유지하기 위하여, CGS 컬러 예측 신택스 테이블이 기껏해야 픽처 당 오직 하나의 참조 계층에 대해 시그널링되도록 추가로 제약될 수도 있다.
제 8 예에서, 파티셔닝 경계는 3D 룩업 테이블에서의 크로마 방향들 중의 하나를 따라 불균등한 파티셔닝을 획득하기 위하여 제 1 및 제 2 크로마 컴포넌트들 중의 적어도 하나에 대해 시그널링될 수도 있다. 파티셔닝 경계 정보는 크로마 컴포넌트들 중의 적어도 하나가 크로마 방향을 따라 2 개 이상의 세그먼트들 또는 옥탄트들로 파티셔닝될 때에 조건부로 시그널링될 수도 있다.
일단 3D 룩업 테이블의 컬러 컴포넌트들의 각각이 하나 이상의 옥탄트들로 파티셔닝되면, 이 개시물에서 설명된 기법들은 3D 룩업 테이블의 컬러 값들의 더욱 효율적인 시그널링을 제공할 수도 있다. 기법들은, 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 각각의 옥탄트에 대하여, 옥탄트들의 각각의 옥탄트의 정점들의 값들, 또는 옥탄트들의 각각에 대한 선형 컬러 맵핑 함수의 컬러 맵핑 계수들 중의 어느 하나를 시그널링하는 것을 포함한다. 이 개시물에서, 용어들 "파티션", "옥탄트", "세그먼트", 및 "큐보이드" 는 3D 룩업 테이블의 컬러 컴포넌트들의 파티셔닝된 영역들을 설명하기 위하여 상호 교환가능하게 이용될 수도 있다.
제 1 예에서는, 컬러 컴포넌트들의 각각에 대한 각각의 옥탄트에 대하여, 옥탄트의 정점들이 시그널링될 수도 있다. 이 예에서, 소정의 정점의 예측된 값과, 소정의 정점의 실제적인 값 사이의 잔차 값이 시그널링될 수도 있다. 일부의 경우들에는, 잔차 값들이 추가로 양자화될 수도 있다. 양자화 스텝 (quantization step) 정보, 예컨대, 양자화 값은 시그널링될 수도 있거나, 미리 정의된 값일 수도 있다. 잔차 값은 k번째-차수 (kth-order) 지수-골롬 (exp-golomb) 코딩으로 코딩될 수도 있다. 차수 k 는 비트스트림에서 시그널링될 수도 있거나, 비트스트림에서의, 잔차 값들의 규모 (magnitude)와 같은 다른 정보에 기초하여 적응적으로 유도될 수도 있다. 각각의 옥탄트 또는 파티션에 대하여, 모든 정점들이 시그널링될 필요가 있는 것은 아니다. 예를 들어, 적어도 4 개의 정점들은 이웃하는 옥탄트들 또는 큐보이드들이 정점 값들을 공유하지 않을 경우에 시그널링될 수도 있다. 적어도 4 개의 정점들은 옥탄트 또는 큐보이드에서 모든 값들을 보간하기 위하여 이용될 수도 있다.
제 2 예에서는, 컬러 컴포넌트들의 각각에 대한 각각의 옥탄트에 대하여, 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 이 옥탄트의 정점들 대신에 시그널링될 수도 있다. 컬러 맵핑 파라미터들을 갖는 선형 컬러 맵핑 함수는 색역 예측을 수행하기 위하여 직접적으로 이용될 수도 있다. 선형 컬러 맵핑 함수는 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용되고, 컬러 맵핑 계수들은 비디오 데이터의 하위 및 상위 계층들의 컬러 컴포넌트들 사이의 가중화 인자들이다. 이 개시물에서, 용어들 "컬러 맵핑 계수들" 및 "선형 컬러 예측 계수들" 은 상호 교환가능하게 이용될 수도 있다. 게다가, 용어들 "선형 컬러 맵핑 함수", "선형 컬러 예측 함수", 및 "3D 선형 수학식" 은 또한, 상호 교환가능하게 이용될 수도 있다.
이 예에서, 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 은 미리 정의된 수의 비트들을 이용하여 부동 소수점 값들로부터 정수 값들로 변환되거나 양자화될 수도 있다. 일부의 경우들에는, 변환 또는 양자화 정보가 비트스트림에서 시그널링될 수도 있다. 다른 경우들에는, 변환 또는 양자화 정보 (즉, 1 의 값을 나타내기 위하여 이용된 비트들의 수) 가 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적일 수도 있다.
컬러 컴포넌트들의 각각에 대하여, 선형 컬러 맵핑 함수의 컬러 맵핑 계수들 중의 하나가 예측되고 있는 동일한 컬러 컴포넌트의 가중화 인자를 정의하는 핵심 계수일 수도 있다. 예를 들어, 선형 컬러 맵핑 함수
Figure pct00003
를 이용하여 상위 계층의 제 1 크로마 컴포넌트 (즉,
Figure pct00004
) 를 예측할 때, b 는 하위 계층의 제 1 크로마 컴포넌트 (즉,
Figure pct00005
) 와, 예측되고 있는 상위 계층의 제 1 크로마 컴포넌트 (즉,
Figure pct00006
) 사이의 가중화 인자이기 때문에 핵심 계수이다. 핵심 계수의 시그널링은 다른 계수들과는 상이할 수도 있다. 일부의 예들에서, 핵심 계수들의 예측은 미리 정의된 비-제로 값에 종속적일 수도 있는 반면, 다른 계수들의 예측은 제로와 동일한 예측된 값에 종속적일 수도 있다. 다른 예들에서, 핵심 계수들의 예측은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적일 수도 있다.
색역 스케일러빌러티를 위한 3D 룩업 테이블을 효율적으로 파티셔닝하고 시그널링하기 위한 기법들의 위에서 설명된 여러 예들은 단독으로 또는 임의의 조합으로 이용될 수도 있고, 이 개시물에서 설명된 예의 조합들로 제한되지 않아야 한다. 3D 룩업 테이블의 컬러 컴포넌트들의 효율적인 파티셔닝과, 3D 룩업 테이블에 대한 파티션 정보 및/또는 컬러 값들의 효율적인 시그널링의 추가적인 세부사항들이 이하에서 제공된다.
위에서 설명된 바와 같이, 하나의 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 제 1 및 제 2 크로마 컴포넌트들의 공동 파티셔닝을 수행함으로써 색역 스케일러빌러티를 위한 3D 룩업 테이블을 생성할 수도 있다. 기존의 3D 룩업 테이블에서, 루마, 제 1 크로마, 및 제 2 크로마 (즉, Y, U, 및 V) 컴포넌트들은 독립적으로 파티셔닝된다. 각각의 컴포넌트가 N 개의 세그먼트들 또는 옥탄트들로 분할될 때, 옥탄트들의 총 수는 NxNxN 일 수도 있고, 이것은 큰 3D 룩업 테이블을 낳는다. 예를 들어, 테이블 크기들은 9x9x9 또는 17x17x17 까지일 수도 있다. 옥탄트들의 수를 감소시키기 위하여, 이 개시물의 기법들은 제 1 및 제 2 크로마 (즉, U 및 V) 컴포넌트들을 공동으로 파티셔닝하면서 루마 (즉, Y) 컴포넌트의 독립적인 파티셔닝을 제공할 수도 있다.
예를 들어, 루마 컴포넌트는 M 개의 파티션들 또는 옥탄트들로 균등하게 분할될 수도 있다. 다음으로, 제 1 및 제 2 크로마 컴포넌트들의 2D UxV 공간은 다음과 같이 2 개의 파티션들로 분할될 수도 있다:
Figure pct00007
여기서,
Figure pct00008
는 U 및 V 컴포넌트들의 픽셀 값들을 표시하고,
Figure pct00009
는 크로마 컴포넌트들의 비트 심도를 나타내고,
Figure pct00010
는 크로마 픽셀들의 중심 값에 대응하고, R 은 중심 값
Figure pct00011
까지의 거리를 나타낸다. 일부의 경우들에는, R 이 미리 정의된 고정된 값일 수도 있고; 이와 다르게, R 은 VPS, SPS, PPS, 또는 슬라이스 헤더에서와 같이, 비트스트림에서 시그널링된 값일 수도 있다.
도 13 은 독립적으로 파티셔닝된 루마 컴포넌트 및 공동으로 파티셔닝된 크로마 컴포넌트들을 갖는 일 예의 3D 룩업 테이블 (158) 을 도시하는 개념적인 예시도이다. 도 13 의 예시된 예에서, 루마 (즉, Y) 컴포넌트는 파티션 라인들 (160A, 160B, 및 160C) 에 따라 4 개의 부분들로 균등하게 파티셔닝된다. 크로마 (즉, U-V) 컴포넌트들은 파티션 큐보이드 (162) 에 따라 2 개의 영역들로 파티셔닝된다. 이 경우, 크로마 쌍 픽셀 값
Figure pct00012
에 대하여, 그것은 파티션 큐보이드 (162) 의 내부 또는 파티션 큐보이드 (162) 의 외부의 어느 하나이다. 도 13 의 예에서, 3D 룩업 테이블 (158) 은 4x2=8 개의 파티션들로 파티셔닝된다.
또 다른 예에서, 크로마 컴포넌트들 (즉, U-V) 은 공동으로 파티셔닝되는 반면, 루마 컴포넌트 (즉, Y) 는 M 개의 파티션들로 분할되지만, M 개의 파티션들은 반드시 동일한 크기가 아닐 수도 있다. 다시 말해서, 루마 컴포넌트는 파티션들 중의 적어도 하나가 다른 파티션들과는 상이한 크기를 가지도록 불균등하게 파티셔닝될 수도 있다. 예를 들어, 루마 컴포넌트의 중심 값에 근접하게 위치된 파티션은 중심 값으로부터 더욱 멀어지도록 위치된 그러한 파티션들보다 더욱 세분화될 수도 있고, 즉, 더 작을 수도 있다.
공동 크로마 컴포넌트 (즉, U-V) 파티셔닝의 예에서는, 색역 스케일러빌러티 (CGS) 를 위한 선형 컬러 맵핑 함수의 컬러 맵핑 계수들을 시그널링하기 위한 신택스 테이블들 및 관련된 시맨틱 (semantic) 들이 이하의 표 1 내지 3 에서 다음과 같을 수도 있다. 위에서 인용된 SHVC WD3 에 대한 임의의 편집들, 추가들, 또는 업데이트들은 이탤릭체의 텍스트에 의해 표시된다.
Figure pct00013
1 과 동일한 cgs _enable_flag 는 색역 스케일러빌러티가 인에이블되는 것을 지정한다. 0 과 동일한 cgs_enable_flag 는 색역 스케일러빌러티가 디스에이블되는 것을 지정한다. 존재하지 않을 때, cgs_enable_flag 는 0 인 것으로 추론된다.
1 과 동일한 cgs _info_in_pps_flag 는 cgs_info_table 이 PPS 에서 존재한다는 것을 지정한다. 0 과 동일한 cgs_info_in_pps_flag 는, cgs_info_table 이 PPS 에서 존재하지 않지만, 슬라이스 헤더에서 존재한다는 것을 지정한다. 존재하지 않을 때, cgs_info_in_pps_flag 는 0 인 것으로 추론된다.
Figure pct00014
cgs _uv_part_range_from_center 신택스 엘리먼트는 크로마 컴포넌트의 중심 값으로부터의 크로마 파티션의 범위를 지정한다. 존재하지 않을 때, cgs_uv_part_range_from_center 는 0 인 것으로 추론된다.
cgs _y_part_ num _ log2 신택스 엘리먼트는 CGS 컬러 예측에서의 루마 파티션들의 수를 지정한다. 존재하지 않을 때, cgs_y_part_num_log2 는 0 인 것으로 추론된다. CGS_PART_NUM 파라미터는 다음과 같이 유도된다: CGS_PART_NUM = 1 << (cgs_y_part_num_log2+1).
cgs _color_ pred _ coeff _ minus128 신택스 엘리먼트 및 cgs _color_ pred _ coeff 신택스 엘리먼트는 CGS 를 위한 선형 컬러 맵핑 함수의 컬러 맵핑 계수들을 각각 지정한다. 존재하지 않을 때, 이들은 0 인 것으로 추론된다. 일부의 예들에서, cgs_color_pred_coeff_minus128 및 cgs_color_pred_coeff 신택스 엘리먼트들은 상이한 엔트로피 코딩 방법들을 이용하여 시그널링될 수도 있다는 것에 주목해야 한다. 상기 표 2 에서의 예에서는, se(v) 의 엔트로피 코딩 방법이 이용된다. 대안적으로, k번째-차수 지수-골룸 코딩 또는 고정 길이 코딩이 이용될 수도 있다. 또한, cgs_color_pred_coeff_minus128 신택스 엘리먼트는 핵심 계수에 대한 예측된 값을, 이 예에서 1.0 의 부동 소수점 값을 나타내기 위하여 이용된 정수 값인 128 과 동일한 미리 정의된 고정된 수로서 표시할 수도 있다는 것에 주목해야 한다.
Figure pct00015
색역 스케일러빌러티가 인에이블되고 (예컨대, cgs_enable_flag = 1), cgs_info_table 이 PPS 에서 존재하지 않을 때 (예컨대, cgs_info_in_pps_flag = 0), cgs_info_table 은 PPS 에서 존재하지 않지만, 슬라이스 헤더에서 존재한다.
위에서 설명된 바와 같이, 또 다른 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 제 1 및 제 2 크로마 (예컨대, Cb 및 Cr, 또는 U 및 V) 컴포넌트들 및 루마 (예컨대, Y) 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 색역 스케일러빌러티를 위한 3D 룩업 테이블을 생성할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 기본 파티션 값, 예컨대, 3D 룩업 테이블에 대한 최대 분할된 심도에 따라 컬러 컴포넌트들의 각각을 다수의 옥탄트들로 파티셔닝함으로써, 그리고 다음으로, 루마 파티션 값에 기초하여 루마 컴포넌트의 옥탄트들의 각각을 추가로 파티셔닝함으로써, 이 3D 룩업 테이블을 생성할 수도 있다. 하나의 예에서, 루마 파티션 값은 비디오 인코더 (20) 에 의해 비디오 디코더 (30) 로 비트스트림에서 시그널링될 수도 있다. 일부의 경우들에는, 기본 파티션 값은 또한, 비디오 인코더 (20) 에 의해 비디오 디코더 (30) 로 비트스트림에서 시그널링될 수도 있다. 다른 경우들에는, 루마 파티션 값은 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 유도될 수도 있고, 및/또는 기본 파티션 값은 비디오 인코더 및 비디오 디코더의 양자에서 알려진 미리 정의된 값일 수도 있다.
하나의 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 먼저, 미리 정의되거나 시그널링된 분할된 심도에 도달될 때까지, 컬러 컴포넌트들 (즉, Y-U-V 공간) 의 각각이 반복적으로 그리고 대칭적으로 분할되거나 파티셔닝되는 그러한 방법으로 3D 룩업 테이블을 구성한다. 분할된 심도는 3D 룩업 테이블의 컬러 컴포넌트들의 전부가 파티셔닝될 수도 있는 최대 횟수를 정의한다. 이러한 방법으로, 기본 파티션 값은 분할된 심도로서 정의될 수도 있다. 그 다음으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 루마 (즉, Y) 컴포넌트가 더욱 미세한 파티셔닝을 가지는 반면, 크로마 (즉, U 및 V) 컴포넌트들이 더욱 조대한 파티셔닝을 가지도록, 루마 (즉, Y) 방향을 따라 각각의 최소 큐브 또는 옥탄트를 추가로 균등하게, 또는 균등하지 않게 분할한다.
예를 들어, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝 및 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝을 갖는 제안된 3D 룩업 테이블은 이하의 표 4 에서 다음과 같이 시그널링될 수도 있다. 위에서 인용된 SHVC WD3 에 대한 임의의 편집들, 추가들, 또는 업데이트들은 이탤릭체의 텍스트에 의해 표시된다.
Figure pct00016
cur_octant_depth 신택스 엘리먼트는 현재의 표에 대한 Y-U-V 공간에 대한 최대 분할된 심도를 표시한다. 다시 말해서, cur_octant_depth 신택스 엘리먼트는 3D 룩업 테이블에 대한 기본 파티션 값을 표시한다.
cur_y_part_ num _ log2 신택스 엘리먼트는 최소 큐브에 대한 Y 파티션들의 수를 지정한다. 대안적으로, cur_y_part_num_log2 신택스 엘리먼트는, 그 split_octant_flag 가 0 과 동일한 큐브에 대한 Y 파티션들의 수를 지정한다. 다시 말해서, cur_y_part_num_log2 신택스 엘리먼트는 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 표시한다. 하나의 예에서, cur_octant_depth 에 의해 표시된 기본 파티션 값은 1 과 동일하여, 컬러 컴포넌트들의 각각은 단일 옥탄트로 파티셔닝되고, cur_y_part_num_log2 에 의해 표시된 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 단일 옥탄트는 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 4x1x1 의 3D 룩업 테이블을 낳는다. 또 다른 예에서, cur_octant_depth 에 의해 표시된 기본 파티션 값은 2 와 동일하여, 컬러 컴포넌트들의 각각은 2 개의 옥탄트들로 파티셔닝되고, cur_y_part_num_log2 에 의해 표시된 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 2 개의 옥탄트들의 각각은 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 8x2x2 의 3D 룩업 테이블을 낳는다.
input_bit_depth_ minus8 신택스 엘리먼트는 3D 룩업 테이블 엔트리들의 비트-심도를 지정한다. InputBitDepth 파라미터는 다음과 같은 연산될 수도 있다: InputBitDepth = 8 + input_bit_depth_minus8.
ouput _bit_depth_ minus8 신택스 엘리먼트는 3D 룩업 테이블 출력의 비트-심도를 지정한다. OutputBitDepth 파라미터는 다음과 같이 연산될 수도 있다: OutputBitDepth = 8 + output_bit_depth_minus8.
res_ quant _bit 신택스 엘리먼트는 3D 룩업 테이블의 각각의 컬러 컴포넌트에 대한 각각의 옥탄트에 대한 정점 잔차 값들 또는 컬러 맵핑 계수 잔차 값들의 어느 하나를 양자화함에 있어서 이용된 비트들의 수를 지정한다. 잔차 값들의 양자화는 res_quant_bit 에 의해 정점 잔차 값들 또는 컬러 맵핑 계수 잔차 값들을 우측 시프트함으로써 달성된다.
coding_octant 신택스 테이블은 이하의 표 5 에 대하여 더욱 상세하게 설명된다. 이하의 표 5 에서 도시된 coding_octant 신택스 테이블의 예에서는, 최소 옥탄트 또는 큐보이드만이 루마 (즉, Y 방향) 를 따라 추가로 분할되어, 루마 (즉, Y) 컴포넌트는 크로마 (즉, U 및 V) 컴포넌트들보다 더욱 미세한 파티셔닝을 가진다. 일부의 예들에서, 임의의 옥탄트 또는 큐보이드는 루마 방향을 따라 분할될 수도 있다. 이 예에서, 옥탄트가 루마 방향을 따라 추가로 분할되는지 여부는 비트스트림에서 시그널링될 수도 있다.
위에서 설명된 바와 같이, 추가의 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다. 일부의 경우들에는, 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수는 비디오 인코더 (20) 에 의해 비디오 디코더 (30) 로 시그널링될 수도 있다. 비디오 디코더 (30) 가 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대하여 각각의 옥탄트에 대한 컬러 값들을 결정하기 위하여, 비디오 인코더 (20) 는 옥탄트들의 각각의 옥탄트의 정점들, 또는 옥탄트들의 각각에 대한 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 시그널링할 수도 있다.
위에서 설명된 하나의 예에서, 옥탄트들 또는 파티션들의 각각에 대하여, 비디오 인코더 (20) 는 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수의 컬러 맵핑 계수들을 시그널링할 수도 있다. 선형 컬러 맵핑 함수는 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용되고, 컬러 맵핑 계수들은 비디오 데이터의 하위 및 상위 계층들의 컬러 컴포넌트들 사이의 가중화 인자들이다. 컬러 컴포넌트들의 각각에 대하여, 컬러 맵핑 계수들 중의 하나는 비디오 데이터의 하위 및 상위 계층들의 동일한 컬러 컴포넌트 사이의 가중화 인자를 정의하는 핵심 계수일 수도 있다.
공통적인 선형 컬러 맵핑 함수는 다음과 같이 표현될 수도 있다.
Figure pct00017
이 예의 함수에서, 아래첨자 eb 는 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들 (즉, Y, U, 및 V) 의 각각에 대한 상위 계층 (즉, 강화 계층) 및 하위 계층 (예컨대, 기본 계층) 을 각각 나타낸다. 파라미터들 a, b, c, 및 d 는 컬러 맵핑 계수들을 나타낸다. 일부의 예들에서, 컬러 맵핑 계수들 a00, b11, 및 c22 는 컬러 컴포넌트들의 각각에 대한 핵심 계수들, 즉, 기본 및 강화 계층들의 동일한 컬러 컴포넌트 사이의 가중화 인자들을 나타낸다. 이 계수들은 이 개시물에서 핵심 계수들로서 지칭되지만, 유사하게 정의된 계수들이 다른 명칭들에 의해 지칭될 수도 있으므로, 이 명칭은 제한하는 것으로 고려되지 않아야 한다. 일부의 예들에서, 소정의 옥탄트에 대한 선형 컬러 맵핑 함수의 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 은 소정의 옥탄트의 정점들로 먼저 변환될 수도 있고, 그 다음으로, 정점들의 값들은 3D 룩업 테이블에서 컬러 값들을 나타내기 위하여 비트스트림에서 코딩될 수도 있다.
일부의 예들에서, 선형 컬러 맵핑 함수의 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 은 부동 소수점 값들로서 유도된다. 이 예에서, 비디오 인코더 (20) 는 컬러 맵핑 계수들의 부동 소수점 값들을 정수 값들로 변환하거나 양자화할 수도 있고, 그 다음으로, 정수 값들을 각각의 옥탄트에 대한 비트스트림으로 인코딩할 수도 있다. 예를 들어, 컬러 맵핑 계수들의 정수 값들은 상기 표 2 에서 도시된 cgs_info_table 에서 인코딩될 수도 있거나, 이하의 표 5 에서 도시된 coding_octant 테이블에서 인코딩될 수도 있다. 다음으로, 비디오 디코더 (30) 는 컬러 맵핑 계수들의 정수 값들을 이용하여 정수 연산들을 수행할 수도 있다.
합리적인 정확성을 갖는 컬러 맵핑 계수들의 부동 소수점 값들을 나타내기 위하여, 정수 값은 예컨대, 1.0 의 부동 소수점 값을 나타내기 위하여 정수 값으로서 256 (8 비트들) 을 이용하여, 1.0 의 부동 소수점 값을 나타내도록 선택된다. 비디오 인코더 (20) 는 다음의 수학식에 따라 변환 또는 양자화를 수행할 수도 있다:
Figure pct00018
, 여기서,
Figure pct00019
는 변환되거나 양자화되어야 할 컬러 맵핑 계수의 부동 소수점 값을 나타내고, A 는 변환되거나 양자화된 정수 값이고,
Figure pct00020
는 파라미터 x 를 x 보다 더 작은 최소 정수 값으로 반올림하는 바닥 함수를 표시하고, N 은 1.0 의 부동 소수점 값을 변환하거나 양자화하기 위하여 필요한 비트들의 수를 표시한다. 이러한 방법으로, 부동 소수점 값들을 나타내는 정수 값들은 파라미터 N 에 기초한 비트-심도 (예컨대, 8 비트들) 를 가진다.
하나의 예에서, 변환 또는 양자화는 상기 수학식
Figure pct00021
의 지수 (exponent) 에서, 8 또는 10 과 같은 미리 정의된 고정된 값으로 설정된 파라미터 N 에 기초할 수도 있다. 또 다른 예에서, 변환 또는 양자화는 3D 룩업 테이블의 입력 비트-심도 (즉, Bi) 또는 출력 비트-심도 (즉, Bo) 중의 적어도 하나에 기초하여 결정된 N 의 값에 기초할 수도 있다. 예를 들어, 변환 또는 양자화는 다음의 수학식들 중의 하나에 따라 결정된 파라미터 N 에 기초할 수도 있다.
Figure pct00022
또는
Figure pct00023
.
일부의 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 컬러 맵핑 계수들을 예측할 수도 있고, 컬러 맵핑 계수들의 잔차 값들을, 컬러 맵핑 계수들의 원래의 값들과, 컬러 맵핑 계수들의 예측된 값들 사이의 차이로서 코딩할 수도 있다. 예를 들어, 소정의 옥탄트에 대하여, 컬러 맵핑 계수들 중의 적어도 하나에 대한 예측 또는 예측의 일부, 예컨대, 핵심 계수들 중의 하나는 미리 정의된 고정된 값과 동일한 예측된 값에 기초할 수도 있다. 하나의 예에서, 예측된 값은 2N 과 동일하게 설정될 수도 있고, 여기서, N 은 위에서 설명된 양자화 비트 값이다. 또 다른 예로서, 소정의 옥탄트에 대하여, 컬러 맵핑 계수들 중의 적어도 하나에 대한 예측 또는 예측의 일부, 예컨대, 핵심 계수들 중의 하나는 3D 룩업 테이블의 입력 비트-심도 (즉, Bi) 또는 출력 비트-심도 (즉, Bo) 중의 적어도 하나에 종속적일 수도 있다. 예를 들어, 예측 또는 예측의 일부는
Figure pct00024
과 동일한 예측된 값에 기초할 수도 있다.
하나의 예로서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 컬러 맵핑 계수들의 예측을 다음과 같이 수행할 수도 있다. 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 선형 컬러 맵핑 함수의 컬러 맵핑 계수들은 미리 정의된 고정된 값들에 기초하여 예측될 수도 있다. 컬러 컴포넌트들의 각각에 대한 핵심 계수는 다른 계수들과는 상이하게 예측될 수도 있다. 예를 들어, 핵심 계수는 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 예측될 수도 있고, 임의의 나머지 컬러 맵핑 계수들은 제로와 동일한 예측된 값에 기초하여 예측될 수도 있다. 이 예에서, 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들은 제 1 옥탄트와 같은 적어도 하나의 이전의 옥탄트로부터의 예측된 값들에 기초하여 예측될 수도 있다.
컬러 맵핑 계수들의 예측의 또 다른 예로서, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 모든 컬러 컴포넌트들에 대한 핵심 계수들에 대한 예측 값은
Figure pct00025
과 동일하게 설정될 수도 있고, 다른 계수들에 대한 예측 값들은 0 과 동일하게 설정될 수도 있다. 이 예에서, 컬러 컴포넌트들의 각각에 대한 나머지 옥탄트들의 계수들은 이전의 옥탄트로부터 예측될 수도 있다. 추가의 예에서, 컬러 맵핑 계수들의 예측은 컬러 컴포넌트들의 각각에 대한 상이한 파티션들 또는 옥탄트들 사이에서 수행될 수도 있다. 대안적으로, 컬러 맵핑 계수들의 세트는 SPS 또는 PPS 에서와 같이, 기본 계수들로서 시그널링될 수도 있다. 다음으로, 컬러 맵핑 계수의 실제적인 값들과, 기본 계수들의 값들 사이의 차이들은 픽처 또는 슬라이스 레벨에서 시그널링될 수도 있다.
일부의 경우들에는, 컬러 맵핑 계수들의 잔차 값들이 결정된 양자화 값에 기초하여 양자화될 수도 있다. 비디오 인코더 (20) 는 비디오 디코더 (30) 가 컬러 맵핑 계수들을 적당하게 디코딩하기 위하여 역양자화를 수행하기 위한 결정된 양자화 값을 시그널링할 수도 있다. 하나의 예에서, 결정된 양자화 값은 상기 표 4 에 대하여 더욱 상세하게 설명된 res_quant_bit 신택스 엘리먼트에 의해 표시될 수도 있다.
이 경우, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 인코더 (20) 는 컬러 맵핑 계수들의 원래 값들과, 컬러 맵핑 계수들의 예측들 값들에 기초하여 컬러 맵핑 계수들의 잔차 값들을 계산할 수도 있고, 결정된 양자화 값에 기초하여 컬러 맵핑 계수들의 잔차 값들을 양자화할 수도 있고, 그 다음으로, 비트스트림에서 컬러 맵핑 계수들의 잔차 값들을 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한, 결정된 양자화 값을 표시하기 위하여 res_quant_bit 신택스 엘리먼트를 인코딩할 수도 있다. 다음으로, 비디오 디코더 (30) 는 res_quant_bit 신택스 엘리먼트 및 컬러 맵핑 계수들의 잔차 값들을 디코딩하고, 결정된 양자화 값에 기초하여 컬러 맵핑 계수들의 잔차 값들을 역양자화하고, 디코딩된 잔차 값들 및 컬러 맵핑 계수들의 예측된 값들에 기초하여 컬러 맵핑 계수들을 재구성한다.
게다가, 컬러 맵핑 계수들의 값들은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초하여 소정의 범위 내에 있도록 한정될 수도 있다. 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 의 값은 3D 룩업 테이블을 생성하는 연산 복잡도를 감소시키기 위한 어떤 범위로 제한될 수도 있다. 하나의 예로서, 값은 -2M 내지 2M-1 까지의 범위 내에 있도록 한정될 수 있고, 여기서, M 은 10 또는 12 와 같은 미리 정의된 고정된 값과 동일하게 설정된다. 대안적으로, M 의 값은 3D 룩업 테이블의 양자화 비트 값 N, 입력 비트-심도 (즉, Bi), 또는 출력 비트-심도 (즉, Bo) 중의 하나 이상에 종속적일 수도 있다.
위에서 설명된 또 다른 예에서, 옥탄트들 또는 파티션들의 각각에 대하여, 비디오 인코더 (20) 는 3D 룩업 테이블에서 컬러 값들을 표시하기 위하여 옥탄트의 정점들의 값들을 시그널링할 수도 있다. 3D 룩업 테이블의 컬러 값들을 시그널링하기 위하여 이용될 수도 있는 coding_octant 신택스 테이블은 옥탄트 정점들의 값들을 시그널링하는 것에 대하여 이 개시물에서 주로 설명된다. 그러나, 실질적으로 유사한 coding_octant 신택스 테이블은 각각의 옥탄트에 대한 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들의 값들을 시그널링하기 위하여 이용될 수도 있다.
상기 표 4 에서 도시된 3D 룩업 테이블 컬러 데이터 신택스에서 포함된 coding_octant 신택스 테이블은 이하의 표 5 에 대하여 설명되어 있다. 위에서 인용된 SHVC WD3 에 대한 임의의 편집들, 추가들, 또는 업데이트들은 이탤릭체의 텍스트에 의해 표시된다.
Figure pct00026
1 과 동일한 split_octant_flag 는, 옥탄트는 정점 잔차 옥탄트 코딩의 목적을 위하여 모든 방향들에서 절반의 크기를 갖는 8 개의 옥탄트들로 분할되는 것을 지정한다. 존재하지 않을 때, 그것은 0 과 동일한 것으로 추론된다.
변수 YPartNum 는 YPartNum=1<<cur_y_part_num_log2 로서 유도된다.
1 과 동일한 encoded_vertex_flag 는 인덱스 [yIdx2+i][uIdx][vIdx][vertex] 를 갖는 정점의 잔차들이 존재한다는 것을 지정한다. 0 과 동일한 encoded_vertex_flag 는 정점에 대한 잔차들이 존재하지 않는다는 것을 지정한다. 존재하지 않을 때, 플래그는 제로와 동일한 것으로 추론된다.
변수 yIdx 는 다음과 같이 유도된다.
yIdx=(y+l*(length>>cur_y_part_num_log2))>>(InputBitDepth- cur_octant_depth - cur_y_part_num_log2)
변수 uIdx 는 다음과 같이 유도된다.
uIdx=u>>(InputBitDepth - cur_octant_depth)
변수 vIdx 는 다음과 같이 유도된다.
vIdx=v>>(InputBitDepth - cur_octant_depth)
resY[yIdx][uIdx][vIdx][vertex], resU[yIdx][uIdx][vIdx][vertex], 및 resV[yIdx][uIdx][vIdx][vertex] 는 인덱스 [yIdx][uIdx][vIdx][vertex] 를 갖는 정점의 Y, U, 및 V 컴포넌트들과, 이 정점에 대한 예측된 Y, U, 및 V 컴포넌트 값들 사이의 차이들 (즉, 잔차 값들) 이다. 존재하지 않을 때, 이 차이들 resY[yIdx][uIdx][vIdx][vertex], resU[yIdx][uIdx][vIdx][vertex], 및 resV[yIdx][uIdx][vIdx][vertex] 는 0 과 동일한 것으로 추론된다.
3D 룩업 테이블의 각각의 옥탄트에 대한 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 시그널링하는 일 예의 기법에서는, 정점 잔차 값들 resY[yIdx][uIdx][vIdx][vertex], resU[yIdx][uIdx][vIdx][vertex], 및 resV[yIdx][uIdx][vIdx][vertex] 을 시그널링하는 대신에, coding_octant 신택스 테이블이 옥탄트의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들 (즉, a, b, c, 및 d) 과, 옥탄트에 대한 예측된 컬러 맵핑 계수 값들 사이의 차이들인 잔차 값들을 표시할 수도 있다.
옥탄트 정점들의 값들을 시그널링하는 일 예의 기법에 주목하면, 3D 룩업 테이블의 각각의 엔트리는 다음과 같이 유도될 수도 있다:
lutX[yIdx][uIdx][vIdx][vertex] = (resX[yIdx][uIdx][vIdx][vertex] << res_quant_bit) + predX[yIdx][uIdx][vIdx][vertex],
여기서, X 는 컬러 컴포넌트들 Y, U, 및 V 의 각각을 표시하고, predX[yIdx][uIdx][vIdx][vertex] 는 이하의 표 6 에 따라 유도된다.
Figure pct00027
일부의 경우들에는, 추가적인 오프셋이 상기 표 6 에 대하여 설명된 예측 절차의 시프트 동작 동안에 적용될 수도 있다.
3D 룩업 테이블의 각각의 옥탄트에 대한 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 시그널링하는 일 예의 기법에서는, 컬러 맵핑 계수들의 잔차 값들을 역양자화함으로써, 그리고 컬러 맵핑 계수들의 역양자화된 잔차 값들을 컬러 맵핑 계수들의 예측된 값들에 추가함으로써 3D 룩업 테이블의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들 (즉, lutY, lutU, lutV) 을 유도하거나 재구성하기 위하여, 유사한 수학식들이 이용될 수도 있다.
일부의 경우들에는, 컬러 맵핑 계수들 lutY, lutU, 및 lutV 의 값들은 3D 룩업 테이블을 생성하는 연산 복잡도를 감소시키기 위하여 어떤 범위로 제한될 수도 있다. 하나의 예로서, 값은 -2M 내지 2M-1 까지의 범위 내에 있도록 한정될 수 있고, 여기서, M 은 10 또는 12 와 같은 미리 정의된 고정된 값과 동일하게 설정된다. 대안적으로, M 의 값은 3D 룩업 테이블의 양자화 비트 값 N, 입력 비트-심도 (즉, Bi), 또는 출력 비트-심도 (즉, Bo) 중의 하나 이상에 종속적일 수도 있다.
비디오 인코더 (20) 및/또는 비디오 디코더 (30) 가 위에서 설명된 하나 이상의 예의 기법들을 이용하여 3D 룩업 테이블을 생성한 후, 컬러 예측은 3D 룩업 테이블을 이용하여 다음과 같이 수행될 수도 있다. 컬러 예측 프로세스에 대한 입력은 하나의 색 공간, 예컨대, 비디오 데이터의 하위 또는 기본 계층에 대한 제 1 색역에서 (y,u,v) 트리플렛이다. 컬러 예측 프로세스의 출력은 또 다른 색 공간, 예컨대, 비디오 데이터의 상위 또는 강화 계층에 대한 제 2 색역에서 트리플렛 (Y,U,V) 이다. 먼저, 입력 트리플렛 (y,u,v) 을 커버하는 최소 옥탄트 또는 큐보이드는 3D 룩업 테이블에서 위치된다. 큐보이드의 시작 정점의 인덱스들의 각각은 다음과 같이 유도된다:
yIndex = y >> (InputBitDepth - cur_octant_depth - cur_y_part_num_log2)
uIndex = u >> (InputBitDepth - cur_octant_depth)
vIndex = v >> (InputBitDepth - cur_octant_depth)
일부의 예들에서, 추가적인 오프셋은 인덱스 계산 동안에 적용될 수도 있다. 다음으로, 옥탄트 또는 큐보이드의 또 다른 3 개의 인덱스들은 (yIndex, uIndex+1, vIndex); (yIndex, uIndex+1, vIndex+1); 및 (yIndex+1, uIndex+1, vIndex+1) 로서 유도된다. 이 4 개의 정점들은, 도 12 에서 4면체 (156D) 로서 예시되어 있는 제 4 경우의 4면체 보간 (P0, P1, P3, P7) 에 대응할 수도 있다. 다음으로, 출력 트리플렛 (Y,U,V) 은, 4 개의 정점들의 3D 룩업 값들을 보간하는 4면체 보간에 의해 획득된다. 다른 예들에서는, 4면체 보간의 다른 경우들이 이용될 수도 있다. 대안적으로, 옥탄트 또는 큐보이드의 모든 8 개의 정점들이 유도될 수도 있다. 이 경우, 3-선형 보간은 출력 트리플렛 (Y, U, V) 을 유도하기 위하여 이용될 수도 있다.
또 다른 예에서, 3D 룩업 테이블은 SPS 또는 PPS 에서 시그널링될 수도 있다. 다음으로, 슬라이스 헤더에서, 추가적인 플래그는 3D 룩업 테이블이 현재의 슬라이스에 대해 겹쳐쓰기 (overwrite) 될 것인지 여부를 표시하기 위하여 시그널링될 수도 있다. 대안적으로 또는/및 추가적으로, 3D 룩업 테이블은 SPS 에서 시그널링될 수도 있고, PPS 에서 업데이트될 수도 있다. max_octant_depth, max_y_part_num_log2, input_bit_depth, 및 output_bit_depth 와 같은 공통적인 정보는 SPS 또는 PPS 에서와 같이 최고 레벨에서 시그널링되기만 할 수도 있다는 것에 주목해야 한다. 여기서, max_octant_depth 및 max_y_part_num_log2 는 3D 룩업 테이블의 최대 지원된 파티션 수를 나타낸다. 일부의 경우들에는, 이러한 정보가 최고 레벨에서 시그널링되는 대신에, 관련된 프로파일 및/또는 레벨일 수도 있다.
위에서 설명된 바와 같이, 추가적인 예에서, 비디오 인코더 (20) 는 1 초과의 옥탄트로 파티셔닝되는 크로마 컴포넌트들 중의 적어도 하나, 즉, 1 보다 더 큰 기본 파티션 값에 기초하여, 3D 룩업 테이블의 크로마 컴포넌트들 중의 적어도 하나 (즉, U 또는 V) 에 대한 파티셔닝 경계를 비디오 디코더 (30) 로 조건부로 시그널링할 수도 있다. 일부의 경우들에는, 크로마 컴포넌트들 중의 하나 또는 양자가 균등하게 파티셔닝되지 않을 수도 있다. 다시 말해서, 크로마 컴포넌트들 중의 소정의 하나에 대하여, 파티션들 중의 적어도 하나는 다른 파티션들과는 상이한 크기를 가진다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 파티셔닝을 정의한다.
기존에는, 크로마 컴포넌트가 2 개 이상의 세그먼트들 또는 옥탄트들로 균등하게 파티셔닝되는지 여부에 관계 없이, 각각의 크로마 컴포넌트에 대한 파티션 경계 정보가 항상 시그널링된다. 이 개시물의 기법들에 따르면, 하나의 예에서, 비디오 인코더 (20) 는 크로마 컴포넌트들 중의 적어도 하나 (즉, U 또는 V) 가 2 개 이상의 부분들로 파티셔닝될 때에 파티셔닝 경계를 시그널링하기만 한다. 이와 다를 경우, 파티션 경계는 불필요하고, 비디오 디코더로 시그널링되지 않는다. 또 다른 예에서, 비디오 인코더 (20) 는 크로마 컴포넌트들의 각각 (즉, U 및 V) 이 2 개 이상의 부분들로 파티셔닝될 때에 파티셔닝 경계를 시그널링하기만 한다.
이하의 표 7 에 대하여 설명된 예에서, 조건은 cur_octant_depth 신택스 엘리먼트가 1 과 동일한 것에 기초한다. 상기 표 4 에 대하여 위에서 설명된 바와 같이, cur_octant_depth 신택스 엘리먼트는 기본 파티션 값을 3D 룩업 테이블에 대한 최대 분할된 심도로서 표시한다. cur_octant_depth 신택스 엘리먼트가 1 과 동일할 때, 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각은 2 개의 세그먼트들 또는 옥탄트들로 파티셔닝된다. 이 경우, 크로마 컴포넌트들의 양자 (즉, U 및 V) 는 파티션 경계 정보를 시그널링하기 위한 조건을 충족시키기 위하여 2 개의 부분들로 파티셔닝되어야 한다. 위에서 인용된 SHVC WD3 에 대한 임의의 편집들, 추가들, 또는 업데이트들은 이탤릭체의 텍스트에 의해 표시된다.
Figure pct00028
cb_part_threshold_minus_center 신택스 엘리먼트는 제 1 크로마 (즉, Cb) 컴포넌트에 대한 파티션 경계를 지정한다. cb_part_threshold_minus_center 신택스 엘리먼트가 존재하지 않을 때, 그것은 0 으로서 추론된다.
변수 CbPartThreshold 는 (1<< (cm_input_luma_bit_depth_minus8 + cm_input_chroma_bit_depth_delta + 7)) + cb_part_threshold_minus_center 과 동일하게 설정된다.
Cb 값이 변수 CbPartThreshold 보다 더 작거나, 또는 더 크지 않을 때, Cb 값은 제 1 Cb 파티션에 속한다. 이와 다를 경우, 그것은 제 2 Cb 파티션에서 속한다.
cr _part_threshold_minus_center 신택스 엘리먼트는 제 2 크로마 (즉, Cr) 컴포넌트에 대한 파티션 경계를 지정한다. cr_part_threshold_minus_center 신택스 엘리먼트가 존재하지 않을 때, 그것은 0 으로서 추론된다.
변수 CrPartThreshold 는 (1<< (cm_input_luma_bit_depth_minus8 + cm_input_chroma_bit_depth_delta + 7)) + cr_part_threshold_minus_center 로 설정된다.
Cr 값이 변수 CrPartThreshold 보다 더 작거나 더 크지 않을 때, Cr 값은 제 1 Cr 파티션에 속한다. 이와 다를 경우, 그것은 제 2 Cr 파티션에서 속한다.
cb_part_threshold_minus_center 및 cr_part_threshold_minus_center 신택스 엘리먼트들은 코딩 전에 양자화되지 않는다는 것에 주목해야 한다.
도 14 는 멀티-계층 비디오 코딩에서 3D 룩업 테이블 기반 색역 스케일러빌러티를 이용하기 위한 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 예를 예시하는 블록도이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 소정의 비디오 프레임 또는 픽처 내의 비디오에서의 공간적 중복성을 감소시키거나 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내의 비디오에 있어서의 시간적 중복성을 감소시키거나 제거하기 위하여 시간적 예측에 의존한다. 인트라-모드 (I 모드) 는 몇몇 공간 기반 코딩 모드들 중의 임의의 것을 지칭할 수도 있다. 단방향-예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은 인터-모드들은 몇몇 시간 기반 코딩 모드들 중의 임의의 것을 지칭할 수도 있다.
도 14 에서 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩되어야 할 비디오 프레임 내의 현재의 비디오 블록을 수신한다. 도 14 의 예에서, 비디오 인코더 (20) 는 모드 선택 유닛 (40), 비디오 데이터 메모리 (41), 디코딩된 픽처 버퍼 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 모드 선택 유닛 (40) 은 궁극적으로, 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라 예측 프로세싱 유닛 (46), 파티션 유닛 (48), 및 컬러 예측 프로세싱 유닛 (66) 을 포함한다. 비디오 블록 재구성을 위하여, 비디오 인코더 (20) 는 또한, 역양자화 유닛 (58), 역변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 디블록킹 필터 (deblocking filter; 도 14 에서 도시되지 않음) 는 또한, 블록 경계들을 필터링하여, 재구성된 비디오로부터 블록화 아티팩트 (blockiness artifact) 들을 제거하기 위하여 포함될 수도 있다. 희망하는 경우, 디블록킹 필터는 전형적으로 합산기 (62) 의 출력을 필터링할 것이다. (루프 내의 또는 루프 이후의) 추가적인 필터들은 또한, 디블록킹 필터에 추가하여 이용될 수도 있다. 이러한 필터들은 간결함을 위하여 도시되어 있지 않지만, 희망하는 경우, (인-루프 필터 (in-loop filter) 로서) 합산기 (50) 의 출력을 필터링할 수도 있다.
비디오 데이터 메모리 (41) 는 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩되어야 할 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (41) 내에 저장된 비디오 데이터는 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (64) 는 예컨대, 인트라-코딩 또는 인터-코딩 모드들에서 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩함에 있어서 이용하기 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (41) 및 디코딩된 픽처 버퍼 (64) 는 동기식 DRAM (synchronous DRAM; SDRAM), 자기저항성 RAM (magnetoresistive RAM; MRAM), 저항성 RAM (resistive RAM; RRAM), 또는 다른 타입들의 메모리 디바이스들을 포함하는 동적 랜덤 액세스 메모리 (dynamic random access memory; DRAM) 와 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (41) 및 디코딩된 픽처 버퍼 (64) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (41) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 함께 온-칩 (on-chip) 일 수도 있거나, 그러한 컴포넌트들에 관하여 오프-칩 (off-chip) 일 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩되어야 할 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간적 예측을 제공하기 위하여, 하나 이상의 참조 프레임들 내의 하나 이상의 블록들에 관하여 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라 예측 프로세싱 유닛 (46) 은 대안적으로, 공간적 예측을 제공하기 위하여, 코딩되어야 할 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 관하여 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예컨대, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위하여, 다수의 코딩 패스 (coding pass) 들을 수행할 수도 있다.
또한, 파티션 유닛 (48) 은 이전의 코딩 패스들에서의 이전의 파티셔닝 방식들의 평가에 기초하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수도 있다. 예를 들어, 파티션 유닛 (48) 은 초기에, 프레임 또는 슬라이스를 LCU 들로 파티셔닝할 수도 있고, 레이트-왜곡 (rate-distortion) 분석 (예컨대, 레이트-왜곡 최적화) 에 기초하여 LCU 들의 각각을 서브-CU 들로 파티셔닝할 수도 있다. 모드 선택 유닛 (40) 은 서브-CU 들로의 LCU 의 파티셔닝을 표시하는 쿼드트리 데이터 구조를 추가로 생성할 수도 있다. 쿼드트리의 리프-노드 CU 들은 하나 이상의 PU 들 및 하나 이상의 TU 들을 포함할 수도 있다.
모드 선택 유닛 (40) 은 예컨대, 에러 결과들에 기초하여 코딩 모드들 중의 하나, 인트라 또는 인터를 선택할 수도 있고, 결과적인 인트라-코딩된 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위하여 합산기 (50) 에, 그리고 참조 프레임으로서의 이용을 위한 인코딩된 블록을 재구성하기 위하여 합산기 (62) 에 제공한다. 모드 선택 유닛 (40) 은 또한, 모션 벡터들, 인트라-모드 표시자들, 파티션 정보, 및 다른 이러한 신택스 정보와 같은 신택스 엘리먼트들을 엔트로피 인코딩 유닛 (56) 에 제공한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위하여 별도로 예시되어 있다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는 현재의 픽처 (또는 다른 코딩된 유닛) 내에서 코딩되고 있는 현재의 블록에 관한 참조 픽처 (또는 다른 코딩된 유닛) 내의 예측 블록에 관한 현재의 비디오 프레임 또는 픽처 내의 비디오 블록의 PU 의 변위를 표시할 수도 있다. 예측 블록은, 절대차의 합 (sum of absolute difference; SAD), 제곱차의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이의 측면에서, 코딩되어야 할 블록과 근접하게 일치하는 것으로 구해지는 블록이다. 일부의 예들에서, 비디오 인코더 (20) 는 디코딩된 픽처 버퍼 (64) 내에 저장된 참조 픽처들의 정수-미만 (sub-integer) 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 유닛 (42) 은 전체 픽셀 위치들 및 분수 픽셀 위치들에 관하여 모션 검색을 수행할 수도 있고, 분수 픽셀 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써, 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 디코딩된 픽처 버퍼 (64) 내에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은 모션 추정 유닛 (42) 에 의해 결정된 모션 벡터에 기초하여 예측 블록을 불러오거나 생성하는 것을 포함할 수도 있다. 또한, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부의 예들에서 기능적으로 통합될 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시에, 모션 보상 유닛 (44) 은 모션 벡터가 참조 픽처 리스트들 중의 하나에서 가리키는 예측 블록을 로케이팅할 수도 있다. 합산기 (50) 는 이하에서 논의된 바와 같이, 코딩되고 있는 현재의 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 일반적으로, 모션 추정 유닛 (42) 은 루마 컴포넌트들에 관하여 모션 추정을 수행하고, 모션 보상 유닛 (44) 은 크로마 컴포넌트들 및 루마 컴포넌트들의 양자에 대한 루마 컴포넌트들에 기초하여 계산된 모션 벡터들을 이용한다. 모드 선택 유닛 (40) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 비디오 디코더 (30) 에 의해 이용하기 위한 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 프로세싱 유닛 (46) 은 위에서 설명된 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라 예측 프로세싱 유닛 (46) 은 현재의 블록을 인코딩하기 위하여 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부의 예들에서, 인트라 예측 프로세싱 유닛 (46) 은 예컨대, 별도의 인코딩 패스 (encoding pass) 들 동안에 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 프로세싱 유닛 (46) (또는 일부의 예들에서, 모드 선택 유닛 (40)) 은 테스팅된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다.
예를 들어, 인트라 예측 프로세싱 유닛 (46) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산할 수도 있고, 테스팅된 모드들 중에서 최상의 레이트-왜곡 특성들을 가지는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위하여 인코딩되었던 원래의 인코딩되지 않은 블록과의 사이의 왜곡 (또는 에러) 의 양뿐만 아니라, 인코딩된 블록을 생성하기 위해 이용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛 (46) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위하여 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비 (ratio) 들을 계산할 수도 있다.
블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (또한 코드워드 맵핑 테이블 (codeword mapping table) 들로서 지칭됨) 을 포함할 수도 있는 송신된 비트스트림 구성 데이터에서, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들과, 컨텍스트들의 각각에 대해 이용하기 위한 가장 가능성 있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블, 및 수정된 인트라-예측 모드 인덱스 테이블의 표시들을 포함할 수도 있다.
비디오 인코더 (20) 는 코딩되고 있는 원래의 비디오 블록으로부터 모드 선택 유닛 (40) 으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (discrete cosine transform; DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 프로세싱 유닛 (52) 은 DCT 와 개념적으로 유사한 다른 변환들을 수행할 수도 있다. 웨이블렛 변환 (wavelet transform) 들, 정수 변환 (integer transform) 들, 서브-대역 변환 (sub-band transform) 들, 또는 다른 타입들의 변환들이 또한 이용될 수 있다. 여하튼, 변환 프로세싱 유닛 (52) 은 변환을 잔차 블록에 적용하여, 잔차 변환 계수들의 블록을 생성한다. 변환은 잔차 정보를 픽셀 값 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다. 변환 프로세싱 유닛 (52) 은 결과적인 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다.
양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위하여 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화도 (degree of quantization) 는 양자화 파라미터를 조절함으로써 수정될 수도 있다. 일부의 예들에서, 다음으로, 양자화 유닛 (54) 은 양자화된 변환 계수들을 포함하는 행렬 (matrix) 의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 은 스캔을 수행할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 컨텍스트 적응 2진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 확률 간격 파티셔닝 엔트로피 (probability interval partitioning entropy; PIPE) 코딩 또는 또 다른 엔트로피 코딩 기법을 수행할 수도 있다. 컨텍스트-기반 엔트로피 코딩의 경우, 컨텍스트는 이웃하는 블록들에 기초할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비트스트림은 또 다른 디바이스 (예컨대, 비디오 디코더 (30)) 로 송신될 수도 있거나, 더 이후의 송신 또는 취출을 위해 아카이빙될 수도 있다.
역양자화 유닛 (58) 및 역변환 프로세싱 유닛 (60) 은 예컨대, 참조 블록으로서의 더 이후의 이용을 위하여, 픽셀 도메인에서 잔차 블록을 재구성하기 위하여 역양자화 및 역변환을 각각 적용한다. 모션 보상 유닛 (44) 은 잔차 블록을 디코딩된 픽처 버퍼 (64) 의 프레임들 중의 하나의 프레임의 예측 블록에 추가함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 모션 추정 시에 이용하기 위한 정수-미만 픽셀 값들을 계산하기 위하여 하나 이상의 보간 필터들을 재구성된 잔차 블록에 적용할 수도 있다. 합산기 (62) 는 디코딩된 픽처 버퍼 (64) 에서의 저장을 위한 재구성된 비디오 블록을 생성하기 위하여, 재구성된 잔차 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 추가한다. 재구성된 비디오 블록은 추후의 비디오 프레임에서 블록을 인터-코딩하기 위하여, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 이용될 수도 있다.
이 개시물에서 설명된 기법들에 따르면, 비디오 인코더 (20) 는 멀티-계층 비디오 데이터를 인코딩할 때에 3D 룩업 테이블 기반 색역 스케일러빌러티를 수행하도록 구성된다. 비디오 인코더 (20) 는 SHVC 확장, MV-HEVC 확장, 및 3D-HEVC 확장, 또는 다른 멀티-계층 비디오 코딩 확장들 중의 임의의 것에 따라 멀티-계층 비디오 데이터를 예측하고 인코딩할 수도 있다. 구체적으로, 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은, 비디오 데이터의 상위 계층에 대한 색역이 비디오 데이터의 하위 계층에 대한 색역과는 상이할 때에 비디오 데이터의 상위 계층의 픽처에서 비디오 블록들을 예측하기 위하여 이용된 인터-계층 참조 픽처들을 생성할 수도 있다.
비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 참조 픽처의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여, 색역 스케일러빌러티를 위한 3D 룩업 테이블을 이용하여 컬러 예측을 수행할 수도 있다. 일부의 예들에서, 컬러 예측 프로세싱 유닛 (66) 은 컬러 컴포넌트들, 즉, 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각에 대한 별도의 3D 룩업 테이블을 생성할 수도 있다. 3D 룩업 테이블들의 각각은 루마 차원, 제 1 크로마 차원, 및 제 2 크로마 차원을 포함하고, 3 개의 독립적인 컬러 컴포넌트들을 이용하여 인덱싱된다.
이 개시물의 기법들은 색역 스케일러빌러티를 위한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보의 시그널링에 관한 것이다. 이러한 기법들의 일부의 예들에서, 비디오 인코더 (20) 는 색역 스케일러빌러티를 위해 생성된 3D 룩업 테이블의 파티션 정보 및/또는 컬러 값들을 인코딩할 수도 있다. 이 개시물에서 설명된 기법들은 비대칭적 및/또는 불균형한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링함에 있어서 특히 유용할 수도 있다.
개시된 기법들의 하나의 예에서, 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성할 수도 있다. 컬러 예측 프로세싱 유닛 (66) 은 기본 파티션 값, 예컨대, 3D 룩업 테이블에 대한 최대 분할된 심도에 따라 제 1 크로마, 제 2 크로마, 및 루마 컬러 컴포넌트들의 각각을 제 1 수의 옥탄트들로 파티셔닝함으로써, 그리고 다음으로, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 추가로 파티셔닝함으로써, 이 3D 룩업 테이블을 생성할 수도 있다. 이러한 방법으로, 3D 룩업 테이블의 제 1 및 제 2 크로마 컴포넌트들의 각각은 더 작은 수 또는 더 적은 옥탄트들로 파티셔닝되고 (즉, 더욱 조대하게 파티셔닝됨), 3D 룩업 테이블의 루마 컴포넌트는 더 큰 수 또는 더 많은 옥탄트들로 파티셔닝된다 (즉, 더욱 미세하게 파티셔닝됨).
하나의 예로서, 기본 파티션 값은 1 과 동일하여, 컬러 컴포넌트들의 각각은 단일 옥탄트로 파티셔닝되고, 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 단일 옥탄트는 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 4x1x1 의 3D 룩업 테이블을 낳는다. 또 다른 예로서, 기본 파티션 값은 2 와 동일하여, 컬러 컴포넌트들의 각각은 2 개의 옥탄트들로 파티셔닝되고, 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 2 개의 옥탄트들의 각각은 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 8x2x2 의 3D 룩업 테이블을 낳는다. 알 수 있는 바와 같이, 더 낮은 파티션 값은 컬러 컴포넌트에 대한 더욱 조대한 파티셔닝 (즉, 더 작은 수의 옥탄트들) 을 낳는다.
일부의 경우들에는, 컬러 예측 프로세싱 유닛 (66) 이 루마 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 1 신택스 엘리먼트) 를 생성한다. 다른 경우들에는, 루마 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 유도되거나 알려질 수도 있다. 하나의 예로서, 컬러 예측 프로세싱 유닛 (66) 은 기본 파티션 값에 적어도 부분적으로 기초하여 루마 파티션 값을 유도할 수도 있다. 일부의 경우들에는, 컬러 예측 프로세싱 유닛 (66) 은 또한, 기본 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 2 신택스 엘리먼트) 를 생성할 수도 있다. 다른 경우들에는, 기본 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 알려진 미리 정의된 값일 수도 있다. 다음으로, 비디오 인코더 (20) 의 엔트로피 인코딩 유닛 (56) 은 제 1 및/또는 제 2 신택스 엘리먼트를 엔트로피 인코딩할 수도 있다.
게다가, 비디오 인코더 (20) 는 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 하나 이상의 신택스 엘리먼트들을 조건부로 인코딩할 수도 있다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 파티셔닝을 정의한다. 이 개시물의 기법들의 일부의 예들에 따르면, 비디오 인코더 (20) 는 크로마 컴포넌트들 중의 적어도 하나가 1 초과의 옥탄트로 파티셔닝될 때, 즉, 기본 파티션 값이 1 보다 더 클 때에 파티셔닝 경계를 표시하는 신택스 엘리먼트들을 인코딩하기만 한다. 이와 다를 경우, 파티션 경계를 시그널링하는 것은 불필요하다.
개시된 기법들의 또 다른 예에서, 비디오 인코더 (20) 는 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다. 위에서 설명된 바와 같이, 일부의 경우들에는, 비디오 인코더 (20) 가 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수를 표시하는 적어도 하나의 신택스 엘리먼트를 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩할 수도 있다. 선형 컬러 맵핑 함수는 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된다. 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들은 비디오 데이터의 하위 및 상위 계층들의 컬러 컴포넌트들 사이의 가중화 인자들이다. 컬러 컴포넌트들의 각각에 대하여, 컬러 맵핑 계수들 중의 하나는 비디오 데이터의 하위 및 상위 계층들의 동일한 컬러 컴포넌트 사이의 가중화 인자를 정의하는 핵심 계수일 수도 있다.
선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들은 부동 소수점 값들로서 유도될 수도 있다. 컬러 맵핑 계수들을 인코딩하기 전에, 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은 컬러 맵핑 계수들의 부동 소수점 값들을 정수 값들로 변환할 수도 있다. 변환은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 기초하는 정수 값들에 대한 비트-심도를 이용할 수도 있다. 게다가, 컬러 예측 프로세싱 유닛 (66) 은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초한 소정의 범위 내에 있도록 컬러 맵핑 계수들의 값들을 한정할 수도 있다.
이 개시물의 기법들의 일부의 예들에서, 컬러 예측 프로세싱 유닛 (66) 은 컬러 맵핑 계수들의 원래의 값들과, 컬러 맵핑 계수들의 예측된 값들 사이의 잔차 값들을 인코딩하기 위하여, 컬러 맵핑 계수들 중의 하나 이상을 예측할 수도 있다. 예를 들어, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (66) 은 미리 정의된 고정된 값들에 기초하여 선형 컬러 맵핑 함수의 컬러 맵핑 계수들을 예측할 수도 있다. 하나의 예에서, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (66) 은 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 핵심 계수를 인코딩할 수도 있고, 제로와 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 임의의 나머지 컬러 맵핑 계수들을 인코딩할 수도 있다. 이 예에서, 컬러 예측 프로세싱 유닛 (66) 은 제 1 옥탄트와 같은 적어도 하나의 이전에 인코딩된 옥탄트로부터의 예측된 값들에 기초하여 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들을 인코딩할 수도 있다.
다음으로, 비디오 인코더 (20) 의 엔트로피 인코딩 유닛 (56) 은 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들의 잔차 값들을 엔트로피 인코딩할 수도 있다. 일부의 경우들에는, 엔트로피 인코딩 전에, 비디오 인코더 (20) 가 결정된 양자화 값에 기초하여 양자화 유닛 (54) 을 이용하여 컬러 맵핑 계수들의 잔차 값들을 양자화할 수도 있다. 비디오 인코더 (20) 는 결정된 양자화 값을 인코딩할 수도 있다.
3D 룩업 테이블을 생성할 시에, 컬러 예측 프로세싱 유닛 (66) 은 3D 룩업 테이블을 이용하여 비디오 데이터의 하위 계층에 대한 참조 픽처의 컬러 예측을 수행하고, 컬러 예측된 참조 픽처에 기초하여 비디오 데이터의 상위 계층에 대한 적어도 하나의 인터-계층 참조 픽처를 생성한다. 인터-계층 참조 픽처를 생성할 시에, 비디오 인코더 (20) 의 모션 보상 유닛 (44) 은 3D 룩업 테이블을 이용하여 생성된 인터-계층 참조 픽처들에 기초하여 비디오 데이터의 상위 계층의 픽처에서 비디오 블록들을 예측하기 위하여 위에서 설명된 바와 같이 동작할 수도 있다. 다음으로, 비디오 인코더 (20) 는 비디오 디코더 (30) 로의 송신을 위한 비트스트림에서 비디오 블록들의 잔차 데이터를 인코딩할 수도 있다.
도 15 는 멀티-계층 비디오 코딩에서 3D 룩업 테이블 기반 색역 스케일러빌러티를 이용하여 결정하기 위한 기법들을 구현할 수도 있는 비디오 디코더 (30) 의 예를 예시하는 블록도이다. 도 15 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 비디오 데이터 메모리 (71), 모션 보상 유닛 (72), 인트라 예측 프로세싱 유닛 (74), 컬러 예측 프로세싱 유닛 (86), 역양자화 유닛 (76), 역변환 프로세싱 유닛 (78), 디코딩된 픽처 버퍼 (82), 및 합산기 (80) 를 포함한다. 일부의 예들에서, 비디오 디코더 (30) 는 비디오 인코더 (20) (도 14) 에 대하여 설명된 인코딩 패스와 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다. 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있는 반면, 인트라 예측 프로세싱 유닛 (74) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 인트라-예측 모드 표시자들에 기초하여 예측 데이터를 생성할 수도 있다.
비디오 데이터 메모리 (71) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩되어야 할, 인코딩된 비디오 비트스트림과 같은 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (71) 내에 저장된 비디오 데이터는 예를 들어, 컴퓨터-판독가능 매체 (16) 로부터, 예컨대, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들을 액세스함으로써 획득될 수도 있다. 비디오 데이터 메모리 (71) 는 인코딩된 비디오 비트스트림으로부터의 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (coded picture buffer; CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (82) 는 예컨대, 인트라-코딩 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩함에 있어서 이용하기 위한 참조 비디오 데이터를 저장하는 참조 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (71) 및 디코딩된 픽처 버퍼 (82) 는 동기식 DRAM (SDRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들을 포함하는 동적 랜덤 액세스 메모리 (DRAM) 와 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (71) 및 디코딩된 픽처 버퍼 (82) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (71) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 함께 온-칩일 수도 있거나, 그러한 컴포넌트들에 관하여 오프-칩일 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 표시자들, 및 다른 신택스 엘리먼트들을 생성하기 위하여 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (70) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 모션 보상 유닛 (72) 으로 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라 예측 프로세싱 유닛 (74) 은 시그널링된 인트라 예측 모드와, 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B 또는 P) 슬라이스로서 코딩될 때, 모션 보상 유닛 (72) 은 모션 벡터들과, 엔트로피 디코딩 유닛 (70) 으로부터 수신된 다른 신택스 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중의 하나 내의 참조 픽처들 중의 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 디코딩된 픽처 버퍼 (82) 내에 저장된 참조 픽처들에 기초하여, 디폴트 구성 기법들을 이용하여 참조 픽처 리스트들, List 0 및 List 1 을 구성할 수도 있다. 모션 보상 유닛 (72) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩되고 있는 현재의 비디오 블록에 대한 예측 블록들을 생성하기 위하여 예측 정보를 이용한다. 예를 들어, 모션 보상 유닛 (72) 은 비디오 슬라이스의 비디오 블록들을 코딩하기 위하여 이용된 예측 모드 (예컨대, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 타입 (예컨대, B 슬라이스 또는 P 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중의 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재의 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위하여, 수신된 신택스 엘리먼트들의 일부를 이용한다.
모션 보상 유닛 (72) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (72) 은 참조 블록들의 정수-미만 픽셀들에 대한 보간된 값들을 계산하기 위하여, 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 이용된 바와 같은 보간 필터들을 이용할 수도 있다. 이 경우, 모션 보상 유닛 (72) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정할 수도 있고, 예측 블록들을 생성하기 위하여 보간 필터들을 이용할 수도 있다.
역양자화 유닛 (76) 은, 비트스트림에서 제공되며 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화, 즉, 비양자화 (de-quantize) 한다. 역양자화 프로세스는 양자화도와, 마찬가지로, 적용되어야 할 역양자화도를 결정하기 위하여, 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 디코더 (30) 에 의해 계산된 양자화 파라미터 QPY 의 이용을 포함할 수도 있다. 역변환 프로세싱 유닛 (78) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위하여, 역변환, 예컨대, 역 DCT, 역정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (72) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역변환 프로세싱 유닛 (78) 으로부터의 잔차 블록들을 모션 보상 유닛 (72) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (80) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 희망하는 경우, 디블록킹 필터는 또한, 블록화 아티팩트들을 제거하기 위하여 디코딩된 블록들을 필터링하도록 적용될 수도 있다. (코딩 루프 내에 또는 코딩 루프 이후 중의 어느 하나에서의) 다른 루프 필터들은 또한, 픽셀 천이 (pixel transition) 들을 평탄화하거나, 또는 이와 다르게 비디오 품질을 개선시키기 위하여 이용될 수도 있다. 다음으로, 소정의 프레임 또는 픽처에서의 디코딩된 비디오 블록들은, 후속 모션 보상을 위해 이용된 참조 픽처들을 저장하는 디코딩된 픽처 버퍼 (82) 내에 저장된다. 디코딩된 픽처 버퍼 (82) 는 또한, 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에서의 더 이후의 제시를 위한 디코딩된 비디오를 저장한다.
이 개시물에서 설명된 기법들의 일부의 예들에 따르면, 비디오 디코더 (30) 는 멀티-계층 비디오 데이터를 디코딩할 때에 3D 룩업 테이블 기반 색역 스케일러빌러티를 수행하도록 구성된다. 비디오 디코더 (30) 는 SHVC 확장, MV-HEVC 확장, 및 3D-HEVC 확장, 또는 HEVC 에 대한 다른 멀티-계층 비디오 코딩 확장들 중의 임의의 것에 따라 예측된 멀티-계층 비디오 데이터를 디코딩하고 재구성할 수도 있다. 구체적으로, 비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 은, 비디오 데이터의 상위 계층에 대한 색역이 비디오 데이터의 하위 계층에 대한 색역과는 상이할 때에 비디오 데이터의 상위 계층의 픽처에서 비디오 블록들을 예측하기 위하여 이용된 인터-계층 참조 픽처들을 생성할 수도 있다.
비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 은 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 참조 픽처의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여, 색역 스케일러빌러티를 위한 3D 룩업 테이블을 이용하여 컬러 예측을 수행할 수도 있다. 일부의 예들에서, 컬러 예측 프로세싱 유닛 (86) 은 컬러 컴포넌트들, 즉, 루마 컴포넌트, 제 1 크로마 컴포넌트, 및 제 2 크로마 컴포넌트의 각각에 대한 별도의 3D 룩업 테이블을 생성할 수도 있다. 3D 룩업 테이블들의 각각은 루마 차원, 제 1 크로마 차원, 및 제 2 크로마 차원을 포함하고, 3 개의 독립적인 컬러 컴포넌트들을 이용하여 인덱싱된다.
이 개시물의 기법들은 색역 스케일러빌러티를 위한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보의 시그널링에 관한 것이다. 기법들에 따르면, 비디오 디코더 (30) 는 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 생성하기 위한 파티션 정보 및/또는 컬러 값들을 디코딩할 수도 있다. 이 개시물에서 설명된 기법들은 비대칭적 및/또는 불균형한 3D 룩업 테이블들을 생성하기 위하여 이용된 정보를 시그널링함에 있어서 특히 유용할 수도 있다.
개시된 기법들의 하나의 예에서, 비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 은 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성할 수도 있다. 컬러 예측 프로세싱 유닛 (86) 은 기본 파티션 값, 예컨대, 3D 룩업 테이블에 대한 최대 분할된 심도에 따라 제 1 크로마, 제 2 크로마, 및 루마 컬러 컴포넌트들의 각각을 제 1 수의 옥탄트들로 파티셔닝함으로써, 그리고 다음으로, 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 추가로 파티셔닝함으로써, 이 3D 룩업 테이블을 생성할 수도 있다. 이러한 방법으로, 3D 룩업 테이블의 제 1 및 제 2 크로마 컴포넌트들의 각각은 더 작은 수의 더 적은 옥탄트들로 파티셔닝되고 (즉, 더욱 조대하게 파티셔닝됨), 3D 룩업 테이블의 루마 컴포넌트는 더 큰 수 또는 더 많은 옥탄트들로 파티셔닝된다 (즉, 더욱 미세하게 파티셔닝됨).
하나의 예로서, 기본 파티션 값은 1 과 동일하여, 컬러 컴포넌트들의 각각은 단일 옥탄트로 파티셔닝되고, 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 단일 옥탄트는 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 4x1x1 의 3D 룩업 테이블을 낳는다. 또 다른 예로서, 기본 파티션 값은 2 와 동일하여, 컬러 컴포넌트들의 각각은 2 개의 옥탄트들로 파티셔닝되고, 루마 파티션 값은 4 와 동일하여, 루마 컴포넌트의 2 개의 옥탄트들의 각각은 4 개의 옥탄트들로 파티셔닝되고, 이것은 크기 8x2x2 의 3D 룩업 테이블을 낳는다. 알 수 있는 바와 같이, 더 낮은 파티션 값은 컬러 컴포넌트에 대한 더욱 조대한 파티셔닝 (즉, 더 작은 수의 옥탄트들) 을 낳는다.
일부의 경우들에는, 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 이 루마 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 1 신택스 엘리먼트) 를 엔트로피 디코딩한다. 다른 경우들에는, 루마 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 유도되거나 알려질 수도 있다. 하나의 예로서, 컬러 예측 프로세싱 유닛 (86) 은 기본 파티션 값에 적어도 부분적으로 기초하여 루마 파티션 값을 유도할 수도 있다. 일부의 경우들에는, 엔트로피 디코딩 유닛 (70) 이 또한, 기본 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 2 신택스 엘리먼트) 를 디코딩할 수도 있다. 다른 경우들에는, 기본 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 알려진 미리 정의된 값일 수도 있다. 컬러 예측 프로세싱 유닛 (86) 은 위에서 설명된 바와 같이, 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성하기 위하여 미리 정의되거나 시그널링된 기본 파티션 값과, 유도되거나 시그널링된 루마 파티션 값을 이용한다.
게다가, 비디오 디코더 (30) 는 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 하나 이상의 신택스 엘리먼트들을 조건부로 디코딩할 수도 있다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 파티셔닝을 정의한다. 이 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 크로마 컴포넌트들 중의 적어도 하나가 1 초과의 옥탄트로 파티셔닝될 때, 즉, 기본 파티션 값이 1 보다 더 클 때에 파티셔닝 경계를 표시하는 신택스 엘리먼트들을 디코딩하기만 한다. 이와 다를 경우, 파티션 경계를 디코딩하는 것은 불필요하다.
개시된 기법들의 또 다른 예에서, 비디오 디코더 (30) 는 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다. 위에서 설명된 바와 같이, 일부의 경우들에는, 비디오 디코더 (30) 가 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수를 표시하는 적어도 하나의 신택스 엘리먼트를 디코딩할 수도 있거나, 또는 이와 다르게, 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정할 수도 있다. 비디오 디코더 (30) 는 또한, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 디코딩할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩할 수도 있다. 선형 컬러 맵핑 함수는 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된다. 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들은 비디오 데이터의 하위 및 상위 계층들의 컬러 컴포넌트들 사이의 가중화 인자들이다. 컬러 컴포넌트들의 각각에 대하여, 컬러 맵핑 계수들 중의 하나는 비디오 데이터의 하위 및 상위 계층들의 동일한 컬러 컴포넌트 사이의 가중화 인자를 정의하는 핵심 계수일 수도 있다.
선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들은 먼저, 부동 소수점 값들로서 유도될 수도 있다. 다음으로, 부동 소수점 값들은 정수 값들로 변환되거나 양자화되고, 정수 값들로서 시그널링된다. 변환은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 기초하는 정수 값들에 대한 비트-심도를 이용할 수도 있다. 게다가, 컬러 예측 프로세싱 유닛 (86) 은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초한 소정의 범위 내에 있도록 컬러 맵핑 계수들의 값들을 한정할 수도 있다.
비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들의 잔차 값들을 엔트로피 디코딩할 수도 있다. 일부의 경우들에는, 엔트로피 디코딩 후에, 그리고 재구성 전에, 비디오 디코더 (30) 가 결정된 양자화 값에 기초하여 역양자화 유닛 (76) 을 이용하여 컬러 맵핑 계수들의 잔차 값들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 또한, 결정된 양자화 값을 표시하는 신택스 엘리먼트를 디코딩할 수도 있다.
이 개시물의 기법들에 따르면, 컬러 예측 프로세싱 유닛 (86) 은 컬러 맵핑 계수들의 잔차 값들과, 컬러 맵핑 계수들의 예측된 값들에 기초하여 컬러 맵핑 계수들의 값들을 재구성하기 위하여, 컬러 맵핑 계수들 중의 하나 이상을 예측할 수도 있다. 예를 들어, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (86) 은 미리 정의된 고정된 값들에 기초하여 선형 컬러 맵핑 함수의 컬러 맵핑 계수들을 예측할 수도 있다. 하나의 예에서, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (86) 은 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 핵심 계수를 디코딩할 수도 있고, 제로와 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 임의의 나머지 컬러 맵핑 계수들을 디코딩할 수도 있다. 이 예에서, 컬러 예측 프로세싱 유닛 (86) 은 제 1 옥탄트와 같은 적어도 하나의 이전에 디코딩된 옥탄트로부터의 예측된 값들에 기초하여 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들을 디코딩할 수도 있다.
3D 룩업 테이블을 생성할 시에, 컬러 예측 프로세싱 유닛 (86) 은 3D 룩업 테이블을 이용하여 비디오 데이터의 하위 계층에 대한 참조 픽처의 컬러 예측을 수행하고, 컬러 예측된 참조 픽처에 기초하여 비디오 데이터의 상위 계층에 대한 인터-계층 참조 픽처를 생성한다. 인터-계층 참조 픽처들을 생성할 시에, 비디오 디코더 (30) 의 모션 보상 유닛 (72) 은 디코딩된 잔차 데이터와, 3D 룩업 테이블을 이용하여 생성된 인터-계층 참조 픽처들에 기초하여 비디오 데이터의 상위 계층의 픽처에서 비디오 블록들을 재구성하기 위하여 위에서 설명된 바와 같이 동작할 수도 있다.
도 16 은 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 파티션 정보를 인코딩하는 일 예의 동작을 예시하는 플로우차트이다. 도 16 의 일 예의 동작은 도 14 의 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 에 의해 수행되는 것으로서 본원에서 설명된다. 다른 예들에서, 동작은 도 8 의 컬러 예측 프로세싱 유닛 (144) 에 의해 수행될 수도 있다.
이 개시물의 기법들에 따르면, 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성할 수도 있다. 컬러 예측 프로세싱 유닛 (66) 은 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마, 제 1 크로마, 및 제 2 크로마 컴포넌트들의 각각을 제 1 수의 옥탄트들로 파티셔닝함으로써 이 3D 룩업 테이블을 생성할 수도 있다 (180). 하나의 예에서, 기본 파티션 값은 3D 룩업 테이블에 대한 최대 분할된 심도일 수도 있다. 다음으로, 컬러 예측 프로세싱 유닛 (66) 은 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 추가로 파티셔닝한다 (182).
일부의 경우들에는, 비디오 인코더 (20) 가 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 1 신택스 엘리먼트) 를 인코딩할 수도 있다. 다른 경우들에는, 루마 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 유도되거나 알려질 수도 있다. 일부의 경우들에는, 비디오 인코더 (20) 는 또한, 3D 룩업 테이블에 대한 기본 파티션 값을 표시하는 적어도 하나의 추가적인 신택스 엘리먼트 (예컨대, 제 2 신택스 엘리먼트) 를 생성할 수도 있다. 다른 경우들에는, 기본 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 알려진 미리 정의된 값일 수도 있다.
게다가, 비디오 인코더 (20) 는 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 하나 이상의 신택스 엘리먼트들을 조건부로 인코딩할 수도 있다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 파티셔닝을 정의한다. 이 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 크로마 컴포넌트들 중의 하나가 1 초과의 옥탄트로 파티셔닝되는 것, 즉, 기본 파티션 값이 1 보다 더 큰 것에 기초하여, 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 신택스 엘리먼트들을 인코딩한다.
비디오 인코더 (20) 는 또한, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 컬러 컴포넌트들의 각각의 컬러 컴포넌트의 옥탄트들의 각각에 대한 정점들의 컬러 값들을 인코딩할 수도 있다. 또 다른 예로서, 비디오 인코더 (20) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩할 수도 있다. 이러한 방법으로, 도 15 로부터의 비디오 디코더 (30) 와 같은 비디오 디코더는 멀티-계층 비디오 데이터를 디코딩하기 위한 색역 스케일러빌러티를 수행하기 위하여, 시그널링된 파티션 정보 및 시그널링된 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다.
도 17 은 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 파티션 정보를 디코딩하는 일 예의 동작을 예시하는 플로우차트이다. 도 17 의 일 예의 동작은 도 15 의 비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 에 의해 수행되는 것으로서 본원에서 설명된다. 다른 예들에서, 동작은 도 8 의 컬러 예측 프로세싱 유닛 (144) 에 의해 수행될 수도 있다.
이 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 3D 룩업 테이블에 대한 기본 파티션 값을 결정한다 (186). 일부의 경우들에는, 비디오 디코더 (30) 가 수신된 비트스트림으로부터, 기본 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 2 신택스 엘리먼트) 를 디코딩할 수도 있다. 다른 경우들에는, 기본 파티션 값이 비디오 인코더 (20) 및 비디오 디코더 (30) 의 양자에서 알려진 미리 정의된 값일 수도 있다. 비디오 디코더 (30) 는 또한, 3D 룩업 테이블의 루마 컴포넌트에 대한 루마 파티션 값을 결정한다 (188). 일부의 경우들에는, 비디오 디코더 (30) 가 수신된 비트스트림으로부터, 루마 파티션 값을 표시하는 적어도 하나의 신택스 엘리먼트 (예컨대, 제 1 신택스 엘리먼트) 를 디코딩할 수도 있다. 다른 경우들에는, 비디오 디코더 (30) 가 루마 파티션 값을 유도할 수도 있다. 하나의 예에서, 비디오 디코더 (30) 는 기본 파티션 값에 적어도 부분적으로 기초하여 루마 파티션 값을 유도할 수도 있다.
비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 은 제 1 및 제 2 크로마 컴포넌트들에 대한 더욱 조대한 파티셔닝과, 루마 컴포넌트에 대한 더욱 미세한 파티셔닝을 갖는 3D 룩업 테이블을 생성하기 위하여, 기본 파티션 값 및 루마 파티션 값을 이용한다. 컬러 예측 프로세싱 유닛 (86) 은 기본 파티션 값에 기초하여 3D 룩업 테이블의 루마, 제 1 크로마, 및 제 2 크로마 컴포넌트들의 각각을 제 1 수의 옥탄트들로 파티셔닝함으로써 이 3D 룩업 테이블을 생성할 수도 있다 (190). 하나의 예에서, 기본 파티션 값은 3D 룩업 테이블에 대한 최대 분할된 심도일 수도 있다. 다음으로, 컬러 예측 프로세싱 유닛 (86) 은 루마 파티션 값에 기초하여 루마 컴포넌트의 제 1 수의 옥탄트들의 각각을 제 2 수의 옥탄트들로 추가로 파티셔닝한다 (192). 이러한 방식으로, 루마 컴포넌트는 크로마 컴포넌트들의 각각보다 더 큰 수의 옥탄트들을 가지도록 파티셔닝될 수도 있다.
게다가, 비디오 디코더 (30) 는 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 하나 이상의 신택스 엘리먼트들을 조건부로 디코딩할 수도 있다. 파티셔닝 경계는 2 개 이상의 옥탄트들로의 크로마 컴포넌트들 중의 하나의 불균등한 파티셔닝을 정의한다. 이 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 크로마 컴포넌트들 중의 하나가 1 초과의 옥탄트로 파티셔닝되는 것, 즉, 기본 파티션 값이 1 보다 더 큰 것에 기초하여, 크로마 컴포넌트들 중의 적어도 하나에 대한 파티셔닝 경계를 표시하는 신택스 엘리먼트들을 디코딩한다.
비디오 디코더 (30) 는 또한, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 디코딩할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 컬러 컴포넌트들의 각각의 컬러 컴포넌트의 옥탄트들의 각각에 대한 정점들의 컬러 값들을 디코딩할 수도 있다. 또 다른 예로서, 비디오 디코더 (30) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩할 수도 있다. 이러한 방법으로, 비디오 디코더 (30) 는 멀티-계층 비디오 데이터를 디코딩하기 위한 색역 스케일러빌러티를 수행하기 위하여, 시그널링된 파티션 정보 및 시그널링된 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다.
도 18 은 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 인코딩하는 일 예의 동작을 예시하는 플로우차트이다. 도 18 의 일 예의 동작은 도 14 의 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 에 의해 수행되는 것으로서 본원에서 설명된다. 다른 예들에서, 동작은 도 8 의 컬러 예측 프로세싱 유닛 (144) 에 의해 수행될 수도 있다.
이 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다 (200). 비디오 인코더 (20) 는 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 인코딩할 수도 있다. 더욱 구체적으로, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 인코더 (20) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩할 수도 있다 (202).
컬러 맵핑 계수들을 인코딩하기 전에, 비디오 인코더 (20) 의 컬러 예측 프로세싱 유닛 (66) 은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 기초하는 비트-심도를 이용하여 컬러 맵핑 계수들의 부동 소수점 값들을 정수 값들로 변환할 수도 있다. 게다가, 컬러 예측 프로세싱 유닛 (66) 은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초한 소정의 범위 내에 있도록 컬러 맵핑 계수들의 값들을 한정할 수도 있다.
컬러 예측 프로세싱 유닛 (66) 은 컬러 맵핑 계수들의 원래의 값들과, 컬러 맵핑 계수들의 예측된 값들 사이의 잔차 값들을 인코딩하기 위하여, 컬러 맵핑 계수들 중의 하나 이상을 예측할 수도 있다. 예를 들어, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (66) 은 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 핵심 계수를 인코딩할 수도 있고, 제로와 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 임의의 나머지 컬러 맵핑 계수들을 인코딩할 수도 있다. 이 예에서, 컬러 예측 프로세싱 유닛 (66) 은 제 1 옥탄트와 같은 적어도 하나의 이전에 인코딩된 옥탄트로부터의 예측된 값들에 기초하여 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들을 인코딩할 수도 있다. 일부의 경우들에는, 컬러 맵핑 계수들의 잔차 값들을 인코딩하기 전에, 비디오 인코더 (20) 는 결정된 양자화 값에 기초하여 컬러 맵핑 계수들의 잔차 값들을 양자화할 수도 있다.
비디오 인코더 (20) 는 또한, 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수를 표시하는 적어도 하나의 신택스 엘리먼트를 인코딩할 수도 있다. 이러한 방법으로, 도 15 로부터의 비디오 디코더 (30) 와 같은 비디오 디코더는 멀티-계층 비디오 데이터를 디코딩하기 위한 색역 스케일러빌러티를 수행하기 위하여, 시그널링된 파티션 정보 및 시그널링된 컬러 값들에 기초하여 3D 룩업 테이블을 생성할 수도 있다.
도 19 는 3D 룩업 테이블의 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 디코딩하는 일 예의 동작을 예시하는 플로우차트이다. 도 19 의 일 예의 동작은 도 15 의 비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 에 의해 수행되는 것으로서 본원에서 설명된다. 다른 예들에서, 동작은 도 8 의 컬러 예측 프로세싱 유닛 (144) 에 의해 수행될 수도 있다.
이 개시물의 기법들의 일부의 예들에 따르면, 비디오 디코더 (30) 는 3D 룩업 테이블의 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정한다 (204). 일부의 경우들에는, 비디오 디코더 (30) 가 수신된 비트스트림으로부터, 3D 룩업 테이블의 컬러 컴포넌트들 중의 적어도 하나에 대한 옥탄트들의 수를 표시하는 적어도 하나의 신택스 엘리먼트를 디코딩할 수도 있다. 비디오 디코더 (30) 는 또한, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대한 컬러 값들을 디코딩한다. 더욱 구체적으로, 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 비디오 디코더 (30) 는 3D 룩업 테이블에서 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩할 수도 있다 (206). 다음으로, 비디오 디코더 (30) 의 컬러 예측 프로세싱 유닛 (86) 은 루마, 제 1 크로마, 및 제 2 크로마 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 옥탄트들의 각각에 대한 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여 3D 룩업 테이블을 생성한다 (208). 비디오 디코더 (30) 는 멀티-계층 비디오 데이터를 디코딩하기 위한 색역 스케일러빌러티를 수행하기 위하여 3D 룩업 테이블을 이용할 수도 있다.
비디오 디코더 (30) 는 컬러 컴포넌트들의 각각에 대한 옥탄트들의 각각에 대하여, 컬러 맵핑 계수들의 잔차 값들을 수신할 수도 있다. 일부의 경우들에는, 컬러 맵핑 계수들의 잔차 값들을 디코딩한 후에, 비디오 디코더 (30) 가 결정된 양자화 값에 기초하여 컬러 맵핑 계수들의 잔차 값들을 역양자화할 수도 있다. 다음으로, 컬러 예측 프로세싱 유닛 (86) 은 컬러 맵핑 계수들의 시그널링된 잔차 값들과, 컬러 맵핑 계수들의 예측된 값들에 기초하여 컬러 맵핑 계수들의 값들을 재구성하기 위하여, 컬러 맵핑 계수들 중의 하나 이상을 예측할 수도 있다. 예를 들어, 컬러 컴포넌트들의 각각에 대한 제 1 옥탄트에 대하여, 컬러 예측 프로세싱 유닛 (86) 은 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 핵심 계수를 디코딩할 수도 있고, 제로와 동일한 예측된 값에 기초하여 선형 컬러 맵핑 함수의 임의의 나머지 컬러 맵핑 계수들을 디코딩할 수도 있다. 이 예에서, 컬러 예측 프로세싱 유닛 (86) 은 제 1 옥탄트와 같은 적어도 하나의 이전에 디코딩된 옥탄트로부터의 예측된 값들에 기초하여 컬러 컴포넌트들의 각각에 대한 임의의 나머지 옥탄트들의 컬러 맵핑 계수들을 디코딩할 수도 있다.
컬러 맵핑 계수들을 디코딩한 후에, 컬러 맵핑 계수들은 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 기초하는 비트-심도를 이용하여 부동 소수점 값들을 나타내는 정수 값들일 수도 있다. 컬러 예측 프로세싱 유닛 (86) 은 미리 정의된 고정된 값, 또는 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값에 기초한 소정의 범위 내에 있도록 컬러 맵핑 계수들의 값들을 한정할 수도 있다.
이 개시물의 어떤 양태들은 예시의 목적들을 위하여 HEVC 표준의 확장들에 대하여 설명되었다. 그러나, 이 개시물에서 설명된 기법들은 아직 개발되지 않은 다른 표준 또는 전용 비디오 코딩 프로세스들을 포함하는 다른 비디오 코딩 프로세스들에 대해 유용할 수도 있다.
이 개시물에서 설명된 바와 같은 비디오 코더는 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은 적용가능한 바와 같이, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
예에 따라서는, 본원에서 설명된 기법들 중의 임의의 것의 어떤 액트 (act) 들 또는 이벤트 (event) 들이 상이한 시퀀스에서 수행될 수 있거나, 추가될 수도 있거나, 병합될 수도 있거나, 또는 모두 배제 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 기법들의 실시를 위해 필요한 것은 아님) 될 수도 있다는 것이 인식되어야 한다. 또한, 어떤 예들에서는, 액트들 또는 이벤트들이 순차적인 것이 아니라, 예컨대, 멀티-스레딩된 (multi-threaded) 프로세싱, 인터럽트 프로세싱, 또는 다수의 프로세서들을 통해 동시에 수행될 수도 있다.
하나 이상의 예들에서는, 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 컴퓨터-판독가능 매체를 통해 송신될 수도 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적인 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위해 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터-판독가능 매체로 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 적외선, 라디오 (radio), 및 마이크로파 (microwave) 와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적인 매체들을 포함하는 것이 아니라, 그 대신에, 비-일시적인, 유형의 저장 매체들에 관한 것이라는 것을 이해해야 한다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (Blu-ray disc) 를 포함하고, 여기서, 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 이용된 바와 같은 용어 "프로세서" 는 상기한 구조, 또는 본원에서 설명된 기법들의 구현을 위해 적당한 임의의 다른 구조 중의 임의의 것을 지칭할 수도 있다. 게다가, 일부의 양태들에서는, 본원에서 설명된 기능성이 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱 (codec) 내에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
이 개시물의 기법들은 무선 핸드셋 (wireless handset), 집적 회로 (integrated circuit; IC) 또는 IC 들의 세트 (예를 들어, 칩셋) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위하여 이 개시물에서 설명되어 있지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 조합될 수도 있거나, 적당한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 하기의 특허청구범위 내에 있다.

Claims (50)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블의 3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하는 단계;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하는 단계;
    상기 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 상기 옥탄트들의 각각에 대한 상기 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여 상기 3D 룩업 테이블을 생성하는 단계;
    상기 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하는 단계; 및
    디코딩된 상기 잔차 데이터와, 상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 상기 비디오 블록들을 재구성하는 단계
    를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 컬러 맵핑 계수들은, 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중 적어도 하나에 기초한 비트-심도를 이용하여 부동 소수점 값들을 나타내는 정수 값들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 컬러 맵핑 계수들을 디코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 상기 컬러 맵핑 계수들 중의 적어도 하나의 계수를, 상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값에 기초하여, 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  4. 제 3 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값은 미리 정의된 고정된 값인, 비디오 데이터를 디코딩하는 방법.
  5. 제 3 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수는, 상기 비디오 데이터의 상기 하위 계층 및 상기 비디오 데이터의 상기 상위 계층의 동일한 컬러 컴포넌트 사이의 상기 선형 컬러 맵핑 함수를 위한 가중화 인자를 정의하는 핵심 계수를 포함하는, 비디오 데이터를 디코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 컬러 맵핑 계수들을 디코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 상기 핵심 계수를 디코딩하는 단계 및 제로와 동일한 예측된 값에 기초하여 상기 컬러 맵핑 계수들 중의 나머지 계수들을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  7. 제 3 항에 있어서,
    상기 컬러 맵핑 계수들을 디코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 각각의 나머지 옥탄트에 대하여, 상기 컬러 맵핑 계수들을, 적어도 하나의 이전에 디코딩된 옥탄트로부터 예측된 값들에 기초하여, 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 양자화 값을 결정하는 단계를 더 포함하고, 상기 컬러 맵핑 계수들을 디코딩하는 단계는
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대하여, 상기 컬러 맵핑 계수들의 잔차 값들을 디코딩하는 단계;
    결정된 상기 양자화 값에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 역 양자화하는 단계; 및
    상기 컬러 맵핑 계수들의 디코딩된 상기 잔차 값들 및 예측된 값들에 기초하여 상기 컬러 맵핑 계수들을 재구성하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  9. 제 8 항에 있어서,
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 상기 양자화 값을 결정하는 단계는 상기 양자화 값을 나타내는 적어도 하나의 신택스 엘리먼트를 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  10. 제 1 항에 있어서,
    미리 정의된 고정된 값, 또는 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값 중의 하나에 기초한 범위로 상기 컬러 맵핑 계수들의 값들을 한정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  11. 제 1 항에 있어서,
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 수를 결정하는 단계는 상기 3D 룩업 테이블의 상기 컬러 컴포넌트들 중의 적어도 하나에 대한 상기 옥탄트들의 수를 나타내는 적어도 하나의 신택스 엘리먼트를 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  12. 제 1 항에 있어서,
    상기 비디오 데이터의 상기 하위 계층에 대한 상기 제 1 색역에서의 참조 픽처의 컬러 데이터를 상기 비디오 데이터의 상기 상위 계층에 대한 상기 제 2 색역으로 변환하기 위하여 상기 3D 룩업 테이블을 이용하여 컬러 예측을 수행하는 단계; 및
    변환된 상기 컬러 데이터에 기초하여 상기 비디오 데이터의 상기 상위 계층에 대한 적어도 하나의 인터-계층 참조 픽처를 생성하는 단계를 더 포함하고,
    상기 비디오 데이터의 상기 비디오 블록들을 재구성하는 단계는 디코딩된 상기 잔차 데이터와, 상기 3D 룩업 테이블을 이용하여 생성된 상기 적어도 하나의 인터-계층 참조 픽처에 기초하여 상기 비디오 데이터의 상기 상위 계층의 픽처에서 비디오 블록들을 재구성하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  13. 비디오 데이터를 인코딩하는 방법으로서,
    3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수 및 상기 옥탄트들의 각각에 대한 컬러 값들에 기초하여 색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블을 생성하는 단계;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩하는 단계;
    상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 비디오 블록들을 예측하는 단계; 및
    비트스트림에서 상기 비디오 블록들의 잔차 데이터를 인코딩하는 단계
    를 포함하는, 비디오 데이터를 인코딩하는 방법.
  14. 제 13 항에 있어서,
    상기 컬러 맵핑 계수를 인코딩하기 전에, 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중 적어도 하나에 기초한 비트-심도를 이용하여 상기 컬러 맵핑 계수들의 부동 소수점 값들을 정수 값들로 변환하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  15. 제 13 항에 있어서,
    상기 컬러 맵핑 계수들을 인코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 상기 컬러 맵핑 계수들 중의 적어도 하나의 계수를, 상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값에 기초하여, 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  16. 제 15 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값은 미리 정의된 고정된 값인, 비디오 데이터를 인코딩하는 방법.
  17. 제 15 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수는, 상기 비디오 데이터의 상기 하위 계층 및 상기 비디오 데이터의 상기 상위 계층의 동일한 컬러 컴포넌트 사이의 상기 선형 컬러 맵핑 함수를 위한 가중화 인자를 정의하는 핵심 계수를 포함하는, 비디오 데이터를 인코딩하는 방법.
  18. 제 17 항에 있어서,
    상기 컬러 맵핑 계수들을 인코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 상기 핵심 계수를 인코딩하는 단계 및 제로와 동일한 예측된 값에 기초하여 상기 컬러 맵핑 계수들 중의 나머지 계수들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  19. 제 15 항에 있어서,
    상기 컬러 맵핑 계수들을 인코딩하는 단계는, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 각각의 나머지 옥탄트에 대하여, 상기 컬러 맵핑 계수들을, 적어도 하나의 이전에 인코딩된 옥탄트로부터 예측된 값에 기초하여, 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  20. 제 13 항에 있어서,
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 양자화 값을 결정하는 단계를 더 포함하고, 상기 컬러 맵핑 계수들을 인코딩하는 단계는
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 컬러 맵핑 계수들의 원래 값들과, 상기 컬러 맵핑 계수들의 예측된 값들에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 계산하는 단계;
    결정된 상기 양자화 값에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 양자화하는 단계; 및
    상기 컬러 맵핑 계수들의 상기 잔차 값들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  21. 제 20 항에 있어서,
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 결정된 양자화 값을 나타내는 적어도 하나의 신택스 엘리먼트를 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  22. 제 13 항에 있어서,
    미리 정의된 고정된 값, 또는 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값 중의 하나에 기초한 범위로 상기 컬러 맵핑 계수들의 값들을 한정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  23. 제 13 항에 있어서,
    상기 3D 룩업 테이블의 상기 컬러 컴포넌트들 중의 적어도 하나에 대한 상기 옥탄트들의 수를 나타내는 적어도 하나의 신택스 엘리먼트를 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  24. 제 13 항에 있어서,
    상기 비디오 데이터의 상기 하위 계층에 대한 상기 제 1 색역에서의 참조 픽처의 컬러 데이터를 상기 비디오 데이터의 상기 상위 계층에 대한 상기 제 2 색역으로 변환하기 위하여 상기 3D 룩업 테이블을 이용하여 컬러 예측을 수행하는 단계; 및
    변환된 상기 컬러 데이터에 기초하여 상기 비디오 데이터의 상기 상위 계층에 대한 적어도 하나의 인터-계층 참조 픽처를 생성하는 단계를 더 포함하고,
    상기 비디오 데이터의 상기 비디오 블록들을 예측하는 단계는 상기 3D 룩업 테이블을 이용하여 생성된 상기 적어도 하나의 인터-계층 참조 픽처에 기초하여 상기 비디오 데이터의 상기 상위 계층의 픽처에서 비디오 블록들을 예측하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  25. 비디오 디코딩 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은
    상기 비디오 데이터의 색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블의 3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하고;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하고;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 수와, 상기 옥탄트들의 각각에 대한 상기 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여 상기 3D 룩업 테이블을 생성하고;
    상기 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하고;
    디코딩된 상기 잔차 데이터와, 상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 상기 비디오 블록들을 재구성하도록 구성되는, 비디오 디코딩 디바이스.
  26. 제 25 항에 있어서,
    상기 컬러 맵핑 계수들은, 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중 적어도 하나에 기초한 비트-심도를 이용하여 부동 소수점 값들을 나타내는 정수 값들을 포함하는, 비디오 디코딩 디바이스.
  27. 제 25 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 상기 컬러 맵핑 계수들 중의 적어도 하나의 계수를, 상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값에 기초하여, 디코딩하도록 구성되는, 비디오 디코딩 디바이스.
  28. 제 27 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값은 미리 정의된 고정된 값인, 비디오 디코딩 디바이스.
  29. 제 27 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수는, 상기 비디오 데이터의 상기 하위 계층 및 상기 비디오 데이터의 상기 상위 계층의 동일한 컬러 컴포넌트 사이의 상기 선형 컬러 맵핑 함수를 위한 가중화 인자를 정의하는 핵심 계수를 포함하는, 비디오 디코딩 디바이스.
  30. 제 29 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 상기 핵심 계수를 디코딩하고, 제로와 동일한 예측된 값에 기초하여 상기 컬러 맵핑 계수들 중의 나머지 계수들을 디코딩하도록 구성되는, 비디오 디코딩 디바이스.
  31. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 각각의 나머지 옥탄트에 대하여, 상기 컬러 맵핑 계수들을, 적어도 하나의 이전에 디코딩된 옥탄트로부터 예측된 값에 기초하여, 디코딩하도록 구성되는, 비디오 디코딩 디바이스.
  32. 제 25 항에 있어서,
    상기 하나 이상의 프로세서들은
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 양자화 값을 결정하고;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대하여, 상기 컬러 맵핑 계수들의 잔차 값들을 디코딩하고;
    결정된 상기 양자화 값에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 역 양자화하고; 그리고
    상기 컬러 맵핑 계수들의 디코딩된 상기 잔차 값들 및 예측된 값들에 기초하여 상기 컬러 맵핑 계수들을 재구성하도록 구성되는, 비디오 디코딩 디바이스.
  33. 제 32 항에 있어서,
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 상기 양자화 값을 결정하기 위하여, 상기 하나 이상의 프로세서들은, 상기 양자화 값을 나타내는 적어도 하나의 신택스 엘리먼트를 디코딩하도록 구성되는, 비디오 디코딩 디바이스.
  34. 제 25 항에 있어서,
    상기 하나 이상의 프로세서들은, 미리 정의된 고정된 값, 또는 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값 중의 하나에 기초한 범위로 상기 컬러 맵핑 계수들의 값들을 한정하도록 구성되는, 비디오 디코딩 디바이스.
  35. 제 25 항에 있어서,
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 수를 결정하기 위하여, 상기 하나 이상의 프로세서들은, 상기 3D 룩업 테이블의 상기 컬러 컴포넌트들 중의 적어도 하나에 대한 상기 옥탄트들의 수를 나타내는 적어도 하나의 신택스 엘리먼트를 디코딩하도록 구성되는, 비디오 디코딩 디바이스.
  36. 제 25 항에 있어서,
    상기 하나 이상의 프로세서들은
    상기 비디오 데이터의 상기 하위 계층에 대한 상기 제 1 색역에서의 참조 픽처의 컬러 데이터를 상기 비디오 데이터의 상기 상위 계층에 대한 상기 제 2 색역으로 변환하기 위하여 상기 3D 룩업 테이블을 이용하여 컬러 예측을 수행하고;
    변환된 상기 컬러 데이터에 기초하여 상기 비디오 데이터의 상기 상위 계층에 대한 적어도 하나의 인터-계층 참조 픽처를 생성하고; 그리고
    디코딩된 상기 잔차 데이터와, 상기 3D 룩업 테이블을 이용하여 생성된 상기 적어도 하나의 인터-계층 참조 픽처에 기초하여 상기 비디오 데이터의 상기 상위 계층의 픽처에서 비디오 블록들을 재구성하도록 구성되는, 비디오 디코딩 디바이스.
  37. 비디오 인코딩 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은
    3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수 및 상기 옥탄트들의 각각에 대한 컬러 값들에 기초하여 상기 비디오 데이터의 색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블을 생성하고,
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 인코딩하고,
    상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 비디오 블록들을 예측하고, 그리고
    비트스트림에서 상기 비디오 블록들의 잔차 데이터를 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  38. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 맵핑 계수들을 인코딩하기 전에, 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중 적어도 하나에 기초한 비트-심도를 이용하여 상기 컬러 맵핑 계수들의 부동 소수점 값들을 정수 값들로 변환하도록 구성되는, 비디오 인코딩 디바이스.
  39. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 상기 컬러 맵핑 계수들 중의 적어도 하나의 계수를, 상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값에 기초하여, 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  40. 제 39 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수의 예측된 값은 미리 정의된 고정된 값인, 비디오 인코딩 디바이스.
  41. 제 39 항에 있어서,
    상기 컬러 맵핑 계수들 중의 상기 적어도 하나의 계수는, 상기 비디오 데이터의 상기 하위 계층 및 상기 비디오 데이터의 상기 상위 계층의 동일한 컬러 컴포넌트 사이의 상기 선형 컬러 맵핑 함수를 위한 가중화 인자를 정의하는 핵심 계수를 포함하는, 비디오 인코딩 디바이스.
  42. 제 41 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 제 1 옥탄트에 대하여, 미리 정의된 비-제로 값과 동일한 예측된 값에 기초하여 상기 핵심 계수를 인코딩하고, 제로와 동일한 예측된 값에 기초하여 상기 컬러 맵핑 계수들 중의 나머지 계수들을 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  43. 제 39 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들 중의 각각의 나머지 옥탄트에 대하여, 상기 컬러 맵핑 계수들을, 적어도 하나의 이전에 인코딩된 옥탄트로부터 예측된 값에 기초하여, 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  44. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은
    상기 컬러 맵핑 계수들의 잔차 값들에 대한 양자화 값을 결정하고;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 컬러 맵핑 계수들의 원래 값들과, 상기 컬러 맵핑 계수들의 예측된 값들에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 계산하고;
    결정된 상기 양자화 값에 기초하여 상기 컬러 맵핑 계수들의 잔차 값들을 양자화하고; 그리고
    상기 컬러 맵핑 계수들의 상기 잔차 값들을 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  45. 제 44 항에 있어서,
    상기 하나 이상의 프로세서들은, 결정된 상기 양자화 값을 나타내는 적어도 하나의 신택스 엘리먼트를 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  46. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은, 미리 정의된 고정된 값, 또는 상기 3D 룩업 테이블의 입력 비트-심도 또는 출력 비트-심도 중의 적어도 하나에 종속적인 값 중의 하나에 기초한 범위로 상기 컬러 맵핑 계수들의 값들을 한정하도록 구성되는, 비디오 인코딩 디바이스.
  47. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은, 상기 3D 룩업 테이블의 상기 컬러 컴포넌트들 중의 적어도 하나에 대한 상기 옥탄트들의 수를 나타내는 적어도 하나의 신택스 엘리먼트를 인코딩하도록 구성되는, 비디오 인코딩 디바이스.
  48. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은
    상기 비디오 데이터의 상기 하위 계층에 대한 상기 제 1 색역에서의 참조 픽처의 컬러 데이터를 상기 비디오 데이터의 상기 상위 계층에 대한 상기 제 2 색역으로 변환하기 위하여 상기 3D 룩업 테이블을 이용하여 컬러 예측을 수행하고;
    변환된 상기 컬러 데이터에 기초하여 상기 비디오 데이터의 상기 상위 계층에 대한 적어도 하나의 인터-계층 참조 픽처를 생성하고; 그리고
    상기 3D 룩업 테이블을 이용하여 생성된 상기 적어도 하나의 인터-계층 참조 픽처에 기초하여 상기 비디오 데이터의 상기 상위 계층의 픽처에서 비디오 블록들을 예측하도록 구성되는, 비디오 인코딩 디바이스.
  49. 비디오 디코딩 디바이스로서,
    색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블의 3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하기 위한 수단;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하기 위한 수단;
    상기 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 상기 옥탄트들의 각각에 대한 상기 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여 상기 3D 룩업 테이블을 생성하기 위한 수단;
    상기 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하기 위한 수단; 및
    디코딩된 상기 잔차 데이터와 상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 상기 비디오 블록들을 재구성하기 위한 수단을 포함하는, 비디오 디코딩 디바이스.
  50. 비디오 데이터를 디코딩하기 위한 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금:
    색역 스케일러빌러티를 위한 3차원 (3D) 룩업 테이블의 3개 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수를 결정하게 하고;
    상기 컬러 컴포넌트들의 각각에 대한 상기 옥탄트들의 각각에 대해, 상기 비디오 데이터의 하위 계층에 대한 제 1 색역에서의 컬러 데이터를 상기 비디오 데이터의 상위 계층에 대한 제 2 색역으로 변환하기 위하여 이용된 상기 3D 룩업 테이블에서의 컬러 값들의 선형 컬러 맵핑 함수에 대한 컬러 맵핑 계수들을 디코딩하게 하고;
    상기 컬러 컴포넌트들의 각각에 대한 옥탄트들의 수와, 상기 옥탄트들의 각각에 대한 상기 컬러 맵핑 계수들과 연관된 컬러 값들에 기초하여 상기 3D 룩업 테이블을 생성하게 하고;
    상기 비디오 데이터의 비디오 블록들의 잔차 데이터를 디코딩하게 하고; 그리고
    디코딩된 상기 잔차 데이터와, 상기 3D 룩업 테이블을 이용하여 생성된 적어도 하나의 참조 픽처에 기초하여 상기 비디오 데이터의 상기 비디오 블록들을 재구성하게 하는, 명령들을 저장하는 컴퓨터 판독가능 저장 매체.
KR1020167018519A 2013-12-17 2014-12-17 멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3d 룩업 테이블에 대한 컬러 값들의 시그널링 KR102282811B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361917228P 2013-12-17 2013-12-17
US61/917,228 2013-12-17
US201462005845P 2014-05-30 2014-05-30
US62/005,845 2014-05-30
US14/572,002 US9756337B2 (en) 2013-12-17 2014-12-16 Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US14/572,002 2014-12-16
PCT/US2014/070932 WO2015095381A1 (en) 2013-12-17 2014-12-17 Signaling color values for 3d lookup table for color gamut scalability in multi-layer video coding

Publications (2)

Publication Number Publication Date
KR20160096181A true KR20160096181A (ko) 2016-08-12
KR102282811B1 KR102282811B1 (ko) 2021-07-27

Family

ID=53370076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167018519A KR102282811B1 (ko) 2013-12-17 2014-12-17 멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3d 룩업 테이블에 대한 컬러 값들의 시그널링

Country Status (9)

Country Link
US (4) US9756337B2 (ko)
EP (1) EP3085093B1 (ko)
JP (1) JP6498673B2 (ko)
KR (1) KR102282811B1 (ko)
CN (1) CN105814893B (ko)
BR (1) BR112016014132B1 (ko)
CA (1) CA2929989C (ko)
TW (1) TWI654875B (ko)
WO (1) WO2015095381A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256510A1 (ko) * 2019-06-21 2020-12-24 현대자동차주식회사 코딩 툴들을 제어하는 방법 및 장치

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3047639B1 (en) * 2013-09-20 2018-07-18 VID SCALE, Inc. Video encoder and methods providing 3d look-up table coding for color gamut scalability
US9948916B2 (en) 2013-10-14 2018-04-17 Qualcomm Incorporated Three-dimensional lookup table based color gamut scalability in multi-layer video coding
AU2014362246B2 (en) 2013-12-13 2018-01-25 Vid Scale, Inc. Color gamut scalable video coding device and method for the phase alignment of luma and chroma using interpolation
US10531105B2 (en) 2013-12-17 2020-01-07 Qualcomm Incorporated Signaling partition information for 3D lookup table for color gamut scalability in multi-layer video coding
US9756337B2 (en) * 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
JP2015170994A (ja) * 2014-03-07 2015-09-28 ソニー株式会社 画像処理装置および方法、画像符号化装置および方法、並びに、画像復号装置および方法
US10448029B2 (en) 2014-04-17 2019-10-15 Qualcomm Incorporated Signaling bit depth values for 3D color prediction for color gamut scalability
EP3026883A1 (en) * 2014-11-27 2016-06-01 Thomson Licensing Method of mapping source colors of an image into a target color gamut of a target color device in two mapping steps
US10158836B2 (en) * 2015-01-30 2018-12-18 Qualcomm Incorporated Clipping for cross-component prediction and adaptive color transform for video coding
EP3119086A1 (en) * 2015-07-17 2017-01-18 Thomson Licensing Methods and devices for encoding/decoding videos
EP3131296A1 (en) * 2015-08-13 2017-02-15 Thomson Licensing Color remapping information payload size compression
US11178204B1 (en) * 2017-02-23 2021-11-16 Cox Communications, Inc. Video processor to enhance color space and/or bit-depth
US10924747B2 (en) * 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
EP3367659A1 (en) * 2017-02-28 2018-08-29 Thomson Licensing Hue changing color gamut mapping
GB2575122B (en) 2018-06-29 2021-12-01 Imagination Tech Ltd Mapping an n-bit number to an m-bit number
GB2575436B (en) 2018-06-29 2022-03-09 Imagination Tech Ltd Guaranteed data compression
GB2575434B (en) 2018-06-29 2020-07-22 Imagination Tech Ltd Guaranteed data compression
GB2575121B (en) 2018-06-29 2022-12-28 Imagination Tech Ltd Guaranteed data compression
CN109685859B (zh) * 2018-12-24 2021-06-08 哈尔滨工业大学(深圳) 基于3d查找表的三维颜色自动调整方法
SG11202110395VA (en) * 2019-06-26 2021-10-28 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
CN114223198A (zh) * 2019-07-05 2022-03-22 Lg 电子株式会社 编译色度量化参数数据的图像解码方法及其设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07288707A (ja) 1994-04-20 1995-10-31 Mitsubishi Electric Corp 色変換処理装置
KR100547812B1 (ko) 2002-06-24 2006-01-31 삼성전자주식회사 컬러 참조테이블을 사용하여 화소데이터의 컬러모델을변환하는 장치 및 방법
US7653133B2 (en) * 2003-06-10 2010-01-26 Rensselaer Polytechnic Institute (Rpi) Overlapped block motion compression for variable size blocks in the context of MCTF scalable video coders
US8014445B2 (en) * 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
US20070247647A1 (en) 2006-04-21 2007-10-25 Daniel Pettigrew 3D lut techniques for color correcting images
KR101196975B1 (ko) * 2006-07-17 2012-11-02 톰슨 라이센싱 비디오 색 인핸스먼트 데이터를 인코딩하기 위한 방법 및 장치, 그리고 비디오 색 인핸스먼트 데이터를 디코딩하기 위한 방법 및 장치
US7843465B1 (en) 2007-05-31 2010-11-30 Zoran Corporation Method and apparatus for mapping a multi-dimensional signal from one space to another space
CN101796841B (zh) * 2007-06-27 2012-07-18 汤姆逊许可公司 用增强层残差预测对视频数据编码/解码的方法和设备
US8208560B2 (en) * 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
EP2051527A1 (en) 2007-10-15 2009-04-22 Thomson Licensing Enhancement layer residual prediction for bit depth scalability using hierarchical LUTs
US8446961B2 (en) * 2008-07-10 2013-05-21 Intel Corporation Color gamut scalability techniques
CN104054338B (zh) 2011-03-10 2019-04-05 杜比实验室特许公司 位深和颜色可伸缩视频编码
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
CN103621084A (zh) 2011-04-28 2014-03-05 皇家飞利浦有限公司 用于生成图像编码信号的方法和装置
EP3047639B1 (en) 2013-09-20 2018-07-18 VID SCALE, Inc. Video encoder and methods providing 3d look-up table coding for color gamut scalability
JP2017501599A (ja) 2013-10-07 2017-01-12 ヴィド スケール インコーポレイテッド マルチレイヤビデオコーディングのコンバインドスケーラビリティ処理
US9948916B2 (en) 2013-10-14 2018-04-17 Qualcomm Incorporated Three-dimensional lookup table based color gamut scalability in multi-layer video coding
AU2014362246B2 (en) 2013-12-13 2018-01-25 Vid Scale, Inc. Color gamut scalable video coding device and method for the phase alignment of luma and chroma using interpolation
US10531105B2 (en) 2013-12-17 2020-01-07 Qualcomm Incorporated Signaling partition information for 3D lookup table for color gamut scalability in multi-layer video coding
US9756337B2 (en) 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Philippe Bordes et al., "Color Gamut Scalable Video Coding For SHVC", 2013 Picture Coding Symposium (PCS), 2013.12.08.* *
Philippe Bordes, et. al., "AHG14: Color Gamut Scalable Video Coding using 3D LUT: New Results", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256510A1 (ko) * 2019-06-21 2020-12-24 현대자동차주식회사 코딩 툴들을 제어하는 방법 및 장치
US11516472B2 (en) 2019-06-21 2022-11-29 Hyundai Motor Company Method and apparatus for controlling coding tools
US11770532B2 (en) 2019-06-21 2023-09-26 Hyundai Motor Company Method and apparatus for controlling coding tools
US11770533B2 (en) 2019-06-21 2023-09-26 Hyundai Motor Company Method and apparatus for controlling coding tools
US11979574B2 (en) 2019-06-21 2024-05-07 Hyundai Motor Company Method and apparatus for controlling coding tools

Also Published As

Publication number Publication date
US10432941B2 (en) 2019-10-01
CA2929989C (en) 2022-06-07
US10432943B2 (en) 2019-10-01
JP2017504249A (ja) 2017-02-02
TW201537958A (zh) 2015-10-01
US20150172670A1 (en) 2015-06-18
WO2015095381A1 (en) 2015-06-25
US10432942B2 (en) 2019-10-01
US9756337B2 (en) 2017-09-05
US20170318298A1 (en) 2017-11-02
CN105814893B (zh) 2018-11-30
KR102282811B1 (ko) 2021-07-27
JP6498673B2 (ja) 2019-04-10
CA2929989A1 (en) 2015-06-25
CN105814893A (zh) 2016-07-27
BR112016014132A2 (pt) 2017-08-08
BR112016014132B1 (pt) 2023-04-18
EP3085093B1 (en) 2021-01-27
TWI654875B (zh) 2019-03-21
EP3085093A1 (en) 2016-10-26
US20180014018A1 (en) 2018-01-11
US20180014019A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US10432942B2 (en) Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US9948916B2 (en) Three-dimensional lookup table based color gamut scalability in multi-layer video coding
KR102377386B1 (ko) 멀티-계층 비디오 코딩에서의 색역 스케일러빌러티를 위한 3d 룩업 테이블에 대한 파티션 정보의 시그널링
EP3304903B1 (en) Derivation of color gamut scalability parameters and tables in scalable video coding
KR102381496B1 (ko) 색 공간 스케일러빌리티에 대한 3d 칼라 예측을 위한 참조 계층들의 시그널링

Legal Events

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