KR20230016047A - 비디오 코딩에서의 서브픽처들 및 타일들의 사용 - Google Patents

비디오 코딩에서의 서브픽처들 및 타일들의 사용 Download PDF

Info

Publication number
KR20230016047A
KR20230016047A KR1020227041438A KR20227041438A KR20230016047A KR 20230016047 A KR20230016047 A KR 20230016047A KR 1020227041438 A KR1020227041438 A KR 1020227041438A KR 20227041438 A KR20227041438 A KR 20227041438A KR 20230016047 A KR20230016047 A KR 20230016047A
Authority
KR
South Korea
Prior art keywords
video
sps
equal
chroma
minus1
Prior art date
Application number
KR1020227041438A
Other languages
English (en)
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 KR20230016047A publication Critical patent/KR20230016047A/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/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
    • 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/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 인코딩 및 비디오 디코딩을 위한 여러 기술들이 설명된다. 하나의 예시적인 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 변환에서 사용되는 양자화 파라미터 테이블이 시퀀스 파라미터 세트에 포함된다는 것을 지정하고, 여기서 규칙은 양자화 파라미터 테이블에서의 포인트 수를 표시하는 제1 신택스 요소가 시퀀스 파라미터 세트에 포함되는지 여부 또는 어떻게 포함되는지가 시퀀스 파라미터 세트 내의 제2 신택스 요소에 따라 제어된다는 것을 지정한다.

Description

비디오 코딩에서의 서브픽처들 및 타일들의 사용
관련 출원들의 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙들에 따라, 본 출원은 2020년 5월 27일에 출원된 미국 가특허 출원 제63/030,726호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원의 전체 개시내용은 참조에 의해 본 출원의 개시내용의 일부로서 포함된다.
기술 분야
이 특허 문서는 이미지 및 비디오 코딩 및 디코딩에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 코딩된 표현의 디코딩에 유용한 제어 정보를 사용하여 비디오의 코딩된 표현을 프로세싱하기 위해 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기술들을 개시한다.
하나의 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 변환에서 사용되는 양자화 파라미터 테이블이 시퀀스 파라미터 세트에 포함된다는 것을 지정하고, 여기서 규칙은 양자화 파라미터 테이블에서의 포인트 수를 표시하는 제1 신택스 요소가 시퀀스 파라미터 세트에 포함되는지 여부 또는 어떻게 포함되는지가 시퀀스 파라미터 세트 내의 제2 신택스 요소에 따라 제어된다는 것을 지정한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 시퀀스 파라미터 세트에 표시되는 서브픽처 수 - 1이 0보다 클 때 그리고 시퀀스 파라미터 세트 내의 신택스 요소가 코딩된 계층 비디오 시퀀스에서의 비디오의 첫 번째 비디오 픽처의 i 번째 서브픽처가 인루프 필터링 동작을 제외하는 디코딩 프로세스에서 비디오의 두 번째 비디오 픽처로서 취급된다는 것을 나타낼 때 다음과 같은 2 개의 조건: (1) 첫 번째 비디오 픽처 및 첫 번째 비디오 픽처의 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처가 루마 샘플 단위의 픽처 폭, 루마 샘플 단위의 픽처 높이, 서브픽처 수 - 1, 및 0 내지 서브픽처 수 - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, i 번째 서브픽처의 좌측 상단 코딩 트리 유닛의 수평 위치, i 번째 서브픽처의 좌측 상단 CTU의 수직 위치, i 번째 서브픽처의 폭 - 1, i 번째 서브픽처의 높이 - 1, i 번째 서브픽처에 대한 신택스 요소 각각에 대해 동일한 값을 갖는다; 및 (2) 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처는 서브픽처 수 - 1의 값이 0과 동일한 계층 간 참조 픽처이다 중 하나가 참이라는 것을 지정한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 아핀 코딩 툴이 인에이블되고 서브블록 기반 시간적 모션 벡터 예측 코딩 툴이 디스에이블될 때 서브블록 병합 후보들의 최대 수가 수 N이 되도록 허용되지 않는다는 것을 지정한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 아핀 병합 모드가 인에이블되는지 여부를 나타내는 신택스 요소가 비트스트림에 있는지 여부를 지정한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 다음과 같은 서브픽처 관련 신택스 요소들: 동일한 시퀀스 파라미터 세트를 참조하는 모든 서브픽처들이 동일한 치수를 갖는지 여부를 나타내는 제1 신택스 요소, 동일한 치수를 갖는 모든 서브픽처들의 공통 폭 및 공통 높이를 나타내는 제2 신택스 요소 중 하나 이상을 표시하거나 시퀀스 파라미터 세트로부터 생략하도록 지정하거나 모든 서브픽처들이 동일한 치수를 갖는 것은 아닐 때 제2 규칙에 따른 하나 이상의 신택스 요소가 생략된다는 것을 지정한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 폭이 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 열의 폭 - 1을 나타내는 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 폭 - 1과 동일하다고 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 높이가 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 행의 높이 - 1을 나타내는 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 높이 - 1과 동일하다고 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양상에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오 픽처들을 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 변환 동안 사용되는 하나 이상의 초기 양자화 파라미터(QP) 값을 나타내는 하나 이상의 신택스 요소가 코딩된 표현에 포함되는지 여부와 코딩된 표현에서 어디에 포함되는지를 지정한다. 또 다른 예시적인 양상에서, 비디오 인코더 장치가 개시된다. 비디오 인코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 초기 양자화 파라미터(QP) 값을 사용하도록 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현 내의 신택스 요소는 (a) 1 내지 25이거나 (b) 26보다 크거나 (c) 변환에 대한 최대 허용 QP 값의 함수이거나 (d) 변환에 사용되는 비트 깊이의 함수인 오프셋 값 K를 포함하는 오프셋 관계를 사용하여 초기 QP 값을 나타낸다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 규칙에 따라 크로마 블록을 포함하는 픽처 또는 슬라이스의 유형에 기초하여 하나 이상의 양자화 파라미터(QP) 테이블을 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은, 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 하나 이상의 양자화 파라미터(QP) 테이블을 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하며; 여기서 변환은 하나 이상의 QP 테이블에 대응하는 하나 이상의 신택스 요소를 지정하는 제1 규칙 또는 하나 이상의 QP 테이블과 크로마 블록의 코딩 특성 사이의 관계를 지정하는 제2 규칙을 준수한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며; 여기서 코딩된 표현은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 변환에 사용되는 하나 이상의 크로마 양자화 파라미터(QP) 테이블과 연관된 신택스 요소의 특성을 지정한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 코딩된 표현 내의 하나 이상의 신택스 요소에 관련된 포맷 규칙에 기초하여 비디오의 코딩된 표현에서 양자화 파라미터 테이블을 시그널링하기 위해 사용되는 시그널링 방식을 결정하는 단계, 및 결정에 기초하여, 비디오와 코딩된 표현 사이의 변환을 수행하는 단계를 포함한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은, 아핀 코딩의 사용이 인에이블되고 서브블록 기반 시간적 모션 벡터 예측의 사용이 디스에이블되는 경우에, 서브블록 병합 후보들의 최대 수를 제한하는 데 사용되는 수 N을 지정한다.
다른 예시적인 양상에서, 다른 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 서브픽처를 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 다음과 같은 서브픽처 관련 신택스 요소들: 동일한 시퀀스 파라미터 세트를 참조하는 모든 서브픽처들이 동일한 치수를 갖는지 여부를 나타내는 제1 신택스 요소, 동일한 치수를 갖는 모든 서브픽처들의 공통 폭 및 공통 높이를 시그널링하는 제2 신택스 요소, 또는 제2 포맷 규칙에 따른 제3 신택스 요소 중 하나 이상을 포함시키거나 생략하도록 지정한다.
또 다른 예시적인 양상에서, 비디오 디코더 장치가 개시된다. 비디오 디코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양상에서, 코드가 저장된 컴퓨터 판독 가능 매체가 개시된다. 코드는 본 명세서에서 설명되는 방법들 중 하나를 프로세서 실행 가능 코드 형태로 구체화한다.
이들 및 다른 특징들이 본 문서 전체에 걸쳐 설명된다.
도 1은 의존적 양자화에서 사용되는 2 개의 스칼라 양자화기의 예시이다.
도 2는 의존적 양자화에 대한 상태 천이 및 양자화기 선택의 예를 도시한다.
도 3은 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 4는 비디오 프로세싱 장치의 블록 다이어그램이다.
도 5는 예시적인 비디오 프로세싱 방법에 대한 플로차트이다.
도 6은 본 개시내용의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 7은 본 개시내용의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 8은 본 개시내용의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 9 내지 도 15는 예시적인 비디오 프로세싱 방법들에 대한 플로차트들이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용되며 각각의 섹션에 개시된 기술들 및 실시예들의 적용 가능성을 해당 섹션으로만 제한하지 않는다. 게다가, H.266 전문용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위해 사용되지 않는다. 그와 같이, 본 명세서에서 설명되는 기술들은 다른 비디오 코덱 프로토콜들 및 설계들에도 적용 가능하다.
1. 서론
본 발명은 비디오 코딩 기술들에 관한 것이다. 구체적으로, 이는 비디오 코딩에서의 초기 양자화 파라미터(QP) 및 크로마 QP 테이블에 관한 것이다. 이는 HEVC와 같은 기존의 비디오 코딩 표준, 또는 완성될 표준(다목적 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준들 또는 비디오 코덱에 적용 가능할 수 있다.
2. 약어
APS Adaptation Parameter Set(적응 파라미터 세트)
AU Access Unit(액세스 유닛)
AUD Access Unit Delimiter(액세스 유닛 구분자)
AVC Advanced Video Coding(고급 비디오 코딩)
CLVS Coded Layer Video Sequence(코딩된 계층 비디오 시퀀스)
CPB Coded Picture Buffer(코딩된 픽처 버퍼)
CRA Clean Random Access(클린 랜덤 액세스)
CTU Coding Tree Unit(코딩 트리 유닛)
CVS Coded Video Sequence(코딩된 비디오 시퀀스)
DPB Decoded Picture Buffer(디코딩된 픽처 버퍼)
DPS Decoding Parameter Set(디코딩 파라미터 세트)
EOB End Of Bitstream(비트스트림 끝)
EOS End Of Sequence(시퀀스 끝)
GDR Gradual Decoding Refresh(점진적 디코딩 리프레시)
HEVC High Efficiency Video Coding(고효율 비디오 코딩)
HRD Hypothetical Reference Decoder(가상 참조 디코더)
IDR Instantaneous Decoding Refresh(순간 디코딩 리프레시)
JEM Joint Exploration Model(결합 탐색 모델)
MCTS Motion-Constrained Tile Sets(모션 제약 타일 세트)
NAL Network Abstraction Layer(네트워크 추상화 계층)
OLS Output Layer Set(출력 계층 세트)
PH Picture Header(픽처 헤더)
PPS Picture Parameter Set(픽처 파라미터 세트)
PTL Profile, Tier and Level(프로필, 티어 및 레벨)
PU Picture Unit(픽처 유닛)
QP Quantization Parameter(양자화 파라미터)
RBSP Raw Byte Sequence Payload(원시 바이트 시퀀스 페이로드)
SEI Supplemental Enhancement Information(추가 개선 정보)
SPS Sequence Parameter Set(시퀀스 파라미터 세트)
SVC Scalable Video Coding(확장 가능 비디오 코딩)
VCL Video Coding Layer(비디오 코딩 계층)
VPS Video Parameter Set(비디오 파라미터 세트)
VTM VVC Test Model(VVC 테스트 모델)
VUI Video Usability Information(비디오 사용성 정보)
VVC Versatile Video Coding(다목적 비디오 코딩)
3. 비디오 코딩 소개
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263 표준들을 만들었고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual 표준들을 만들었으며, 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들을 만들었다. H.262 이후로, 비디오 코딩 표준들은 시간적 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC 이후의 미래의 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되었고 JEM(Joint Exploration Model)이라는 참조 소프트웨어에 추가되었다. 2018년 4월에, HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 대해 연구하기 위해 VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 협력 하에 JVET(Joint Video Expert Team)가 만들어졌다.
VVC 초안의 최신 버전, 즉 다목적 비디오 코딩(Versatile Video Coding)(초안 8)은 http://phenix.int-evry.fr/jvet/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v13.zip에 나와 있을 수 있다.
그리고 최신 테스트 모델 소프트웨어는 https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/archive/VTM-8.0/VVCSoftware_VTM-VTM-8.0.zip에 나와 있을 수 있다.
3.1. 양자화 파라미터 제어
VVC에서는, 최대 QP가 51로부터 63으로 확장되었으며, 초기 QP의 시그널링이 그에 따라 변경되었다. slice_qp_delta의 0이 아닌 값이 코딩될 때 슬라이스 세그먼트 계층에서 SliceQpY의 초기 값이 수정된다. 구체적으로, init_qp_minus26의 값은 ( - 26 + QpBdOffsetY ) 내지 +37의 범위에 있도록 수정된다. 변환 블록의 크기가 4의 거듭제곱이 아닐 때, 변환 프로세스에 의한 암시적 스케일링을 보상하기 위해, 181/256(또는 181/128)과 곱하는 대신에 QP 또는 QP levelScale 테이블에 대한 수정과 함께 변환 계수들이 프로세싱된다. 변환 스킵 블록의 경우, QP가 4와 동일할 때 양자화 스텝 크기가 1이 되기 때문에 최소 허용 양자화 파라미터(QP)는 4로서 정의된다.
HEVC에서(그리고 또한 H.264에서), 루마 양자화 파라미터 QPY를 크로마 양자화 파라미터 QPC로 변환하는 데 고정 룩업 테이블이 사용된다. VVC에서는, 보다 유연한 루마 대 크로마 QP 매핑이 사용된다. 고정 테이블을 갖는 대신에, 루마 대 크로마 QP 매핑 관계가 유연한 구간별(piecewise) 선형 모델을 사용하여 SPS에서 시그널링되며, 선형 모델에 대한 유일한 제약은 각각의 구간의 기울기가 음(negative)이 될 수 없다는 것이다(즉, 루마 QP가 증가함에 따라, 크로마 QP가 그대로 유지되거나 증가해야만 하며 감소할 수 없다). 구간별 선형 모델은 1) 모델에서의 구간 수; 2) 해당 구간에 대한 입력(루마) 및 출력(크로마) 델타 QP들에 의해 정의된다. 구간별 선형 모델의 입력 범위는 [-QpBdOffsetY, 63]이고 구간별 선형 모델의 출력 범위는 [-QpBdOffsetC, 63]이다. QP 매핑 관계는 Cb, Cr 및 결합 Cb/Cr 코딩에 대해 개별적으로 시그널링되거나 3 가지 유형의 잔차 코딩 모두에 대해 공동으로 시그널링될 수 있다.
HEVC에서와 동일하게, VVC에서도 CU 레벨 QP 적응이 허용된다. 루마 및 크로마 성분들에 대한 델타 QP 값들은 개별적으로 시그널링될 수 있다. 크로마 성분들의 경우, 허용된 크로마 QP 오프셋 값들이 HEVC에서와 유사한 방식으로 PPS에서 오프셋 리스트들의 형태로 시그널링된다. 리스트들은 Cb, Cr 및 결합 Cb/Cr 코딩에 대해 개별적으로 정의된다. Cb, Cr, 및 결합 Cb/Cr 리스트들 각각에 대해 최대 6 개의 오프셋 값이 허용된다. CU 레벨에서, 오프셋 리스트 내의 오프셋 값들 중 어느 것이 해당 CU에 대한 크로마 QP를 조정하는 데 사용되는지를 나타내기 위해 인덱스가 시그널링된다. CU 크로마 QP 오프셋 시그널링은 또한 VPDU CU QP 델타 이용 가능성과 일치하며, 64x64보다 큰 CU의 경우, 0이 아닌 CBF를 갖는지 여부에 관계없이 첫 번째 변환 유닛과 함께 크로마 QP 오프셋을 송신한다.
3.2. 의존적 양자화
추가적으로, 동일한 HEVC 스칼라 양자화가 의존적 스칼라 양자화라고 불리는 새로운 개념과 함께 사용된다. 의존적 스칼라 양자화란 변환 계수에 대한 허용 가능한 재구성 값들의 세트가 재구성 순서에서 현재 변환 계수 레벨에 선행하는 변환 계수 레벨들의 값들에 의존하는 접근법을 지칭한다. 이 접근법의 주요 효과는, HEVC에서 사용되는 종래의 독립적 스칼라 양자화와 비교하여, 허용 가능한 재구성 벡터들이 N차원 벡터 공간(N은 변환 블록에서의 변환 계수 수를 나타냄)에서 보다 조밀하게 패킹된다는 것이다. 즉, N차원 단위 부피당 주어진 평균 수의 허용 가능한 재구성 벡터들에 대해, 가장 가까운 재구성 벡터와 입력 벡터 사이의 평균 왜곡이 감소된다. 의존적 스칼라 양자화의 접근법은: (a) 상이한 재구성 레벨들을 갖는 2 개의 스칼라 양자화기를 정의하는 것 및 (b) 2 개의 스칼라 양자화기 사이를 전환하기 위한 프로세스를 정의하는 것에 의해 실현된다.
Q0 및 Q1에 의해 표기되는, 사용되는 2 개의 스칼라 양자화기는 도 1에 예시되어 있다. 이용 가능한 재구성 레벨들의 위치는 양자화 스텝 크기 Δ에 의해 고유하게 지정된다. 사용되는 스칼라 양자화기(Q0 또는 Q1)는 비트스트림에서 명시적으로 시그널링되지 않는다. 그 대신에, 현재 변환 계수에 대해 사용되는 양자화기는 코딩/재구성 순서에서 현재 변환 계수에 선행하는 변환 계수 레벨들의 패리티들에 의해 결정된다.
도 2에 예시된 바와 같이, 2 개의 스칼라 양자화기(Q0 및 Q1) 사이의 전환은 4 개의 상태를 갖는 상태 머신을 통해 실현된다. 상태는 4 개의 상이한 값, 즉 0, 1, 2, 3을 가질 수 있다. 이는 코딩/재구성 순서에서 현재 변환 계수에 선행하는 변환 계수 레벨들의 패리티들에 의해 고유하게 결정된다. 변환 블록에 대한 역양자화의 시작에서, 상태는 0과 동일하게 설정된다. 변환 계수들은 스캐닝 순서로(즉, 엔트로피 디코딩된 것과 동일한 순서로) 재구성된다. 현재 변환 계수가 재구성된 후에, 상태는 도 18에 도시된 바와 같이 업데이트되며, 여기서 k는 변환 계수 레벨의 값을 나타낸다.
3.3. 스케일링 행렬들
VVC는 기본 스케일링 행렬들을 사용하는 것 또는 사용자 정의 스케일링 행렬들을 시그널링하는 것을 지원한다. DEFAULT 모드 스케일링 행렬들은 모두 평탄(flat)하며, 모든 TB 크기들에 대해 요소들이 16과 동일하다. IBC 코딩 모드와 인트라 코딩 모드는 현재 동일한 스케일링 행렬들을 공유한다. 따라서, USER_DEFINED 행렬들의 경우, MatrixType 및 MatrixType_DC의 수가 다음과 같이 업데이트된다.
- MatrixType: 30 = 2(인트라&IBC/인터에 대한 2) x 3(Y/Cb/Cr 성분들) x 5(정사각형 TB 크기: 루마의 경우 4×4 내지 64×64, 크로마의 경우 4×4 내지 32×32)
- MatrixType_DC: 14 = 2(인트라&IBC/인터에 대한 2 × Y 성분에 대한 1) x 3(TB 크기: 16×16, 32×32, 64×64) + 4(인트라&IBC/인터에 대한 2 × Cb/Cr 성분들에 대한 2) x 2(TB 크기: 16×16, 32×32)
다음과 같은 스케일링 행렬들: 16×16, 32×32, 및 64×64에 대해 DC 값들이 개별적으로 코딩된다. 8×8보다 작은 크기의 TB들에 대해, 하나의 스케일링 행렬 내의 모든 요소들이 시그널링된다. TB들이 8×8보다 크거나 같은 크기를 갖는 경우, 하나의 8×8 스케일링 행렬 내의 64 개의 요소만이 기저 스케일링 행렬(base scaling matrix)로서 시그널링된다. 크기가 8×8보다 큰 정방 행렬들을 얻기 위해, 8×8 기저 스케일링 행렬이 대응하는 정사각형 크기(즉, 16×16, 32×32, 64×64)로 (요소들의 복제에 의해) 업샘플링된다. 64-포인트 변환에 대한 고주파 계수들의 제로 아웃(zero out)이 적용될 때, 스케일링 행렬들의 대응하는 고주파들도 제로 아웃된다. 즉, TB의 폭 또는 높이가 32보다 크거나 같은 경우, 계수들의 좌반부 또는 상반부만이 유지되고, 나머지 계수들은 0에 할당된다. 더욱이, 64×64 스케일링 행렬에 대해 시그널링되는 요소들의 수가 또한 8×8로부터 3 개의 4×4 부분 행렬들로 감소되는데, 그 이유는 우측 하단 4×4 요소들이 결코 사용되지 않기 때문이다. VVC에서는, 2x2, 2x4, 및 4x2 크로마 인트라 코딩 블록들(CB들)이 존재하지 않으며, 가장 작은 인트라 블록 크기는 2x8 및 8x2는 물론 가장 작은 크로마 IBC(intra block copy) 블록 크기와 동일하다. 게다가, 4x4 루마 CB들에 대해 인터 예측이 디스에이블된다. 따라서, 서브블록 변환(SBT)을 적용하는 것에 의해서만 작은 2x2 크로마 블록들이 생성될 수 있다. 이러한 본질들을 고려하여, 2x2 인트라 크로마 양자화 행렬들(QM들)이 기본 QM 리스트로부터 제거되고, 이 크기에 대해 사용자 정의 인트라 QM들을 코딩하지 않는다.
사용자 정의 양자화 행렬들(QM)에 대한 코딩 효율을 개선시키기 위해, 다음과 같은 접근법들이 고려된다.
- 현재 QM과 동일한 기본 크기를 갖는 이전에 코딩된 QM을 참조하는 것을 허용한다.
- 현재 QM과 참조 QM 사이의 코딩 요소 간 차이들을 허용한다.
- 현재 QM 내 요소들의 원래 DPCM 코딩을 유지한다.
- matrixId와 sizeId를 결합한 단일 행렬 식별자 scalingListId를 사용한다.
3.4. 크로마 잔차들의 결합 코딩
VVC는 크로마 잔차들이 결합 코딩되는 모드를 지원한다; 이것은 JCCR(Joint Coding of Chroma Residuals)이라고 한다. 결합 크로마 코딩 모드의 사용(활성화)은 TU-레벨 플래그인 tu_joint_cbcr_residual_flag에 의해 표시되고, 선택된 모드는 크로마 CBF들에 의해 암시적으로 표시된다. TU에 대한 크로마 CBF들 중 어느 하나 또는 둘 모두가 1과 동일한 경우 플래그 tu_joint_cbcr_residual_flag가 존재한다. PPS 및 슬라이스 헤더에서, 일반 크로마 잔차 코딩 모드에 대해 시그널링되는 통상적인 크로마 QP 오프셋 값들과 구별하기 위해 결합 크로마 잔차 코딩 모드에 대해 크로마 QP 오프셋 값들이 시그널링된다. 이러한 크로마 QP 오프셋 값들은 결합 크로마 잔차 코딩 모드를 사용하여 코딩되는 해당 블록들에 대한 크로마 QP 값들을 도출하는 데 사용된다. 대응하는 결합 크로마 코딩 모드(이하의 표에서의 모드 2)가 TU에서 활성일 때, 이 크로마 QP 오프셋은 해당 TU의 양자화 및 디코딩 동안 적용된 루마 도출 크로마 QP(luma-derived chroma QP)에 가산된다. 다른 모드들(이하의 표에서의 모드 1 및 모드 3)의 경우, 크로마 QP들은 종래의 Cb 또는 Cr 블록들과 동일한 방식으로 도출된다. 전송된 변환 블록들로부터의 크로마 잔차들(resCb 및 resCr)의 재구성 프로세스는 표 1에 나와 있다. 이 모드가 활성화될 때, 하나의 단일 결합 크로마 잔차 블록(이하의 표에서의 resJointC[x][y])이 시그널링되고, tu_cbf_cb, tu_cbf_cr, 및 슬라이스 헤더에 지정된 부호 값인 CSign과 같은 정보를 고려하여 Cb에 대한 잔차 블록(resCb)과 Cr에 대한 잔차 블록(resCr)이 도출된다.
인코더 측에서, 결합 크로마 성분들은 이하에서 설명되는 바와 같이 도출된다. 모드(위의 표들에 나열됨)에 따라, resJointC{1,2}는 인코더에 의해 다음과 같이 생성된다:
- 모드가 2(재구성 Cb = C, Cr = CSign * C인 단일 잔차)와 동일한 경우, 결합 잔차는 이하에 따라 결정되고,
resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2
- 그렇지 않고, 모드가 1(재구성 Cb = C, Cr = (CSign * C) / 2인 단일 잔차)과 동일한 경우, 결합 잔차는 이하에 따라 결정되며,
resJointC[ x ][ y ] = ( 4 * resCb[ x ][ y ] + 2 * CSign * resCr[ x ][ y ] ) / 5
- 그렇지 않은 경우(모드가 3과 동일한 경우, 즉, 단일 잔차, 재구성 Cr = C, Cb = (CSign * C) / 2인 경우), 결합 잔차는 이하에 따라 결정된다
resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5
표 1. 크로마 잔차들의 재구성. 값 CSign은 슬라이스 헤더에 지정되는 부호 값(+1 또는 -1)이고, resJointC[ ][ ]는 전송된 잔차이다.
Figure pct00001
위에서 설명된 세 가지 결합 크로마 코딩 모드는 I 슬라이스들에서만 지원된다. P 및 B 슬라이스들에서는, 모드 2만이 지원된다. 따라서, P 및 B 슬라이스들에서, 신택스 요소 tu_joint_ cbcr _residual_flag는 크로마 cbf들 둘 모두가 1인 경우에만 존재한다. tu_cbf_luma 및 tu_cbf_cb의 콘텍스트 모델링에서 변환 깊이가 제거된다는 점에 유의한다.
3.5. SPS에서의 크로마 QP 테이블
JVET-Q2001-vC의 7.3.2.3 절에서, SPS는 다음과 같이 표시된 크로마 QP 테이블이라는 구조를 포함한다:
Figure pct00002
이는 다음과 같은 시맨틱스 및 QP 테이블 도출을 갖는다:
sps_joint_cbcr_enabled_flag가 0과 동일한 것은 크로마 잔차들의 결합 코딩이 디스에이블된다는 것을 지정한다. sps_joint_cbcr_enabled_flag가 1과 동일한 것은 크로마 잔차들의 결합 코딩이 인에이블된다는 것을 지정한다. 존재하지 않을 때, sps_joint_cbcr_enabled_flag의 값은 0과 동일한 것으로 추론된다.
same_qp_table_for_chroma가 1과 동일한 것은 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. same_qp_table_for_chroma가 0과 동일한 것은 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma가 비트스트림에 존재하지 않을 때, same_qp_table_for_chroma의 값은 1과 동일한 것으로 추론된다.
qp_table_start_minus26[ i ] + 26은 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. qp_table_start_minus26[ i ]의 값은 -26 - QpBdOffset 내지 36(경계 포함)의 범위에 있어야 한다. qp_table_start_minus26[ i ]가 비트스트림에 존재하지 않을 때, qp_table_start_minus26[ i ]의 값은 0과 동일한 것으로 추론된다.
num_points_in_qp_table_minus1[ i ] + 1은 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table_minus1[ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. num_points_in_qp_table_minus1[ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1[ 0 ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_in_val_minus1[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트(pivot point)의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
i = 0..numQpTables - 1에 대해 i 번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]는 다음과 같이 도출된다:
Figure pct00003
same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 ChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
0 내지 numQpTables - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1[ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
위의 설명에서, QpBdOffset은 다음과 같이 도출된다:
bit_depth_minus8은, 다음과 같이, 루마 및 크로마 어레이들의 샘플들의 비트 깊이(BitDepth)와 루마 및 크로마 양자화 파라미터 범위 오프셋(QpBdOffset)의 값을 지정한다:
BitDepth = 8 + bit_depth_minus8
QpBdOffset = 6 * bit_depth_minus8
bit_depth_minus8은 0 내지 8(경계 포함)의 범위에 있어야 한다.
3.6. PPS에서의 초기 QP
PPS에 init _ qp _ minus26이라는 신택스 요소가 있다. 시맨틱스는 다음과 같다: init _ qp _ minus26 + 26은 PPS를 참조하는 각각의 슬라이스에 대한 SliceQpY의 초기 값을 지정한다. SliceQpY의 초기 값은 ph_qp_delta의 0이 아닌 값이 디코딩될 때는 픽처 레벨에서 수정되거나 slice_qp_delta의 0이 아닌 값이 디코딩될 때는 슬라이스 레벨에서 수정된다. init_qp_minus26의 값은 -( 26 + QpBdOffset ) 내지 +37(경계 포함)의 범위에 있어야 한다.
qp_delta_info_in_ph_flag가 1과 동일할 때, 픽처의 모든 슬라이스들에 대한 QpY 양자화 파라미터(SliceQpY)의 초기 값은 다음과 같이 도출된다:
SliceQpY = 26 + init_qp_minus26 + ph_qp_delta
qp_delta_info_in_ph_flag가 0과 동일할 때, 슬라이스에 대한 QpY 양자화 파라미터(SliceQpY)의 초기 값은 다음과 같이 도출된다:
SliceQpY = 26 + init_qp_minus26 + slice_qp_delta
SliceQpY의 값은 -QpBdOffset 내지 +63(경계 포함)의 범위에 있어야 한다.
4. 개시된 기술적 해결책들 및 실시예들에 의해 해결되는 기술적 문제들
1. 초기 QP 값(즉, init_qp_minus26)의 시그널링이 합리적이지 않을 수 있다.
2. I 및 B/P 픽처들 또는 슬라이스들이 상이한 크로마 QP 테이블들을 필요로 할 수 있지만, 현재 VVC 초안 텍스트에서는 동일한 것을 공유한다.
3. 변환 스킵이 다른 크로마 QP 테이블을 필요로 할 수 있다.
4. 크로마 QP 테이블 시작 포인트가 전체 QP 범위를 커버해야 하지만 현재 설계에서는 그렇지 않다.
5. 크로마 QP 테이블이 편향된 시작 포인트를 가질 수 있다.
6. 크로마 QP 테이블 내의 포인트 수가 0일 수 있어야 하지만, 현재 설계에서는 이것이 허용되지 않는데, 그 이유는 num_points_in_qp_table_minus1이 코딩되고 신택스 요소의 최소 허용 값이 0과 동일하며 결과적으로 최소 포인트 수가 1이기 때문이다.
7. 크로마 QP의 도출에서 QP 클리핑을 지정하는 것이 도출된 크로마 QP 값을 제한하기 위해 비트스트림 적합성 제약을 지정하는 것보다 나을 수 있는데, 그 이유는 전자가 위반이 발생하는 것을 방지할 것이기 때문이다.
8. 최신 VVC 초안 텍스트에서, SH 신택스 요소 slice_ts_residual_coding_disabled_flag는 변환 스킵 기반 잔차 코딩(TSRC) 또는 일반 잔차 코딩(RRC)이 변환 블록에 사용되는지 여부를 지정하는 데 사용된다. 그렇지만, 현재 블록이 TSRC를 사용하는지 RRC를 사용하는지에 대한 상위 레벨(SPS/PPS) 및/또는 하위 레벨(CU/TU) 레벨 제어 플래그들이 있을 수 있다. 더욱이, 상이한 레벨 제어 플래그들 사이의 상호작용들, 및 제어 플래그와 변환 스킵 플래그들 사이의 상호작용들이 추가로 지정될 것이다.
9. 현재 VVC에서는, 루마 ALF가 SPS/PH/SH에서 디스에이블될 때 크로마 ALF와 CC-ALF가 암시적으로 디스에이블된다. 그렇지만, CTU 레벨에서는 그러한 제한이 적용되지 않는다. CTU에 대해 루마 ALF가 디스에이블될 때, CTU에 대해 크로마 ALF 및 CC-ALF는 여전히 적용될 수 있다. 그러한 설계는 상위 레벨들에서 루마 ALF에 기초하여 크로마 ALF/CC-ALF를 제어하려는 의도와 상충된다.
10. 크로마 QP 테이블들은, 색상 포맷에 따라, 기본 값 세트를 가질 수 있다.
11. JVET-Q2001-vE에서의 최신 VVC 초안의 C.6 절에 지정된 서브비트스트림 추출 프로세스에서, 하나의 단계는 다음과 같이 지정된다:
- 이하의 조건들 모두가 참인 모든 NAL 유닛들을 outBitstream으로부터 제거한다:
- nal_unit_type이 IDR_W_RADL, IDR_N_LP, 또는 CRA_NUT와 동일하지 않다.
- nuh_layer_id가 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있는 j의 값에 대해 LayerIdInOls[ targetOlsIdx ][ j ]와 동일하다.
- TemporalId가 NumSubLayersInLayerInOLS[ targetOlsIdx ][ j ]보다 크거나 같다.
그렇지만, 이는 세 가지 조건 모두를 충족시키는 파라미터 세트 등 비-VCL NAL 유닛들이 또한 제거된다는 것을 의미한다. 이는 바람직하지 않으며, 파라미터 세트들, 예를 들면, PPS들 및 APS들은 상이한 TemporalId 값들을 갖는 픽처들에 의해 공유될 수 있고 비트스트림의 시작 부분에 배치될 수 있다.
12. 현재 사양은 8 ALF_APS, 8 SCALING_APS, 및 3 LMCS APS를, 제각기, 허용한다. 그렇지만, 픽처들에 허용되는 APS NAL 유닛 수가 충분하지 않을 수 있으며, 예를 들면, 전형적인 사용 사례는 픽처가 96 개의 서브픽처를 포함하고 각각의 서브픽처가 상이한 ALF_APS를 요구할 수 있는 것이다. 그러한 경우에, 현재 8 개의 ALF_APS NAL 유닛은 적절한 코딩 효율을 달성하기에 충분하지 않다. 따라서, 더 많은 수의 APS들을 지원할 필요가 있다.
13. JVET-S0071은, 다음과 같이, JVET-R2001-vA/v10에서의 VVC 설계에 서브픽처들 레이아웃의 시그널링을 위한 손쉬운 방법(shortcut)을 추가할 것을 제안한다.
a. 1과 동일한 sps_subpic_same_res_flag를 추가하는 것은 모든 서브픽처들이, 제각기, 동일한 폭 및 높이를 갖는다는 것을 지정한다.
b. sps_subpic_same_res_flag가 1과 동일할 때, sps_subpic_width_minus1[ i ] 및 sps_subpic_height_minus1[ i ]는 i가 0과 동일할 때만 시그널링되고, sps_subpic_ctu_top_left_x[ i ] 및 sps_subpic_ctu_top_left_y[ i ]는 모든 i 값들에 대해 스킵된다.
그렇지만, 신택스 설계가 다소 지저분하고, 모든 서브픽처들이, 제각기, 동일한 폭 및 높이를 가질 때, 서브픽처 수가 도출될 수 있으며 따라서 시그널링되지 않아야 한다.
5. 실시예들 및 해결책들의 예시적인 목록
위의 문제들 및 다른 문제들을 해결하기 위해, 아래에 요약된 방법들이 개시된다. 항목들은 일반적인 개념을 설명하기 위한 예들로서 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 게다가, 이러한 항목들은 개별적으로 적용될 수 있거나 임의의 방식으로 조합될 수 있다.
이하에서, floor(x)는 x보다 작거나 같은 가장 큰 정수를 반환하는 함수를 나타낸다.
1. 예를 들면, JVET-Q2001-vC에서 init_qp_minus26으로서 현재 표시된, 초기 QP 값들을 지정하는 데 사용되는 PPS 내의 초기 QP 값 신택스 요소는 PH로 이동될 수 있다.
a. 대안적으로, 초기 QP 값 신택스 요소가 PH에서 반복될 수 있다.
b. 대안적으로, 초기 QP 값 신택스 요소가 PPS 및 PH 둘 모두에서 시그널링될 수 있고, PH에서 시그널링되는 초기 QP 값 신택스 요소가 PPS에서 시그널링되는 초기 QP 값 신택스 요소를 (시그널링된 델타를 가산하는 것에 의해) 무시하거나 업데이트할 수 있다.
c. 대안적으로, 초기 QP 값 신택스 요소가 SPS에서 시그널링될 수 있고, 어쩌면 또한 PPS, PH, 및 SH 중 하나 이상에서 시그널링될 수 있으며, 존재할 때, 하위 레벨에서의 값이 상위 레벨에서 시그널링되는 값을 (시그널링된 델타를 가산하는 것에 의해) 무시하거나 업데이트한다. 업데이트하는 경우에, 최상위 레벨에서 시그널링되는 초기 QP 값은 ue(v) 코딩되고, 하위 레벨들에서 시그널링되는 델타 값들은 se(v) 코딩된다.
2. 초기 QP 값들을 표시하기 위한 다수의 신택스 요소들은 특정 유형들에 따라 SPS/PPS/PH/SH에서 시그널링될 수 있다.
a. 일 예에서, 그들 각각은 특정 유형에 대응할 수 있다.
b. 일 예에서, 특정 유형은 픽처/슬라이스 유형(예를 들면, I/P/B; 인트라/인터)을 포함할 수 있다.
c. 일 예에서, 특정 유형은 비디오 콘텐츠 유형(예를 들면, 스크린 콘텐츠 또는 카메라 캡처 콘텐츠)을 포함할 수 있다.
d. 일 예에서, 특정 유형은 서브픽처의 인덱스 또는 다른 서브픽처 식별 정보를 포함할 수 있으며, 즉, 상이한 서브픽처들이 초기 QP들의 도출을 위한 상이한 신택스 요소들과 연관될 수 있다.
e. 일 예에서, 특정 유형은 슬라이스의 인덱스 또는 다른 슬라이스 식별 정보를 포함할 수 있으며, 즉, 상이한 슬라이스들이 초기 QP들의 도출을 위한 상이한 신택스 요소들과 연관될 수 있다.
f. 일 예에서, 특정 유형은 타일의 인덱스 또는 다른 타일 식별 정보를 포함할 수 있으며, 즉, 상이한 타일들이 초기 QP들의 도출을 위한 상이한 신택스 요소들과 연관될 수 있다.
g. 일 예에서, 특정 유형은 변환 유형을 포함할 수 있다. (예를 들면, 변환 스킵 모드 또는 변환 스킵 모드 아님).
3. (예를 들면, SH/PH/PPS/SPS 내의) 초기 QP 값 신택스 요소는 26과 동일하지 않은 수 K만큼 오프셋될 수 있다.
a. 일 예에서, K는 26보다 작다.
b. 일 예에서, 신택스 요소는 init_qp_minusK로 대체될 수 있고/있거나 신택스 요소의 값은 -(K+QpBdOffset) 내지 (63-K)(경계 포함)의 범위에 있어야 하며, 여기서 K는 26보다 작다.
i. 일 예에서, K는 20과 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus20으로 대체될 수 있고/있거나 신택스 요소의 값은 -(20+QpBdOffset) 내지 43(즉, 63-20)(경계 포함)의 범위에 있어야 한다.
c. 일 예에서, K는 26보다 크다.
i. 일 예에서, 신택스 요소는 init_qp_minusK로 대체될 수 있고, 신택스 요소의 값은 -(K+QpBdOffset) 내지 (63-K)(경계 포함)의 범위에 있어야 하며, 여기서 K는 26보다 큰 상수이다.
ii. 일 예에서, K는 32와 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus32로 대체될 수 있고 신택스 요소의 값은 -(32+QpBdOffset) 내지 31(즉, 63-32)(경계 포함)의 범위에 있어야 한다.
d. 대안적으로, K는 최대 허용 QP 및/또는 최소 허용 QP의 함수로 설정될 수 있다. 예를 들어, K는 (최대 허용 QP - 최소 허용 QP)/2 또는 (최대 허용 QP + 1 - 최소 허용 QP)/2와 동일하게 설정될 수 있다.
e. 위의 예에서, K는 픽처/슬라이스/블록 유형들; 및/또는 예측 모드들 및/또는 비트 깊이에 의존할 수 있다.
i. 일 예에서, I 슬라이스/픽처에 대한 K의 값은 P/B 슬라이스들/픽처들에 대한 것보다 크지 않다.
4. (예를 들면, SH/PH/PPS 내의) 초기 QP 값 신택스 요소는 내부 비트 깊이에 의존하는 수만큼 오프셋될 수 있다.
a. 일 예에서, 초기 QP 값 신택스 요소는 floor((-QpBdOffset+M)/2)만큼 오프셋될 수 있다.
i. 대안적으로, 게다가, 신택스 요소에 floor((-QpBdOffset+M)/2)를 더한 값은 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 한다.
b. 일 예에서, 초기 QP 값 신택스 요소는 (floor((-QpBdOffset+M)/2) + K)만큼 오프셋될 수 있으며, 여기서 K는 상수이다.
i. 대안적으로, 게다가, 신택스 요소에 (floor((-QpBdOffset+M)/2) + K)를 더한 값은 -QpBdOffset 내지 N(경계 포함)의 범위에 있어야 한다.
c. 위의 예들에서, N은 최대 허용 QP 값(예를 들면, 63)으로 설정될 수 있다.
d. 위의 예들에서, M은 최대 허용 QP 값(예를 들면, 63) 또는 최대 허용 QP 값 +/- 1로 설정될 수 있다.
5. 크로마 QP 테이블들은 픽처/슬라이스 유형들에 따라 결정될 수 있다.
a. 일 예에서, 상이한 픽처/슬라이스 유형들은 상이한 크로마 QP 테이블 세트들을 가질 수 있다.
b. 일 예에서, I 픽처들/슬라이스들은 자체 크로마 QP 테이블들을 가질 수 있다.
c. 일 예에서, I 및 B 및 P 픽처들/슬라이스들 각각은 자체 크로마 QP 테이블들을 가질 수 있다.
d. 일 예에서, B 및 P 픽처들/슬라이스들은 동일한 크로마 QP 테이블 세트를 공유할 수 있다.
e. 일 예에서, 픽처/슬라이스 유형들은 M 개의 경우(I 전용(I only), BP 공유(BP share)의 경우 M=2; I/B/P 별개(I/B/P separate)의 경우 M=3)로 분류될 수 있다. 시그널링될 크로마 QP 테이블 수는 M에 의존할 수 있다.
i. 일 예에서, 시그널링될 크로마 QP 테이블 수는 M* numQpTables로 설정될 수 있으며, 여기서 (numQpTables = same_qp_table_for_chroma ? 1 : ( sps_joint_cbcr_enabled_flag ? 3 : 2 ))이고 여기서 M은 1보다 크다.
1) 대안적으로, 게다가, same_qp_table_for_chroma에 대한 시맨틱스는 'same_qp_table_for_chroma가 1과 동일한 것은 픽처/슬라이스 유형에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링된다는 것을 지정한다'로 추가로 수정될 수 있다.
ii. 일 예에서, 게다가, 시그널링될 크로마 QP 테이블 수는 (same_qp_table_for_chroma ? 1 : (M*( sps_joint_cbcr_enabled_flag ? 3 : 2 )))로 설정될 수 있고 여기서 M은 1보다 크다.
iii. 일 예에서, 각각의 카테고리에 대해, 모든 블록들이 동일한 크로마 QP 테이블들을 공유하는지 여부의 표시가 먼저 시그널링되고, QP 테이블 수가 (same qp table for chroma ? 1 : ( sps_joint_cbcr_enabled_flag ? 3 : 2 ))로 설정되며, 크로마 QP 테이블들에 대한 상세한 정보가 뒤따른다.
1) 대안적으로, 게다가, 모든 카테고리들에 대해, 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP의 표시들이, 예컨대, 실제 값에서 K(예를 들면, K = 26)를 뺀 값을 사용하여, 추가로 시그널링될 수 있다.
2) 대안적으로, 게다가, 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP의 표시들이, 예컨대, 실제 값에서 K(예를 들면, 인트라 슬라이스들/픽처들의 경우 K=1 또는 인터 슬라이스들/픽처들의 경우 K=32)를 뺀 값을 사용하여, 추가로 시그널링될 수 있으며, K는 카테고리 인덱스에 의존한다.
6. 표시, 예를 들면, sps_non_intra_present_flag는 현재 시퀀스가 B/P 슬라이스들을 포함할 수 있는지를 나타내기 위해 SPS에 추가될 수 있다.
a. 일 예에서, 플래그가 1일 때, 이는 현재 시퀀스들에서의 모든 슬라이스들이 인트라 슬라이스들이라는 것을 나타낸다.
b. 일 예에서, 플래그가 0일 때, 이는 현재 시퀀스에 B/P 슬라이스들이 있을 수 있다는 것을 나타낸다.
7. 1 개 또는 2 개의 크로마 QP 테이블 세트가 SPS에서 시그널링될 수 있다.
a. 예를 들면, sps_one_set_of_chroma_qp_tables_flag라는 플래그가 SPS에 추가된다.
b. sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 것은 (즉, 현재 VVC 초안 텍스트에서와 같이) SPS에 하나의 크로마 QP 테이블 세트가 존재한다는 것을 지정하고, 이 크로마 QP 테이블 세트는 인트라 코딩된 엔티티들(픽처들, 슬라이스들, CTU들, CU들, 또는 코딩된 블록들)에만 적용된다.
i. 일 예에서, 유일한 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 (모든 슬라이스들이 인트라 슬라이스들, 즉 I 슬라이스들인) 인트라 픽처들에만 적용된다.
ii. 일 예에서, 유일한 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 슬라이스들에만 적용된다.
iii. 일 예에서, 유일한 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 CTU들에만 적용된다.
iv. 일 예에서, 유일한 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 CU들에만 적용된다.
v. 일 예에서, 유일한 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 코딩된 블록들에만 적용된다.
c. sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 것은 (즉, 현재 VVC 초안 텍스트에서와 같이) SPS에 하나의 크로마 QP 테이블 세트가 존재한다는 것을 지정하고, 이 크로마 QP 테이블 세트는 인트라 및 인터 코딩된 엔티티들(픽처들, 슬라이스들, CTU들, CU들, 또는 코딩된 블록들) 둘 모두에 적용된다.
d. sps_one_set_of_chroma_qp_tables_flag가 0과 동일한 것은 SPS에 2 개의 크로마 QP 테이블 세트가 존재한다는 것(즉, 크로마 QP 테이블 세트를 하나 더 추가함)을 지정하고, 제0 크로마 QP 테이블 세트는 인트라 코딩된 엔티티들(픽처들, 슬라이스들, CTU들, CU들, 또는 코딩된 블록들)에만 적용되고, 제1 크로마 QP 테이블 세트는 인터 코딩된 엔티티들(픽처들, 슬라이스들, CTU들, CU들, 또는 코딩된 블록들)에만 적용된다.
i. 일 예에서, 제0 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 (모든 슬라이스들이 인트라 슬라이스들인) 인트라 픽처들에만 적용되고, 제1 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 (모든 슬라이스들이 인터 슬라이스들, 즉, B 또는 P 슬라이스들인) 인터 픽처들에만 적용된다.
ii. 일 예에서, 제0 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 슬라이스들에만 적용되고, 제1 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인터 슬라이스들에만 적용된다.
iii. 일 예에서, 제0 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 CTU들에만 적용되고, 제1 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인터 CTU들에만 적용된다.
iv. 일 예에서, 제0 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 CU들에만 적용되고, 제1 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인터 CU들에만 적용된다.
v. 일 예에서, 제0 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인트라 코딩된 블록들에만 적용되고, 제1 크로마 QP 테이블 세트는 SPS를 참조하는 CLVS들에서의 인터 코딩된 블록들에만 적용된다.
e. 이 플래그는 ChromaArrayType이 0과 동일하지 않을 때에만 송신될 수 있다.
f. 예시적인 구현이 실시예 4에 나와 있다.
g. 다른 예시적인 구현이 실시예 5에 나와 있다.
8. 크로마 QP 테이블들은 예측 모드들에 따라 결정될 수 있다.
a. 일 예에서, 인트라 CU들 및 다른 CU들은 상이한 크로마 QP 테이블 세트를 가질 수 있다.
i. 일 예에서, 이는 이중 트리 및/또는 로컬 이중 트리에만 적용될 수 있다.
b. 대안적으로, 인트라/팔레트 CU들 및 다른 CU들은 상이한 크로마 QP 테이블 세트를 가질 수 있다.
c. 대안적으로, 인트라/IBC/팔레트 CU들 및 다른 CU들은 상이한 크로마 QP 테이블 세트를 가질 수 있다.
d. 대안적으로, 인트라/IBC CU들 및 다른 CU들은 상이한 크로마 QP 테이블 세트를 가질 수 있다.
e. 위의 예들에서, 시그널링될 크로마 QP 테이블 수는 분류된 예측 모드 세트들의 수에 의존할 수 있다.
f. 위의 예들에서, 예측 모드는 루마 CB의 예측 모드를 의미할 수 있다.
9. 변환 스킵 블록들은 상이한 크로마 QP 테이블 세트를 가질 수 있다.
a. 일 예에서, 이는 변환 스킵 모드로 코딩되는 루마 블록들에만 적용될 수 있다.
10. 즉, JVET-Q2001-vC에서 qp_table_start_minus26으로서 현재 표시된, 크로마 QP 테이블 시작 포인트 신택스 요소의 최대 허용 값은 37일 수 있다.
11. 즉, JVET-Q2001-vC에서 qp_table_start_minus26으로서 현재 표시된, 크로마 QP 테이블 시작 포인트 신택스 요소는 26보다 작은 수 K만큼 오프셋될 수 있다.
a. 일 예에서, 신택스 요소는 qp_table_start_minusK로 대체될 수 있고/있거나 신택스 요소에 K를 더한 값은 -(K+QpBdOffset) 내지 (M-K)(경계 포함)의 범위에 있어야 하고, 여기서 K는 26보다 작다.
b. 일 예에서, 신택스 요소는 qp_table_start_minusK로 대체될 수 있고/있거나 신택스 요소의 값은 -(K+QpBdOffset) 내지 (M-1-K)(경계 포함)의 범위에 있어야 하며, 여기서 K는 26보다 작다.
i. 일 예에서, K는 20과 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus20으로 대체될 수 있고/있거나 신택스 요소에 20을 더한 값은 -(20+QpBdOffset) 내지 (M-20)(경계 포함)의 범위에 있어야 한다.
ii. 일 예에서, K는 20과 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus20으로 대체될 수 있고/있거나 신택스 요소에 20을 더한 값은 -(20+QpBdOffset) 내지 (M-1-20)(경계 포함)의 범위에 있어야 한다.
c. 대안적으로, 초기 QP 값 신택스 요소는 26보다 큰 수 K만큼 오프셋될 수 있다.
i. 일 예에서, 신택스 요소는 init_qp_minusK로 대체될 수 있고, 신택스 요소에 K를 더한 값은 -(K+QpBdOffset) 내지 (M-K)(경계 포함)의 범위에 있어야 하며, 여기서 K는 26보다 큰 상수이다.
ii. 일 예에서, 신택스 요소는 init_qp_minusK로 대체될 수 있고, 신택스 요소에 K를 더한 값은 -(K+QpBdOffset) 내지 (M-1-K)(경계 포함)의 범위에 있어야 하며, 여기서 K는 26보다 큰 상수이다.
1) 일 예에서, K는 32와 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus32로 대체될 수 있고 신택스 요소에 32를 더한 값은 -(32+QpBdOffset) 내지 (M-32)(경계 포함)의 범위에 있어야 한다.
2) 일 예에서, K는 32와 동일하다. 대안적으로, 게다가, 신택스 요소는 init_qp_minus32로 대체될 수 있고 신택스 요소에 32를 더한 값은 -(32+QpBdOffset) 내지 (M-1-32)(경계 포함)의 범위에 있어야 한다.
d. 위의 예에서, K는 픽처/슬라이스 유형들; 및/또는 예측 모드들 및/또는 비트 깊이에 의존할 수 있다.
i. 일 예에서, 인트라 픽처/슬라이스들의 경우, K는 1로 설정된다.
ii. 일 예에서, P/B 픽처/슬라이스들의 경우, K는 32로 설정된다.
e. 위의 예에서, M은 최대 허용 QP 값, 예를 들면, 63일 수 있다.
f. 일 예에서, K는 0이다.
i. 대안적으로, 게다가, 신택스 요소는 sv(e) 대신에 uv(e)를 사용하여 이진화될 수 있다.
12. 즉, JVET-Q2001-vC에서 qp_table_start_minus26으로서 현재 표시된, 크로마 QP 테이블 시작 포인트 신택스 요소는 현재 픽처가 인트라 전용 픽처인지에 의존하는 값만큼 오프셋될 수 있다.
a. 대안적으로, 오프셋은 intra_only_constraint_flag에 의존할 수 있다.
13. 즉, num_points_in_qp_table_minus1로서 현재 표시된, 크로마 QP 테이블에서의 피벗 포인트 수에 관련된 신택스 요소는 0 개의 포인트를 제시할 수 있어야 한다.
a. 일 예에서, 신택스 요소 num_points_in_qp_table_minus1은 크로마 QP 테이블에서의 포인트 수를 지정하는 데 사용되는 num_points_in_qp_table로 대체될 수 있으며 값은 음이 아닌 정수이다.
i. 일 예에서, 피벗 포인트 수를 표시하는 신택스 요소의 값은 0 내지 (63+QpBdOffset)의 범위에 있어야 한다.
b. 대안적으로, 게다가, 크로마 QP 테이블에서의 피벗 포인트 수가 0일 때, 크로마 QP 테이블의 i 번째 엔트리는 루마 QP 테이블의 i 번째 엔트리와 동일하게 설정된다.
c. 대안적으로, 게다가, 크로마 QP 테이블에서의 피벗 포인트 수가 0일 때, 크로마 QP 테이블의 i 번째 엔트리는 (루마 QP 테이블의 i 번째 엔트리 + 오프셋)과 동일하게 설정된다.
i. 일 예에서, 오프셋은 코딩된 방법(예를 들면, JCCR 온 또는 오프)에 의존할 수 있다.
14. 즉, JVET-Q2001-vC에서 qp_table_start_minus26으로서 현재 표시된, 크로마 QP 테이블 시작 포인트 신택스 요소의 파싱은 피벗 포인트 수가 0인지 여부에 달려 있을 수 있다.
a. 일 예에서, 피벗 포인트 수가 0일 때, 신택스 요소의 파싱이 스킵될 수 있다.
15. 크로마 QP 테이블의 도출 프로세스에서, (delta_qp_in_val_minus1[ i ][ j ] + 1)과 delta_qp_diff_val[ i ][ j ] 사이에서 XOR 연산자가 수행되어야 한다.
a. 예가 실시예 3에 나와 있다.
16. QP 클리핑이 크로마 QP 테이블 인덱스에 항상 적용될 수 있다.
a. 일 예에서, 클리핑 범위는 -QpBdOffset 내지 63(경계 포함)이다.
17. QP 클리핑이 크로마 QP 테이블에서의 매핑된 크로마 QP들에 항상 적용될 수 있다.
a. 일 예에서, 클리핑 범위는 -QpBdOffset 내지 63(경계 포함)이다.
18. 크로마 QP 테이블들은 SPS 및 PPS 둘 모두에서 시그널링될 수 있다.
a. 일 예에서, PPS 내의 크로마 QP 테이블은 SPS 내의 대응하는 테이블을 덮어쓸 수 있다.
19. 크로마 QP 테이블은 PH 또는 SH에서 시그널링될 수 있다.
a. 일 예에서, PH 또는 SH 내의 크로마 QP 테이블은 SPS 또는 PPS 내의 대응하는 테이블을 덮어쓸 수 있다.
20. 기본 크로마 QP 테이블들은 ChromaArrayType에 의존할 수 있다.
a. 일 예에서, ChromaArrayType이 3과 동일할 때(즉, 4:4:4 색상 포맷이고 separate_colour_plane_flag가 0과 동일할 때), 항등식 QP(identity QP) 크로마 QP 테이블들(즉, 루마 QP = 크로마 QP)이 기본값으로서 설정될 수 있다.
b. 일 예에서, ChromaArrayType이 2(즉, 4:2:2 색상 포맷)와 동일할 때, 항등식 QP 크로마 QP 테이블(즉, 루마 QP = 크로마 QP)이 기본값으로서 설정될 수 있다.
21. 제8 문제를 해결하기 위한 RRC 및 TSRC의 제어와 관련하여, 예를 들면, 제7 실시예 세트에서와 같이, 이하의 접근법들 중 하나 이상이 개시된다:
a. 일 예에서, 비디오 유닛(CLVS/픽처 그룹/픽처/슬라이스/타일/CTU 행/CTU/CU/PU/TU)에 대한 TSRC를 허용할지 여부는 SPS/PPS/PH/SH/블록/CU/TU 레벨에서 시그널링되는 신택스 요소들(예를 들면, 하나 이상의 플래그)에 의존할 수 있다.
i. 예를 들어, TSRC 인에이블/디스에이블 플래그는 PH 또는 SH 중 어느 하나에서 시그널링될 수 있고, 둘 모두에서 시그널링되지는 않을 수 있다.
1) 추가적으로, TSRC 인에이블/디스에이블 플래그를 PH에서 시그널링할지 SH에서 시그널링할지는 PPS/SPS에서 시그널링되는 신택스 플래그에 의존할 수 있다.
2) 추가적으로, TSRC 인에이블/디스에이블 플래그가 PH에서 시그널링될 때, SH 내의 TSRC 인에이블/디스에이블 플래그는 시그널링되지 않는다.
3) 추가적으로, SH 내의 TSRC 인에이블/디스에이블 플래그가 존재하지 않을 때, 이는 PH 내의 TSRC 인에이블/디스에이블 플래그와 동일한 것으로 추론된다.
ii. 대안적으로, TSRC 인에이블/디스에이블 플래그는 PH 및 SH 둘 모두에서 시그널링될 수 있다,
1) 추가적으로, PH 내의 TSRC 인에이블/디스에이블 플래그들이 TSRC가 PH를 참조하는 모든 슬라이스들에 대해 디스에이블된다는 것을 지정할 때 SH 내의 TSRC 인에이블/디스에이블 플래그들은 시그널링되지 않을 수 있다.
iii. 예를 들어, 블록/CU/TU 레벨 TSRC 인에이블/디스에이블 플래그는, ae(v) 코딩과 같이, 콘텍스트 적응적 산술 엔트로피 코딩된 신택스 요소로 코딩된다.
iv. 예를 들어, SPS/PPS/PH/SH 레벨 TSRC 인에이블/디스에이블 플래그는, n=1과 같이, n 비트(예를 들면, u(1) 코딩)를 사용하는 부호 없는 정수로 코딩된다.
b. 추가적으로, 비디오 유닛에 대한 TSRC 인에이블/디스에이블 플래그의 시그널링은 변환 스킵이 비디오 유닛에 대해 인에이블/사용되는지 여부에 의존할 수 있다.
i. 예를 들어, 변환 스킵이 SPS 레벨에서 디스에이블되는 경우(예를 들면, sps_transform_skip_enabled_flag가 0과 동일한 경우), PPS 레벨에서의 TSRC 인에이블/디스에이블 플래그는 TSRC가 현재 PPS를 참조하는 픽처들에 대해 디스에이블된다는 것을 지정하는 특정 값과 동일해야 한다.
ii. 추가적으로, 변환 스킵이 상위 레벨에서 디스에이블되는 경우(예를 들면, sps_transform_skip_enabled_flag가 0과 동일한 경우), 하위 레벨 및/또는 동일한 계층(예를 들면, SPS/PH/SH/ 블록/CU/TU 레벨)에서의 TSRC 인에이블/디스에이블 플래그들은 시그널링되지 않는다.
iii. 대안적으로, 게다가, 변환 스킵이 상위 레벨(예를 들면, SPS)에서 인에이블되지만 비디오 유닛에 대해 사용되지 않는 경우(예를 들면, TU 레벨 transform_skip_flag가 0과 동일한 경우), 현재 비디오 유닛(예를 들면, TU)의 TSRC 인에이블/디스에이블 플래그는 시그널링되지 않는다.
iv. 추가적으로, TSRC 인에이블/디스에이블 플래그가 비디오 유닛 레벨에서 시그널링되지 않을 때, TSRC 인에이블/디스에이블 플래그의 값은 TSRC가 비디오 유닛에 대해 디스에이블된다는 것을 지정하는 특정 값인 것으로 추론된다.
c. 대안적으로, 게다가, 하위 레벨에서의 TSRC 인에이블/디스에이블 플래그의 시그널링은 상위 레벨에서의 TSRC 인에이블/디스에이블 플래그에 의존할 수 있다.
i. 예를 들어, 픽처/슬라이스 레벨에서의 TSRC 인에이블/디스에이블 플래그의 시그널링은 TSRC가 SPS/PPS 레벨에서 인에이블되는지 여부에 의존할 수 있다.
ii. 추가적으로, 블록/CU/TU 레벨에서의 TSRC 인에이블/디스에이블 플래그의 시그널링은 TSRC가 SPS/PPS/픽처/슬라이스 레벨에서 인에이블되는지 여부에 의존할 수 있다.
1) 예를 들어, TSRC가 상위 레벨(예를 들면, SPS/PPS/픽처/슬라이스 레벨)에서 디스에이블될 때, 블록/CU/TU 레벨에서 TSRC 인에이블/디스에이블 플래그가 시그널링되지 않는다.
2) 추가적으로, TSRC 인에이블/디스에이블 플래그가 존재하지 않을 때, 이는 특정 값(예컨대, TSRC가 현재 비디오 유닛에 대해 디스에이블된다는 것을 지정하는 값)으로 추론된다.
iii. 추가적으로, PPS 레벨에서의 TSRC 인에이블/디스에이블 플래그의 값은 TSRC가 SPS 레벨에서 인에이블되는지 여부에 의존할 수 있다.
1) 예를 들어, SPS 레벨 TSRC 인에이블/디스에이블 플래그가 TSRC가 CLVS에 대해 디스에이블된다는 것을 지정할 때, PPS 레벨 TSRC 인에이블/디스에이블 플래그의 값은 TSRC가 현재 PPS를 참조하는 픽처들에 대해 디스에이블된다는 것을 지정하는 특정 값과 동일해야 한다.
ALF 및 CC-ALF에 관하여
22. 루마 ALF가 현재 CTU에 대해 디스에이블될 때 현재 CTU에 대한 크로마 ALF/CC-ALF의 사용의 표시가 시그널링되지 않는 것이 제안된다.
a. 대안적으로, 게다가, 루마 ALF가 CTU에 대해 디스에이블될 때 사용이 거짓인 것으로 추론된다. 환언하면, CTU에서 루마 ALF가 디스에이블될 때 크로마 ALF/CC-ALF가 디스에이블된다.
서브비트스트림 추출에 관하여
23. 어레이 NumSubLayersInLayerInOLS[ ][ ]에서 전달되는 정보가 VCL NAL 유닛들을 제거하기 위해서만 VVC에서 서브비트스트림 추출 프로세스에서 사용될 수 있는 것이 제안된다.
a. 일 예에서, VVC의 C.6 절에서 지정되는 서브비트스트림 추출 프로세스에서의 이하의 단계는:
- 이하의 조건들 모두가 참인 모든 NAL 유닛들을 outBitstream으로부터 제거한다:
- nal_unit_type이 IDR_W_RADL, IDR_N_LP, 또는 CRA_NUT와 동일하지 않다.
- nuh_layer_id가 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있는 j의 값에 대해 LayerIdInOls[ targetOlsIdx ][ j ]와 동일하다.
- TemporalId가 NumSubLayersInLayerInOLS[ targetOlsIdx ][ j ]보다 크거나 같다.
다음으로 변경된다:
- 이하의 조건들 모두가 참인 모든 VCL NAL 유닛들을 outBitstream으로부터 제거한다:
- nal_unit_type이 IDR_W_RADL, IDR_N_LP, 또는 CRA_NUT와 동일하지 않다.
- nuh_layer_id가 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있는 j의 값에 대해 LayerIdInOls[ targetOlsIdx ][ j ]와 동일하다.
- TemporalId가 NumSubLayersInLayerInOLS[ targetOlsIdx ][ j ]보다 크거나 같다.
APS 수에 관하여
이하의 논의에서,
"최대 허용 필터 수"는 "시퀀스/픽처/슬라이스에 대해 하나 또는 다수의 APS들에 의해 시그널링될 수 있는 최대 허용 필터 수"를 지칭할 수 있다.
"최대 허용 APS NAL 유닛 수"는 "시퀀스/픽처/슬라이스에 대해 시그널링될 수 있는 최대 허용 APS NAL 유닛 수"를 지칭할 수 있다.
"최대 허용 필터 계수 수"는 "시퀀스/픽처/슬라이스에 대해 하나 또는 다수의 APS들에 의해 시그널링될 수 있는 최대 허용 필터 계수 수"를 지칭할 수 있다.
24. 열두 번째 문제를 해결하기 위한 APS NAL 유닛 수에 관하여:
a. 아래의 APS NAL 유닛 종류들은 ALF APS, LMCS APS, 및 SCALING APS 중 하나 이상일 수 있다.
b. 일 예에서, 상이한 색상 성분들에 관련된 정보를 포함하는 APS가 별도로 시그널링될 수 있다.
i. 예를 들어, APS NAL 유닛은 루마 관련 신택스 요소들(예를 들면, 루마 필터들)만을 포함할 수 있다.
ii. 추가적으로, APS NAL 유닛은 크로마(예컨대, Cb 및/또는 Cr) 관련 신택스 요소들(예를 들면, 크로마 필터들)만을 포함할 수 있다.
1) 예를 들어, APS NAL 유닛은 크로마 ALF 신택스 요소들만을 포함할 수 있다.
2) 예를 들어, APS NAL 유닛은 CCALF 신택스 요소들만을 포함할 수 있다.
3) 대안적으로, APS NAL 유닛은 CCALF Cb 신택스 요소들만을 포함할 수 있다.
4) 대안적으로, APS NAL 유닛은 CCALF Cr 신택스 요소들만을 포함할 수 있다.
iii. 예를 들어, ALF(및/또는 LMCS 및/또는 스케일링 리스트)의 루마 및 크로마 필터들은 상이한 APS 유형들(예를 들면, aps_params_type)을 가질 수 있다.
iv. 예를 들어, 어느 색상 성분(들)이 APS에 포함되는지를 나타내기 위해 하나 또는 다수의 SE들이 APS에서 시그널링된다.
c. 일 예에서, 시퀀스/픽처/슬라이스에 대해 시그널링될 수 있는 최대 허용 APS NAL 유닛 수는 미리 정의된 값(예컨대, 미리 정의된 메모리 크기 또는 미리 정의된 필터 수)에 의존할 수 있다.
d. 일 예에서, 시퀀스/픽처/슬라이스에 대해 APS들에서 시그널링되는 필터 수가 APS들에서 시그널링되는 최대 허용 필터 수보다 크지 않아야 하는 것이 요구된다.
e. 일 예에서, 시퀀스/픽처/슬라이스에 대한 APS들에서 시그널링되는 필터 계수 수가 APS들에서 시그널링되는 최대 허용 필터 계수 수보다 크지 않아야 하는 것이 요구된다.
i. APS들에서 시그널링되는 최대 허용 필터 계수 수는 미리 정의된 수일 수 있다.
ii. APS들에서 시그널링되는 최대 허용 필터 계수 수는 상이한 APS 유형들에 대해 상이할 수 있다.
iii. APS들에서 시그널링되는 최대 허용 필터 계수 수는, 예컨대, VPS/SPS/PPS/PH/SH/시퀀스 헤더에서, 인코더로부터 디코더로 시그널링될 수 있다.
f. 일 예에서, 시퀀스/픽처/슬라이스에 대해 APS들에서 시그널링되는 필터 수가 APS들에서 시그널링되는 최대 허용 필터 수보다 크지 않아야 하는 것이 요구된다.
g. 일 예에서, 상이한 컬러 성분들에 대해 APS들에서 시그널링되는 최대 허용 필터 수는 상이할 수 있다.
i. 일 예에서, APS들에서 시그널링되는 최대 허용 루마 필터 수와 APS들에서 시그널링되는 최대 크로마 필터 수는 상이할 수 있다.
ii. 예를 들어, 특정 APS 유형(예를 들면, ALF/LMCS/SCALING)의 APS들에서 시그널링되는 최대 허용 루마 필터 수는 제1 특정 값과 동일하다.
iii. 추가적으로, 특정 APS 유형(예를 들면, ALF/LMCS/SCALING)의 APS들에서 시그널링되는 최대 허용 크로마(예컨대, Cb 및/또는 Cr) 필터 수는 제2 특정 값과 동일하다.
iv. 예를 들어, 모든 APS 유형들(예를 들면, ALF/LMCS/SCALING)의 APS들에서 시그널링되는 최대 허용 루마 필터 수는 제1 특정 값과 동일하다.
v. 추가적으로, 모든 APS 유형들(예를 들면, ALF/LMCS/SCALING)의 APS들에서 시그널링되는 최대 허용 크로마(예컨대, Cb 및/또는 Cr) 필터 수는 제2 특정 값과 동일하다.
h. 일 예에서, 최대 허용 ALF 루마 필터 수, 최대 허용 ALF 크로마 필터 수 및 최대 허용 CCALF 필터 수는 상이할 수 있다.
i. 예를 들어, 최대 허용 ALF 루마 필터 수는 X1(예를 들면, X1 = 25x8 = 200)과 동일하다.
ii. 예를 들어, ALF APS 유닛의 경우, 최대 허용 ALF 크로마 필터 수는 X2(예를 들면, X2 = 8x8 = 64)와 동일하다.
iii. 예를 들어, ALF APS 유닛의 경우, 최대 허용 CCALF 필터 수는 X3(예를 들면, X3 = 4x8x2 = 64)과 동일하다.
1) 대안적으로, 최대 허용 CCALF Cb 필터 수는 Y1(예를 들면, Y1 = 4x8 = 32)이다.
2) 추가적으로, 최대 허용 CCALF Cr 필터 수는 Y2(예를 들면, Y2 = 4x8 = 32)이다.
iv. 일 예에서, X1, X2, X3, Y1, Y2는 미리 정의된 값들이다.
i. 일 예에서, APS NAL 유닛 내의 최대 허용 필터 수들 각각은 K_i와 동일하며, 여기서 K는 특정 값을 나타내고, i는 필터 유형(예를 들면, 루마 필터, 크로마 필터, ccalf 필터 등)을 나타낸다.
i. 예를 들어, ALF 루마 필터들에 대한 K_i는 25x8 = 200과 동일하다.
ii. 예를 들어, ALF 크로마 필터들에 대한 K_i는 8x8 = 64와 동일하다.
iii. 예를 들어, CCALF 필터들에 대한 K_i는 4x8x2 = 64와 동일하다.
1) 대안적으로, CCALF Cb 필터들에 대한 K_i는 4x8 = 32와 동일하다.
2) 대안적으로, CCALF Cr 필터들에 대한 K_i는 4x8 = 32와 동일하다.
j. 일 예에서, 예컨대, VPS/SPS/PPS/PH/SH/시퀀스 헤더에서, 최대 허용 수들이 인코더로부터 디코더로 시그널링될 수 있다.
i. 예를 들어, 본 청구범위에서의 "최대 허용 수"는 최대 허용 APS NAL 유닛 수, 또는 최대 허용 필터 수, 또는 최대 허용 필터 계수 수를 지칭할 수 있다.
ii. 예를 들어, 특정 유형의 APS NAL 유닛(예를 들면, aps_params_type이 ALF APS와 동일함)에 대한 최대 허용 수들이 시그널링될 수 있다.
1) 예를 들어, 최대 허용 수들은 SPS 레벨에서 시그널링될 수 있다.
2) 예를 들어, 최대 허용 수들은 PH/SH 레벨에서 시그널링될 수 있다.
iii. 예를 들어, 최대 허용 수들의 시그널링은 코딩 툴(ALF/CCALF/LMCS/스케일링 리스트)이 인에이블되는지 여부에 의존할 수 있다.
1) 일 예에서, ALF/CCALF가 디스에이블될 때, ALF/CCALF APS에 대한 최대 허용 수들은 시그널링되지 않을 수 있다.
a. 추가적으로, 수는 존재하지 않을 때 특정 값(예를 들면, 0)과 동일한 것으로 추론된다.
2) 일 예에서, CCALF가 디스에이블될 때, APS ID(예를 들면, adaptation_parameter_set_id)가 CCALF APS ID(예를 들면, ph_cc_alf_cb_aps_id, ph_cc_alf_cr_aps_id, slice_cc_alf_cb_aps_id, slice_cc_alf_cr_aps_id)와 동일한 ALF APS에 대한 최대 허용 수는 시그널링되지 않을 수 있다.
a. 추가적으로, 수는 존재하지 않을 때 특정 값(예를 들면, 0)과 동일한 것으로 추론된다.
3) 보다 작은 비디오 유닛(예를 들면, 픽처, 슬라이스)에 대한 최대 허용 수를 어떻게 시그널링할지는 상위 레벨(예를 들면, SPS)에 대한 최대 허용 수에 의존할 수 있다.
a. 예를 들어, 최대 허용 ALF 루마 APS 수는 최대 허용 ALF APS 수에 의존한다.
iv. 예를 들어, 최대 허용 수들(N으로 표기됨)로부터 도출되는 변수(예를 들면, N - M 또는 M - N, 여기서 M은 N보다 작은 특정 값임)가 시그널링될 수 있다.
k. 일 예에서, 최대 허용 수들은 크로마 포맷에 의존한다.
i. 예를 들어, 루마/크로마에 대한 최대 허용 수는 ChromaArrayType이 0(예를 들면, 4:0:0 및 별도의 색 평면 코딩을 갖는 4:0:0)과 동일한지 여부에 의존할 수 있다.
ii. 예를 들어, 최대 허용 ALF/SCALING/LMCS APS 수는 ChromaArrayType이 0과 동일한지 여부에 의존한다.
l. 일 예에서, 위의 최대 허용 수들은 코딩 툴이 인에이블되는지 여부에 의존할 수 있다.
i. 예를 들어, 위의 최대 허용 수들은 ALF가 인에이블되는지 여부 및/또는 CCALF가 SPS/PPS/PH/SH 레벨에서 인에이블되는지 여부에 의존한다.
ii. 예를 들어, 최대 허용 ALF APS 수는 ALF가 인에이블되는지 여부 및/또는 CCALF가 SPS/PPS/PH/SH 레벨에서 인에이블되는지 여부에 의존한다.
iii. 예를 들어, 최대 허용 LMCS APS 수는 LMCS가 인에이블되는지 여부 및/또는 CRS(chroma residual scaling)가 SPS/PPS/PH/SH 레벨에서 인에이블되는지 여부에 의존한다.
iv. 예를 들어, 최대 허용 SCALING APS 수는 명시적 스케일링 리스트가 SPS/PPS/PH/SH 레벨에서 인에이블되는지 여부에 의존한다.
m. 일 예에서, APS ID를 어떻게 코딩할지는 제한된 수에 의존할 수 있다.
i. 일 예에서, APS ID는 0 내지 K(예를 들면, 127, 또는 255)(경계 포함)의 범위에서 ue(v) 코딩될 수 있다.
ii. 대안적으로, APS ID는 u(X) 코딩될 수 있으며, 예컨대, X=7 또는 8이다.
1) X는 APS ID가 코딩되기 전에 시그널링될 수 있다.
2) X는 APS ID가 코딩되기 전에 도출될 수 있다.
3) X는 최대 허용 수에 기초하여 도출될 수 있다.
iii. 대안적으로, 최대 APS ID 수가 시그널링된다.
1) 예를 들어, 최대 APS ID 수는 u(X) 코딩될 수 있으며, 예컨대, X=7 또는 8이다.
2) 추가적으로, APS ID는 u(v) 코딩될 수 있다.
iv. 예를 들어, 위에서 언급된 APS ID는 다음 중 하나 이상일 수 있다:
1) APS 신택스 구조에서의 adaptation_parameter_set_id.
2) PH 신택스 구조에서의 ph_alf_aps_id_luma[ i ], ph_alf_aps_id_chroma, ph_cc_alf_cb_aps_id, ph_cc_alf_cr_aps_id.
3) SH 신택스 구조에서의 slice_alf_aps_id_luma[ i ], slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cc_alf_cr_aps_id.
4) PH 신택스 구조에서의 ph_lmcs_aps_id.
5) PH 신택스 구조에서의 ph_scaling_list_aps_id.
n. 일 예에서, 위의 제약들은 비트스트림 적합성, 비트스트림 제약들, 또는 신택스 테이블에서 명시적으로 시그널링하는 것에 의해 표현될 수 있다.
o. 일 예에서, 위의 제한들/한정들/제약들은 프로필/레벨/일반 제약 플래그들 등에 의존할 수 있다.
25. QP 테이블에서의 포인트 수를 지정하는 신택스 요소의 시그널링 및/또는 범위 및/또는 추론이 다른 신택스 요소들에 의존하는 것이 제안된다.
a. num_points_in_qp_table_minus1[ i ]의 최댓값을 (최대 QP 값 - i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP)로 설정하는 것이 제안된다.
i. 일 예에서, 최댓값은 (63 - (qp_table_start_minus26[ i ] + 26))으로 설정된다.
ii. 일 예에서, 최댓값은 (64 - (qp_table_start_minus26[ i ] + 26))으로 설정된다.
26. 아핀이 인에이블되고 SbTMVP가 디스에이블될 때 최대 서브블록 병합 후보 수가 0(MaxNumSubblockMergeCand)이도록 허용하지 않는 것이 제안된다.
a. 일 예에서, 아핀이 인에이블되고 SbTMVP가 디스에이블될 때 최대 서브블록 병합 후보 수는 0보다 크도록 제한된다.
b. 일 예에서, sps_five_minus_max_num_subblock_merge_cand의 범위는 SPS SbTMVP 인에이블 플래그(예를 들면, sps_sbtmvp_enabled_flag)의 값에 관계없이 [0, 4]로부터의 것이다.
c. 적합성 비트스트림은, 아핀이 인에이블될 때, MaxNumSubblockMergeCand의 값이 1 내지 5(경계 포함)의 범위에 있어야 한다는 것을 충족시켜야 한다.
i. 대안적으로, 게다가, 아핀이 디스에이블될 때 MaxNumSubblockMergeCand의 값은 0 내지 1(경계 포함)의 범위에 있어야 한다.
d. 대안적으로, merge_subblock_flag를 시그널링할지 여부는, 최대 서브블록 병합 후보 수를 검사하는 대신에, 아핀이 인에이블되는지 여부에 의존한다.
27. 아핀 병합 모드가 허용되는지 여부를 나타내기 위해 제1 신택스 요소를 추가하는 것이 제안된다.
a. 대안적으로, 게다가, 제1 신택스 요소는 조건부로, 예를 들면, SPS 아핀 플래그가 인에이블되는 것에 따라 시그널링될 수 있다.
b. 대안적으로, 게다가, 제1 신택스 요소가 아핀 병합 모드가 인에이블된다는 것을 나타낼 때 최대 서브블록 병합 후보 수의 표시가 시그널링될 수 있다.
28. 문제 13을 해결하기 위해, 서브픽처들 레이아웃이 다음과 같이 시그널링된다:
a. SPS를 참조하는 모든 서브픽처들이, 제각기, 동일한 폭 및 높이를 갖는지 여부를 지정하기 위해, 예를 들면, sps_subpic_same_res_flag라는 플래그가 추가된다.
b. sps_subpic_same_res_flag가 1과 동일할 때, 모든 서브픽처들에 대한 공통 폭 및 높이는, 제각기, 예를 들면, CTU 단위의 2 개의 새로운 신택스 요소 sps_uniform_subpic_width_minus1 및 sps_uniform_subpic_height_minus1에 의해 시그널링된다.
i. 일 예에서, 게다가, numSubpicCols로 표시되는 서브픽처 열 수는 ( sps_pic_width_max_in_luma_samples / ( ( sps_uniform_subpic_width_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출되고, numSubpicRows로 표시되는 서브픽처 행 수는 ( sps_pic_height_max_in_luma_samples / ( ( sps_uniform_subpic_height_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출되며, sumSubpics로 표시되는 서브픽처 수는 numSubpicCols * numSubpicRows와 동일한 것으로 도출된다.
ii. 일 예에서, 게다가, sps_num_subpics_minus1은 스킵되고, 값은 numSubpics - 1과 동일한 것으로 추론된다.
iii. 일 예에서, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]의 값은, 제각기, ( sps_uniform_subpic_width_minus1 + 1) * ( i % numSubpicCols ), ( sps_uniform_subpic_height_minus1 + 1) * ( i / numSubpicCols ), sps_uniform_subpic_width_minus1, 및 sps_uniform_subpic_height_minus1과 동일한 것으로 추론된다.
iv. 일 예에서, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_independent_subpics_flag가 0과 동일할 때, sps_subpic_treated_as_pic_flag[ i ] 및 sps_loop_filter_across_subpic_enabled_flag[ i ]는 시그널링된다.
c. sps_subpic_same_res_flag가 0과 동일할 때, JVET-R2001-vA/v10에서의 현재 서브픽처들 레이아웃 시그널링이 적용된다.
d. 일 예에서, sps_pic_width_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_width_minus1은 스킵되고 0과 동일한 것으로 추론된다.
e. 일 예에서, sps_pic_height_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_height_minus1은 스킵되고 0과 동일한 것으로 추론된다.
f. 일 예에서, sps_uniform_subpic_width_minus1 및 sps_uniform_subpic_height_minus1이 ue(v) 코딩되고, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]가 또한 ue(v) 코딩된다.
g. 일 예에서, sps_uniform_subpic_width_minus1 및 sps_uniform_subpic_height_minus1은, 제각기, JVET-R2001-vA/v10에서의 sps_subpic_width_minus1[ i ] 및 sps_subpic_height_minus1[ i ]와 동일한 길이로, u(v) 코딩된다.
h. 일 예에서, SPS 신택스는 다음과 같이 변경되며, 굵은 기울임꼴 밑줄친 텍스트는 새로 추가된 텍스트를 나타내고, 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])은 이중 대괄호들 사이에 삭제된 텍스트를 나타낸다:
Figure pct00004
Figure pct00005
i. 일 예에서, SPS 신택스는 다음과 같이 변경된다:
Figure pct00006
Figure pct00007
29. JVET-R2001-vA/v10에서의 최신 VVC 사양 텍스트에 대한 이하의 변경 사항들이 제안된다:
SPS 시맨틱스:
...
sps_subpic_treated_as_pic_flag[ i ]가 1과 동일한 것은 CLVS에서의 각각의 코딩된 픽처의 i 번째 서브픽처가 인루프 필터링 동작들을 제외한 디코딩 프로세스에서 픽처로서 취급된다는 것을 지정한다. sps_subpic_treated_as_pic_flag[ i ]가 0과 동일한 것은 CLVS에서의 각각의 코딩된 픽처의 i 번째 서브픽처가 인루프 필터링 동작들을 제외한 디코딩 프로세스에서 픽처로서 취급되지 않는다는 것을 지정한다. 존재하지 않을 때, sps_subpic_treated_as_pic_flag[ i ]의 값은 1과 동일한 것으로 추론된다.
[[sps_num_subpics_minus1이 0보다 크고 sps_subpic_treated_as_pic_flag[ i ]가 1과 동일할 때, SPS를 참조하는 현재 계층의 각각의 CLVS에 대해, targetAuSet를 디코딩 순서에서 CLVS의 첫 번째 픽처를 포함하는 AU부터 시작하여 디코딩 순서에서 CLVS의 마지막 픽처를 포함하는 AU까지(경계 포함)의 모든 AU들이라고 하면, 현재 계층 및 현재 계층을 참조 계층으로서 갖는 모든 계층들로 이루어진 targetLayerSet에 대해 이하의 조건들 모두가 참인 것이 비트스트림 적합성의 요구 사항이다:]]
[[- targetAuSet 내의 각각의 AU에 대해, targetLayerSet 내의 계층들의 모든 픽처들은 동일한 pps_pic_width_in_luma_samples 값 및 동일한 pps_pic_height_in_luma_samples 값을 가져야 한다.]]
[[- targetLayerSet 내의 계층들에 의해 참조되는 모든 SPS들은 동일한 sps_num_subpics_minus1 값을 가져야 하고, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 j 값에 대해, 제각기, 동일한 sps_subpic_ctu_top_left_x[ j ] 값, 동일한 sps_subpic_ctu_top_left_y[ j ] 값, 동일한 sps_subpic_width_minus1[ j ] 값, 동일한 sps_subpic_height_minus1[ j ] 값, 및 동일한 sps_subpic_treated_as_pic_flag[ j ] 값을 가져야 한다.]]
[[- targetAuSet 내의 각각의 AU에 대해, targetLayerSet 내의 계층들의 모든 픽처들은 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 j 값에 대해 동일한 SubpicIdVal[ j ] 값을 가져야 한다.]]
...
참조 픽처 리스트들 구성을 위한 디코딩 프로세스
...
- [[vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 0과 동일하고 sps_num_subpics_minus1이 0보다 클 때, 이하의 2 개의 조건 중 어느 하나(그러나 둘 모두는 아님)가 참이어야 한다:]] sps _ num _ subpics _ minus1이 0보다 크고 서브픽처 인덱스 subPicIdx를 갖는 현재 서브픽처가 1과 동일한 sps_subpic_treated_as_pic_flag[ subPicIdx ]를 가질 때, 이하의 2 개의 조건 중 어느 하나(그러나 둘 모두는 아님)가 참이어야 한다:
o [[RefPicList[ 0 ] 또는 RefPicList[ 1 ] 내의 각각의 활성 엔트리에 의해 참조되는 픽처는 현재 픽처와 동일한 서브픽처 레이아웃을 갖는다(즉, 해당 픽처 및 현재 픽처에 의해 참조되는 SPS들은 동일한 sps_num_subpics_minus1 값을 가지며, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 j 값에 대해, 제각기, 동일한 sps_subpic_ctu_top_left_x[ j ] 값, 동일한 sps_subpic_ctu_top_left_y[ j ] 값, 동일한 sps_subpic_width_minus1[ j ] 값, 및 동일한 sps_subpic_height_minus1[ j ] 값을 갖는다).]]
o RefPicList[ 0 ] 또는 RefPicList[ 1 ] 내의 각각의 활성 엔트리에 의해 참조되는 픽처 및 현재 픽처는 다음과 같은 것들 각각에 대해 동일한 값을 갖는다:
Figure pct00008
pps_pic_width_in_luma_samples
Figure pct00009
pps_pic_height_in_luma_samples
Figure pct00010
sps_num_subpics_minus1
Figure pct00011
0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], sps_subpic_height_minus1[ i ], sps_subpic_treated_as_pic_flag[ i ]
o RefPicList[ 0 ] 또는 RefPicList[ 1 ] 내의 각각의 활성 엔트리에 의해 참조되는 픽처는 sps_num_subpics_minus1 값이 0과 동일한 ILRP이다.
30. 이전 항목에 대한 이하의 변경 사항들이 제안된다:
PPS 시맨틱스:
...
pps_subpic_id[ i ]는 i 번째 서브픽처의 서브픽처 ID를 지정한다. pps_subpic_id[ i ] 신택스 요소의 길이는 pps_subpic_id_len_minus1 + 1 비트이다.
0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대한 변수 SubpicIdVal[ i ]는 다음과 같이 도출된다:
Figure pct00012
다음 제약들 둘 모두가 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 i 및 j의 임의의 2개의 상이한 값에 대해, SubpicIdVal[ i ]는 SubpicIdVal[ j ]와 동일하지 않아야 한다.
- [[0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 특정 값 layerId와 동일한 nuh_layer_id를 갖는 현재 픽처의 SubpicIdVal[ i ] 값이 layerId와 동일한 nuh_layer_id를 갖는 참조 픽처의 SubpicIdVal[ i ] 값과 동일하지 않을 때, 현재 픽처의 i 번째 서브픽처 내의 코딩된 슬라이스들의 RPL들의 활성 엔트리들은 해당 참조 픽처를 포함하지 않아야 한다.]]
...
참조 픽처 리스트들 구성을 위한 디코딩 프로세스
...
- sps_num_subpics_minus1이 0보다 크고 서브픽처 인덱스 subPicIdx를 갖는 현재 서브픽처가 1과 동일한 sps_subpic_treated_as_pic_flag[ subPicIdx ]를 가질 때, 이하의 2 개의 조건 중 어느 하나(그러나 둘 모두는 아님)가 참이어야 한다:
o RefPicList[ 0 ] 또는 RefPicList[ 1 ] 내의 각각의 활성 엔트리에 의해 참조되는 픽처 및 현재 픽처는 다음과 같은 것들 각각에 대해 동일한 값을 갖는다:
Figure pct00013
pps_pic_width_in_luma_samples
Figure pct00014
pps_pic_height_in_luma_samples
Figure pct00015
sps_num_subpics_minus1
Figure pct00016
0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], sps_subpic_height_minus1[ i ], sps_subpic_treated_as_pic_flag[ i ], SubpicIdVal[ i ]
o RefPicList[ 0 ] 또는 RefPicList[ 1 ] 내의 각각의 활성 엔트리에 의해 참조되는 픽처는 sps_num_subpics_minus1 값이 0과 동일한 ILRP이다.
31. pps_pic_width_in_luma_samples가 CtbSizeY보다 작거나 같을 때, pps_tile_column_width_minus1[ i ]는 PicWidthInCtbsY - 1과 동일해야 한다.
32. pps_pic_height_in_luma_samples가 CtbSizeY보다 작거나 같을 때, pps_tile_row_height_minus1[ i ]는 PicHeight - 1과 동일해야 한다.
6. 실시예들
6.1. 실시예 1: 슬라이스 유형에 따른 크로마 QP 테이블들
굵은 기울임꼴 밑줄친 텍스트로 표시된 변경 사항들은 JVET-Q2001-vC를 기반으로 한다. 그리고 삭제된 텍스트들은 이중 대괄호들 사이에 삭제된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])로 표시된다.
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00017
Figure pct00018
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
......
[[same_ qp _table_for_ chroma가 1과 동일한 것은 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. same_qp_table_for_chroma가 0과 동일한 것은 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma가 비트스트림에 존재하지 않을 때, same_qp_table_for_chroma의 값은 1과 동일한 것으로 추론된다.]]
[[ qp _table_start_ minus26[ i ] + 26은 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. qp_table_start_minus26[ i ]의 값은 -26 - QpBdOffset 내지 36(경계 포함)의 범위에 있어야 한다. qp_table_start_minus26[ i ]가 비트스트림에 존재하지 않을 때, qp_table_start_minus26[ i ]의 값은 0과 동일한 것으로 추론된다.]]
[[num_points_in_qp_table_minus1[ i ] + 1은 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table_minus1[ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. num_points_in_qp_table_minus1[ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1[ 0 ]의 값은 0과 동일한 것으로 추론된다.]]
[[delta_qp_in_val_minus1[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.]]
[[delta_ qp _ diff _val[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. ]]
[[i = 0..numQpTables - 1에 대해 i 번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]는 다음과 같이 도출된다:]]
sps_non_intra_present_flag가 0과 동일한 것은 모든 슬라이스들이 시퀀스에서의 인트라 슬라이스라는 것을 지정한다. sps_non_intra_present_flag가 1과 동일한 것은 시퀀스에 존재하는 비인트라 슬라이스들이 존재할 수 있다는 것을 지정한다.
intra_same_qp_table_for_chroma가 1과 동일한 것은 인트라 슬라이스들에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. intra_same_qp_table_for_chroma가 0과 동일한 것은 인트라 슬라이스들에 대해 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma가 비트스트림에 존재하지 않을 때, intra_same_qp_table_for_chroma의 값은 1과 동일한 것으로 추론된다.
intra_qp_table_start_minus26[ i ] + 26은 인트라 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. intra_qp_table_start_minus26[ i ]의 값은 -26 - QpBdOffset 내지 36(경계 포함)의 범위에 있어야 한다. intra_qp_table_start_minus26[ i ]가 비트스트림에 존재하지 않을 때, intra_qp_table_start_minus26[ i ]의 값은 0과 동일한 것으로 추론된다.
intra _ num _points_in_ qp _table_ minus1 [ i ] + 1은 인트라 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. intra_num_points_in_qp_table_minus1[ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. intra_num_points_in_qp_table_minus1[ 0 ]이 비트스트림에 존재하지 않을 때, intra_num_points_in_qp_table_minus1[ 0 ]의 값은 0과 동일한 것으로 추론된다.
intra_delta_qp_in_val_minus1[ i ][ j ]는 인트라 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. intra_delta_qp_in_val_minus1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, intra_delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
intra_delta_qp_diff_val[ i ][ j ]는 인트라 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
inter_same_qp_table_for_chroma가 1과 동일한 것은 B 또는 P 슬라이스들에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. inter_same_qp_table_for_chroma가 0과 동일한 것은 B 또는 P 슬라이스들에 대해 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma가 비트스트림에 존재하지 않을 때, inter_same_qp_table_for_chroma의 값은 1과 동일한 것으로 추론된다.
inter_qp_table_start_minus26[ i ] + 26은 B 또는 P 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. intra_qp_table_start_minus26[ i ]의 값은 -26 - QpBdOffset 내지 36(경계 포함)의 범위에 있어야 한다. inter_qp_table_start_minus26[ i ]가 비트스트림에 존재하지 않을 때, inter_qp_table_start_minus26[ i ]의 값은 0과 동일한 것으로 추론된다.
inter_num_points_in_qp_table_minus1[ i ] + 1은 B 또는 P 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. inter_num_points_in_qp_table_minus1[ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. inter_num_points_in_qp_table_minus1[ 0 ]이 비트스트림에 존재하지 않을 때, inter_num_points_in_qp_table_minus1[ 0 ]의 값은 0과 동일한 것으로 추론된다.
inter_delta_qp_in_val_minus1[ i ][ j ]는 B 또는 P 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. inter_delta_qp_in_val_minus1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, inter_delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
inter_delta_qp_diff_val[ i ][ j ]는 B 또는 P 슬라이스들에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
i = 0..numQpTablesIntra - 1에 대한 i 번째 크로마 QP 매핑 테이블 IntraChromaQpTable[ i ] 및 i = 0..numQpTablesInter - 1에 대한 i 번째 크로마 QP 매핑 테이블 InterChromaQpTable[ i ]는 다음과 같이 도출된다:
intra_same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 IntraChromaQpTable[ 1 ][ k ] 및 IntraChromaQpTable[ 2 ][ k ]는 IntraChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
inter_same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 InterChromaQpTable[ 1 ][ k ] 및 InterChromaQpTable[ 2 ][ k ]는 InterChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
ChromaQpTable[ i ]가 i = 0..numQpTablesIntra - 1에 대해 I-슬라이스들에 대한 IntraChromaQpTable[ i ]를 나타내고 i = 0..numQpTablesInter - 1에 대해 B-슬라이스들 또는 P-슬라이스들에 대한 InterChromaQpTable[ i ]를 나타내는 것으로 하면, 다음이 적용된다
Figure pct00019
same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 ChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
0 내지 numQpTables - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1[ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
......
8.7.1 양자화 파라미터들에 대한 도출 프로세스
......
현재 슬라이스가 I-슬라이스일 때, i = 0..2에 대해 ChromaQpTable[ i ]는 IntraChromaQpTable[ i ]와 동일하게 설정된다. 현재 슬라이스가 B 또는 P 슬라이스일 때, i = 0..2에 대해 ChromaQpTable[ i ]는 InterChromaQpTable[ i ]와 동일하게 설정된다.
ChromaArrayType이 0과 동일하지 않고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 동일할 때, 다음이 적용된다.
- treeType이 DUAL_TREE_CHROMA와 동일할 때, 변수 QpY는 루마 위치 ( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
- 변수들 qPCb, qPCr 및 qPCbCr은 다음과 같이 도출된다:
Figure pct00020
......
6.2. 실시예 2: 피벗 포인트 수 및 매핑된 크로마 QP의 클리핑
굵은 기울임꼴 로 표시된 변경 사항들은 JVET-Q2001-vC를 기반으로 한다.
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00021
num_points_in_qp_table[[_minus1]][ i ] [[+ 1]]은 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table[[_minus1]][ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. [[num_points_in_qp_table_minus1[ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1[ 0 ]의 값은 0과 동일한 것으로 추론된다.]]
delta_qp_in_val_minus1[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val[ i ][ j ]는 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
i = 0..numQpTables - 1에 대해 i 번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]는 다음과 같이 도출된다:
same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 ChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
Figure pct00022
Figure pct00023
0 내지 numQpTables - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1[ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal[ i ][ j ][[ 및 qpOutVal[ i ][ j ]]]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
6.3. 실시예 3
굵은 기울임꼴 밑줄친 텍스트로 표시된 변경 사항들은 JVET-Q2001-vE를 기반으로 한다.
i = 0..numQpTables - 1에 대해 i 번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]는 다음과 같이 도출된다:
Figure pct00024
same_qp_table_for_chroma가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 ChromaQpTable[ 0 ][ k ]와 동일하게 설정된다.
0 내지 numQpTables - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1[ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
6.4. 실시예 4
새로 추가된 텍스트는 굵은 기울임꼴 밑줄친 텍스트로 표시되고, 삭제된 텍스트들은 이중 대괄호들 사이에 삭제된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])로 표시된다. 이는 JVET-Q2001-vE를 기반으로 한다.
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00025
Figure pct00026
Figure pct00027
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱스
...
sps_one_set_of_chroma_qp_tables_flag가 0과 동일한 것은 2 개의 크로마 QP 매핑 테이블 세트가 있다는 것을 지정한다. sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 것은 단지 하나의 크로마 QP 매핑 테이블 세트가 있다는 것을 지정한다.
same_qp_table_for_chroma _set0 이 1과 동일한 것은 제1 크로마 QP 매핑 테이블 세트에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. same_qp_table_for_chroma _set0 이 0과 동일한 것은 제1 크로마 QP 매핑 테이블 세트에 대해 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma _set0 이 비트스트림에 존재하지 않을 때, same_qp_table_for_chroma _set0 의 값은 1과 동일한 것으로 추론된다.
num_points_in_qp_table_minus1 _set0 [ i ] + 1은 제1 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table_minus1 _set0 [ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. num_points_in_qp_table_minus1 _set0 [ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1 _set0 [ 0 ]의 값은 0과 동일한 것으로 추론된다.
qp_table_start[[_minus26]] _set0 [ i ] [[+ 26]]은 제1 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. qp_table_start[[_minus26]] _set0 [ i ]의 값은 [[-26]] - QpBdOffset 내지 [[36]] 62 (경계 포함)의 범위에 있어야 한다. qp_table_start[[_minus26]] _set0 [ i ]가 비트스트림에 존재하지 않을 때, qp_table_start[[_minus26]] _set0 [ i ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_in_val_minus1 _set0 [ i ][ j ]는 제1 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1 _set0 [ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1 _set0 [ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val _set0 [ i ][ j ]는 제1 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
same_qp_table_for_chroma_set1이 1과 동일한 것은 제2 크로마 QP 매핑 테이블 세트에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. same_qp_table_for_chroma_set1이 0과 동일한 것은 제2 크로마 QP 매핑 테이블 세트에 대해 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma_set1이 비트스트림에 존재하지 않을 때, same_qp_table_for_chroma_set1의 값은 1과 동일한 것으로 추론된다.
num_points_in_qp_table_minus1_set1[ i ] + 1은 제2 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table_minus1_set1[ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. num_points_in_qp_table_minus1_set1[ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1_set1[ 0 ]의 값은 0과 동일한 것으로 추론된다.
qp_table_start_set1[ i ]는 제2 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. qp_table_start_set1[ i ]의 값은 - QpBdOffset 내지 62(경계 포함)의 범위에 있어야 한다. qp_table_start_set1[ i ]가 비트스트림에 존재하지 않을 때, qp_table_start_set1[ i ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_in_val_minus1_set1[ i ][ j ]는 제2 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1_set1[ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1_set1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val_set1[ i ][ j ]는 제2 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
i = 0..numQpTablesSet0 - 1에 대한 i 번째 크로마 QP 매핑 테이블 ChromaQpTableSet0[ i ] 및 i = 0..numQpTablesSet1 - 1에 대한 i 번째 크로마 QP 매핑 테이블 ChromaQpTableSet1[ i ]는 다음과 같이 도출된다:
X가 0 또는 1인 것에 대해, 제각기, ChromaQpTable[ i ]가 ChromaQpTableSetX[ i ]를 나타내는 것으로 하고, qp_table_start[ i ]가 qp_table_start_setX[ i ]를 나타내는 것으로 하며, delta_qp_in_val_minus1[ i ]가 delta_qp_in_val_minus1_setX[ i ]를 나타내는 것으로 하고, delta_qp_diff_val[ i ]가 delta_qp_diff_val_setX[ i ]를 나타내는 것으로 하면, 다음이 적용된다:
Figure pct00028
same_qp_table_for_chroma X 가 1과 동일할 때, X가 0 또는 1인 것에 대해 그리고 -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable X [ 1 ][ k ] 및 ChromaQpTable X [ 2 ][ k ]는 ChromaQpTable X [ 0 ][ k ]와 동일하게 설정된다.
0 내지 numQpTables - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1[ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
...
8.7.1 양자화 파라미터들에 대한 도출 프로세스
...
현재 슬라이스가 I 슬라이스일 때, i = 0..2에 대해 ChromaQpTable[ i ]는 ChromaQpTableSet0[ i ]와 동일하게 설정된다. 현재 슬라이스가 B 또는 P 슬라이스일 때, sps_one_set_of_chroma_qp_tables_flag가 0과 동일한 경우 i = 0..2에 대해 ChromaQpTable[ i ]는 ChromaQpTableSet1[ i ]와 동일하게 설정되고, 그렇지 않은 경우(sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 경우), i = 0..2에 대해 ChromaQpTable[ i ]는 ChromaQpTableSet0[ i ]와 동일하게 설정된다.
ChromaArrayType이 0과 동일하지 않고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 동일할 때, 다음이 적용된다.
- treeType이 DUAL_TREE_CHROMA와 동일할 때, 변수 QpY는 루마 위치 ( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
- 변수들 qPCb, qPCr 및 qPCbCr은 다음과 같이 도출된다:
Figure pct00029
...
6.5. 실시예 5
새로 추가된 텍스트는 굵은 기울임꼴 밑줄친 텍스트로 표시되고, 삭제된 텍스트들은 이중 대괄호들 사이에 삭제된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])로 표시된다. 이는 JVET-Q2001-vE를 기반으로 한다.
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure pct00030
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱스
...
sps_one_set_of_chroma_qp_tables_flag가 0과 동일한 것은 2 개의 크로마 QP 매핑 테이블 세트가 있다는 것을 지정한다. sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 것은 단지 하나의 크로마 QP 매핑 테이블 세트가 있다는 것을 지정한다. 존재하지 않을 때, sps_one_set_of_chroma_qp_tables_flag의 값은 1과 동일한 것으로 추론된다.
same_qp_table_for_chroma [ l ] 이 1과 동일한 것은 제l 크로마 QP 매핑 테이블 세트에 대해 단지 하나의 크로마 QP 매핑 테이블이 시그널링되며 이 테이블이 Cb 및 Cr 잔차들에 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 추가적으로 결합 Cb-Cr 잔차들에 적용된다는 것을 지정한다. same_qp_table_for_chroma [ l ] 가 0과 동일한 것은 제l 크로마 QP 매핑 테이블 세트에 대해 Cb 및 Cr에 대한 2 개의 크로마 QP 매핑 테이블, 그리고 sps_joint_cbcr_enabled_flag가 1과 동일할 때 결합 Cb-Cr에 대한 하나의 추가적인 크로마 QP 매핑 테이블이 SPS에서 시그널링된다는 것을 지정한다. same_qp_table_for_chroma [ l ] 가 비트스트림에 존재하지 않을 때, same_qp_table_for_chroma [ l ] 의 값은 1과 동일한 것으로 추론된다.
qp_table_start_minus26 [ l ] [ i ] + 26은 제l 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 지정한다. qp_table_start_minus26 [ l ] [ i ]의 값은 -26 - QpBdOffset 내지 36(경계 포함)의 범위에 있어야 한다. qp_table_start_minus26 [ l ] [ i ]가 비트스트림에 존재하지 않을 때, qp_table_start_minus26 [ l ] [ i ]의 값은 0과 동일한 것으로 추론된다.
num_points_in_qp_table_minus1 [ l ] [ i ] + 1은 제l 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트 수를 지정한다. num_points_in_qp_table_minus1 [ l ] [ i ]의 값은 0 내지 63 + QpBdOffset(경계 포함)의 범위에 있어야 한다. num_points_in_qp_table_minus1 [ l ] [ 0 ]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1 [ l ] [ 0 ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_in_val_minus1 [ l ] [ i ][ j ]는 제l 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1 [ l ] [ 0 ][ j ]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1 [ l ] [ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val [ l ] [ i ][ j ]는 제l 크로마 QP 매핑 테이블 세트에 대한 i 번째 크로마 QP 매핑 테이블의 j 번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 지정한다.
l = 0.. sps_one_set_of_chroma_qp_tables_flag ? 1 : 2 및 i = 0..numQpTables[ l ] - 1에 대해 l 번째 크로마 QP 매핑 테이블 ChromaQpTable[ l ][ i ]는 다음과 같이 도출된다:
Figure pct00031
same_qp_table_for_chroma [ l ] 이가 1과 동일할 때, -QpBdOffset 내지 63(경계 포함)의 범위에 있는 k에 대해 ChromaQpTable [ l ] [ 1 ][ k ] 및 ChromaQpTable [ l ] [ 2 ][ k ]는 ChromaQpTable [ l ] [ 0 ][ k ]와 동일하게 설정된다.
0 내지 numQpTables [ l ]  - 1(경계 포함)의 범위에 있는 i 및 0 내지 num_points_in_qp_table_minus1 [ l ] [ i ] + 1(경계 포함)의 범위에 있는 j에 대해 qpInVal [ l ] [ i ][ j ] 및 qpOutVal [ l ] [ i ][ j ]의 값들이 -QpBdOffset 내지 63(경계 포함)의 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
...
8.7.1 양자화 파라미터들에 대한 도출 프로세스
...
현재 슬라이스가 I 슬라이스일 때, i = 0..2에 대해 chromaQpTable[ i ]는 ChromaQpTable[ 0 ][ i ]와 동일하게 설정된다. 현재 슬라이스가 B 또는 P 슬라이스일 때, sps_one_set_of_chroma_qp_tables_flag가 0과 동일한 경우 i = 0..2에 대해 chromaQpTable[ i ]는 ChromaQpTable[ 1 ][ i ]와 동일하게 설정되고, 그렇지 않은 경우(sps_one_set_of_chroma_qp_tables_flag가 1과 동일한 경우), i = 0..2에 대해 chromaQpTable[ i ]는 ChromaQpTable[ 0 ][ i ]와 동일하게 설정된다.
ChromaArrayType이 0과 동일하지 않고 treeType이 SINGLE_TREE 또는 DUAL_TREE_CHROMA와 동일할 때, 다음이 적용된다:
- treeType이 DUAL_TREE_CHROMA와 동일할 때, 변수 QpY는 루마 위치 ( xCb + cbWidth / 2, yCb + cbHeight / 2 )를 커버하는 루마 코딩 유닛의 루마 양자화 파라미터 QpY와 동일하게 설정된다.
- 변수들 qPCb, qPCr 및 qPCbCr은 다음과 같이 도출된다:
Figure pct00032
6.6. 실시예 6
JVET-Q2001-vE 외에 제안된 사양 변경 사항들은 다음과 같다. 삭제된 텍스트들은 이중 대괄호들 사이에 삭제된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])로 표시되고, 새로 추가된 텍스트는 굵은 기울임꼴 밑줄친 텍스트로 강조 표시된다.
7.3.10.2 코딩 트리 유닛 신택스
Figure pct00033
Figure pct00034
6.7. 제7 실시예 세트
이것은 위에서 섹션 5에 요약된 항목 20에 대한 실시예 세트이다.
변경된 텍스트들은 JVET-Q2001-vE에서의 최신 VVC 텍스트를 기반으로 한다. 추가되거나 수정된 가장 관련성 있는 부분들은 굵은 기울임꼴 밑줄친 텍스트로 강조 표시되고, 삭제된 텍스트들 중 일부는 이중 대괄호들 사이에 삭제된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]])로 표시된다.
6.7.1. 예시적인 실시예
일 예에서, SPS 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00035
sps_ts_residual_coding_enabled_flag가 1과 동일한 것은 slice_ts_residual_coding_disabled_flag가 CLVS에 존재할 수 있다는 것을 지정한다. sps_ts_residual_coding_enabled_flag가 0과 동일한 것은 slice_ts_residual_coding_disabled_flag가 CLVS에 존재하지 않는다는 것을 지정한다. 존재하지 않을 때, sps_ts_residual_coding_enabled_flag의 값은 0과 동일한 것으로 추론된다.
일 예에서, PPS 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00036
pps_ts_residual_coding_enabled_flag가 1과 동일한 것은 ph/slice_ts_residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재할 수 있다는 것을 지정한다. pps_ts_residual_coding_enabled_flag가 0과 동일한 것은 ph/slice_ts_residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재하지 않는다는 것을 지정한다.
sps_ts_residual_coding_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
sps_transform_skip_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
ts_residual_coding_flag_in_ph가 1과 동일한 것은 ph_ts_residual_coding_disabled_flag가 PH에 존재할 수 있다는 것을 지정한다. pps_ts_residual_coding_enabled_flag가 0과 동일한 것은 slice_ts_residual_coding_disabled_flag가 SH에 존재할 수 있다는 것을 지정한다.
일 예에서, PH 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00037
ph_ts_residual_coding_enabled_flag가 0과 동일한 것은 residual_coding( ) 신택스 구조가 현재 픽처의 모든 슬라이스들에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. ph_ts_residual_coding_enabled_flag가 1과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 픽처의 모든 슬라이스들에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용될 수 있다는 것을 지정한다. ph_ts_residual_coding_enabled_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
일 예에서, PH 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00038
slice_ ts _residual_coding_[ [disabled]] enabled _flag가 [[1]] 0 과 동일한 것은 residual_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 [[0]] 1 과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 존재하지 않을 때, 이는 [[0]] ph_ts_residual_coding_enabled_flag 와 동일한 것으로 추론된다.
일 예에서, transform_unit() 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00039
Figure pct00040
Figure pct00041
tu_ts_residual_coding_flag[ x0 ][ y0 ][ cIdx ]가 1과 동일한 것은 현재 코딩 유닛에 대해, slice_ts_residual_coding_enabled_flag 및 transform_skip_flag[ x0 ][ y0][ cIdx ]가 1과 동일할 때, 변환 스킵 잔차 코딩이 사용된다는 것을 지정한다. tu_ts_residual_coding_flag[ x0 ][ y0 ][ cIdx ]가 0과 동일한 것은 현재 코딩 유닛에 대해, slice_ts_residual_coding_enabled_flag 및 transform_skip_flag[ x0 ][ y0][ cIdx ]가 1과 동일할 때, 변환 잔차 코딩이 사용된다는 것을 지정한다. tu_ts_residual_coding_flag[ x0 ][ y0 ][ cIdx ]가 시그널링되지 않을 때, 이는 0과 동일한 것으로 추론된다.
6.7.2. 다른 예시적인 실시예
대안적으로, PPS, PH, SH 신택스는 다음과 같이 변경될 수 있다:
Figure pct00042
pps_ts_residual_coding_enabled_flag가 1과 동일한 것은 ph/slice_ts_residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재할 수 있다는 것을 지정한다. pps_ts_residual_coding_enabled_flag가 0과 동일한 것은 ph/slice_ts_residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재하지 않는다는 것을 지정한다.
sps_ts_residual_coding_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
sps_transform_skip_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
Figure pct00043
ph_ts_residual_coding_enabled_flag가 0과 동일한 것은 residual_coding( ) 신택스 구조가 현재 픽처의 모든 슬라이스들에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. ph_ts_residual_coding_enabled_flag가 1과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 픽처의 모든 슬라이스들에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용될 수 있다는 것을 지정한다. ph_ts_residual_coding_enabled_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
Figure pct00044
slice_ts_residual_coding_[[disabled]] enabled _flag가 [[1]] 0 과 동일한 것은 residual_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 [[0]] 1 과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
6.7.3. 다른 예시적인 실시예
대안적으로, PPS, SH 신택스는 다음과 같이 변경될 수 있다:
Figure pct00045
pps_ts_residual_coding_enabled_flag가 1과 동일한 것은 ph/slice_ts_residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재할 수 있다는 것을 지정한다. pps _ ts _residual_coding_enabled_flag가 0과 동일한 것은 ph /slice_ ts _residual_coding_enabled_flag가 PPS를 참조하는 픽처들/슬라이스들에 존재하지 않는다는 것을 지정한다.
sps_ts_residual_coding_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
sps_transform_skip_enabled_flag가 0과 동일할 때, pps_ts_residual_coding_enabled_flag의 값이 0과 동일해야 하는 것이 요구된다.
Figure pct00046
slice_ts_residual_coding_[[disabled]] enabled _flag가 [[1]] 0 과 동일한 것은 residual_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 [[0]] 1 과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
6.7.4. 다른 예시적인 실시예
대안적으로, SH 신택스는 다음과 같이 변경될 수 있다:
Figure pct00047
slice_ts_residual_coding_[[disabled]] enabled _flag가 [[1]] 0 과 동일한 것은 residual_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 [[0]] 1 과 동일한 것은 residual_ts_coding( ) 신택스 구조가 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데 사용된다는 것을 지정한다. slice_ts_residual_coding_[[disabled]] enabled _flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
도 3은 본 명세서에서 개시되는 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(1900)을 도시하는 블록 다이어그램이다. 다양한 구현들은 시스템(1900)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(1902)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들면, 8 또는 10 비트 다중 성분 픽셀 값들로 수신될 수 있거나, 압축된 또는 인코딩된 포맷으로 수신될 수 있다. 입력(1902)은 네트워크 인터페이스, 주변기기 버스 인터페이스, 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, PON(passive optical network) 등과 같은 유선 인터페이스들 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(1900)은 본 문서에서 설명되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(1904)를 포함할 수 있다. 코딩 컴포넌트(1904)는 비디오의 코딩된 표현을 생성하기 위해 입력(1902)으로부터 코딩 컴포넌트(1904)의 출력으로의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술들이라고 불린다. 코딩 컴포넌트(1904)의 출력은 저장되거나, 컴포넌트(1906)에 의해 표현되는, 연결된 통신을 통해 전송될 수 있다. 입력(1902)에 수신되는 비디오의 저장 또는 통신되는 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1910)에 송신되는 픽셀 값들 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1908)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라고 불린다. 게다가, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 또는 툴들이라고 지칭되지만, 코딩 툴들 또는 동작들은 인코더에서 사용되고 코딩의 결과들을 반대로 하는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것임이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술들은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 4는 비디오 프로세싱 장치(3600)의 블록 다이어그램이다. 장치(3600)는 본 명세서에서 설명되는 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에서 구체화될 수 있다. 장치(3600)는 하나 이상의 프로세서(3602), 하나 이상의 메모리(3604) 및 비디오 프로세싱 하드웨어(3606)를 포함할 수 있다. 프로세서(들)(3602)는 본 문서에서 설명되는 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(3604)는 본 명세서에서 설명되는 방법들 및 기술들을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(3606)는 본 문서에서 설명되는 일부 기술들을, 하드웨어 회로로, 구현하는 데 사용될 수 있다.
도 6은 본 개시내용의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록 다이어그램이다.
도 6에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 비디오 인코딩 디바이스라고 지칭될 수 있는 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성한다. 비디오 디코딩 디바이스라고 지칭될 수 있는 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114), 및 입출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스와 같은 소스, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 그러한 소스들의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 연관된 데이터는 시퀀스 파라미터 세트들, 픽처 파라미터 세트들, 및 다른 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 목적지 디바이스(120)로 곧바로 전송될 수 있다. 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124), 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 취득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이할 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나, 또는 외부 디스플레이 디바이스와 인터페이싱하도록 구성된 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는, HEVC(High Efficiency Video Coding) 표준, VVC(Versatile Video Coding) 표준 및 다른 현재 및/또는 추가의 표준들과 같은, 비디오 압축 표준에 따라 작동할 수 있다.
도 7은 도 6에 예시된 시스템(100) 내의 비디오 인코더(114)일 수 있는, 비디오 인코더(200)의 예를 예시하는 블록 다이어그램이다.
비디오 인코더(200)는 본 개시내용의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 7의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트들을 포함한다. 본 개시내용에서 설명되는 기술들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시내용에서 설명되는 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트들은 분할 유닛(201), 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)을 포함할 수 있는 예측 유닛(202), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 보다 많은, 보다 적은, 또는 상이한 기능 컴포넌트들을 포함할 수 있다. 예에서, 예측 유닛(202)은 인트라 블록 복사(IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
게다가, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명 목적으로 도 7의 예에서 개별적으로 표현되어 있다.
분할 유닛(201)은 픽처를 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택 유닛(203)은, 예를 들어, 오차 결과들에 기초하여, 코딩 모드들, 즉 인트라(intra) 또는 인터(inter) 중 하나를 선택할 수 있고, 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고 재구성 유닛(212)에 제공하여 참조 픽처로서 사용하기 위한 인코딩된 블록을 재구성하도록 할 수 있다. 일부 예들에서, 모드 선택 유닛(203)은 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 또한 인터 예측의 경우에 블록에 대한 모션 벡터의 해상도(예를 들면, 서브픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하는 것에 의해 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 픽처들의 디코딩된 샘플들 및 모션 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지에 따라, 현재 비디오 블록에 대해 상이한 동작들을 수행할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1 내의 참조 픽처를 나타내는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수 있다. 모션 추정 유닛(204)은 참조 인덱스, 예측 방향 지시자, 및 모션 벡터를 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 내의 참조 픽처들을 탐색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 리스트 1 내의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1 내의 참조 픽처들을 나타내는 참조 인덱스들 및 참조 비디오 블록들과 현재 비디오 블록 사이의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 참조 인덱스들 및 현재 비디오 블록의 모션 벡터들을 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록들에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 디코더의 디코딩 프로세싱을 위한 모션 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오에 대한 모션 정보의 전체 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에, 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 갖는다는 것을 비디오 디코더(300)에 알려주는 값을 표시할 수 있다.
다른 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 간의 차이를 나타낸다. 비디오 디코더(300)는 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector predication) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대해 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대해 인트라 예측을 수행할 때, 인트라 예측 유닛(206)은 동일한 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 차감(예를 들면, 마이너스 부호로 표시됨)하는 것에 의해 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내의 샘플들의 상이한 샘플 성분들에 대응하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 예를 들어, 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록의 잔차 데이터가 없을 수 있고, 잔차 생성 유닛(207)은 차감 동작을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용하는 것에 의해 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210) 및 역변환 유닛(211)은, 제각기, 변환 계수 비디오 블록에 역양자화 및 역변환을 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성할 수 있다. 재구성 유닛(212)은 버퍼(213)에 저장할 현재 블록과 연관된 재구성된 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성되는 하나 이상의 예측된 비디오 블록으로부터의 대응하는 샘플들에 재구성된 잔차 비디오 블록을 가산할 수 있다.
재구성 유닛(212)이 비디오 블록을 재구성한 후에, 비디오 블록에서의 비디오 블로킹 아티팩트를 감소시키기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 인에이블시키도록 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 인코더는 비디오 블록의 프로세싱에서 툴 또는 모드를 사용하거나 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오 블록으로부터 비디오의 비트스트림(또는 비트스트림 표현)으로의 변환은 의사 결정 또는 결정에 기초하여 비디오 프로세싱 툴 또는 모드가 인에이블될 때 이를 사용할 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 디코더는 비디오 프로세싱 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 지식을 사용하여 비트스트림을 프로세싱할 것이다. 즉, 비디오의 비트스트림으로부터 비디오 블록으로의 변환은 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 수행될 것이다.
도 8은 도 6에 예시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 예시하는 블록 다이어그램이다.
비디오 디코더(300)는 본 개시내용의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 8의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트들을 포함한다. 본 개시내용에서 설명되는 기술들은 비디오 디코더(300)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시내용에서 설명되는 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
도 8의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역양자화 유닛(304), 역변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예들에서, 비디오 인코더(200)(도 7)와 관련하여 설명된 인코딩 패스(encoding pass)와 일반적으로 반대인 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들면, 비디오 데이터의 인코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상 유닛(302)은 모션 벡터, 모션 벡터 정밀도, 참조 픽처 리스트 인덱스, 및 다른 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)은, 예를 들어, AMVP 및 병합 모드를 수행하는 것에 의해 그러한 정보를 결정할 수 있다.
모션 보상 유닛(302)은 모션 보상된 블록들을 생성할 수 있으며, 어쩌면 보간 필터들에 기초하여 보간을 수행할 수 있다. 사용될 보간 필터들에 대한 식별자들이 서브픽셀 정밀도와 함께 신택스 요소들에 포함될 수 있다.
모션 보상 유닛(302)은 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더(200)에 의해 사용되는 바와 같이 보간 필터들을 사용할 수 있다. 모션 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터들을 결정할 수 있고 예측 블록들을 생성하기 위해 보간 필터들을 사용할 수 있다.
모션 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 인코딩하는 데 사용되는 블록들의 크기들, 인코딩된 비디오 시퀀스의 픽처의 각각의 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각각의 분할이 어떻게 인코딩되는지를 나타내는 모드들, 각각의 인터 인코딩된 블록에 대한 하나 이상의 참조 프레임(및 참조 프레임 리스트), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 신택스 정보의 일부를 사용할 수 있다.
인트라 예측 유닛(303)은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해, 예를 들어, 비트스트림에서 수신되는 인트라 예측 모드들을 사용할 수 있다. 역양자화 유닛(303)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에 의해 디코딩되는 양자화된 비디오 블록 계수들을 역양자화(inverse quantize), 즉 양자화 해제(de-quantize)한다. 역변환 유닛(303)은 역변환을 적용한다.
재구성 유닛(306)은 디코딩된 블록들을 형성하기 위해 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성되는 대응하는 예측 블록들과 잔차 블록들을 합산할 수 있다. 원하는 경우, 디코딩된 블록들을 필터링하여 블록성 아티팩트(blockiness artifact)를 제거하기 위해 디블로킹 필터가 또한 적용될 수 있다. 디코딩된 비디오 블록들은 이어서 버퍼(307)에 저장되고, 버퍼(307)는 후속하는 모션 보상/인트라 예측을 위한 참조 블록들을 제공하고 또한 디스플레이 디바이스 상에 제시할 디코딩된 비디오를 생성한다.
일부 실시예들에 의해 선호되는 해결책들의 목록이 다음에 제공된다.
이하의 해결책들은 이전 섹션(예를 들면, 항목 1)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
1. 비디오 프로세싱 방법(예를 들면, 도 5에서의 방법(500))으로서, 비디오 픽처들을 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계(502)를 포함하며, 코딩된 표현은 포맷 규칙을 준수하고, 포맷 규칙은 변환 동안 사용되는 하나 이상의 초기 양자화 파라미터(QP) 값을 나타내는 하나 이상의 신택스 요소가 코딩된 표현에 포함되는지 여부와 코딩된 표현에서 어디에 포함되는지를 지정하는, 방법.
2. 해결책 1에 있어서, 포맷 규칙은 하나 이상의 QP 값을 표시하는 신택스 요소가 신택스 요소를 픽처 파라미터 세트에 포함시키지 않고 픽처 헤더에 포함된다는 것을 지정하는, 방법.
3. 해결책 1에 있어서, 포맷 규칙은 하나 이상의 QP 값을 표시하는 신택스 요소가 픽처 파라미터 세트에 포함되고 하나 이상의 픽처 헤더에서 반복된다는 것을 지정하는, 방법.
4. 해결책 1에 있어서, 포맷 규칙은 하나 이상의 신택스 요소가 규칙에 따라 시퀀스 파라미터 세트, 픽처 파라미터 세트, 픽처 헤더 및 시퀀스 헤더 중 2 개 이상을 포함한 다수의 레벨들에서 코딩된 표현에 포함된다는 것을 지정하는, 방법.
5. 해결책 4에 있어서, 규칙은 비디오 픽처의 비디오 픽처 유형에 기초하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 2 및 항목 3)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
6. 비디오 프로세싱 방법으로서, 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 초기 양자화 파라미터(QP) 값을 사용하도록 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하며, 코딩된 표현 내의 신택스 요소는 (a) 1 내지 25이거나 (b) 26보다 크거나 (c) 변환에 대한 최대 허용 QP 값의 함수이거나 (d) 변환에 사용되는 비트 깊이의 함수인 오프셋 값 K를 포함하는 오프셋 관계를 사용하여 초기 QP 값을 나타내는, 방법.
7. 해결책 6에 있어서, K는 비디오 블록의 유형 또는 비디오 블록을 포함하는 비디오 픽처 또는 비디오 슬라이스의 유형의 함수인, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 4 및 항목 5)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
8. 비디오 프로세싱 방법으로서, 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 규칙에 따라 크로마 블록을 포함하는 픽처 또는 슬라이스의 유형에 기초하여 하나 이상의 양자화 파라미터(QP) 테이블을 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하는, 방법.
9. 해결책 8에 있어서, 규칙은 I, B 및 P 비디오 픽처들에 대해 하나 이상의 QP 테이블이 상이하다는 것을 지정하는, 방법.
10. 해결책 8에 있어서, 규칙은 I 코딩된 비디오 픽처들에 대한 하나 이상의 QP 테이블이 B 및 P 코딩된 비디오 픽처들에 대한 하나 이상의 QP 테이블과 상이하다는 것을 지정하는, 방법.
11. 해결책 8 내지 해결책 10 중 어느 한 해결책에 있어서, 규칙은 크로마 블록이 속하는 픽처 유형 및 슬라이스 유형의 분류에 기초하고, 숫자 M은 분류에 대한 인덱스를 나타내며, 여기서 M은 1보다 큰 정수인, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 6 내지 항목 8)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
12. 비디오 프로세싱 방법으로서, 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 하나 이상의 양자화 파라미터(QP) 테이블을 결정하는 단계; 및 결정에 기초하여 변환을 수행하는 단계를 포함하며; 변환은 하나 이상의 QP 테이블에 대응하는 하나 이상의 신택스 요소를 지정하는 제1 규칙 또는 하나 이상의 QP 테이블과 크로마 블록의 코딩 특성 사이의 관계를 지정하는 제2 규칙을 준수하는, 방법.
13. 해결책 12에 있어서, 제1 규칙은 하나 이상의 신택스 요소가 코딩된 표현과 연관된 시퀀스 파라미터 세트에 포함된다는 것을 지정하는, 방법.
14. 해결책 12 또는 해결책 13에 있어서, 제2 규칙은 하나 이상의 QP 테이블이 변환에 사용되는 예측 모드에 기초한다는 것을 지정하는, 방법.
15. 해결책 13에 있어서, 제2 규칙은 인트라 코딩된 크로마 블록들에 대한 하나 이상의 QP 테이블이 다른 예측 모드들을 사용하는 크로마 블록들과 상이하다는 것을 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 9 내지 항목 14)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
16. 비디오 프로세싱 방법으로서, 비디오의 크로마 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며; 코딩된 표현은 포맷 규칙을 준수하고, 포맷 규칙은 변환에 사용되는 하나 이상의 크로마 양자화 파라미터(QP) 테이블과 연관된 신택스 요소의 특성을 지정하는, 방법.
17. 해결책 16에 있어서, 포맷 규칙은 하나 이상의 크로마 QP 테이블에 대한 시작 포인트 신택스 요소의 최댓값을 지정하는, 방법.
18. 해결책 16에 있어서, 포맷 규칙은 시작 포인트 신택스 요소가 26보다 작은 수 K만큼 오프셋되는 값을 갖는다는 것을 지정하는, 방법.
19. 해결책 16에 있어서, 포맷 규칙은 시작 포인트 신택스 요소가 크로마 블록의 현재 픽처가 인트라 전용 픽처인지 여부에 의존하는 값만큼 오프셋된다는 것을 지정하는, 방법.
20. 해결책 16 내지 해결책 19 중 어느 한 해결책에 있어서, 포맷 규칙은 하나 이상의 크로마 QP 테이블에서의 피벗 포인트 수가 0이라는 것을 지정하는, 방법.
21. 해결책 16 내지 해결책 20 중 어느 한 해결책에 있어서, 피벗 포인트 수가 0인 것으로 인해, 하나 이상의 크로마 QP 테이블에서의 i 번째 엔트리는 대응하는 루마 QP 테이블에서의 i 번째 엔트리와 동일하게 설정되는, 방법.
22. 해결책 16 내지 해결책 21 중 어느 한 해결책에 있어서, 신택스 요소는 코딩된 표현에서 시퀀스 파라미터 세트 및 픽처 파라미터 세트 둘 모두에 포함되는, 방법.
23. 해결책 16 내지 해결책 22 중 어느 한 해결책에 있어서, 신택스 요소는 픽처 헤더 또는 시퀀스 헤더 중 어느 하나에 포함되는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 25)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
24. 비디오 프로세싱 방법으로서, 코딩된 표현 내의 하나 이상의 신택스 요소에 관련된 포맷 규칙에 기초하여 비디오의 코딩된 표현에서 양자화 파라미터 테이블을 시그널링하기 위해 사용되는 시그널링 방식을 결정하는 단계, 및 결정에 기초하여, 비디오와 코딩된 표현 사이의 변환을 수행하는 단계를 포함하는, 방법.
25. 해결책 24에 있어서, 시그널링 방식은 양자화 파라미터 테이블에서의 포인트 수의 표시를 포함하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 26)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
26. 비디오 프로세싱 방법으로서, 규칙에 따라 비디오의 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 규칙은, 아핀 코딩의 사용이 인에이블되고 서브블록 기반 시간적 모션 벡터 예측의 사용이 디스에이블되는 경우에, 서브블록 병합 후보들의 최대 수를 제한하는 데 사용되는 수 N을 지정하는, 방법.
27. 해결책 26에 있어서, N=0인, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 27 내지 항목 29)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
28. 비디오 프로세싱 방법으로서, 하나 이상의 비디오 서브픽처를 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 코딩된 표현은 포맷 규칙을 준수하고, 포맷 규칙은 다음과 같은 서브픽처 관련 신택스 요소들: 동일한 시퀀스 파라미터 세트를 참조하는 모든 서브픽처들이 동일한 치수를 갖는지 여부를 나타내는 제1 신택스 요소, 동일한 치수를 갖는 모든 서브픽처들의 공통 폭 및 공통 높이를 시그널링하는 제2 신택스 요소, 또는 제2 포맷 규칙에 따른 제3 신택스 요소 중 하나 이상을 포함시키거나 생략하도록 지정하는, 방법.
29. 해결책 28에 있어서, 제2 포맷 규칙은 특정 조건들 하에서 샘플 폭을 나타내는 신택스 요소들을 생략하도록 지정하는, 방법.
30. 해결책 1 내지 해결책 29 중 어느 한 해결책에 있어서, 변환은 비디오를 코딩된 표현으로 인코딩하는 것을 포함하는, 방법.
31. 해결책 1 내지 해결책 29 중 어느 한 해결책에 있어서, 변환은 코딩된 표현을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함하는, 방법.
32. 비디오 디코딩 장치로서, 해결책 1 내지 해결책 31 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
33. 비디오 인코딩 장치로서, 해결책 1 내지 해결책 31 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
34. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책 1 내지 해결책 31 중 어느 한 해결책에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
도 9는 예시적인 비디오 프로세싱 방법(900)에 대한 플로차트이다. 동작(902)은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 변환에서 사용되는 양자화 파라미터 테이블이 시퀀스 파라미터 세트에 포함된다는 것을 지정하고, 여기서 규칙은 양자화 파라미터 테이블에서의 포인트 수를 표시하는 제1 신택스 요소가 시퀀스 파라미터 세트에 포함되는지 여부 또는 어떻게 포함되는지가 시퀀스 파라미터 세트 내의 제2 신택스 요소에 따라 제어된다는 것을 지정한다.
방법(900)의 일부 실시예들에서, 양자화 파라미터 테이블은 크로마 양자화 파라미터 매핑 테이블이다. 방법(900)의 일부 실시예들에서, 제1 신택스 요소에 1을 더한 값은 양자화 파라미터 테이블에서의 포인트 수와 동일하다. 방법(900)의 일부 실시예들에서, 제2 신택스 요소의 값은 양자화 파라미터 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 양자화 파라미터를 표시한다. 방법(900)의 일부 실시예들에서, 양자화 파라미터 테이블에서의 포인트 수의 최댓값은 제2 신택스 요소의 값에 기초한다. 방법(900)의 일부 실시예들에서, 규칙은 양자화 파라미터 테이블에서의 포인트 수의 최댓값 - 1이 최대 양자화 파라미터 값과 i 번째 크로마 양자화 파라미터 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 양자화 파라미터 사이의 차이라는 것을 지정한다.
방법(900)의 일부 실시예들에서, 최댓값은 (63 - (qp_table_start_minus26[ i ] + 26))으로 설정된다. 방법(900)의 일부 실시예들에서, 최댓값은 (64 - (qp_table_start_minus26[ i ] + 26))으로 설정된다.
도 10는 예시적인 비디오 프로세싱 방법(1000)에 대한 플로차트이다. 동작(1002)은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 시퀀스 파라미터 세트에 표시되는 서브픽처 수 - 1이 0보다 클 때 그리고 시퀀스 파라미터 세트 내의 신택스 요소가 코딩된 계층 비디오 시퀀스에서의 비디오의 첫 번째 비디오 픽처의 i 번째 서브픽처가 인루프 필터링 동작을 제외하는 디코딩 프로세스에서 비디오의 두 번째 비디오 픽처로서 취급된다는 것을 나타낼 때 다음과 같은 2 개의 조건: (1) 첫 번째 비디오 픽처 및 첫 번째 비디오 픽처의 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처가 루마 샘플 단위의 픽처 폭, 루마 샘플 단위의 픽처 높이, 서브픽처 수 - 1, 및 0 내지 서브픽처 수 - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, i 번째 서브픽처의 좌측 상단 코딩 트리 유닛의 수평 위치, i 번째 서브픽처의 좌측 상단 CTU의 수직 위치, i 번째 서브픽처의 폭 - 1, i 번째 서브픽처의 높이 - 1, i 번째 서브픽처에 대한 신택스 요소 각각에 대해 동일한 값을 갖는다; 및 (2) 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처는 서브픽처 수 - 1의 값이 0과 동일한 계층 간 참조 픽처이다 중 하나가 참이라는 것을 지정한다.
도 11은 예시적인 비디오 프로세싱 방법(1100)에 대한 플로차트이다. 동작(1102)은 규칙에 따라 비디오 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 아핀 코딩 툴이 인에이블되고 서브블록 기반 시간적 모션 벡터 예측 코딩 툴이 디스에이블될 때 서브블록 병합 후보들의 최대 수가 수 N이 되도록 허용되지 않는다는 것을 지정한다.
방법(1100)의 일부 실시예들에서, N=0이다. 방법(1100)의 일부 실시예들에서, N은 0보다 크다. 방법(1100)의 일부 실시예들에서, 시퀀스 파라미터 세트에서 지원되는 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수 - 5의 범위는 SbTMVP 코딩 툴이 인에이블되는지 디스에이블되는지를 나타내는 시퀀스 파라미터 세트 내의 신택스 요소의 값에 관계없이 [0, 4]로부터의 것이다. 방법(1100)의 일부 실시예들에서, 비트스트림은 아핀 코딩 툴이 인에이블될 때 1 내지 5(경계 포함)의 범위 내로부터의 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수의 값을 포함하는 적합성 비트스트림이다. 방법(1100)의 일부 실시예들에서, 비트스트림은 아핀 코딩 툴이 디스에이블될 때 0 내지 1(경계 포함)의 범위 내로부터의 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수의 값을 포함하는 적합성 비트스트림이다. 방법(1100)의 일부 실시예들에서, 비트스트림이 병합 서브블록 동작이 인에이블되는지 여부를 나타내는 신택스 요소를 포함하는지 여부는 아핀 코딩 툴이 인에이블되는지 여부에 기초하고 서브블록 병합 후보들의 최대 수에 기초하지 않는다.
도 12는 예시적인 비디오 프로세싱 방법(1200)에 대한 플로차트이다. 동작(1202)은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 아핀 병합 모드가 인에이블되는지 여부를 나타내는 신택스 요소가 비트스트림에 있는지 여부를 지정한다.
방법(1200)의 일부 실시예들에서, 포맷 규칙은 아핀 병합 모드가 시퀀스 파라미터 세트에서 인에이블되는지 여부에 기초하여 신택스 요소가 비트스트림에서 선택적으로 표시된다는 것을 지정한다. 방법(1200)의 일부 실시예들에서, 포맷 규칙은 신택스 요소가 아핀 병합 모드가 인에이블된다는 것을 나타낼 때 서브블록 병합 후보들의 최대 수가 비트스트림에 표시된다는 것을 지정한다.
도 13은 예시적인 비디오 프로세싱 방법(1300)에 대한 플로차트이다. 동작(1302)은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 다음과 같은 서브픽처 관련 신택스 요소들: 동일한 시퀀스 파라미터 세트를 참조하는 모든 서브픽처들이 동일한 치수를 갖는지 여부를 나타내는 제1 신택스 요소, 동일한 치수를 갖는 모든 서브픽처들의 공통 폭 및 공통 높이를 나타내는 제2 신택스 요소 중 하나 이상을 표시하거나 시퀀스 파라미터 세트로부터 생략하도록 지정하거나 모든 서브픽처들이 동일한 치수를 갖는 것은 아닐 때 제2 규칙에 따른 하나 이상의 신택스 요소가 생략된다는 것을 지정한다.
방법(1300)의 일부 실시예들에서, 규칙은: numSubpicCols로 표시되는 서브픽처 열 수가 ( sps_pic_width_max_in_luma_samples / ( ( sps_uniform_subpic_width_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출되고, numSubpicRows로 표시되는 서브픽처 행 수는 ( sps_pic_height_max_in_luma_samples / ( ( sps_uniform_subpic_height_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출된다는 것을 지정하며, 여기서 sumSubpics로 표시되는 서브픽처 수는 numSubpicCols * numSubpicRows와 동일한 것으로 도출된다. 방법(1300)의 일부 실시예들에서, 규칙은 sps_num_subpics_minus1이 시퀀스 파라미터 세트로부터 제외된다는 것을 지정하고, 여기서 sps_num_subpics_minus1의 값은 numSubpics - 1과 동일한 것으로 추론된다. 방법(1300)의 일부 실시예들에서, 규칙은 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]의 값들이, 제각기, ( sps_uniform_subpic_width_minus1 + 1) * ( i % numSubpicCols ), ( sps_uniform_subpic_height_minus1 + 1) * ( i / numSubpicCols ), sps_uniform_subpic_width_minus1, 및 sps_uniform_subpic_height_minus1과 동일한 것으로 추론된다는 것을 지정한다.
방법(1300)의 일부 실시예들에서, 규칙은 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_independent_subpics_flag가 0과 동일할 때, sps_subpic_treated_as_pic_flag[ i ] 및 sps_loop_filter_across_subpic_enabled_flag[ i ]가 시퀀스 파라미터 세트에 표시된다는 것을 지정한다. 방법(1300)의 일부 실시예들에서, 제2 규칙은 현재 서브픽처들 계층 시그널링을 사용하도록 지정한다. 방법(1300)의 일부 실시예들에서, 규칙은 sps_pic_width_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_width_minus1이 시퀀스 파라미터 세트로부터 제외되고 0과 동일한 것으로 추론된다는 것을 지정한다. 방법(1300)의 일부 실시예들에서, 규칙은 sps_pic_height_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_height_minus1이 시퀀스 파라미터 세트로부터 제외되고 0과 동일한 것으로 추론된다는 것을 지정한다.
방법(1300)의 일부 실시예들에서, 규칙은 sps_uniform_subpic_width_minus1, sps_uniform_subpic_height_minus1, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]가 ue(v) 코딩된다는 것을 지정한다. 방법(1300)의 일부 실시예들에서, 규칙은 sps_uniform_subpic_width_minus1 및 sps_uniform_subpic_height_minus1이, 제각기, sps_subpic_width_minus1[ i ] 및 sps_subpic_height_minus1[ i ]와 동일한 길이로, u(v) 코딩된다는 것을 지정한다. 방법(1300)의 일부 실시예들에서, 시퀀스 파라미터 세트는: 비디오의 모든 서브픽처들이, 제각기, 동일한 폭 및 높이를 갖는지 여부를 나타내는 제1 신택스 요소, 모든 서브픽처들에 대한 공통 폭을 나타내는 제2 신택스 요소, 및 모든 서브픽처들에 대한 공통 높이를 나타내는 제3 신택스 요소를 포함한다. 방법(1300)의 일부 실시예들에서, 규칙은 시퀀스 파라미터 세트에 표시되는 서브픽처 수 - 1이 0보다 클 때 그리고 시퀀스 파라미터 세트 내의 신택스 요소가 코딩된 계층 비디오 시퀀스에서의 비디오의 첫 번째 비디오 픽처의 i 번째 서브픽처가 인루프 필터링 동작을 제외하는 디코딩 프로세스에서 비디오의 두 번째 비디오 픽처로서 취급된다는 것을 나타낼 때 다음과 같은 2 개의 조건: (1) 첫 번째 비디오 픽처 및 첫 번째 비디오 픽처의 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처가 루마 샘플 단위의 픽처 폭, 루마 샘플 단위의 픽처 높이, 서브픽처 수 - 1, 및 0 내지 서브픽처 수 - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, i 번째 서브픽처의 좌측 상단 코딩 트리 유닛의 수평 위치, i 번째 서브픽처의 좌측 상단 CTU의 수직 위치, i 번째 서브픽처의 폭 - 1, i 번째 서브픽처의 높이 - 1, i 번째 서브픽처에 대한 신택스 요소, 및 i 번째 서브픽처에 대한 식별자 값 각각에 대해 동일한 값을 갖는다; 및 (2) 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 두 번째 비디오 픽처는 서브픽처 수 - 1의 값이 0과 동일한 계층 간 참조 픽처이다 중 하나가 참이라는 것을 지정한다.
도 14는 예시적인 비디오 프로세싱 방법(1400)에 대한 플로차트이다. 동작(1402)은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 폭이 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 열의 폭 - 1을 나타내는 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 폭 - 1과 동일하다고 결정하는 단계를 포함한다. 동작(1404)은 결정에 기초하여 변환을 수행하는 단계를 포함한다.
도 15는 예시적인 비디오 프로세싱 방법(1500)에 대한 플로차트이다. 동작(1502)은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 높이가 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 행의 높이 - 1을 나타내는 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 높이 - 1과 동일하다고 결정하는 단계를 포함한다. 동작(1504)은 결정에 기초하여 변환을 수행하는 단계를 포함한다.
방법(들)(900 내지 1500)의 일부 실시예들에서, 변환을 수행하는 단계는 비디오를 비트스트림으로 인코딩하는 단계를 포함한다. 방법(들)(900 내지 1500)의 일부 실시예들에서, 변환을 수행하는 단계는 비디오로부터 비트스트림을 생성하는 단계를 포함하고, 방법은 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함한다. 방법(들)(900 내지 1500)의 일부 실시예들에서, 변환을 수행하는 단계는 비트스트림으로부터 비디오를 디코딩하는 단계를 포함한다.
일부 실시예들에서, 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치. 일부 실시예들에서, 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치. 일부 실시예들에서, 컴퓨터 명령어들이 저장된 컴퓨터 프로그램 제품, 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법을 구현하게 한다. 일부 실시예들에서, 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법에 따라 생성되는 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체. 일부 실시예들에서, 프로세서로 하여금 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법을 구현하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체. 일부 실시예들에서, 비트스트림 생성 방법은: 방법(들)(900 내지 1500)의 하나 이상의 실시예에 기재된 방법에 따라 비디오의 비트스트림을 생성하는 단계, 및 비트스트림을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계를 포함한다. 일부 실시예들에서, 본 문서에서 설명된, 방법, 장치, 개시된 방법에 따라 생성되는 비트스트림 또는 시스템.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내에서 동일 위치에 있거나 상이한 위치들에 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은, 변환 및 코딩된 오차 잔차 값들의 면에서 그리고 또한 비트스트림 내의 헤더들 및 다른 필드들 내의 비트들을 사용하여, 인코딩될 수 있다. 게다가, 변환 동안, 디코더는, 위의 해결책들에 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 존재하지 않을 수 있다는 것에 대한 지식을 사용하여 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 하는지 여부를 결정할 수 있고, 그에 따라 코딩된 표현에 신택스 필드들을 포함시키거나 그로부터 제외시키는 것에 의해 코딩된 표현을 생성할 수 있다.
본 문서에서 설명되는 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에서 개시되는 구조들 및 이들의 구조적 등가물들을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의해 실행하기 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치들은, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 인공적으로 생성된 신호, 예를 들면, 머신에 의해 생성된(machine-generated) 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 실행되거나 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호 연결되는 다수의 컴퓨터들 상에서 실행되도록 배포될 수 있다.
본 문서에서 설명되는 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작용하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 논리 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치들이 또한 특수 목적 논리 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)으로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크들, 또는 광학 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 작동 가능하게 결합될 것이거나, 또는 둘 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들면, 내부 하드 디스크들 또는 이동식 디스크들; 자기 광학 디스크들; 및 CD ROM과 DVD-ROM 디스크들을 포함한, 모든 형태들의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 주제의 범위 또는 청구될 수 있는 것의 범위에 대한 제한들로서 해석되어서는 안 되며, 오히려 특정 기술들의 특정의 실시예들에 특정적일 수 있는 특징들에 대한 설명들로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 특허 문서에 설명되는 특정 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에서 설명되는 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (43)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    규칙에 따라 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 규칙은 상기 변환에서 사용되는 양자화 파라미터 테이블이 시퀀스 파라미터 세트에 포함된다는 것을 지정하고,
    상기 규칙은 상기 양자화 파라미터 테이블에서의 포인트 수를 표시하는 제1 신택스 요소가 상기 시퀀스 파라미터 세트에 포함되는지 여부 또는 어떻게 포함되는지가 상기 시퀀스 파라미터 세트 내의 제2 신택스 요소에 따라 제어된다는 것을 지정하는, 방법.
  2. 제1항에 있어서, 상기 양자화 파라미터 테이블은 크로마 양자화 파라미터 매핑 테이블인, 방법.
  3. 제1항에 있어서, 상기 제1 신택스 요소에 1을 더한 값은 상기 양자화 파라미터 테이블에서의 상기 포인트 수와 동일한, 방법.
  4. 제1항에 있어서, 상기 제2 신택스 요소의 값은 상기 양자화 파라미터 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 양자화 파라미터를 표시하는, 방법.
  5. 제1항에 있어서, 상기 양자화 파라미터 테이블에서의 상기 포인트 수의 최댓값은 상기 제2 신택스 요소의 값에 기초하는, 방법.
  6. 제1항에 있어서, 상기 규칙은 상기 양자화 파라미터 테이블에서의 상기 포인트 수의 최댓값 - 1이 최대 양자화 파라미터 값과, i 번째 크로마 양자화 파라미터 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 양자화 파라미터 사이의 차이라는 것을 지정하는, 방법.
  7. 제6항에 있어서, 상기 최댓값은 (63 - (qp_table_start_minus26[ i ] + 26))으로 설정되는, 방법.
  8. 제6항에 있어서, 상기 최댓값은 (64 - (qp_table_start_minus26[ i ] + 26))으로 설정되는, 방법.
  9. 비디오 데이터를 프로세싱하는 방법으로서,
    규칙에 따라 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 규칙은 시퀀스 파라미터 세트에 표시되는 서브픽처 수 - 1이 0보다 클 때 그리고 상기 시퀀스 파라미터 세트 내의 신택스 요소가 코딩된 계층 비디오 시퀀스에서의 상기 비디오의 첫 번째 비디오 픽처의 i 번째 서브픽처가 인루프 필터링 동작을 제외하는 디코딩 프로세스에서 상기 비디오의 두 번째 비디오 픽처로서 취급된다는 것을 나타낼 때 다음과 같은 2 개의 조건:
    (1) 상기 첫 번째 비디오 픽처 및 상기 첫 번째 비디오 픽처의 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 상기 두 번째 비디오 픽처가
    루마 샘플 단위의 픽처 폭,
    루마 샘플 단위의 픽처 높이,
    상기 서브픽처 수 - 1, 및
    0 내지 상기 서브픽처 수 - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, i 번째 서브픽처의 좌측 상단 코딩 트리 유닛의 수평 위치, 상기 i 번째 서브픽처의 상기 좌측 상단 CTU의 수직 위치, 상기 i 번째 서브픽처의 폭 - 1, 상기 i 번째 서브픽처의 높이 - 1, 상기 i 번째 서브픽처에 대한 상기 신택스 요소
    각각에 대해 동일한 값을 갖는다; 및
    (2) 상기 제1 참조 픽처 리스트 또는 상기 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 상기 두 번째 비디오 픽처가 상기 서브픽처 수 - 1의 값이 0과 동일한 계층 간 참조 픽처이다
    중 하나가 참이라는 것을 지정하는, 방법.
  10. 비디오 데이터를 프로세싱하는 방법으로서,
    규칙에 따라 비디오 블록을 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 규칙은 아핀 코딩 툴이 인에이블되고 서브블록 기반 시간적 모션 벡터 예측 코딩 툴이 디스에이블될 때 서브블록 병합 후보들의 최대 수가 수 N이 되도록 허용되지 않는다는 것을 지정하는, 방법.
  11. 제10항에 있어서, N=0인, 방법.
  12. 제10항에 있어서, N은 0보다 큰, 방법.
  13. 제10항에 있어서, 시퀀스 파라미터 세트에서 지원되는 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수 - 5의 범위는 SbTMVP 코딩 툴이 인에이블되는지 디스에이블되는지를 나타내는 상기 시퀀스 파라미터 세트 내의 신택스 요소의 값에 관계없이 [0, 4]로부터의 것인, 방법.
  14. 제10항에 있어서, 상기 비트스트림은 상기 아핀 코딩 툴이 인에이블될 때 1 내지 5(경계 포함)의 범위 내로부터의 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수의 값을 포함하는 적합성 비트스트림인, 방법.
  15. 제10항에 있어서, 상기 비트스트림은 상기 아핀 코딩 툴이 디스에이블될 때 0 내지 1(경계 포함)의 범위 내로부터의 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수의 값을 포함하는 적합성 비트스트림인, 방법.
  16. 제10항에 있어서, 상기 비트스트림이 병합 서브블록 동작이 인에이블되는지 여부를 나타내는 신택스 요소를 포함하는지 여부는 상기 아핀 코딩 툴이 인에이블되는지 여부에 기초하고 상기 서브블록 병합 후보들의 최대 수에 기초하지 않는, 방법.
  17. 비디오 데이터를 프로세싱하는 방법으로서,
    하나 이상의 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 비트스트림은 포맷 규칙을 준수하고,
    상기 포맷 규칙은 아핀 병합 모드가 인에이블되는지 여부를 나타내는 신택스 요소가 상기 비트스트림에 있는지 여부를 지정하는, 방법.
  18. 제17항에 있어서, 상기 포맷 규칙은 상기 아핀 병합 모드가 시퀀스 파라미터 세트에서 인에이블되는지 여부에 기초하여 상기 신택스 요소가 상기 비트스트림에서 선택적으로 표시된다는 것을 지정하는, 방법.
  19. 제17항에 있어서, 상기 포맷 규칙은 상기 신택스 요소가 상기 아핀 병합 모드가 인에이블된다는 것을 나타낼 때 서브블록 병합 후보들의 최대 수가 상기 비트스트림에 표시된다는 것을 지정하는, 방법.
  20. 비디오 데이터를 프로세싱하는 방법으로서,
    규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 규칙은 다음과 같은 서브픽처 관련 신택스 요소들:
    동일한 시퀀스 파라미터 세트를 참조하는 모든 서브픽처들이 동일한 치수를 갖는지 여부를 나타내는 제1 신택스 요소,
    상기 동일한 치수를 갖는 모든 서브픽처들의 공통 폭 및 공통 높이를 나타내는 제2 신택스 요소
    중 하나 이상을 표시하거나 시퀀스 파라미터 세트로부터 생략하도록 지정하고, 또는
    모든 서브픽처들이 상기 동일한 치수를 갖는 것은 아닐 때 제2 규칙에 따른 하나 이상의 신택스 요소가 생략된다는 것을 지정하는, 방법.
  21. 제20항에 있어서, 상기 규칙은:
    numSubpicCols로 표시되는 서브픽처 열 수가 ( sps_pic_width_max_in_luma_samples / ( ( sps_uniform_subpic_width_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출되고,
    numSubpicRows로 표시되는 서브픽처 행 수가 ( sps_pic_height_max_in_luma_samples / ( ( sps_uniform_subpic_height_minus1 + 1 ) * CtbSizeY ) ) )와 동일한 것으로 도출된다는 것을 지정하며,
    sumSubpics로 표시되는 서브픽처 수가 numSubpicCols * numSubpicRows와 동일한 것으로 도출되는, 방법.
  22. 제20항에 있어서, 상기 규칙은 sps_num_subpics_minus1이 상기 시퀀스 파라미터 세트로부터 제외된다는 것을 지정하고, sps_num_subpics_minus1의 값은 numSubpics - 1과 동일한 것으로 추론되는, 방법.
  23. 제20항에 있어서, 상기 규칙은 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]에 대한 값들이, 제각기, ( sps_uniform_subpic_width_minus1 + 1) * ( i % numSubpicCols ), ( sps_uniform_subpic_height_minus1 + 1) * ( i / numSubpicCols ), sps_uniform_subpic_width_minus1, 및 sps_uniform_subpic_height_minus1과 동일한 것으로 추론된다는 것을 지정하는, 방법.
  24. 제20항에 있어서, 상기 규칙은 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 각각의 i 값에 대해, sps_independent_subpics_flag가 0과 동일할 때, sps_subpic_treated_as_pic_flag[ i ] 및 sps_loop_filter_across_subpic_enabled_flag[ i ]가 상기 시퀀스 파라미터 세트에 표시된다는 것을 지정하는, 방법.
  25. 제20항에 있어서, 상기 제2 규칙은 현재 서브픽처들 계층 시그널링을 사용하도록 지정하는, 방법.
  26. 제20항에 있어서, 상기 규칙은 sps_pic_width_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_width_minus1이 상기 시퀀스 파라미터 세트로부터 제외되고 0과 동일한 것으로 추론된다는 것을 지정하는, 방법.
  27. 제20항에 있어서, 상기 규칙은 sps_pic_height_max_in_luma_samples가 CtbSizeY보다 작거나 같을 때, sps_uniform_subpic_height_minus1이 상기 시퀀스 파라미터 세트로부터 제외되고 0과 동일한 것으로 추론된다는 것을 지정하는, 방법.
  28. 제20항에 있어서, 상기 규칙은 sps_uniform_subpic_width_minus1, sps_uniform_subpic_height_minus1, sps_subpic_ctu_top_left_x[ i ], sps_subpic_ctu_top_left_y[ i ], sps_subpic_width_minus1[ i ], 및 sps_subpic_height_minus1[ i ]가 ue(v) 코딩된다는 것을 지정하는, 방법.
  29. 제20항에 있어서, 상기 규칙은 sps_uniform_subpic_width_minus1 및 sps_uniform_subpic_height_minus1이, 제각기, sps_subpic_width_minus1[ i ] 및 sps_subpic_height_minus1[ i ]와 동일한 길이로, u(v) 코딩된다는 것을 지정하는, 방법.
  30. 제20항에 있어서, 상기 시퀀스 파라미터 세트는:
    상기 비디오의 모든 서브픽처들이, 제각기, 동일한 폭 및 높이를 갖는지 여부를 나타내는 제1 신택스 요소,
    모든 서브픽처들에 대한 공통 폭을 나타내는 제2 신택스 요소, 및
    모든 서브픽처들에 대한 공통 높이를 나타내는 제3 신택스 요소
    를 포함하는, 방법.
  31. 제20항에 있어서,
    상기 규칙은 시퀀스 파라미터 세트에 표시되는 서브픽처 수 - 1이 0보다 클 때 그리고 상기 시퀀스 파라미터 세트 내의 신택스 요소가 코딩된 계층 비디오 시퀀스에서의 상기 비디오의 첫 번째 비디오 픽처의 i 번째 서브픽처가 인루프 필터링 동작을 제외하는 디코딩 프로세스에서 상기 비디오의 두 번째 비디오 픽처로서 취급된다는 것을 나타낼 때 다음과 같은 2 개의 조건:
    (1) 상기 첫 번째 비디오 픽처 및 상기 첫 번째 비디오 픽처의 제1 참조 픽처 리스트 또는 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 상기 두 번째 비디오 픽처가
    루마 샘플 단위의 픽처 폭,
    루마 샘플 단위의 픽처 높이,
    상기 서브픽처 수 - 1, 및
    0 내지 상기 서브픽처 수 - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, 제각기, i 번째 서브픽처의 좌측 상단 코딩 트리 유닛의 수평 위치, 상기 i 번째 서브픽처의 상기 좌측 상단 CTU의 수직 위치, 상기 i 번째 서브픽처의 폭 - 1, 상기 i 번째 서브픽처의 높이 - 1, 상기 i 번째 서브픽처에 대한 상기 신택스 요소, 및 상기 i 번째 서브픽처에 대한 식별자 값
    각각에 대해 동일한 값을 갖는다; 및
    (2) 상기 제1 참조 픽처 리스트 또는 상기 제2 참조 픽처 리스트에서의 각각의 활성 엔트리에 의해 참조되는 상기 두 번째 비디오 픽처가 상기 서브픽처 수 - 1의 값이 0과 동일한 계층 간 참조 픽처이다
    중 하나가 참이라는 것을 지정하는, 방법.
  32. 비디오 데이터를 프로세싱하는 방법으로서,
    하나 이상의 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 폭이 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 열의 폭 - 1을 나타내는 상기 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 폭 - 1과 동일하다고 결정하는 단계; 및
    상기 결정에 기초하여 상기 변환을 수행하는 단계
    를 포함하는, 방법.
  33. 비디오 데이터를 프로세싱하는 방법으로서,
    하나 이상의 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 위해, 루마 샘플 단위의 픽처 파라미터 세트를 참조하는 각각의 비디오 픽처의 높이가 루마 코딩 트리 블록 크기보다 작거나 같은 것에 응답하여 코딩 트리 블록 단위의 i 번째 타일 행의 높이 - 1을 나타내는 상기 픽처 파라미터 세트 내의 제1 신택스 요소가 코딩 트리 블록 단위의 비디오 픽처의 높이 - 1과 동일하다고 결정하는 단계; 및
    상기 결정에 기초하여 상기 변환을 수행하는 단계
    를 포함하는, 방법.
  34. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 방법.
  35. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하며, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 방법.
  36. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림으로부터 상기 비디오를 디코딩하는 단계를 포함하는, 방법.
  37. 비디오 디코딩 장치로서, 제1항 내지 제36항 중 하나 이상의 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
  38. 비디오 인코딩 장치로서, 제1항 내지 제36항 중 하나 이상의 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
  39. 컴퓨터 명령어들이 저장된 컴퓨터 프로그램 제품으로서, 상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제36항 중 어느 한 항에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
  40. 비일시적 컴퓨터 판독 가능 저장 매체로서, 제1항 내지 제36항 중 어느 한 항의 방법에 따라 생성되는 비트스트림을 저장하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  41. 비일시적 컴퓨터 판독 가능 저장 매체로서, 프로세서로 하여금 제1항 내지 제36항 중 어느 한 항에 기재된 방법을 구현하게 하는 명령어들을 저장하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  42. 비트스트림 생성 방법으로서,
    제1항 내지 제36항 중 어느 한 항에 기재된 방법에 따라 비디오의 비트스트림을 생성하는 단계, 및
    상기 비트스트림을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계
    를 포함하는, 방법.
  43. 본 문서에서 설명된, 방법, 장치, 개시된 방법에 따라 생성되는 비트스트림 또는 시스템.
KR1020227041438A 2020-05-27 2021-05-26 비디오 코딩에서의 서브픽처들 및 타일들의 사용 KR20230016047A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063030726P 2020-05-27 2020-05-27
US63/030,726 2020-05-27
PCT/US2021/034259 WO2021242862A1 (en) 2020-05-27 2021-05-26 Using subpictures and tiles in video coding

Publications (1)

Publication Number Publication Date
KR20230016047A true KR20230016047A (ko) 2023-01-31

Family

ID=78722714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227041438A KR20230016047A (ko) 2020-05-27 2021-05-26 비디오 코딩에서의 서브픽처들 및 타일들의 사용

Country Status (6)

Country Link
US (2) US20230128511A1 (ko)
EP (1) EP4140133A4 (ko)
JP (2) JP2023528592A (ko)
KR (1) KR20230016047A (ko)
CN (1) CN115668926A (ko)
WO (1) WO2021242862A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102106103B1 (ko) * 2015-07-03 2020-05-04 에스케이 텔레콤주식회사 고 해상도 영상에서의 영상 추출 장치 및 방법
CN115967801A (zh) * 2018-01-25 2023-04-14 弗劳恩霍夫应用研究促进协会 有效子图片提取
SG11202101799WA (en) * 2018-09-21 2021-03-30 Huawei Tech Co Ltd Apparatus and method for inverse quantization
WO2020102034A1 (en) * 2018-11-14 2020-05-22 Tencent America LLC Method and apparatus for video coding
US11363307B2 (en) * 2019-08-08 2022-06-14 Hfi Innovation Inc. Video coding with subpictures
US20220353536A1 (en) * 2019-08-22 2022-11-03 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
US12022123B2 (en) * 2019-09-11 2024-06-25 Sharp Kabushiki Kaisha Systems and methods for signaling subpicture information in video coding
WO2021225338A1 (ko) * 2020-05-04 2021-11-11 엘지전자 주식회사 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
EP4140133A1 (en) 2023-03-01
EP4140133A4 (en) 2023-08-23
US20240129541A1 (en) 2024-04-18
CN115668926A (zh) 2023-01-31
JP2023528592A (ja) 2023-07-05
JP2024015107A (ja) 2024-02-01
WO2021242862A1 (en) 2021-12-02
US20230128511A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
WO2021197445A1 (en) Constraints on adaptation parameter set syntax elements
KR20220152212A (ko) 양자화 파라미터를 위한 높은 레벨의 비트스트림 신택스
KR20220131250A (ko) 크로마 컴포넌트에 대한 디블로킹 파라미터
KR20220143840A (ko) 비디오 비트스트림에서의 참조 픽처 정보 시그널링
KR20220143857A (ko) 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링
JP2023518440A (ja) 参照ピクチャリサンプリング
WO2021244420A1 (en) Palette mode with local dual tree modetype definition
US20240073456A1 (en) Transform Skip Residual Coding
KR20220130149A (ko) 인 루프 필터링과 비디오 슬라이스들 간의 상호작용
KR20220131249A (ko) 로컬 이중 트리용 팔레트 모드
WO2021208994A1 (en) Sub-bitstream extraction
KR20230016047A (ko) 비디오 코딩에서의 서브픽처들 및 타일들의 사용
KR102616383B1 (ko) 비디오 픽처 헤더의 필터 파라미터 시그널링
WO2021197407A1 (en) Video coding using adaptation parameter sets
WO2021164785A1 (en) Coding of pictures containing slices and tiles
KR20220143832A (ko) 서브픽처 레벨에 기초한 분할 계산
KR20220163392A (ko) 비디오 코딩에서 디블로킹 시그널링
KR20220159987A (ko) 비디오 코딩에서의 적합성 윈도우 파라미터

Legal Events

Date Code Title Description
A201 Request for examination