KR102585509B1 - 비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치 - Google Patents

비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치 Download PDF

Info

Publication number
KR102585509B1
KR102585509B1 KR1020217007451A KR20217007451A KR102585509B1 KR 102585509 B1 KR102585509 B1 KR 102585509B1 KR 1020217007451 A KR1020217007451 A KR 1020217007451A KR 20217007451 A KR20217007451 A KR 20217007451A KR 102585509 B1 KR102585509 B1 KR 102585509B1
Authority
KR
South Korea
Prior art keywords
block
delta
depth
luma
signaling
Prior art date
Application number
KR1020217007451A
Other languages
English (en)
Other versions
KR20210042383A (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 KR20210042383A publication Critical patent/KR20210042383A/ko
Application granted granted Critical
Publication of KR102585509B1 publication Critical patent/KR102585509B1/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

비디오 데이터 프로세싱 방법 및 장치는 현재 크로마 블록과 관련되는 입력 데이터를 수신하는 것, 동일 위치에 위치한 루마 블록의 루마 양자화 파라미터(QP)를 결정하는 것, 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하여 현재 크로마 블록에 대한 크로마 QP를 도출하는 것, 및 크로마 QP를 사용하여 현재 크로마 블록과 관련되는 하나 이상의 변환 단위(TU)를 인코딩 또는 디코딩하는 것을 포함한다. 동일 위치에 위치한 루마 블록은 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 커버하는 블록이며, 미리 정의된 샘플의 한 예는 현재 크로마 블록의 중앙 샘플이다. 입력 비디오 데이터는, 듀얼 트리 코딩이 인에이블되는 경우, 루마 및 크로마 성분에 대한 두 개의 별개의 코딩 단위(CU) 구획화 구조체에 따라 구획화된다.

Description

비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치
관련 출원에 대한 교차 참조
본 발명은 2018년 8월 16일자로 출원된 발명의 명칭이 "Methods of signaling quantization parameter for Quad-tree plus multi-type structure"인 미국 특허 가출원 제62/764,872호, 2018년 9월 6일자로 출원된 발명의 명칭이 "Methods of signaling quantization parameter for Quad-tree plus multi-type structure"인 미국 특허 가출원 제62/727,577호, 및 2018년 12월 28일자로 출원된 발명의 명칭이 "Methods of signaling quantization parameter for QTMTT"인 미국 특허 가출원 제62/786,317호에 대한 우선권을 주장한다. 미국 특허 가출원은 참조에 의해 그들 전체가 본원에 통합된다.
발명의 분야
본 발명은 비디오 인코딩 또는 비디오 디코딩을 위한 비디오 데이터 프로세싱 방법 및 장치에 관한 것이다. 특히, 본 발명은 루마(luma) 및 크로마(chroma) 성분에 대한 양자화 파라미터 시그널링 및 도출에 관한 것이다.
고효율 비디오 코딩(High-Efficiency Video Coding; HEVC) 표준은 ITU-T Study Group(연구 그룹)으로부터의 비디오 코딩 전문가의 비디오 코딩에 대한 공동 협력 팀(Joint Collaborative Team on Video Coding; JCT-VC) 그룹에 의해 개발된 최신 비디오 코딩 표준이다. HEVC 표준은 각각의 슬라이스를 다수의 코딩 트리 단위(Coding Tree Unit; CTU)로 분할하는 블록 기반의 코딩 구조체에 의존한다. HEVC 기본 프로파일에서, CTU의 최소 및 최대 사이즈는 8×8, 16×16, 32×32, 및 64×64 사이즈 중 시퀀스 파라미터 세트(Sequence Parameter Set; SPS)에서 시그널링되는 신택스 엘리먼트(syntax element)에 의해 명시된다. 슬라이스에서의 CTU는 래스터 스캔 순서에 따라 프로세싱된다. 각각의 CTU는 다양한 로컬 특성에 적응하기 위해 쿼드트리(quadtree; QT) 구획화 방법에 따라 하나 이상의 코딩 단위(Coding Unit; CU)로 재귀적으로 추가로 분할된다. CTU의 사이즈는 64×64, 32×32 또는 16×16일 수도 있으며, 각각의 CTU는 단일의 CU일 수도 있거나 또는 코딩 트리의 분할 노드인 동일한 사이즈 M/2×M/2의 네 개의 더 작은 단위로 분할될 수도 있다. 단위가 코딩 트리의 리프(leaf) 노드인 경우, 단위는 CU가 되고, 그렇지 않으면, 쿼드트리 분할 프로세스는, 노드의 사이즈가 SPS에서 명시되는 허용되는 최소 CU 사이즈에 도달할 때까지 각각의 단위를 반복적으로 구획화한다. CTU에 대한 쿼드트리 블록 구획화 구조체의 한 예가 도 1에서 예시되는데, 여기서 실선은 CTU(100)에서 CU 경계를 나타낸다.
예측 결정은 CU 레벨에서 만들어지는데, 여기서 각각의 CU는 인터 픽쳐(inter picture)(시간) 예측 또는 인트라 픽쳐(intra picture)(공간) 예측에 의해 코딩된다. 허용되는 최소 CU 사이즈가 8×8이기 때문에, 상이한 기본 예측 타입을 스위칭하기 위한 최소 단위(granularity)는 8×8이다. 일단 CU 계층 트리의 분할이 완료되면, 각각의 CU는 HEVC에서의 예측을 위한 예측 단위(Prediction Unit; PU) 파티션 타입에 따라 하나 이상의 PU로 추가적인 분할을 받게 된다. 도 2는 HEVC 표준에서 정의되는 여덟 개의 PU 파티션 타입을 도시한다. 각각의 CU는 도 2에서 도시되는 여덟 개의 PU 파티션 타입 중 하나에 따라 한 개, 두 개 또는 네 개의 PU로 분할된다. PU는, 동일한 예측 프로세스가 PU 내의 모든 픽셀에 적용되고 예측 관련 정보가 PU 단위 기반으로 디코더로 전달되고 있기 때문에, 예측 정보를 공유하기 위한 기본 대표 블록으로서 작동한다.
PU 분할 타입에 기초하여 예측 프로세스에서 생성되는 잔차 신호를 획득한 이후, CU에 속하는 잔차 신호의 데이터는, 간결한 데이터 표현을 위해 잔차 데이터를 변환 계수로 변환하기 위한 다른 QT 블록 구획화 구조체에 따라 하나 이상의 변환 단위(TU)로 추가로 분할된다. 도 1에서의 점선은 TU 경계를 나타낸다. TU는 잔차 데이터에 대해 정수 변환 및 양자화를 적용하기 위한 기본 대표 블록이다. 각각의 TU에 대해, 변환 계수를 생성하기 위해 TU와 동일한 사이즈를 갖는 하나의 변환 매트릭스가 잔차 데이터에 적용되고, 이들 변환 계수는 양자화되어 TU 단위 기반으로 디코더로 전달된다.
용어 코딩 트리 블록(Coding Tree Block; CTB), 코딩 블록(Coding block; CB), 예측 블록(Prediction Block; PB), 및 변환 블록(Transform Block; TB)은 CTU, CU, PU 및 TU와 각각 관련되는 하나의 컬러 성분의 이차원 샘플 어레이를 명시하기 위해 정의된다. 예를 들면, CTU는 하나의 휘도(luminance)(루마)(CTB), 두 개의 색도(chrominance)(크로마)(CTB), 및 그 관련된 신택스 엘리먼트로 구성된다. HEVC 시스템에서, 크로마 블록에 대한 최소 사이즈에 도달되지 않는 한, 동일한 쿼드트리 블록 구획화 구조체가 루마 및 크로마 성분 둘 모두에 일반적으로 적용된다.
이진 트리 구획화 쿼드트리 구획화 외에, 대안적인 구획화 방법은 이진 트리(Binary Tree; BT) 블록 구획화로 칭해지는데, 여기서 블록은 두 개의 더 작은 블록으로 재귀적으로 분할된다. 가장 간단한 이진 트리 구획화 방법은 대칭적인 수평 분할 및 대칭적인 수직 분할만을 허용한다. 사이즈 M×N의 주어진 블록에 대해, 주어진 블록이 두 개의 더 작은 블록으로 분할되는지의 여부를 나타내기 위해 플래그가 시그널링되는데, 플래그가 분할을 나타내는 경우, 어떤 분할 타입이 사용되는지를 나타내기 위해 다른 신택스 엘리먼트가 시그널링된다. 수평 분할의 경우, 주어진 블록은 사이즈 M×N/2의 두 개의 블록으로 분할되고; 수직 분할의 경우, 주어진 블록은 사이즈 M/2×N의 두 개의 블록으로 분할된다. BT 구획화 방법은 슬라이스를 CTU로, CTU를 CU로, CU를 PU로, 또는 CU를 TU로 구획화하기 위해 사용될 수도 있다. BT 구획화 방법의 한 예는 CTU를 CU로 분할하고, 간략화를 위해, CU로부터 PU로의 또는 CU로부터 TU로의 추가적인 구획화는 없다, 즉, 이진 트리의 리프 노드가 예측 및 변환 코딩을 위한 기본 단위이다.
QTBT 구획화 이진 트리 구획화 방법이 더 많은 파티션 형상을 지원하고 따라서 쿼드트리 구획화 방법보다 더 유연하지만, 모든 가능한 파티션 형상 중에서 최상의 파티션 형상을 선택하기 위해서는 코딩 복잡도 및 시그널링 오버헤드가 증가한다. 쿼드트리 이진 트리(Quad-Tree-Binary-Tree; QTBT) 구조체로 칭해지는 결합된 구획화 방법은 쿼드트리 구획화 방법을 이진 트리 구획화 방법과 결합하는데, 이것은 두 구획화 방법의 코딩 효율성 및 코딩 복잡성의 균형을 맞춘다. 예시적인 QTBT 구조체가 도 3a에서 도시되는데, 여기서 CTU와 같은 큰 블록은 먼저 쿼드트리 구획화 방법에 의해 구획화되고, 그 다음, 이진 트리 구획화 방법에 의해 분할된다. QT 분할은, 분할 블록의 사이즈가 허용되는 최소 쿼드트리 리프 노드 사이즈에 도달할 때까지 반복적으로 수행되며, 리프 쿼드트리 블록이 허용되는 최대 이진 트리 루트 노드 사이즈보다 더 크지 않으면, 리프 쿼드트리 블록을 BT 분할에 의해 추가로 구획화될 수 있다. BT 분할은 분할 블록의 사이즈, 폭, 또는 높이가 허용되는 최소 이진 트리 리프 노드 사이즈, 폭, 또는 높이에 도달하거나, 또는 이진 트리 깊이가 허용되는 최대 이진 트리 깊이에 도달할 때까지 반복적으로 수행된다. 도 3a는 QTBT 구획화 방법에 따른 블록 구획화 구조체의 한 예를 예시하고, 도 3b는 도 3a에서 도시되는 QTBT 블록 구획화 구조체에 대한 코딩 트리 다이어그램을 예시한다. 도 3a 및 도 3b에서의 실선은 쿼드트리 분할을 나타내고, 한편 점선은 이진 트리 분할을 나타낸다. 이진 트리 구조체의 각각의 분할(즉, 리프가 아닌(non-leaf)) 노드에서, 하나의 플래그는 어떤 분할 타입(대칭적인 수평 분할 또는 대칭적인 수직 분할)이 사용되는지를 나타내고, 0은 수평 분할을 나타내고 1은 수직 분할을 나타낸다. 이진 트리 블록 구획화 구조체의 리프 노드가 예측 및 변환 코딩 둘 모두를 위한 기본 대표 블록이기 때문에, CU로부터 PU로의 그리고 CU로부터 TU로의 분할을 생략하는 것에 의해, 구획화 프로세스를 단순화하는 것이 가능하다. 예를 들면, 도 3a에서 도시되는 QTBT 구조체는 큰 블록을 다수의 더 작은 블록으로 분할하고, 이들 더 작은 블록은 추가적인 분할 없이 예측 및 변환 코딩에 의해 프로세싱된다.
사이즈 128×128을 갖는 CTU를 다수의 CU로 분할하기 위해 적용되는 QTBT 구조체의 특정한 예에서, 허용되는 최소 쿼드트리 리프 노드 사이즈는 16×16과 동일하고, 허용되는 최대 이진 트리 루트 노드 사이즈는 64×64와 동일하고, 허용되는 최소 이진 트리 리프 노드 폭 및 높이는 둘 모두 4와 동일하고, 그리고 허용되는 최대 이진 트리 깊이는 4와 동일하다. CTU는 먼저 쿼드트리 구획화 구조체에 의해 분할되고 리프 쿼드트리 단위는 16×16에서부터 128×128까지의 범위에 이르는 사이즈를 가지며, 리프 쿼드트리 단위가 128×128인 경우, 사이즈가 허용되는 최대 이진 트리 루트 노드 사이즈인 64×64를 초과하기 때문에, 그것은 이진 트리 분할에 의해 추가로 분할될 수 없고, 그렇지 않으면, 리프 쿼드트리 단위는 이진 트리 분할에 의해 추가로 구획화될 수도 있다. 리프 쿼드트리 단위는 또한 0의 이진 트리 깊이를 갖는 루트 이진 트리 단위이다. 이진 트리 깊이가 허용되는 최대 이진 트리 깊이인 4에 도달하는 경우, 어떠한 분할도 암시적으로 결정되지 않고, 이진 트리 노드가 4와 동일한 폭을 갖는 경우, 어떠한 수평 분할도 암시적으로 결정되지 않으며, 이진 트리 노드가 4와 동일한 높이를 갖는 경우, 어떠한 수직 분할도 암시적으로 결정되지 않는다. QTBT 구조체의 리프 노드는 예측 및 변환 코딩에 의해 추가로 프로세싱된다.
QTBT 구조체는, 인트라(I) 슬라이스의 루마 및 크로마 성분에 개별적으로 적용되고, 크로마 성분에 대한 소정의 최소 사이즈가 도달되는 경우를 제외하면, 예측(P) 및 양예측(Bi-predictive)(B) 슬라이스 둘 모두의 루마 및 크로마 성분 둘 모두에 동시에 적용된다. I 슬라이스에서, 한 실시형태에 따르면, 각각의 루마 CTB는 그 QTBT 구조체 블록 구획화를 가지고, 반면 두 개의 대응하는 크로마 CTB는 다른 QTBT 구조체 블록 구획화를 갖는다. 다른 실시형태에서, 두 개의 대응하는 크로마 CTB는 그들 자신의 QTBT 구조체 블록 구획화를 또한 가질 수 있다.
터너리 트리 구획화(Ternary Tree Partitioning) 블록 중심에 위치되는 오브젝트를 캡쳐하기 위해 터너리 트리(Ternary Tree; TT) 구획화 방법으로 칭해지는 다른 유연한 구획화 방법이 도입되고, 한편, 쿼드트리 구획화 방법 및 이진 트리 구획화 방법은 항상 블록 중심을 따라 분할된다. 도 4는 수직 터너리 트리 구획화(42) 및 수평 터너리 트리 구획화(44)를 예시한다. 터너리 트리 구획화 방법은, 수직에서의 또는 수평에서의 1/4 구획화를 허용하는 것에 의해, 블록 경계를 따라 작은 오브젝트를 더 빠르게 국소화하는(localize) 성능을 제공할 수도 있다.
MTT 구획화 다중 타입 트리(Multi-Type-Tree; MTT) 블록 구획화는 MTT의 제2 레벨에서 이진 트리 및 터너리 트리 구획화 방법 둘 모두를 허용하는 것에 의해 QTBT에서 2 레벨 트리 구조체의 개념을 확장한다. MTT에서 두 레벨의 트리는 영역 트리(Region Tree; RT) 및 예측 트리(Prediction Tree; PT)로 각각 칭해진다. MTT의 한 예는 쿼드트리 플러스 다중 트리(QuadTree plus Multi-Tree; QTMT)인데, 제1 레벨 RT가 항상 QT 구획화이고, 제2 레벨 PT가 BT 구획화 또는 TT 구획화 중 어느 하나일 수도 있기 때문이다. 예를 들면, CTU는 먼저 QT 구획화인 RT에 의해 구획화되고, 각각의 RT 리프 노드는, BT 또는 TT 구획화 중 어느 하나인 PT에 의해 추가로 분할될 수도 있다. PT에 의해 구획화되는 블록은, 최대 PT 깊이가 도달될 때까지 PT를 사용하여 추가로 분할될 수도 있는데, 예를 들면, 블록은 먼저 좌측 서브 블록 및 우측 서브 블록을 생성하도록 수직 BT 구획화에 의해 구획화될 수도 있고, 좌측 서브 블록은 수평 TT 구획화에 의해 추가로 분할되고, 한편 우측 서브 블록은 수평 BT 구획화에 의해 추가로 분할된다. PT 리프 노드는 예측 및 변환 프로세싱을 위한 기본 코딩 단위(CU)이며 추가로 분할되지 않을 것이다.
도 5는 MTT 블록 구획화에 따른 블록 구획화를 위한 트리 타입 시그널링의 한 예를 예시한다. RT 시그널링은 QTBT 블록 구획화에서의 쿼드트리 시그널링과 유사할 수도 있다. PT 노드를 시그널링하기 위해, 하나의 추가적인 빈(bin)이 시그널링되어 그것이 이진 트리 구획화인지 또는 터너리 트리 구획화인지의 여부를 나타낸다. RT에 의한 블록 분할의 경우, 다른 RT 분할이 있는지의 여부를 나타내기 위해 제1 빈이 시그널링되고, 블록이 RT에 의해 더 이상 분할되지 않으면(즉, 제1 빈이 0이면), PT 분할이 존재하는지의 여부를 나타내기 위해 제2 빈이 시그널링된다. 블록도 또한 PT에 의해 더 이상 분할되지 않으면(즉, 제2 빈이 0이면), 그러면, 이 블록은 리프 노드이다. 그 다음, 블록이 PT에 의해 분할되면(즉, 제2 빈이 1이면), 수평 또는 수직 구획화를 나타내기 위해 제3 빈이 전송되고, BT 또는 TT 구획화를 구별하기 위한 제4 빈이 후속된다.
비디오 데이터를 MTT 블록 파티션으로 분할한 이후, MTT 리프 노드는 예측 및 변환 코딩을 위해 사용되는 CU이다. QTBT와 유사하게, MTT 트리 구조체는 I 슬라이스의 루마 및 크로마 성분에 대해 별개로 코딩되고, 크로마 성분에 대해 소정의 최소 사이즈가 도달되는 경우를 제외하면, MTT 트리 구조체는 P 및 B 슬라이스의 루마 및 크로마 성분 둘 모두에 동시에 적용된다. 다시 말하면, 루마 CTB는 자신의 MTT 구조체 블록 구획화를 가지고, 한편 두 개의 해당 크로마 CTB는 다른 MTT 구조체 블록 구획화를 갖는다. 용어 QTBT는 다음의 설명에서 QT 분할 플러스 BT 분할 또는 QT 분할 플러스 BT 및 TT 분할로 지칭될 수도 있다.
HEVC에서의 델타 QP 시그널링 HEVC에서, 적응형 QP 또는 다중 QP 최적화가 인에이블될 때 참조(reference) QP 및 델타 QP에 의해 양자화 파라미터(quantization parameter; QP)가 결정된다. QP 정보에 필요한 비트 레이트를 감소시키기 위해 QP 대신 델타 QP가 송신된다. 델타 QP 시그널링에 대한 최소 사이즈보다 더 큰 또는 동일한 코딩 블록(CB)은 그 자신의 델타 QP를 가지며, 반면, 최소 사이즈보다 더 작은 CB는 하나 이상의 다른 CB와 델타 QP를 공유한다. 그 자신의 델타 QP를 갖는 단일의 CB 또는 동일한 델타 QP를 공유하는 다수의 CB는 양자화 그룹(Quantization Group; QG) 또는 양자화 단위로 지칭된다.
루마 성분에 대한 델타 QP 시그널링은 두 개의 플래그, 즉 인에이블 플래그(cu_qp_delta_enabled_flag) 및 깊이 플래그(diff_cu_qp_delta_depth)에 의해 제어된다. 인에이블 플래그인 cu_qp_delta_enabled_flag는 델타 QP 시그널링이 인에이블 또는 디스에이블되어 있다는 것을 나타내기 위해 사용되며, 깊이 플래그인 diff_cu_qp_delta_depth는 델타 QP 시그널링에 대한 최소 사이즈를 설정하기 위해 사용된다. 인에이블 플래그는 시퀀스, 픽쳐, 슬라이스, 타일, CTU 행 레벨(CTU-row level)에서 시그널링될 수도 있다. 깊이 플래그(diff_cu_qp_delta_depth)는, 예를 들면, PPS에서 하이 레벨 신택스에서 제시되며, 인에이블 플래그(cu_qp_delta_enabled_flag)가 1과 동일한 경우 cu_qp_delta_abs는 변환 단위 신택스에서 존재할 수도 있다. 0과 동일한 인에이블 플래그(cu_qp_delta_enabled_flag)는, 깊이 플래그(diff_cu_qp_delta_depth)가 PPS에 존재하지 않는다는 것 및 cu_qp_delta_abs가 변환 단위 신택스에 존재하지 않는다는 것을 명시한다. 깊이 플래그(diff_cu_qp_delta_depth)는 루마 CTB 사이즈와 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 전달하는 코딩 단위의 최소 루마 CB 사이즈 사이의 깊이에서의 차이를 명시한다. 깊이 플래그(diff_cu_qp_delta_depth)의 값은 0 이상 log2_diff_max_min_luma_coding_block_size 이하의 범위 내에 있으며, 깊이 플래그의 값은, 이 깊이 플래그가 존재하지 않는 경우, 0과 동일한 것으로 추론된다. log2_diff_max_min_luma_coding_block_size는 최대 루마 CB 사이즈와 최소 루마 CB 사이즈 사이의 차이를 명시한다. 변수인 Log2MinCuQpDeltaSize는 다음과 같이 깊이 플래그로부터 도출된다:
Log2MinCuQpDeltaSize = CtbLog2SizeY - diff_cu_qp_delta_depth
TU 레벨에서 델타 QP를 시그널링하는 신택스는 다음과 같은데:
Figure 112021028846117-pct00001
여기서 IsCuQpDeltaCoded는 CU를 다음과 같이 인코딩 또는 디코딩할 때 0으로 설정된다.
Figure 112021028846117-pct00002
여기서 log2CbSize는 분할 노드 사이즈의 로그 2이다.
델타 QP가 적용될 때, 코딩 블록에 대한 최종 QP는 시그널링된 델타 QP 및 참조 QP에 기초하여 도출된다. 현재 양자화 그룹의 참조 QP는 좌측 및 상부의 이웃하는 코딩된 양자화 그룹(qP_A 및 qP_L)의 QP로부터 도출되는데, 여기서 참조 QP는 두 개의 QP의 평균이고, (qP_L + qP_A + 1) >> 1이다. 좌측 및 상부의 이웃하는 코딩된 양자화 그룹 중 어느 하나가 이용 가능하지 않은 경우, 이용 가능하지 않은 QP는 디코딩 순서에서 이전 코딩된 양자화 그룹의 이전 QP에 의해 대체된다. 이전 코딩된 양자화 그룹이 이용 가능하지 않은 경우 슬라이스 QP와 같은 디폴트 QP가 이전 QP로서 사용된다.
HEVC에서, 크로마 QP 오프셋 시그널링은 두 개의 플래그, 즉 크로마 인에이블 플래그(cu_chroma_qp_offset_enabled_flag) 및 사이즈 플래그(Log2MinCuChromaQpOffsetSize)에 의해 제어된다. 전자는 크로마 QP 오프셋 시그널링이 인에이블되는지 또는 디스에이블되는지의 여부를 나타내며, 후자는 크로마 QP 오프셋 시그널링의 단위의 최소 사이즈를 설정하기 위해 사용된다. 크로마 인에이블 플래그(cu_chroma_qp_offset_enabled_flag)가 1과 동일하면, 그러면, 크로마 QP 오프셋이 블록에 대해 사용되는지의 여부를 명시하는 플래그(cu_chroma_qp_offset_flag)가 존재한다. 사이즈 플래그(Log2MinCuChromaQpOffsetSize)는 다음과 같이 도출되는데:
Figure 112021028846117-pct00003
여기서 diff_cu_chroma_qp_offset_depth는, 크로마 CTB 사이즈와 플래그(cu_chroma_qp_offset_flag)를 전달하는 코딩 단위의 최소 크로마 CB 사이즈 사이의 차이를 명시한다. TU 레벨에서 크로마 QP 오프셋을 시그널링하는 신택스는 다음과 같은데:
Figure 112021028846117-pct00004
여기서 IsCuChromaQpOffsetCoded는 CU를 인코딩하거나 또는 디코딩할 때 다음과 같이 0으로 설정된다.
Figure 112021028846117-pct00005
HEVC에서의 CB의 형상은 항상 정사각형이며, 따라서 블록 사이즈는, 블록 폭 및 블록 높이 중 하나와 같은 1차원 값에 의해 직접적으로 표현될 수 있다. 사이즈는 HEVC에서의 쿼드트리 분할의 깊이에 의해 정확하게 도출된다. 그러나, QTBT 또는 MTT 분할 구조체로 나타나는 비정사각형 CB가 또한 존재하고, 델타 QP 및 크로마 QP 오프셋을 시그널링하는 것 및 비정사각형 CB에 대한 참조 QP를 도출하는 것이 문제가 될 수도 있다. 또한, 루마 및 크로마 성분은 상이한 CU 분할 구조체에서 개별적으로 코딩될 수도 있고, 따라서, 루마 및 크로마 성분에 대해 두 개의 독립적인 QTBT CU 분할 구조체가 있다. 루마 및 크로마 성분에 대해 별개의 CU 분할 구조체가 사용될 때 델타 QP 및 크로마 QP 오프셋의 시그널링이 다른 문제가 될 수도 있다.
비디오 디코딩 시스템에서 비디오 데이터를 프로세싱하는 방법 및 장치는, 현재 크로마 블록과 관련되는 입력 데이터를 수신하고, 현재 크로마 블록에 대한 크로마 QP를 도출하기 위해 동일 위치에 위치한(collocated) 루마 블록의 루마 QP를 재사용하여, 동일 위치에 위치한 루마 블록의 루마 QP를 결정하고, 크로마 QP를 사용하여 현재 크로마 블록과 관련되는 하나 이상의 TU를 인코딩 또는 디코딩한다. 입력 비디오 데이터는 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분에 대한 두 개의 별개의 CU 구획화 구조체에 따라 구획화된다. 동일 위치에 위치한 루마 블록은, 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 포괄하는 블록이다. 비디오 데이터 프로세싱 방법의 몇몇 실시형태에서, 루마 QP를 도출하고 재사용하는 단계는, 현재 크로마 블록에서 적어도 하나의 넌제로(non-zero) 계수 또는 적어도 하나의 이스케이프 팔레트(escape palette)가 있는 경우에 수행되고, 그렇지 않으면, 현재 크로마 블록과 관련되는 TU를 인코딩 또는 디코딩하기 위해 이전 코딩된 크로마 QP가 사용된다.
본 발명의 몇몇 실시형태는 비디오 디코딩 시스템에서 현재 크로마 블록과 관련되는 TU에서 시그널링되는 하나 이상의 신택스 엘리먼트로부터 크로마 QP 오프셋을 도출하거나 또는 비디오 인코딩 시스템에서 현재 크로마 블록과 관련되는 TU에서 크로마 QP 오프셋을 도출 및 시그널링한다. 크로마 QP는 동일 위치에 위치한 루마 블록의 루마 QP와 크로마 QP 오프셋에 의해 도출된다. 신택스 엘리먼트로부터 현재 크로마 블록에 대한 크로마 QP 오프셋을 도출하는 것 또는 크로마 QP 오프셋을 시그널링하는 것은 현재 크로마 블록의 깊이에 의존할 수도 있다. 현재 크로마 블록의 깊이를 결정한 이후, 깊이는 QP 시그널링에 대한 임계치와 비교되고, 현재 크로마 블록의 깊이가 QP 시그널링에 대한 임계치보다 더 작거나 또는 동일한 경우, 현재 크로마 블록에 대한 크로마 QP 오프셋이 도출되거나 또는 시그널링된다. 몇몇 실시형태에서, 현재 크로마 블록의 깊이는 현재 크로마 블록의 면적에 의해 도출되고, QP 시그널링에 대한 임계치는 최대 QP 시그널링 깊이에 의해 도출된다. 예를 들면, 깊이는 분할 타입에 따라 결정된다. 한 실시형태에서, 현재 크로마 블록의 깊이는, 현재 크로마 블록이 TT 분할의 제1 또는 제3 분할 노드인 경우, 부모(parent) 노드의 깊이 + 2이고, 현재 크로마 블록의 깊이는, 현재 크로마 블록이 TT 분할의 제2 분할 노드인 경우, 부모 노드의 깊이 + 1이다. 현재 크로마 블록의 깊이는, 현재 크로마 블록이 BT 분할에 의해 부모 노드에서 분리되는 경우 부모 노드의 깊이 + 1이다. 현재 크로마 블록의 깊이는, 현재 크로마 블록이 QT 분할에 의해 부모 노드로부터 분할되는 경우 부모 노드의 깊이 + 2이다.
몇몇 실시형태에서, 현재 크로마 블록은 TT 분할에 의해 부모 노드로부터 구획화되고, 현재 크로마 블록의 깊이는 QP 시그널링에 대한 임계치보다 더 크고, 부모 노드로부터 구획화되는 제2 분할 노드의 깊이는 QP 시그널링에 대한 임계치와 동일하고, 신택스 엘리먼트로부터 도출되는 크로마 QP 오프셋은 부모 노드로부터 구획화되는 모두 세 개의 분할 노드에 의해 공유된다. 크로마 QP 오프셋은, 현재 크로마 블록에 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트가 있는 경우 TU에서 시그널링되는 또는 그로부터 파싱되는 하나 이상의 신택스 엘리먼트로부터 도출된다. 하나의 실시형태에서, 현재 크로마 블록에 대해 변환 및 양자화가 바이패스되는 경우 크로마 QP 오프셋을 파싱하는 것 또는 시그널링하는 것은 스킵된다.
동일 위치에 위치한 루마 블록의 몇몇 예는 현재 크로마 블록의 동일 위치에 위치한 CU, PU, TU, 또는 델타 QP 단위이고, 현재 크로마 블록의 미리 정의된 샘플의 몇몇 예는, 현재 크로마 블록의 좌측 상부 샘플, 우측 상부 샘플, 좌측 하부 샘플, 우측 하부 샘플, 또는 중심 샘플이다.
몇몇 실시형태에서, QP 시그널링과 관련되는 파라미터의 일부 또는 모두는 루마 및 크로마 성분에 대해 복제된다. 예를 들면, QP 시그널링에 관련되는 파라미터는 하나 이상의 임계치, 결정 결과, 부모 노드로부터의 제어 플래그, 조건 및 최소 델타 QP 시그널링 CU 면적 또는 최대 델타 QP 시그널링 깊이를 포함한다. 동일 위치에 위치한 루마 블록의 루마 QP는, 동일 위치에 위치한 루마 블록과 관련되는 TU에서 시그널링되는 델타 QP와 관련되는 하나 이상의 신택스 엘리먼트로부터 도출될 수도 있다.
루마 QP를 재사용하는 것의 방법은 듀얼 트리 코딩에서 코딩되는 비디오 데이터에 적용되고, 몇몇 실시형태에서, 동일한 방법이 공유 트리 코딩에서 코딩되는 비디오 데이터에도 또한 적용된다.
본 개시의 양태는 또한, 현재 크로마 블록의 입력 데이터를 수신하고, 동일 위치에 위치한 루마 블록의 루마 QP를 결정하고, 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하여 현재 크로마 블록에 대한 크로마 QP를 도출하고, 크로마 QP를 재사용하여 현재 크로마 블록과 관련되는 하나 이상의 TU를 인코딩 또는 디코딩하는 비디오 인코딩 또는 디코딩 시스템에 대한 장치를 제공한다. 동일 위치에 위치한 루마 블록은, 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 포괄하는 블록이다.
본 개시의 양태는 또한, 장치의 프로세싱 회로로 하여금, 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하는 것에 의해 현재 크로마 블록에 대한 크로마 QP를 도출하는 비디오 인코딩 또는 디코딩 프로세스를 수행하게 하기 위한 프로그램 명령어를 저장하는 비일시적 컴퓨터 판독 가능 매체를 제공한다. 본 발명의 다른 양태 및 피쳐는 특정한 실시형태의 다음 설명의 재검토시 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다.
예로서 제안되는 본 개시의 다양한 실시형태는 다음의 도면을 참조하여 상세하게 설명될 것인데, 도면에서 동일한 번호는 유사한 엘리먼트를 참조하고, 도면에서:
도 1은 HEVC 표준에 따라 코딩 트리 단위(CTU)를 코딩 단위(CU)로 분할하고 각각의 CU를 하나 이상의 변환 단위(TU)로 분할하기 위한 예시적인 코딩 트리를 예시한다.
도 2는 HEVC 표준에 따라 CU를 하나 이상의 PU로 분할하는 여덟 개의 상이한 예측 단위(PU) 파티션 타입을 예시한다.
도 3a는 쿼드트리 이진 트리(QTBT) 구획화 방법의 예시적인 블록 구획화 구조체를 예시한다.
도 3b는 도 3a의 블록 구획화 구조체에 대응하는 코딩 트리 구조체를 예시한다.
도 4는 수직 터너리 트리 분할 및 수평 터너리 트리 분할을 예시한다.
도 5는 MTT 구획화를 위한 트리 타입 시그널링의 한 예를 예시한다.
도 6은 TT 분할에 의한 QP 시그널링에 대한 임계치의 두 배와 동일한 면적을 갖는 블록을 구획화하는 두 가지 예를 예시한다.
도 7은 본 발명의 실시형태에 따른 분할 노드의 면적에 따라 분할 노드에 대한 델타 QP를 시그널링하는 것에 의해 비디오 데이터를 프로세싱하는 플로우차트이다.
도 8은 본 발명의 실시형태에 따른 크로마 블록에 대해 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하는 것에 의해 비디오 데이터를 프로세싱하는 플로우차트이다.
도 9는 본 발명의 실시형태에 따른 비디오 데이터 프로세싱 방법을 통합하는 비디오 인코딩 시스템에 대한 예시적인 시스템 블록도를 예시한다.
도 10은 본 발명의 실시형태에 따른 비디오 데이터 프로세싱 방법을 통합하는 비디오 디코딩 시스템에 대한 예시적인 시스템 블록도를 예시한다.
본원의 도면에서 예시되며 일반적으로 설명되는 바와 같이, 본 발명의 컴포넌트는 아주 다양하고 상이한 구성으로 배열 및 설계될 수도 있다는 것이 쉽게 이해될 것이다. 따라서, 본 발명의 시스템 및 방법의 실시형태의 다음의 더욱 상세한 설명은, 도면에서 나타내어지는 바와 같이, 청구되는 바와 같은 본 발명의 범위를 제한하도록 의도되는 것이 아니라, 본 발명의 선택된 실시형태를 대표하는 것에 불과하다.
본 명세서 전반에 걸쳐 "한 실시형태", "몇몇 실시형태", 또는 유사한 언어에 대한 언급은, 실시형태와 관련하여 설명되는 특정한 피쳐, 구조체, 또는 특성이 본 발명의 적어도 하나의 실시형태에 포함될 수도 있다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 곳에서의 어구 "한 실시형태에서" 또는 "몇몇 실시형태에서"의 출현은 반드시 모두 동일한 실시형태를 지칭하는 것은 아니며, 이들 실시형태는 개별적으로 또는 하나 이상의 다른 실시형태와 연계하여 구현될 수 있다. 또한, 설명된 피쳐, 구조체, 또는 특성은 하나 이상의 실시형태에서 임의의 적절한 방식으로 결합될 수도 있다. 그러나, 기술 분야에서 숙련된 자는, 본 발명이 특정한 세부 사항 중 하나 이상이 없어도, 또는 다른 방법, 컴포넌트, 등등과 함께 실시될 수 있다는 것을 인식할 것이다. 다른 예에서, 널리 공지된 구조체, 또는 동작은 본 발명의 양태를 모호하게 하는 것을 방지하기 위해 상세하게 도시되거나 또는 설명되지 않는다.
본 발명의 실시형태는 블록 구획화를 위해 QTBT 또는 MTT(예를 들면, QTMT) 구획화 구조체가 사용될 때의 여러 가지 상이한 QP 결정 및 시그널링 방법을 예시한다.
델타 QP 시그널링은 QTBT 또는 MTT 구획화를 위한 면적에 의존한다 QTBT 또는 MTT 구획화 구조체는 정사각형 코딩 블록(CB)뿐만 아니라 직사각형 CB를 생성하고, 따라서, 델타 QP 시그널링은 HEVC에서와 같이 하나의 차원에서 측정되는 블록 사이즈에만 의해서는 좌우될 수 없다. 따라서 본 발명의 몇몇 실시형태는 델타 QP를 분할 노드의 2차원 면적에 따라 시그널링할지 또는 분할 노드의 면적을 나타내는 깊이에 따라 시그널링할지의 여부를 결정한다. 델타 QP 시그널링을 제어하기 위한 최대 델타 QP 시그널링 깊이 또는 최소 델타 QP 시그널링 CU 면적은, 슬라이스 레벨, 픽쳐 레벨, 타일 레벨, 및/또는 시퀀스 레벨에서 미리 정의되거나, 도출되거나, 또는 시그널링되고, 그 결과, 디코더는 그러한 최소 델타 QP 시그널링 CU 면적 또는 최대 델타 QP 시그널링 깊이를 슬라이스 레벨, 픽쳐 레벨, 타일 레벨, 및/또는 시퀀스 레벨에서 결정, 도출, 또는 파싱할 수 있을 수도 있다. 델타 QP의 활용이 인에이블되는 경우, 최소 델타 QP 시그널링 CU 면적보다 더 큰 또는 동일한 면적을 갖는 리프 CU에 대해, 이 리프 CU에서 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트가 존재하는 경우, 델타 QP가 시그널링되고, 그 결과, 디코더는 이 델타 QP를 파싱 및 디코딩할 수 있다. QP는 넌제로 계수 또는 이스케이프 팔레트에 대해 역양자화를 수행하기 위해서만 계산되고, 따라서 모든 계수가 제로이거나 또는 이스케이프 팔레트가 없는 경우, QP의 재구성은 필요하지 않다. 최소 델타 QP 시그널링 CU 면적과 동일한 사이즈를 갖는 리프 CU가 아닌 현재 분할 노드의 경우, 최대 하나의 델타 QP가 시그널링되고 현재 분할 노드에 있는 모든 리프 CU에 의해 공유되며, 이 델타 QP는 현재 분할 노드에 있는 리프 CU 중 하나 이상에 의해 사용된다. 현재 분할 노드에 있는 리프 CU 중 하나가 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트를 갖는 경우, 모든 리프 CU에 대해 델타 QP가 시그널링되고, 그렇지 않으면, 현재 분할 노드에 대해 델타 QP가 시그널링되지 않는다. 그 다음, 시그널링된 델타 QP는 현재 분할 노드 내의 모든 리프 CU에 의해 공유되고 델타 QP로부터 도출되는 최종 QP는 현재 분할 노드 내의 하나 이상의 리프 CU에 의해 사용될 수 있다. 예를 들면, 현재 분할 노드는 네 개의 리프 CU(A, B, C, D)로 구획화되는데, 여기서 코딩 순서는 CU A, CU B, CU C, 및 그 다음 CU D이고, CU C 만이 넌제로 계수를 갖는다. 델타 QP가 시그널링되고 현재 분할 노드에 있는 모든 리프 CU에 대해 공유되지만, 그러나, 델타 QP 및 참조 QP로부터 도출되는 최종 QP는 이 예에서 CU C 및 D에 대해서만 적용된다. 참조 QP는 CU A 및 B에 대해 사용된다. 델타 QP는 제1 값과 동일한 제1 코딩된 블록 플래그(coded block flag; cbf) 이후 또는 제2 값과 동일한 제1 이스케이프 팔레트 플래그 이후 시그널링될 수도 있다. 제1 값은, 리프 CU가 적어도 하나의 넌제로 계수를 갖는다는 것을 명시하고, 제2 값은 리프 CU가 적어도 하나의 이스케이프 팔레트를 갖는 것을 명시한다. 델타 QP는 비디오 인코더에서 비디오 비트스트림에서 하나 이상의 신택스 엘리먼트를 송신하는 것 또는 포함하는 것에 의해 시그널링되고, 시그널링된 델타 QP는 비디오 비트스트림으로부터의 하나 이상의 신택스 엘리먼트를 파싱하는 것에 의해 도출된다.
변수(IsCuQpDeltaCoded)는, 델타 QP가 이미 코딩되어 있는지 또는 시그널링될 필요가 있는지의 여부를 나타내기 위해 사용된다. 최소 델타 QP 시그널링 CU 면적을 나타내는 변수인 MinCuQpDeltaArea는, 다음과 같이, 변수(IsCuQpDeltaCoded)의 값을 결정하기 위해 사용되는데:
Figure 112021028846117-pct00006
여기서 CbWidth 및 CbHeight는 분할 노드의 블록 폭 및 블록 높이를 각각 나타낸다. 앞서 설명된 바와 같이, IsCuQpDeltaCoded는, 이 분할 노드에 대해 델타 QP가 이미 코딩되어 있는지의 여부를 나타내는데, 여기서 IsCuQpDeltaCoded = 0은, 델타 QP가 아직 코딩되지 않았으므로 이 분할 노드에 대해 시그널링될 것이다는 것을 암시한다. 변수(IsCuQpDeltaCoded) = 1은 델타 QP가 이미 코딩되어 있고, 따라서, 이 분할 노드에 대해 새로운 델타 QP가 시그널링되지 않는다는 것을 암시한다. 분할 노드와 관련되는 하나 이상의 TU에 대한 최종 QP는, 델타 QP가 시그널링되는 경우 델타 QP 및 참조 QP에 의해 도출되고, 최종 QP는, 델타 QP가 시그널링되지 않는 경우, 이전 코딩된 QP로부터 도출된다. 다른 실시형태에 따르면, 상기의 변수(MinCuQpDeltaArea)는 최소 델타 QP 시그널링 CU 면적의 log 2 값인 Log2MinCuQpDeltaArea에 의해 대체되고, 변수인 IsCuQpDeltaCoded는, 블록 폭 및 블록 높이의 log 2 값의 합이 Log2MinCuQpDeltaArea보다 더 크거나 또는 동일한 경우 0으로 설정된다. 이것은 다음의 의사 코드에 의해 설명될 수도 있다.
Figure 112021028846117-pct00007
여기서 Log2CbWidth 및 Log2CbHeight는, 각각, QTBT에서의 분할 노드의 블록 폭 및 블록 높이의 로그 2 값이다. 변수(Log2MinCuQpDeltaArea)를 도출하는 실시형태가 다음의 수학식에서 나타내어진다:
Figure 112021028846117-pct00008
몇몇 다른 실시형태에서, 변수(Log2MinCuQpDeltaArea)는 또한, 변수(IsCuQpDeltaCoded)가 0으로 설정되는지의 여부를 결정하기 위해 사용되지만, 그러나 블록 폭 및 블록 높이의 로그 2 값의 합과 비교하는 대신, 블록 폭 및 블록 높이의 로그 2 값의 최소, 최대, 또는 평균이 변수(Log2MinCuQpDeltaArea)와 비교된다. IsCuQpDeltaCoded의 값을 결정하는 이들 실시형태는 다음의 의사 코드에 의해 설명될 수도 있다.
Figure 112021028846117-pct00009
분할 노드의 블록 면적에 기초하여 델타 QP 시그널링을 결정하는 한 예가 표 1의 신택스 표(syntax table)에 의해 나타내어진다.
Figure 112021028846117-pct00010
TU 레벨에서 델타 QP를 시그널링하는 신택스는 HEVC에서 사용되는 그리고 다음에서 나타내어지는 신택스와 유사할 수도 있는데, 여기서 절대 변수(cu_qp_delta_abs) 및 부호 플래그(cu_qp_delta_sign_flag)는, 델타 QP가 인에이블되고 변수(IsCuQpDeltaCoded)가 0으로 설정될 때 시그널링된다.
Figure 112021028846117-pct00011
변수(CuQpDeltaVal)는, 절대 변수(cu_qp_delta_abs) 및 부호 플래그(cu_qp_delta_sign_flag)에 기초하여 도출되는 델타 QP의 값을 나타낸다. 최종 QP는 참조 QP 및 이 델타 QP(CuQpDeltaVal)에 따라 재구성된다. 부호 플래그(cu_qp_delta_sign_flag)는, 그것이 존재하지 않는 경우, 0과 동일한 것으로 추론된다. cu_qp_delta_abs가 존재하는 경우, 변수(IsCuQpDeltaCoded)는 1로 설정되고 델타 QP의 값(CuQpDeltaVal)은 다음과 같이 도출된다:
Figure 112021028846117-pct00012
TU에 대한 델타 QP를 시그널링하고 계산하는 함수는, TU가 적어도 하나의 넌제로 계수를 가질 때 호출된다. 루마 또는 크로마 TB에서 적어도 하나의 넌제로 계수가 존재할 때 델타 QP를 시그널링하는 한 예가 표 2에서 나타내어지는 신택스 표에 의해 설명된다.
Figure 112021028846117-pct00013
Figure 112021028846117-pct00014
깊이에 의한 면적의 표현 델타 QP 시그널링에 대한 최소 사이즈를 정의하기 위해 HEVC에서 사용되는 깊이 플래그(diff_cu_qp_delta_depth)는, HEVC에서 임의의 분할 노드의 블록 폭 및 블록 높이가 항상 동일하기 때문에, 분할 노드의 1차원 사이즈만을 고려한다. 본 발명의 실시형태는 또한, 델타 QP 시그널링을 위한 최소 면적을 정의하기 위해 하나 이상의 깊이 값을 사용하지만, 그러나 제안된 깊이 값(들)은 분할 타입을 고려하는 것에 의해 분할 노드의 이차원 사이즈를 반영한다. 몇몇 실시형태는 분할 노드의 MTT 깊이 및 쿼드트리 깊이에 의해 표현되는 분할 노드의 면적에 의해 좌우되는 델타 QP를 시그널링한다. 최소 델타 QP 시그널링 CU 면적은, 이들 실시형태에서, 최대 델타 QP 시그널링 깊이인 diff_cu_qp_delta_depth에 의해 도출되는데, 여기서 diff_cu_qp_delta_depth는 슬라이스 레벨, 픽쳐 레벨, 타일 레벨, 및/또는 시퀀스 레벨에서 미리 정의되거나, 도출되거나 또는 시그널링된다. 하나의 실시형태에서, 최대 델타 QP 시그널링 깊이는 짝수여야 한다. 하나의 예에서, 최대 델타 QP 시그널링 깊이는: diff_cu_qp_delta_depth = diff_cu_qp_delta_depth_div2 << 1에 의해 도출되는데, 여기서 diff_cu_qp_delta_depth_div2는 슬라이스 레벨, 픽쳐 레벨, 타일 레벨, CTU 행 레벨, 및/또는 시퀀스 레벨에서 시그널링된다. 최대 델타 QP 시그널링 깊이보다 더 작은 또는 동일한 깊이를 갖는 리프 CU에 대해 델타 QP가 인에이블되고 리프 CU가 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트를 갖는 경우, 델타 QP가 이 리프 CU에 대해 시그널링된다. 분할 노드가 최대 델타 QP 시그널링 깊이보다 더 작은 또는 동일한 깊이를 갖는 리프 CU가 아니고 분할 노드로부터 구획화되는 적어도 하나의 자식(children) 노드의 깊이가 최대 델타 QP 시그널링 깊이보다 더 크기 때문에, 최대 하나의 델타 QP가 이 분할 노드에서 시그널링된다. 분할 노드는 다수의 리프 CU로 추가로 구획화되고, 이 분할 노드에 있는 리프 CU 중 하나가 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트를 갖는 경우 델타 QP가 시그널링된다. 시그널링된 델타 QP는 분할 노드 내의 모든 리프 CU에 의해 공유되고 델타 QP에 의해 도출되는 최종 QP는 분할 노드에 있는 리프 CU 중 하나 이상에 의해 사용된다. 델타 QP는 제1 값과 동일한 제1 cbf 이후에 또는 제2 값과 동일한 제1 이스케이프 팔레트 플래그 이후에 시그널링될 수도 있는데, 여기서 제1 값은 CU가 적어도 하나의 넌제로 계수를 갖는다는 것을 명시하며, 제2 값은 CU가 적어도 하나의 이스케이프 팔레트를 갖는다는 것을 명시한다.
블록 폭 및 블록 높이의 조합을 최소 델타 QP 시그널링 CU 면적과 비교하는 이전 실시형태와 유사하게, 몇몇 실시형태에서, 변수(IsCuQpDeltaCoded)는 쿼드트리 깊이 및 MTT 깊이의 조합을 최대 델타 QP 시그널링 깊이와 비교하는 것에 의해 0으로 설정된다. 하나의 실시형태에서, 쿼드트리 깊이 및 MTT 깊이의 조합은 쿼드트리 깊이를 2와 곱하고 MTT 깊이를 더하는 것에 의해 계산되고, 변수(IsCuQpDeltaCoded)는 다음의 의사 코드에 따라 CU를 인코딩 또는 디코딩하는 동안 0으로 설정된다:
Figure 112021028846117-pct00015
쿼드트리 깊이 및 MTT 깊이의 상기의 예시적인 조합은, 쿼드트리 깊이를 L로 곱하고 MTT 깊이를 더하는 것으로서 일반화될 수도 있는데, 여기서 L은 미리 정의된 정수, 예를 들면, L = 2 또는 L = 1이다. 몇몇 다른 실시형태에서, 쿼드트리 깊이 및 MTT 깊이의 조합은 quadTreeDepth + (MTTDepth >> 1) 또는 quadTreeDepth + (MTTDepth + K) >> N인데, 여기서 K 및 N은 미리 정의된 정수이다. 예를 들면, K = 2 및 N = 1이거나, K = 0 및 N = 0이거나, 또는 K = 1 및 N = 1이다.
몇몇 실시형태에서, AreaDepth로 칭해지는 변수는 쿼드트리 깊이 및/또는 MTTDepth로부터 도출된다. 변수(AreaDpeth)는 AreaDepth = J * quadTreeDepth +((MTTDepth + K) >> N) 또는 AreaDepth = (L * quadTreeDepth + MTTDepth)로서 도출되는데, 여기서 J, K, N 및 L은 임의의 정수일 수 있다. 이 변수(AreaDpeth)는 이전에 설명된 실시형태에서의 블록 폭 및 블록 높이의 곱(cbWidth * cbHeight)을 대체할 수도 있으며, 최소 델타 QP 시그널링 CU 면적을 나타내는 변수(MinCuQpDeltaArea)는 대응하는 깊이 값(MinCuQpDeltaAreaDepth)에 의해 대체될 수도 있다. MinCuQpDeltaAreaDepth는 슬라이스, 픽쳐, 시퀀스, CTU 행, 또는 타일 레벨에서 시그널링되는데, 이것은 MinCuQpDeltaArea의 면적, 면적 비율, 깊이, 또는 log2 면적 또는 CTU 폭, 높이, 면적, log2 면적, 또는 MaxDepth에 관련되는 MinCuQpDeltaArea의 면적, 면적 비율, 깊이, 또는 log2 면적의 값을 나타낸다. 계산을 위해, cbWidth * cbHeight/4는 currentAreaDepth + 2에 의해 대체될 수도 있다. 하나의 실시형태에서, 시그널링된 MinCuQpDeltaArea의 log 2 값은 짝수로 제한된다. 다른 실시형태에서, MinCuQpDeltaArea에 관련되는 값이 시그널링되는데, 예를 들면, MinCuQpDeltaArea는 시그널링된 값(signaled_value)을 2로 곱하는 것에 의해 도출되며, 예컨대, 2 * signaled_value가 MinCuQpDeltaArea, 또는 log 2 MinCuQpDeltaArea를 도출하기 위해 사용된다. 예를 들면, MinCuQpDeltaArea = 1 << (signaled_value * 2)이거나 또는 MinCuQpDeltaArea = CTU_Area >> (signaled_value * 2)이다.
절대 변수(cu_qp_delta_abs) 및 부호 플래그(cu_qp_delta_sign_flag)와 같은 델타 QP와 관련되는 신택스 엘리먼트는, 델타 QP가 인에이블되어있다는 것을 인에이블된 플래그가 나타내고 델타 QP가 아직 코딩되지 않았다는 것을 변수(IsCuQpDeltaCoded)가 나타낼 때, TU 레벨에서 시그널링된다. 델타 QP의 값(CuQpDeltaVal)은 이들 두 개의 신택스 엘리먼트인 cu_qp_delta_abs 및 cu_qp_delta_sign_flag에 기초하여 도출된다. 최종 QP는 참조 QP 및 델타 QP(CuQpDeltaVal)에 따라 재구성된다.
최대 델타 QP 시그널링 깊이(diff_cu_qp_delta_depth)는, 별개의 CU 분할 구조체가 루마 및 크로마 성분에 대해 활용될 때 루마 및 크로마 성분에 대해 별개로 시그널링될 수도 있다. 다른 실시형태에서, 최대 델타 QP 시그널링 깊이(diff_cu_qp_delta_depth)는 루마 및 크로마 성분에 대해 동일할 수 있다. 또 다른 실시형태에서, 크로마 성분에 대한 최대 델타 QP 시그널링 깊이는, 별개의 CU 분할 구조체가 루마 및 크로마 성분에 대해 적용될 때 루마 성분에 대한 최대 델타 QP 시그널링 깊이에 의존하는 값으로서 설정된다.
동일한 부모 노드에 속하는 상이한 분할 노드에 대해 상이한 깊이 값을 사용하고 및/또는 QT, BT 및 TT 분할을 포함하는 상이한 분할 방법에 대해 상이한 깊이 값을 사용하는 아이디어를 활용하는 것에 의해 분할 노드의 면적을 더욱 정확하게 표현하기 위해 다중 트리 깊이(multiple-tree depth; MTDepth)가 정의된다. MTDepth 카운팅의 하나의 특정한 실시형태에서, 제1 및 제3 분할 노드의 깊이는 부모 분할 노드의 깊이 + 2이고, 한편, TT 분할이 적용될 때 제2 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이고; BT 분할이 적용될 때 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 다른 실시형태에서, TT 분할에 의해 야기되는 깊이를 계산할 때, 세 개의 분할 노드의 각각의 깊이는 부모 분할 노드의 깊이 + 1이고; 그리고 BT 분할에 의해 야기되는 깊이를 계산할 때, 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 또 다른 실시형태에서, TT 분할에 의해 야기되는 깊이를 계산할 때, 세 개의 분할 노드 모두의 깊이는 부모 분할 노드의 깊이 + 2이고; 그리고 BT 분할에 의해 야기되는 깊이를 계산할 때, 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 하나의 실시형태에서, 현재 블록이 QT 분할로부터 구획화되는 경우 현재 블록의 깊이는 2만큼 증가된다.
델타 QP 시그널링은 QT 깊이 또는 면적에 의존한다 MTT의 제2 레벨이 QT 분할의 리프 노드로부터 시작되기 때문에, 실시형태는 QT 노드에서 델타 QP를 시그널링하기 위해 하나의 제약을 설정한다. 하나의 델타 QP가 코딩되고 QT 노드에 있는 모든 리프 CU에 대해 공유된다. 델타 QP 시그널링에서의 단위의 최소 사이즈가 HEVC에서와 동일하게 시그널링될 수 있다. 다른 실시형태에서, MTT의 제2 레벨이 QT 분할의 리프 노드로부터 시작되기 때문에, QT 파티션에 대한 HEVC 델타 QP 시그널링이 재사용된다. 예를 들면, QT 리프 노드의 경우, QT 리프 노드 사이즈, 면적, 폭, 또는 높이가 임계치보다 더 크거나 또는 동일하거나, 또는 QT 리프 노드의 QT 깊이가 임계치보다 더 작거나 또는 동일한 경우, 최대 하나의 델타 QP가 시그널링될 수 있다. 이 QT 리프 노드 내의 리프 CU는 시그널링된 델타 QP를 공유한다. QT 노드가 리프 CU가 아니고 사이즈, 면적, 폭, 또는 높이가 임계치와 동일하면, 최대 하나의 델타 QP가 시그널링될 수 있다. 이 QT 노드 내의 리프 CU는 시그널링된 델타 QP를 공유한다. QT 파티션에 대한 델타 QP 시그널링은 HEVC 델타 QP 시그널링과 유사하거나 또는 동일하다. QT 노드 내에서 BT 또는 TT 분할로부터 구획화되는 리프 CU는 동일한 델타 QP를 공유한다. 임계치는 슬라이스, 픽쳐, 타일, 및 시퀀스 레벨 중 하나 또는 그 조합에서 미리 정의될 수 있거나, 도출될 수 있거나, 또는 시그널링될 수 있다.
특수한 경우에 대한 델타 QP 시그널링 델타 QP 시그널링이 블록의 면적에 의해 좌우되고 부모 노드를 세 개의 분할 노드로 분할하기 위해 터너리 트리 분할이 적용되는 경우 특수한 경우가 발생하는데, 여기서 제1 또는 제3 분할 노드의 면적은 델타 QP 시그널링의 임계치(예를 들면, 최소 델타 QP 시그널링 CU 면적)보다 더 작고, 제2 분할 노드의 면적은 델타 QP 시그널링의 임계치와 동일하다. 예를 들면, 부모 노드의 면적은 델타 QP 시그널링 임계치의 두 배이며, TT 분할에 의해 부모 노드를 구획화한 이후, 제1 분할 노드 및 제3 분할 노드의 각각의 면적은 임계치의 절반이고, 한편 제2 분할 노드의 면적은 임계치와 동일하다. 도 6은 TT 분할에 의해 부모 블록을 구획화하는 특수한 경우의 두 가지 예를 예시한다. 블록(62)은 최소 델타 QP 시그널링 CU 면적의 사이즈를 나타내는데, 이것은 델타 QP 시그널링에 대한 임계치이고, 따라서 블록(62)보다 더 큰 또는 동일한 면적을 갖는 임의의 분할 노드는 관련된 TU에서 시그널링되는 자기 자신의 델타 QP를 가질 수도 있다. 부모 블록(64) 및 부모 블록(66)의 각각은 최소 델타 QP 시그널링 CU 면적의 두 배와 동일한 면적을 갖는다. 부모 블록(64)은 수직 TT 분할에 의해 구획화되고 부모 블록(66)은 수평 TT 분할에 의해 구획화된다. 제1 분할 노드(642) 또는 제3 분할 노드(646)의 면적은 최소 델타 QP 시그널링 CU 면적보다 더 작고, 한편, 제2 분할 노드(644)의 면적은 최소 델타 QP 시그널링 CU 면적과 동일하다. 유사하게, 제1 분할 노드(662) 또는 제3 분할 노드(666)의 면적은 최소 델타 QP 시그널링 CU 면적보다 더 작고, 한편, 제2 분할 노드(664)의 면적은 최소 델타 QP 시그널링 CU 면적과 동일하다. 예를 들면, 최소 델타 QP 시그널링 CU 면적은 32×32이고, 부모 블록(64)은 64×32의 사이즈를 가지며, 부모 블록(66)은 32×64의 사이즈를 갖는다.
본 발명의 몇몇 실시형태는 상기에서 언급된 특별한 경우에 대한 델타 QP 시그널링의 규칙을 설정한다. 하나의 실시형태에서, 제1 또는 제3 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 작고 제2 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적과 동일한 경우, 오직 하나의 델타 QP만이 세 개의 분할 노드 모두에 대해 시그널링될 수 있다. 특별한 경우에 대한 규칙을 일반화하기 위해, 분할 노드 중 적어도 하나가 최소 델타 QP 시그널링 CU 면적보다 더 작은 면적을 가지며 적어도 하나의 넌제로 계수 또는 이스케이프 팔레트가 존재하는 경우, 공유할 부모 노드의 모든 분할 노드에 대해 델타 QP가 시그널링된다.
TU 레벨에서 델타 QP를 시그널링하는 하나 이상의 신택스 엘리먼트는 HEVC의 것과 유사할 수도 있는데, 예를 들면, 변수(IsCuQpDeltaCoded)가 0으로 설정되고 델타 QP가 인에이블되어 있다는 것을 인에이블 플래그(cu_qp_delta_enabled_flag)가 나타내는 경우 절대 변수(cu_qp_delta_abs) 및 부호 플래그(cu_qp_delta_sign_flag)가 시그널링된다. 델타 QP의 값(CuQpDeltaVal)은 이들 두 개의 신택스 엘리먼트(cu_qp_delta_abs 및 cu_qp_delta_sign_flag)에 기초하여 도출되고, 최종 QP는 참조 QP 및 델타 QP(CuQpDeltaVal)에 따라 재구성된다. 부호 플래그(cu_qp_delta_sign_flag)는, 이 부호 플래그가 존재하지 않는 경우, 0과 동일한 것으로 추론된다. TU 레벨에서 델타 QP를 시그널링하는 다른 방법이 또한 적용할 수 있다.
특별한 경우에 대한 델타 QP 시그널링의 다른 실시형태에서, 오직 하나의 델타 QP가 제2 분할 노드에 대해 시그널링되고 제1 및 제3 분할 노드에 대해 코딩되는 어떠한 새로운 델타 QP도 없다. 제1 분할 노드에서 사용되는 QP는 마지막 QP이고, 제2 분할 노드에서 사용되는 QP는 시그널링된 델타 QP로부터 도출되며, 이 QP는 제3 분할 노드에서도 또한 사용된다. TU 레벨에서 델타 QP를 시그널링하기 위한 하나 이상의 신택스 엘리먼트는 HEVC에서의 델타 QP 시그널링과 유사할 수 있는데, 예를 들면, 델타 QP는 절대 변수 및 부호 플래그에 기초하여 도출된다. 최종 QP는 참조 QP 및 델타 QP에 의해 재구성된다.
특별한 경우에 대한 델타 QP 시그널링의 또 다른 실시형태에서, 세 개의 TT 분할 노드의 각각은 그 자신의 델타 QP를 가지며, 따라서 이들 세 개의 TT 분할 노드에 대해 최대 세 개의 델타 QP가 시그널링된다. 이 실시형태에서, 최소 델타 QP 시그널링 CU 면적의 두 배와 동일한 면적을 가지며 QT 분할에 의해 구획화되는 현재 노드의 경우, 각각의 쿼드트리 분할 노드는 그 자신의 델타 QP를 가질 수도 있거나 또는 처음 두 개의 쿼드트리 분할 노드가 제1 양자화 그룹(QG)으로서 그룹화되고 한편 마지막 두 개의 쿼드트리 분할 노드가 제2 QG로서 그룹화된다. 변수(IsCUQpDeltaCoded)는 제1 QG 및 제2 QG에 대해 0으로 설정된다. 최소 델타 QP 시그널링 CU 면적보다 더 큰 또는 동일한 사이즈를 갖는 현재 노드의 경우, 또는 최소 델타 QP 시그널링 CU 면적보다 더 작은 사이즈를 갖는 그러나 그것의 부모 사이즈가 최소 델타 QP 신호 CU 면적보다 더 큰 현재 노드의 경우, 하나의 델타 QP가 현재 노드에 대해 시그널링될 수 있다. 변수(IsCuQpDeltaCoded)는 현재 노드에 대해 0으로 설정된다.
분할 노드 또는 부모 노드의 사이즈 또는 면적은 깊이로부터 도출될 수도 있고, 최소 델타 QP 시그널링 CU 면적은 또한 최대 델타 QP 시그널링 깊이로부터 도출될 수도 있다. 본 발명의 몇몇 실시형태에서, 깊이를 계산하기 위해 다중 트리 깊이(MTDepth)가 정의되고, MTDepth의 개념은 동일한 부모 노드에 속하는 상이한 분할 노드에 대해 상이한 깊이 값을 사용하는 것 및/또는 QT, BT, 및 TT 분할을 포함하는 상이한 분할 방법에 대해 상이한 깊이 값을 사용하는 것이다. 예를 들면, TT 분할에 의해 부모 노드로부터 구획화되는 제1 또는 제3 분할 노드의 깊이는 부모 노드의 깊이 + 2와 동일하고, 부모 노드로부터 구획화되는 제2 분할 노드의 깊이는 부모 노드의 깊이 + 1과 동일하다. BT 분할에 의해 부모 노드로부터 구획화되는 분할 노드의 깊이는 부모 노드의 깊이 + 1과 동일하다. 쿼드트리 분할 노드의 깊이는 그것의 부모 노드의 MTDepth + 2와 동일하다.
몇몇 실시형태에 따르면, 델타 QP 시그널링을 위해, 현재 분할 노드가 터너리 트리 분할에서 제1 분할 노드인지 또는 제3 분할 노드인지의 여부를 나타내는 플래그가 사용된다. 예를 들면, 세 개의 터너리 트리 분할 노드가 그들 자신의 델타 QP를 가질 수 있는 경우, 현재 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 크거나 또는 동일한 경우, 또는 면적이 최소 델타 QP 시그널링 CU 면적의 절반과 동일하지만 그러나 현재 분할 노드가 터너리 트리 분할에서 제1 또는 제3 분할 노드인 경우, 현재 분할 노드에 대해 하나의 델타 QP가 시그널링될 수도 있다. 변수(IsCuQpDeltaCoded)는 델타 QP가 시그널링될 수도 있다는 것을 나타내기 위해 현재 노드에 대해 0으로 설정된다. 몇몇 다른 실시형태에서, 현재 분할 노드가 터너리 트리 분할에서 제2 분할 노드인지의 여부를 나타내는 플래그가 델타 QP 시그널링에서 사용된다. 예를 들면, 단지 하나의 델타 QP만이 세 개의 트리 분할 노드 모두에 대해 시그널링될 수도 있는 경우, 현재 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 크면, 또는 면적이 최소 델타 QP 시그널링 CU 면적과 동일하고 현재 분할 노드가 터너리 트리 분할에서 제2 분할 노드가 아니면, 현재 분할 노드에 대해 변수(IsCuQpDeltaCoded)를 0으로 설정하는 것에 의해 현재 분할 노드에 대해 하나의 델타 QP가 시그널링될 수도 있다.
몇몇 다른 실시형태에서, 현재 분할 노드는, 현재 분할 노드의 부모 CU 사이즈(parentCuArea)를 참조하는 것에 의해 델타 QP가 시그널링될 수도 있는지의 여부를 결정한다. 즉, 자식 블록은, 자식 블록의 면적뿐만 아니라 또한 그 부모 블록의 정보에 따라, 델타 QP가 시그널링되는지의 여부를 결정한다. 예를 들면, 세 개의 터너리 트리 분할 노드가 그들 자신의 델타 QP를 가질 수 있는 경우, 현재 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적의 두 배와 동일하면, 현재 분할 노드로부터 구획화되는 각각의 분할 노드는 그 자신의 델타 QP를 가질 수 있다. 현재 분할 노드의 부모 노드 면적이 최소 델타 QP 시그널링 CU 면적보다 더 크면, 현재 분할 노드에 대해 변수(IsCuQpDeltaCoded)가 0으로 설정되는데, 이것은 현재 분할 노드에 대해 하나의 델타 QP가 시그널링될 수 있다는 것을 나타낸다. 표 3에서 나타내어지는 신택스 표는, 세 개의 TT 분할 노드가 그들 자신의 델타 QP를 가질 때 부모 CU 사이즈에 기초하여 QP 시그널링을 결정하는 예를 예시한다.
Figure 112021028846117-pct00016
Figure 112021028846117-pct00017
Figure 112021028846117-pct00018
이전 실시형태에서, 델타 QP 시그널링 결정은 자식 노드에서 이루어진다. 본 발명의 몇몇 실시형태는, 분할 노드의 부모 노드에 있는 분할 노드에 대해 델타 QP가 시그널링될 수 있는지의 여부를 결정한다. 각각의 부모 노드에서, 델타 QP가 부모 노드로부터 구획화되는 각각의 분할 노드에서 독립적으로 시그널링될 수 있는지의 여부가 결정된다. 델타 QP 신호 이용 가능성 또는 재설정 IsCuQpDeltaCoded의 이용 가능성과 같은 하나 이상의 델타 QP 관련된 정보가, 필요하다면, 부모 노드로부터 분할 노드로 전달될 수 있다. 그 다음, 현재 노드의 최소 델타 QP 시그널링 CU 면적(MinCuQpDeltaArea), 폭, 높이, 사이즈, 면적, 또는 깊이, 파티션 타입, 픽쳐 사이즈, 현재 노드 위치, 부모 노드로부터 전달되는 델타 QP 관련 정보, 또는 상기한 것의 조합의 정보에 기초하여 델타 QP 시그널링 결정이 분할 노드에서 도출된다. 예를 들면, 재설정 변수(resetQpDeltaCoded)가 부모 노드로부터 현재 분할 노드로 전달되고, 재설정 변수가 참이고 델타 QP 시그널링의 함수가 인에이블되면, 변수(IsCuQpDeltaCoded)는 0으로 설정된다. 현재 분할 노드가 자식 노드로 분할되면, 변수(resetQpDeltaCodedForChildren)가 결정되어 자식 노드에 전달된다. CTU의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정될 수 있고 CTU에 대한 재설정 변수(resetQpDeltaCoded)는 1로 설정된다.
한 실시형태에서, 최소 델타 QP 시그널링 CU 면적보다 더 큰 사이즈를 갖는 부모 노드가, 분할 노드의 면적, 사이즈, 또는 깊이 또는 부모 노드를 구획화하기 위한 분할 타입을 참조하는 것에 의해 부모 노드로부터 구획화되는 분할 노드에 대한 재설정 플래그를 결정한다. 재설정 플래그는 분할 노드로 전달되어, 이 분할 노드에 대해 델타 QP가 시그널링될 수 있는지의 여부를 제어한다. 예를 들면, 부모 노드로부터 구획화되는 제1 분할 노드가 델타 QP 시그널링에 대한 임계치보다 더 작은 경우 부모 노드의 모든 TT 분할 노드에 대해 델타 QP가 시그널링되고, 모든 TT 분할 노드는, 비록 제2 분할 노드의 면적이 델타 QP 시그널링에 대한 임계치와 동일한 경우에도, 제2 및 제3 분할 노드에 대해 더 많은 델타 QP가 시그널링되지 않기 때문에, 이 델타 QP를 공유한다.
한 실시형태에서, 부모 노드로부터 구획화되는 분할 노드 중 하나의 면적이 MinCuQpDeltaArea보다 더 작고 부모 노드의 면적이 MinCuQpDeltaArea보다 더 큰 경우, 모든 분할 노드는 최대 하나의 델타 QP를 공유한다. 하나의 예에서, 현재 노드로부터 구획화되는 하나의 분할 노드의 면적이 MinCuQpDeltaArea보다 더 작고 현재 노드의 면적이 MinCuQpDeltaArea보다 더 큰 경우, 현재 노드로부터 구획화되는 분할 노드 중 어떤 것도 변수(IsCuQpDeltaCoded)를 0으로 설정할 수 없다. 이 예는 표 4에서 나타내어지는 신택스 표에서 예시된다.
Figure 112021028846117-pct00019
Figure 112021028846117-pct00020
Figure 112021028846117-pct00021
Figure 112021028846117-pct00022
Figure 112021028846117-pct00023
분할 노드의 깊이를 계산하기 위해 그리고 분할 노드의 면적을 나타내기 위해 다중 트리 깊이(MTDepth)가 정의된다. 하나의 실시형태에서, TT 분할에 의한 깊이를 계산할 때, 제1 및 제3 분할 노드의 깊이는 부모 분할 노드의 깊이 + 2이고, 제2 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. BT 분할에 의한 깊이를 계산할 때, 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 이 예는 표 5에서 나타내어지는 신택스 표에서 예시된다. 다른 실시형태에서, TT 분할에 의한 깊이를 계산할 때, 세 개의 분할 노드 모두의 깊이는 부모 분할 노드의 깊이 + 1이고, BT 분할에 의한 깊이를 계산할 때, 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 또 다른 실시형태에서, TT 분할에 의한 깊이를 계산할 때, 세 개의 분할 노드 모두의 깊이는 부모 분할 노드의 깊이 + 2이고, BT 분할에 의한 깊이를 계산할 때, 두 분할 노드의 깊이는 부모 분할 노드의 깊이 + 1이다. 하나의 실시형태에서, 분할 노드가 쿼드트리 분할을 사용하여 구획화되는 경우 깊이는 2만큼 증가된다.
Figure 112021028846117-pct00024
Figure 112021028846117-pct00025
Figure 112021028846117-pct00026
Figure 112021028846117-pct00027
Figure 112021028846117-pct00028
Figure 112021028846117-pct00029
AreaDepth로 칭해지는 하나의 변수가 쿼드트리 깊이 및 MTTDepth 또는 MTDepth로부터 도출될 수 있다. 예를 들면, AreaDepth는 다음으로서 도출될 수 있는데: AreaDepth = J * quadTreeDepth + ((MTTDepth + K) >> N) 또는 AreaDepth = (L * quadTreeDepth + MTTDepth), 여기서 J, K, N, 및 L은 임의의 정수일 수 있다. 상기의 신택스 표에서, cbWidth * cbHeight는 현재 블록의 변수(AreaDepth)에 의해 대체될 수 있다. 최소 델타 QP 시그널링 CU 면적(MinCuQpDeltaArea)은 깊이 값(MinCuQpDeltaAreaDepth)에 의해 대체될 수 있는데, 여기서 MinCuQpDeltaAreaDepth는 슬라이스, 픽쳐, 시퀀스, CTU 행, 또는 타일 레벨에서 시그널링된다. 슬라이스, 픽쳐, 시퀀스, CTU 행 또는 타일 레벨에서의 시그널링된 신택스는, MinCuQpDeltaArea의 면적, 면적 비율, 깊이, 또는 log2면적 또는 CTU 폭, 높이, 면적, log2면적, 또는 MaxDepth에 관련되는 MinCuQpDeltaArea의 면적, 면적 비율, 깊이, 또는 log2면적의 값일 수 있다. 블록 폭 및 높이의 곱을 4로 나눈 것(cbWidth * cbHeight/4)은 AreaDepth + 2에 의해 대체될 수 있다. 하나의 실시형태에서, 시그널링된 MinCuQpDeltaArea의 log2 값은 짝수여야 한다. 다른 실시형태에서, MinCuQpDeltaArea에 관련되는 값이 시그널링되고, 시그널링된 값은 2로 승산되어 MinCuQpDeltaArea 또는 log2 MinCuQpDeltaArea를 도출한다. 예를 들면, MinCuQpDeltaArea = 1 << (signaled_value * 2)이거나 또는 MinCuQpDeltaArea = CTU_Area >> (signaled_value * 2)이다.
하나의 신택스 엘리먼트인 cu_qp_delta_enabled_flag는 델타 QP 시그널링의 함수가 인에이블되어 있는지 또는 그렇지 않은지의 여부를 결정하기 위해 시그널링되거나 또는 도출된다. 이 신택스 엘리먼트는 시퀀스, 픽쳐, 슬라이스, 타일, 또는 CTU 행 레벨에서 시그널링될 수 있다. 이 신택스 엘리먼트가 0과 동일하면, 델타 QP가 인에이블되어 있지 않기 때문에 델타 QP가 시그널링되지 않는다. 하나의 실시형태에서, 변수(IsCuQpDeltaCoded)를 도출할 때 cu_qp_delta_enabled_flag가 사용된다.
현재 분할 노드를 다수의 자식 노드로 구획화하는 하나의 실시형태에서, 하나의 자식 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 작거나 또는 동일하고 현재 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 큰 경우, 또는 자식 노드의 모든 면적이 최소 델타 QP 시그널링 CU 면적보다 더 크거나 또는 동일한 경우, 각각의 자식 노드는 그 자신의 델타 QP를 시그널링할 수 있다. 변수(resetQpDeltaCodedForChildren)는 모든 자식 노드에 대해 1로 설정되고, 이 경우 모든 자식 노드에 대해 변수(IsCuQpDeltaCoded)가 0으로 설정될 수 있다. 현재 분할 노드의 면적이 최소 델타 QP 시그널링 CU 면적과 동일하거나 또는 더 작은 경우, 현재 분할 노드 내의 모든 자식 노드에 대해 최대 하나의 델타 QP가 시그널링될 수 있다. 이 경우, 변수(resetQpDeltaCodedForChildren)는 모든 자식 노드에 대해 0으로 설정된다. 다른 등가의 예에서, 자식 노드 면적이 최소 델타 QP 시그널링 CU 면적보다 더 크거나 또는 동일한 경우, 자식 노드의 각각은 그 자신의 델타 QP를 시그널링할 수 있다. 변수(resetQpDeltaCodedForChildren)는 자식 노드에 대해 1로 설정된다. 이 실시형태에서, 최소 델타 QP 시그널링 CU 면적보다 더 큰 또는 동일한 사이즈를 갖는 리프 CU에 대해, 최대 하나의 델타 QP가 시그널링될 수 있고, 최소 델타 QP 시그널링 CU 면적보다 더 작은 사이즈를 갖는 그러나 그 부모 노드가 최소 델타 QP 시그널링 CU 면적보다 더 큰 사이즈를 갖는 리프 CU에 대해, 최대 하나의 델타 QP가 시그널링될 수 있다. 리프가 아닌 CU 현재 노드의 경우, 하나의 자식 노드의 면적이 최소 델타 QP 시그널링 CU 면적보다 더 작고 현재 노드의 면적이 최소 델타 QP 시그널링 CU 면적과 동일하면, 이 현재 노드는 자신의 자식 노드 모두에 대해 동일한 델타 QP 정보를 공유한다. 이 현재 노드에 대해 최대 하나의 델타 QP가 시그널링될 수 있거나 또는 파싱될 수도 있으며, 델타 QP로부터 도출되는 최종 QP가 하나 이상의 자식 노드에 의해 사용된다. 최소 델타 QP 시그널링 CU 면적보다 더 작은 사이즈를 갖는 그러나 그 부모 노드가 최소 델타 QP 시그널링 CU 면적보다 더 큰 사이즈를 갖는 리프가 아닌 CU 현재 노드의 경우, 이 현재 노드는 부모 노드로부터 구획화되는 모든 자식 노드에 대해 동일한 델타 QP 정보를 공유한다. 이 현재 노드에 대해 최대 하나의 델타 QP가 시그널링될 수 있으며 델타 QP로부터 도출되는 최종 QP는 부모 노드로부터 구획화되는 하나 이상의 노드에 의해 사용된다. 리프 CU의 경우, 재설정 변수(resetQpDeltaCoded)가 1인 경우 또는 변수(IsCuQpDeltaCoded)가 0인 경우, 최대 하나의 델타 QP가 시그널링될 수 있다. 예를 들면, CU 또는 TU와 같은 현재 분할 노드의 경우, 변수(IsCuQpDeltaCoded)가 0이고 루마 또는 크로마 cbf가 1이고, 듀얼 트리 코딩이 인에이블될 때 트리 타입이 DUAL_TREE_CHROMA가 아닌 경우, 하나의 델타 QP가 시그널링된다. 현재 분할 노드의 좌측 상부 위치는 변수(IsCuQpDeltaCoded)를 재설정할 때 저장되는데, 저장된 위치가 참조 QP를 도출하기 위해 사용될 수 있기 때문이다. 델타 QP 및 참조 QP는 현재 분할 노드에 대한 최종 QP를 재구성하기 위해 사용된다.
한 예시적인 실시형태에서, 자식 노드 중 하나의 면적이 MinCuQpDeltaArea보다 더 작은 경우, 자식 노드 중 어느 것도 변수(IsCuQpDeltaCoded)를 0으로 설정할 수 없고, 모든 자식 노드의 면적이 MinCuQpDeltaArea보다 더 크거나 또는 동일한 경우, 각각 자식 노드는 그 자신의 델타 QP를 가질 수 있다. 하나의 예에서 변수(resetQpDeltaCodedForChildren)는, 모든 자식 노드의 면적이 MinCuQpDeltaArea보다 더 크거나 또는 동일한 경우, 1로 설정되고, 그렇지 않고, 하나의 자식 노드의 면적이 MinCuQpDeltaArea보다 더 작은 경우, 자식 노드 중 어떤 것도 변수(IsCuQpDeltaCoded)를 0으로 설정할 수 없고 변수(resetQpDeltaCodedForChildren)는 0으로 설정된다. 현재 분할 노드의 경우, 변수(resetQpDeltaCodedForChildren)의 값을 결정하기 위해, 현재 분할 노드가 QT 분할 또는 TT 분할에 의해 구획화되는 경우 현재 노드 면적을 4로 나눈 것이 사용되거나, 또는 현재 분할 노드가 BT 분할에 의해 구획화되는 경우 현재 노드 면적을 2로 나눈 것이 사용된다.
CU 사이즈가 최소 델타 QP 시그널링 CU 면적(MinCuQpDeltaArea)보다 더 크고 CU가 여러 개의 TU로 분할되며, TU 사이즈가 MinCuQpDeltaArea와 동일하거나 또는 더 큰 경우, MinCuQpDeltaArea과 동일한 또는 더 큰 사이즈를 갖는 CU에 대해 하나의 델타 QP가 시그널링될 수 있다. CU 및 TU의 사이즈뿐만 아니라, 최소 델타 QP 시그널링 CU 면적은, 최대 델타 QP 시그널링 깊이 및 MTDepth와 같은 깊이에 의해 도출될 수도 있거나 또는 표현될 수도 있다.
면적에 의존하는 델타 QP 시그널링에 대한 대표적인 플로우차트 도 7은 CU 구획화 구조체에 따른 리프 CU로의 비디오 데이터 구획화를 프로세싱하는 비디오 디코딩 시스템의 한 실시형태를 예시하는 플로우차트인데, 여기서 2차원 블록 면적을 표현하는 깊이에 따라 델타 QP가 시그널링된다. 비디오 디코딩 시스템은 단계(S702)에서 현재 분할 노드와 관련되는 입력 데이터를 수신한다. 현재 분할 노드는 분할 타입에 의해 부모 노드로부터 구획화되는 리프 CU 또는 리프가 아닌 CU 중 어느 하나이며, 정사각형 블록 또는 직사각형 블록이다. 현재 분할 노드의 깊이는 S704 단계에서 분할 타입에 따라 결정되는데, 예를 들면, 깊이는 현재 분할 노드의 면적으로부터 결정된다. 변수(IsCuQpDeltaCoded)의 값은 S706 단계에서 현재 분할 노드의 깊이를 최대 델타 QP 시그널링 깊이와 비교하는 것에 의해 결정된다. 최대 델타 QP 시그널링 깊이는 미리 정의될 수도 있거나, 도출될 수도 있거나, 또는 슬라이스, 픽쳐, 타일 또는 시퀀스 레벨에서 시그널링될 수도 있다. 변수(IsCuQpDeltaCoded)의 값은 S708 단계에서 체크되고, 그것이 1과 동일하면, S714 단계에서 이전에 코딩되는 QP로부터 현재 분할 노드에 대한 최종 QP가 도출된다. IsCuQpDeltaCoded = 0이면, 단계(S710)에서 현재 분할 노드와 관련되는 TU에서 시그널링되는 또는 파싱되는 하나 이상의 신택스 엘리먼트로부터 델타 QP가 도출되고, 단계(S712)에서 참조 QP 및 델타 QP에 따라 현재 분할 노드와 관련되는 하나 이상의 TU에 대해 최종 QP가 재구성된다. 비디오 디코딩 시스템은 단계(S716)에서 최종 QP에 따라 현재 분할 노드와 관련되는 하나 이상의 TU를 디코딩한다. 몇몇 실시형태에서, 넌제로 계수 또는 이스케이프 팔레트가 있는 경우에만 QP가 필요로 되기 때문에, 단계(S714) 또는 단계(S710) 및 단계(S712)는, 현재 분할 노드에서 적어도 하나의 넌제로 계수 또는 이스케이프 팔레트가 있는 경우 현재 분할 노드에 대해서만 진행된다.
특별한 경우의 한 예에서 현재 분할 노드는 TT 분할에 의해 부모 노드로부터 구획화되는 제1 또는 제3 분할 노드이고, 현재 분할 노드의 깊이는 최대 델타 QP 시그널링 깊이보다 더 크지만 그러나 동일한 부모 노드로부터 구획화되는 제2 분할 노드의 깊이는 최대 델타 QP 시그널링 깊이와 동일하고, 신택스 엘리먼트로부터 도출되는 델타 QP는 부모 노드로부터 구획화되는 세 개의 분할 노드 모두에 의해 공유된다. 특별한 경우의 다른 예에서, 현재 분할 노드의 깊이가 최대 델타 QP 시그널링 깊이보다 더 작고 현재 분할 노드로부터 구획화되는 적어도 하나의 자식 노드의 깊이가 최대 델타 QP 시그널링 깊이보다 더 큰 경우, TT 분할에 의해 현재 분할 노드로부터 구획화되는 모든 자식 노드에 대해 최대 하나의 델타 QP가 도출된다. 델타 QP는 이 예에서 현재 분할 노드에 대해 구획화되는 모든 자식 노드에 의해 공유된다.
이전의 실시형태 및 예가 비디오 디코딩 시스템에서 구현되는 디코딩 방법이지만, 본 발명의 실시형태는 비디오 인코딩 시스템에도 또한 적용될 수도 있다. 인코딩 방법은 입력 비디오 데이터를 수신하는 것 및 비디오 데이터를 QTBT 또는 MTT와 같은 CU 구획화 구조체에 따라 리프 CU로 구획화하는 것을 포함한다. 인코딩 방법에서의 몇몇 단계는 디코딩 방법에서의 단계와 동일한데, 예를 들면, 인코딩 방법은 분할 타입에 따라 현재 분할 노드의 깊이를 결정하는 것 및 깊이를 최대 델타 QP 시그널링 깊이와 비교하는 것을 또한 포함한다. 비교 결과에 따라, 현재 분할 노드에 대한 QP가 결정된다. 예를 들면, 현재 분할 노드가 리프 CU인 경우, 현재 분할 노드의 깊이가 최대 델타 QP 시그널링 깊이보다 더 큰 경우 이전에 코딩되는 QP가 사용되고; 그렇지 않으면, 현재 분할 노드에 대한 QP로서 새로운 QP가 결정된다. 현재 분할 노드에 대해 새로운 QP가 결정되는 경우 델타 QP가 QP 및 참조 QP로부터 도출되고, 그 다음, 이 델타 QP에 관련되는 하나 이상의 신택스 엘리먼트가 현재 분할 노드와 관련되는 TU에서 시그널링되고, 그 결과, 디코더는 하나 이상의 신택스 엘리먼트를 파싱하여 델타 QP를 도출할 수 있다. 인코딩 방법은 양자화 프로세스에서 QP를 사용하여 현재 분할 노드를 인코딩하는 것을 포함한다.
별개의 루마 및 크로마 CU 구획화 구조체를 위한 QP 시그널링 듀얼 트리 코딩은 별개의 CU 구획화 구조체가 루마 성분 및 크로마 성분의 비디오 데이터를 분할하는 것을 허용하도록 된다. 루마 성분에 대한 상기의 QP 시그널링 또는 도출 방법은 QP 시그널링 또는 크로마 성분에 대한 도출로 확장될 수 있다. 하나의 실시형태에서, 하나 이상의 임계치, 결정 결과, 부모 노드로부터의 제어 플래그, 조건, 및 MinCuQpDeltaArea와 같은 최소 델타 QP 시그널링 CU 면적 또는 깊이를 포함하는 델타 QP 시그널링에 관련되는 파라미터의 일부 또는 모두가 루마 및 크로마 성분에 대해 복제된다. 하나의 세트는 루마 성분에 대해 사용되고, 한편 다른 것은 크로마 성분에 대해 사용된다. 임계치 및 조건은 상이한 컬러 성분에 따라 이들 두 세트에서 동일할 수 있거나 또는 상이할 수 있다.
루마 및 크로마 성분에 대해 듀얼 트리 코딩을 활용하는 몇몇 실시형태에서, 크로마 성분에 대해 델타 QP 시그널링이 스킵된다. 예를 들면, 크로마 델타 QP 신호는 크로마 QP 오프셋 신호에 의해 대체된다. 루마 성분에 대한 앞서 설명된 델타 QP 시그널링 방법과 유사하게, 크로마 블록의 깊이가 QP 시그널링에 대한 임계치보다 더 작거나 또는 동일한 경우 크로마 QP 오프셋이 시그널링될 수도 있다. 한 실시형태에서, 깊이는 면적에 의해 도출되고, QP 시그널링에 대한 임계치도 또한 깊이, 예를 들면, 크로마 성분에 대한 최대 QP 시그널링 깊이에 의해 도출된다. 본 발명의 몇몇 실시형태는, 델타 QP 시그널링이 크로마 성분에 대해 스킵되는 경우 크로마 성분에 대해 대응하는 루마 QP를 재사용한다. 즉, 단지 하나의 델타 QP만이 루마 성분에 대해 시그널링되거나 또는 파싱되고 루마 성분에 대한 QP가 델타 QP에 따라 결정된다. 크로마 델타 QP는 하나의 실시형태에 따라 동일 위치에 위치한 루마 블록의 델타 QP로부터 도출되고, 크로마 QP가 다른 실시형태에 따라 동일 위치에 위치한 루마 블록의 QP로부터 도출된다. 크로마 성분에 대해 루마 델타 QP 또는 루마 QP를 재사용하는 실시형태는, 시퀀스, 픽쳐, 타일, 또는 슬라이스 레벨에서 재사용을 인에이블 또는 디스에이블하고, 재사용이 디스에이블되는 경우 별개의 델타 QP가 루마 및 크로마 성분에 대해 시그널링되거나 또는 파싱된다.
크로마 성분에 대해 대응하는 루마 QP를 재사용하는 몇몇 실시형태에서, 크로마 델타 QP 대신 크로마 QP 오프셋이 시그널링되는데, 여기서 크로마 성분에 대한 크로마 QP 오프셋 시그널링은 루마 성분에 대한 델타 QP 시그널링과 유사할 수도 있다. 크로마 QP 오프셋은 현재 크로마 블록의 크로마 QP와 참조 루마 QP 사이의 차이이다. 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분의 비디오 데이터를 분할하기 위해 두 개의 별개의 CU 구획화 구조체가 사용되기 때문에, 동일한 CTU에 속하는 루마 및 크로마 CTB를 분할하기 위해 상이한 분할 방법이 사용될 수도 있다. 예를 들면, 루마 CTB는 먼저 QT 분할에 의해 구획화되고, 그 다음, 두 개의 상위 QT 파티션이 수직 BT 분할에 의해 추가로 분할된다; 그러나, 대응하는 크로마 CTB는 수직 BT 분할에 의해서만 구획화된다. 듀얼 트리 코딩의 이 예에서, 각각의 크로마 리프 CB는 하나의 루마 리프 CB 대신 세 개의 루마 리프 CB에 대응하며, 세 개의 루마 리프 CB의 각각이 그 자신의 QP를 가질 수도 있기 때문에, QP 중 하나는 크로마 QP를 도출하기 위한 참조 루마 QP로서 선택된다. 본 발명의 실시형태는, 듀얼 트리 코딩이 루마 및 크로마 성분을 분할하기 위해 적용되는 경우 동일 위치에 위치한 루마 블록을 할당하는 것에 의해 현재 크로마 블록에 대한 참조 루마 QP를 결정한다. 참조 루마 QP는, 동일 위치에 위치한 CU, PU, 또는 TU와 같은 동일 위치에 위치한 루마 블록의 루마 QP, 또는 동일 위치에 위치한 델타 QP 단위의 루마 QP이다. 동일 위치에 위치한 루마 블록의 몇몇 예는, 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 커버하는 블록, CU, PU, 또는 TU를 포함한다. 미리 정의된 샘플의 예는 현재 크로마 블록의 좌측 상부 샘플, 우측 상부 샘플, 좌측 하부 샘플, 우측 하부 샘플, 또는 중앙 샘플일 수도 있다. 동일 위치에 위치한 루마 블록으로부터 획득되는 참조 루마 QP 및 시그널링된 크로마 QP 오프셋에 의해 최종 크로마 QP가 재구성된다.
몇몇 다른 실시형태에서, 두 개의 별개의 델타 QP가 루마 및 크로마 성분에 대해 각각 시그널링된다. 최소 델타 QP 시그널링 CU 면적(MinCuQpDeltaArea), 또는 최소 면적 또는 최소 사이즈의 Log 2 값, 즉 Log2MinCuQpDeltaArea 또는 Log2MinCuQpDeltaSize와 같은 델타 QP 시그널링에 대한 임계치를 정의하기 위한 신택스 엘리먼트는 또한, 루마 및 크로마 성분에 대한 시퀀스, 픽쳐, 타일, 또는 슬라이스 레벨에서 별개로 코딩될 수 있다. 하나의 실시형태에서, 크로마 블록의 크로마 델타 QP 또는 크로마 QP는 동일 위치에 위치한 루마 블록의 루마 델타 QP 또는 루마 QP로부터 예측된다. 표 6에서 나타내어지는 신택스 표는 듀얼 트리 코딩이 활용될 때 루마 및 크로마 성분에 대한 별개의 델타 QP 시그널링의 한 예를 예시한다.
Figure 112021028846117-pct00030
Figure 112021028846117-pct00031
Figure 112021028846117-pct00032
Figure 112021028846117-pct00033
Figure 112021028846117-pct00034
Figure 112021028846117-pct00035
Figure 112021028846117-pct00036
Figure 112021028846117-pct00037
TU 레벨에서의 크로마 델타 QP 시그널링의 신택스 엘리먼트는 루마 델타 QP 시그널링에 대해 사용되는 HEVC의 신택스 엘리먼트와 유사할 수 있으며, 다음에서 나타내어진다:
Figure 112021028846117-pct00038
크로마 델타 QP 값(CuQpDeltaVal)은 절대 변수(cu_qp_delta_abs) 및 부호 플래그(cu_qp_delta_sign_flag)에 기초하여 도출된다. 최종 크로마 QP는 참조 크로마 QP 및 CuQpDeltaVal에 따라 재구성된다. 부호 플래그(cu_qp_delta_sign_flag)는, 그것이 존재하지 않는 경우, 0으로 추론된다. 절대 변수(cu_qp_delta_abs)가 존재하는 경우, 변수(IsCuQpDeltaCoded)는 1로 설정되고 크로마 델타 QP 값(CuQpDeltaVal)은 다음과 같이 도출된다:
Figure 112021028846117-pct00039
크로마 델타 QP를 계산하는 함수는 트리 타입이 듀얼 트리이고 크로마 TU에 적어도 하나의 넌제로 계수가 있을 때 호출된다. 예시적인 신택스 표는 표 7에서 나타내어진다.
Figure 112021028846117-pct00040
Figure 112021028846117-pct00041
현존하는 HEVC 시그널링 방법 대신 TU 레벨에서 크로마 델타 QP 시그널링의 다른 방법이 또한 적용될 수 있다. 상기에서 설명된 크로마 델타 QP 시그널링은 크로마 QP 오프셋 시그널링에 의해 대체될 수 있고 플래그인 IsCuQpDeltaCodedChroma는 IsCuChromaQpOffsetCoded에 의해 대체될 수 있으며,TU 레벨에서 크로마 QP 오프셋을 시그널링하는 한 예가 표 8의 신택스 표에서 나타내어진다.
Figure 112021028846117-pct00042
Figure 112021028846117-pct00043
이 실시형태에서, 현재 크로마 블록의 크로마 QP 오프셋은, TU가 크로마 성분에 대한 적어도 하나의 넌제로 계수를 가질 때 현재 크로마 블록과 관련되는 TU에서 시그널링되는 하나 이상의 신택스 엘리먼트로부터 도출된다. 표 7에서 나타내어지는 예는, 크로마(Cb 및 Cr) 성분 중 임의의 것이 적어도 하나의 넌제로 계수를 갖는지를 체크하고, 크로마 성분에 대한 적어도 하나의 넌제로 계수가 있을 때 크로마 QP 오프셋이 시그널링된다.
하나의 실시형태에서, 공유 트리 코딩이 적용되는 경우 크로마 QP 시그널링 및 관련된 IsCuChromaQpOffsetCoded 및 MinCuQpDeltaAreaChroma 도출 및 동작은 크로마 QP 오프셋을 시그널링하기 위해 사용된다. 별개의 트리 코딩이 적용되는 경우 크로마 QP 시그널링은 크로마 델타 QP 신호를 위해 사용된다. 다른 실시형태에서, 루마 및 크로마 성분에 대한 CU 구획화 구조체가 듀얼 트리인지 또는 공유 트리 코딩인지에 관계없이, 상기의 크로마 QP 시그널링은 크로마 델타 QP를 시그널링하기 위해 사용된다. 즉, 루마 및 크로마 성분에 대한 별개의 델타 QP는 듀얼 트리 코딩에 적용될뿐만 아니라, 또한 루마 성분과 크로마 성분 사이에서 CU 구획화 구조체가 공유되는 공유 트리 코딩에도 적용된다.
또 다른 실시형태에서, 루마 및 크로마 성분에 대한 CU 구획화 구조체가 듀얼 트리인지 또는 공유 트리 코딩인지에 관계없이, 상기의 크로마 QP 시그널링은 크로마 QP 오프셋을 시그널링하기 위해 사용된다. 변환 및 양자화가 바이패스되는 경우, 즉 플래그(cu_transquant_bypass_flag)가 참인 경우, 델타 QP 및/또는 크로마 QP 오프셋 시그널링을 스킵될 수 있다.
크로마 델타 QP 시그널링의 몇몇 실시형태에서, 크로마 델타 QP 시그널링을 위한 코딩 단위의 최소 크로마 코딩 블록 사이즈 사이와 크로마 코딩 트리 블록 사이즈 사이의 차이를 명시하기 위해, 플래그인 diff_cu_qp_delta_depth_c가 시그널링된다. 루마 델타 QP 시그널링과 유사하게, 크로마 델타 QP는 크로마 성분에 대한 신택스 엘리먼트(cu_qp_delta_abs 및 cu_qp_delta_sign_flag)로부터 도출될 수도 있다. 이 플래그(diff_cu_qp_delta_depth_c)의 값은 0 내지 log2_diff_max_min_luma_coding_block_size의 범위 내로 제한된다. 이 플래그가 존재하지 않는 경우, 값은 0과 동일한 것으로 추론되는데, 이것은 크로마 델타 QP 시그널링에 대한 최소 사이즈가 크로마 코딩 트리 블록 사이즈와 동일하다는 것을 의미한다.
하나의 실시형태에서, MinCuQpDeltaAreaC 또는 Log2MinCuQpDeltaAreaC에 의해 표현되는 크로마 델타 QP 시그널링에 대한 최소 사이즈가 크로마 서브 샘플링 비율과 동일한 비율인지의 여부를 나타내기 위해 플래그가 시그널링된다. 예를 들면, 4:2:0 컬러 포맷에서, 이 플래그는, 크로마 성분에 대한 MinCuQpDeltaAreaC가 루마 성분에 대한 MinCuQpDeltaArea의 1/4인지의 여부, 또는 Log2MinCuQpDeltaAreaC가 Log2MinCuQpDeltaArea-2인지의 여부를 나타낸다.
다른 실시형태에서, 적용 가능한 경우 세 개의 컬러 성분인 루마(Y), 크로마(Cb), 및 크로마(Cr)의 각각에 대해 세 개의 별개의 델타 QP가 시그널링된다. 예를 들면, ChromaArrayType이 0보다 더 큰 경우, 세 개의 컬러 성분에 대해 세 개의 델타 QP가 시그널링된다.
크로마에 대해 루마 QP 재사용하는 대표적인 플로우차트 도 8은 비디오 인코딩 또는 디코딩 시스템에서 비디오 데이터 프로세싱의 한 실시형태가 현재 크로마 블록에 대해 루마 QP를 재사용하는 것을 예시하는 플로우차트이다. 현재 크로마 블록은 리프 CU 또는 리프가 아닌 CU의 크로마 CB일 수도 있다. 비디오 인코딩 또는 디코딩 시스템은 단계(S802)에서 현재 크로마 블록의 입력 비디오 데이터를 수신한다. 입력 비디오 데이터는 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분에 대한 두 개의 별개의 CU 구획화 구조체에 따라 구획화된다. 동일 위치에 위치한 루마 블록의 루마 QP는, 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 커버하는 동일 위치에 위치한 블록을 위치 결정하는 것에 의해 단계(S804)에서 결정된다. 동일 위치에 위치한 루마 블록의 몇몇 예는 현재 크로마 블록의 동일 위치에 위치한 CU, PU, TU, 또는 델타 QP 단위를 포함한다. 현재 크로마 블록의 미리 정의된 샘플의 몇몇 예는 현재 크로마 블록의 좌측 상부 샘플, 우측 상부 샘플, 좌측 하부 샘플, 우측 하부 샘플, 또는 중앙 샘플을 포함한다. 단계(S806)에서, 동일 위치에 위치한 루마 블록의 이 루마 QP는 현재 크로마 블록에 대한 크로마 QP를 도출하기 위해 재사용된다. 예를 들면, 크로마 QP는 루마 QP 및 현재 크로마 블록과 관련되는 TU에서 시그널링되는 하나 이상의 신택스 엘리먼트로부터 결정되는 크로마 QP 오프셋에 의해 도출된다. 크로마 QP 오프셋은 루마 성분에 대한 앞서 설명된 델타 QP 시그널링 방법과 유사한 방법을 사용하는 것에 의해 시그널링될 수도 있는데, 예를 들면, 크로마 QP 오프셋은, 현재 크로마 블록의 깊이가 QP 시그널링에 대한 임계치보다 더 작은 또는 동일한 경우 현재 크로마 블록에 대해 도출된다. 크로마 QP 오프셋을 공유하기 위한 크로마 QG가 델타 QP를 공유하기 위한 루마 QG와는 상이할 수도 있기 때문에, 듀얼 트리 코딩이 인에이블되는 경우 크로마 QP 오프셋 및 루마 델타 QP가 별개로 시그널링된다. 현재 크로마 블록의 면적과 QP 시그널링에 대한 임계치는 깊이에 의해 도출될 수도 있다. 현재 크로마 블록과 관련되는 하나 이상의 TU는 단계(S808)에서 크로마 QP를 사용하여 인코딩 또는 디코딩된다.
참조 QP 도출 멀티 타입 트리 구획화 하에서 코딩 블록에 대한 참조 QP를 도출할 때 디코딩 순서에서 현재 코딩 블록의 양자화 그룹(QG)과 이전 양자화 그룹을 식별하는 것은 어렵다. 하나의 실시형태에서, 슬라이스 QP는 QTBT 또는 MTT 구획화 구조체에 의해 구획화되는 블록에 대한 참조 QP로 항상 사용된다. 다른 실시형태에서, BT 또는 QT 파티션에 대한 참조 QP로서 슬라이스 QP가 사용되지만, 그러나, QT 파티션의 경우, HEVC에서의 방법이 사용되어 참조 QP를 도출한다. 또 다른 실시형태에서, 디코딩 순서에서 이전 양자화 그룹의 QP는 참조로서 사용되지 않고, 이웃하는 코딩 양자화 그룹의 QP가 사용되거나 또는 이웃하는 코딩 양자화 그룹이 이용 가능하지 않은 경우 슬라이스 QP가 사용된다. 또 다른 실시형태에서, 디코딩 순서에서 이전 양자화 그룹의 QP는 참조로서 사용되지 않지만, 그러나 이웃 코딩 양자화 그룹이 이용 가능하지 않은 경우 최종 CTU에서의 최종 코딩된 QP가 사용된다. 최종 CTU에서의 최종 코딩된 QP도 또한 이용 가능하지 않은 경우, 슬라이스 QP가 사용된다.
몇몇 다른 실시형태에서, 참조 QP는 좌측 QP 및 상부 QP의 이용 가능성에 따라 도출된다. 예를 들면, 좌측 및 상부 QP 둘 모두가 이용 가능한 경우 좌측 QP 및 상부 QP의 평균 값이 참조 QP로서 사용되고, 그렇지 않고, 좌측 QP가 이용 가능한 경우 좌측 QP가 참조 QP로서 사용되거나 또는 상부 QP가 이용 가능한 경우 상부 QP가 참조 QP로서 사용된다. 좌측 및 상부 QP 중 어느 것도 이용 가능하지 않은 경우, 참조 QP로서 슬라이스 QP가 사용된다. 다른 예에서, 좌측 QP가 먼저 체크되고 그것이 이용 가능한 경우 참조 QP로서 사용되고, 그렇지 않고, 상부 QP가 이용 가능한 경우 그것이 참조 QP로서 사용되며, 좌측 및 상부 QP 둘 모두가 이용 가능하지 않으면 참조 QP로서 슬라이스 QP가 사용된다. 또 다른 예에서, 상부 QP가 먼저 체크되고 그것이 이용 가능한 경우 참조 QP로서 사용되고, 그렇지 않고, 좌측 QP가 이용 가능한 경우 그것이 참조 QP로서 사용되며, 좌측 및 상부 QP 둘 모두가 이용 가능하지 않으면 참조 QP로서 슬라이스 QP가 사용된다.
하나의 실시형태에서, 이웃하는 코딩 QG의 이용 가능성은 CTU 어드레스에 의존한다. 이웃하는 코딩 QG 및 현재 코딩 QG가 동일한 CTU 내에 있으면 이웃하는 코딩 QG가 이용 가능하고; 그렇지 않으면, 이웃하는 코딩 QG는 이용 가능하지 않다. 다른 실시형태에서, 이웃 코딩 QG의 이용 가능성은 CTU 행 어드레스에 의존한다. 예를 들면, 이웃하는 코딩 QG 및 현재 코딩 QG가 동일한 CTU 행 내에 있는 경우 이웃하는 코딩 QG가 이용 가능하고; 그렇지 않으면, 이웃하는 코딩 QG는 이용 가능하지 않다. 하나의 실시형태에서, QG에 대해 참조 QP가 도출된다. QG에서 최대 하나의 델타 QP가 시그널링될 수 있다. QG의 사이즈 또는 형상은 정사각형이 아닐 수도 있다. QG는 하나 이상의 CU를 포함할 수도 있다. QG 내의 CU의 인코딩 또는 디코딩 순서는 연속적이다. 비디오 디코딩 시스템이 QG 내의 CU를 디코딩하고 있을 때, CU에서 넌제로 잔차도 없고 팔레트 이스케이프 값도 없으며 델타 QP가 이 QG에서 시그널링되지 않는 경우, 이 CU의 QP는 참조 QP로서 설정된다. CU가 적어도 하나의 넌제로 잔차 또는 적어도 하나의 팔레트 이스케이프 값을 가지며, 델타 QP가 가 QG에서 아직 시그널링되지 않은 경우, 델타 QP가 시그널링된다. 재구성된 QP는 참조 QP와 델타 QP로부터 도출된다. 재구성된 QP는 이 CU와 이 QG 내의 나머지 모든 CU에 대해 사용된다. CU가 적어도 하나의 넌제로 잔차 또는 적어도 하나의 팔레트 이스케이프 값을 가지고, 델타 QP가 이미 이 QG에서 시그널링된 경우, 델타 QP는 시그널링되지 않는다.
양자화 그룹 구획화 또는 결정 양자화 그룹(QG) 구획화 또는 결정을 위한 이하에서 설명되는 세 개의 스킴인 스킴 A, 스킴 B, 및 스킴 C가 존재한다. QG를 결정하기 위해 QP 시그널링에 대한 임계치(MinCuQpDeltaArea)가 명시된다. QG는, 0과 동일한 변수(IsCuQpDeltaCoded0)를 갖는 영역, 노드, 또는 리프 CU를 나타낸다.
스킴 A 스킴 A의 한 예에서, 임계치(MinCuQpDeltaArea)보다 더 큰 또는 동일한 사이즈를 갖는 현재 분할 노드의 경우, 변수(IsCuQpDeltaCoded)는 현재 분할 노드에 대해 0으로 설정되고, MinCuQpDeltaArea보다 더 작은 사이즈를 가지며 부모 노드의 사이즈가 MinCuQpDeltaArea보다 더 큰 현재 분할 노드의 경우, 변수(IsCuQpDeltaCoded)는 현재 분할 노드에 대해 0으로 설정된다. 현재 분할 노드의 사이즈가 MinCuQpDeltaArea보다 더 작고 부모 노드의 사이즈가 MinCuQpDeltaArea보다 더 작거나 또는 동일한 경우, IsCuQpDeltaCoded는 0으로 설정되지 않는다. 다른 예에서, 현재 분할 노드의 사이즈가 MinCuQpDeltaArea보다 더 작거나 또는 동일하고 그것의 부모 노드의 사이즈가 MinCuQpDeltaArea보다 더 큰 경우, 변수(IsCuQpDeltaCoded)는 현재 분할 노드에 대해 0으로 설정된다. 또 다른 예에서, MinCuQpDeltaArea보다 더 큰 사이즈를 갖는 부모 노드로부터 구획화되는 현재 분할 노드의 경우, 변수(CuQpDeltaCoded)는 현재 노드에 대해 0으로 설정된다.
스킴 A의 다른 예에서, 현재 분할 노드의 사이즈가 MinCuQpDeltaArea보다 더 크고 자식 노드 중 하나의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면, 변수(IsCuDeltaCoded)는 모든 자식 노드에 대해 0으로 설정되고; 그렇지 않고, 현재 분할 노드가 MinCuQpDeltaArea보다 더 작거나 또는 동일하거나 또는 모든 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, 변수(IsCuDeltaCoded)는 모든 자식 노드에 대해 0으로 설정되지 않는다. 다른 예에서 현재 분할 노드의 사이즈가 MinCuQpDeltaArea보다 더 크면, 변수(IsCuQpDeltaCoded)는 모든 자식 노드에 대해 0으로 설정되고; 그렇지 않고, 현재 분할 노드가 MinCuQpDeltaArea보다 더 작거나 또는 동일하면, 변수(IsCuQpDeltaCoded)는 모든 자식 노드에 대해 0으로 설정되지 않는다.
스킴 A의 상기의 예는 QG 결정의 개념에 의해 설명될 수도 있다. 한 예에서, MinCuQpDeltaArea보다 더 큰 또는 동일한 사이즈를 갖는 리프 CU의 경우, 리프 CU는 QG이다. MinCuQpDeltaArea보다 더 작은 사이즈를 가지며 자신의 부모 CU의 사이즈가 MinCuQpDeltaArea보다 더 큰 리프 CU의 경우, 리프 CU는 QG이다. 리프가 아닌 CU 또는 현재 노드의 경우, 리프가 아닌 CU 또는 현재 노드의 사이즈가 MinCuQpDeltaArea와 동일하면, 이 리프가 아닌 CU 또는 현재 노드는 QG이다. 리프가 아닌 CU 또는 현재 노드의 경우, 그것의 사이즈가 MinCuQpDeltaArea보다 더 작고 그것의 부모 CU 또는 부모 노드의 사이즈가 MinCUQpDeltaArea보다 더 큰 경우, 이 리프가 아닌 CU 또는 현재 노드는 QG이다. 그렇지 않으면, 이 리프 CU 또는 이 리프가 아닌 CU 또는 현재 노드는 QG가 아니다.
다른 예에서, MinCuQpDeltaArea보다 더 큰 또는 동일한 사이즈를 갖는 리프 CU의 경우, 리프 CU는 QG이거나, 또는 사이즈가 MinCuQpDeltaArea보다 더 작고 그것의 부모 CU의 사이즈가 MinCuQpDeltaArea보다 더 큰 경우, 리프는 CU는 QG이다; 그렇지 않으면, 이 리프 CU는 QG가 아니다. 리프가 아닌 CU의 경우, 그것의 사이즈는 MinCuQpDeltaArea와 동일하거나 또는 사이즈가 MinCuQpDeltaArea보다 더 작고 그것의 부모 CU의 사이즈가 MinCuQpDeltaArea보다 더 큰 경우, 이 리프가 아닌 CU는 QG이다; 그렇지 않으면, 이 리프가 아닌 CU는 QG가 아니다.
스킴 A의 다른 예에서, MinCuQpDeltaArea보다 더 작거나 또는 동일한 사이즈를 가지며, 자신의 부모 노드가 QG가 아닌 현재 노드의 경우, 현재 노드는 QG이다. 리프 CU의 경우, 그것의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면, 리프 CU는 QG이다. 다른 예에서, MinCuQpDeltaArea보다 더 작거나 또는 동일한 사이즈를 가지며, 그것의 부모가 QG가 아닌 현재 노드의 경우, 현재 노드는 QG이다. 리프 CU의 경우, 부모 노드가 QG가 아니면, 리프 CU는 QG이다.
QG의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정된다. 이 QG에 대해 참조 QP 또는 소위 예측 QP가 도출된다. 예를 들면, QG에 대해 변수(IsCuQpDeltaCoded)는 0으로 설정되고 이 QG의 위치가 저장되는데, 그 위치의 한 예는 QG의 좌측 상부 위치이다. 저장된 위치는 참조 QP를 도출하기 위해 사용될 수 있다. 다른 예에서, QG의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정되고 참조 QP가 도출된다. 다른 예에서, 변수(IsCUQpDeltaCoded)는 QG의 제1 리프 CU에서 0으로 설정되고, 참조 QP는 QG의 제1 리프 CU에서 도출된다.
스킴 A에서, 현재 CU 또는 노드의 사이즈가 2 * MinCuQpDeltaArea이고 현재 CU 또는 노드를 분할하기 위해 QT 분할 또는 TT 분할이 적용되는 경우, 각각의 자식 노드는 QG이다. 변수(IsCuQpDeltaCoded)는 모든 자식 노드에 대해 0으로 설정된다. 현재 CU 또는 노드의 사이즈가 MinCuQpDeltaArea와 동일하면, 현재 CU 또는 노드는 QG이다. 변수(IsCuQpDeltaCoded)는 현재 CU 또는 노드에 대해 0으로 설정된다. 현재 리프 CU의 사이즈가 MinCuQpDeltaArea보다 더 크면, 현재 리프 CU는 QG이다. 변수(IsCuQpDeltaCoded)는 현재 리프 CU에 대해 0으로 설정된다. 현재 CU 또는 노드의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면, 변수(IsCuQpDeltaCoded)는 현재 CU 또는 노드에 대해 0으로 설정된다.
스킴 B QG 결정의 스킴 B에서, 몇몇 실시형태는 부모 노드의 분할 노드가 부모 노드에서 QG인지의 여부를 결정한다. 스킴 B의 한 예는, 가장 작은 자식 노드의 사이즈가 QP 시그널링에 대한 임계치(MinCuQpDeltaArea)보다 더 크거나 또는 동일한 경우 현재 노드의 모든 자식 노드에 대해 변수(IsCuQpDeltaCoded)를 0으로 설정한다. 다른 예에서, 모든 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면, 변수(IsCuQpDeltaCoded)는 현재 노드의 모든 자식 노드에 대해 0으로 설정된다. 다른 예에서, 모든 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면 변수는 현재 노드의 모든 자식 노드에 대해 0으로 설정되고; 그렇지 않고, 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, 변수(IsCuQpDeltaCoded)는 모든 자식 노드에 대해 0으로 설정되지 않는다. 분할 노드 중 어느 것도 변수(IsCuQpDeltaCoded)를 0으로 설정할 수 없다.
QG는 변수(IsCuQpDeltaCoded)가 0으로 설정된 영역, 노드, 또는 리프 CU를 나타낸다. 하나의 예에서, 리프 CU는, 자신의 사이즈가 임계치(MinCuQpDeltaArea)보다 더 큰 경우 QG이다. 다른 예에서, 현재 분할 노드는, 자신의 사이즈가 MinCuQpDeltaArea보다 더 크고 현재 분할 노드의 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우 QG이다. 다른 예에서, 현재 분할 노드가 MinCuQpDeltaArea보다 더 큰 사이즈를 가지고 현재 분할 노드의 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, 현재 분할 노드는 QG이다. 현재 노드의 경우, 모든 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하면, 현재 분할 노드는 QG가 아니다. 다른 예에서, 자신의 부모 노드가 QG가 아니고 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, 리프가 아닌 CU는 QG이다. 리프 CU는, 자신의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하고 자신의 부모 노드가 QG가 아닌 경우, QG이다.
스킴 B의 다른 예에서, 현재 분할 노드는, 자신의 부모 노드가 QG가 아니고 현재 분할 노드의 하나의 자식 노드의 사이즈가 QP 시그널링에 대한 임계치(MinCuQpDeltaArea)보다 더 작은 경우, QG이다. 리프 CU의 경우, 자신의 사이즈가 MinCuQPDeltaArea보다 더 크면, 리프 CU는 QG이다. 다른 예에서, 자신의 부모 노드가 QG가 아니고 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, 현재 분할 노드는 QG이다. 리프 CU의 경우, 자신의 사이즈가 MinCuQpDeltaArea보다 더 크거나 또는 동일하고, 부모 노드가 QG가 아니면, 리프 CU는 QG이다. 또 다른 예에서, 현재 분할 노드는, 자신의 부모 노드가 QG가 아니고 하나의 자식 노드의 사이즈가 MinCuQpDeltaArea보다 더 작은 경우, QG이다. 리프 CU의 경우, 부모 노드가 QG가 아니면, 리프 CU는 QG이다.
QG의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정된다. 이 QG에 대해 참조 QP 또는 예측 QP가 도출된다. 예를 들면, 변수(IsCuQpDeltaCoded)는 0으로 설정되고 이 QG의 좌측 상부 위치와 같은 위치가 저장된다. 저장된 위치는 참조 QP를 도출하기 위해 사용될 수 있다. 다른 예에서, 변수(IsCuQpDeltaCoded)는 0으로 설정되고 QG에 대해 참조 QP가 도출된다. 다른 예에서, 변수(IsCuQpDeltaCoded)는 QG의 제1 리프 CU에서 0으로 설정되고, QG의 제1 리프 CU에서 참조 QP가 도출된다.
스킴 B에서, 현재 분할 노드 사이즈가 임계치(MinCuQpDeltaArea)의 두 배와 동일하고 현재 분할 노드를 구획화하기 위해 QT 또는 TT 분할이 적용되는 경우, 현재 분할 노드는 QG이다. 변수(IsCuQpDeltaCoded)는 현재 분할 노드에 대해 0으로 설정된다. 현재 리프 CU 사이즈가 MinCuQpDeltaArea보다 더 크면, 현재 리프 CU는 QG이고, 변수(IsCuQpDeltaCoded)는 현재 리프 CU에 대해 0으로 설정된다.
스킴 C 스킴 C는, 현재 분할 노드 사이즈가 임계치(MinCuQpDeltaArea)의 두 배와 동일하고 QT 분할이 적용될 때, 처음 두 개의 QT 파티션은 QG로서 그룹화될 것이고 한편 마지막 두 개의 QT 파티션은 다른 QG로서 그룹화될 것이다는 점을 제외하면, 스킴 B와 유사하다. QG의 경우, 변수(IsCuQpDEltaCoded)는 0으로 설정되고 이 QG에 대해 참조 QP 또는 예측 QP가 도출된다. 예를 들면, QG의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정되고 이 QG의 좌측 상부 위치와 같은 위치가 저장된다. 저장된 위치는 참조 QP를 도출하기 위해 사용될 수 있다. 다른 예에서, QG의 경우, 변수(IsCuQpDeltaCoded)는 0으로 설정되고 참조 QP가 도출된다. 다른 예에서, 변수(IsCuQpDeltaCode)는 QG의 제1 리프 CU에서 0으로 설정되고, QG의 제1 리프 CU에서 참조 QP가 도출된다.
QG 구획화 방법의 개념은 병합 목록, 병합 추정 영역(Merge Estimation Region; MER), 또는 인트라 공유 경계 예측을 공유하기 위해 또한 적용될 수 있다.
본 발명의 실시형태는 비디오 인코더 및/또는 비디오 디코더에서 구현될 수도 있다. 예를 들면, 개시된 방법은 비디오 인코더의 엔트로피 디코딩 모듈, 계수 코딩 모듈, 양자화 모듈, 또는 파티션 제어 모듈, 및/또는 비디오 디코더의 엔트로피 파서 모듈(entropy parser module), 계수 디코딩 모듈, 역양자화 모듈, 또는 파티션 제어 모듈에서 구현될 수도 있다. 대안적으로, 개시된 방법 중 임의의 것은, 엔트로피 파서 모듈 또는 파티션 제어 모듈에 의해 필요로 되는 정보를 제공하기 위해, 비디오 인코더의 엔트로피 인코딩 모듈, 계수 코딩 모듈, 양자화 모듈, 또는 파티션 제어 모듈 및/또는 비디오 디코더의 엔트로피 파서 모듈, 계수 디코딩 모듈, 역양자화 모듈, 또는 파티션 제어 모듈에 커플링되는 회로로서 구현될 수도 있다. 비디오 인코더는 합법적인 비트스트림을 생성하기 위해 전술한 신택스 설계를 따라야 하며, 비디오 디코더는, 파싱 프로세스가 전술한 신택스 설계를 준수하는 경우에만 비트스트림을 올바르게 디코딩할 수 있다. 비트스트림에서 임의의 신택스 엘리먼트가 스킵되는 경우, 비디오 인코더 및 디코더는, 인코딩 및 디코딩 결과가 매치하는 것을 보장하기 위해, 신택스 엘리먼트의 값을 추론된 값으로 설정한다.
도 9는 본 발명의 다양한 실시형태를 구현하는 비디오 인코더(900)에 대한 예시적인 시스템 블록도를 예시한다. 인트라 예측 모듈(Intra Prediction module; 910)은 현재 픽쳐의 재구성된 비디오 데이터에 기초하여 인트라 예측자(intra predictor)를 제공한다. 인터 예측 모듈(Inter Prediction module; 912)은, 다른 픽쳐 또는 픽쳐들로부터의 비디오 데이터를 참조하는 것에 기초하여 인터 예측자를 제공하기 위해, 모션 추정(ME) 및 모션 보상(MC)을 수행한다. 인트라 예측 모듈(910) 또는 인터 예측 모듈(912) 중 어느 하나는, 현재 블록의 원래의 비디오 데이터로부터 선택된 예측자를 감산하는 것에 의해 잔차를 형성하기 위해, 현재 블록의 선택된 예측자를 가산기(916)에 공급한다. 현재 블록의 잔차는 변환 모듈(T)(918)에 의해, 후속하여, 양자화 모듈(Q)(920)에 의해 추가로 프로세싱된다. 변환되고 양자화된 잔차 신호는, 그 다음, 엔트로피 인코더(934)에 의해 인코딩되어 비디오 비트스트림을 형성한다. 양자화 모듈(920)에서, 각각의 양자화 그룹의 변환된 루마 잔차는 루마 QP에 의해 양자화되고, 루마 QP는 델타 QP로부터 결정된다. 본 발명의 몇몇 실시형태에 따르면, 델타 QP는 분할 노드의 깊이에 기초하여 시그널링된다. 분할 노드의 깊이는 분할 타입에 따라 의존한다. 몇몇 다른 실시형태에서, 동일 위치에 위치한 루마 블록의 루마 QP는 크로마 블록에 대한 크로마 QP를 도출하기 위해 재사용되는데, 여기서 동일 위치에 위치한 루마 블록은 크로마 블록의 하나의 미리 정의된 샘플의 동일 위치에 위치한 샘플을 커버하는 블록이다. 그 다음, 비디오 비트스트림은 각각의 양자화 그룹에 대한 델타 QP를 포함하는 부가 정보와 함께 압축된다. 현재 블록의 변환되고 양자화된 잔차 신호는 예측 잔차를 복원하기 위해 역양자화 모듈(IQ)(922) 및 역변환 모듈(IT)(924)에 의해 프로세싱된다. 도 9에서 도시되는 바와 같이, 잔차는 재구성 모듈(REC)(926)에서 선택된 예측자에 다시 추가되어 재구성된 비디오 데이터를 생성하는 것에 의해 복원된다. 복원된 비디오 데이터는 참조 픽쳐 버퍼(Reference Picture Buffer; Ref. Pict. Buffer)(932)에 저장될 수도 있고 다른 픽쳐의 예측을 위해 사용될 수도 있다. REC(926)로부터의 재구성되는 비디오 데이터는, 인코딩 프로세싱에서 기인하여 다양한 손상을 받을 수도 있고, 결과적으로, 픽쳐 품질을 추가로 향상시키기 위해 참조 픽쳐 버퍼(932)에 저장되기 이전에 재구성된 비디오 데이터에 루프 내 프로세싱 필터(In-loop Processing Filter; ILPF)(928)가 적용된다. 비디오 비트스트림으로의 통합을 위해 엔트로피 인코더(934)에 신택스 엘리먼트가 제공된다.
도 9의 비디오 인코더(900)에 대한 대응하는 비디오 디코더(1000)가 도 10에서 도시되어 있다. 비디오 인코더에 의해 인코딩되는 비디오 비트스트림은 비디오 디코더(1000)에 대한 입력이고 엔트로피 디코더(1010)에 의해 디코딩되어 변환되고 양자화된 잔차 신호 및 다른 시스템 정보를 파싱하고 복원한다. 엔트로피 디코더(1010)는 각각의 양자화 그룹에 대한 델타 QP를 파싱하는데, 여기서 델타 QP 시그널링은 분할 노드의 깊이에 의존한다. 분할 타입에 의해 구획화되는 분할 노드의 깊이는 분할 타입에 따라 도출된다. 디코더(1000)의 디코딩 프로세스는, 디코더(1000)가 인터 예측 모듈(1014)에서 모션 보상 예측만을 필요로 한다는 것을 제외하면, 인코더(900)의 재구성 루프와 유사하다. 각각의 블록은 인트라 예측 모듈(1012) 또는 인터 예측 모듈(1014) 중 어느 하나에 의해 디코딩된다. 스위치(1016)는 디코딩된 모드 정보에 따라 인트라 예측 모듈(1012)로부터 인트라 예측자를 또는 인터 예측 모듈(1014)로부터 인터 예측자를 선택한다. 변환되고 양자화된 잔차 신호는 역양자화 모듈(IQ)(1020) 및 역변환 모듈(IT)(1022)에 의해 복원된다. IQ 모듈(1020)은 역양자화 모듈로 또한 칭해진다. 분할 노드의 깊이 및 QP 시그널링에 대한 임계치를 비교하는 것에 의해, 역양자화 모듈(1020)은 엔트로피 디코더(1010)에 의해 파싱되는 델타 QP 및 참조 QP로부터 분할 노드에 대한 루마 QP를 결정하거나 또는 이전에 코딩되는 QP로부터 루마 QP를 결정한다. 몇몇 다른 실시형태에 따르면, 크로마 블록에 대한 크로마 QP는 동일 위치에 위치한 루마 블록의 루마 QP로부터 결정되고, 동일 위치에 위치한 루마 블록은 현재 크로마 블록의 하나의 미리 정의된 하나의 샘플의 동일 위치에 위치한 샘플을 커버하는 블록이다. 복원된 잔차 신호는 재구성된 비디오를 생성하기 위해 재구성 모듈(1018)에서 예측자를 다시 추가하는 것에 의해 재구성된다. 재구성된 비디오는 최종 디코딩된 비디오를 생성하기 위해 루프 내 프로세싱 필터(In-loop Processing Filter; ILPF)(1024)에 의해 추가로 프로세싱된다. 현재 디코딩된 픽쳐가 참조 픽쳐(reference picture)이면, 현재 디코딩된 픽쳐의 재구성된 비디오는 디코딩 순서에서 나중의 픽쳐를 위해 기준 피쳐 버퍼(Ref. Pict. Buffer)(1028)에 또한 저장된다.
도 9 및 도 10의 비디오 인코더(900) 및 비디오 디코더(1000)의 다양한 컴포넌트는 하드웨어 컴포넌트, 메모리에 저장되는 프로그램 명령어를 실행하도록 구성되는 하나 이상의 프로세서, 또는 하드웨어 및 프로세서의 조합에 의해 구현될 수도 있다. 예를 들면, 프로세서는 입력 비디오 데이터의 수신을 제어하기 위해 프로그램 명령어를 실행한다. 프로세서는 단일의 또는 다수의 프로세싱 코어를 구비한다. 몇몇 예에서, 프로세서는 인코더(900) 및 디코더(1000)의 몇몇 컴포넌트에서 기능을 수행하기 위해 프로그램 명령어를 실행하고, 프로세서와 전기적으로 커플링되는 메모리는 프로그램 명령어, 블록의 재구성된 이미지에 대응하는 정보, 및/또는 인코딩 또는 디코딩 프로세스 동안의 중간 데이터를 저장하기 위해 사용된다. 몇몇 예에서, 비디오 인코더(900)는 비디오 비트스트림에서 하나 이상의 신택스 엘리먼트를 포함하는 것에 의해 정보를 시그널링할 수도 있고, 대응하는 비디오 디코더(1000)는 하나 이상의 신택스 엘리먼트를 파싱 및 디코딩하는 것에 의해 그러한 정보를 도출한다. 몇몇 실시형태에서 메모리는 비일시적 컴퓨터 판독 가능 매체, 예컨대 반도체 또는 솔리드 스테이트 메모리, 랜덤 액세스 메모리(random access memory; RAM), 리드 온리 메모리(read-only memory; ROM), 하드 디스크, 광학 디스크, 또는 다른 적절한 저장 매체를 포함한다. 메모리는 또한 상기에서 열거되는 비일시적 컴퓨터 판독 가능 매체 중 두 개 이상의 조합일 수도 있다. 도 9 및 도 10에서 도시되는 바와 같이, 인코더(900) 및 디코더(1000)는 동일한 전자 디바이스에서 구현될 수도 있고, 따라서 인코더(900)와 디코더(1000)의 다양한 기능적 컴포넌트는, 동일한 전자 디바이스에서 구현되는 경우, 공유될 수도 있거나 또는 재사용될 수도 있다. 예를 들면, 도 9의 재구성 모듈(926), 역변환 모듈(924), 역양자화 모듈(922), 루프 내 프로세싱 필터(928), 및 참조 화상 버퍼(932) 중 하나 이상은, 도 10에서, 각각, 재구성 모듈(1018), 역변환 모듈(1022), 역양자화 모듈(1020), 루프 내 프로세싱 필터(1024), 및 참조 픽쳐 버퍼(1028)로서 기능하도록 또한 사용될 수도 있다.
비디오 코딩 시스템을 위한 분할 타입과 관련되는 깊이에 따른 QP 시그널링을 갖는 또는 크로마 성분에 대해 루마 QP를 재사용하는 비디오 데이터 프로세싱 방법의 실시형태는, 상기에서 설명되는 프로세싱을 수행하기 위해 비디오 압축 칩에 통합되는 회로 또는 비디오 압축 소프트웨어로 통합되는 프로그램 코드에서 구현될 수도 있다. 예를 들면, 현재 분할 노드의 면적을 결정하는 것 또는 동일 위치에 위치한 루마 블록의 루마 QP를 결정하는 것은, 컴퓨터 프로세서, 디지털 신호 프로세서(Digital Signal Processor; DSP), 마이크로프로세서, 또는 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA) 상에서 실행될 프로그램 코드에서 실현될 수도 있다. 이들 프로세서는, 본 발명에 의해 구체화되는 특정한 방법을 정의하는 머신 판독 가능 소프트웨어 코드 또는 펌웨어 코드를 실행하는 것에 의해, 본 발명에 따른 특정한 작업을 수행하도록 구성될 수 있다.
본 발명은 그 취지 또는 본질적인 특성에서 벗어나지 않으면서 다른 특정한 형태에서 구체화될 수도 있다. 설명된 예는 모든 관점에서 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다. 따라서, 본 발명의 범위는, 전술한 설명보다는, 첨부된 청구범위에 의해 나타내어진다. 청구범위의 등가성의 의미 및 범위 내에 있는 모든 변경예는 그들의 범위 내에 포괄되어야 한다.

Claims (20)

  1. 비디오 인코딩 또는 디코딩 시스템에서 비디오 데이터를 프로세싱하는 방법으로서,
    현재 크로마 블록과 관련되는 입력 비디오 데이터 - 상기 입력 비디오 데이터는 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분에 대한 두 개의 별개의 코딩 단위(Coding Unit; CU) 구획화 구조체에 따라 구획화됨 - 를 수신하는 단계;
    동일 위치에 위치한(collocated) 루마 블록 - 상기 동일 위치에 위치한 루마 블록은 상기 현재 크로마 블록의 하나의 미리 정의된 샘플의 동일 위치에 위치한 샘플을 커버하는 블록임 - 의 루마 양자화 파라미터(Quantization Parameter; QP)를 결정하는 단계;
    상기 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하여 상기 현재 크로마 블록에 대한 크로마 QP를 도출하는 단계; 및
    상기 크로마 QP를 사용하여 상기 현재 크로마 블록과 관련되는 하나 이상의 변환 단위(Transform Unit; TU)를 인코딩 또는 디코딩하는 단계를 포함하는, 비디오 데이터 프로세싱 방법.
  2. 제1항에 있어서,
    상기 비디오 디코딩 시스템에서 상기 현재 크로마 블록과 관련되는 변환 단위(TU)에서 시그널링되는 또는 그로부터 파싱되는 하나 이상의 신택스 엘리먼트(syntax element)로부터 크로마 QP 오프셋을 도출하는 단계 또는 상기 비디오 인코딩 시스템에서 상기 현재 크로마 블록과 관련되는 TU에서 크로마 QP 오프셋을 도출하여 시그널링하는 단계를 더 포함하고, 상기 크로마 QP는 상기 동일 위치에 위치한 루마 블록의 루마 QP 및 상기 크로마 QP 오프셋에 의해 도출되는, 비디오 데이터 프로세싱 방법.
  3. 제2항에 있어서,
    상기 현재 크로마 블록의 깊이를 결정하는 단계, 및 상기 현재 크로마 블록의 깊이가 QP 시그널링에 대한 임계치보다 더 작거나 또는 동일할 때 상기 크로마 QP 오프셋을 시그널링하거나 또는 하나 이상의 신택스 엘리먼트로부터 상기 크로마 QP 오프셋을 도출하는 단계를 더 포함하는, 비디오 데이터 프로세싱 방법.
  4. 제3항에 있어서,
    상기 현재 크로마 블록의 깊이는 상기 현재 크로마 블록의 면적에 의해 도출되고 상기 QP 시그널링에 대한 임계치는 최대 QP 시그널링 깊이에 의해 도출되는, 비디오 데이터 프로세싱 방법.
  5. 제3항에 있어서,
    상기 현재 크로마 블록의 깊이는, 상기 현재 크로마 블록이 터너리 트리(Ternary Tree; TT) 분할의 제1 또는 제3 노드인 경우 부모(parent) 노드의 깊이 + 2이고, 상기 현재 크로마 블록의 깊이는, 상기 현재 크로마 블록이 TT 분할의 제2 분할 노드인 경우 부모 노드의 깊이 + 1인, 비디오 데이터 프로세싱 방법.
  6. 제3항에 있어서,
    상기 현재 크로마 블록의 깊이는, 상기 현재 크로마 블록이 이진 트리(Binary Tree; BT) 분할에 의해 부모 노드로부터 구획화되는 경우 부모 노드의 깊이 + 1인, 비디오 데이터 프로세싱 방법.
  7. 제3항에 있어서,
    상기 현재 크로마 블록의 깊이는, 상기 현재 크로마 블록이 쿼드트리 분할에 의해 부모 노드로부터 구획화되는 경우 부모 노드의 깊이 + 2인, 비디오 데이터 프로세싱 방법.
  8. 제4항에 있어서,
    상기 현재 크로마 블록은 TT 분할에 의해 부모 노드로부터 구획화되고 상기 현재 크로마 블록의 깊이는 상기 QP 시그널링에 대한 임계치보다 더 크고, 상기 부모 노드로부터 구획화되는 제2 분할 노드의 깊이는 상기 QP 시그널링에 대한 임계치와 동일하며, 상기 하나 이상의 신택스 엘리먼트로부터 도출되는 상기 크로마 QP 오프셋은 상기 부모 노드로부터 구획화되는 세 개의 분할 노드 모두에 의해 공유되는, 비디오 데이터 프로세싱 방법.
  9. 제3항에 있어서,
    상기 현재 크로마 블록의 깊이가 최대 델타 QP 시그널링 깊이보다 더 작거나 또는 동일하고 상기 현재 크로마 블록으로부터 구획화되는 적어도 하나의 자식(children) 노드의 깊이가 상기 최대 델타 QP 시그널링 깊이보다 더 큰 경우 터너리 트리(TT)에 의해 상기 현재 크로마 블록으로부터 구획화되는 모든 자식 노드에 대해 하나의 크로마 QP 오프셋이 도출되고, 상기 하나 이상의 신택스 엘리먼트로부터 도출되는 상기 크로마 QP 오프셋은 상기 현재 크로마 블록으로부터 구획화되는 상기 자식 노드 중 하나 이상에 의해 사용되는, 비디오 데이터 프로세싱 방법.
  10. 제3항에 있어서,
    상기 현재 크로마 블록이 리프(leaf) CU일 때, 상기 QP 오프셋은, 상기 현재 크로마 블록의 깊이가 최대 델타 QP 시그널링 깊이보다 더 작거나 또는 동일하고 상기 현재 크로마 블록이 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트(escape palette)를 갖는 경우, 상기 하나 이상의 신택스 엘리먼트로부터 도출되는, 비디오 데이터 프로세싱 방법.
  11. 제3항에 있어서,
    상기 현재 크로마 블록이 리프 CU가 아니고 다수의 리프 CU로 추가로 구획화될 때, 상기 QP 오프셋은, 상기 현재 크로마 블록의 깊이가 최대 델타 QP 시그널링 깊이보다 더 작거나 또는 동일하고, 상기 현재 크로마 블록으로부터 구획화되는 적어도 하나의 자식 노드의 깊이가 상기 최대 델타 QP 시그널링 깊이보다 더 크고, 상기 현재 크로마 블록 내의 상기 리프 CU 중 적어도 하나가 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트를 갖는 경우, 상기 하나 이상의 신택스 엘리먼트로부터 도출되고, 상기 QP 오프셋은 상기 현재 크로마 블록 내의 상기 리프 CU 중 하나 이상에 의해 사용되는, 비디오 데이터 프로세싱 방법.
  12. 제2항에 있어서,
    상기 크로마 QP 오프셋은, 상기 현재 크로마 블록에 적어도 하나의 넌제로 계수 또는 적어도 하나의 이스케이프 팔레트가 있을 때, TU에서 시그널링되는 또는 그로부터 파싱되는 하나 이상의 신택스 엘리먼트로부터 도출되는, 비디오 데이터 프로세싱 방법.
  13. 제2항에 있어서,
    상기 크로마 QP 오프셋을 파싱하거나 또는 시그널링하는 것은, 변환 및 양자화가 상기 현재 크로마 블록에 대해 바이패스되는 경우 스킵되는, 비디오 데이터 프로세싱 방법.
  14. 제1항에 있어서,
    상기 동일 위치에 위치한 루마 블록은 상기 현재 크로마 블록의 동일 위치에 위치한 CU, 예측 단위(Prediction Unit; PU), TU, 또는 델타 QP 단위인, 비디오 데이터 프로세싱 방법.
  15. 제1항에 있어서,
    상기 현재 크로마 블록의 미리 정의된 샘플은 상기 현재 크로마 블록의 좌측 상부 샘플, 우측 상부 샘플, 좌측 하부 샘플, 우측 하부 샘플, 또는 중앙 샘플인, 비디오 데이터 프로세싱 방법.
  16. 제1항에 있어서,
    QP 시그널링에 관련되는 파라미터의 일부 또는 모두는 상기 루마 및 크로마 성분에 대해 복제되는, 비디오 데이터 프로세싱 방법.
  17. 제16항에 있어서,
    상기 QP 시그널링에 관련되는 파라미터는 하나 이상의 임계치, 결정 결과, 부모 노드로부터의 제어 플래그, 조건, 및 최소 델타 QP 시그널링 CU 면적 또는 최대 델타 QP 시그널링 깊이를 포함하는, 비디오 데이터 프로세싱 방법.
  18. 제1항에 있어서,
    상기 동일 위치에 위치한 루마 블록의 루마 QP는 상기 동일 위치에 위치한 루마 블록과 관련되는 TU에서 시그널링되는 또는 파싱되는 델타 QP와 관련되는 하나 이상의 신택스 엘리먼트로부터 도출되는, 비디오 데이터 프로세싱 방법.
  19. 비디오 인코딩 또는 디코딩 시스템에서 비디오 데이터를 프로세싱하는 장치로서,
    상기 장치는:
    현재 크로마 블록과 관련되는 입력 비디오 데이터 - 상기 입력 비디오 데이터는 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분에 대한 두 개의 별개의 코딩 단위(CU) 구획화 구조체에 따라 구획화됨 - 를 수신하도록;
    동일 위치에 위치한 루마 블록 - 상기 동일 위치에 위치한 루마 블록은 상기 현재 크로마 블록의 하나의 미리 정의된 샘플의 동일 위치에 위치한 샘플을 커버하는 블록임 - 의 루마 양자화 파라미터(QP)를 결정하도록;
    상기 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하여 상기 현재 크로마 블록에 대한 크로마 QP를 도출하도록; 그리고
    상기 크로마 QP를 사용하여 상기 현재 크로마 블록과 관련되는 하나 이상의 변환 단위(TU)를 인코딩 또는 디코딩하도록
    구성되는 하나 이상의 전자 회로를 포함하는, 비디오 데이터 프로세싱 장치.
  20. 장치의 프로세싱 회로로 하여금 비디오 프로세싱 방법을 수행하게 하는 프로그램 명령어를 저장한 비일시적 컴퓨터 판독 가능 매체로서,
    상기 방법은:
    현재 크로마 블록과 관련되는 입력 비디오 데이터 - 상기 입력 비디오 데이터는 듀얼 트리 코딩이 인에이블되는 경우 루마 및 크로마 성분에 대한 두 개의 별개의 코딩 단위(CU) 구획화 구조체에 따라 구획화됨 - 를 수신하는 단계;
    동일 위치에 위치한 루마 블록 - 상기 동일 위치에 위치한 루마 블록은 상기 현재 크로마 블록의 하나의 미리 정의된 샘플의 동일 위치에 위치한 샘플을 커버하는 블록임 - 의 루마 양자화 파라미터(QP)를 결정하는 단계;
    상기 동일 위치에 위치한 루마 블록의 루마 QP를 재사용하여 상기 현재 크로마 블록에 대한 크로마 QP를 도출하는 단계; 및
    상기 크로마 QP를 사용하여 상기 현재 크로마 블록과 관련되는 하나 이상의 변환 단위(TU)를 인코딩 또는 디코딩하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
KR1020217007451A 2018-08-16 2019-08-16 비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치 KR102585509B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862764872P 2018-08-16 2018-08-16
US62/764,872 2018-08-16
US201862727577P 2018-09-06 2018-09-06
US62/727,577 2018-09-06
US201862786317P 2018-12-28 2018-12-28
US62/786,317 2018-12-28
PCT/CN2019/101123 WO2020035066A1 (en) 2018-08-16 2019-08-16 Methods and apparatuses of chroma quantization parameter derivation in video processing system

Publications (2)

Publication Number Publication Date
KR20210042383A KR20210042383A (ko) 2021-04-19
KR102585509B1 true KR102585509B1 (ko) 2023-10-05

Family

ID=69525158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007451A KR102585509B1 (ko) 2018-08-16 2019-08-16 비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치

Country Status (7)

Country Link
US (2) US20210321098A1 (ko)
EP (2) EP3831061A4 (ko)
KR (1) KR102585509B1 (ko)
CN (2) CN112534813B (ko)
PH (1) PH12021550308A1 (ko)
TW (2) TWI729459B (ko)
WO (2) WO2020035066A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101997681B1 (ko) * 2018-06-11 2019-07-08 광운대학교 산학협력단 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치
CN112040229B (zh) * 2018-09-05 2021-06-29 华为技术有限公司 视频解码方法、视频解码器及计算机可读存储介质
EP3881535A4 (en) * 2018-12-29 2022-03-16 Zhejiang Dahua Technology Co., Ltd. INTRA-PREDICTION SYSTEMS AND METHODS
CN113366840A (zh) * 2019-01-16 2021-09-07 夏普株式会社 用于在视频编码中导出视频块的量化参数的系统和方法
KR20220044279A (ko) 2019-08-15 2022-04-07 바이트댄스 아이엔씨 팔레트 이스케이프 심벌에 대한 엔트로피 코딩
EP4000269A4 (en) 2019-08-15 2022-09-07 ByteDance Inc. PALLET MODE WITH DIFFERENT DIVISION STRUCTURES
KR102655352B1 (ko) * 2019-08-22 2024-04-04 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
US20210076074A1 (en) * 2019-09-11 2021-03-11 Qualcomm Incorporated Maximum and minimum block sizes signaling at high level syntax for video coding and transform units
KR102624438B1 (ko) * 2019-09-19 2024-01-15 바이트댄스 아이엔씨 팔레트 모드에 대한 양자화 파라미터 도출
JP7277354B2 (ja) * 2019-12-26 2023-05-18 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
US11546592B2 (en) 2020-01-08 2023-01-03 Tencent America LLC Flexible block partitioning for chroma component
US11206416B2 (en) * 2020-02-21 2021-12-21 Tencent America LLC Method and apparatus for video coding
US11900840B2 (en) 2021-12-13 2024-02-13 Qualcomm Incorporated Chrominance optimizations in rendering pipelines

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017203930A1 (en) * 2016-05-27 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
WO2017206826A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Methods and apparatuses of video data processing with conditionally quantization parameter information signaling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742330B (zh) * 2008-11-24 2013-03-27 北京中星微电子有限公司 一种图像编码方法及装置
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
WO2012175003A1 (en) 2011-06-20 2012-12-27 Mediatek Singapore Pte. Ltd. Method and apparatus of chroma intra prediction with reduced line memory
KR101442127B1 (ko) 2011-06-21 2014-09-25 인텔렉추얼디스커버리 주식회사 쿼드트리 구조 기반의 적응적 양자화 파라미터 부호화 및 복호화 방법 및 장치
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
US9510002B2 (en) * 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
US10567759B2 (en) * 2016-03-21 2020-02-18 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
WO2017219342A1 (en) 2016-06-24 2017-12-28 Mediatek Inc. Methods of signaling quantization parameter for quad-tree plus binary tree structure
US10448056B2 (en) * 2016-07-15 2019-10-15 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
WO2018018486A1 (en) 2016-07-28 2018-02-01 Mediatek Inc. Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure
US10779004B2 (en) 2016-10-12 2020-09-15 Mediatek Inc. Methods and apparatuses of constrained multi-type-tree block partition for video coding
US10848788B2 (en) 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017203930A1 (en) * 2016-05-27 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
WO2017206826A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Methods and apparatuses of video data processing with conditionally quantization parameter information signaling

Also Published As

Publication number Publication date
TWI720584B (zh) 2021-03-01
US11438590B2 (en) 2022-09-06
US20210321098A1 (en) 2021-10-14
EP3831061A4 (en) 2022-06-15
CN112534813B (zh) 2023-04-14
CN112544080B (zh) 2022-11-18
TW202021350A (zh) 2020-06-01
TWI729459B (zh) 2021-06-01
EP3831061A1 (en) 2021-06-09
WO2020035057A1 (en) 2020-02-20
CN112544080A (zh) 2021-03-23
WO2020035066A1 (en) 2020-02-20
PH12021550308A1 (en) 2021-10-11
TW202019186A (zh) 2020-05-16
EP3834413A4 (en) 2022-06-15
KR20210042383A (ko) 2021-04-19
CN112534813A (zh) 2021-03-19
US20210385467A1 (en) 2021-12-09
EP3834413A1 (en) 2021-06-16

Similar Documents

Publication Publication Date Title
KR102585509B1 (ko) 비디오 프로세싱 시스템에서 크로마 양자화 파라미터 도출의 방법 및 장치
US11064220B2 (en) Method and apparatus of video data processing with restricted block size in video coding
US10904580B2 (en) Methods and apparatuses of video data processing with conditionally quantization parameter information signaling
US10681351B2 (en) Methods and apparatuses of reference quantization parameter derivation in video processing system
US11943476B2 (en) Methods and apparatuses for coding video data with adaptive secondary transform signaling
US10848788B2 (en) Multi-type-tree framework for video coding
US11051009B2 (en) Video processing methods and apparatuses for processing video data coded in large size coding units
US20210329233A1 (en) Methods and Apparatuses of Processing Video Pictures with Partition Constraints in a Video Coding System

Legal Events

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