KR20220131257A - 비디오 비트스트림내에 서브픽처 정보 (subpicture information) 시그널링 - Google Patents
비디오 비트스트림내에 서브픽처 정보 (subpicture information) 시그널링 Download PDFInfo
- Publication number
- KR20220131257A KR20220131257A KR1020227026836A KR20227026836A KR20220131257A KR 20220131257 A KR20220131257 A KR 20220131257A KR 1020227026836 A KR1020227026836 A KR 1020227026836A KR 20227026836 A KR20227026836 A KR 20227026836A KR 20220131257 A KR20220131257 A KR 20220131257A
- Authority
- KR
- South Korea
- Prior art keywords
- equal
- flag
- video
- slice
- picture
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
비디오 인코딩 또는 비디오 디코딩을 포함하는 비디오 처리를 위한 방법들, 장치들, 시스템들이 기술된다. 일 예시적 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 동작(operation)이 코딩된 레이어 비디오 시퀀스(coded layer video sequence)의 서브픽처의 경계(boundary of a subpicture)를 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 픽처 내 서브픽처들의 수에 대응하여 선택적으로 포함됨을 명시하는 포맷 규칙을 따른다.
Description
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2020년 2월 14일에 제출된 국제 출원 No. PCT/CN2020/075194의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원들의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 영상 및 비디오 코딩에 관한 것이다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오의 코딩된 표현 및 상기 비디오의 픽셀 값들 사이의 변환이 실시되는 비디오 처리를 위한 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기술들을 개시한다.
일 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 상기 비디오 슬라이스의 슬라이스 타입이 상기 비디오 픽처에 대한 픽처 헤더로부터의 특정 정보가 상기 비디오 슬라이스의 슬라이스 헤더에 의해 계승되는 방식을 결정한다는 것을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 상기 비디오 슬라이스의 슬라이스 타입이 비디오 슬라이스 헤더 내의 제1 신택스 요소의 값들 결정한다는 것을 명시하는 포맷 규칙을 따른다. 상기 제1 신택스 요소는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 상기 비디오 슬라이스의 슬라이스 타입이 P 타입이고 시간적 모션 벡터 예측이 활성화되는 경우, 동일 위치 참조 픽처 리스트 내의 참조 픽처에 대한 참조 픽처 리샘플링 (RPR: reference picture resampling)의 사용이 비활성화됨을 명시하는 포맷 규칙을 따른다. 상기 참조 픽처는 상기 시간적 모션 벡터 예측을 위해 사용되는 상기 비디오 슬라이스의 동일 위치 픽처의 참조 인덱스에 의해 지시된다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 비디오 슬라이스 헤더 내의 신택스 요소가 상기 비디오 슬라이스가 참조 픽처 리스트 0와 동일 위치가 아님을 지시하는 경우, 상기 비디오 슬라이스의 슬라이스 타입이 P 타입을 배제한다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 코딩된 레이어 비디오 시퀀스 내의 서브픽처의 경계 양단으로(across) 동작이 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 픽처 내의 서브픽처들의 수에 대응하여 선택적으로 포함된다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 상기 비디오 픽처 내의 서브픽처들의 수가 상기 비트스트림 내의 제약 플래그에 의해 제약된다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 서브픽처 내의 슬라이스들의 수가 슬라이스의 폭을 지시하는 신택스 요소를 시그널링하는 방식을 결정한다고 명시하는 포맷 규칙을 따르며, 여기서 상기 슬라이스의 폭은 타일 열들의 수로 명시된다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을, 상기 비디오 픽처 내의 상기 하나 또는 그 이상의 서브픽처들 각각이 단일한 슬라이스를 포함하는지 여부가 제약 플래그에 기반하여 결정된다고 명시하는 포맷 규칙에 따라, 실시하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비디오 픽처들 중 적어도 하나는 하나 또는 그 이상의 서브픽처들을 포함한다. 상기 비트스트림은, 상기 변환의 서브픽처 서브 비트스트림 추출 과정 동안 하나 또는 그 이상의 대상 서브픽처들의 출력 서브 비트스트림을 결정하기 위해, 상이한 비디오 픽처들을 가로지르는 각 대상 서브픽처가 동일한 서브픽처 인덱스를 사용한다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 픽처들을 포함하는 비디오의 비트스트림으로부터 하나 또는 그 이상의 대상 서브픽처들의 서브 비트스트림을 추출하여 출력 서브 비트스트림을 결정하는 단계를 포함한다. 상기 비디오 픽처들 중 적어도 하나는 하나 또는 그 이상의 서브픽처들을 포함하며, 그리고 상기 출력 서브 비트스트림은 상기 하나 또는 그 이상의 대상 서브픽처들이 상기 출력 서브 비트스트림 내의 단일한 서브픽처로 표현된다고 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 순시 디코딩 리프레쉬 (IDR: instantaneous decoding refresh) 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 참조 픽처 리스트와 연관된 하나 또는 그 이상의 신택스 요소들이 상기 IDR 픽처의 슬라이스 헤더에 존재할 것을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 루마 비디오 블록들 및 크로마 비디오 블록들을 포함하는 비디오 및 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 루마 비디오 블록들은 루마 분할 트리들에 따라 분할되고, 상기 크로마 비디오 블록들은 크로마 분할 트리들에 따라 분할된다. 상기 비트스트림은 상기 루마 분할 트리들을 지시하는 루마 블록 분할 정보 및 상기 크로마 분할 트리들을 지시하는 크로마 블록 분할 정보를 포함한다. 상기 비트스트림은 상기 크로마 블록 분할 정보가 상기 루마 블록 분할 정보와 상이하도록 허용됨을 명시하는 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 하나 또는 그 이상의 신택스 구조들이 일반적인 제약조건 정보를 포함하는 신택스 요소의 제약 플래그에 기초하여 제약됨을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 상기 비디오 슬라이스의 슬라이스 타입이 상기 비디오 픽처를 위한 픽처 헤더로부터의 특정 정보가 상기 비디오 슬라이스의 슬라이스 헤더에 의해 계승되는 방식을 결정함을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 신택스 규칙을 따른다. 상기 규칙은 비디오 픽처 레벨에서의 제1 지시자(indicator) 및 상기 비디오 영역에서의 제2 지시자가 상기 변환 동안 시간적 모션 벡터 예측 코딩 툴의 사용을 지시한다고 명시한다. 상기 규칙은 상기 제1 지시자 및/또는 상기 제2 지시자가 상기 코딩된 표현에서 생략되는 조건을 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역 내 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 것을 포함하며, 이때 상기 코딩된 표현은 신택스 규칙을 따르고, 상기 신택스 규칙은 상기 비디오 영역 레벨에서의 헤더의 정보가 상기 비디오 유닛 레벨에서의 헤더의 정보로 추론됨을 명시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현 내의 하나 또는 그 이상의 필드들은 상기 비디오 유닛 내의 서브픽처들의 수를 지시한다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 비디오 유닛 내의 서브픽처들의 수를 지시하는 제2 필드의 값이 제2 필드가 크로스 서브픽처 코딩 툴의 상기 변환에 대한 적용가능성을 지시하는지 여부를 제어함을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 비디오 유닛 별 서브픽처들의 수가 상기 코딩된 표현 내의 신택스 요소의 값을 제어함을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 단일한 비디오 슬라이스가 비디오 유닛에서 발생하는지 여부를 지시하는 필드의 값이 상기 비디오의 사각형 슬라이스들의 코딩 특성을 제어함을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 레이어 방향 비디오 시퀀스의 상기 코딩된 표현 내의 상이한 픽처들을 가로지르는 추출된 서브픽처들이 동일한 서브픽처 인덱스를 가지고 있다는 신택스 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 서브픽처 서브 비트스트림에 대해 추출된 서브 비트스트림이 단일 서브픽처의 포맷을 따른다는 신택스 규칙을 따른다.
다른 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 코딩된 표현 내의 신택스 구조 내 하나 또는 그 이상의 신택스 요소들의 발생을 제어하는 하나 또는 그 이상의 제약 플래그들의 포함을 명시하는 포맷 규칙을 따른다.
또 다른 예시적 측면에서, 비디오 인코더 장치가 개시된다. 상기 비디오 인코더는 상기 기술된 방법들을 실행하는 프로세서를 포함한다.
또 다른 예시적 측면에서, 비디오 디코더 장치가 개시된다. 상기 비디오 디코더는 상기 기술된 방법들을 실행하는 프로세서를 포함한다.
또 다른 예시적 측면에서, 코드를 저장하는 컴퓨터 판독 가능 매체가 개시된다. 상기 코드는 여기서 개시된 방법들 중 하나를 프로세서로 실행 가능한 코드의 형태로 구현한다.
이러한 그리고 기타 특성들이 본 문서 전체에 걸쳐 기술된다.
도 1은 예시적인 비디오 처리 시스템의 블록도이다.
도 2는 비디오 처리 장치의 블록도이다.
도 3은 비디오 처리의 예시적 방법에 대한 순서도이다.
도 4는 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 5는 본 개시의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 6은 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 7은 본 기술에 따른 비디오 처리를 위한 방법의 순서도 표현이다.
도 8은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 9는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 10은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 11은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 12는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 13은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 14는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 15는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 16은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 17은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 18은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 19는 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 순서도 표현이다.
도 2는 비디오 처리 장치의 블록도이다.
도 3은 비디오 처리의 예시적 방법에 대한 순서도이다.
도 4는 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 5는 본 개시의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 6은 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 7은 본 기술에 따른 비디오 처리를 위한 방법의 순서도 표현이다.
도 8은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 9는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 10은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 11은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 12는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 13은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 14는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 15는 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 16은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 17은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 18은 본 기술에 따른 비디오 처리를 위한 다른 방법의 순서도 표현이다.
도 19는 본 기술에 따른 비디오 처리를 위한 또 다른 방법의 순서도 표현이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용된 것으로 각 섹션에 개시된 기술들 및 실시예들의 적용을 해당 섹션으로 한정하지 않는다. 또한, H.266용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다. 게다가, 일부 기술들은 VVC 표준의 현재 버전이 어떻게 (강조된) 새로운 텍스트의 삽입 또는 (취소선으로 표시된) 현재 텍스트의 삭제로 수정될 수 있는지를 보여주는 예들을 사용하여 설명된다.
본 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 비디오 코딩에서 하이 레벨 신택스 (HLS: high level syntax) 및 관련 기술들에 관한 것이다. HEVC와 같은 기존 비디오 코딩 표준 또는 완성될 표준 (다기능 비디오 코딩(VVC: Versatile Video Coding))에 적용될 수 있다. 미래의 비디오 코딩 표준들 또는 비디오 코덱에도 적용될 수 있다.
비디오 코딩 표준들은 잘 알려진 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 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. JVET 회의는 매 분기마다 동시에 개최되며, 새로운 코딩 표준은 HEVC 대비 비트 레이트 50% 감소를 목표로 한다. 2018년 4월 새로운 코딩 표준은 VVC라는 공식적인 이름을 가지게 되었고, 당시에 VVC 테스트 모델 (VTM)의 첫 번째 버전이 출시되었다. VVC 표준화에 대한 지속적인 노력이 있는 관계로, 매 JVET 회의 마다 새로운 코딩 기술들이 VVC 표준에 채택되고 있다.
예시적 정의들 (Example Definitions)
아래의 정의들이 본 문서에서 사용된다.
액세스 유닛(access unit (AU)): 상이한 레이어들에 속하고 DPB로부터의 출력에 대해 동일한 시간과 연관되는 코딩된 픽처들을 포함하는 PU들의 세트.
적응적 루프 필터 (adaptive loop filter (ALF)): 디코딩 과정의 일부로 적용되며 APS에서 운반되는 파라미터들로 제어되는 필터링 과정.
AC 변환 계수: 두 차원 중 적어도 하나에서 주파수 인덱스가 0이 아닌(non-zero) 임의의 변환 계수.
ALF APS: ALF 프로세스를 제어하는 APS.
적응 파라미터 세트 (adaptation parameter set (APS): 슬라이스 헤더들에서 발견되는 제로 또는 그 이상의 신택스 요소들에 의해 결정되는 제로 또는 그 이상의 슬라이스들에 적용되는 신택스 요소들을 포함하는 신택스 구조.
(특정 픽처의) 연관된 IRAP 픽처: (존재하는 경우) 상기 특정 픽처와 동일한 nuh_layer_id 값을 가지는 디코딩 순서 상의 이전 IRAP 픽처.
연관된 비 VCL NAL 유닛: (존재하는 경우) VCL NAL 유닛에 대한 비 VCL NAL 유닛으로 상기 VCL NAL 유닛은 상기 비 VCL NAL 유닛의 연관된 VCL NAL 유닛이다.
연관된 VCL NAL 유닛: EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT, RSV_NVCL_27와 같거나 UNSPEC_30..UNSPEC_31의 범위 내의 nal_unit_type을 가지는 비 VCL NAL 유닛에 대한 디코딩 순서 상의 선행 VCL NAL 유닛, 그렇지 않은 경우 디코딩 순서 상의 다음 VCL NAL 유닛.
빈(bin): 빈 스트링의 1 비트.
이진화: 신택스 요소의 모든 가능한 값들에 대한 빈 스트링들의 세트.
이진화 과정: 신택스 요소의 모든 가능한 값들을 빈 스트링들의 세트로 매핑시키는 고유한 과정.
이진 분할: 샘플들의 사각형 MxN 블록에 대한 두 개의 블록들로의 분할, 여기서 수직 분할의 결과는 제1 (M/2)xN 블록 및 제2 (M/2)xN 블록이며, 수평 분할의 결과는 제1 Mx(N/2) 블록 및 제2 Mx(N/2) 블록이다.
빈 스트링: 신택스 요소의 이진화로부터의 신택스 요소들의 값들의 중간(intermediate) 이진 표현.
양 예측(B) 슬라이스: 각 블록의 샘플 값들을 예측하기 위해 최대 두 개의 모션 벡터들 및 참조 인덱스들과 함께 인트라 예측을 사용하거나 인터 예측을 사용하여 디코딩되는 슬라이스.
비트스트림: 하나 또는 그 이상의 코딩된 비디오 시퀀스들(coded video sequences (CVSs))을 형성하는 AU들의 시퀀스의 표현을 형성하는, NAL 유닛 스트림 또는 바이트 스트림 형식의, 비트들의 시퀀스.
블록: 샘플들의 MxN (M개의 열 및 N개의 행) 어레이, 또는 변환 계수들의 MxN 어레이.
블록 벡터: 현재 코딩 블록의 좌표들로부터 동일한 디코딩된 픽처 내의 예측 블록의 좌표들로 오프세트를 제공하는 IBC 예측을 위해 사용되는 이차원 벡터.
바이트(byte): 비트 값들의 시퀀스로 작성되거나 해독되는 경우, 제일 왼쪽 및 제일 오른쪽 비트들이 각각 가장 중요한 비트 및 가장 덜 중요한 비트들을 표현하는, 8비트 시퀀스.
바이트 정렬: 비트스트림 내의 위치는, 상기 위치가 상기 비트스트림 내의 첫 번째 비트의 위치로부터 8 비트의 정수 배인 경우 바이트 정렬되며, 비트 또는 바이트 또는 신택스 요소는 그것이 비트스트림 내에서 나타나는 위치가 바이트 정렬되는 경우 바이트 정렬되었다고 얘기된다.
바이트스트림: 시작 코드 프리픽스들 및 NAL 유닛들을 포함하는 NAL 유닛 스트림의 캡슐화(encapsulation).
할 수 있다 (can) : 허용되었지만 필수적으로 요청되지는 않는 동작(behavior)을 가리키는 데에 사용되는 용어.
크로마: 기호 Cb 및 Cr로 표현되는 형용사로, 샘플 어레이 또는 단일 샘플이 일차 색상들과 관련된 두 개의 색차 시그널들 중 하나를 표현하고 있음을 명시한다. 참고할 사항으로, 종종 용어 크로미넌스와 연관되는 선형 광 전송 특성들의 사용을 암시하는 것을 방지하기 위해 크로미넌스 보다는 크로마라는 용어가 사용된다.
클린 랜덤 액세스 (clean random access (CRA)): 코딩된 픽처가 CRA 픽처인 PU.
클린 랜덤 액세스 (CRA) 픽처: 각각의 VCL NAL 유닛이 CRA_NUT와 같은 nal_unit_type을 가지는 IRAP 픽처. 참고할 사항으로, CRA 픽처는 그것의 디코딩 과정에서 인터 예측을 위해 자신 이외의 다른 어떤 픽처들도 참조하지 않으며, 디코딩 순서 상 비트스트림 내의 첫 번째 픽처일 수 있거나 비트스트림에서 뒤에 나타날 수 있다. CRA 픽처는 관련 RADL 또는 RASL 픽처들을 가질 수 있다. CRA 픽처가 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 경우, 상기 연관된 RASL 픽처들은 디코더에 의해 출력되지 않는다. 왜냐하면 그것들은 비트스트림에 존재하지 않는 픽처들에 대한 참조들을 포함할 수 있는 관계로 디코딩되지 않을 수 있기 때문이다.
코딩된 레이어 비디오 시퀀스 (coded layer video sequence (CLVS)): nuh_layer_id와 같은 값을 가지는 PU들의 시퀀스로, 디코딩 순서상, CLVSS PU 및 뒤따르는 제로 또는 그 이상의 PU들로 구성된다. 이때 상기 PU들은 CLVSS PU가 아니며, 모든 후속 PU들은 포함하지만 CLVSS PU인 후속 PU는 전혀 포함하지 않는다. 참고할 사항으로, CLVSS PU는 IDR PU, CRA PU 또는 GDR PU일 수 있다. NoOutputBeforeRecoveryFlag의 값은 각 IDR PU에 대해, 그리고 디코딩 순서 상 비트스트림의 레이어에서 첫 번째 PU 또는 디코딩 순서 상 EOS NAL 유닛을 따르는 비트스트림의 레이어에서 첫 번째 PU인 각 CRA 또는 GDR PU 에 대해 1과 같다.
코딩된 레이어 비디오 시퀀스 시작(CLVSS) PU: 코딩된 픽처가 CLVSS 픽처인 PU.
코딩된 레이어 비디오 시퀀스 시작(CLVSS) 픽처: 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 IRAP 픽처 또는 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 GDR 픽처인 코딩된 픽처.
코딩된 픽처: AU 내에 nuh_layer_id의 특정 값을 가지는 VCL NAL 유닛들을 포함하는 픽처의 코딩된 표현으로, 상기 픽처의 모든 CTU들을 포함한다.
코딩된 픽처 버퍼(coded picture buffer (CPB)): 가상 참조 디코더에서 명시되는 디코딩 순서로 DU들을 포함하는 선입 선출 버퍼.
코딩된 표현: 그것의 코딩된 형태로 표현되는 데이터 요소.
코딩된 비디오 시퀀스(coded video sequence (CVS)): 디코딩 순서에 따라 CVSS AU, 그리고 모든 후속 AU들을 포함하지만 CVSS AU인 후속 AU는 전혀 포함하지 않는, CVSS AU가 아닌 제로 또는 그 이상의 AU들로 구성되는 AU들의 시퀀스.
코딩된 비디오 시퀀스 시작(CVSS) AU: CVS 내의 각 레이어에 대한 PU가 있고 각 PU 내의 코딩된 픽처가 CLVSS 픽처인 AU.
코딩 블록: M 및 N의 일부 값들에 대한 샘플들의 MxN 블록으로, CTB를 코딩 블록들로 분할하는 것은 파티셔닝이다.
코딩 트리 블록(coding tree block (CTB)): N의 일부 값에 대한 샘플들의 NxN 블록으로, 컴포넌트를 CTB들로 분할하는 것이 파티셔닝이다.
코딩 트리 유닛(coding tree unit (CTU)): 루마 샘플들의 CTB, 세 개의 샘플 어레이를 가지는 픽처의 크로마 샘플들에 해당하는 두 개의 CTB들, 또는 샘플들을 코딩하는 데에 사용되는 신택스 구조들 및 세 개의 별개의 컬러 평면들을 사용하여 코딩되는 픽처 또는 모노크롬 픽처의 샘플들의 CTB.
코딩 유닛(coding unit (CU)): 루마 샘플들의 코딩 블록, 세 개의 샘플 어레이를 가지는 픽처의 크로마 샘플들에 해당하는 두 개의 코딩 블록들, 또는 샘플들을 코딩하는 데에 사용되는 신택스 구조들 및 세 개의 별개의 컬러 평면들을 사용하여 코딩되는 픽처 또는 모노크롬 픽처의 샘플들의 코딩 블록.
컴포넌트: 어레이 또는 4:2:0, 4:2:2 또는 4:4:4 컬러 포맷으로 픽처를 구성하는 세 어레이들 (루마 및 두 개의 크로마) 중 하나로부터의 단일 샘플 또는 상기 어레이 또는 모노크롬 포맷으로 픽처를 구성하는 어레이의 단일 샘플.
컨택스트 변수: 빈의 적응적 이진 산술 디코딩 프로세스에 대해 최근 디코딩된 빈들을 포함하는 수학식에 의해 명시되는 변수.
디블로킹 필터: 블록들 사이의 경계들에 시각적 아티팩트들의 발생(appearance)을 최소화하기 위해 디코딩 과정의 일부로 적용되는 필터링 과정.
디코딩된 픽처: 상기 디코딩 과정을 코딩된 픽처에 적용하여 산출된 픽처.
디코딩된 픽처 버퍼(decoded picture buffer (DPB)): 참조, 출력 재정렬, 또는 가상 참조 디코더에 대해 지정된 출력 지연을 위해 디코딩된 픽처들을 보유하는 버퍼.
디코더: 디코딩 프로세스의 실시예.
디코딩 순서: 신택스 요소들이 디코딩 프로세스에 의해 처리되는 순서.
디코딩 프로세스: 비트스트림을 판독하고 그것으로부터 디코딩된 픽처들을 도출하는, 본 명세서에서 명시된 프로세스.
디코딩 유닛(decoding unit(DU)): DecodingUnitHrdFlag가 0과 같은 경우 AU 또는 그 외의 경우 AU의 서브세트로, AU 내의 하나 또는 그 이상의 VCL NAL 유닛들 및 연관된 비 VCL NAL 유닛들로 구성된다.
에뮬레이션 방지 바이트: NAL 유닛 내의 바이트 정렬된 연속적인 바이트들의 어떤 시퀀스도 시작 코드 프리픽스를 포함할 수 없는 방식으로 비트스트림의 신택스 요소들이 바이트 값들의 특정 패턴들을 형성하는 경우, NAL 유닛 내에 존재하는 0x03과 같은 바이트.
인코더: 인코딩 프로세스의 실시예.
인코딩 프로세스: 본 명세서에 부합하는 비트스트림을 산출하는, 본 명세서에 명시되지 않은 프로세스.
필터 데이터 NAL 유닛들: FD_NUT와 같은 nal_unit_type을 가지는 NAL 유닛들.
플래그: 0과 1 이라는 두 가능한 값들 중 하나를 취할 수 있는 단일 비트 신택스 요소 또는 변수.
주파수 인덱스: 디코딩 프로세스에서 변환의 적용 이전에 변환 계수와 연관되는 1차원 또는 2차원 인덱스.
점진적 디코딩 리프레쉬(gradual decoding refresh(GDR)) AU: 각각의 존재하는 PU 내의 코딩된 픽처가 GDR 픽처인 AU.
점진적 디코딩 리프레쉬(GDR) PU: 코딩된 픽처가 GDR 픽처인 PU.
점진적 디코딩 리프레쉬(GDR) 픽처: 각각의 VCL NAL 유닛이 GDR_NUT와 같은 nal_unit_type을 가지는 픽처.
가상 참조 디코더(hypothetical reference decocer (HRD)): 인코딩 프로세스가 산출할 수 있는 부합하는 NAL 유닛 스트림들 또는 부합하는 바이트 스트림들의 가변성에 대한 제약들을 명시하는 가변 디코더 모델.
가상 스트림 스케쥴러(hypothetical stream scheduler (HSS)): 가상 참조 디코더로의 비트스트림 입력의 타이밍 및 데이터 플로우의 측면에서 비트스트림 또는 디코더의 부합성을 점검하기 위해 사용되는 가상 전달 메커니즘.
정보를 제공하는(informative): 본 명세서에 제공된 내용으로서 본 명세서에의 부합을 위한 어떤 강제적인 요건도 수립하지 않으며 그리하여 본 명세서의 필수적인 부분으로 간주되지 않는 내용을 지칭하는 데에 사용되는 용어.
순시 디코딩 리프레쉬(instantaneous decoding refresh (IDR)) PU: 코딩된 픽처가 IDR 픽처인 PU.
순시 디코딩 리프레쉬(IDR) 픽처: 각각의 VCL NAL 유닛이 IDR_W_RADL 또는 IDR_N_LP와 같은 nal_unit_type을 가지는 IRAP 픽처. 참고할 사항으로, IDR 픽처는 그것의 디코딩 과정에서 인터 예측을 위해 자신 이외의 다른 어떤 픽처들도 참조하지 않으며, 디코딩 순서 상 비트스트림 내의 첫 번째 픽처일 수 있거나 비트스트림에서 뒤에 나타날 수 있다. 각 IDR 픽처는 디코딩 순서상 CVS의 첫 번째 픽처이다. 각 VCL NAL 유닛이 IDR_W_RADL과 같은 nal_unit_type을 가지는 IDR 픽처의 경우, 연관된 RASL 픽처들을 가질 수 있다. 각 VCL NAL 유닛이 IDR_N_LP와 같은 nal_unit_type을 가지는 IDR 픽처의 경우, 연관된 리딩 픽처들을 전혀 가지지 않는다. IDR 픽처는 연관된 RASL 픽처들을 가지지 않는다.
인터 레이어 참조 픽처(inter-layer reference picture (ILRP)): 현재 픽처의 nuh_layer_id 보다 작은 nuh_layer_id를 가지며, 현재 픽처와 동일한 AU 에 있는 픽처이며, "장기 참조를 위해 사용"으로 표시된다.
인터 코딩: 인터 예측을 사용하는 코딩 블록, 슬라이스 또는 픽처의 코딩.
인터 예측: 하나 또는 그 이상의 참조 픽처들의 데이터 요소들(가령, 샘플 값들 또는 모션 벡터들)에 의존적인 방식으로 도출되는 예측.
인트라 블록 카피(intra block copy(IBC)) 예측: 참조 픽처를 참조하지 않고 동일한 디코딩된 슬라이스의 데이터 요소들(가령, 샘플 값들 또는 모션 벡터들)에 의존적인 방식으로 도출되는 예측.
인트라 코딩: 인트라 예측을 사용하는 코딩 블록, 슬라이스 또는 픽처의 코딩.
인트라 예측: 참조 픽처를 참조하지 않고 동일한 디코딩된 슬라이스의 데이터 요소들(가령, 샘플 값들)로부터만 도출되는 예측.
인트라 랜덤 액세스 포인트(intra random access point (IRAP)) AU: 각 레이어에 대한 PU가 CVS에 있고 각 PU 내의 코딩된 픽처가 IRAP 픽처인 AU.
인트라 랜덤 액세스 포인트(IRAP) PU: 코딩된 픽처가 IRAP 픽처인 PU.
인트라 랜덤 액세스 포인트(IRAP) 픽처: 모든 VCL NAL 유닛들이 IDR_W_RADL 내지 CRA_NUT의 범위에서 nal_unit_type의 동일한 값을 가지는 코딩된 픽처. 참고할 사항으로, IRAP 픽처는 그것의 디코딩 프로세스에서 인터 예측을 위해 자신 이외의 다른 픽처들을 참조하지 않으며, CRA 픽처 또는 IDR 픽처일 수 있다. 디코딩 순서상 비트스트림 내의 첫 번째 픽처는 IRAP 또는 GDR 픽처여야 한다. 필요한 파라미터 세트들이 참조되어야 할 때 사용가능한 경우, IRAP 픽처 및 디코딩 순서상 CVS 내의 모든 후속 비 RASL 픽처들은 디코딩 순서에서 IRAP 픽처에 선행하는 임의의 픽처들의 디코딩 프로세스를 실시하지 않고서 정확하게 디코딩될 수 있다. 또한 IRAP 픽처에 대한 mixed_nalu_types_in_pic_flag의 값은 0과 같다. mixed_nalu_types_in_pic_flag가 픽처에 대해 0과 같고, 상기 픽처의 임의의 슬라이스가 IDR_W_RADL 내지 CRA_NUT의 범위에서 nal_unit_type을 가지는 경우, 상기 픽처의 모든 다른 슬라이스들은 nal_unit_type의 동일한 값을 가지며, 상기 픽처는 IRAP 픽처로 알려진다.
인트라 (I) 슬라이스: 오직 인트라 예측만을 사용하여 디코딩되는 슬라이스.
레이어: nuh_layer_id의 특정 값을 가지는 VCL NAL 유닛들 및 연관된 비 VCL NAL 유닛들의 세트.
리딩 픽처: 연관된 IRAP 픽처와 동일한 레이어에 있으며 출력 순서상 연관된 IRAP 픽처에 선행하는 픽처.
리프 (leaf): 깊이 0의 트리의 루트 노드인 트리의 종결 노드.
레벨: 본 명세서의 신택스 요소들 및 변수들에 의해 취해질 수 있는 값들 또는 스케일링 이전의 변환 계수의 값에 대한 제약조건들의 정의된 세트. 참고할 사항으로, 레벨들의 동일한 세트는 모든 프로파일들에 대해 정의되며, 각 레벨의 해당 정의의 대부분의 양상들은 상이한 프로파일들에 걸쳐 공통된다. 명시된 제약조건들 내에서 개별적인 구현들은 각각의 지지되는 프로파일에 대한 상이한 레벨을 지지한다.
리스트 0 (리스트 1) 모션 벡터: 참조 픽처 리스트 0 (리스트 1)을 가리키는 참조 인덱스와 연관된 모션 벡터.
리스트 0 (리스트 1) 예측: 참조 픽처 리스트 0 (리스트 1)을 가리키는 참조 인덱스를 사용하는 슬라이스의 컨텐츠에 대한 인터 예측.
LMCS APS: LMCS 프로세스를 제어하는 APS.
장기 참조 픽처(long-term reference picture (LTRP)): 현재 픽처의 nuh_layer_id와 같은 nuh_layer_id를 가지며, "장기 참조를 위해 사용"으로 표기되는 픽처.
루마: 기호 또는 아래 첨자 Y 또는 L로 표현되는 형용사로, 샘플 어레이 또는 단일 샘플이 일차 색상들과 관련된 모노크롬 시그널을 표현하고 있음을 명시한다. 참고할 사항으로, 종종 용어 크로미넌스와 연관되는 선형 광 전송 특성들의 사용을 암시하는 것을 방지하기 위해 크로미넌스 보다는 루마라는 용어가 사용된다. 수직 위치를 위해 사용되는 기호 y와의 혼동을 피하기 위해 기호 L이 기호 Y 대신 종종 사용된다.
루마 매칭 및 크로마 스케일링(luma mapping with chroma scaling (LMCS)): 루마 샘플들을 특정 값들에 매핑시키며 스케일링 동작을 크로마 샘플들의 값들에 적용할 수 있는, 디코딩 프로세스의 부분으로 적용되는 프로세스.
할 수 있다 (may) : 허용되었지만 필수적으로 요청되지는 않는 동작(behavior)을 가리키는 데에 사용되는 용어. 참고할 사항으로, 기술된 동작의 선택적 특성이 강조되도록 의도된 일부 지점들에서 "할 수 있거나 할 수 없다(may or may not)"이라는 구가 강조를 위해 사용된다. 본 문서에서 이 용어는 예시적 실시예를 강조하기 위해서만 사용되며, 해당 예시적 실시예에서 해당 요건은 코딩 표준에 의해 채택된 것이지 개시된 기술의 범위를 제한하기 위한 것이 아니다.
모션 벡터: 디코딩된 픽처 내의 좌표들로부터 참조 픽처 내의 좌표들로 오프세트를 제공하는 인터 예측을 위해 사용되는 이차원 벡터.
멀티 타입 트리: 부모 노드가 2진 분할을 사용하여 2개의 자식 노드들로 분할 되거나 3진 분할을 사용하여 3개의 자식 노드들로 분할될 수 있는 트리이며, 각각의 자식 노드는 2 또는 3개의 자식 노드들로의 또 다른 분할을 위해 부모 노드가 될 수 있다.
해야 한다(must): 요구사항에 관한 의견을 표현하거나 또는 본 명세서의 다른 곳에서 명시되는 요구사항의 결과(implication)를 표현하는 데에(정보를 제공하는 컨텍스트에서만 사용) 사용되는 용어. 본 문서에서 이 용어는 예시적 실시예를 강조하기 위해서만 사용되며, 해당 예시적 실시예에서 해당 요건은 코딩 표준에 의해 채택된 것이지 개시된 기술의 범위를 제한하기 위한 것이 아니다.
네트워크 추상 레이어(network abstraction layer (NAL)) 유닛: 따라야 하는 데이터 타입의 지시 및 필요에 따라 에뮬레이션 방지 바이트들과 섞이는 RBSP 형태의 데이터를 포함하는 바이트들을 포함하는 신택스 구조.
네트워크 추상 레이어(NAL) 유닛 스트림: NAL 유닛들의 시퀀스.
참고(note): 정보를 제공하는(informative) 언급들 앞에 붙는 용어 (정보 전달 컨택스트에서만 사용).
동작 지점(operation point (OP)): OLS 인덱스 및 TemporalID의 최고 값으로 식별되는, OLS의 시간적 서브세트.
출력 레이어: 출력되는 출력 레이어 세트의 레이어.
출력 레이어 세트(output layer set (OLS)): 레이어들의 명시된 세트로 구성되는 레이어들의 세트. 해당 레이어들의 세트 내의 하나 또는 그 이상의 레이어들은 출력 레이어들로 명시된다.
출력 레이어 세트(OLS) 레이어 인덱스: OLS의 레이어들의 리스트 내의 OLS의 레이어의 인덱스.
출력 순서: (DPB로부터 출력되어야 하는 디코딩된 픽처들에 대해) 디코딩된 픽처들이 DPB로부터 출력되는 순서.
출력 시간: 출력 타이밍 DPB 작동에 따라 HRD에 의해 명시되는, (DPB로부터 출력되어야 하는 디코딩된 픽처들에 대해) 디코딩된 픽처가 DPB로부터 출력되어야 하는 시간.
파라미터: 시퀀스 파라미터 세트(SPS) 또는 픽처 파라미터 세트(PPS)의 신택스 구조, 또는 양자화 파라미터라는 정의된 용어의 두 번째 단어.
파티셔닝: 세트의 각 요소가 서브세트들 중 정확히 하나에 있도록 상기 세트의 상기 서브세트들로의 분할.
픽처: 루마 샘플들의 모노크롬 포맷 상의 어레어 또는 4:2:0, 4:2:2 또는 4:4:4 컬러 포맷 상의 루마 샘플들의 어레이 및 크로마 샘플들의 상응하는 2개의 어레이. 참고할 사항으로, 픽처는 프레임 또는 필드일 수 있다. 하지만, 하나의 CVS에서는, 모든 픽처들이 프레임이거나 또는 모든 픽처들의 필드이다.
픽처 헤더(picture header (PH)): 코딩된 픽처의 모든 슬라이스들에 적용되는 신택스 요소들을 포함하는 신택스 구조.
픽처-레벨 슬라이스 인덱스: rect_slice_flag가 1과 같은 경우, PPS에서 시그널링되는 순서에 따른 픽처 내 슬라이스들의 리스트에서 슬라이스의 인덱스.
픽서 오더 카운트(picture order count (POC)): 각 픽처와 연관되며, CLVS 내의 모든 픽처들 중 해당 연관된 픽처를 고유하게 식별하고, 상기 연관된 픽처가 DPB로부터 출력되어야 하는 경우, DPB로부터 출력되어야 하는 동일한 CLVS 내의 다른 픽처들의 출력 순서 위치들에 대한 상기 연관된 픽처의 출력 순서상의 위치를 지시하는 변수.
픽처 파라미터 세트(picture parameter set (PPS)): 각 슬라이스 헤더에서 발견되는 신택스 구조에 의해 결정되는, 제로 또는 그 이상의 전체 코딩된 픽처들에 적용되는 신택스 요소들을 포함하는 신택스 구조.
픽처 유닛(picture unit (PU)): 명시된 분류 규칙에 따라 상호 간에 연관되고, 디코딩 순서 상 연속적이며, 정확하게 하나의 코딩된 픽처를 포함하는 NAL 유닛들의 세트.
예측: 예측 프로세스의 실시예.
예측 프로세스: 현재 디코딩되는 데이터 요소(가령, 샘플 값 또는 모션 벡터)의 예측치를 제공하는 예측기(predictor)의 사용.
예측(P) 슬라이스: 각 블록의 샘플 값들을 예측하기 위해 최대 하나의 모션 벡터와 참조 인덱스를 사용하여 인트라 예측 또는 인터 예측으로 디코딩되는 슬라이스.
예측기: 다음 데이터 요소들의 디코딩 프로세스에서 사용되는 이전에 디코딩된 데이터 요소들(가량, 샘플 값 또는 모션 벡터) 또는 명시된 값들의 조합.
프로파일: 본 명세서의 신택스의 명시된 서브세트.
쿼드트리: 부모 노드가 4개의 자식 노드들로 분할될 수 있는 트리이며, 이때 각 자식 노드는 4개의 자식 노드들로의 또 다른 분할을 위해 부모 노드가 될 수 있다.
양자화 파라미터: 변환 계수 레벨들의 스케일링을 위해 디코딩 프로세스에 의해 사용되는 변수.
랜덤 액세스: 비트 스트림의 시작 이외의 다른 포인트에서 해당 스트림에 대한 디코딩 프로세스를 시작하는 동작.
랜덤 액세스 디코더블 리딩(random access decodable leading (RADL)) PU: 코딩된 픽처가 RADL 픽처인 PU.
랜덤 액세스 디코더블 리딩(RADL) 픽처: 각 VCL NAL 유닛이 RADL_NUT과 같은 nal_unit_type을 가지는 코딩된 픽처. 참고할 사항으로, 모든 RADL 픽처들은 리딩 픽처들이다. RADL 픽처들은 동일한 연관된 IRAP 픽처의 뒤따르는 픽처들의 디코딩 프로세스에 대해 참조 픽처들로 사용되지 않는다. Field_seq_flag가 0과 같은 경우, 모든 RADL 픽처들은, 그것들이 존재한다면, 디코딩 순서 상 동일한 연관된 IRAP 픽처의 모든 비-리딩 픽처들에 선행한다.
랜덤 액세스 스킵된 리딩(random access skipped leading(RASL)) PU: 코딩된 픽처가 RASL 픽처인 PU.
랜덤 액세스 스킵된 리딩(RASL) 픽처: 각 VCL NAL 유닛이 RASL_NUT과 같은 nal_unit_type을 가지는 코딩된 픽처. 참고할 사항으로, 모든 RASL 픽처들은 연관된 CRA 픽처의 리딩 픽처들이다. 상기 연관된 CRA 픽처가 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 경우, RASL 픽처는 출력되지 않고 정확하게 디코딩되지 못할 수 있다. 왜냐하면 RASL 픽처는 비트스트림에 존재하지 않는 픽처들에 대한 참조들을 포함할 수 있기 때문이다. RASL 픽처들은 비 RASL 픽처들의 디코딩 프로세스를 위한 참조 픽처들로는 사용되지 않는다. Field_seq_flag가 0과 같으면, 모든 RASL 픽처들은, 그것들이 존재하는 경우, 디코딩 순서 상으로, 동일한 연관된 CRA 픽처의 모든 비-리딩 픽처들에 선행한다.
래스터 스캔: 1차원 패턴으로 직사각형 2차원 패턴의 매핑. 그 결과 상기 1차원 패턴의 첫 번째 앤트리들은 좌에서 우로 스캐닝된 상기 2차원 패턴의 상단 첫 번째 행에 있게되며, 각각이 좌에서 우로 스캐닝된 상기 패턴의 (아래 방향으로) 두 번째, 세 번째 행들이 유사하게 뒤따르게 된다.
로 바이트 시퀀스 페이로드 (raw byte sequence payload (RBSP)): NAL 유닛에 압축되고(encapsulated), 비어있거나 RBSP 정지 비트 및 0과 같은 제로 또는 그 이상의후속 비트들 앞에 오는 신택스 요소들을 포함하는 데이터 비트들의 스트링 형태를 가지는 정수개의 바이트들을 포함하는 신택스 구조.
로 바이트 시퀀스 페이로드(RBSP) 정지 비트: 데이터 비트들의 스트링 다음에 로 바이트 시퀀스 페이로드(RBSP) 내에 존재하는 1과 같은 비트. RBSP 내에서 이것에 대한 종단의 위치는 RBSP 정지 비트를 RBSP의 종단으로부터 검색함으로써 식별될 수 있으며, 상기 RBSP 정지 비트는 RBSP에서 마지막 0 아닌 비트이다.
참조 인덱스: 참조 픽처 리스트에 대한 인덱스.
참조 픽처: 단기 참조 픽처, 장기 참조 픽처 또는 인터 레이어 참조 픽처인 픽처. 참고할 사항으로, 참조 픽처는 디코딩 순서 상 후속하는 픽처들의 디코딩 프로세스에서 인터 예측을 위해 사용될 수 있는 샘플들을 포함한다.
참조 픽처 리스트: P 또는 B 슬라이스의 인터 예측을 위해 사용되는, 참조 픽처들의 리스트. 참고할 사항으로, 2개의 참조 픽처 리스트들, 즉, 참조 픽처 리스트 0 및 참조 픽처 리스트 1은 비 IDR 픽처의 각 슬라이스에 대해 생성된다. 픽처와 연관된 상기 두 참조 픽처 리스트들 내의 모든 엔트리들에 의해 지칭되는 고유한 픽처들의 세트는 상기 연관된 픽처 또는 디코딩 순서상 상기 연관된 픽처를 뒤따르는 임의의 픽처의 인터 예측을 위해 사용될 수 있는 모든 참조 픽처들로 구성된다. P 슬라이스의 디코딩 프로세스에 대해, 오직 참조 픽처 리스트 0만이 인터 예측을 위해 사용된다. B 슬라이스의 디코딩 프로세스에 대해, 참조 픽처 리스트 0 및 참조 픽처 리스트1 모두 인터 예측을 위해 사용된다. I 슬라이스의 슬라이스 데이터를 디코딩하기 위해서는 어떤 참조 픽처 리스트도 인터 예측에 사용되지 않는다.
참조 픽처 리스트 0: P 슬라이스의 인터 예측을 위해 사용되는 참조 픽처 리스트 또는 B 슬라이스의 인터 예측을 위해 사용되는 제1 참조 픽처 리스트.
참조 픽처 리스트 1: B 슬라이스의 인터 예측을 위해 사용되는 제2 참조 픽처 리스트.
예비의(reserved): 특정 신택스 요소의 일부 값들은 ITU-T | ISO/IEC가 미래에 사용하기 위한 것임을 명시하는 데에 사용될 수 있는 용어로, 본 명세서의 본 버전에 부합하는 비트스트림들에는 사용되어서는 안 되지만 본 명세서의 차후 확장에 부합하는 비트스트림들에서는 ITU T | ISO/IEC에 의해 사용될 수 있다.
잔차: 샘플 또는 데이터 요소의 예측과 그것의 디코딩된 값 사이의 디코딩된 차이.
스케일링: 변환 계수들을 산출하는, 변환 계수 레벨들과 팩터(factor)를 곱하는 프로세스.
스케일링 리스트: 스케일링 프로세스를 위해 각각의 주파수 인덱스와 스케일 팩터를 연관시키는 리스트.
스케일링 리스트 APS: 스케일링 리스트들을 구성하는 데에 사용되는 신택스 요소들을 가지는 APS.
시퀀스 파라미터 세트(sequence parameter set (SPS)): 각 픽처 헤더에서 확인되는 신택스 요소에 의해 참조되는 PPS에서 확인되는 신택스 요소의 컨텐츠에 의해 결정되는 바와 같이 제로 또는 그 이상의 전체 CVS들에 적용되는 신택스 요소들을 포함하는 신택스 구조.
하여야 한다(shall): 본 명세서에 부합하기 위한 강제적인 요건들을 표현하는 데에 사용되는 용어. 참고할 사항으로, 신택스 요소들의 값들에 대한 또는 명시된 디코딩 프로세스의 작업으로 획득되는 결과들에 대한 강제적인 제약을 표현하는 데에 사용되는 경우, 해당 제약이 충족되도록 하는 것은 인코더의 책임이다. 디코딩 프로세스에 의해 실시되는 작업들을 참조하여 사용되는 경우, 본 명세서에 기술된 디코딩 프로세서로부터의 출력과 동일한 크로핑되고 (cropped) 디코딩된 픽처들을 산출하는 임의의 디코딩 프로세스는 본 명세서의 디코딩 프로세스 요건들에 부합한다. 본 문서에서 이 용어는 예시적 실시예를 강조하기 위해서만 사용되며, 해당 예시적 실시예에서 해당 요건은 코딩 표준에 의해 채택된 것이지 개시된 기술의 범위를 제한하기 위한 것이 아니다.
단기 참조 픽처(short-term reference picture (STRP)): 현재 픽처의 nuh_layer_id와 같은 nuh_layer_id를 가지며, "단기 참조를 위해 사용"으로 표기되는 픽처.
하는 것이 좋다(should): 예상되는 일반적 상황하에서 따르도록 권장되지만 본 명세서에 부합하기 위한 강제 요건은 아닌 구현의 동작을 가리키는 용어. 본 문서에서 이 용어는 예시적 실시예를 강조하기 위해서만 사용되며, 해당 예시적 실시예에서 해당 요건은 코딩 표준에 의해 채택된 것이지 개시된 기술의 범위를 제한하기 위한 것이 아니다.
슬라이스: 단일 NAL 유닛에 배타적으로 포함되는, 정수 개의 완전한 타일들 또는 픽처의 타일 내에 포함되는 정수 개의 연속적인 CTU 행들.
슬라이스 헤더: 코딩된 슬라이스에서 표현된 모든 타일들 또는 타일 내 CTU 행들과 관련된 데이터 요소들을 포함하는 상기 슬라이스의 부분.
소스: 인코딩 이전의 비디오 재료 또는 그것의 일부 속성들을 기술하기 위해 사용되는 용어.
시작 코드 프리픽스: 각 NAL 유닛의 프리픽스로 바이트 스트림에 내장된 0x000001와 같은 3 바이트의 고유한 시퀀스. 참고할 사항으로, 시작 코드 프리픽스의 위치는 디코더에 의해 새로운 NAL 유닛의 시작과 이전 NAL 유닛의 끝을 식별하는 데에 사용될 수 있다. 시작 코드 프리픽스들의 에뮬레이션은 에뮬레이션 방지 바이트들의 포함으로 NAL 유닛들 내에서 방지될 수 있다.
단계별 시간적 서브레이어 액세스(step-wise temporal sublayer access (STSA)) PU: 코딩된 픽처가 STSA 픽처인 PU.
STSA 픽처: 각 VCL NAL 유닛이 STSA_NUT와 같은 nal_unit_type을 가지는 코딩된 픽처. 참고할 사항으로, STSA 픽처는 인터 예측 참조를 위해 상기 STSA 픽처와 동일한 TemporalId를 가지는 픽처들을 사용하지 않는다. STSA 픽처와 동일한 TemporalId를 가지는, 디코딩 순서상 상기 STSA 픽처를 따르는 픽처들은 상기 STSA 픽처와 동일한 TemporalId를 가지는 디코딩 순서 상 상기 STSA 픽처에 선행하는 픽처들을 인터 예측 참조를 위해 사용하지 않는다. STSA 픽처는, 상기 STSA 픽처에서, 바로 아래 서브레이어에서 부터, 상기 STSA 픽처를 포함하는 서브레이어로의 업 스위칭을 가능하게 한다. STSA 픽처들은 0 보다 큰 TemporalId를 가져야 한다.
데이터 비트들의 스트링(string of data bits (SODB)): 로 바이트(raw byte) 시퀀스 페이로드 스톱 비트에 앞서 로 바이트 시퀀스 페이로드 내에 존재하는 신택스 요소들을 표현하는 비트들의 일부의 시퀀스로, 여기서 가장 왼쪽의 비트는 첫 번째이자 가장 중요한 비트로 간주되며, 가장 오른쪽의 비트는 마지막이자 가장 덜 중요한 비트로 간주된다.
서브 비트스트림 추출 프로세스: 대상 OLS 인덱스 및 가장 높은 대상 TemporalId에 의해 결정되는, 대상 세트에 속하지 않는 비트스트림 내의 NAL 유닛들을 상기 비트스트림으로부터 제거하는 명시된 프로세스로, 출력 서브 비트스트림은 상기 대상 세트에 속하는 비트스트림 내의 NAL 유닛들로 구성된다.
서브 레이어: TemporalId 변수의 특정 값을 가지는 VCL NAL 유닛들과 관련 비 VCL NAL 유닛들로 구성된, 시간적 스케일러블 비트스트림의 시간적 스케일러블 레이어.
서브레이어 표현: 특정 서브레이어 및 하위 서브레이어들의 NAL 유닛들로 구성된 비트스트림의 서브 세트.
서브픽처: 픽처 내의 하나 또는 그 이상의 슬라이스들의 직사각형 영역.
서브픽처 레벨 슬라이스 인덱스: rect_slice_flag가 1과 같은 경우 PPS에서 시그널링되는 순서에 따른 서브픽처 내 슬라이스들의 리스트에서 슬라이스의 인덱스.
보충 강화 정보(supplemental enhancement information (SEI)) 메시지: 디코딩 프로세스에 의해 요구되지 않지만 디코딩된 픽처에서 샘플들의 값들을 결정하기 위해 정보를 전달하는 명시된 시맨틱스를 가지는 신택스 구조.
신택스 요소 (syntax element) : 비트스트림에서 표현되는 데이터의 요소.
신택스 구조: 명시된 순서로 비트스트림 내에 함께 존재하는 제로 또는 그 이상의 신택스 요소들.
삼분할(ternary split): 샘플들의 직사각형 MxN 블록의 3 블록들로의 분할. 이때 수직 분할의 결과는 제1 (M/4)xN 블록, 제2 (M/2)xN 블록, 제3 (M/4)xN 블록이고, 수평 분할의 결과는 제1 Mx(N/4) 블록, 제2 Mx(N/2) 블록, 제2 Mx(N/4) 블록이다.
티어: 비트스트림에서 신택스 요소들의 값들에 부여된 레벨 제약들의 명시된 범주. 여기서 상기 레벨 제약들은 티어 내에 위치하고(nested), 특정 티어 및 레벨에 부합하는 디코더는 동일한 티어 또는 해당 레벨의 하위 티어 또는 그것 보다 하위의 모든 레벨에 부합하는 모든 비트스트림들을 디코딩할 수 있다.
타일: 픽처의 특정 타일 열 및 특정 타일 행 내의 CTU들의 직사각형 영역.
타일 열: 픽처의 높이와 같은 높이 및 픽처 파라미터 세트에서 신택스 요소들이 명시하는 폭을 가지는 CTU들의 직사각형 영역.
타일 행: 픽처 파라미터 세트에서 신택스 요소들이 명시하는 높이 및 픽처의 폭과 같은 폭을 가지는 CTU들의 직사각형 영역.
타일 스캔: 픽처를 분할하는 CTU들의 특정한 순차 배치(ordering). 여기서 상기 CTU들은 타일에서 CTU 래스터 스캔으로 연속적으로 배치되는 반면 픽처 내의 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 배치된다.
트레일링 픽처: 출력 순서 상 연관된 IRAP 픽처를 따르며 STSA 픽처가 아닌 비 IRAP 픽처. 참고할 사항으로, IRAP 픽처와 연관된 트레일링 픽처들은 디코딩 순서에서 상기 IRAP 픽처를 또한 따른다. 출력 순서에서 상기 연관된 IRAP 픽처를 따르고 디코딩 순서에서는 상기 연관된 IRAP 픽처에 선행하는 픽처들은 허용되지 않는다.
변환 (transform): 변환 계수들의 블록이 공간 영역 값들의 블록으로 변환되는 디코딩 프로세스의 부분.
변환 블록: 디코딩 프로세스에서 변환으로부터 결과하는 샘플들의 직사각형 MxN 블록.
변환 계수: 디코딩 프로세스에서 변환에서 특정 1차원 또는 2차원 주파수 인덱스와 연관되며, 주파수 영역에 있는 것으로 간주되는 스칼라 양.
변환 계수 레벨: 변환 계수 값의 연산을 위한 스케일링 이전에 디코딩 프로세스에서 특정 2차원 주파수 인덱스와 연관되는 값을 표현하는 정수량.
변환 유닛(TU): 루마 및 크로마에 대해 단일 코딩 유닛 트리를 사용하는 경우, 루마 샘플들의 변환 블록 및 픽처의 크로마 샘플들의 상응하는 2개의 변환 블록들, 또는 2개의 별개의 코딩 유닛 트리들을 루마 및 크로마에 대해 사용하는 경우, 루마 샘플들의 변환 블록 및 크로마 샘플들의 2개의 변환 블록들, 그리고 변환 블록 샘플들을 변환하는 데에 사용되는 신택스 구조들.
트리: 트리는 한정된 세트의 노드들과 고유한 루트 노드이다.
명시되지 않은: 특정 신택스 요소의 일부 값들을 명시하기 위해 사용되는 용어로, 해당 값들이 본 명세서에서 명시된 의미를 가지지 않으며 본 명세서의 차후 버전들의 필수적 부분으로서 미래에 명시된 의미를 가지지 않을 것임을 나타낸다.
비디오 코딩 레이어(video coding layer(VCL)) NAL 유닛: 본 명세서에서 VCL NAL 유닛들로 분류되는 nal_unit_type의 예비(reserved) 값들을 가지는 NAL 유닛들의 서브 세트 및 코딩된 슬라이스 NAL 유닛들을 통칭하는 용어.
일부 예시적 비트스트림 및 픽처 포맷들, 분할들, 스캐닝 프로세스들 및 주변 관계들은 아래와 같이 기술된다.
6.3. 픽처, 서브픽처, 슬라이스 및 CTU의 분할
6.3.2. 블록, 쿼드트리 및 멀티 타입 트리 구조들
샘플들은 CTB 단위로 처리된다. 폭과 높이 모두에서 각 루마 CTB의 어레이 크기는 샘플 단위로 CtbSizeY이다. 각 크로마 CTB에 대한 어레이의 폭과 높이는 샘플 단위로 각각 CtbWidthC 및 CtbHeightC이다.
각 CTB에는 인트라 또는 인터 예측 및 변환 코딩을 위해 블록 크기들을 식별하도록 파티션 시그널링이 할당된다. 분할은 반복 쿼드트리 분할이다. 쿼드트리의 루트는 CTB와 연관된다. 쿼드트리는 리프에 도달할 때 까지 분할되며, 상기 리프는 쿼드트리 리프로 불린다. 성분 폭이 CTB 크기의 정수가 아닌 경우, 우측 성분 경계에서 CTB들은 불완전하다. 성분 높이가 CTB 크기의 정수 배가 아닌 경우, 하단 성분 경계에서 CTB들은 불완전하다.
코딩 블록은 두 개의 트리들, 즉, 예측 트리와 변환 트리의 루트 노드이다. 예측 트리는 예측 블록들의 위치와 크기를 명시한다. 변환 트리는 변환 블록들의 위치와 크기를 명시한다. 루마 및 크로마에 대한 분할 정보는 예측 트리에 대해 동일하며, 변환 트리에 대해서는 동일하거나 동일하지 않을 수 있다.
- 블록들 및 연관된 신택스 구조들은 아래와 같이 "유닛(단위)" 구조들로 분류된다.
- 하나의 변환 블록 (모노크룸 픽처 또는 1과 같은 separate_colour_plane_flag) 또는 3개의 변환 블록들 (컬러 포맷 4:2:0, 4:2:2 또는 4:4:4인 픽처의 루마 및 크로마 성분들) 그리고 연관된 변환 신택스 구조 유닛들은 변환 유닛과 연관된다.
-
하나의 코딩 블록 (모노크룸 픽처 또는 1과 같은 separate_colour_plane_flag) 또는 3개의 코딩 블록들 (루마 및 크로마), 연관된 코딩 신택스 구조들 그리고 연관된 변환 유닛들은 코딩 유닛과 연관된다.
-
하나의 CTB (모노크룸 픽처 또는 1과 같은 separate_colour_plane_flag) 또는 3개의 CTB들 (루마 및 크로마), 연관된 코딩 트리 신택스 구조들 그리고 연관된 코딩 유닛들은 CTU와 연관된다.
7. 신택스 및 시맨틱스 (Syntax and semantics)
7.3. 신택스 표 형식
7.3.1 NAL 유닛 신택스
7.3.1.1 일반적인 NAL 유닛 신택스
7.3.1.2 NAL 유닛 헤더 신택스
7.3.2 로 바이트 시퀀스 페이로드, 트레일링 비트 및 바이트 정렬 신택스
7.3.2.1 디코딩 능력 정보 RBSP 신택스
7.3.2.2 비디오 파라미터 세트 RBSP 신택스
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
7.3.2.5 적응 파라미터 세트 RBSP 신택스
7.3.2.6 픽처 헤더 RBSP 신택스
7.3.2.7 픽처 헤더 구조 신택스
7.3.2.8 보충 강화 정보 RBSP 신택스
7.3.2.9 AU 구분자 RBSP 신택스
7.3.2.10 시퀀스 종단 RBSP 신택스
7.3.2.11 비트스트림 종단 RBSP 신택스
7.3.2.11 필러 데이터 RBSP 신택스
7.4 시맨틱스 (Semantics)
7.4.1 일반사항
신택스 구조들 및 이 구조들 내의 신택스 요소들과 연관된 시맨틱스 본 절에서 명시된다. 신택스 요소의 시맨틱스가 표 또는 표들의 세트를 사용하여 명시되는 경우, 해당 표(들)에 명시되지 않는 어떤 값들도, 본 명세서에서 달리 규정되지 않는 한, 비트스트림에 존재해선 안 된다.
7.4.2 NAL 유닛 시맨틱스
7.4.2.1 일반적인 NAL 유닛 시맨틱스
NumBytesInNalUnit은 바이트 단위로 NAL 유닛의 크기를 명시한다. 이 값은 NAL 유닛의 디코딩에 요구된다. NAL 유닛 경계들을 구획하는 몇 가지 형태는 NumBytesInNalUnit의 추론을 가능하게 하기 위해 필요하다. 한 가지 구획 방법은 바이트 스트림 포맷에 관한 것이다. 구획의 다른 방법들은 본 명세서 밖에서 규정될 수 있다.
참고 1- 비디오 코딩 레이어 (VCL: video coding layer)는 비디오 데이터의 콘텐츠를 효과적으로 표현하기 위해 명시된다. NAL은 해당 데이터를 포맷시키고 다양한 통신 채널들 및 저장 매체들에서 전달하기에 적합한 방식으로 헤더 정보를 제공하기 위해 명시된다. 모든 데이터는 NAL 유닛들에 포함되며, 이것들 각각은 정수 개의 바이트들을 포함한다. NAL 유닛은 패킷 지향 및 비트스트림 시스템들 모두에서 사용할 일반적인 포맷을 명시한다. 패킷 지향 전송 및 바이트 스트림 모두에 대한 NAL 유닛들의 포맷은, 각각의 NAL 유닛이 바이트 스트림 포맷으로 시작 코드 프레픽스 및 추가 패딩 바이트들 뒤에 올 수 있다는 것을 제외하면, 동일하다.
rbsp_byte[i]는 RBSP의 i 번째 바이트이다. RBSP는 아래와 같이 바이트들의 배열된 시퀀스로 명시된다.
RBSP는 아래와 같이 데이터 비트들의 스트링 (SODB: string of data bits)를 포함한다.
만약 SODB가 비어 있다면 (즉, 길이가 0 비트) RBSP 또한 비어있다.
-
그 외의 경우, RBSP는 아래와 같이 SODB를 포함한다.
1)
RBSP의 첫 번째 바이트는 SODB의 처음 (가장 중요한, 맨 좌측) 8개의 비트들을 포함한다. RBSP의 다음 바이트는 SODB의 다음 8개 비트들을 포함하고, 이것은 SODB의 남은 비트 수가 8개 미만일때까지 계속된다.
2)
rbsp_trailing_bits( ) 신택스 구조는 아래와 같이 SODB 다음에 존재한다.
i)
마지막 RBSP 바이트의 처음 (가장 중요한 맨 좌측) 비트들은 (만약 있다면) SODB의 나머지 비트들을 포함한다.
ii)
다음 비트는 1과 같은 단일 비트(즉, rbsp_stop_one_bit)로 구성된다.
iii)
rbsp_stop_one_bit가 바이트 정렬된 바이트의 마지막 비트가 아닌 경우, 하나 이상의 제로 값 비트들(즉, rbsp_alignment_zero_bit의 인스턴스들)이 존재하여 바이트 정렬이 된다.
3)
0x0000인 하나 이상의 cabac_zero_word 16 비트 신택스 요소들은 RBSP의 종단에서 rbsp_trailing_bits( ) 다음에 일부 RBSP들에 존재할 수 있다.
이러한 RBSP 속성들을 가지는 신택스 구조들은 "_rbsp" 서픽스를 사용하여 신택스 테이블들에 나타난다. 이러한 구조들은 rbsp_byte[ i ] 데이터 바이트들의 컨텐츠로서 NAL 유닛들 내에서 운반된다. RBSP 신택스 구조들와 NAL 유닛들의 연관관계는 테이블 5에 명시된 바와 같다.
참고 2 - RBSP의 경계들이 알려지는 경우, 디코더는 RBSP의 바이트들의 비트들을 연결시키고, 마지막 (가장 덜 중요한 맨 우측) 비트이자 1과 같은 rbsp_stop_one_bit를 폐기하고, 그것을 따르는 (덜 중요한 더 오른편의) 0과 같은 모든 비트들을 폐기함으로써, RBSP로부터 SODB를 추출할 수 있다. 디코딩 프로세스에 필요한 데이터는 RBSP의 SODB 부분에 포함된다.
emulation_prevention_three_byte는 0x03인 바이트이다. emulation_prevention_three_byte가 NAL 유닛에 존재하는 경우, 그것은 디코딩 프로세스에 의해 폐기되어야 한다.
NAL 유닛의 마지막 바이트는 0x00과 같아서는 안 된다.
NAL 유닛 내에서, 다음의 3-바이트 시퀀스들은 어떠한 바이트 정렬 위치에서도 생겨서는 안 된다.
-
0x000000
-
0x000001
-
0x000002
NAL 유닛 내에서, 아래의 시퀀들들이 아닌 0x000003으로 시작하는 어떤 4-바이트 시퀀스도 바이트 정렬 위치에서 생겨서는 안 된다.
-
0x00000300
-
0x00000301
-
0x00000302
-
0x00000303
7.4.2.2 NAL 유닛 헤더 시맨틱스
forbidden_zero_bit는 0이어야 한다.
nuh_reserved_zero_bit는 0이어야 한다. nuh_reserved_zero_bit의 값 1은 ITU T | ISO/IEC에 의해 미래에 명시될 수 있다. 디코더들은 1과 같은 nuh_reserved_zero_bit를 가지는 NAL 유닛들을 무시해야(즉, 비트스트림으로부터 제거하고 폐기해야) 한다.
nuh_layer_id는 VCL NAL 유닛이 속하는 레이어의 식별자 또는 비 VCL NAL 유닛이 적용되는 레이어의 식별자를 명시한다. nuh_layer_id의 값은 0 내지 55의 범위 내에 있어야 한다. nuh_layer_id에 대한 다른 값들은 ITU-T | ISO/IEC에 의해 미래에 사용하기 위해 예비될 수 있다.
nuh_layer_id의 값은 코딩된 픽처의 모든 VCL NAL 유닛들에 대해 동일해야 한다. 코딩된 픽처 또는 PU의 nuh_layer_id의 값은 상기 코딩된 픽처 또는 상기 PU의 VCL NAL 유닛들의 nuh_layer_id의 값이다.
AUD, PH, EOS 및 FD NAL 유닛들에 대한 nuh_layer_id의 값은 아래와 같이 제약된다.
-
만약 nal_unit_type이 AUD_NUT와 같다면, nuh_layer_id는 vps_layer_id[0]와 같아야 한다.
-
그 외의 경우, nal_unit_type이 PH_NUT, EOS_NUT, 또는 FD_NUT와 같으면, nuh_layer_id는 연관된 VCL NAL 유닛의 nuh_layer_id와 같아야 한다.
참고 1 - DCI, VPS 및 EOB NAL 유닛들의 nuh_lay_id의 값은 제약되지 않는다.
nal_unit_type의 값은 CVSS AU의 모든 픽처들에 대해 동일해야 한다.
nal_unit_type은 NAL 유닛 타입, 즉, 테이블 5에 명시된 바와 같은 NAL 유닛에 포함된 RBSP 데이터 구조의 타입을 명시한다.
UNSPEC_28 내지 UNSPEC_31의 범위에서 nal_unit_type을 가지는 NAL 유닛들에 대한 시맨틱스는 규정되지 않았으며, 이 유닛들은 본 명세서에서 명시된 디코딩 프로세스에 영향을 주어서는 안 된다.
참고 2 - UNSPEC_28 내지 UNSPEC_31의 범위 내의 NAL 유닛 타입들은 적용에 의해 결정되는 대로 사용될 수 있다. nal_unit_type의 이러한 값들에 대한 어떠한 디코딩 프로세스도 본 명세서에 명시되지 않는다. 상이한 적용들이 이러한 NAL 유닛 타입들을 상이한 목적들을 위해 사용할 수 있으므로, 이러한 nal_unit_type 값들을 가지는 NAL 유닛들을 생성시키는 인코더들의 설계에서, 그리고 이러한 nal_unit_type 값들을 가진 NAL 유닛들의 컨텐츠를 해석하는 디코더들의 설계에서 특별한 주의를 기울여야 한다. 본 명세서는 이러한 값들에 대한 어떤 관리도 정의하지 않는다. 이러한 nal_unit_type 값들은 사용의 "충돌들" (즉, 동일한 nal_unit_type 값에 대한 NAL 유닛 컨텐츠의 의미에 대한 상이한 정의들)이 중요하지 않거, 가능하지 않거나 또는 관리되는 맥락들에서만-즉, 제어 어플리케이션 또는 전송 명세에서 정의되거나 관리되는 또는 비트스트림들이 분배되는 환경을 제어함으로서-사용하기에 적합하다.
비트스트림의 DU들에서의 데이터의 양을 결정하는 것 이외의 목적들을 위해, 디코더들은 nal_unit_type의 예비 값들을 사용하는 모든 NAL 유닛들의 컨텐츠를 무시 (비트스트림으로부터 제거 및 폐기)해야 한다.
참고 3 - 본 요구사항은 본 명세서에 대한 양립가능한 확장들의 미래의 정의를 허용한다.
테이블 5 - NAL 유닛 타입 코드들 및 NAL 유닛 타입 클래스들
참고 4 - 클린 랜덤 액세스 (CRA) 픽처는 비트스트림에 존재하는 연관된 RASL 또는 RADL 픽처들을 가질 수 있다.
참고 5 - IDR_N_LP와 같은 nal_unit_type을 가지는 순시 디코딩 리프레쉬 (IDR) 픽처는 연관된 리딩 픽처들을 비트스트림 안에 가지지 않는다. IDR_W_RADL과 같은 nal_unit_type을 가지는 IDR 픽처는 연관된 RASL 픽처들을 비트스트림 안에 가지지 않지만, 연관된 RASL 픽처들은 비트스트림에서 가질 수 있다.
임의의 특정 픽처의 VCL NAL 유닛들에 대해, 다음이 적용된다.
-
만약 mixed_nalu_types_in_pic_flag가 0이라면, nal_unit_type의 값은 픽처의 모든 코딩된 슬라이스 NAL 유닛들에 대해 동일해야 한다. 픽처 또는 PU는 상기 픽처 또는 상기 PU의 코딩된 슬라이스 NAL 유닛들과 동일한 NAL 유닛 타입을 가지는 것으로 지시된다.
-
그 외의 경우 (mixed_nalu_types_in_pic_flag가 1과 같은 경우), 픽처의 하나 이상의 서브픽처들의 VCL NAL 유닛들은 모두 STSA_NUT, RADL_NUT, RASL_NUT, IDR_W_RADL, IDR_N_LP, 또는 CRA_NUT과 같은 nal_unit_type의 특정 값을 가지고, 상기 픽처 내의 다른 VCL NAL 유닛들은 모두 TRAIL_NUT, RADL_NUT, 또는 RASL_NUT과 같은 nal_unit_type의 다른 특정 값을 가진다.
단일 레이어 비트스트림에 대해, 다음이 적용된다.
-
디코딩 순서 상 비트스트림의 첫 번째 픽처가 아닌 각 픽처는 디코딩 순서 상 이전 IRAP 픽처와 연관되는 것으로 간주된다.
-
픽처가 IRAP 픽처으 리딩 픽처인 경우, 그것은 RADL 또는 RASL 픽처여야 한다.
-
픽처가 IRAP 픽처의 트레일링 픽처인 경우, 그것은 RADL 또는 RASL 픽처여서는 안 된다.
-
IDR 픽처와 연관된 어떤 RASL 픽처들도 비트스트림에 있어서는 안 된다.
-
IDR_N_LP와 같은 nal_unit_type을 가지는 IDR 픽처와 연관된 어떤 RADL 픽처들도 비트스트림에 있어서는 안 된다.
참고 6 - 각 파라미터 세트가 참조될 경우 (비트스트림에서 또는 본 명세서에 명시되지 않은 외부 수단으로) 이용 가능하다면, IRAP PU 앞의 모든 PU들을 폐기함으로써 IRAP PU의 위치에서 랜덤 액세스를 실시하는 것이 (그리고 IRAP 픽처 및 디코딩 순서 상 모든 후속 비 RASL 픽처들을 정확하게 디코딩 하는 것이) 가능하다.
-
디코딩 순서에서 IRAP 픽처에 선행하는 어떠한 픽처도 출력 순서에서 IRAP 픽처에 선행해야 하며, 출력 순서에서 IRAP 픽처와 연관된 모든 RADL 픽처에 선행해야 한다.
-
CRA 픽처와 연관된 어떠한 RASL 픽처도 출력 순서에서 상기 CRA 픽처와 연관된 모든 RADL 픽처에 선행해야 한다.
-
CRA 픽처와 연관된 어떠한 RASL 픽처도 디코딩 순서에서 상기 CRA 픽처에 선행하는 모든 IRAP 픽처를 출력 순서에서 따라야 한다.
-
만약 field_seq_flag가 0이고 현재 픽처가 IRAP 픽처와 연관된 리딩 픽처라면, 그것은 동일한 IRAP 픽처와 연관된 모든 비-리딩 픽처들을 디코딩 순서에서 선행해야 한다. 그렇지 않고, picA 및 picB가 IRAP 픽처와 연관된, 디코딩 순서에서 각각 첫 번째 및 마지막 리딩 픽처들이라고 하면, 디코딩 순서에서 picA에 선행하는 최대 한 개의 비-리딩 픽처가 있어야 하며, 디코딩 순서에서 picA 및 picB 사이에는 비-리딩 픽처가 없어야 한다.
nuh_temporal_id_plus1 마이너스 1은 NAL 유닛에 대한 시간적 식별자를 명시한다.
nuh_temporal_id_plus1의 값은 0과 같지 않아야 한다.
변수 TemporalId는 다음과 같이 유도된다.
TemporalId = nuh_temporal_id_plus1 - 1 (36)
nal_unit_type이 IDR_W_RADL 내지 RSL_IRAP_12의 범위에 있는 경우, TemporalId는 0과 같아야 한다.
nal_unit_type이 STSA_NUT와 같고 vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]가 1과 같은 경우, TemporalId는 0과 같지 않아야 한다.
TemporalId의 값은 AU의 모든 VCL NAL 유닛들에 대해 동일해야 한다. 코딩된 픽처, PU 또는 AU의 TemporalId의 값은 상기 코딩된 픽처, PU 또는 AU의 VCL NAL 유닛들의 TemporalId의 값이다. 서브레이어 표현의 TemporalId의 값은 상기 서브레이어 표현에서 모든 VCL NAL 유닛들의 TemporalId의 최대 값이다.
비 VCL NAL 유닛의 TemporalId 값은 다음과 같이 제한된다.
-
nal_unit_type이 DCI_NUT, VPS_NUT 또는 SPS_NUT와 같으면, TemporalId는 0이고 NAL 유닛을 포함하는 AU의 TemporalId는 0이어야 한다.
-
그렇지 않고 nal_unit_type이 PH_NUT와 같으면, TemporalId는 NAL 유닛을 포함하는 PU의 TemporalId와 같아야 한다.
-
그렇지 않고 nal_unit_type이 EOS_NUT 또는 EOB_NUT과 같으면, TemporalId는 0과 같아야 한다.
-
그렇지 않고 nal_unit_type이 AUD_NUT, FD_NUT, PREFIX_SEI_NUT 또는 SUFFIX_SEI_NUT와 같으면, TemporalId는 NAL 유닛을 포함하는 AU의 Temporald와 같아야 한다.
-
그렇지 않고 nal_unit_type이 PPS_NUT, PREFIX_APS_NUT, 또는 SUFFIX_APS_NUT와 같으면, TemporalId는 NAL 유닛을 포함하는 PU의 Temporald 보다 크거나 같아야 한다.
참고 7 - NAL 유닛이 비 VCL NAL 유닛인 경우, TemporalId의 값은 비 VCL NAL 유닛이 적용되는 모든 AU들의 TemporalId 값들 중 최소 값과 같다. nal_unit_type이 PPS_NUT, PREFIX_APS_NUT, 또는 SUFFIX_APS_NUT와 같을 때, TemporalId는 모든 PPS 및 APS가 비트스트림의 시작 부분에 포함될 수 있으므로 (가령, 그것들이 대역 바깥으로 전송되고 수신기가 그것들을 비트스트림의 시작 부분에 배치하는 경우), 포함하는 AU의 TemporalId보다 크거나 같을 수 있으며, 여기서 첫 번째 코딩된 영상은 0과 같은 TemporalId를 갖는다.
7.4.2.3 RBSP내의 SODB의 캡슐화(informative)
이 절은 본 명세서의 필수적인 부분을 형성하지 않는다.
RBSP 내의 SODB의 캡슐화의 형태 및 NAL 유닛 내의 RBSP의 캡슐화를 위한 emulation_prevention_three_byte의 사용은 다음 목적들을 위해 설명된다.
-
임의의 SODB가 NAL 유닛 내에서 표현되도록 허용하면서 NAL 유닛들 내에서 시작 코드들의 에뮬레이션을 방지하기 위해.
-
RBSP의 종단에서 시작되는 rbsp_stop_one_bit를 RBSP에서 검색함으로써 NAL 유닛 내 SODB의 종단의 식별을 가능하게 하기 위해.
-
NAL 유닛이 일부 상황에서 (하나 이상의 cabac_zero_word 신택스 요소들을 사용하여) SODB의 크기 보다 더 큰 크기를 가지도록 하기 위해.
인코더는 아래 절차로 RBSP로부터 NAL 유닛을 산출할 수 있다.
1.
다음 이진 패턴들의 바이트 정렬된 비트들을 위해 RBSP 데이터가 검색된다.
'00000000 00000000 000000xx' (여기서 'xx'는 임의의 2 비트 패턴을 표현: '00', '01', '10', or '11'),
그리고 0x03과 같은 바이트는 비트 패턴을 패턴으로 대체하기 위해 삽입된다.
'00000000 00000000 00000011 000000xx',
그리고 마지막으로, RBSP의 마지막 바이트가 (RBSP가 cabac_zero_word 에서 종결되는 경우에만 발생할 수 있는) 0x00와 같은 경우, 0x03과 같은 최종 바이트가 데이터의 종단에 덧붙여진다. (4 바이트 시퀀스 0x00000300에 의해 대체되는) RBSP 내의 바이트 정렬된 3 바이트 시퀀스 0x000000의 마지막 제로 바이트는, 위에 명시된 이진 패턴들을 가지는 바이트 정렬된 비트들의 다음 발생을 위해 RBSP를 탐색할 때 고려된다.
2.
그 다음으로, 바이트들의 결과적인 시퀀스는 NAL 유닛 헤더로 프리릭스되며, 상기 헤더 내에서 nal_unit_type은 NAL 유닛에서 RBSP 데이터 구조의 타입을 지시한다.
위에서 명시된 프로세스의 결과는 전체 NAL 유닛의 구성이다.
본 프로세스는 아래 두 사항을 모두 보장하는 동시에 NAL 유닛에서 임의의 SODB가 표현될 수 있도록 허용할 수 있다.
-
어떤 바이트 정렬된 시작 코드 프리픽스도 NAL 유닛 내에서 에뮬레이트되지 않는다.
바이트 정렬과 무관하게, 시작 코드 프리픽스 앞의 8개의 제로 값 비트들의 어떤 시퀀스도 NAL 유닛 내에서 에뮬레이트되지 않는다.
7.4.2.4 비트스트림에서 NAL 유닛들의 순서
7.4.2.4.1 일반사항
7.4.2.4절의 하위 절들은 비트스트림 내 NAL 유닛들의 순서에 관한 제약들을 명시한다.
이 제약들을 준수하는 비트스트림 내 NAL 유닛들의 모든 순서는 텍스트에서 NAL 유닛들의 디코딩 순서로 지칭된다.
NAL 유닛내에서, 7.3 및 D.2절들에서의 신택스는 신택스 요소들의 디코딩 순서를 명시한다. VUI 파라미터들 또는 ITU-T H.SEI | ISO/IEC 23002-7에서 명시되는 임의의 SEI 메시지가 본 명세서에서 명시되는 NAL 유닛에 포함되는 경우, 상기 VUI 파라미터들 또는 ITU-T H.SEI | ISO/IEC 23002-7에서 명시되는 상기 SEI 메시지의 신택스는 해당 신택스 요소들의 디코딩 순서를 명시한다. 디코더들은 NAL 유닛들 및 그것들의 신택스 요소들을 디코딩 순서로 수신할 수 있어야 한다.
7.4.2.4.2 AU들의 순서 및 그것들의 CVS들과의 연관성
비트스트림은 하나 이상의 CVS들로 구성된다.
CVS는 하나 이상의 AU들로 구성된다. PU들의 순서 및 그것들의 AU들과의 연관은 7.4.2.4.3절에서 기술된다.
CVS의 첫 번째 AU는 CVSS AU이며, 이때 존재하는 각각의 PU는 CLVSS PU이며, 이것은 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 IRAP PU이거나 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 GDR PU이다.
각 CVSS AU는 해당 CVS에 존재하는 레이어들 각각에 대한 PU를 가져야 한다.
비트스트림 부합성의 요건으로, EOS NAL 유닛을 포함하는 AU 다음에 AU가 존재하는 경우 그것은 CVSS AU에야 한다.
7.4.2.4.3 PU들의 순서 및 그것들의 AU들과의 연관성
AU는 nuh_layer_id의 오름차순으로 하나 이상의 PU들로 구성된다. NAL 유닛들 및 코딩된 픽처들의 순서 그리고 그것들의 PU들과의 연관성은 7.4.2.4.4절에서 기술된다.
AU에는 최대 하나의 AUD NAL 유닛이 있을 수 있다. AUD NAL 유닛이 AU에 존재하는 경우, 그것은 상기 AU의 첫 번째 NAL 유닛이어야 하며, 그 결과 그것은 상기 AU의 첫 번째 PU의 첫 번째 NAL 유닛이다.
AU에는 최대 하나의 EOB NAL 유닛이 있을 수 있다. EOB NAL 유닛이 AU에 존재하는 경우, 그것은 상기 AU의 마지막 NAL 유닛이어야 하며, 그 결과 그것은 상기 AU의 마지막 PU의 마지막 NAL 유닛이다.
VCL NAL 유닛이 PH NAL 유닛을 따르는 첫 번째 VCL NAL 유닛이고 아래 조건들 중 하나 이상의 참인 경우, 상기 VCL NAL 유닛은 AU의 첫 번째 VCL NAL 유닛이다 (그리고 결과적으로 상기 VCL NAL 유닛을 포함하는 PU는 상기 AU의 첫 번째 PU이다).
-
VCL NAL 유닛의 nuh_layer_id의 값은 디코딩 순서로 이전 픽처의 nuh_layer_id 미만이다.
-
VCL NAL 유닛의 ph_pic_order_cnt_lsb의 값은 디코딩 순서로 이전 픽처의 ph_pic_order_cnt_lsb와 상이하다.
-
VCL NAL 유닛에 대해 도출된 PicOrderCntVal는 디코딩 순서 상 이전 픽처의 PicOrderCntVal과 상이하다.
firstVclNalUnitInAu를 AU의 첫 번째 VCL NAL 유닛이라 하자. firstVclNalUnitInAu에 선행하면서 firstVclNalUnitInAu에 선행하는 마지막 VCL NAL 다음에 오는, 아래 NAL 유닛들 중 어느 것이 있다면, 그것의 첫 번째는 새로운 AU의 시작을 명시한다.
-
AUD NAL unit (존재하는 경우),
-
DCI NAL unit (존재하는 경우),
-
VPS NAL unit (존재하는 경우),
-
SPS NAL unit (존재하는 경우),
-
PPS NAL unit (존재하는 경우),
-
Prefix APS NAL unit (존재하는 경우),
-
PH NAL unit (존재하는 경우),
-
Prefix SEI NAL unit (존재하는 경우),
-
NAL unit with nal_unit_type equal to RSV_NVCL_26 (존재하는 경우),
-
NAL unit with nal_unit_type in the range of UNSPEC28..UNSPEC29 (존재하는 경우).
참고 - firstVclNalUnitInAu에 선행하면서 firstVclNalUnitInAu에 선행하는 마지막 VCL NAL 유닛 뒤에 오는 첫 번째 NAL 유닛이 있다면, 그것은 오직 상기 열거된 NAL 유닛들 중 하나 일 수밖에 없다.
비트스트림 부합성의 요건으로, 동일 레이어에 속하면서 EOS NAL 유닛을 포함하는 PU 다음의 특정 레이어의 다음 PU가 존재하는 경우, 그것은 CLVSS PU여야 하며, 이것은 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 IRAP PU 또는 1과 같은 NoOutputBeforeRecoveryFlag를 가지는 GDR PU이다.
7.4.2.4.4 NAL 유닛들 및 코딩된 픽처들의 순서 및 그것들의 PU들과의 연관성
PU는 제로 또는 하나의 PH NAL 유닛, 하나의 이상의 VCL NAL 유닛들을 포함하는 코딩된 픽처 하나, 그리고 제로 또는 그 이상의 다른 비 VCL NAL 유닛들로 구성된다. VCL NAL 유닛들의 코딩된 픽처들에 대한 연관 관계는 7.4.2.4.5절에 기술된다.
픽처가 하나 보다 많은 VCL NAL 유닛들로 구성된느 경우, PH NAL 유닛은 PU에 존재해야 한다.
만약 PH NAL 유닛이 PU에 존재한다면, 픽처의 첫 번째 VCL NAL 유닛은 상기 픽처의 디코딩 순서상 상기 PH NAL 유닛을 따르는 첫 번째 VCL NAL 유닛이다. 그렇지 않다면 (어떤 PH NAL 유닛도 상기 PU에 존재하지 않는다면), 픽처의 첫 번째 VCL NAL 유닛은 상기 픽처의 유일한 VCL NAL 유닛이다.
픽처 내의 (AUD 및 EOB NAL 유닛들 외의) 비 VCL NAL 유닛들의 순서는 아래 제약들을 준수해야 한다.
-
PH NAL 유닛이 PU에 존재하는 경우, 그것은 상기 PU의 첫 번째 VCL NAL 유닛에 선행해야 한다.
-
임의의 DCI NAL 유닛들, VPS NAL 유닛들, SPS NAL 유닛들, PPS NAL 유닛들, 프리릭스 APS NAL 유닛들, 프리픽스 SEI NAL 유닛들, RSV_NVCL_26과 같은 nal_unit_type을 가지는 NAL 유닛들, 또는 UNSPEC_28 내지 UNSPEC_29의 범위에서 nal_unit_type를 가지는 NAL 유닛들이 PU에 존재하는 경우, 그것들은 상기 PU의 마지막 VCL NAL 유닛을 따르면 안 된다.
-
임의의 DCI NAL 유닛들, VPS NAL 유닛들, SPS NAL 유닛들, 또는 PPS NAL 유닛들이 PU에 존재하는 경우, 그것들은 상기 PU의 PH NAL 유닛(존재하는 경우)에 선행해야 하고, 상기 PU의 첫 번째 VCL NAL 유닛에 선행해야 한다.
-
SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT, 또는 RSV_NVCL_27과 같거나 UNSPEC_30 내지 UNSPEC_31의 범위에서 nal_unit_type를 PU에서 가지는 NAL 유닛들은 상기 PU의 첫 번째 VCL NAL 유닛에 선행하면 안 된다.
-
EOS NAL 유닛이 PU에 존재하는 경우, 그것은 EOB NAL 유닛(존재하는 경우) 외의 상기 PU를 가지는 모든 NAL 유닛들 가운데 마지막 NAL 유닛이어야 한다.
7.4.2.4.5 VCL NAL 유닛들의 순서 및 그것들의 코딩된 픽처와의 연관성
코딩된 픽처 내의 VCL NAL 유닛들의 순서는 아래와 같이 제약된다.
-
코딩된 픽처의 임의의 두 코딩된 슬라이스 NAL 유닛들 A 및 B에 대해, subpicIdxA 및 subpicIdxB가 그것들의 서브픽처 레벨 인덱스 값들이라하고, sliceAddrA 및 sliceddrB는 그것들의 slice_address 값들이라 하자.
-
아래 조건들 중 어느 하나가 참인 경우, 코딩된 슬라이스 NAL 유닛 A는 코딩된 NAL 유닛 B에 선행해야 한다.
-
subpicIdxA는 subpicIdxB 미만.
-
subpicIdxA는 subpicIdxB와 같고, sliceAddrA는 sliceAddrB 미만.
7.4.3. 로 바이트 시퀀스 페이로드, 트레일링 비트, 그리고 바이트 정렬 시맨틱스
7.4.3.1 디코딩 능력 정보 RBSP 시맨틱스
DCI RBSP는 비트스트림에 존재함으로써, 즉, 비트스트림의 첫 번째 AU에 포함됨으로써, 또는 외부 수단을 통해 제공됨으로써, 디코더에 사용가능할 수 있다.
참고 1 - 상기 DCI RBSP에 포함된 정보는 디코딩 프로세스의 작동을 위해 필수적이지 않다.
존재하는 경우, 비트스트림의 모든 DCI NAL 유닛들은 동일한 콘텐츠를 가져야 한다.
dci_max_sublayers_minus1 플러스 1은 비트스트림의 각 CVS에서 레이어에 존재할 수 있는 시간적 서브레이어들의 최대 수를 명시한다. dci_max_sublayers_minus1의 값은 0 내지 6의 범위에 있어야 한다.
dci_reserved_zero_bit는 본 명세서의 본 버전에 부합하는 비트스트림들에서 0이어야 한다. dci_reserved_zero_bit에 대한 값 1은 ITU-T | ISO/IEC에 의해 미래의 사용을 위해 보류되었다.
dci_num_ptls_minus1 플러스 1은 DCI NAL 유닛에서 profile_tier_level( ) 신택스 요소들의 수를 명시한다.
비트스트림 부합성의 요건으로, 비트스트림에서 CVS에서의 각 OLS는 DCI NAL 유닛 내의 profile_tier_level( ) 신택스 구조들 중 적어도 하나에 부합해야 한다.
참고 2 - DCI NAL 유닛은 multiple profile_tier_level( ) 신택스 구조들에서 전달될 수 있고 다수의 OLS들에 집합적으로 적용되는 PTL 정보을 포함할 수 있으며, OLS들 각각에 개별적으로 PTL 정보를 포함할 필요는 없다.
0과 같은 dci_extension_flag는 어떠한 dci_extension_data_flag 신택스 요소들도 DCI RBSP 신택스 구조에 존재하지 않는다고 명시한다. 1과 같은 dci_extension_flag는 dci_extension_data_flag 신택스 요소들의 DCI RBSP 신택스 구조에 존해한다고 명시한다.
dci_extension_data_flag는 어떤 값도 가질 수 있다. 그것의 존재 및 값은 프로파일에 대한 디코더 적합성에 영향을 주지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 dci_extension_data_flag 신택스 요소들을 무시해야 한다.
7.4.3.2 비디오 파라미터 세트 RBSP 시맨틱스
VPS RBSP는 0과 같은 TemporalId를 가지는 적어도 하나의 AU에 포함되거나 외부 수단을 통해 제공되어, 그것이 참조되기 전에 디코딩 프로세스에 이용가능해야 한다.
CVS에서 vps_video_parameter_set_id의 특정 값을 가지는 모든 VPS NAL 유닛들은 동일한 콘텐츠를 가져야 한다.
vps_video_parameter_set_id 는 다른 신택스 요소들에 참조할 VPS에 대한 식별자를 제공한다. vps_video_parameter_set_id의 값은 0 보다 커야 한다.
vps_max_layers_minus1 플러스 1은 VPS를 참조하는 각 CVS에서 허용된 레이어들의 최대 값을 명시한다.
vps_max_sublayers_minus1 플러스 1은 VPS를 참조하는 각 CVS에 존재할 수 있는 시간적 서브레이어들의 최대 수를 명시한다. vps_max_sublayers_minus1의 값은 0 내지 6의 범위에 있어야 한다.
1과 같은 vps_all_layers_same_num_sublayers_flag는 시간적 서브레이어들의 수가 VPS를 참조하는 각 CVS에서 모든 레이어들에 대해 동일하다고 명시한다. 0과 같은 vps_all_layers_same_num_sublayers_flag는 VPS를 참조하는 각 CVS에서 레이어들이 동일한 수의 시간적 서브레이어들을 가질 수 있거나 가질 수 없다고 명시한다. 존재하지 않는 경우, vps_all_layers_same_num_sublayers_flag의 값은 1과 같은 것으로 추론된다.
1과 같은 vps_all_independent_layers_flag는 CVS의 모든 레이어들의 인터 레이어 예측을 사용하지 않고 독립적으로 코딩된다고 명시한다. 0과 같은 vps_all_independent_layers_flag는 CVS 내의 하나 또는 그 이상의 레이어들의 인터 레이어 예측을 사용할 수 있다고 명시한다. 존재하지 않는 경우, vps_all_independent_layers_flag의 값은 1과 같은 것으로 추론된다.
vps_layer_id[ i ]는 i 번째 레이어의 nuh_layer_id 값을 명시한다. 임의의 두 음의 정수 아닌 값들 m 및 n에 대해, m이 n 미만이면, vps_layer_id[ m ]의 값은 vps_layer_id[ n ]의 값 미만이어야 한다.
1과 같은 vps_independent_layer_flag[ i ]는 인덱스 i를 가지는 레이어가 인터 레이어 예측을 사용하지 않는다고 명시한다. 0과 같은 vps_independent_layer_flag[ i ]는 인덱스 i를 가지는 레이어가 인터 레이어 예측을 사용할 수 있으며, 0 내지 i-1의 범위에서 j에 대한 신택스 요소들 vps_direct_ref_layer_flag[ i ][ j ]는 VPS에 존재함을 명시한다. 존재하지 않는 경우, vps_independent_layer_flag[ i ]의 값은 1과 같은 것으로 추론된다.
0과 같은 vps_direct_ref_layer_flag[ i ][ j ]는 인덱스 j를 가지는 레이어가 인덱스 i를 가지는 레이어에 대한 직접적인 참조 레이어가 아님을 명시한다. 1과 같은 vps_direct_ref_layer_flag [ i ][ j ]는 인덱스 j를 가지는 레이어가 인덱스 i를 가지는 레이어에 대한 직접적인 참조 레이어임을 명시한다. vps_direct_ref_layer_flag[ i ][ j ]가 0 내지 vps_max_layers_minus1의 범위에서 i 및 j에 대해 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. vps_independent_layer_flag[ i ]가 0과 같은 경우, 0 내지 i-1의 범위에서 j의 적어도 하나의 값이 있어야 하며 그리하여 vps_direct_ref_layer_flag[ i ][ j ]의 값은 1과 같다.
변수들 NumDirectRefLayers[ i ], DirectRefLayerIdx[ i ][ d ], NumRefLayers[ i ], RefLayerIdx[ i ][ r ] 및 LayerUsedAsRefLayerFlag[ j ]는 다음과 같이 유도된다.
vps_layer_id[ i ]와 같은 nuh_layer_id를 가지는 레이어의 레이어 인덱스를 명시하는 변수 GeneralLayerIdx[ i ]는 다음과 같이 유도된다.
0 내지 vps_max_layers_minus1의 범위에서, 임의의 두 상이한 값들 i 및 j에 대해, dependencyFlag[ i ][ j ]이 1과 같은 경우, 비트스트림 부합성의 요건으로, i 번째 레이어에 적용되는 chroma_format_idc 및 bit_depth_minus8의 값들은 j 번째 레이어에 적용되는 chroma_format_idc 및 bit_depth_minus8의 값들과 각각 같아야 한다.
1과 같은 max_tid_ref_present_flag[ i ]는 신택스 요소 max_tid_il_ref_pics_plus1[ i ]가 존재한다고 명시한다. 0과 같은 max_tid_ref_present_flag[ i ]는 신택스 요소 max_tid_il_ref_pics_plus1[ i ]가 존재하지 않는다고 명시한다.
0과 같은 max_tid_il_ref_pics_plus1[ i ]는 인터 레이어 예측이 i 번째 레이어의 비 IRAP 픽처들에 의해 사용되지 않는다고 명시한다. 0 보다 큰 max_tid_il_ref_pics_plus1[ i ]는, i 번째 레이어의 픽처들을 디코딩하기 위해, max_tid_il_ref_pics_plus1[ i ] - 1 보다 큰 TemporalId를 가지는 어떤 픽처도 ILRP로 사용되지 않는다고 명시한다. 존재하지 않는 경우, max_tid_il_ref_pics_plus1[ i ]의 값은 7과 같은 것으로 추론된다.
1과 같은 each_layer_is_an_ols_flag는 각 OLS가 오직 하나의 레이어만을 포함하고 VPS를 참조하는 CVS에서 각 레이어 자체는 유일한 출력 레이어인 단일하게 포함된 레이어를 가지는 OLS임을 명시한다. 0과 같은 each_layer_is_an_ols_flag는 OLS가 둘 이상의 레이어를 포함할 수 있다고 명시한다. vps_max_layers_minus1이 0과 같은 경우, each_layer_is_an_ols_flag의 값은 1과 같은 것으로 추론된다. 그렇지 않고, vps_all_independent_layers_flag가 0과 같으면, each_layer_is_an_ols_flag의 값은 0과 같은 것으로 추론된다.
0과 같은 ols_mode_idc는 VPS가 명시하는 OLS들의 총 수가 vps_max_layers_minus1 + 1와 같다고 명시하며, i 번째 OLS를 0 내지 i까지의 레이어 인덱스들를 가지는 레이어들을 포함하고, 각각의 OLS에 대해 오직 최상위 레이어만이 출력된다.
1과 같은 ols_mode_idc는 VPS에 의해 명시되는 OLS들의 총 수가 vps_max_layers_minus1 + 1와 같다고 명시하며, i번째 OLS는 0 내지 i까지의 레이어 인덱스들를 가지는 레이어들을 포함하고, 각각의 OLS에 대해 모든 레이어들이 출력된다.
2인 ols_mode_idc는 VPS에 의해 명시되는 OLS들의 총 수가 명시적으로 시그널링되며, 각각의 OLS에 대해 출력 레이어들은 명시적으로 시그널링되고, 다른 레이어들은 OLS의 출력 레이어들의 직적 또는 간접 출력 레이어들인 레이어들임을 명시한다.
ols_mode_idc의 값은 0 내지 2의 범위에 있어야 한다. ols_mode_idc의 값 3은 ITU-T | ISO/IEC에 의해 미래에 사용하도록 보류된다.
vps_all_independent_layers_flag가 1과 같고 each_layer_is_an_ols_flag가 0과 같은 경우, ols_mode_idc의 값은 2와 같은 것으로 추론된다.
num_output_layer_sets_minus1 플러스 1은, ols_mode_idc가 2와 같은 경우, VPS가 명시하는 OLS들의 총 수를 명시한다.
VPS가 명시하는 OLS들의 총 수를 명시하는, 변수 TotalNumOlss는 다음과 같이 유도된다.
1과 같은 ols_output_layer_flag[ i ][ j ]는 vps_layer_id[ j ]와 같은 nuh_layer_id를 가지는 레이어가, ols_mode_idc가 2와 같은 경우, i번째 OLS의 출력 레이어임을 명시한다. 0과 같은 ols_output_layer_flag[ i ][ j ]는 vps_layer_id[ j ]와 같은 nuh_layer_id를 가지는 레이어가, ols_mode_idc가 2와 같은 경우, i번째 OLS의 출력 레이어가 아님을 명시한다.
i번째 OLS에서 출력 레이어들의 수를 명시하는 변수 NumOutputLayersInOls[ i ], i번째 OLS에서 j번째 레이어에서 서브 레이어들의 수를 명시하는 변수 NumSubLayersInLayerInOLS[ i ][ j ], i번째 OLS에서 j번째 출력의 nuh_layer_id 값을 명시하는 변수 OutputLayerIdInOls[ i ][ j ], 그리고 k번째 레이어가 적어도 하나의 OLS에서 출력 레이어로 사용되는지 여부를 명시하는 변수 LayerUsedAsOutputLayerFlag[ k ]는 다음과 같이 유도된다.
0 내지 vps_max_layers_minus1의 범위에서 i의 각 값에 대해, LayerUsedAsRefLayerFlag[ i ] 및 LayerUsedAsOutputLayerFlag[ i ]의 값들은 모두 0과 같지 않아야 한다. 달리 말하면, 적어도 하나의 OLS의 출력 레이어도 다른 어떤 레이어의 직접적인 참조 레이어도 아닌 레이어가 있어서는 안 된다.
각각의 OLS에 대해, 출력 레이어인 적어도 하나의 레이어가 있어야 한다. 달리 말하면, 0 내지 TotalNumOlss - 1의 범위에서 i의 임의의 값에 대해, NumOutputLayersInOls[ i ]의 값은 1 보다 크거나 같아야 한다.
i번째 OLS에서 레이어들의 수를 명시하는 변수 NumLayersInOls[ i ] 및 i번째 OLS에서 j번째 레이어의 nuh_layer_id 값을 명시하는 변수 LayerIdInOls[ i ][ j ]는 다음과 같이 유도된다.
참고 1 - 0번째 OLS는 최하위 레이어만을 (가령, vps_layer_id[ 0 ]와 같은 nuh_layer_id를 가진 레이어) 포함하며, 상기 0번째 OLS에 대해서는 상기 포함되는 레이어만이 출력된다.
LayerIdInOls[i][j]와 같은 nuh_layer_id를 갖는 레이어의 OLS 레이어 인덱스를 명시하는 변수 OlsLayerIdx[i][j]는 다음과 같이 유도된다.
각 OLS의 최하위 레이어는 독립된 레이어여야 한다. 즉, 0 내지 TotalNumOlss - 1의 범위의 각각의 i에 대해, vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]의 값은 1어야 한다.
각 레이어는 VPS에 의해 명시된 적어도 하나의 OLS에 포함되어야 한다. 즉, 0 내지 vps_max_layers_minus1의 범위에서 k에 대한 vps_layer_id[k] 중 하나와 같은 nuh_layer_id nuhLayerId의 특정 값을 갖는 각 레이어에 대해, i 및 j 값의 적어도 하나의 쌍이 있을 수 있으며, 여기서 i는 0 내지 TotalNumOlss - 1의 범위에 있고, j는 NumLayerInOls[i] - 1의 범위에 있어, LayerIdInOls[i][j]의 값은 nuhLayerId와 같다.
vps_num_ptls_minus1 플러스 1은 VPS에서 profile_tier_level( ) 신택스 구조들의 수를 명시한다. vps_num_ptls_minus1의 값은 TotalNumOlss의 값 미만이어야 한다.
1과 같은 pt_present_flag[ i ]는 프로파일, 티어, 그리고 일반 제약사항 정보가 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재함을 명시한다. 0과 같은 pt_present_flag[ i ]는 프로파일, 티어, 그리고 일반 제약사항 정보가 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재하지 않음을 명시한다. pt_present_flag[ 0 ]의 값은 1과 같은 것으로 추론된다. pt_present_flag[ i ]가 0과 같은 경우, VPS 내 i번째 profile_tier_level( ) 신택스 구조에 대한 프로파일, 티어, 그리고 일반 제약사항 정보는 VPS 내 i-1번째 profile_tier_level( ) 신택스 구조에 대한 것과 같다고 추론된다.
ptl_max_temporal_id[ i ]는 최상위 서브 레이어 표현에 TemporalId를 명시하며, 이것에 대한 레벨 정보는 VPS의 i번째 profile_tier_level( ) 신택스 구조에 존재한다. ptl_max_temporal_id[ i ]의 값은 0 내지 vps_max_sublayers_minus1의 범위에 있어야 한다. vps_max_sublayers_minus1이 0과 같은 경우, ptl_max_temporal_id[ i ]의 값은 0과 같은 것으로 추론된다. vps_max_sublayers_minus1이 0 보다 크고 vps_all_layers_same_num_sublayers_flag가 1과 같은 경우, ptl_max_temporal_id[ i ]의 값은 vps_max_sublayers_minus1과 같은 것으로 추론된다.
vps_ptl_alignment_zero_bit는 0과 같아야 한다.
ols_ptl_idx[ i ]는, VPS에서 profile_tier_level( ) 신택스 구조들의 목록에 대한, i번째 OLS에 적용되는 profile_tier_level( ) 신택스 구조의 인덱스를 명시한다. 존재하는 경우, ols_ptl_idx[ i ]의 값은 0 내지 vps_num_ptls_minus1의 범위에 있어야 한다. vps_num_ptls_minus1이 0과 같은 경우, ols_ptl_idx[ i ]의 값은 0과 같은 것으로 추론된다.
NumLayersInOls[ i ]이 1과 같은 경우, i번째 OLS에 적용되는 profile_tier_level( ) 신택스 구조 또한 i번째 OLS에서 레이어에 의해 참조되는 SPS에 존재한다. 비트스트림 부합성의 요건으로, NumLayersInOls[ i ]가 1과 같은 경우, VPS에서 그리고 i번째 OLS에 대한 SPS에서 시그널링되는 profile_tier_level( ) 신택스 구조들은 동일해야 한다.
vps_num_dpb_params는 VPS에서의 dpb_parameters( ) 신택스 구조들의 수를 명시한다. vps_num_dpb_params의 값은 0 내지 16의 범위에 있어야 한다. 존재하는 경우, vps_num_dpb_params의 값은 0과 같다고 추론된다.
vps_sublayer_dpb_params_present_flag는 VPS 내 dpb_parameters( ) 신택스 구조들에서 max_dec_pic_buffering_minus1[ ], max_num_reorder_pics[ ] 그리고 max_latency_increase_plus1[ ] 신택스 요소들의 존재를 제어하기 위해 사용된다. 존재하지 않는 경우, vps_sub_dpb_params_info_present_flag는 0과 같다고 추론된다.
dpb_max_temporal_id[ i ]는 최상위 서브 레이어 표현의 TemporalId를 명시하며, 이것에 대해 DPB 파라미터들의 VPS의 i번째 dpb_parameters( ) 신택스 구조에 존재할 수 있다. dpb_max_temporal_id[ i ]의 값은 0 내지 vps_max_sublayers_minus1의 범위에 있어야 한다. vps_max_sublayers_minus1이 0과 같은 경우, dpb_max_temporal_id[ i ]의 값은 0과 같다고 추론된다. vps_max_sublayers_minus1이 0보다 크고 vps_all_layers_same_num_sublayers_flag가 1과 같은 경우, dpb_max_temporal_id[ i ]는 vps_max_sublayers_minus1과 같다고 추론된다.
ols_dpb_pic_width[ i ]는 i번째 OLS에 대한 각 픽처 저장 버퍼의 폭을 루마 샘플 단위로 명시한다.
ols_dpb_pic_height[ i ]는 i번째 OLS에 대한 각 픽처 저장 버퍼의 높이를 루마 샘플 단위로 명시한다.
ols_dpb_params_idx[ i ]는, NumLayersInOls[ i ]가 1 보다 큰 경우 i번째 OLS에 적용되는 dpb_parameters( ) 신택스 구조의 인덱스를 VPS 내 dpb_parameters( ) 신택스 구조들의 목록에 대해 명시한다. 존재하는 경우, ols_dpb_params_idx[ i ]의 값은 0 내지 vps_num_dpb_params - 1의 범위에 있어야 한다. ols_dpb_params_idx[ i ]가 존재하지 않는 경우, ols_dpb_params_idx[ i ]의 값은 0과 같은 것으로 추론된다.
NumLayersInOls[ i ]이 1과 같은 경우, i번째 OLS에 적용되는 dpb_parameters( ) 신택스 구조는 i번째 OLS에서 레이어에 의해 참조되는 SPS에 존재한다.
1과 같은 vps_general_hrd_params_present_flag는 신택스 구조 general_hrd_parameters( ) 및 기타 HRD 파라미터들이 VPS RBSP 신택스 구조에 존재함을 명시한다. 0과 같은 vps_general_hrd_params_present_flag는 신택스 구조 general_hrd_parameters( ) 및 기타 HRD 파라미터들이 VPS RBSP 신택스 구조에 존재하지 않음을 명시한다. 존재하지 않는 경우, vps_general_hrd_params_present_flag의 값은 0과 같다고 추론된다.
NumLayersInOls[ i ]이 1과 같은 경우, i번째 OLS에 적용되는 general_hrd_parameters( ) 신택스 구조는 i번째 OLS에서 레이어에 의해 참조되는 SPS에 존재한다.
1과 같은 vps_sublayer_cpb_params_present_flag는 VPS에서 i번째 ols_hrd_parameters( ) 신택스 구조가 0 내지 hrd_max_tid[ i ]의 범위의 TemporalId를 가지는 서브 레이어 표현에 대한 HRD 파라미터들을 포함한다고 명시한다. 0과 같은 vps_sublayer_cpb_params_present_flag는 VPS에서 i번째 ols_hrd_parameters( ) 신택스 구조가 hrd_max_tid[ i ] 와 같은 TemporalId를 가지는 서브 레이어 표현에 대한 HRD 파라미터들 만을 포함한다고 명시한다. vps_max_sublayers_minus1이 0과 같은 경우, vps_sublayer_cpb_params_present_flag의 값은 0과 같다고 추론된다.
vps_sublayer_cpb_params_present_flag가 0과 같은 경우, 0 내지 hrd_max_tid[ i ]의 범위의 TemporalId를 가지는 서브 레이어 표현에 대한 HRD 파라미터들은 hrd_max_tid[ i ] 와 같은 TemporalId를 가지는 서브 레이어 표현에 대한 것과 같다고 추론된다. 이것들은 fixed_pic_rate_general_flag[ i ] 신택스 구조에서 sublayer_hrd_parameters( i ) 신택스 구조까지 HRD 파라미터들을 ols_hrd_parameters 신택스 구조에서 "if( general_vcl_hrd_params_present_flag )" 조건하에 직접적으로 포함한다.
num_ols_hrd_params_minus1 플러스 1은 vps_general_hrd_params_present_flag가 1과 같은 경우 general_hrd_parameters( ) 신택스 구조에 존재하는 ols_hrd_parameters( ) 신택스 구조들의 수를 명시한다. num_ols_hrd_params_minus1의 값은 0 내지 TotalNumOlss - 1의 범위에 있어야 한다.
hrd_max_tid[ i ]는 최상위 서브 레이어 표현의 TemporalId를 명시하며, 이것에 대한 HRD 파라미터들은 i번째 ols_hrd_parameters( ) 신택스 구조에 포함된다. hrd_max_tid[ i ]의 값은 0 내지 ols_hrd_parameters( )의 범위에 있어야 한다. vps_max_sublayers_minus1가 0과 같은 경우, hrd_max_tid[ i ]의 값은 0과 같다고 추론된다. vps_max_sublayers_minus1이 0 보다 크고 vps_all_layers_same_num_sublayers_flag가 1과 같은 경우, hrd_max_tid[ i ]의 값은 vps_max_sublayers_minus1과 같다고 추론된다.
ols_hrd_idx[ i ]는, NumLayersInOls[ i ]가 1보다 큰 경우 i번째 OLS에 적용되는 ols_hrd_parameters( ) 신택스 구조의 인덱스를, VPS 내 ols_hrd_parameters( ) 신택스 구조들의 항목에 대해 명시한다. ols_hrd_idx[[ i ]의 값은 0 내지 num_ols_hrd_params_minus1의 범위에 있어야 한다. NumLayersInOls[ i ]가 1과 같은 경우, i번째 OLS에 적용되는 ols_hrd_parameters( ) 신택스 구조는 i번째 OLS에서 레이어에 의해 참조되는 SPS에 존재한다.
만약 num_ols_hrd_param_minus1 + 1의 값이 TotalNumOlss와 같다면, ols_hrd_idx[ i ]의 값은 1과 같다고 추론된다. 그렇지 않고, NumLayersInOls[ i ]이 1 보다 크고 num_ols_hrd_params_minus1이 0과 같으면, ols_hrd_idx[ i ]의 값은 0과 같다고 추론된다.
0과 같은 vps_extension_flag은 어떤 vps_extension_data_flag 신택스 요소들도 VPS RBSP 신택스 구조에 존재하지 않는다고 명시한다. 1과 같은 vps_extension_flag은 vps_extension_data_flag 신택스 요소들이 VPS RBSP 신택스 구조에 존재한다고 명시한다.
vps_extension_data_flag는 어떤 값도 가질 수 있다. 그것의 존재와 값은 본 명세서의 본 버전에 명시되는 프로파일들에 대한 디코더의 적합성에 영향을 미치지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 vps_extension_data_flag 신택스 요소들을 무시해야 한다.
7.4.3.3 시퀀스 파라미터 세트 RBSP 시맨틱스
SPS RBSP는 0과 같은 TemporalId를 가지는 적어도 하나의 AU에 포함되거나 외부 수단을 통해 제공되어, 그것이 참조되기 전에 디코딩 프로세스에 이용가능해야 한다.
CVS에서 sps_seq_parameter_set_id의 특정 값을 가지는 모든 SPS NAL 유닛들은 동일한 콘텐츠를 가져야 한다.
sps_seq_parameter_set_id 는 다른 신택스 요소들에 참조할 SPS에 대한 식별자를 제공한다.
SPS NAL 유닛들은, nuh_layer_id 값들에 상관없이, sps_seq_parameter_set_id의 동일한 값 공간을 공유한다.
spsLayerId는 특정 SPS NAL 유닛의 nal_layer_id의 값이라 하고, vclLayerId가 특정 VCL NAL 유닛의 nuh_layer_id의 값이라 하자. spsLayerId가 vclLayerId 미만이 아니고 spsLayerId와 같은 nuh_layer_id를 가지는 레이어가 vclLayerId와 같은 nuh_layer_id를 가지는 레이어를 포함하는 적어도 하나의 OLS에 포함되지 않는다면, 상기 특정 VCL NAL 유닛은 상기 특정 SPS NAL 유닛을 참조하지 않아야 한다.
0보다 큰 경우, sps_video_parameter_set_id는 SPS가 참조하는 VPS에 대한 vps_video_parameter_set_id의 값을 명시한다.
sps_video_parameter_set_id가 0과 같은 경우, 다음이 적용된다.
-
SPS가 VPS를 참조하지 않는다.
-
SPS를 참조하는 각 CLVS를 디코딩할 때 어떤 VPS도 참조되지 않는다.
-
vps_max_layers_minus1의 값은 0과 같은 것으로 추론된다.
-
CVS는 오직 하나의 레이어만을 포함해야 한다(즉, CVS 내의 모든 VCL NAL 유닛은 nuh_layer_id의 동일한 값을 가져야 한다).
-
GeneralLayerIdx[ nuh_layer_id ]의 값은 0과 같은 것으로 추론된다.
-
vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]의 값은 1과 같은 것으로 추론된다.
vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 1과 같은 경우, 특정 nuh_layer_id value nuhLayerId를 가지는 CLVS에 의해 참조되는 SPS는 nuhLayerId와 같은 nuh_layer_id를 가져야 한다.
sps_video_parameter_set_id의 값은 CVS에서 CLVS들에 의해 참조되는 모든 SPS들에서 동일해야 한다.
sps_max_sublayers_minus1 플러스 1은 SPS를 참조하는 각 CLVS에 존재할 수 있는 시간적 서브 레이어들의 최대 수를 명시한다. sps_max_sublayers_minus1의 값은 0 내지 vps_max_sublayers_minus1의 범위 내에 있어야 한다.
sps_reserved_zero_4bits 본 명세서의 본 버전에 부합하는 비트스트림들에서 0과 같아야 한다. sps_reserved_zero_4bits에 대한 다른 값들은 ITU-T | ISO/IEC에 의해 미래 사용을 위해 보류되었다.
1과 같은 sps_ptl_dpb_hrd_params_present_flag은 profile_tier_level( ) 신택스 구조 및 dpb_parameters( ) 신택스 구조가 SPS에 존재한다고 명시하며, general_hrd_parameters( ) 신택스 구조 및 ols_hrd_parameters( ) 신택스 구조 또한 SPS에 존재할 수 있다. 1과 같은 sps_ptl_dpb_hrd_params_present_flag은 이 네 가지 신택스 구조들 중 어느 것도 SPS에 존재하지 않는다고 명시한다. sps_ptl_dpb_hrd_params_present_flag의 값은 vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]와 같아야 한다.
1과 같은 gdr_enabled_flag는 GDR 파라미터들이 SPS를 참조하는 CLVS들에 존재할 수 있다고 명시한다. 0과 같은 gdr_enabled_flag는 GDR 파라미터들이 SPS를 참조하는 CLVS들에 존재하지 않는다고 명시한다.
chroma_format_idc는 6.2절에서 명시된 바와 같은 루마 샘플링과 관련된 크로마 샘플링을 명시한다.
1과 같은 separate_colour_plane_flag는 4:4:4 크로마 포맷의 세 컬러 성분들이 별도로 코딩된다고 명시한다. 0과 같은 separate_colour_plane_flag는 상기 컬러 성분들이 별도로 코딩되지 않는다고 명시한다. separate_colour_plane_flag가 존재하지 않는 경우, 그것은 0과 같다고 추론된다. separate_colour_plane_flag가 1과 같은 경우, 코딩된 픽처는 세 개의 성분들로 구성되며, 이것들 각각은 하나의 컬러 평면(Y, Cb 또는 Cr)의 코딩된 샘플들로 구성되고 모노크롬 코딩 신택스를 사용한다. 이 경우, 각 컬러 평면은 특정한 colour_plane_id 값과 연관된다.
참고 1 - 상이한 colour_plane_id 값들을 가지는 컬러 평면들 간의 디코딩 프로세들에서의 의존성은 존재하지 않는다. 예를 들어, colour_plane_id의 하나의 값을 가지는 모노크롬 픽처의 디코딩 프로세스는 상이한 colour_plane_id 값들을 가지는 모노크롬 픽처들로부터 어떠한 데이터도 인터 예측을 위해 사용하지 않는다.
separate_colour_plane_flag의 값에 의존하여, 변수 ChromaArrayType의 값은 아래와 같이 할당된다.
-
만약 separate_colour_plane_flag가 0과 같다면, ChromaArrayType은 chroma_format_idc와 같도록 설정된다.
-
그렇지 않으면(separate_colour_plane_flag가 1과 같으면), ChromaArrayType은 0과 같게 설정된다.
1과 같은 res_change_in_clvs_allowed_flag는 픽처 공간 해상도가 SPS를 참조하는 CLVS 내에서 변할 수 있다고 명시한다. 0과 같은 res_change_in_clvs_allowed_flag는 픽처 공간 해상도가 SPS를 참조하는 어떤 CLVS 내에서도 변하지 않는다고 명시한다.
pic_width_max_in_luma_samples는 SPS를 참조하는 각각의 디코딩된 픽처의 최대 폭을 루마 샘플의 단위로 명시한다. pic_width_max_in_luma_samples는 0과 같아서는 안 되며 Max( 8, MinCbSizeY )의 정수 배여야 한다.
비트스트림 부합성의 요건으로, SPS를 참조하는 하나 이상의 레이어들을 포함하는 OLS 인덱스 i를 가지는 임의의 OLS에 대해, pic_width_max_in_luma_samples의 값은 ols_dpb_pic_width[ i ]의 값 이하여야 한다.
pic_height_max_in_luma_samples는 SPS를 참조하는 각각의 디코딩된 픽처의 최대 높이를 루마 샘플의 단위로 명시한다. pic_height_max_in_luma_samples는 0과 같아서는 안 되며 Max( 8, MinCbSizeY )의 정수 배여야 한다.
비트스트림 부합성의 요건으로, SPS를 참조하는 하나 이상의 레이어들을 포함하는 OLS 인덱스 i를 가지는 임의의 OLS에 대해, pic_height_max_in_luma_samples의 값은 ols_dpb_pic_height[ i ]의 값 이하여야 한다.
1과 같은 sps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 SPS에서 다음에 따라 온다고 지시한다. 0과 같은 sps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 SPS에서 존재하지 않는다고 지시한다.
sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 그리고 sps_conf_win_bottom_offset은 pic_width_max_in_luma_samples와 같은 pic_width_in_luma_samples 및 pic_height_max_in_luma_samples와 같은 pic_height_in_luma_samples를 가진 픽처들에 적용되는 크로핑 윈도우를 명시한다. sps_conformance_window_flag가 0과 같은 경우, sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 그리고 sps_conf_win_bottom_offset의 값들은 0과 같다고 추론된다.
적합성 크로핑 윈도우는 SubWidthC * sps_conf_win_left_offset부터 pic_width_max_in_luma_samples - ( SubWidthC * sps_conf_win_right_offset + 1 )까지의 수평 픽처 좌표들 및 SubHeightC * conf_win_top_offset 부터 pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 )까지의 수직 픽처 좌표들을 갖는 루마 샘플들을 포함한다.
SubWidthC * ( sps_conf_win_left_offset + sps_conf_win_right_offset )의 값은 pic_width_max_in_luma_samples 보다 작아야 하고, SubHeightC * ( sps_conf_win_top_offset + sps_conf_win_bottom_offset )의 값은 pic_height_max_in_luma_samples 보다 작아야 한다.
ChromaArrayType이 0이 아닐 때, 두 크로마 어레이의 해당하는 지정된 샘플들은 픽처 좌표들( x / SubWidthC, y / SubHeightC )를 갖는 샘플들이고, 여기서 ( x, y )는 지정된 루마 샘플들의 픽처 좌표들이다.
참고 2 - 적합성 크로핑 윈도우 오프세트 파라미터들은 출력에서만 적용된다. 모든 내적인 디코딩 프로세스들은 크로핑되지 않은 픽처 사이즈에 적용된다.
sps_log2_ctu_size_minus5 플러스 5는 각 CTU의 루마 코딩 트리 블록 사이즈를 명시한다. sps_log2_ctu_size_minus5의 값은 0 내지 2의 범위에 있어야 한다. sps_log2_ctu_size_minus5에 대한 값 3은 ITU-T | ISO/IEC에 의해 미래의 사용을 위해 보류되었다.
변수 CtbLog2SizeY 및 CtbSizeY는 다음과 같이 유도된다.
1과 같은 subpic_info_present_flag는 서브픽처 정보가 CLVS에 대해 존재하며, CLVS의 각 픽처에 하나 또는 하나 이상의 서브픽처가 있을 수 있다고 명시한다. 1과 같은 subpic_info_present_flag는 서브픽처 정보가 CLVS에 대해 존재하지 않고, CLVS의 각 픽처에 오직 하나의 서브픽처만이 있을 수 있다고 명시한다.
res_change_in_clvs_allowed_flag가 1과 같은 경우, subpic_info_present_flag의 값은 0과 같아야 한다.
비고 3- 비트스트림이 서브 비트스트림 추출 프로세스의 결과이며 상기 서브 비트스트림 추출 프로세스의 입력 비트스트림의 서브픽처들의 서브 세트만을 포함하는 경우, 1과 같은 subpic_info_present_flag의 값을 SPS의 RBSP에서 설정할 것이 요구될 수 있다.
sps_num_subpics_minus1 플러스 1은 CLVS에서 각 픽처 내 서브픽처들의 수를 명시한다. sps_num_subpics_minus1의 값은 0 내지 Ceil( pic_width_max_in_luma_samples χ CtbSizeY ) * Ceil( pic_height_max_in_luma_samples χ CtbSizeY ) - 1의 범위에 있어야 한다. 존재하지 않는 경우, sps_num_subpics_minus1의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_independent_subpics_flag는 인트라 예측, 인터 예측 그리고 인-루프 필터링 동작들이 CLVS에서 어떤 서브픽처 경계를 가로질러서도 실시될 수 없다고 명시한다. 0과 같은 sps_independent_subpics_flag는 CLVS에서 서브픽처 경계들을 가로지르는 인터 예측 또는 인-루프 필터링 동작들이 허용될 수 있다고 명시한다. 존재하지 않는 경우, sps_independent_subpics_flag의 값은 0과 같은 것으로 추론된다.
subpic_ctu_top_left_x[ i ]는 i번째 서브픽처의 좌상단 CTU의 수평 위치를 CtbSizeY의 단위로 명시한다. 신택스 요소의 길이는 Ceil( Log2( ( pic_width_max_in_luma_samples + CtbSizeY - 1 ) >> CtbLog2SizeY ) ) 비트이다. 존재하지 않는 경우, subpic_ctu_top_left_x[ i ]의 값은 0과 같은 것으로 추론된다.
subpic_ctu_top_left_y[ i ]는i번째 서브픽처의 좌상단 CTU의 수직 위치를 CtbSizeY의 단위로 명시한다. 신택스 요소의 길이는 Ceil( Log2( ( pic_height_max_in_luma_samples + CtbSizeY - 1 ) >> CtbLog2SizeY ) ) 비트이다. 존재하지 않는 경우, subpic_ctu_top_left_y[ i ]의 값은 0과 같은 것으로 추론된다.
subpic_width_minus1[ i ] 플러스 1은 i번째 서브픽처의 폭을 CtbSizeY의 단위로 명시한다. 신택스 요소의 길이는 Ceil( Log2( ( pic_width_max_in_luma_samples + CtbSizeY - 1 ) >> CtbLog2SizeY ) ) 비트이다. 존재하지 않는 경우, subpic_width_minus1[ i ]의 값은 ( ( pic_width_max_in_luma_samples + CtbSizeY- 1 ) >> CtbLog2SizeY ) - subpic_ctu_top_left_x[ i ] - 1과 같은 것으로 추론된다.
subpic_height_minus1[ i ] 플러스 1은 i번째 서브픽처의 높이를 CtbSizeY의 단위로 명시한다. 신택스 요소의 길이는 Ceil( Log2( ( pic_height_max_in_luma_samples + CtbSizeY - 1 ) >> CtbLog2SizeY ) ) 비트이다. 존재하지 않는 경우, subpic_height_minus1[ i ]의 값은 ( ( pic_height_max_in_luma_samples + CtbSizeY- 1 ) >> CtbLog2SizeY ) - subpic_ctu_top_left_y[ i ] - 1과 같은 것으로 추론된다.
1과 같은 subpic_treated_as_pic_flag[ i ]는 CLVS에서 각 코딩된 픽처의 i번째 서브픽처는 인-루프 필터링 동작들을 배제하는 디코딩 프로세스에서 픽처로 취급됨을 명시한다. 0과 같은 subpic_treated_as_pic_flag[ i ]는 CLVS에서 각 코딩된 픽처의 i번째 서브픽처는 인-루프 필터링 동작들을 배제하는 디코딩 프로세스에서 픽처로 취급되지 않음을 명시한다. 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]의 값은 sps_independent_subpics_flag와 같다고 추론된다.
subpic_treated_as_pic_flag[ i ]가 1과 같은 경우, 비트스트림 부합성의 요건으로, 아래 조건들 모두가 각각의 출력 레이어 및 i번째 서브픽처를 출력 레이어로 포함하는 해당 레이어를 포함하는 OLS에서 그것의 참조 레이어들에 대해 참이어야 한다.
-
출력 레이어 및 그것의 참조 레이어들에서의 모든 픽처들은 pic_width_in_luma_samples의 동일한 값 및 pic_height_in_luma_samples의 동일한 값을 가져야 한다.
-
출력 레이어에 및 그것의 참조 레이어들에 의해 참조되는 모든 SPS들은 sps_num_subpics_minus1의 동일한 값을 가져야 하며, 0 내지 sps_num_subpics_minus1의 범위 내의 j의 각 값에 대해, subpic_ctu_top_left_x[ j ], subpic_ctu_top_left_y[ j ], subpic_width_minus1[ j ], subpic_height_minus1[ j ] 및 loop_filter_across_subpic_enabled_flag[ j ]의 동일한 값들을 가져야 한다.
-
출력 레이어 및 그것의 참조 레이어들에서 각 엑세스 유닛에서의 모든 픽처들은 0 내지 sps_num_subpics_minus1의 범위 내에서 j의 각 값에 대해 SubpicIdVal[ j ]의 동일한 값을 가져야 한다.
1과 같은 loop_filter_across_subpic_enabled_flag[ i ]는 CLVS에서 각 코딩된 픽처 내의 i번째 서브픽처의 경계들을 가로질러 인-루프 필터링 동작들이 실시될 수 있다고 명시한다.
0과 같은 loop_filter_across_subpic_enabled_flag[ i ]는 CLVS에서 각 코딩된 픽처 내의 i번째 서브픽처의 경계들을 가로질러 인-루프 필터링 동작들이 실시될 수 없다고 명시한다. 존재하지 않는 경우, loop_filter_across_subpic_enabled_pic_flag[ i ]의 값은 1 - sps_independent_subpics_flag과 같은 것으로 추론된다.
비트스트림 부합성의 요건으로, 서브픽처들의 모양들은 각각의 서비 픽처가 디코딩 되는 경우 그것의 좌측 경계 전체 및 상단 경계 전체가 픽처 경계들로 구성되거나 이전에 디코딩된 서브픽처들의 경계들로 구성되어야 한다.
sps_subpic_id_len_minus1 플러스 1은 신택스 요소 sps_subpic_id[ i ], 신택스 요소들 pps_subpic_id[ i ] (존재하는 경우), 그리고 신택스 요소 slice_subpic_id (존재하는 경우)를 표현하는 데에 사용되는 비트들의 수를 명시한다. sps_subpic_id_len_minus1의 값은 0 내지 15의 범위 내에 있어야 한다. 1 << ( sps_subpic_id_len_minus1 + 1 )의 값은 sps_num_subpics_minus1 + 1 보다 크거나 같아야 한다.
1과 같은 subpic_id_mapping_explicitly_signalled_flag는 서브픽처 ID 매핑이 SPS에서 또는 CLVS의 코딩된 픽처들에 의해 참조되는 PPS들에서 명시적으로 시그널링된다고 명시한다. 0과 같은 subpic_id_mapping_explicitly_signalled_flag는 서브픽처 ID 매핑이 CLVS에 대해 명시적으로 시그널링되지 않는다고 명시한다. 존재하지 않는 경우, subpic_id_mapping_explicitly_signalled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 subpic_id_mapping_in_sps_flag는, subpic_id_mapping_explicitly_signalled_flag가 1과 같은 경우, SPS에서 시그널링된다. 0과 같은 subpic_id_mapping_in_sps_flag는, subpic_id_mapping_explicitly_signalled_flag가 1과 같은 경우, CLVS의 코딩된 픽처들에 의해 참조된 PPS들에서 시그널링된다고 명시한다.
sps_subpic_id[ i ]는 i번째 서브픽처의 서브픽처 ID를 명시한다. sps_subpic_id[ i ] 신택스 요소의 길이는 sps_subpic_id_len_minus1 + 1 비트이다.
bit_depth_minus8는 루마 및 크로마 어레이들의 샘플들의 비트 깊이 BitDepth 및 루마 및 크로마 양자화 파라미터 범위 오프세트 QpBdOffset의 값을 아래와 같이 명시한다.
bit_depth_minus8은 0 내지 8의 범위에 있어야 한다.
1과 같은 sps_entropy_coding_sync_enabled_flag는, SPS를 참조하는 각 픽처에서 각 타일 내 CTB들의 행의 첫 번째 CTB를 포함하는 CTU를 디코딩하기 전에, 문맥 변수들에 대한 특정한 동기화 프로세스가 호출되고, SPS를 참조하는 각 픽처에서 각 타일 내 CTB들의 행의 첫 번째 CTB를 포함하는 CTU를 디코딩 한 후에, 문맥 변수들에 대한 특정한 저장 프로세스가 호출된다고 명시한다. 0과 같은 sps_entropy_coding_sync_enabled_flag는, SPS를 참조하는 각 픽처에서 각 타일 내 CTB들의 행의 첫 번째 CTB를 포함하는 CTU를 디코딩하기 전에, 문맥 변수들에 대한 어떠한 특정 동기화 프로세스가 호출되지 않으며, SPS를 참조하는 각 픽처에서 각 타일 내 CTB들의 행의 첫 번째 CTB를 포함하는 CTU를 디코딩 한 후에, 문맥 변수들에 대한 어떠한 특정 저장 프로세스도 호출되지 않는다고 명시한다.
1과 같은 sps_wpp_entry_point_offsets_present_flag는 sps_entropy_coding_sync_enabled_flag가 1과 같은 경우에 CTU 행들에 대한 엔트리 포인트 오프세트들에 대한 시그널링이 SPS를 참조하는 픽처들의 슬라이스 헤더들에 존재할 수 있다고 명시한다. 0과 같은 sps_wpp_entry_point_offsets_present_flag는 CTU 행들에 대한 엔트리 포인트 오프세트들에 대한 시그널링이 SPS를 참조하는 픽처들의 슬라이스 헤더들에 존재하지 않는다고 명시한다. 존재하지 않는 경우, sps_wpp_entry_point_offsets_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_weighted_pred_flag는 가중된 예측이 SPS를 참조하는 P 슬라이스들에 적용될 수 있다. 0과 같은 sps_weighted_pred_flag는 가중된 예측이 SPS를 참조하는 P 슬라이스들에 적용되지 않음을 명시한다.
1과 같은 sps_weighted_bipred_flag는 SPS를 참조하는 B 슬라이스들에 적용될 수 있다. 0과 같은 sps_weighted_bipred_flag는 명시적인 가중된 예측이 SPS를 참조하는 B 슬라이스들에 적용되지 않음을 명시한다.
log2_max_pic_order_cnt_lsb_minus4는 아래와 같이 픽처 오더 카운트에 대한 디코딩 프로세스에서 사용되는 변수 MaxPicOrderCntLsb의 값을 명시한다.
log2_max_pic_order_cnt_lsb_minus4의 값은 0 내지 12의 범위에 있어야 한다.
1과 같은 sps_poc_msb_flag는 ph_poc_msb_present_flag 신택스 요소가 SPS를 참조하는 PH들에 존재한다고 명시한다. 0과 같은 sps_poc_msb_flag는 ph_poc_msb_present_flag 신택스 요소가 SPS를 참조하는 PH들에 존재하지 않는다고 명시한다.
poc_msb_len_minus1 플러스 1은, SPS를 참조하는 PH들에 존재하는 경우, poc_msb_val 신택스 요소들의 길이를 비트 단위로 명시한다. poc_msb_len_minus1의 값은 0 내지 32 - log2_max_pic_order_cnt_lsb_minus4 - 5의 범위에 있어야 한다.
num_extra_ph_bits_bytes는 SPS를 참조하는 코딩된 픽처들에 대한 PH 신택스 구조에서 추가 비트들의 바이트들의 수를 명시한다. num_extra_ph_bits_bytes의 값은 본 명세서의 본 버전에 부합하는 비트스트림들에서 0과 같아야 한다. 비록 num_extra_ph_bits_bytes의 값이 본 명세서의 본 버전에서 0과 같은 것으로 요구되지만, 본 명세서의 본 버전에 부합하는 디코더는 1 또는 2와 같은 num_extra_ph_bits_bytes의 값이 신택스에서 나타나도록 허용해야 한다.
num_extra_sh_bits_bytes는 SPS를 참조하는 코디된 픽처들에 대한 슬라이스 헤더들에서 추가 비트들의 바이트들의 수를 명시한다. num_extra_sh_bits_bytes의 값은 본 명세서의 본 버전에 부합하는 비트스트림들에서 0과 같아야 한다. 비록 num_extra_sh_bits_bytes의 값이 본 명세서의 본 버전에서 0과 같은 것으로 요구되지만, 본 명세서의 본 버전에 부합하는 디코더는 1 또는 2와 같은 num_extra_sh_bits_bytes의 값이 신택스에서 나타나도록 허용해야 한다.
sps_sublayer_dpb_params_flag는 SPS 내 dpb_parameters( ) 신택스 구조에서 max_dec_pic_buffering_minus1[ i ], max_num_reorder_pics[ i ] 및 max_latency_increase_plus1[ i ] 신택스 요소들의 존재를 제어하는 데에 사용된다. 존재하지 않는 경우, sps_sub_dpb_params_info_present_flag의 값은 0과 같은 것으로 추론된다.
0과 같은 long_term_ref_pics_flag는 어떤 LTRP도 CLVS 내 임의의 코딩된 픽처의 인터 예측을 위해 사용되지 않는다고 명시한다. 1과 같은 long_term_ref_pics_flag는 LTRP들이 CLVS 내 하나 또는 그 이상의 코딩된 픽처들의 인터 예측을 위해 사용될 수 있다고 명시한다.
0과 같은 inter_layer_ref_pics_present_flag는 어떤 ILRP도 CLVS 내 어떤 코딩된 픽처의 인터 예측을 위해서도 사용되지 않는다고 명시한다. 1과 같은 inter_layer_ref_pic_flag는 ILRP들이 CLVS 내 하나 또는 그 이상의 코딩된 픽처들의 인터 예측을 위해 사용될 수 있다고 명시한다. sps_video_parameter_set_id이 0과 같은 경우, inter_layer_ref_pics_present_flag의 값은 0과 같은 것으로 추론된다. vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]이 1과 같은 경우, inter_layer_ref_pics_present_flag의 값은 0과 같아야 한다.
1과 같은 sps_idr_rpl_present_flag는 참조 픽처 리스트 신택스 요소들이 IDR 픽처들의 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 sps_idr_rpl_present_flag는 참조 픽처 리스트 신택스 요소들이 IDR 픽처들의 슬라이스 헤더들에 존재하지 않는다고 명시한다.
1과 같은 rpl1_same_as_rpl0_flag는 신택스 구조 num_ref_pic_lists_in_sps[ 1 ] 및 신택스 구조 ref_pic_list_struct( 1, rplsIdx )는 존재하지 않음을 명시하며, 아래가 적용된다.
-
num_ref_pic_lists_in_sps[ 1 ]의 값은 num_ref_pic_lists_in_sps[ 0 ]의 값과 같다고 추론된다.
-
ref_pic_list_struct( 1, rplsIdx )에서 각 신택스 요소들의 값은 0 내지 num_ref_pic_lists_in_sps[ 0 ] - 1의 범위를 가지는 ref_pic_list_struct( 0, rplsIdx )에 대한 ref_pic_list_struct( 0, rplsIdx )에서 해당 신택스 요소의 값과 같다고 추론된다.
num_ref_pic_lists_in_sps[ i ]는 SPS에 포함된 i와 같은 listIdx를 가진 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조들의 수를 명시한다. num_ref_pic_lists_in_sps[ i ]의 값은 0 내지 64의 범위내에 있어야 한다.
참고 4 - listIdx의 각 값(0 또는 1과 같은)에 대해, 디코더는 num_ref_pic_lists_in_sps[ i ] + 1 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조들의 총 수에 대한 메모리를 할당해야 한다. 왜냐하면 현재 픽처의 슬라이스 헤더들에서 직접적으로 시그널링되는 ref_pic_list_struct( listIdx, rplsIdx ) 신택스 구조가 하나 있을 수 있기 때문이다.
1과 같은 qtbtt_dual_tree_intra_flag는 I 슬라이스들에 대해, 각 CTU가 암시적 쿼드트리 분할을 사용하여 64x64 루마 샘플들을 갖는 코딩 유닛들로 분할되고 이 코딩 유닛들이 루마 및 크로마에 대한 2개의 개별 coding_tree 신택스 구조의 루트임을 명시한다. 0과 같은 qtbtt_dual_tree_intra_flag는 별도의 coding_tree 신택스 구조가 I 슬라이스들에 대해 사용되지 않음을 명시할 수 있다. qtbtt_dual_tree_intra_flag가 존재하지 않는 경우, 0과 같은 것으로 추론된다.
log2_min_luma_coding_block_size_minus2 플러스 2는 최소 루마 코딩 블록 크기를 지정한다. log2_min_luma_coding_block_size_minus2의 값 범위는 0 내지 Min( 4, sps_log2_ctu_size_minus5 + 3 )의 범위일 수 있다.
변수들 MinCbLog2SizeY, MinCbSizeY, IbcBufWidthY, IbcBufWidthC 그리고 Vsize는 다음과 같이 유도된다.
MinCbSizeY의 값은 VSize 보다 작거나 같아야 한다.
각 크로마 CTB에 대한 어레이의 너비 및 높이를 각각 지정하는 변수들 CtbWidthC 및 CtbHeightC는 다음과 같이 유도된다.
-
chroma_format_idc가 0(모노크롬)과 같거나 separate_colour_plane_flag가 1과 같은 경우, CtbWidthC 및 CtbHeightC는 모두 0과 같다.
-
그렇지 않으면 CtbWidthC 및 CtbHeightC는 다음과 같이 유도된다.
0내지 4의 범위의 log2BlockWidth 및 0내지 4의 범위의 log2BlockHeight에 대해, 6.5.2절에 명시된 바와 같은 우상향 대각선 스캔 순서 어레이 초기화 프로세스는 1 << log2BlockWidth and 1 << log2BlockHeight를 입력으로 하여 호출될 수 있고, 출력은 DiagScanOrder[ log2BlockWidth ][ log2BlockHeight ]에 할당될 수 있다.
0내지 6의 범위의 log2BlockWidth 및 0내지 6의 범위의 log2BlockHeight에 대해, 6.5.3절에 명시된 바와 같은 수평 및 수직 트래버스 스캔 순서 어레이 초기화 프로세스는 1 << log2BlockWidth and 1 << log2BlockHeight를 입력으로 하여 호출될 수 있고, 출력은 HorTravScanOrder[ log2BlockWidth ][ log2BlockHeight ] 및 VerTravScanOrder[ log2BlockWidth ][ log2BlockHeight ]에 할당될 수 있다.
1과 같은 partition_constraints_override_enabled_flag는 SPS를 참조하는 PH에서 partition_constraints_override_flag의 존재를 명시할 수 있다. 0과 같은 partition_constraints_override_enabled_flag는 SPS를 참조하는 PH에서 partition_constraints_override_flag의 부재를 명시할 수 있다.
sps_log2_diff_min_qt_min_cb_intra_slice_luma는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 SPS를 참조하는 2(I)와 같은 slice_type을 가지는 슬라이스들의 루마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같을 때, 디폴트 차이는 SPS를 참조하는 PH들에 존재하는 pic_log2_diff_min_qt_min_cb_luma에 의해 무시될 수 있다. sps_log2_diff_min_qt_min_cb_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위에 있을 수 있다. CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그는 다음과 같이 유도될 수 있다.
sps_max_mtt_hierarchy_depth_inter_slice는 SPS를 참조하는 2 (I)와 같은 slice_type을 갖는 슬라이스들에서 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 코딩 유닛들에 대한 디폴트 최대 계층 깊이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 최대 계층 깊이는 SPS를 참조하는 PH들에 있는 pic_max_mtt_hierarchy_depth_inter_slice에 의해 무시될 수 있다. sps_max_mtt_hierarchy_depth_inter_slice의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위에 있어야 한다.
sps_log2_diff_max_bt_min_qt_intra_slice_luma는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같으면 SPS를 참조하는 PH들에 있는 pic_log2_diff_max_bt_min_qt_luma에 의해 디폴트 차이가 무시될 수 있다. sps_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraY의 범위에 있어야 한다. sps_log2_diff_max_bt_min_qt_intra_slice_luma가 존재하지 않는 경우, sps_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 0과 같은 것으로 추론된다.
sps_log2_diff_max_tt_min_qt_intra_slice_luma는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 있는 ph_log2_diff_max_tt_min_qt_luma에 의해 무시될 수 있다. sps_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraY의 범위에 있어야 한다. sps_log2_diff_max_tt_min_qt_intra_slice_luma가 존재하지 않는 경우, sps_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 0과 같은 것으로 추론될 수 있다.
sps_log2_diff_min_qt_min_cb_inter_slice는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 SPS를 참조하는 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 루마 CU들에 대한 루마 샘플들에서의 최소 루마 코딩 블록 크기의 밑이 2인 로그 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같을 때, 디폴트 차이는 SPS를 참조하는 PH들에 있는 ph_log2_diff_min_qt_min_cb_luma에 의해 무시될 수 있다. sps_log2_diff_min_qt_min_cb_inter_slice의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위에 있어야 한다. CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그는 다음과 같이 유도될 수 있다:
sps_max_mtt_hierarchy_depth_inter_slice는 SPS를 참조하는 0(B) 또는 1(P)와 동일한 slice_type을 갖는 슬라이스들에서 쿼드트리 리프의 멀티 타입 분할로 인해 생기는 코딩 유닛들에 대한 디폴트 최대 계층 깊이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 최대 계층 깊이는 SPS를 참조하는 PH들 있는 ph_max_mtt_hierarchy_depth_inter_slice에 의해 무시될 수 있다. sps_max_mtt_hierarchy_depth_inter_slice의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위에 있어야 한다.
sps_log2_diff_max_bt_min_qt_inter_slice는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 있는 ph_log2_diff_max_bt_min_qt_luma에 의해 무시될 수 있다. sps_log2_diff_max_bt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위에 있어야 있다. sps_log2_diff_max_bt_min_qt_inter_slice가 없는 경우, sps_log2_diff_max_bt_min_qt_inter_slice의 값은 0과 같은 것으로 추론될 수 있다.
sps_log2_diff_max_tt_min_qt_inter_slice는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 있는 ph_log2_diff_max_tt_min_qt_luma에 의해 무시될 수 있다. sps_log2_diff_max_tt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위에 있어야 한다. sps_log2_diff_max_tt_min_qt_inter_slice가 존재하지 않는 경우, sps_log2_diff_max_tt_min_qt_inter_slice의 값은 0과 같은 것으로 추론될 수 있다.
sps_log2_diff_min_qt_min_cb_intra_slice_chroma는 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 SPS를 참조하는 slice_type이 2(I)와 동일한 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 디폴트 차이를 지정할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 존재하는 ph_log2_diff_min_qt_min_cb_chroma에 의해 무시될 수 있다. sps_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위에 있어야 한다. 존재하지 않는 경우, sps_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 0과 같은 것으로 추론될 수 있다. DUAL_TREE_CHROMA와 동일한 treeType을 갖는 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그는 다음과 같이 유도될 수 있다.
sps_max_mtt_hierarchy_depth_intra_slice_chroma는 SPS를 참조하는 slice_type이 2(I)를 가지는 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 크로마 유닛들에 대한 디폴트 최대 계층 깊이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 최대 계층 깊이는 SPS를 참조하는 PH들에 존재하는 ph_max_mtt_hierarchy_depth_chroma에 의해 무시될 수 있다. sps_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위에 있어야 한다. 존재하지 않는 경우, sps_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 0과 같은 것으로 추론된다.
sps_log2_diff_max_bt_min_qt_intra_slice_chroma는 이진 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 디폴트 차이를 지정할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 존재하는 ph_log2_diff_max_bt_min_qt_chroma에 의해 무시될 수 있다. sps_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위에 있어야 한다. sps_log2_diff_max_bt_min_qt_intra_slice_chroma가 존재하지 않는 경우, sps_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 0과 같은 것으로 추론된다.
sps_log2_diff_max_tt_min_qt_intra_slice_chroma는 삼항 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 SPS를 참조하는 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 디폴트 차이를 명시할 수 있다. partition_constraints_override_enabled_flag가 1과 같은 경우, 디폴트 차이는 SPS를 참조하는 PH들에 존재하는 ph_log2_diff_max_tt_min_qt_chroma에 의해 무시될 수 있다. sps_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위에 있어야 한다. sps_log2_diff_max_tt_min_qt_intra_slice_chroma가 존재하지 않는 경우, sps_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 0과 같다고 추론된다.
1과 같은 sps_max_luma_transform_size_64_flag는 루마 샘플들에서의 최대 변환 크기가 64와 같다는 것을 명시한다. 0과 같은 sps_max_luma_transform_size_64_flag는 루마 샘플들에서의 최대 변환 크기가 32와 같다는 것을 명시한다.
CtbSizeY가 64보다 작은 경우, sps_max_luma_transform_size_64_flag의 값은 0과 같아야 한다.
변수들 MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY 및 MaxTbSizeY는 다음과 같이 유도된다.
0과 같은 sps_joint_cbcr_enabled_flag는 크로마 잔차들의 조인트 코딩이 비활성화됨을 명시한다. 1과 같은 sps_joint_cbcr_enabled_flag는 크로마 잔차들의 조인트 코딩이 활성화됨을 명시한다. 존재하지 않는 경우, sps_joint_cbcr_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 same_qp_table_for_chroma는 오직 하나의 크로마 매핑 테이블이 시그널링되며, 이 테이블이, sps_joint_cbcr_enabled_flag가 1인 경우, Cb 및 Cr 잔차들에 그리고 조인트 Cb-Cr 잔차들에 추가로 적용됨을 명시한다. 0과 같은 same_qp_table_for_chroma는 크로마 QP 매핑 테이블들이 Cb 및 Cr에 2개, 그리고 sps_joint_cbcr_enabled_flag가 1인 경우 조인트 Cb-Cr에 대해 추가로 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[ i ]가 비트스트림에 존재하지 않을 때, 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과 같은 경우, ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 -QpBdOffset 내지 63의 범위내의 k에 대해 ChromaQpTable[ 0 ][ k ]와 같게 설정된다.
비트스트림 부합성의 요건으로, qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 0 내지 numQpTables - 1의 범위에서의 i, 0 내지 sps_num_points_in_qp_table_minus1[ i ] + 1의 범위에서의 j에 대해, -QpBdOffset 내지 63의 범위에 있어야 한다.
1과 같은 sps_sao_enabled_flag는 샘플 적응적 오프세트 프로세스가 디블로킹 필터 프로세스 후에 복원된 픽처에 적용된다고 명시한다. 0과 같은 sps_sao_enabled_flag는 샘플 적응적 오프세트 프로세스가 디블로킹 필터 프로세스 후에 복원된 픽처에 적용되지 않는다고 명시한다.
0과 같은 sps_alf_enabled_flag는 적응적 루프 필터가 비활성화됨을 명시한다. 1과 같은 sps_alf_enabled_flag는 적응적 루프 필터가 활성화됨을 명시한다.
0과 같은 sps_ccalf_enabled_flag는 크로스 컴포넌트 루프 필터가 비활성화됨을 명시한다. 1과 같은 sps_ccalf_enabled_flag는 크로스 컴포넌트 루프 필터가 활성화될 수 있음을 명시한다.
1과 같은 sps_transform_skip_enabled_flag는 transform_skip_flag가 변환 유닛 신택스에 존재할 수 있음을 명시한다. 0과 같은 sps_transform_skip_enabled_flag는 transform_skip_flag가 변환 유닛 신택스에 존재하지 않음을 명시한다.
log2_transform_skip_max_size_minus2는 변환 스킵을 위해 사용되는 최대 블록 크기를 명시하며, 0 내지 3의 범위에 있어야 한다.
변수 MaxTsSize는 1 << ( log2_transform_skip_max_size_minus2 + 2 )로 설정된다.
1과 같은 sps_bdpcm_enabled_flag는 intra_bdpcm_luma_flag 및 intra_bdpcm_chroma_flag가 인트라 코딩 유닛들에 대한 코딩 유닛 신택스에 존재할 수 있음을 명시한다. 0과 같은 sps_bdpcm_enabled_flag는 intra_bdpcm_luma_flag 및 intra_bdpcm_chroma_flag가 인트라 코딩 유닛들에 대한 코딩 유닛 신택스에 존재하지 않음을 명시한다. 존재하지 않는 경우, sps_bdpcm_enabled_flag의 값은 0과 같다고 추론된다.
1과 같은 sps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 인터 예측에서 적용됨을 명시한다. 0과 같은 sps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 적용되지 않음을 명시한다. ( CtbSizeY / MinCbSizeY + 1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - 1 ) 보다 크고, 이때 pic_width_in_luma_samples가 SPS를 참조하는 임의의 PPS에서의 pic_width_in_luma_samples의 값인 경우, sps_ref_wraparound_enabled_flag의 값은 0과 같아야 한다.
1과 같은 sps_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측기가 CLVS에서 사용될 수 있음을 명시한다. 0과 같은 sps_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측기가 CLVS에서 사용되지 않음을 명시한다.
1과 같은 sps_sbtmvp_enabled_flag는 서브 블록 기반 시간적 모션 벡터 예측기들이 CLVS에서 I와 같지 않은 slice_type를 가지는 모든 슬라이스들을 가지는 픽처들의 디코딩에서 사용될 수 있음을 명시한다. 0과 같은 sps_sbtmvp_enabled_flag는 서브 블록 기반 시간적 모션 벡터 예측기들이 CLVS에서 사용되지 않음을 명시한다. sps_sbtmvp_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 sps_amvr_enabled_flag는 적응적 모션 벡터 차분 해상도가 모션 벡터 코딩에서 사용됨을 명시한다. 0과 같은 amvr_enabled_flag는 적응적 모션 벡터 차분 해상도가 모션 벡터 코딩에서 사용되지 않음을 명시한다.
0과 같은 sps_bdof_enabled_flag는 양 방향 광학적 흐름 인터 예측이 비활성화됨을 명시한다. 1과 같은 sps_bdof_enabled_flag는 양 방향 광학적 흐름 인터 예측이 활성화됨을 명시한다.
1과 같은 sps_bdof_pic_present_flag는 ph_disable_bdof_flag가 SPS를 참조하는 PH들에 존재함을 명시한다. 0과 같은 sps_bdof_pic_present_flag는 ph_disable_bdof_flag가 SPS를 참조하는 PH들에 존재하지 않음을 명시한다. sps_bdof_pic_present_flag가 존재하지 않는 경우, sps_bdof_pic_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_smvd_enabled_flag는 대칭 모션 벡터 차분이 모션 벡터 디코딩에서 사용될 수 있음을 명시한다. 0과 같은 sps_smvd_enabled_flag는 대칭 모션 벡터 차분이 모션 벡터 디코딩에서 사용되지 않음을 명시한다.
1과 같은 sps_dmvr_enabled_flag는 인터 양-예측(bi-direction)에 기반한 디코더 모션 벡터 개선이 활성화됨을 명시한다. 0과 같은 sps_dmvr_enabled_flag는 인터 양-예측(bi-direction)에 기반한 디코더 모션 벡터 개선이 비활성화됨을 명시한다.
1과 같은 sps_dmvr_pic_present_flag는 ph_disable_dmvr_flag가 SPS를 참조하는 PH들에 존재함을 명시한다. 0과 같은 sps_dmvr_pic_present_flag는 ph_disable_dmvr_flag가 SPS를 참조하는 PH들에 존재하지 않음을 명시한다. sps_dmvr_pic_present_flag가 존재하지 않는 경우, sps_dmvr_pic_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드(MMVD)가 활성화됨을 명시한다. 0과 같은 sps_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드(MMVD)가 비활성화됨을 명시한다.
1과 같은 sps_isp_enabled_flag는 서브파티션들을 가진 인트라 예측이 활성화됨을 명시한다. 0과 같은 sps_isp_enabled_flag는 서브파티션들을 가진 인트라 예측이 비활성화됨을 명시한다.
1과 같은 sps_mrl_enabled_flag는 다수의 참조 라인들을 가지는 인트라 예측이 활성화됨을 명시한다. 0과 같은 sps_mrl_enabled_flag는 다수의 참조 라인들을 가지는 인트라 예측이 비활성화됨을 명시한다.
1과 같은 sps_mip_enabled_flag는 행렬 기반 인트라 예측이 활성화됨을 명시한다. 0과 같은 sps_mip_enabled_flag는 행렬 기반 인트라 예측이 비활성화됨을 명시한다.
0과 같은 sps_cclm_enabled_flag는 루마 성분으로부터 크로마 성분으로의 크로스 컴포넌트 선형 모델 인트라 예측이 비활성화됨을 명시한다. 1과 같은 sps_cclm_enabled_flag는 루마 성분으로부터 크로마 성분으로의 크로스 컴포넌트 선형 모델 인트라 예측이 활성화됨을 명시한다. sps_cclm_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 sps_chroma_horizontal_collocated_flag는 해당 루마 샘플 위치들에 대해 수평으로 이동되지 않는 크로마 샘플 위치들에 대해 설계된 방식으로 예측 프로세스들이 작동한다고 명시한다. 0과 같은 sps_chroma_horizontal_collocated_flag는 해당 루마 샘플 위치들에 대해 루마 샘플 단위로 우측으로 0.5만큼 이동하는 크로마 샘플 위치들에 대해 설계된 방식으로 예측 프로세스들이 작동한다고 명시한다. sps_chroma_horizontal_collocated_flag가 존재하지 않는 경우, 그것은 1과 같은 것으로 추론된다.
1과 같은 sps_chroma_vertical_collocated_flag는 해당 루마 샘플 위치들에 대해 수직으로 이동되지 않는 크로마 샘플 위치들에 대해 설계된 방식으로 예측 프로세스들이 작동한다고 명시한다. 0과 같은 sps_chroma_vertical_collocated_flag는 해당 루마 샘플 위치들에 대해 루마 샘플 단위로 아래로 0.5만큼 이동하는 크로마 샘플 위치들에 대해 설계된 방식으로 예측 프로세스들이 작동한다고 명시한다. sps_chroma_vertical_collocated_flag가 존재하지 않는 경우, 그것은 1과 같은 것으로 추론된다.
1과 같은 sps_mts_enabled_flag는 sps_explicit_mts_intra_enabled_flag가 시퀀스 파라미터 세트 RBSP 신택스에 존재하고 sps_explicit_mts_inter_enabled_flag가 시퀀스 파라미터 세트 RBSP 신택스에 존재함을 명시한다. 0과 같은 sps_mts_enabled_flag는 sps_explicit_mts_intra_enabled_flag가 시퀀스 파라미터 세트 RBSP 신택스에 존재하지 않고 sps_explicit_mts_inter_enabled_flag가 시퀀스 파라미터 세트 RBSP 신택스에 존재하지 않음을 명시한다.
1과 같은 sps_explicit_mts_intra_enabled_flag는 mts_idx가 인트라 코딩 유닛 신택스에 존재할 수 있음을 명시한다. 0과 같은 sps_explicit_mts_intra_enabled_flag는 mts_idx가 인트라 코딩 유닛 신택스에 부재함을 명시한다. 존재하지 않는 경우, sps_explicit_mts_intra_enabled_flag의 값은 0과 같다고 추론된다.
1과 같은 sps_explicit_mts_inter_enabled_flag는 mts_idx가 인터 코딩 유닛 신택스에 존재할 수 있음을 명시한다. 0과 같은 sps_explicit_mts_inter_enabled_flag는 mts_idx가 인터 코딩 유닛 신택스에 부재함을 명시한다. 존재하지 않는 경우, sps_explicit_mts_inter_enabled_flag의 값은 0과 같다고 추론된다.
six_minus_max_num_merge_cand는 6에서 SPS에서 지원되는 병합 모션 벡터 예측(MVP) 후보들의 최대 수를 뺀 값을 명시한다. 병합 MVP 후보들의 최대 수 MaxNumMergeCand는 아래와 같이 유도된다.
MaxNumMergeCand의 값은 1 내지 6의 범위에 있어야 한다.
0과 같은 sps_sbt_enabled_flag는 인터 예측된 CU에 대한 서브블록 변환이 비활성화됨을 명시한다. 1과 같은 sps_sbt_enabled_flag는 인터 예측된 CU에 대한 서브블록 변환이 활성화됨을 명시한다.
sps_affine_enabled_flag는 어파인 모델 기반 모션 보상이 인터 예측을 위해 사용될 수 있는지 여부를 명시한다. 만약 sps_affine_enabled_flag가 0과 같다면, 신택스는 제약되어 어떤 어파인 모델 기반 모션 보상도 CLVS에 사용되지 않으며, inter_affine_flag 및 cu_affine_type_flag가 CLVS의 코딩 유닛 신택스에 존재하지 않도록 해야 한다. 그 외의 경우(sps_affine_enabled_flag가 1과 같으면), 어파인 모델 기반 모션 보상은 CLVS에서 사용될 수 있다.
five_minus_max_num_subblock_merge_cand는 5에서 SPS에서 지원되는 서브블록 기반 병합 모션 벡터 예측 후보들의 최대 수를 뺀 값을 명시한다.
sps_affine_type_flag는 6-파라미터 어파인 모델 기반 모션 보상이 인터 예측을 위해 사용될 수 있는지 여부를 명시한다. 만약 sps_affine_type_flag가 0과 같으면, 신택스는 제약되어 어떤 6-파라미터 어파인 모델 기반 모션 보상도 CLVS에서 사용되지 않고 cu_affine_type_flag가 CLVS에서 코딩 유닛 신택스에 존재하지 않도록 해야 한다. 그 외의 경우(sps_affine_type_flag가 1과 같으면), 6-파라미터 어파인 모델 기반 모션 보상이 CLVS에서 사용될 수 있다. 존재하지 않는 경우, sps_affine_type_flag의 값은 0과 같다고 추론된다.
1과 같은 sps_affine_amvr_enabled_flag는 적응적 모션 벡터 차분 해상도가 어파인 인터 모드의 모션 벡터 코딩에 사용된다고 명시한다. 0과 같은 sps_affine_amvr_enabled_flag는 적응적 모션 벡터 차분 해상도가 어파인 인터 모드의 모션 벡터 코딩에 사용되지 않는다고 명시한다. 존재하지 않는 경우, sps_affine_amvr_enabled_flag의 값은 0과 같은 것으로 추론된다.
sps_affine_prof_enabled_flag는 광학적 흐름을 가지는 예측 개선이 어파인 모션 보상을 위해 사용될 수 있는지 여부를 명시한다. 만약 sps_affine_prof_enabled_flag가 0과 같으면, 어파인 모션 보상은 광학적 흐름으로 개선되어서는 안 된다. 그렇지 않으면(sps_affine_prof_enabled_flag가 1과 같으면), 어파인 모션 보상은 광학적 흐름으로 개선될 수 있다. 존재하지 않는 경우, sps_affine_prof_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_prof_pic_present_flag는 ph_disable_prof_flag가 SPS를 참조하는 PH들에 존재한다고 명시한다. 0과 같은 sps_prof_pic_present_flag는 ph_disable_prof_flag가 SPS를 참조하는 PH들에 존재하지 않는다고 명시한다. sps_prof_pic_present_flag가 존재하지 않는 경우, sps_prof_pic_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sps_palette_enabled_flag는 pred_mode_plt_flag가 코딩 유닛 신택스에 존재할 수 있다고 명시한다. 0과 같은 sps_palette_enabled_flag는 pred_mode_plt_flag가 코딩 유닛 신택스에 존재하지 않는다고 명시한다. sps_palette_enabled_flag가 존재하지 않으면, 그것은 0과 같은 것으로 추론된다.
1과 같은 sps_act_enabled_flag는 적응적 컬러 변환이 사용될 수 있고 cu_act_enabled_flag가 코딩 유닛 신택스에 존재할 수 있다고 명시한다. 0과 같은 sps_act_enabled_flag는 적응적 컬러 변환이 사용되지 않고 cu_act_enabled_flag가 코딩 유닛 신택스에 존재하지 않는다고 명시한다. sps_act_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
min_qp_prime_ts_minus4는 변환 스킵 모드에 대한 최소 허용 양자화 파라미터를 아래와 같이 명시한다.
min_qp_prime_ts_minus4의 값은 0 내지 48의 범위 내에 있어야 한다.
sps_bcw_enabled_flag는 CU 가중치들을 가지는 양-예측이 인터 예측을 위해 사용될 수 있는지 여부를 명시한다. 만약 sps_bcw_enabled_flag가 0과 같으면, 신택스는 제약되어 CU 가중치들을 가지는 양-예측이 CLVS에서 사용되지 않고, bcw_idx가 CLVS의 코딩 유닛 신택스에 존재하지 않도록 해야 한다. 그렇지 않으면(sps_bcw_enabled_flag가 1과 같으면), CU 가중치들을 가지는 양-예측은 CLVS에서 사용될 수 있다.
1과 같은 sps_ibc_enabled_flag는 IBC 예측 모드가 CLVS에서 픽처들의 디코딩에 사용될 수 있다고 명시한다. 0과 같은 sps_ibc_enabled_flag는 IBC 예측 모드가 CLVS에서 사용되지 않는다고 명시한다. sps_ibc_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
six_minus_max_num_ibc_merge_cand는 6에서 SPS에서 지원되는 IBC 병합 블록 벡터 예측(BVP) 후보들의 최대 수를 뺀 값을 명시한다.
IBC 병합 BVP 후보들의 최대 수 MaxNumIbcMergeCand는 다음과 같이 유도된다.
sps_ciip_enabled_flag는 ciip_flag가 인터 코딩 유닛들에 대한 코딩 유닛 신택스에서 존재할 수 있다고 명시한다. 0과 같은 sps_ciip_enabled_flag는 ciip_flag가 인터 코딩 유닛들에 대한 코딩 유닛 신택스에서 존재하지 않는다고 명시한다.
1과 같은 sps_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 정수 샘플 정밀도를 사용하고 있다고 명시한다. 0과 같은 sps_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 분수 샘플 정밀도를 사용할 수 있다고 명시한다.
sps_gpm_enabled_flag는 기하학적 파티션 기반 모션 보상이 인터 예측을 위해 사용될 수 있는지 여부를 명시한다. 0과 같은 sps_gpm_enabled_flag는 신택스가 제약되어 기하학적 파티션 기반 모션 보상이 CLVS에서 사용되지 않으며, merge_gpm_partition_idx, merge_gpm_idx0 및 merge_gpm_idx1가 CLVS의 코딩 유닛 신택스에 존재하지 않도록 해야 한다고 명시한다. 1과 같은 sps_gpm_enabled_flag는 기하학적 파티션 기반 모션 보상이 CLVS에서 사용될 수 있다고 명시한다. 존재하지 않는 경우, sps_gpm_enabled_flag의 값은 0과 같은 것으로 추론된다.
max_num_merge_cand_minus_max_num_gpm_cand는 MaxNumMergeCand에서 SPS에서 지원되는 기하학적 파티션닝 머지 모드 후보들의 최대 수를 뺀 값을 명시한다.
만약 sps_gpm_enabled_flag가 1과 같고 MaxNumMergeCand가 1 이상이면, 기하학적 파티셔닝 머지 모드 후보들의 최대 수 MaxNumGeoMergeCand는 다음과 같이 유도된다.
MaxNumGeoMergeCand의 값은 2 내지 MaxNumMergeCand의 범위 내에 있어야 한다.
1과 같은 sps_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 CLVS에서 사용됨을 명시한다. 0과 같은 sps_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 CLVS에서 사용되지 않음을 명시한다.
1과 같은 sps_lfnst_enabled_flag는 lfnst_idx가 인트라 코딩 유닛 신택스에 존재할 수 있음을 명시한다.
0과 같은 sps_lfnst_enabled_flag는 lfnst_idx가 인트라 코딩 유닛 신택스에 존재하지 않음을 명시한다.
1과 같은 sps_ladf_enabled_flag는 sps_num_ladf_intervals_minus2, sps_ladf_lowest_interval_qp_offset, sps_ladf_qp_offset[ i ], 그리고 sps_ladf_delta_threshold_minus1[ i ]가 SPS에 존재함을 명시한다.
sps_num_ladf_intervals_minus2 플러스 1은 SPS에 존재하는 sps_ladf_delta_threshold_minus1[ i ] 및 sps_ladf_qp_offset[ i ] 신택스 요소들의 수를 명시한다. sps_num_ladf_intervals_minus2의 값은 0 내지 3의 범위 내에 있어야 한다.
sps_ladf_lowest_interval_qp_offset은 8.8.3.6.1절에 명시된 바와 같은 변수 qP를 유도하는 데에 사용되는 오프세트를 명시한다. sps_ladf_lowest_interval_qp_offset의 값은 -63 내지 63의 범위에 있어야 한다.
sps_ladf_qp_offset[ i ]는 8.8.3.6.1절에 명시된 바와 같은 변수 qP를 유도하는 데에 사용되는 오프세트 어레이를 명시한다. sps_ladf_qp_offset[ i ]의 값은 -63 내지 63의 범위에 있어야 한다.
sps_ladf_delta_threshold_minus1[ i ]은 i번째 루마 강도 레벨 간격의 하한을 명시하는 SpsLadfIntervalLowerBound[ i ]의 값들을 연산하는 데에 사용된다. sps_ladf_delta_threshold_minus1[ i ]의 값은 0 내지 2BitDepth - 3의 범위 내에 있어야 한다.
SpsLadfIntervalLowerBound[ 0 ]는 0과 같은 것으로 설정된다.
0 내지 sps_num_ladf_intervals_minus2의 범위 내에서 i의 각 값에 대해, 변수 SpsLadfIntervalLowerBound[ i + 1 ]는 아래와 같이 유도된다.
log2_parallel_merge_level_minus2 플러스 2는 변수 Log2ParMrgLevel의 값을 명시하며, 이것은 8.5.2.3절에 명시되는 것과 같은 공간적 병합 후보들에 대한 유도 프로세스, 8.5.5.2절에 명시되는 것과 같은 서브블록 머지 모드에서 모션 벡터들 및 참조 인덱스들에 대한 유도 프로세스에서 사용되며, 8.5.2.1절의 히스토리 기반 모션 벡터 예측기 리스트에 대한 업데이트 프로세스의 호출을 제어하기 위해 사용된다. log2_parallel_merge_level_minus2의 값은 0 내지 CtbLog2SizeY - 2의 범위 내에 있어야 한다. 변수 Log2ParMrgLevel은 아래와 같이 유도된다.
1과 같은 sps_scaling_list_enabled_flag는 스케일링 리스트가 변환 계수들에 대한 스케일링 프로세스를 위해 사용된다고 명시한다. 0과 같은 sps_scaling_list_enabled_flag는 스케일링 리스트가 변환 계수들에 대한 스케일링 프로세스를 위해 사용되지 않는다고 명시한다.
0과 같은 sps_dep_quant_enabled_flag는 종속 양자화가 SPS를 참조하는 픽처들에 대해 비활성화됨을 명시한다. 1과 같은 sps_dep_quant_enabled_flag는 종속 양자화가 SPS를 참조하는 픽처들에 대해 활성화될 수 있음을 명시한다.
0과 같은 sps_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 SPS를 참조하는 픽처들에 대해 비활성화된다고 명시한다. 1과 같은 sps_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 SPS를 참조하는 픽처들에 대해 활성화될 수 있다고 명시한다. sps_sign_data_hiding_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 sps_virtual_boundaries_enabled_flag는 가상 경계들을 가로지르는 비활성화 인 루프 필터링이 CLVS에서 코딩된 픽처들에서 적용될 수 있다고 명시한다. 0과 같은 sps_virtual_boundaries_enabled_flag는 가상 경계들을 가로지르는 비활성화 인 루프 필터링이 CLVS에서 코딩된 픽처들에서 적용되지 않는다고 명시한다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다.
1과 같은 sps_virtual_boundaries_present_flag는 가상 경계들의 정보가 SPS에서 시그널링된다고 명시한다. 0과 같은 sps_virtual_boundaries_present_flag는 가상 경계들의 정보가 SPS에서 시그널링되지 않는다고 명시한다. SPS에서 시그널링되는 하나 이상의 가상 경계들이 존재하는 경우, 인 루프 필터링 동작들은 SPS를 참조하는 픽처들에서 가상 경계들을 가로질러 비활성화된다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다.
비트스트림 부합성의 요건으로, res_change_in_clvs_allowed_flag가 1과 같은 경우, sps_virtual_boundaries_present_flag의 값은 0과 같아야 한다.
sps_num_ver_virtual_boundaries는 SPS에서 존재하는 sps_virtual_boundaries_pos_x[ i ] 신택스 요소들의 수를 명시한다. sps_num_ver_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
sps_virtual_boundaries_pos_x[ i ]는 루마 샘플들의 유닛들에서 i번째 수직 가상 경계의 위치를 8로 나눈 값을 명시한다. sps_virtual_boundaries_pos_x[ i ]의 값은 1 내지 Ceil( pic_width_in_luma_samples χ 8 ) - 1의 범위 내에 있어야 한다.
sps_num_hor_virtual_boundaries는 SPS에서 존재하는 sps_virtual_boundaries_pos_y[ i ] 신택스 요소들의 수를 명시한다. sps_num_hor_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
sps_virtual_boundaries_enabled_flag가 1과 같고 sps_virtual_boundaries_present_flag가 1과 같은 경우, sps_num_ver_virtual_boundaries와 sps_num_hor_virtual_boundaries의 합은 0 보다 커야 한다.
sps_virtual_boundaries_pos_y[ i ]는 루마 샘플들의 유닛들에서 i번째 수평 가상 경계의 위치를 8로 나눈 값을 명시한다. sps_virtual_boundaries_pos_y[ i ]의 값은 1 내지 Ceil( pic_height_in_luma_samples χ 8 ) - 1의 범위 내에 있어야 한다.
1과 같은 sps_general_hrd_params_present_flag는 신택스 구조 general_hrd_parameters( )가 SPS RBSP 신택스 구조에 존재한다고 명시한다. 0과 같은 sps_general_hrd_params_present_flag는 신택스 구조 general_hrd_parameters( )가 SPS RBSP 신택스 구조에 존재하지 않는다고 명시한다.
1과 같은 sps_sublayer_cpb_params_present_flag는 SPS RBSP내 신택스 구조 old_hrd_parameters( )가 0 내지 sps_max_sublayers_minus1의 범위 내에서 TemporalId를 가지는 서브레이어 표현에 대한 HRD 파라미터들을 포함한다고 명시한다. 0과 같은 sps_sublayer_cpb_params_present_flag는 SPS RBSP내 신택스 구조 old_hrd_parameters( )가 sps_max_sublayers_minus1과 같은 TemporalId를 가지는 서브레이어 표현에 대한 HRD 파라미터들을 포함한다고 명시한다. sps_max_sublayers_minus1가 0과 같은 경우, sps_sublayer_cpb_params_present_flag의 값이 0과 같다고 추론된다.
sps_sublayer_cpb_params_present_flag가 0과 같은 경우, 0 내지 sps_max_sublayers_minus1 - 1의 범위 내에서 TemporalId를 가지는 서브레이어 표현에 대한 HRD 파라미터들은 sps_max_sublayers_minus1과 같은 TemporalId를 가지는 서브레이어 표현에 대한 것과 동일하다고 추론된다. 이것들은 fixed_pic_rate_general_flag[ i ] 신택스 요소로부터 출발하여 sublayer_hrd_parameters( i ) 신택스 구조까지의 HRD 파라미터들을 직접적으로 조건 "if( general_vcl_hrd_params_present_flag )"하에서 ols_hrd_parameters 신택스 구조에 포함한다.
1과 같은 field_seq_flag는 필드들을 표현하는 픽처들을 CLVS가 운반함을 지시한다. 0과 같은 field_seq_flag는 프레임들을 표현하는 픽처들을 CLVS가 운반함을 지시한다. general_frame_only_constraint_flag가 1과 같은 경우, field_seq_flag의 값은 0과 같아야 한다.
field_seq_flag가 1과 같은 경우, 프레임-필드 정보 SEI 메시지는 CLVS 내 모든 코딩된 픽처에 대해 존재해야 한다.
참고 5 - 명시된 디코딩 프로세스는 필드들 또는 프레임들을 다르게 표현하는 픽처들을 다루지 않는다. 따라서, 필드들을 표현하는 픽처들의 시퀀스는 개별 필드의 픽처 치수들로 코딩될 수 있다. 예를 들어, 1080i 필드들을 표현하는 픽처들은 1920x540의 출력 치수들을 공통적으로 크로핑하는 반면, 시퀀스 픽처 레이트는 소스 프레임 레이트 (통상적으로 25 및 30 Hz 사이) 대신에 소스 필드들의 레이트 (통상적으로 50 및 60 Hz 사이)를 공통적으로 표현한다.
1과 같은 vui_parameters_present_flag는 신택스 구조 vui_parameters( )가 SPS RBSP 신택스 구조에 존재함을 명시한다. 0과 같은 vui_parameters_present_flag는 신택스 구조 vui_parameters( )가 SPS RBSP 신택스 구조에 존재하지 않음을 명시한다.
0과 같은 sps_extension_flag는 sps_extension_data_flag 신택스 요소들이 SPS RBSP 신택스 구조에 존재하지 않음을 명시한다. 1과 같은 sps_extension_flag는 sps_extension_data_flag 신택스 요소들이 SPS RBSP 신택스 구조에 존재한다고 명시한다.
sps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재 및 값은 본 명세서의 본 버전에서의 프로파일에 대한 디코더 적합성에 영향을 주지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 sps_extension_data_flag 신택스 요소들을 무시해야 한다.
7.4.3.4 픽처 파라미터 세트 RBSP 시맨틱스
PPS RBSP는 PPS NAL 유닛의 TemporalId 이하의 TemporalId를 가지는 적어도 하나의 AU에 포함되거나 외부 수단을 통해 제공되어, 그것이 참조되기 전에 디코딩 프로세스에 이용가능해야 한다.
PU 내에서 pps_pic_parameter_set_id의 특정 값을 가지는 모든 PPS NAL 유닛들은 동일한 콘텐츠를 가져야 한다.
pps_pic_parameter_set_id는 다른 신택스 요소들에 참조할 PPS를 식별한다. pps_pic_parameter_set_id의 값은 0 내지 63의 범위 내에 있어야 한다.
PPS NAL 유닛들은, nuh_layer_id 값들에 상관없이, pps_pic_parameter_set_id의 동일한 값 공간을 공유한다.
ppsLayerId는 특정 PPS NAL 유닛의 nal_layer_id의 값이라 하고, vclLayerId가 특정 VCL NAL 유닛의 nuh_layer_id의 값이라 하자. ppsLayerId가 vclLayerId 이하가 아니고 ppsLayerId와 같은 nuh_layer_id를 가지는 레이어가 vclLayerId와 같은 nuh_layer_id를 가지는 레이어를 포함하는 적어도 하나의 OLS에 포함되지 않는다면, 상기 특정 VCL NAL 유닛은 상기 특정 PPS NAL 유닛을 참조하지 않아야 한다.
pps_seq_parameter_set_id는 SPS에 대한 sps_seq_parameter_set_id의 값을 명시한다. pps_seq_parameter_set_id의 값은 0 내지 15의 범위 내에 있어야 한다. pps_seq_parameter_set_id의 값은 CLVS에서 코딩된 픽처들에 의해 참조되는 모든 PPS들에서 동일해야 한다.
1과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 각 픽처가 둘 이상의 VCL NAL 유닛을 가지며, 상기 VCL NAL 유닛은 nal_unit_type의 동일한 값을 가지지 않으며, 상기 픽처는 IRAP 픽처가 아님을 명시한다. 0과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 각 픽처가 하나 이상의 VCL NAL 유닛들을 가지며, PPS를 참조하는 각 픽처의 VCL NAL 유닛들은 nal_unit_type의 동일한 값을 가진다고 명시한다.
no_mixed_nalu_types_in_pic_constraint_flag가 1과 같은 경우, mixed_nalu_types_in_pic_flag의 값은 0과 같아야 한다.
nal_unit_type의 다른 값을 가지는 하나 이상의 슬라이스들을 역시 포함하는 픽처 picA에서(즉, 픽처 picA에 대한 mixed_nalu_types_in_pic_flag의 값이 1과 같다), IDR_W_RADL 내지 CRA_NUT의 범위에서 nal_unit_type 값 nalUnitTypeA를 가지는 각 슬라이스에 대해, 다음이 적용된다.
-
대응하는 subpic_treated_as_pic_flag[ i ]의 값이 1과 같은, 서브픽처 subpicA에 상기 슬라이스가 속한다.
-
상기 슬라이스는 nalUnitTypeA와 같지 않은 nal_unit_type을 가지는 VCL NAL 유닛들을 포함하는 picA의 서브픽처에 속하지 않아야 한다.
-
만약 nalUnitTypeA가 CRA와 같다면, 디코딩 순서 및 출력 순서에서 CLVS에서 현재 픽처를 따르는 모든 다음 PU들에 대해, 해당 PU들 내 subpicA에서의 슬라이스의 RefPicList[ 0 ]도 RefPicList[ 1 ]도 활성 엔트리에서 디코딩 순서 상 picA를 선행하는 임의의 픽처를 포함해야 한다.
-
그렇지 않으면(즉, nalUnitTypeA이 IDR_W_RADL 또는 IDR_N_LP와 같으면), 디코딩 순서에서 현재 픽처를 따르는 CLVS 내 모든 PU들에 대해, 해당 PU들 내 subpicA에서의 슬라이스의 RefPicList[ 0 ]도 RefPicList[ 1 ]도 활성 엔트리에서 디코딩 순서상 picA를 선행하는 임의의 픽처를 포함해야 한다.
참고 1 - 1과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 픽처들이 상이한 NAL 유닛 타입들을 가지는 슬라이스들을 포함한다고, 즉 인코더들이 합치하는 비트스트림 구조 및 원본 비트스트림들의 파라미터들의 추가 정렬을 보장해야 하는 서브픽처 비트스트림 병합 동작으로부터 발생하는 코딩된 픽처들을 지시한다. 이러한 정렬들의 일 예는 다음과 같다. sps_idr_rpl_flag의 값이 0과 같고 mixed_nalu_types_in_pic_flag가 1과 같으면, PPS를 참조하는 픽처는 IDR_W_RADL 또는 IDR_N_LP와 같은 nal_unit_type을 가지는 슬라이스들을 가질 수 없다.
pic_width_in_luma_samples은 PPS를 참조하는 각 코딩된 픽처의 폭을 루마 샘플 단위로 명시한다. pic_width_in_luma_samples는 0과 같아서는 안 되고, Max( 8, MinCbSizeY )의 정수 배여야 하며, pic_width_max_in_luma_samples 이하여야 한다.
res_change_in_clvs_allowed_flag가 0과 같으면, pic_width_in_luma_samples는 pic_width_max_in_luma_samples와 같아야 한다.
pic_height_in_luma_samples는 PPS를 참조하는 각 코딩된 픽처의 높이를 루마 샘플 단위로 명시한다. pic_height_in_luma_samples는 0과 같아서는 안 되고, Max( 8, MinCbSizeY )의 정수 배여야 하며, pic_height_max_in_luma_samples 이하여야 한다.
res_change_in_clvs_allowed_flag가 0과 같으면, pic_height_in_luma_samples는 pic_height_max_in_luma_samples와 같아야 한다.
변수들 PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC 및 PicHeightInSamplesC는 아래와 같이 유도된다.
1과 같은 pps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 PPS에서 다음에 따라 온다고 지시한다. 0과 같은 pps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 PPS에서 존재하지 않는다고 지시한다.
pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 그리고 pps_conf_win_bottom_offset은 디코딩 프로세스로부터 출력되는 CLVS내 픽처들의 샘플들을, 출력을 위한 픽처 좌표들에서 명시된 직사각 영역에 비추어 명시한다. pps_conformance_window_flag가 0과 같은 경우, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 그리고 pps_conf_win_bottom_offset의 값들은 0과 같다고 추론된다.
적합성 크로핑 윈도우는 SubWidthC * pps_conf_win_left_offset부터 pic_width_in_luma_samples - ( SubWidthC * pps_conf_win_right_offset + 1 ) 까지의 수평 픽처 좌표들 및 SubHeightC * pps_conf_win_top_offset부터 pic_height_in_luma_samples - ( SubHeightC * pps_conf_win_bottom_offset + 1 ) 까지의 수직 픽처 좌표들을 갖는 루마 샘플들을 포함한다.
SubWidthC * ( pps_conf_win_left_offset + pps_conf_win_right_offset )의 값은 pic_width_in_luma_samples 보다 작아야 하고, SubHeightC * ( pps_conf_win_top_offset + pps_conf_win_bottom_offset ) 의 값은 pic_height_in_luma_samples 보다 작아야 한다.
ChromaArrayType이 0이 아닐 때, 두 크로마 어레이의 해당하는 지정된 샘플들은 픽처 좌표들( x / SubWidthC, y / SubHeightC )를 갖는 샘플들이고, 여기서 ( x, y )는 지정된 루마 샘플들의 픽처 좌표들이다.
참고 2 - 적합성 크로핑 윈도우 오프세트 파라미터들은 출력에서만 적용된다. 모든 내적인 디코딩 프로세스들은 크로핑되지 않은 픽처 사이즈에 적용된다.
ppsA 및 ppsB가 동일한 SPS를 참조하는 임의의 두 PPS들이라 하자. 비트스트림 부합성의 요건으로, ppsA 및 ppsB가 각각 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 동일한 값들을 가지는 경우, ppsA 및 ppsB는 pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 및 pps_conf_win_bottom_offset의 동일한 값들을 각각 가져야 한다.
pic_width_in_luma_samples가 pic_width_max_in_luma_samples와 같고 pic_height_in_luma_samples가 pic_height_max_in_luma_samples와 같다면, 비트스트림 부합성의 요건으로, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 그리고 pps_conf_win_bottom_offset은 sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset 및 sps_conf_win_bottom_offset과 각각 같아야 한다.
1과 같은 scaling_window_explicit_signalling_flag는 스케일링 윈도우 오프세트 파라미터들이 PPS에 존재한다고 명시한다. 0과 같은 scaling_window_explicit_signalling_flag는 스케일링 윈도우 오프세트 파라미터들이 PPS에 존재하지 않는다고 명시한다. res_change_in_clvs_allowed_flag가 0과 같은 경우, scaling_window_explicit_signalling_flag의 값은 0과 같아야 한다.
scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset 및 scaling_win_bottom_offset는 스케일링 비 계산을 위해 픽처 사이즈에 적용되는 오프세트들을 명시한다. 존재하지 않는 경우, scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset 및 scaling_win_bottom_offset의 값들은 각각 SubWidthC * conf_win_left_offset, SubWidthC * conf_win_right_offset, SubHeightC * conf_win_top_offset, 그리고 SubHeightC * conf_win_bottom_offset와 같은 것으로 추론된다.
SubWidthC * ( scaling_win_left_offset + scaling_win_right_offset )의 값은 pic_width_in_luma_samples 미만이어야 하며, SubHeightC * ( scaling_win_top_offset + scaling_win_bottom_offset )의 값은 pic_height_in_luma_samples 미만이어야 한다.
변수들 PicOutputWidthL 및 PicOutputHeightL는 다음과 같이 유도된다.
refPicOutputWidthL 및 refPicOutputHeightL이 각각 본 PPS를 참조하는 현재 픽처의 참조 픽처의 PicOutputWidthL 및 PicOutputHeightL이라 하자. 비트스트림 부합성의 요건으로, 아래의 조건들이 모두 만족되어야 한다.
-
PicOutputWidthL * 2는 refPicWidthInLumaSamples 보다 크거나 같아야 한다.
-
PicOutputHeightL * 2는 refPicHeightInLumaSamples 보다 크거나 같아야 한다.
-
PicOutputWidthL은 refPicWidthInLumaSamples * 8 보다 작거나 같아야 한다.
-
PicOutputHeightL은 refPicHeightInLumaSamples * 8 보다 작거나 같아야 한다.
PicOutputWidthL * pic_width_max_in_luma_samples는 refPicOutputWidthL * (pic_width_in_luma_samples - Max( 8, MinCbSizeY )) 보다 크거나 같아야 한다.
PicOutputHeightL * pic_height_max_in_luma_samples는 refPicOutputHeightL * (pic_height_in_luma_samples - Max( 8, MinCbSizeY )) 보다 크거나 같아야 한다.
1과 같은 output_flag_present_flag는 pic_output_flag 신택스 요소가 PPS를 참조하는 슬라이스 헤더들에서 존재함을 지시한다. 0과 같은 output_flag_present_flag는 pic_output_flag 신택스 요소가 PPS를 참조하는 슬라이스 헤더들에 존재하지 않음을 지시한다.
1과 같은 subpic_id_mapping_in_pps_flag는 서브픽처 ID 매핑이 PPS에서 시그널링된다고 명시한다. 0과 같은 subpic_id_mapping_in_pps_flag는 서브픽처 ID 매핑이 PPS에서 시그널링되지 않는다고 명시한다. 만약 subpic_id_mapping_explicitly_signalled_flag가 0이거나 subpic_id_mapping_in_sps_flag가 1과 같으면, subpic_id_mapping_in_pps_flag의 값은 0과 같아야 한다. 그렇지 않은 경우(subpic_id_mapping_explicitly_signalled_flag가 1과 같고 subpic_id_mapping_in_sps_flag가 0과 같으면), subpic_id_mapping_in_pps_flag의 값은 1과 같아야 한다.
pps_num_subpics_minus1은 sps_num_subpics_minus1과 같아야 한다.
pps_subpic_id_len_minus1은 sps_subpic_id_len_minus1과 같아야 한다.
pps_subpic_id[ i ]는 i번째 서브픽처의 서브픽처 ID를 명시한다. pps_subpic_id[ i ] 신택스 요소의 길이는 pps_subpic_id_len_minus1 + 1 비트이다.
변수 SubpicIdVal[ i ]는, 0 내지 sps_num_subpics_minus1의 범위 내 i의 각 값에 대해, 다음과 같이 유도된다.
비트스트림 부합성의 요건으로, 다음 제약조건들이 모두 적용된다.
-
0 내지 sps_num_subpics_minus1의 범위 내 임의의 두 상이한 값 i 및 j에 대해, SubpicIdVal[ i ]는 SubpicIdVal[ j ]와 같아서는 안 된다.
-
현재 픽처가 CLVS의 첫 번째 픽처인 경우, 0 내지 sps_num_subpics_minus1의 범위 내 i의 각 값에 대해, 만약 SubpicIdVal[ i ]의 값이 동일 레이어에서 디코딩 순서 상 이전 픽처의 SubpicIdVal[ j ]의 값과 같지 않다면, 서브픽처 인덱스 i를 가지는 현재 픽처에서 서브픽처의 모든 코딩된 슬라이스 NAL 유닛들에 대한 nal_unit_type은 IDR_W_RADL 내지 CRA_NUT의 범위에서 특정 값과 같아야 한다.
1과 같은 no_pic_partition_flag는 픽처 파티셔닝이 PPS를 참조하는 각 픽처에 적용되지 않는다고 명시한다. 0과 같은 no_pic_partition_flag는 PPS를 참조하는 각 픽처가 1개 보다 많은 타일 또는 슬라이스로 분할될 수 있음을 명시한다.
비트스트림 부합성의 요건으로, no_pic_partition_flag의 값은 CLVS내 코딩된 픽처들에 의해 참조되는 모든 PPS들에 대해 동일해야 한다.
비트스트림 부합성의 요건으로, no_pic_partition_flag의 값은, sps_num_subpics_minus1 + 1의 값이 1 보다 큰 경우, 1과 같이 않아야 한다.
pps_log2_ctu_size_minus5 플러스 5는 각 CTU의 루마 코딩 트리 블록 크기를 명시한다.
pps_log2_ctu_size_minus5는 sps_log2_ctu_size_minus5와 같아야 한다.
num_exp_tile_columns_minus1 플러스 1은 명시적으로 제공된 타일 열 폭들의 수를 명시한다. num_exp_tile_columns_minus1의 값은 0 내지 PicWidthInCtbsY - 1의 범위 내에 있어야 한다. no_pic_partition_flag이 1과 같은 경우, num_exp_tile_columns_minus1의 값은 0과 같은 것으로 추론된다.
num_exp_tile_rows_minus1 플러스 1은 명시적으로 제공된 타일 행 높이들의 수를 명시한다. num_exp_tile_rows_minus1의 값은 0 내지 PicHeightInCtbsY - 1의 범위 내에 있어야 한다. no_pic_partition_flag이 1과 같은 경우, num_exp_tile_rows_minus1의 값은 0과 같은 것으로 추론된다.
tile_column_width_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_columns_minus1 - 1의 범위 내 i에 대해 i번째 타일 열의 폭을 CTB 단위로 명시한다. tile_column_width_minus1[ num_exp_tile_columns_minus1 ]은 6.5.1절에 명시된 바와 같이 인덱스가 num_exp_tile_columns_minus1 보다 크거나 같은 타일 열들의 폭을 유도하는 데에 사용된다. tile_column_width_minus1[ i ]의 값은 0 내지 PicWidthInCtbsY - 1의 범위 내에 있어야 한다. 존재하지 않는 경우, tile_column_width_minus1[ 0 ]의 값은 PicWidthInCtbsY - 1와 같은 것으로 추론된다.
tile_row_height_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_rows_minus1 - 1의 범위 내 i에 대해 i번째 타일 행의 높이를 CTB 단위로 명시한다. tile_row_height_minus1[ num_exp_tile_rows_minus1 ]은 6.5.1절에 명시된 바와 같이 인덱스가 num_exp_tile_rows_minus1 보다 크거나 같은 타일 행들의 높이를 유도하는 데에 사용된다. tile_row_height_minus1[ i ]의 값은 0 내지 PicHeightInCtbsY - 1의 범위 내에 있어야 한다. 존재하지 않는 경우, tile_row_height_minus1[ 0 ]의 값은 PicHeightInCtbsY - 1과 같은 것으로 추론된다.
0과 같은 rect_slice_flag는 각 슬라이스 내의 타일들이 래스터 스캔 순서에 있으며, 슬라이스 정보가 PPS에서 시그널링되지 않는다고 명시한다. 1과 같은 rect_slice_flag는 각 슬라이스 내의 타일들이 픽처의 직사각형 영역을 커버하며, 슬라이스 정보가 PPS에서 시그널링된다고 명시한다. 존재하지 않는 경우, rect_slice_flag는 1과 같은 것으로 추론한다. subpic_info_present_flag가 1과 같은 경우, rect_slice_flag의 값은 1과 같아야 한다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다.
num_slices_in_pic_minus1 플러스 1은 PPS를 참조하는 각 픽처에서 직사각형 슬라이스들의 수를 명시한다. num_slices_in_pic_minus1의 값은 0 내지 MaxSlicesPerPicture - 1의 범위 내에 있어야 한다. no_pic_partition_flag가 1과 같은 경우, num_slices_in_pic_minus1의 값은 0과 같은 것으로 추론된다.
0과 같은 tile_idx_delta_present_flag는 tile_idx_delta 값들이 PPS에 존재하지 않는다고 명시하며, PPS를 참조하는 픽처들 내 모든 직사각형 슬라이스들이 6.5.1 절에 정의되는 프로세스에 따라 래스터 순서로 명시된다. 1과 같은 tile_idx_delta_present_flag는 tile_idx_delta 값들이 PPS에 존재할 수 있다고 명시하며, PPS를 참조하는 픽처들 내 모든 직사각형 슬라이스들이 tile_idx_delta의 값들에 의해 지시되는 순서로 명시된다. 존재하지 않는 경우, tile_idx_delta_present_flag의 값은 0과 같은 것으로 추론된다.
slice_width_in_tiles_minus1[ i ] 플러스 1은 i번째 직사각형 슬라이스의 폭을 타일 열의 단위로 명시한다. slice_width_in_tiles_minus1[ i ]의 값은 0 내지 NumTileColumns - 1의 범위 내에 있어야 한다.
slice_width_in_tiles_minus1[ i ]가 존재하지 않는 경우, 다음이 적용된다.
-
만약 NumTileColumns가 1과 같으면, slice_width_in_tiles_minus1[ i ]의 값은 0과 같다고 추론된다.
-
그렇지 않으면, slice_width_in_tiles_minus1[ i ]의 값은 6.5.1절에서 명시된 바와 같이 추론된다.
slice_height_in_tiles_minus1[ i ] 플러스 1은 i번째 직사각형 슬라이스의 높이를 타일 행의 단위로 명시한다. slice_height_in_tiles_minus1[ i ]의 값은 0 내지 NumTileRows - 1의 범위 내에 있어야 한다.
slice_height_in_tiles_minus1[ i ]가 존재하지 않는 경우, 다음이 적용된다.
-
NumTileRows가 1과 같거나 또는 tile_idx_delta_present_flag가 0과 같고 tileIdx % NumTileColumns가 0 보다 크다면, slice_height_in_tiles_minus1[ i ]의 값이 0과 같다고 추론된다.
-
그렇지 않은 경우(NumTileRows가 1과 같지 않고, tile_idx_delta_present_flag가 1과 같거나 tileIdx % NumTileColumns가 0과 같으면), tile_idx_delta_present_flag가 1과 같거나 tileIdx % NumTileColumns가 0과 같으면, slice_height_in_tiles_minus1[ i ]의 값은 slice_height_in_tiles_minus1[ i - 1 ]과 같다고 추론된다.
num_exp_slices_in_tile[ i ]는 둘 이상의 직사각형 슬라이스들을 포함하는 현재 타일에서 명시적으로 제공된 슬라이스 높이들의 수를 명시한다. num_exp_slices_in_tile[ i ]의 값은 0 내지 RowHeight[ tileY ] - 1의 범위 내에 있어야 하며, 이때 tileY는 i번째 슬라이스를 포함하는 타일 행 인덱스이다. 존재하지 않는 경우, num_exp_slices_in_tile[ i ]의 값은 0과 같은 것으로 추론된다. num_exp_slices_in_tile[ i ]가 0과 같은 경우, 변수 NumSlicesInTile[ i ]의 값은 1과 같은 것으로 유도된다.
exp_slice_height_in_ctus_minus1[ j ] 플러스 1은 현재 타일 내 j 번째 직사각형 슬라이스의 높이를 CTU 행의 단위로 명시한다. exp_slice_height_in_ctus_minus1[ j ]의 값은 0 내지 RowHeight[ tileY ] - 1의 범위 내에 있어야 하며, 여기서 tileY는 현재 타일의 타일 행 인덱스이다.
num_exp_slices_in_tile[ i ]가 0 보다 큰 경우, 0 내지 NumSlicesInTile[ i ] - 1의 범위 내의 k에 대해 변수 NumSlicesInTile[ i ] 및 SliceHeightInCtusMinus1[ i + k ]는 아래와 같이 유도된다.
tile_idx_delta[ i ]는 i번째 직사각형 슬라이스 내의 첫 번째 타일의 타일 인덱스와 (i+1)번째 직사각형 슬라이스 내의 첫 번째 타일의 타일 인덱스 간의 차이를 명시한다. tile_idx_delta[ i ]의 값은 -NumTilesInPic + 1 내지 NumTilesInPic - 1의 범위 내에 있어야 한다. 존재하지 않는 경우, tile_idx_delta[ i ]의 값은 0과 같은 것으로 추론된다. 존재하는 경우, tile_idx_delta[ i ]의 값은 0과 같지 않아야 한다.
1과 같은 loop_filter_across_tiles_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 타일 경계들을 가로질러 실시될 수 있다고 명시한다. 0과 같은 loop_filter_across_tiles_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 타일 경계들을 가로질러 실시되지 않는다고 명시한다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, loop_filter_across_tiles_enabled_flag의 값은 1과 같은 것으로 추론된다.
1과 같은 loop_filter_across_slices_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 슬라이스 경계들을 가로질러 실시될 수 있다고 명시한다. 0과 같은 loop_filter_across_slices_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 슬라이스 경계들을 가로질러 실시되지 않는다고 명시한다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, loop_filter_across_slices_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더들에 존재하지 않는다고 명시한다.
num_ref_idx_default_active_minus1[ i ] 플러스 1은, i가 0과 같은 경우, num_ref_idx_active_override_flag가 0과 같은 P 또는 B 슬라이스들에 대한 변수 NumRefIdxActive[ 0 ]의 추론된 값을 명시하고, i가 1과 같은 경우, num_ref_idx_active_override_flag가 0과 같은 B 슬라이스들에 대한 변수 NumRefIdxActive[ 1 ]의 추론된 값을 명시한다. num_ref_idx_default_active_minus1[ i ]의 값은 0 내지 14의 범위 내에 있어야 한다.
0과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]가 PPS를 참조하는 픽처들에 대한 슬라이스 헤더들 또는 PH 신택스 구조들에 존재하지 않는다고 명시한다. 1과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]가 PPS를 참조하는 픽처들에 대한 슬라이스 헤더들 또는 PH 신택스 구조들에 존재할 수 있다고 명시한다.
init_qp_minus26 플러스 26은 PPS를 참조하는 각 슬라이스에 대한 SliceQpY의 초기 값을 명시한다. SliceQpY의 초기 값은, ph_qp_delta의 0 아닌 값이 디코딩되는 경우 픽처 레벨에서 그리고 slice_qp_delta의 0 아닌 값이 디코딩되는 경우 슬라이스 레벨에서 수정된다. init_qp_minus26의 값은 -( 26 + QpBdOffset ) 내지 +37의 범위 내에 있어야 한다.
1과 같은 cu_qp_delta_enabled_flag는 ph_cu_qp_delta_subdiv_intra_slice 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하며 cu_qp_delta_abs는 변환 유닛 신택스에 존재할 수 있다고 명시한다. 0과 같은 cu_qp_delta_enabled_flag는 ph_cu_qp_delta_subdiv_intra_slice 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하지 않으며 cu_qp_delta_abs는 변환 유닛 신택스에 존재하지 않는다고 명시한다.
1과 같은 pps_chroma_tool_offsets_present_flag는 크로마 툴 오프세트 관련 신택스 요소들이 PPS RBSP 신택스 구조에 존재함을 명시한다. 0과 같은 pps_chroma_tool_offsets_present_flag는 크로마 툴 오프세트 관련 신택스 요소들이 PPS RBSP 신택스 구조에 존재함을 명시한다. ChromaArrayType이 0과 같은 경우, pps_chroma_tool_offsets_present_flag의 값은 0과 같아야 한다.
pps_cb_qp_offset and pps_cr_qp_offset은 Qp′Cb 및 Qp′Cr을 각각 유도하는 데에 사용되는 루마 양자화 파라미터 Qp′Y에 대한 오프세트들을 명시한다. pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 -12 내지 +12의 범위 내에 있어야 한다. ChromaArrayType이 0과 같은 경우, pps_cb_qp_offset 및 pps_cr_qp_offset은 디코딩 프로세스에서 사용되지 않으며, 디코더들은 그것들의 값을 무시해야 한다. 존재하지 않는 경우, pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 0과 같은 것으로 추론된다.
1과 같은 pps_joint_cbcr_qp_offset_present_flag는 pps_joint_cbcr_qp_offset_value 및 joint_cbcr_qp_offset_list[ i ]가 PPS RBSP 신택스 구조에 존재한다고 명시한다. 0과 같은 pps_joint_cbcr_qp_offset_present_flag는 pps_joint_cbcr_qp_offset_value 및 joint_cbcr_qp_offset_list[ i ]가 PPS RBSP 신택스 구조에 존재하지 않는다고 명시한다. ChromaArrayType이 0과 같거나 sps_joint_cbcr_enabled_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_present_flag는 0과 같아야 한다. 존재하지 않는 경우, pps_joint_cbcr_qp_offset_present_flag의 값은 0과 같은 것으로 추론된다.
pps_joint_cbcr_qp_offset_value는 Qp′CbCr을 유도하는 데에 사용되는 루마 양자화 파라미터 Qp′Y의 오프세트를 명시한다. pps_joint_cbcr_qp_offset_value의 값은 -12 내지 +12의 범위 내에 있어야 한다. ChromaArrayType이 0과 같거나 sps_joint_cbcr_enabled_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_value는 디코딩 프로세스에서 사용되지 않으며, 디코더들은 그것의 값을 무시해야 한다. pps_joint_cbcr_qp_offset_present_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_value는 존재하지 않으며 0과 같은 것으로 추론된다.
1과 같은 pps_slice_chroma_qp_offsets_present_flag는 slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들이 연관된 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 pps_slice_chroma_qp_offsets_present_flag는 slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들이 연관된 슬라이스 헤더들에 존재하지 않는다고 명시한다. 존재하지 않는 경우, pps_slice_chroma_qp_offsets_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_cu_chroma_qp_offset_list_enabled_flag는 ph_cu_chroma_qp_offset_subdiv_intra_slice 및 ph_cu_chroma_qp_offset_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하며, cu_chroma_qp_offset_flag가 변환 유닛 신택스 및 팔레트 코딩 신택스에 존재할 수 있음을 명시한다. 0과 같은 pps_cu_chroma_qp_offset_list_enabled_flag는 ph_cu_chroma_qp_offset_subdiv_intra_slice 및 ph_cu_chroma_qp_offset_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하지 않으며, cu_chroma_qp_offset_flag가 변환 유닛 신택스 및 팔레트 코딩 신택스에 존재하지 않음을 명시한다. 존재하지 않는 경우, pps_cu_chroma_qp_offset_list_enabled_flag의 값은 0과 같은 것으로 추론된다.
chroma_qp_offset_list_len_minus1 플러스 1은 PSS RBSP 신택스 구조에 존재하는 cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ] 신택스 요소들의 수를 명시한다. chroma_qp_offset_list_len_minus1의 값은 0 내지 5의 범위 안에 있어야 한다.
cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ]는 Qp′Cb , Qp′Cr 및 Qp′CbCr을 각각 유도하는 데에 사용되는 오프세트들을 명시한다. cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ]의 값들은 -12 내지 +12의 범위 안에 있어야 한다. pps_joint_cbcr_qp_offset_present_flag가 0과 같은 경우, joint_cbcr_qp_offset_list[ i ]은 존재하지 않으며, 그것은 0과 같은 것으로 추론된다.
0과 같은 pps_weighted_pred_flag는 가중치 예측이 PPS를 참조하는 P 슬라이드들에 적용되지 않음을 명시한다. 1과 같은 pps_weighted_pred_flag는 가중치 예측이 PPS를 참조하는 P 슬라이드들에 적용됨을 명시한다. sps_weighted_pred_flag가 0과 같은 경우, pps_weighted_pred_flag의 값은 0과 같아야 한다.
0과 같은 pps_weighted_bipred_flag는 명시적 가중치 예측이 PPS를 참조하는 B 슬라이드들에 적용되지 않음을 명시한다. 1과 같은 pps_weighted_bipred_flag는 가중치 예측이 PPS를 참조하는 B 슬라이드들에 적용됨을 명시한다. sps_weighted_bipred_flag가 0과 같은 경우, pps_weighted_bipred_flag의 값은 0과 같아야 한다.
1과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 존재를 명시한다. 0과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 부재를 명시한다.
1과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 PH들 내 ph_deblocking_filter_override_flag의 존재 또는 PPS를 참조하는 슬라이스 헤더들 내 slice_deblocking_filter_override_flag의 존재를 명시한다. 0과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 PH들 내 ph_deblocking_filter_override_flag의 부재 또는 PPS를 참조하는 슬라이스 헤더들 내 slice_deblocking_filter_override_flag의 부재를 명시한다. 존재하지 않는 경우, deblocking_filter_override_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. 존재하지 않는 경우, pps_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.
pps_beta_offset_div2 및 pps_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 루마 컴포넌트에 적용되는 (2로 나눈) β 및 Tc를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, pps_beta_offset_div2 및 pps_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 Cb 컴포넌트에 적용되는 (2로 나눈) β 및 tC를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 Cr 컴포넌트에 적용되는 (2로 나눈) β 및 tC를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
1과 같은 rpl_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하며 PH 신택스 구조를 포함하는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 rpl_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 dbf_info_in_ph_flag는 디블로킹 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 dbf_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다. 존재하지 않는 경우, dbf_info_in_ph_flag의 값은 0과 같은 것으로 추론한다.
1과 같은 sao_info_in_ph_flag는 SAO 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 sao_info_in_ph_flag는 SAO 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 alf_info_in_ph_flag는 ALF 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 alf_info_in_ph_flag는 ALF 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 wp_info_in_ph_flag는 가중치 예측 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 wp_info_in_ph_flag는 가중치 예측 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다. 존재하지 않는 경우, wp_info_in_ph_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 qp_delta_info_in_ph_flag는 QP 델타 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 qp_delta_info_in_ph_flag는 QP 델타 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 pps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 인터 예측에서 적용됨을 명시한다. 0과 같은 pps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 적용되지 않음을 명시한다. CtbSizeY / MinCbSizeY + 1의 값이 pic_width_in_luma_samples / MinCbSizeY - 1 보다 큰 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 한다. sps_ref_wraparound_enabled_flag의 값이 0과 같은 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 한다.
pps_ref_wraparound_offset 플러스 ( CtbSizeY / MinCbSizeY ) + 2는 MinCbSizeY 루마 샘플들의 유닛들에서 수평 랩 어라운드 위치를 산정하기 위해 사용되는 오프세트를 명시한다. pps_ref_wraparound_offset의 값은 0 내지 ( pic_width_in_luma_samples / MinCbSizeY ) - ( CtbSizeY / MinCbSizeY ) - 2의 범위 내에 있어야 한다.
변수 PpsRefWraparoundOffset은 pps_ref_wraparound_offset+( CtbSizeY / MinCbSizeY ) + 2와 같은 것으로 설정된다.
0과 같은 picture_header_extension_present_flag는 어떤 PH 확장 신택스 요소들도 PPS를 참조하는 PH들에 존재하지 않는다고 명시한다. 1과 같은 picture_header_extension_present_flag는 PH 확장 신택스 요소들이 PPS를 참조하는 PH들에 존재한다고 명시한다. picture_header_extension_present_flag는 본 명세서의 본 버전에 부합하는 비트스트림에서 0과 같아야 한다.
0과 같은 slice_header_extension_present_flag는 어떤 슬라이스 헤더 확장 신택스 요소들도 PPS를 참조하는 코딩된 픽처들을 위한 슬라이스 헤더들에 존재하지 않는다고 명시한다. 1과 같은 slice_header_extension_present_flag는 슬라이스 헤더 확장 신택스 요소들이 PPS를 참조하는 코딩된 픽처들을 위한 슬라이스 헤더들에 존재한다고 명시한다. slice_header_extension_present_flag는 본 명세서의 본 버전에 부합하는 비트스트림에서 0과 같아야 한다.
0과 같은 pps_extension_flag는 어떤 pps_extension_data_flag 신택스 요소들도 PPS RBSP 신택스 구조에 존재하지 않는다고 명시한다. 1과 같은 pps_extension_flag는 PPS RBSP 신택스 구조에 pps_extension_data_flag 신택스 요소들이 존재한다고 명시한다.
pps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재와 값은 본 명세서의 본 버전에 명시되는 프로파일들에 대한 디코더의 적합성에 영향을 미치지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 pps_extension_data_flag 신택스 요소들을 무시해야 한다.
7.4.3.5 적응 파라미터 세트 시맨틱스
각 APS RBSP은 참조되기에 앞서 디코딩 프로세스에 사용가능해야 하며, 이를 참조하거나 외부 수단을 통해 제공되는 코딩된 슬라이스 NAL 유닛의 TemporalId 보다 작거나 같은 TemporalId를 갖는 적어도 하나의 AU에 포함되어야 한다.
PU 내 특정 adaptation_parameter_set_id 값 및 특정 aps_params_type 값을 갖는 모든 APS NAL 유닛들은 동일한 컨텐츠를 가져야 한다.
adaptation_parameter_set_id는 다른 신택스 요소들이 참조할 수 있도록 APS에 대한 식별자를 제공한다.
aps_params_type이 ALF_APS 혹은 SCALING_APS와 동일하면, adaptation_parameter_set_id 의 값은 0내지 7의 범위 내여야 한다.
aps_params_type이 LMCS_APS와 동일하면, adaptation_parameter_set_id의 값은 0 내지 3의 범위 내여야 한다.
ApsLayerId는 특정 APS NAL 유닛의 nuh_layer_id의 값이라 하고, vclLayerId는 특정 VCL NAL 유닛의 nuh_layer_id의 값이라 하자. ApsLayerId가 vclLayerId 이하가 아니고 apsLayerId와 같은 nuh_layer_id를 가진 레이어가 vclLayerId와 같은 nuh_layer_id를 가진 레이어를 포함하는 적어도 하나의 OLS에 포함되지 않으면, 상기 특정 VCL NAL 유닛은 상기 특정 APS NAL 유닛을 참조하지 않아야 한다.
aps_params_type는 테이블 6에 명시된 바와 같이 APS에서 운반되는 APS 파라미터들의 타입을 명시한다.
테이블 6 - APS 파라미터 타입 코드들 및 APS 파라미터들의 타입들
aps_params_type의 특정한 값을 가지는 모든 APS NAL 유닛들은, nuh_layer_id 값들과 무관하게, adaptation_parameter_set_id를 위한 동일한 값 공간을 공유한다. aps_params_type의 상이한 값들을 가지는 APS NAL 유닛들은 adaptation_parameter_set_id를 위한 별개 값 공간들을 사용한다.
참고 1 - (adaptation_parameter_set_id의 특정한 값 및 aps_params_type의 특정한 값들을 가지는) APS NAL 유닛은 픽처들을 가로질러 공유될 수 있으며, 픽처 내부의 상이한 슬라이스들은 상이한 ALF APS들을 참조할 수 있다.
참고 2 - 특정한 VCL NAL 유닛(이 VCL NAL 유닛은 디코딩 순서 상 서픽스 APS NAL 유닛에 선행한다)과 연관된 서픽스 APS NAL 유닛은 상기 특정 VCL NAL 유닛이 사용하기 위한 것이 아니며, 디코딩 순서에서 상기 서픽스 APS NAL 유닛을 따르는 VCL NAL 유닛들이 사용하기 위한 것이다.
0과 같은 aps_extension_flag는 aps_extension_data_flag 신택스 요소들이 APS RBSP 신택스 구조에 존재하지 않음을 명시한다. 1과 같은 aps_extension_flag는 APS RBSP 신택스 구조에 존재하는 aps_extension_data_flag 신택스 요소들이 있음을 명시한다.
aps_extension_data_flag는 어떤 값이라도 가질 수 있다. 그것의 존재와 값은 본 명세서의 본 버전에 명시되는 프로파일들에 대한 디코더의 적합성에 영향을 미치지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 aps_extension_data_flag 신택스 요소들을 무시해야 한다.
7.4.3.6 픽처 헤더 RBSP 시맨틱스
PH RBSP는 PH 신택스 구조, 즉, picture_header_structure( )를 포함한다.
7.4.3.7 픽처 헤더 구조 시맨틱스
PH 신택스 구조는 PH 신택스 구조와 연관된 코딩된 픽처의 모든 슬라이스들에 공통적인 정보를 포함한다.
1과 같은 gdr_or_irap_pic_flag는 현재 픽처가 GDR 또는 IRAP 픽처임을 명시한다. 0과 같은 gdr_or_irap_pic_flag는 현재 픽처가 GDR 또는 IRAP 픽처일 수 있거나 일 수 없음을 명시한다.
1과 같은 gdr_pic_flag는 PH와 연관된 픽처가 GDR 픽처임을 명시한다. 0과 같은 gdr_pic_flag는 PH와 연관된 픽처가 GDR 픽처가 아님을 명시한다. 존재하지 않는 경우, gdr_pic_flag의 값은 0과 같은 것으로 추론된다. gdr_enabled_flag가 0과 같은 경우, gdr_pic_flag의 값은 0과 같아야 한다.
0과 같은 ph_inter_slice_allowed_flag는 픽처의 모든 코딩된 슬라이스들이 2와 같은 slice_type을 가진다고 명시한다. 1과 같은 ph_inter_slice_allowed_flag는 픽처 내의 하나 또는 그 이상의 코딩된 슬라이스들이 0 또는 1과 같은 slice_type을 가진다고 명시한다.
0과 같은 ph_intra_slice_allowed_flag는 픽처의 모든 코딩된 슬라이스들이 0 또는 1과 같은 slice_type을 가진다고 명시한다. 1과 같은 ph_intra_slice_allowed_flag는 픽처 내의 하나 또는 그 이상의 코딩된 슬라이스들이 2와 같은 slice_type을 가진다고 명시한다. 존재하지 않는 경우, ph_intra_slice_allowed_flag의 값은 1과 같은 것으로 추론된다.
참고 1 - PH NAL 유닛들을 변화시킬 필요 없이 서브픽처 기반 비트스트림 병합을 실행하는 것으로 간주되는 비트스트림들에 대해, 인코더는 ph_inter_slice_allowed_flag 및 ph_intra_slice_allowed_flag의 값들을 모두 1과 같은 것으로 설정할 것으로 기대된다.
1과 같은 non_reference_picture_flag는 PH와 연관된 픽처가 결코 참조 픽처로 사용되지 않는다고 명시한다. 0과 같은 non_reference_picture_flag는 PH와 연관된 픽처가 참조 픽처로 사용될 수 있거나 사용될 수 없다고 명시한다.
ph_pic_parameter_set_id는 사용 중인 PPS에 대한 pps_pic_parameter_set_id의 값을 명시한다. ph_pic_parameter_set_id의 값은 0 내지 63의 범위 내에 있어야 한다.
비트스트림 부합성의 요건으로, PH의 TemporalId의 값은 ph_pic_parameter_set_id와 같은 pps_pic_parameter_set_id를 가지는 PPS의 TemporalId의 값 보다 크거나 같아야 한다.
ph_pic_order_cnt_lsb는 현재 픽처에 대한 픽처 오더 카운트 모듈로 MaxPicOrderCntLsb를 명시한다. ph_pic_order_cnt_lsb 신택스 요소의 길이는 log2_max_pic_order_cnt_lsb_minus4 + 4 비트이다. ph_pic_order_cnt_lsb의 값은 0 내지 MaxPicOrderCntLsb - 1의 범위 내에 있어야 한다.
no_output_of_prior_pics_flag는 비트스트림의 첫 번째 픽처가 아닌 CLVSS 픽처의 디코딩 후에 DPB의 이전에 디코딩된 픽처들의 출력에 영향을 미친다.
recovery_poc_cnt는 디코딩된 픽처들의 출력 순서 상의 복구점을 명시한다. 현재 블록이 PH와 연관된 GDR 픽처이고 recovery_poc_cnt의 값에 현재 GDR 픽처의 PicOrderCntVal를 더한 것과 같은 PicOrderCntVal를 가지는 CLVS에서 디코딩 순서상 현재 GDR 픽처를 따르는 픽처 picA가 존재하면, 상기 픽처 picA는 복구점 픽처로 지칭된다. 그렇지 않으면, 현재 픽처의 PicOrderCntVal과 recovery_poc_cnt의 값을 더한 것 보다 더 큰 PicOrderCntVal를 가지는 출력 순서 상의 첫 번째 픽처는 복구점 픽처라 불린다. 복구점 픽처는 디코딩 순서 상 현재 GDR 픽처에 선행해서는 안 된다. recovery_poc_cnt의 값은 0 내지 MaxPicOrderCntLsb - 1의 범위 안에 있어야 한다.
현재 픽처가 GDR 픽처인 경우, 변수 RpPicOrderCntVal은 다음과 같이 유도된다.
참고 2 - gdr_enabled_flag가 1이고 현재 픽처의 PicOrderCntVal이 연관된 GDR 픽처의 RpPicOrderCntVal 보다 크거나 같다면, 현재 및 디코딩 순서상 뒤따르는 디코딩된 픽처들은, 존재하는 경우, 디코딩 순서 상 연관된 GDR 픽처에 선행하는 이전 IRAP 픽처로부터 디코딩 프로세스를 시작하여 산출된 해당 픽처들에 정확하게 매치된다.
ph_extra_bit[ i ]는 1 또는 0과 같을 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 ph_extra_bit[ i ]의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
1과 같은 ph_poc_msb_present_flag는 신택스 요소 poc_msb_val가 PH에 존재한다고 명시한다. 0과 같은 ph_poc_msb_present_flag는 신택스 요소 poc_msb_val가 PH에 존재하지 않는다고 명시한다. vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 0과 같고, 현재 레이어의 참조 레이어에서 현재 AU 내에 픽처가 있다면, ph_poc_msb_present_flag의 값은 0과 같아야 한다.
poc_msb_val은 현재 픽처의 POC MSB 값을 명시한다. 신택스 요소 poc_msb_val의 길이는 poc_msb_len_minus1 + 1 비트이다.
1과 같은 ph_alf_enabled_flag는 적응적 루프 필터가 PH와 연관된 모든 슬라이스들에 대해 활성화되며, 슬라이스들에서 Y, Cb 또는 Cr 컬러 성분에 적용될 수 있다고 명시한다. 0과 같은 ph_alf_enabled_flag는 적응적 루프 필터가 PH와 연관된 하나, 그 이상 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_alf_enabled_flag는 0과 같은 것으로 추론된다.
ph_num_alf_aps_ids_luma는 PH와 연관된 슬라이스들이 참조하는 ALF APS들의 수를 명시한다.
ph_alf_aps_id_luma[ i ]는 PH와 연관된 슬라이스들의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
0과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용되지 않음을 명시한다.
1과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 컬러 컴포넌트에 적용됨을 지시한다.
2와 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cr 컬러 컴포넌트에 적용됨을 지시한다.
3과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용됨을 지시한다.
ph_alf_chroma_idc가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
ph_alf_aps_id_chrona는 PH와 연관된 슬라이스들의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_cc_alf_cb_enabled_flag는 Cb 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 모든 슬라이스들에 대해 활성화되며 상기 슬라이스들에서의 Cb 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 ph_cc_alf_cb_enabled_flag는 Cb 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 하나, 또는 그 이상, 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_cc_alf_cb_enabled_flag는 0과 같은 것으로 추론될 수 있다.
ph_cc_alf_cb_aps_id는 PH와 연관된 슬라이스들의 Cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
1과 같은 ph_cc_alf_cr_enabled_flag는 Cr 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 모든 슬라이스들에 대해 활성화되며 상기 슬라이스들에서의 Cr 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 ph_cc_alf_cr_enabled_flag는 Cr 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 하나, 또는 그 이상, 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_cc_alf_cr_enabled_flag는 0과 같은 것으로 추론될 수 있다.
ph_cc_alf_cr_aps_id는 PH와 연관된 슬라이스들의 Cr 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
1과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 PH와 연관된 모든 슬라이스들에 대해 활성화됨을 명시한다. 0과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 PH와 연관된 하나 또는 그 이상의 또는 모든 슬라이스들에 대해 비활성화될 수 있음을 명시한다. 존재하지 않는 경우, ph_lmcs_enabled_flag의 값은 0과 같은 것으로 추론된다.
ph_lmcs_aps_id는 PH와 연관된 슬라이스들의 참조하는 LMCS APS의 adaptation_parameter_set_id를 명시한다. LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_chroma_residual_scale_flag는 크로마 잔차 스케일링이 PH와 연관된 모든 슬라이스들에 대해 활성화됨을 명시한다. 0과 같은 ph_chroma_residual_scale_flag는 크로마 잔차 스케일링이 PH와 연관된 하나 또는 그 이상의 또는 모든 슬라이스들에 대해 비활성화될 수 있음을 명시한다. ph_chroma_residual_scale_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_scaling_list_present_flag는 PH와 연관된 슬라이스들을 위해 사용되는 스케일링 리스트 데이터가 참조되는 스케일링 리스트 APS에 포함된 스케일링 리스트 데이터에 기반하여 유도됨을 명시한다. 0과 같은 ph_scaling_list_present_flag는 PH와 연관된 슬라이스들을 위해 사용되는 스케일링 리스트 데이터가 16과 같은 것으로 설정됨을 명시한다. 존재하지 않는 경우, ph_scaling_list_present_flag의 값은 0과 같은 것으로 추론된다.
ph_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다. SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_virtual_boundaries_present_flag는 가상 경계들의 정보가 PH에서 시그널링된다고 명시한다. 0과 같은 ph_virtual_boundaries_present_flag는 가상 경계들의 정보가 PH에서 시그널링되지 않는다고 명시한다. PH에서 시그널링되는 하나 이상의 가상 경계들이 존재하는 경우, 인 루프 필터링 동작들은 PH를 참조하는 픽처들에서 가상 경계들을 가로질러 비활성화된다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, ph_virtual_boundaries_present_flag의 값은 0과 같은 것으로 추론된다.
비트스트림 부합성의 요건으로, subpic_info_present_flag가 1과 같은 경우, ph_virtual_boundaries_present_flag의 값은 0과 같아야 한다.
변수 VirtualBoundariesPresentFlag는 다음과 같이 유도된다.
ph_num_ver_virtual_boundaries는 PH에서 존재하는 ph_virtual_boundaries_pos_x[ i ] 신택스 요소들의 수를 명시한다. ph_num_ver_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
변수 NumVerVirtualBoundaries는 다음과 같이 유도된다.
ph_virtual_boundaries_pos_x[ i ]는 루마 샘플 단위로 i번째 수직 가상 경계의 위치를 8로 나눈 값을 명시한다. ph_virtual_boundaries_pos_x[ i ]의 값은 1 내지 Ceil( pic_width_in_luma_samples χ 8 ) - 1의 범위 내에 있어야 한다.
0 내지 NumVerVirtualBoundaries - 1의 범위 내의 i에 대해, 수직 가상 경계들의 위치들을, 루마 샘플 단위로 명시하는 리스트 VirtualBoundariesPosX[ i ]는 다음과 같이 유도된다.
임의의 2개의 수직 가상 경계들 사이의 거리는 CtbSizeY 루마 샘플들 이상이어야 한다.
ph_num_hor_virtual_boundaries는 PH에서 존재하는 ph_virtual_boundaries_pos_y[ i ] 신택스 요소들의 수를 명시한다. ph_num_hor_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
파라미터 NumHorVirtualBoundaries는 다음과 같이 유도된다.
sps_virtual_boundaries_enabled_flag가 1과 같고 ph_virtual_boundaries_present_flag가 1과 같은 경우, ph_num_ver_virtual_boundaries와 ph_num_hor_virtual_boundaries의 합은 0 보다 커야 한다.
ph_virtual_boundaries_pos_y[ i ]는 루마 샘플들의 유닛들에서 i번째 수평 가상 경계의 위치를 8로 나눈 값을 명시한다. ph_virtual_boundaries_pos_y[ i ]의 값은 1 내지 Ceil( pic_height_in_luma_samples / 8 ) - 1의 범위 내에 있어야 한다.
0 내지 NumHorVirtualBoundaries - 1의 범위 내의 i에 대해, 수평 가상 경계들의 위치들을, 루마 샘플 단위로 명시하는 리스트 VirtualBoundariesPosY[ i ]는 다음과 같이 유도된다.
임의의 2개의 수평 가상 경계들 사이의 거리는 CtbSizeY 루마 샘플들 이상이어야 한다.
pic_output_flag는 디코딩된 픽처 출력 및 삭제 프로세스들에 영향을 미친다. pic_output_flag가 존재하지 않는 경우, 그것은 1과 같은 것으로 추론된다.
1과 같은 partition_constraints_override_flag는 파티션 제약 파라미터들의 PH에 존재함을 명시한다. 0과 같은 partition_constraints_override_flag는 파티션 제약 파라미터들의 PH에 존재하지 않음을 명시한다. 존재하지 않는 경우, partition_constraints_override_flag의 값은 0과 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_intra_slice_luma는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 2(I)와 같은 slice_type을 가지는 슬라이스들의 루마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위에 있을 수 있다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_luma 의 값은 sps_log2_diff_min_qt_min_cb_intra_slice_luma와 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_intra_slice_luma는 PH와 연관된 slice_type이 2(I)를 가지는 슬라이스들에서 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_intra_slice_luma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_intra_slice_luma의 값은 sps_max_mtt_hierarchy_depth_intra_slice_luma와 같다고 추론된다.
ph_log2_diff_max_bt_min_qt_intra_slice_luma는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시할 수 있다. ph_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 sps_log2_diff_max_bt_min_qt_intra_slice_luma와 같다고 추론된다.
ph_log2_diff_max_tt_min_qt_intra_slice_luma는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraY의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 sps_log2_diff_max_tt_min_qt_intra_slice_luma와 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_intra_slice_chroma는 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 sps_log2_diff_min_qt_min_cb_intra_slice_chroma와 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_intra_slice_chroma는 PH와 연관된 slice_type이 2(I)를 가지는 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 크로마 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 sps_max_mtt_hierarchy_depth_intra_slice_chroma와 같은 것으로 추론된다.
ph_log2_diff_max_bt_min_qt_intra_slice_chroma는 이진 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 지정할 수 있다. ph_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 sps_log2_diff_max_bt_min_qt_intra_slice_chroma와 같은 것으로 추론된다.
ph_log2_diff_max_tt_min_qt_intra_slice_chroma는 삼항 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 sps_log2_diff_max_tt_min_qt_intra_slice_chroma와 같은 것으로 추론된다.
ph_cu_qp_delta_subdiv_intra_slice는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 운반하는 인트라 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_qp_delta_subdiv_intra_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma )의 범위 내에 있어야 한다.
존재하지 않는 경우, ph_cu_qp_delta_subdiv_intra_slice의 값은 0과 같은 것으로 추론된다.
ph_cu_chroma_qp_offset_subdiv_intra_slice는 cu_chroma_qp_offset_flag를 운반하는 인트라 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_chroma_qp_offset_subdiv_intra_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma )의 범위 내에 있어야 한다.
존재하지 않는 경우, ph_cu_chroma_qp_offset_subdiv_intra_slice의 값은 0과 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_inter_slice는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 루마 CU들에 대한 루마 샘플들에서의 최소 루마 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_inter_slice의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_luma의 값은 sps_log2_diff_min_qt_min_cb_inter_slice과 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_inter_slice는 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_inter_slice의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_inter_slice의 값은 sps_max_mtt_hierarchy_depth_inter_slice와 같은 것으로 추론된다.
ph_log2_diff_max_bt_min_qt_inter_slice는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_bt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_inter_slice의 값은 sps_log2_diff_max_bt_min_qt_inter_slice와 같다고 추론된다.
ph_log2_diff_max_tt_min_qt_inter_slice는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_inter_slice의 값은 sps_log2_diff_max_tt_min_qt_inter_slice와 같다고 추론된다.
ph_cu_qp_delta_subdiv_inter_slice는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 운반하는 인터 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_qp_delta_subdiv_inter_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice )의 범위 내에 있어야 한다.
존재하지 않는 경우, ph_cu_qp_delta_subdiv_inter_slice의 값은 0과 같은 것으로 추론된다.
ph_cu_chroma_qp_offset_subdiv_inter_slice는 cu_chroma_qp_offset_flag를 운반하는 인터 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_chroma_qp_offset_subdiv_inter_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice )의 범위 내에 있어야 한다.
존재하지 않는 경우, ph_cu_chroma_qp_offset_subdiv_inter_slice의 값은 0과 같은 것으로 추론된다.
ph_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측기들이 PH와 연관된 슬라이스들에 대한 인터 예측에 사용될 수 있음을 명시한다. ph_temporal_mvp_enabled_flag가 0과 같은 경우, PH와 연관된 슬라이스들의 신택스 요소들이 포함되어 어떤 시간적 모션 벡터 예측기도 슬라이스들의 디코딩에 사용되지 않아야 한다. 그렇지 않은 경우(ph_temporal_mvp_enabled_flag가 1과 같은 경우), PH와 연관된 슬라이스들의 신택스 요소들이 포함되어 시간적 모션 벡터 예측기가 슬라이스들의 디코딩에 사용될 수 있다. 존재하지 않는 경우, ph_temporal_mvp_enabled_flag의 값은 0과 같은 것으로 추론된다. DPB 내 어떤 참조 픽처도 현재 픽처로서 동일한 공간적 해상도를 가지지 않는 경우, ph_temporal_mvp_enabled_flag의 값은 0과 같아야 한다.
서브블록 기반 병합 MVP 후보들의 최대 수 MaxNumSubblockMergeCand 는 다음과 같이 유도된다.
MaxNumSubblockMergeCand의 값은 포함된다면 0 내지 5의 범위 내에 있어야 한다.
1과 같은 ph_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 0으로부터 유도된다고 명시한다. 0과 같은 ph_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 1로부터 유도된다고 명시한다.
ph_collocated_ref_idx는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
ph_collocated_from_l0_flag가 1과 같은 경우, ph_collocated_ref_idx는 참조 픽처 리스트 0 내의 엔트리를 참조하며, ph_collocated_ref_idx의 값은 0 내지 num_ref_entries[ 0 ][ PicRplsIdx[ 0 ] ] - 1의 범위 내에 있어야 한다.
ph_collocated_from_l0_flag가 0과 같은 경우, ph_collocated_ref_idx는 참조 픽처 리스트 1 내의 엔트리를 참조하며, ph_collocated_ref_idx의 값은 0 내지 num_ref_entries[ 1 ][ PicRplsIdx[ 1 ] ] - 1의 범위 내에 있어야 한다.
존재하지 않는 경우, ph_collocated_ref_idx의 값은 0과 같다고 추론된다.
1과 같은 mvd_l1_zero_flag는 mvd_coding( x0, y0, 1 ) 신택스 구조가 파싱되지 않으며, MvdL1[ x0 ][ y0 ][ compIdx ] 및 MvdCpL1[ x0 ][ y0 ][ cpIdx ][ compIdx ]가 compIdx = 0..1 및 cpIdx = 0..2에 대해 0과 같은 것으로 설정된다고 지시한다. 0과 같은 mvd_l1_zero_flag는 mvd_coding( x0, y0, 1 ) 신택스 구조가 파싱된다고 지시한다.
1과 같은 ph_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 PH와 연관된 슬라이스들에서 정수 샘플 정밀도를 사용하고 있다고 명시한다. 0과 같은 ph_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 PH와 연관된 슬라이스들에서 분수 샘플 정밀도를 사용할 수 있다고 명시한다. 존재하지 않는 경우, ph_fpel_mmvd_enabled_flag의 값은 0으로 추론된다.
1과 같은 ph_disable_bdof_flag는 양방향 광학 흐름 인터 예측 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_bdof_flag는 양방향 광학 흐름 인터 예측 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 활성화 또는 활성화되지 않을 수 있음을 명시한다.
ph_disable_bdof_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_bdof_enabled_flag가 1과 같은 경우, ph_disable_bdof_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_bdof_enabled_flag가 0과 같은 경우), ph_disable_bdof_flag의 값이 1과 같은 것으로 추론된다.
1과 같은 ph_disable_dmvr_flag는 디코더 모션 벡터 개선 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_dmvr_flag는 디코더 모션 벡터 개선 기반 인터 양 예측이 PH와 연관된 슬라이스들에서 활성화 또는 활성화되지 않을 수 있음을 명시한다.
ph_disable_dmvr_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_dmvr_enabled_flag가 1과 같은 경우, ph_disable_dmvr_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_dmvr_enabled_flag가 0과 같은 경우), ph_disable_dmvr_flag의 값이 1과 같은 것으로 추론된다.
1과 같은 ph_disable_prof_flag는 광학적 흐름을 가지는 예측 개선이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_prof_flag는 광학적 흐름을 가지는 예측 개선이 PH와 연관된 슬라이스들에서 활성화되거나 활성화되지 않을 수 있음을 명시한다.
ph_disable_prof_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_affine_prof_enabled_flag가 1과 같은 경우, ph_disable_prof_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_affine_prof_enabled_flag가 0과 같은 경우), ph_disable_prof_flag의 값이 1과 같은 것으로 추론된다.
ph_qp_delta는 코딩 유닛 레이어에서 CuQpDeltaVal의 값에 의해 수정될 때 까지 픽처 내 코딩 블록들을 위해 사용될 QpY의 초기값을 명시한다.
qp_delta_info_in_ph_flag가 1과 같은 경우, 픽처 SliceQpY의 모든 슬라이스들에 대한 QpY 양자화 파라미터의 초기값은 아래와 같이 유도된다.
SliceQpY의 값은 -QpBdOffset 내지 +63의 범위 내에 있어야 한다.
ph_joint_cbcr_sign_flag는 1과 같은 tu_joint_cbcr_residual_flag[ x0 ][ y0 ]을 가지는 변환 유닛들에서 크로마 컴포넌트들의 동일 위치 잔차 샘플들이 반대 부호들을 가진다고 명시한다. tu_joint_cbcr_residual_flag[ x0 ][ y0 ]가 변환 유닛에 대해 1과 같은 경우, 0과 같은 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 동일 위치 Cr(또는 Cb) 잔차 샘플의 부호와 동일하다는 것을 명시하며, 1과 같은 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 동일 위치 Cr(또는 Cb) 잔차 샘플의 반대 부호에 의해 주어진다는 것을 명시한다.
1과 같은 ph_sao_luma_enabled_flag는 SAO가 PH와 연관된 모든 슬라이스들에서 루마 컴포넌트에 대해 활성화됨을 명시하며, 0과 같은 ph_sao_luma_enabled_flag는 SAO가 PH와 연관된 하나 또는 그 이상 또는 모든 슬라이스들에서 루마 컴포넌트에 대해 비활성화될 수 있음을 명시한다. ph_sao_luma_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_sao_chroma_enabled_flag는 SAO가 PH와 연관된 모든 슬라이스들에서 크로마 컴포넌트에 대해 활성화됨을 명시하며, 0과 같은 ph_sao_chroma_enabled_flag는 SAO가 PH와 연관된 하나 또는 그 이상 또는 모든 슬라이스들에서 크로마 컴포넌트에 대해 비활성화될 수 있음을 명시한다. ph_sao_chroma_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
0과 같은 ph_dep_quant_enabled_flag는 종속 양자화가 각 픽처에 대해 비활성화됨을 명시한다. 1과 같은 ph_dep_quant_enabled_flag는 종속 양자화가 각 픽처에 활성화됨을 명시한다. ph_dep_quant_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
0과 같은 pic_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 현재 픽처에 대해 비활성화된다고 명시한다. 1과 같은 pic_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 현재 픽처에 대해 활성화된다고 명시한다. pic_sign_data_hiding_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_deblocking_filter_override_flag는 디블로킹 파라미터들이 PH에 존재한다고 명시한다. 0과 같은 ph_deblocking_filter_override_flag는 디블로킹 파라미터들이 PH에 존재하지 않는다고 명시한다. 존재하지 않는 경우, ph_deblocking_filter_override_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 ph_deblocking_filter_disabled_flag는 PH에 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 ph_deblocking_filter_disabled_flag는 PH와 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. ph_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 pps_deblocking_filter_disabled_flag와 같은 것으로 추론된다.
ph_beta_offset_div2 and ph_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 루마 컴포넌트에 적용되는, β 및 tC (2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. ph_beta_offset_div2 및 ph_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_beta_offset_div2 및 ph_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 Cb 컴포넌트에 적용되는, β 및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. ph_cb_beta_offset_div2 및 ph_cb_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_cb_beta_offset_div2 및 ph_cb_tc_offset_div2의 값들은 각각 pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값들과 같은 것으로 추론된다.
ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 Cr 컴포넌트에 적용되는, β 및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들은 각각 pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들과 같은 것으로 추론된다.
ph_extension_length는 PH 확장 데이터의 길이를 바이트 단위로 명시하며, ph_extension_length 자체를 시그널링하는 데에 사용되는 비트들은 포함하지 않는다. ph_extension_length의 값은 0 내지 256의 범위 내에 있어야 한다. 존재하지 않는 경우, ph_extension_length의 값은 0과 같다고 추론된다.
ph_extension_data_byte는 어떤 값이라도 가질 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 ph_extension_data_byte의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
7.4.8 슬라이스 헤더 시맨틱스
7.4.8.1 일반 슬라이스 헤더 시맨틱스
cu_qp_delta_abs를 포함하는 코딩 유닛에 대한 루마 양자화 파라미터와 그의 예측 간의 차이를 지정하는 변수 CuQpDeltaVal은 0과 동일하게 설정된다. cu_chroma_qp_offset_flag를 포함하는 코딩 유닛에 대한 양자화 파라미터들의 각자의 값들을 결정할 때 사용될 값들을 명시하는 CuQpOffsetCb, CuQpOffsetCr, 및 CuQpOffsetCbCr 모두는 0과 동일하게 설정된다.
1과 같은 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더에 존재함을 명시한다. 0과 같은 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더에 존재하지 않음을 명시한다.
비트스트림 부합성의 요건으로, picture_header_in_slice_header_flag의 값은 CLVS에서 모든 코딩된 슬라이스들에서 같아야 한다.
picture_header_in_slice_header_flag가 모든 코딩된 슬라이스에 대해 1과 같다면, 비트스트림 부합성의 요건으로, PH_NUT와 같은 nal_unit_type을 가지는 어떤 VCL NAL 유닛도 상기 CLVS에 존재해선 안 된다.
picture_header_in_slice_header_flag가 모든 코딩된 슬라이스에 대해 0과 같다면, 현재 픽처 내 모든 코딩된 슬라이스들은 1과 같은 picture_header_in_slice_header_flag를 가져야 하며, 현재 PU는 PH NAL 유닛을 가져야 한다.
slice_subpic_id는 슬라이스를 포함하는 서브픽처의 서브픽처 ID를 명시한다. 만약 slice_subpic_id가 존재한다면, 변수 CurrSubpicIdx의 값은 SubpicIdVal[ CurrSubpicIdx ]가 slice_subpic_id와 같도록 유도된다. 그렇지 않으면(slice_subpic_id가 존재하지 않으면), CurrSubpicIdx는 0과 같도록 유도된다. slice_subpic_id의 길이는 sps_subpic_id_len_minus1 + 1 비트이다.
slice_address는 슬라이스의 어드레스를 명시한다. 존재하지 않는 경우, slice_address의 값은 0과 같은 것으로 추론된다. rect_slice_flag가 1과 같고 NumSlicesInSubpic[ CurrSubpicIdx ]가 1과 같은 경우, slice_address의 값은 0과 같은 것으로 추론된다.
만약 rect_slice_flag가 0과 같으면, 다음이 적용된다.
-
슬라이스 어드레스는 래스터 스캔 타일 인덱스이다.
-
slice_address의 길이는 Ceil( Log2 ( NumTilesInPic ) ) 비트이다.
-
slice_address의 값은 0 내지 NumTilesInPic - 1의 범위 내에 있어야 한다.
그렇지 않은 경우(rect_slice_flag가 1과 같은 경우), 다음이 적용된다.
-
슬라이스 어드레스는 슬라이스의 서브픽처 레벨 슬라이스 인덱스이다.
-
slice_address의 길이는 Ceil( Log2( NumSlicesInSubpic[ CurrSubpicIdx ] ) ) 비트이다.
-
slice_address의 값은 0 내지 NumSlicesInSubpic[ CurrSubpicIdx ] - 1의 범위 내에 있어야 한다.
비트스트림 부합성의 요건으로, 아래 제약조건들이 적용된다.
-
만약 rect_slice_flag가 0과 같거나 subpic_info_present_flag가 0과 같으면, slice_address의 값은 동일한 코딩된 픽처의 어떤 다른 코딩된 슬라이스 NAL 유닛의 slice_address의 값과도 같아서는 안 된다.
-
그렇지 않은 경우, slice_subpic_id 및 slice_address 값들의 쌍은 동일한 코딩된 픽처의 어떤 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값들의 쌍과 같아서는 안 된다.
-
픽처의 슬라이스들의 모양들은 각 CTU가, 디코딩 될 때, 그것의 좌측 경계 전체 및 상단 경계 전체가 픽처 경계로 구성되거나 이전에 디코딩된 CTU(들)의 경계들로 구성되도록 해야 한다.
sh_extra_bit[ i ]는 1 또는 0과 같을 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 sh_extra_bit[ i ]의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
num_tiles_in_slice_minus1 플러스 1이 존재하는 경우, 그것은 슬라이스 내 타일들의 수를 명시한다. num_tiles_in_slice_minus1의 값은 0 내지 NumTilesInPic - 1의 범위 내에 있어야 한다.
현재 슬라이스 내 CTU들의 수를 명시하는 변수 NumCtusInCurrSlice와 0 내지 NumCtusInCurrSlice - 1의 범위 내에 있는 i에 대해, 슬라이스 내 i번째 CTB의 픽처 래스터 스캔 어드레스를 명시하는 리스트 CtbAddrInCurrSlice[ i ]는 다음과 같이 유도된다.
변수들 SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos 및 SubpicBotBoundaryPos는 다음과 같이 유도된다.
slice_type은 테이블 9에 따른 슬라이스의 코딩 타입을 명시한다.
테이블 9 - slice_type에 대한 명칭 연관관계
존재하지 않는 경우, slice_type의 값은 2와 같은 것으로 추론된다.
ph_intra_slice_allowed_flag가 0과 같은 경우, slice_type의 값은 0 또는 1과 같아야 한다. nal_unit_type이 IDR_W_RADL 내지 CRA_NUT의 범위 내에 있고, vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]이 1과 같은 경우, slice_type은 2와 같아야 한다.
변수들 MinQtLog2SizeY, MinQtLog2SizeC, MinQtSizeY, MinQtSizeC, MaxBtSizeY, MaxBtSizeC, MinBtSizeY, MaxTtSizeY, MaxTtSizeC, MinTtSizeY, MaxMttDepthY 및 MaxMttDepthC는 다음과 같이 유도된다.
만약 slice_type이 2 (I)와 같으면,
그렇지 않은 경우 (slice_type이 0 (B) 또는 1 (P)와 같으면),
1과 같은 slice_alf_enabled_flag는 적응적 루프 필터가 활성화되며, 슬라이스 내 Y, Cb 또는 Cr 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 1과 같은 slice_alf_enabled_flag는 적응적 루프 필터가 슬라이스 내 모든 컬러 컴포넌트에 대해 비활성화된다고 명시한다. 존재하지 않는 경우, slice_alf_enabled_flag의 값은 ph_alf_enabled_flag와 같다고 추론된다.
slice_num_alf_aps_ids_luma는 슬라이스가 참조하는 ALF APS들의 수를 명시한다. slice_alf_enabled_flag가 1과 같고 slice_num_alf_aps_ids_luma가 존재하지 않는 경우, slice_num_alf_aps_ids_luma의 값은 ph_num_alf_aps_ids_luma의 값과 같다고 추론된다.
slice_alf_aps_id_luma[ i ]는 슬라이스의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_luma[ i ]가 존재하지 않는 경우, slice_alf_aps_id_luma[ i ]의 값은 ph_alf_aps_id_luma[ i ]의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용되지 않음을 명시한다. 1과 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cb 컬러 컴포넌트에 적용됨을 지시한다. 2와 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cr 컬러 컴포넌트에 적용됨을 지시한다. 3과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용됨을 지시한다. slice_alf_chroma_idc가 존재하지 않는 경우, 그것은 ph_alf_chroma_idc와 같은 것으로 추론된다.
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_chroma가 존재하지 않는 경우, slice_alf_aps_id_chroma의 값은 ph_alf_aps_id_chroma의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 필터가 Cb 컬러 컴포넌트에 적용되지 않음을 명시한다. 1과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 필터가 활성화되며, Cb 컬러 컴포넌트에 적용될 수 있음을 지시한다. slice_cc_alf_cb_enabled_flag가 존재하지 않는 경우, 그것은 ph_cc_alf_cb_enabled_flag와 같은 것으로 추론된다.
slice_cc_alf_cb_aps_id는 슬라이스의 Cb 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cb_enabled_flag가 1과 같고 slice_cc_alf_cb_aps_id가 존재하지 않는 경우, slice_cc_alf_cb_aps_id의 값은 ph_cc_alf_cb_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_cc_alf_cr_enabled_flag는 크로스 컴포넌트 필터가 Cr 컬러 컴포넌트에 적용되지 않음을 명시한다. 1과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 적응적 루프 필터가 활성화되며, Cr 컬러 컴포넌트에 적용될 수 있음을 지시한다. slice_cc_alf_cr_enabled_flag가 존재하지 않는 경우, 그것은 ph_cc_alf_cr_enabled_flag와 같은 것으로 추론된다.
slice_cc_alf_cr_aps_id는 슬라이스의 Cr 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cr_enabled_flag가 1과 같고 slice_cc_alf_cr_aps_id가 존재하지 않는 경우, slice_cc_alf_cr_aps_id의 값은 ph_cc_alf_cr_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
colour_plane_id는 separate_colour_plane_flag가 1과 같은 경우 현재 슬라이스와 연관된 컬러 평면을 식별한다. colour_plane_id의 값은 0 내지 2의 범위 내에 있어야 한다. colour_plane_id 값들 0, 1 및 2는 Y, Cb 및 Cr 평면들에 각각 해당한다. colour_plane_id의 값 3은 ITU-T | ISO/IEC에 의해 미래에 사용할 목적으로 유보되었다.
참고 1 - 하나의 픽처의 상이한 컬러 평면들의 디코딩 프로세스들 간의 의존성은 존재하지 않는다.
1과 같은 num_ref_idx_active_override_flag는 신택스 요소 num_ref_idx_active_minus1[ 0 ]가 P 및 B 슬라이스들에 대해 존재하며, 신택스 요소 num_ref_idx_active_minus1[ 1 ]이 B 슬라이스들에 대해 존재한다고 명시한다. 0과 같은 num_ref_idx_active_override_flag는 신택스 요소들 num_ref_idx_active_minus1[ 0 ] 및 num_ref_idx_active_minus1[ 1 ]이 존재하지 않는다고 명시한다. 존재하지 않는 경우, num_ref_idx_active_override_flag의 값은 1과 같다고 추론된다.
num_ref_idx_active_minus1[ i ]은 수학식 143에 의해 규정되는 바와 같은 변수 NumRefIdxActive[ i ]의 유도를 위해 사용된다. num_ref_idx_active_minus1[ i ]의 값은 0 내지 14의 범위 내에 있어야 한다.
0 또는 1과 같은 i에 대해, 현재 슬라이스가 B 슬라이스이고, num_ref_idx_active_override_flag가 1과 같으며, num_ref_idx_active_minus1[ i ]가 존재하지 않는 경우, num_ref_idx_active_minus1[ i ]는 0과 같다고 추론된다.
현재 슬라이스가 P 슬라이스이고, num_ref_idx_active_override_flag가 1과 같으며, num_ref_idx_active_minus1[ 0 ]가 존재하지 않는 경우, num_ref_idx_active_minus1[ 0 ]는 0과 같다고 추론된다.
변수 NumRefIdxActive[ i ]는 다음과 같이 유도된다.
NumRefIdxActive[ i ] - 1의 값은 슬라이스를 디코딩하는 데에 사용될 수 있는 참조 픽처 리스트 i에 대한 최대 참조 인덱스를 명시한다. NumRefIdxActive[ i ]의 값이 0과 같으면, 참조 픽처 리스트 i에 대한 어떤 참조 인덱스도 슬라이스를 디코딩하는 데에 사용될 수 없다.
현재 슬라이스가 P 슬라이스인 경우, NumRefIdxActive[ 0 ]의 값은 0보다 커야 한다.
현재 슬라이스가 B 슬라이스인 경우, NumRefIdxActive[ 0 ]와 NumRefIdxActive[ 1 ] 모두 0 보다 커야 한다.
cabac_init_flag는 문맥 변수들에 대한 초기화 프로세스에서 사용되는 초기화 표를 결정하기 위한 방법을 명시한다. cabac_init_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 0로부터 유도된다고 명시한다. 0과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 1로부터 유도된다고 명시한다.
slice_type이 B 또는 P와 같고, ph_temporal_mvp_enabled_flag는 1과 같고, 그리고 slice_collocated_from_l0_flag가 존재하지 않는 경우, 다음이 적용된다.
만약 rpl_info_in_ph_flag가 1과 같으면, slice_collocated_from_l0_flag는 ph_collocated_from_l0_flag와 같다고 추론된다.
그렇지 않은 경우(rpl_info_in_ph_flag가 0과 같고, slice_type이 P와 같으면), slice_collocated_from_l0_flag의 값은 1과 같은 것으로 추론된다.
slice_collocated_ref_idx는 시간적 모션 벡터 예측에 대해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
slice_type이 P와 같거나 slice_type이 B와 같고 collocated_from_l0_flag가 1과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있어야 한다.
slice_type이 B와 같고 collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 1을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 1 ] - 1의 범위 내에 있어야 한다.
slice_collocated_ref_idx가 존재하지 않는 경우, 다음이 적용된다.
- rpl_info_in_ph_flag가 1과 같으면, slice_collocated_ref_idx의 값은 ph_collocated_ref_idx와 같다고 추론된다.
- 그렇지 않으면(rpl_info_in_ph_flag가 0과 같으면), slice_collocated_ref_idx의 값은 0과 같다고 추론된다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 픽처는 코딩된 픽처의 모든 슬라이스들에 대해 동일해야 한다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 참조 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들은 현재 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들과 각각 같아야 하며, RprConstraintsActive[ slice_collocated_from_l0_flag ? 0 : 1 ][ slice_collocated_ref_idx ]는 0과 같아야 한다.
slice_qp_delta는 코딩 유닛 레이어에서 CuQpDeltaVal의 값에 의해 수정될 때까지 슬라이스 내 코딩 블록들에 대해 사용될 QpY의 초기 값을 명시한다.
qp_delta_info_in_ph_flag가 0과 같은 경우, 슬라이스에 대한 QpY 양자화 파라미터의 초기 값 SliceQpY는 아래와 같이 유도된다.
SliceQpY 의 값은 -QpBdOffset 내지 +63의 범위 내에 있어야 한다.
다음 조건들 중 어느 하나가 참인 경우,
- wp_info_in_ph_flag가 1과 같고, pps_weighted_pred_flag가 1과 같고, 그리고 slice_type이 P와 같다.
- wp_info_in_ph_flag가 1과 같고, pps_weighted_bipred_flag가 1과 같고, 그리고 slice_type이 B와 같다.
다음이 적용된다.
- NumRefIdxActive[ 0 ]의 값은 NumWeightsL0의 값 이하여야 한다.
- i는 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있는 있는, 각 참조 픽처 인덱스 RefPicList[ 0 ][ i ]에 대해, 참조 픽처 인덱스에 적용되는 루마 가중치, Cb 가중치 그리고 Cr 가중치는 각각 LumaWeightL0[ i ], ChromaWeightL0[ 0 ][ i ] 및 ChromaWeightL0[ 1 ][ i ]이다.
wp_info_in_ph_flag가 1과 같고, pps_weighted_bipred_flag가 1과 같으며, slice_type이 B와 같으면, 다음이 적용된다.
- NumRefIdxActive[ 1 ]의 값은 NumWeightsL1의 값 이하여야 한다.
- i는 0 내지 NumRefIdxActive[ 1 ] - 1의 범위 내에 있는 있는, 각 참조 픽처 인덱스 RefPicList[ 1 ][ i ]에 대해, 참조 픽처 인덱스에 적용되는 루마 가중치, Cb 가중치 그리고 Cr 가중치는 각각 LumaWeightL1[ i ], ChromaWeightL1[ 0 ][ i ] 및 ChromaWeightL1[ 1 ][ i ]이다.
slice_cb_qp_offset은 Qp′Cb 양자화 파라미터의 값을 결정할 때 pps_cb_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_cb_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다. slice_cb_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_cb_qp_offset + slice_cb_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다.
slice_cr_qp_offset은 Qp′Cr 양자화 파라미터의 값을 결정할 때 pps_cr_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_cr_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다. slice_cr_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_cr_qp_offset + slice_cr_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다.
slice_joint_cbcr_qp_offset은 Qp′Cbcr 양자화 파라미터의 값을 결정할 때 pps_joint_cbcr_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_joint_cbcr_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다. slice_joint_cbcr_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_joint_cbcr_qp_offset + slice_joint_cbcr_qp_offset의 값은 -12 내지 +12의 범위 내에 있어야 한다.
1과 같은 cu_chroma_qp_offset_enabled_flag는 cu_chroma_qp_offset_flag가 변환 및 팔레트 코딩 신택스에 존재할 수 있다고 명시한다. 0과 같은 cu_chroma_qp_offset_enabled_flag는 cu_chroma_qp_offset_flag가 변환 및 팔레트 코딩 신택스에 존재하지 않는다고 명시한다. 존재하지 않는 경우, cu_chroma_qp_offset_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sao_luma_flag는 SAO가 현재 슬라이스에서 루마 컴포넌트에 대해 활성화됨을 명시한다. 0과 같은 sao_luma_flag는 SAO가 현재 슬라이스에서 루마 컴포넌트에 대해 비활성화됨을 명시한다. slice_sao_luma_flag가 존재하지 않는 경우, 그것은 ph_sao_luma_enabled_flag와 같은 것으로 추론된다.
1과 같은 slice_sao_chroma_flag는 SAO가 현재 슬라이스에서 크로마 컴포넌트에 대해 활성화됨을 명시한다. 0과 같은 sao_chroma_flag는 SAO가 현재 슬라이스에서 크로마 컴포넌트에 대해 비활성화됨을 명시한다. slice_sao_chroma_flag가 존재하지 않는 경우, 그것은 ph_sao_chroma_enabled_flag와 같은 것으로 추론된다.
1과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재한다고 명시한다. 0과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재하지 않는다고 명시한다. 존재하지 않는 경우, slice_deblocking_filter_override_flag의 값은 ph_deblocking_filter_override_flag와 같은 것으로 추론된다.
1과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용된다고 명시한다. slice_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 ph_deblocking_filter_disabled_flag와 같은 것으로 추론된다.
slice_beta_offset_div2 및 slice_tc_offset_div2는 현재 슬라이스를 위한 루마 컴포넌트에 적용되는 (2로 나눈) β 및 tC를 위한 디블로킹 파라미터 오프세트들을 명시한다. slice_beta_offset_div2 및 slice_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, slice_beta_offset_div2 및 slice_tc_offset_div2의 값들은 각각 ph_beta_offset_div2 및 ph_tc_offset_div2와 같은 것으로 추론된다.
slice_cb_beta_offset_div2 및 slice_cb_tc_offset_div2는 현재 슬라이스에 대한 Cb 컴포넌트에 적용되는, β 및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. slice_cb_beta_offset_div2 및 slice_cb_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, slice_cb_beta_offset_div2 및 slice_cb_tc_offset_div2의 값들은 각각 ph_cb_beta_offset_div2 및 ph_cb_tc_offset_div2의 값들과 같은 것으로 추론된다.
slice_cb_beta_offset_div2 및 slice_cb_tc_offset_div2는 현재 슬라이스에 대한 Cr 컴포넌트에 적용되는, β 및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. slice_cr_beta_offset_div2 및 slice_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위 내에 있어야 한다. 존재하지 않는 경우, slice_cr_beta_offset_div2 및 slice_cr_tc_offset_div2의 값들은 각각 ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들과 같은 것으로 추론된다.
1과 같은 slice_ts_residual_coding_disabled_flag는 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데에 residual_coding( ) 신택스 구조가 사용된다고 명시한다. 0과 같은 slice_ts_residual_coding_disabled_flag는 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데에 residual_ts_coding( ) 신택스 구조가 사용된다고 명시한다. slice_ts_residual_coding_disabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 현재 슬라이스에 대해 활성화됨을 명시한다. 0과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 현재 슬라이스에 대해 활성화되지 않는다고 명시한다. slice_lmcs_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_scaling_list_present_flag는 현재 슬라이스를 위해 사용되는 스케일링 리스트 데이터가 SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 참조되는 스케일링 리스트 APS에 포함된 스케일링 리스트 데이터에 기반하여 유도됨을 명시한다. 0과 같은 slice_scaling_list_present_flag는 현재 슬라이스를 위해 사용되는 스케일링 리스트 데이터가 7.4.3.21절에 명시된 바와 같이 유도된 디폴트 스케일링 리스트 데이터임을 명시한다. 존재하지 않는 경우, slice_scaling_list_present_flag의 값은 0과 같은 것으로 추론된다.
현재 슬라이스에서 엔트리 지점들의 수를 명시하는 변수 NumEntryPoints는 다음과 같이 유도된다.
offset_len_minus1 플러스 1은 entry_point_offset_minus1[ i ] 신택스 요소들의 길이를 비트 단위로 명시한다. offset_len_minus1의 값은 0 내지 31의 범위 내에 있어야 한다.
entry_point_offset_minus1[ i ] 플러스 1은 i번째 엔트리 지점을 바이트로 명시하며, offset_len_minus1 플러스 1 비트로 표현된다. 슬라이스 헤더를 따르는 슬라이스 데이터는 NumEntryPoints + 1 서브세트들로 구성되며, 서브세트 인덱스 값들은 0 내지 NumEntryPoints의 범위에 있다. 슬라이스 데이터의 첫 번째 바이트는 바이트 0으로 간주된다. 존재하는 경우, 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터 부분에 나타나는 에뮬레이션 방지 바이트들은 서브세트 식별의 목적을 위한 슬라이스 데이터의 일부로 간주된다. 서브세트 0는 코딩된 슬라이스 데이터의 bytes 0 내지 entry_point_offset_minus1[ 0 ] 으로 구성되며, 서브세트 k는 아래와 같이 정의되는 firstByte[ k ] 및 lastByte[ k ]를 가지는 코딩된 슬라이스 데이터의 firstByte[ k ] 내지 lastByte[ k ]까지의 바이트들로 구성되며, 이때 k는 1 내지 NumEntryPoints - 1의 범위 내에 있다.
마지막 서브세트 (서브세트 인덱스는 NumEntryPoints과 같다)는 코딩된 슬라이스 데이터의 나머지 바이트들로 구성된다.
sps_entropy_coding_sync_enabled_flag가 0과 같고 슬라이스가 하나 또는 그 이상의 완전한 타일들로 구성되는 경우, 각 서브세트는 동일한 타일 내에 있는 슬라이스 내 모든 CTU들의 모든 코딩된 비트들로 구성되어야 하며, 서브세트들의 수(즉, NumEntryPoints + 1의 값)는 슬라이스 내 타일들의 수와 같아야 한다.
sps_entropy_coding_sync_enabled_flag가 0과 같고 슬라이스가 단일 타일로부터의 CTU 행들의 서브세트를 포함하는 경우, NumEntryPoints는 0과 같아야 하며, 서브세트들의 수는 1과 같아야 한다. 서브세트는 슬라이스 내 모든 CTU들의 모든 코딩된 비트들로 구성된다.
sps_entropy_coding_sync_enabled_flag가 1과 같은 경우, 0 내지 NumEntryPoints의 범위 내에 있는 k에 대해 각각의 서브세트 k는 타일 내 CTU 행에서 모든 CTU들의 모든 코딩된 비트들로 구성되어야 하며, 서브세트들의 수(즉, NumEntryPoints + 1의 값)는 슬라이스 내 타일에 특유한 CTU 행들의 총 수와 같아야 한다.
slice_header_extension_length는 슬라이스 헤더 확장 데이터의 길이를 바이트 단위로 명시하며, slice_header_extension_length 자체를 시그널링하는 데에 사용되는 비트들은 포함하지 않는다. slice_header_extension_length의 값은 0 내지 256의 범위 내에 있어야 한다. 존재하지 않는 경우, slice_header_extension_length의 값은 0과 같은 것으로 추론된다.
slice_header_extension_data_byte[ i ]는 어떤 값도 가질 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 slice_header_extension_data_byte[ i ] 신택스 요소들을 무시해야 한다. 그것의 값은 명세서의 본 버전에서 명시되는 프로파일들에 대한 디코더 부합성에 영향을 미치지 않는다.
개시된 기술적 해결 수단들에 의해 해결된 예시적인 기술적 문제들 (Example technical problems addressed by disclosed technical solutions)
HLS의 현재 설계에는 아래에 기술될 몇 가지 잠재적인 이슈들이 있다.
(1) SPS, 픽처 헤더 및 슬라이스 헤더에서의 시간적 예측 플래그들의 제어는 P 슬라이스 및/또는 B 슬라이스에 대한 문제들을 야기한다
a)
시간적 예측 플래그들의 픽처 헤더 및 슬라이스 레벨 제어의 결과는 초기화되지 않은 동일 위치 픽처들 및/또는 P 슬라이스에 대한 동일 위치 참조 인덱스일 수 있다.
b)
Slice_collocated_ref_idx는 참조 픽처 리스트 1의 엔트리를 참조하며 P 슬라이스에 대해 사용될 수 있다.
c)
P 슬라이스에 대해, slice_collocated_ref_idx의 값은 참조 픽처 리스트 0의 엔트리를 참조하며 0 내지 NumRefIdxActive[ 0 ] - 1의 범위를 벗어날 수 있다.
d)
픽처 레벨 및 슬라이스 레벨 시간적 예측 플래그들은 동일 위치 픽처가 L0 또는 L1로부터 왔는지 여부, 어떤 참조 픽처들을 참조하는지에 관한 것이지만, 시간적 예측이 허용되는지 여부와 같은 하이 레벨 제어는 없으며, 이것은 분명하지 않을 수 있다.
(2) 서브픽처 관련 신택스 요소들의 시맨틱스는 관련된 신택스 요소들의 상호작용에 관한 더 정확한 해석을 위해 수정될 필요가 있을 수 있다.
a)
sps_independent_subpics_flag는, 오직 하나의 서브픽처 만이 있는 경우, 0과 같을 수 있다.
b)
서브픽처에 오직 하나의 슬라이스만이 있는 경우, slice_width_in_tiles_minus1의 값은 추론되기 보다는 여전히 계산될 필요가 있다.
c)
single_slice_per_subpic_flag는 픽처에 오직 하나의 슬라이스 및/또는 하나의 타일만이 있는 경우 0과 같을 수 있다.
d) single_slice_per_subpic_flag는, no_pic_partition_flag가 1과 같은 경우와 같이, 존재하지 않는 경우 0으로 추론된다. 비트스트림 부합성의 요건으로, sps_num_subpics_minus1 + 1의 값이 1 보다 큰 경우, no_pic_partition_flag의 값은 1과 같지 않아야 한다. 따라서 픽처에는 오직 하나의 서브픽처만이 있다. 서브픽처에 오직 하나의 슬라이스만이 있으므로, single_slice_per_subpic_flag는 그러한 경우 1과 같아야 한다.
(3) 일부 신택스 요소들은 서브픽처 서브 비트스트림 추출 프로세스 동안 정확하게 설정되지 않는다.
a)
서브 비트스트림 추출 프로세스로부터 추출된 서브픽처에 대한 sps_independent_subpics_flag, subpic_treated_as_pic_flag, loop_filter_across_subpic_enabled_flag 및 no_pic_partition_flag 와 같은 신택스 요소들은 작성되지 않으며, 이는 바람직하지 않을 수 있다.
b)
서브픽처 서브 비트스트림 추출 프로세스는, 픽처 단위 기반으로 변동될 수 있는, 서브픽처 ID에 의존한다. 이것의 결과는 상이한 픽처들로부터 추출된 상이한 서브픽처 인덱스들이며, 이것은 바람직하지 않을 수 있다.
c) 서브픽처 서브 비트스트림 추출 프로세스로부터의 출력 비트스트림의 sps_num_subpics_minus1 및 pps_num_subpics_minus1는 1로 작성되며, 이는 두 개의 서브픽처들의 한 번에 추출되어야 한다는 것을 지시하며, 이것은 바람직하지 않을 수 있다.
(4) 참조 픽처 리스트상의 신택스 요소들은 아무런 사용 없이 IDR 픽처들에 존재할 수 있다.
(5) 분할 정보는 예측 트리를 위한 루마 및 크로마에 대해 동일하다고 얘기되지만, 이는 참이 아니다.
(6) 코딩 툴들의 신택스 요소들은 해당 일반 제어 플래그들에 의해 좌우되거나 제약되지 않으며, 일부 일반적인 제약 플래그들의 값은 관련된 제약들에 좌우되지 않으며, 이는 다소간의 충돌을 유발할 수 있다.
a) res_change_in_clvs_allowed_flag는 일반 제약 플래그 no_res_change_in_clvs_constraint_flag의 값에 의해 제약되지 않는다.
b) scaling_window_explicit_signalling_flag는no_res_change_in_clvs_constraint_flag에 의해 제약되지 않는다.
c) scaling_window_explicit_signalling_flag는res_change_in_clvs_allowed_flag에 의해 제약되지 않는다.
d) sps_num_subpics_minus1 의 값은one_subpic_per_pic_constraint_flag.에 의해 제약되지 않는다.
e) subpic_treated_as_pic_flag는 one_subpic_per_pic_constraint_flag 및/또는 sps_num_subpics_minus1 및/또는 pps_num_subpics_minus1에 의해 제약되지 않는다.
f) loop_filter_across_subpic_enabled_flag는 is not constrained by one_subpic_per_pic_constraint_flag 및/또는 sps_num_subpics_minus1 및/또는 pps_num_subpics_minus1에 의해 제약되지 않는다.
g) one_subpic_per_pic_constraint_flag는 one_slice_per_pic_constraint_flag에 의해 제약되지 않는다.
h) no_bdpcm_constraint_flag는 no_transform_skip_constraint_flag.에 의해 제약되지 않는다.
i) num_slices_in_pic_minus1는 one_slice_per_pic_constraint_flag.에 의해 제약되지 않는다.
j) num_tiles_in_slice_minus1는 one_slice_per_pic_constraint_flag에 의해 제약되지 않는다.
예시적 기술들 및 실시예들 (Example techniques and embodiments)
아래의 상세한 발명들은 일반적인 개념들을 설명하기 위한 예시들로 고려되어야 한다. 이 발명들은 실시예들은 좁은 방식으로 해석되어서는 안 된다. 더욱이, 이 발명들은 어떠한 방식으로도 조합될 수 있다. 아래의 설명에서, 삭제된 부분들은 [[ ]]로 표시되며, 추가된 부분들은 밑줄 친 굵은 글씨 기울여 쓰기 로 표시된다.
시간적 예측 관련 HLS (Temporal prediction related HLS)
1.
TMVP의 2 레벨 제어들이 활용될 수 있으며, 하나는 픽처 레벨에서, 다른 하나는 슬라이스/타일/서브픽처/브릭 레벨이다.
a)
일 예에서, 이 플래그를 참조하는 적어도 하나의 인터 코딩된 슬라이스가 있는지 여부를 지시하는 제1 신택스 요소는 TMVP가 픽처 레벨에서 시그널링될 수 있게 한다(예를 들어, ph_temporal_mvp_allowed_flag에 의해 나타난다).
i.
일 예에서, 그것은 픽처 헤더 또는 PPS에서 시그널링 될 수 있다.
ii.
일 예에서, TMVP가 SPS에서 활성화되는 것과 같이, 그것이 조건적으로 시그널링 될 수 있고, 그리고/또는 현재 픽처는 적어도 하나의 인터 코딩된 슬라이스 및/또는 현재 픽처 헤더에 존재하는 RPL을 포함한다.
b)
일 예에서, 현재 슬라이스가 TMVP를 활성화하는지 여부를 지시하는 제2 신택스 요소는 슬라이스 레벨에서 시그널링될 수 있으며(예를 들어, sh_temporal_mvp_allowed_flag에 의해 나타날 수 있다), 이는 상기 제1 신택스 요소에 의존할 수 있다.
i.
일 예에서, sh_temporal_mvp_allowed_flag는, ph_temporal_mvp_allowed_flag가 1과 같은 경우에만, 시그널링될 수 있다. 그렇지 않은 경우, 그것은 0으로 추론된다.
ii.
일 예에서, sh_temporal_mvp_allowed_flag는, ph_temporal_mvp_allowed_flag가 0과 같은 경우에만, 시그널링될 수 있다. 그렇지 않은 경우, 그것은 1로 추론된다.
c)
일 예에서, 현재 슬라이스가 TMVP를 활성화시키는지 여부를 지시하는 제2 신택스 요소는 슬라이스 레벨에서 시그널링 될 수 있으며(예를 들어, sh_temporal_mvp_allowed_flag에 의해 나타나며), 이는 현재 슬라이스 헤더에 존재하는 RPL 및/또는 SPS에서 활성화되는 TMVP에 의존할 수 있으며, 그리고/또는 현재 슬라이스는 인터 코딩된 슬라이스이다.
d)
일 예에서, 제3 신택스 요소(예를 들어, tmvp_info_in_ph_flag)는 TMVP 정보가 픽처 헤더 또는 슬라이스 헤더에서 시그널링되는지 여부를 지시하기 위해 시그널링된다.
i.
TMVP 정보는 TMVP를 활성화할지 여부에 관한 정보를 포함한다.
ii.
TMVP 정보는 동일 위치 참조 픽처의 정보를 포함한다.
iii.
일 예에서, TMVP가 시퀀스 레벨에서 활성화되는 경우에만(예를 들어, sps_temporal_mvp_enabled_flag가 1과 같은 경우), tmvp_info_in_ph_flag는 시그널링된다.
e)
일 예에서, 상기 제2 신택스 요소는 , 그것이 존재하지 않는 경우, (제1 신택스 요소의 값과 같은) 디폴트 값과 같다고 추론된다. 예를 들어, 존재하지 않는 경우, sh_temporal_mvp_allowed_flag는 ph_temporal_mvp_allowed_flag와 같다고 추론된다.
2.
동일 위치 픽처 정보를 PH에서 SH로 계승할지 여부 및/또는 어떻게 계승할지는(예를 들어, 동일 위치 픽처는 리스트 0으로부터, 동일 위치 픽처의 참조 픽처 인덱스) 적어도 슬라이스 타입 그리고 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하는 여부(예를 들어, rpl_info_in_ph_flag가 1)에 의존한다.
a)
일 예에서, slice_type이 P와 같고 rpl_info_in_ph_flag가 1과 같으면 (또는/그리고 ph_temporal_mvp_enabled_flag가 1과 같으면), slice_collocated_from_l0_flag는 ph_collocated_from_l0_flag의 값과 별개로 1로 설정된다.
i.
또는, slice_type이 P와 같으면, slice_collocated_from_l0_flag는 다른 조건들에 상관없이 1로 추론될 수 있다.
b)
다른 예에서, slice_type이 B와 같고 slice_collocated_from_l0_flag가 1과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0에서 엔트리를 참조하며, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있어야 한다.
c)
일 예에서, slice_type이 P와 같으면, slice_collocated_from_l0_flag는 TMVP가 비활성화되는 경우 1로 추론될 수 있다.
d)
일 예에서, slice_type이 P와 같고 TMVP가 활성화되면, slice_collocated_ref_idx는 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있다.
e)
일 예에서, slice_type이 P와 같고 TMVP가 활성화되면, P 슬라이스에 대한 RprConstraintsActive[ 0 ][ slice_collocated_ref_idx ]는 0과 같을 것으로 요구될 수 있다.
f)
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
slice_collocated_ref_idx는 시간적 모션 벡터 예측에 대해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
slice_type이 P와 같거나 slice_type이 B와 같고 slice_ collocated_from_l0_flag가 1과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0을 참조하고, 그리고 P 슬라이스에 대한 slice_collocated_from_10_flag는 1로 추론되며 , slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있어야 한다.
slice_type이 B와 같고 collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 1을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 1 ] - 1의 범위 내에 있어야 한다.
slice_collocated_ref_idx가 존재하지 않는 경우, 다음이 적용된다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 픽처는 코딩된 픽처의 모든 슬라이스들에 대해 동일해야 한다.
- rpl_info_in_ph_flag가 1과 같으면, slice_collocated_ref_idx의 값은 ph_collocated_ref_idx와 같다고 추론된다.
- 그렇지 않으면(rpl_info_in_ph_flag가 0과 같으면), slice_collocated_ref_idx의 값은 0과 같다고 추론된다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 픽처는 코딩된 픽처의 모든 슬라이스들에 대해 동일해야 한다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 참조 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들은 현재 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들과 각각 같아야 하며, RprConstraintsActive[ slice_collocated_from_l0_flag? 0 : 1 ][ slice_collocated_ref_idx ]는 0과 같아야 한다
g)
일 예에서, ph_collocated_from_l0_flag가 0과 같은 경우, 픽처는 P 슬라이스들을 포함하지 않는 것이 요구될 수 있다.
i.
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
slice_type 는 테이블 9에 따른 슬라이스의 코딩 타입을 명시한다.
테이블 9 - slice_type에 대한 명칭 연관관계
존재하지 않는 경우, slice_type의 값은 2와 같은 것으로 추론된다.
ph_intra_slice_allowed_flag가 0과 같은 경우, slice_type의 값은 0 또는 1과 같아야 한다. nal_unit_type이 IDR_W_RADL 내지 CRA_NUT의 범위 내에 있고, vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]이 1과 같은 경우, slice_type은 2와 같아야 한다.
ph_collocated_from_10_flag가 0과 같은 경우, slice_type의 값은 1과 같지 않아야 한다.
ii.
또는, 슬라이스 타입을 시그널링할지 여부는 동일 위치 픽처가 리스트 0으로부터 오는지 여부에 의존할 수 있다.
1.
일 예에서, 만약 아래 조건들이 모두 참이면, 현재 픽처 헤더를 참조하는 슬라이스들에 대한 슬라이스 타입들의 시그널링은 스킵될 수 있다.
-
rpl_info_in_ph_flag는 1과 같다.
-
ph_temporal_mvp_enabled_flag는 1과 같다.
-
ph_intra_slice_allowed_flag는 0과 같다.
-
ph_collocated_from_l0_flag는 0과 같다.
또는, 더 나아가, 슬라이스 타입은 B 슬라이스들로 추론될 수 있다.
h)
일 예에서, P 슬라이스들에 대한 slice_collocated_from_l0_flag의 값은, ph_temporal_mvp_enabled_flag가 1과 같고 rpl_info_in_ph_flag가 1과 같은 경우, 1과 같은 것으로 항상 추론될 수 있다. 아래의 예시적 수정들이 도입될 수 있다.
1과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 0로부터 유도된다고 명시한다. 0과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 1로부터 유도된다고 명시한다.
[[slice_type이 B 또는 P와 같고, ph_temporal_mvp_enabled_flag는 1과 같고, 그리고 slice_collocated_from_l0_flag가 존재하지 않는 경우, 다음이 적용된다.
만약 rpl_info_in_ph_flag가 1과 같으면, slice_collocated_from_l0_flag는 ph_collocated_from_l0_flag와 같다고 추론된다.
그렇지 않은 경우(rpl_info_in_ph_flag가 0과 같고, slice_type이 P와 같으면), slice_collocated_from_l0_flag의 값은 1과 같은 것으로 추론된다.]]
ph_temporal_mvp_enabled_flag가 1과 같고 rpl_info_in_ph_flag가 1과 같은 경우, 다음이 적용된다.
-
만약 slice_type이 B와 같으며, slice_collocated_from_10_flag는 ph_collocated_from_10_flag와 같은 것으로 추론된다.
-
그렇지 않은 경우(slice_type이 P와 같은 경우), slice_collocated_from_l0_flag는 1과 같은 것으로 추론되며, 비트스트림 부합성의 요건으로, ph_collocated_ref_idx의 값은 NumRefIdxActive[ 0 ] 미만이어야 한다.
i)
일 예에서, slice_type이 P와 같고 slice_collocated_from_l0_flag가 0과 같은 경우, slice_collocated_ref_idx는 참조 픽처 리스트 1의 비활성화 엔트리를 참조한다고 얘기될 수 있으며, 참조 픽처 리스트 1의 상기 비활성화 엔트리가 참조하는 참조 픽처는 또한 참조 픽처 리스트 0의 활성화 엔트리에 의해 참조되어야 한다. 아래 예시적 수정들이 도입될 수 있다.
slice_collocated_ref_idx는 시간적 모션 벡터 예측에 대해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
slice_type이 P와 같거나 slice_type이 B와 같고 slice_ collocated_from_l0_flag가 1과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있어야 한다.
slice_type이 B와 같고 collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 1을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 1 ] - 1의 범위 내에 있어야 한다.
slice_type이 P와 같고 slice_collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 1에서 비활성 엔트리를 참조하며, 비트스트림 부합성의 요건으로, 참조 픽처 리스트 1에서 해당 비활성 엔트리에 의해 참조되는 참조 픽처는 참조 픽처 리스트 0의 활성 엔트리에 의해서도 참조되어야 한다.
slice_collocated_ref_idx가 존재하지 않는 경우, 다음이 적용된다.
-
rpl_info_in_ph_flag가 1과 같으면, slice_collocated_ref_idx의 값은 ph_collocated_ref_idx와 같다고 추론된다.
- 그렇지 않으면(rpl_info_in_ph_flag가 0과 같으면), slice_collocated_ref_idx의 값은 0과 같다고 추론된다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 픽처는 코딩된 픽처의 모든 슬라이스들에 대해 동일해야 한다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 참조 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들은 현재 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들과 각각 같아야 하며, RprConstraintsActive[ slice_collocated_from_l0_flag? 0 : 1 ][ slice_collocated_ref_idx ]는 0과 같아야 한다.
j)
또는, 동일한 픽처 헤더를 참조하는 B 및 C 슬라이스들은 상이한 코딩된 픽처들을 사용할 수 있다.
i.
일 예에서, RPL 픽처조차 픽처 헤더에서 시그널링되며, 동일 위치 픽처의 참조 픽처 인덱스는 슬라이스 헤더에서 더 시그널링 될 수 있다.
1.
일 예에서, 현재 슬라이스가 P 슬라이스고, RPL은 픽처 헤더에서 시그널링되며, 시간적 모션 벡터 예측(예를 들어, ph_temporal_mvp_enabled_flag가 참)이 활성화되고 ph_collocated_from_l0_flag가 0과 같은 경우, 동일 위치 픽처의 참조 픽처 인덱스는 더 시그널링될 수 있다.
a)
또는, 더 나아가, 그것은 참조 픽처 리스트 0을 가리키고 있다.
ii.
일 예에서, 2개의 동일 위치 참조 픽처 인덱스들은 시그널링 되거나 유도될 수 있으며, 하나는 B 슬라이스를 위한 것이고, 다른 하나는 동일한 픽처 헤더를 참조하는 P 슬라이스들을 위한 것이다.
1.
일 예에서, 상기 두 인덱스들은, 오직 ph_collocated_from_l0_flag가 0과 같은 경우에만, 시그널링될 수 있다.
k)
일 예에서, 동일한 픽처 헤더를 참조하는 B 및 P 슬라이스들이 모두 존재하는지 여부의 지시가 시그널링될 수 있다.
i.
또는, 동일한 픽처 헤더를 참조하는 슬라이스들의 타입들의 지시는 픽처 헤더에서 시그널링될 수 있다.
ii.
또는, 동일한 픽처 헤더를 참조하는 B 슬라이스들만이(P 슬라이스들 제외) 존재하는지 여부의 지시가 시그널링될 수 있다.
iii.
또는, 동일한 픽처 헤더를 참조하는 P 슬라이스들만이(B 슬라이스들 제외) 존재하는지 여부의 지시가 시그널링될 수 있다.
iv.
또는, 동일한 픽처 헤더를 참조하는 B 및 I 슬라이스들만이 존재하는지 여부의 지시가 시그널링될 수 있다.
v.
또는, 동일한 픽처 헤더를 참조하는 P 및 I 슬라이스들만이 존재하는지 여부의 지시가 시그널링될 수 있다.
vi.
또는, RPL이 픽처 헤더에서 시그널링되는 경우에만, 동일한 픽처 헤더를 참조하는 슬라이스들의 타입들의 지시가 픽처 헤더에서 시그널링될 수 있다.
vii.
또는, 동일한 픽처 헤더를 참조하는 슬라이스들의 타입들의 지시가 픽처 헤더에서 시그널링되는 경우에만 RPL이 상기 픽처 헤더에서 시그널링된다.
l)
또는, slice_type이 P와 같고 slice_collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 사용되기 전에 수정되어 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있는 인덱스에 매핑될 수 있다.
i.
일 예에서, slice_type이 P와 같고 slice_collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0 내 엔트리를 참조하고 slice_collocated_ref_idx는 (slice_collocated_ref_idx > (NumRefIdxActive[ 0 ] - 1) ? default_col_ref_idx: slice_collocated_ref_idx)로 설정된다. 여기서 변수 default_col_ref_idx는 0 내지 NumRefIdxActive[ 0 ] - 1의 범위 내에 있다.
1.
일 예에서, 변수 default_col_ref_idx는 0으로 설정된다.
2.
일 예에서, 상기 변수는 시그널링될 수 있다.
m)
2개의 슬라이스들이 하나의 픽처 헤더와 연관이 되지만 그것들 중 하나는 P 슬라이스이고 다른 하나는 B 슬라이스인 경우는 부합하는 비트스트림에서 허용되지 않을 수 있다.
n)
RPL이 시그널링되는 하나의 픽처 헤더와 연관되는 2개의 슬라이스들 중 하나가 P 슬라이스이고 다른 하나는 B 슬라이스인 경우는 부합하는 비트스트림에서 허용되지 않을 수 있다.
o)
슬라이스가 하나의 픽처 헤더와 연관되고 해당 픽처 헤더에서 RPL은 2개의 참조 픽처 리스트로 시그널링되지만, 상기 슬라이스는 P 슬라이스인 경우는 부합하는 비트스트림에서 허용되지 않을 수 있다.
서브픽처 관련 HLS (Subpicture related HLS)
3.
CLVS 내 각 픽처에서 서브픽처들의 수는(예를 들어, sps_num_subpics_minus1 및/또는 pps_num_subpics_minus1) one_subpic_per_pic_constraint_flag와 같은 일반 제약 플래그에 의존할 수 있다.
a)
일 예에서, one_subpic_per_pic_constraint_flag와 같은 일반 제약 플래그가 1과 같으면, sps_num_subpics_minus1 및/또는 pps_num_subpics_minus1의 값은 0과 같아야 한다고 요구될 수 있다.
b)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
sps_num_subpics_minus1 플러스 1은 CLVS에서 각 픽처 내 서브픽처들의 수를 명시한다. sps_num_subpics_minus1의 값은 0 내지 Ceil( pic_width_max_in_luma_samples χ CtbSizeY ) * Ceil( pic_height_max_in_luma_samples χ CtbSizeY ) - 1의 범위에 있어야 한다. 존재하지 않는 경우, sps_num_subpics_minus1의 값은 0과 같은 것으로 추론된다. one_subpic_per_pic_constraint_flag가 1과 같은 경우, sps_num_subpics_minus1의 값은 0과 같아야 한다.
4.
"어떤 인트라 예측, 어떤 인터 예측, 그리고 어떤 인 루프 필터링 동작들도 CLVS 내 서브픽처 경계를 가로질러 실시되지 않음"에 대해 명시하는 신택스 요소(예를 들어, sps_independent_subpics_flag)가 시그널링되는지 여부는 상기 CLVS 내 각 픽처에서의 서브픽처들의 수(예를 들어, sps_num_subpics_minus1)에 의존할 수 있다.
a)
일 예에서, CLVS의 각 픽처에 오직 하나의 서브픽처가 있는 경우, 신택스 요소 sps_independent_subpics_flag는 시그널링되지 않고 1로 추론될 수 있다.
b)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
1과 같은 sps_independent_subpics_flag는 인트라 예측, 인터 예측 그리고 인-루프 필터링 동작들이 CLVS에서 어떤 서브픽처 경계를 가로질러서도 실시될 수 없다고 명시한다. 0과 같은 sps_independent_subpics_flag는 CLVS에서 서브픽처 경계들을 가로지르는 인터 예측 또는 인-루프 필터링 동작들이 허용될 수 있다고 명시한다. 존재하지 않는 경우, sps_independent_subpics_flag의 값은 [[0]] 1 과 같은 것으로 추론된다.
c)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
1과 같은 sps_independent_subpics_flag는 인트라 예측, 인터 예측 그리고 인-루프 필터링 동작들이 CLVS에서 어떤 서브픽처 경계를 가로질러서도 실시될 수 없다고 명시한다. 0과 같은 sps_independent_subpics_flag는 CLVS에서 서브픽처 경계들을 가로지르는 인터 예측 또는 인-루프 필터링 동작들이 허용될 수 있다고 명시한다. 존재하지 않는 경우, sps_independent_subpics_flag의 값은 0과 같은 것으로 추론된다. sps_num_subpics_minus1가 0과 같은 경우, sps_independent_subpics_flag의 값은 1과 같아야 한다.
5. subpic_treated_as_pic_flag는 픽처에 오직 하나의 서브픽처만이 존재하는지 여부에 의존할 수 있다.
a)
일 예에서, 만약 one_subpic_per_pic_constraint_flag이 1와 같으면, subpic_treated_as_pic_flag는 1과 같을 것이 요구되거나 1과 같다고 추론될 수 있다.
b)
일 예에서, 만약 sps_num_subpics_minus1이 0과 같으면, subpic_treated_as_pic_flag는 1과 같을 것이 요구되거나 1과 같다고 추론될 수 있다.
c)
일 예에서, 만약 pps_num_subpics_minus1이 0과 같으면, subpic_treated_as_pic_flag는 1과 같을 것이 요구될 수 있다.
6. loop_filter_across_subpic_enabled_flag는 픽처에 오직 하나의 서브픽처만이 존재하는지 여부에 의존할 수 있다.
a)
일 예에서, 만약 one_subpic_per_pic_constraint_flag가 1와 같으면, loop_filter_across_subpic_enabled_flag는 0과 같을 것이 요구되거나 0과 같다고 추론될 수 있다.
b)
일 예에서, 만약 sps_num_subpics_minus1이 0과 같으면, loop_filter_across_subpic_enabled_flag는 0과 같을 것이 요구되거나 0과 같다고 추론될 수 있다.
c)
일 예에서, 만약 pps_num_subpics_minus1이 0과 같으면, loop_filter_across_subpic_enabled_flag는 0과 같을 것이 요구될 수 있다.
7.
(slice_width_in_tiles_minus1와 같은) i번째 직사각형 슬라이스의 타일 열 단위 폭이 명시되는지 여부는 single_slice_per_subpic_flag에 의존할 수 있다.
a)
일 예에서, slice_width_in_tiles_minus1가 존재하지 않지만 single_slice_per_subpic_flag가 1과 같은 경우, slice_width_in_tiles_minus1의 값은 설정되지 않을 수 있다.
b)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
slice_width_in_tiles_minus1[ i ] 플러스 1은 i번째 직사각형 슬라이스의 폭을 타일 열의 단위로 명시한다. slice_width_in_tiles_minus1[ i ]의 값은 0 내지 NumTileColumns - 1의 범위 내에 있어야 한다.
slice_width_in_tiles_minus1[ i ]가 존재하지 않고 single_slice_per_subpic_flag가 0과 같은 경우, 다음이 적용된다.
-
만약 NumTileColumns가 1과 같으면, slice_width_in_tiles_minus1[ i ]의 값은 0과 같다고 추론된다.
-
그렇지 않으면, slice_width_in_tiles_minus1[ i ]의 값은 6.5.1절에서 명시된 바와 같이 추론된다.
8.
각 서브픽처가 오직 하나의 직사각형 슬라이스로만 구성되는지 여부는(예를 들어, single_slice_per_subpic_flag) one_slice_per_pic_constraint_flag와 같은 일반 제약 플레그에 의존할 수 있다.
a)
다른 예에서, 신택스 요소 single_slice_per_subpic_flag가 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 1과 같다고 추론될 수 있다.
b)
다른 예에서, 신택스 요소 single_slice_per_subpic_flag가 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 현재 픽처가 분할되는지 여부(예를 들어, no_pic_partition_flag)에 따라 추론될 수 있다.
c)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. [[존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다.]]
d)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다. one_slice_per_pic_constraint_flag가 1과 같은 경우, single_slice_per_subpic_flag의 값은 1과 같아야 한다.
e)
일 예에서, 아래 예시적 수정들의 도입될 수 있다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다. one_slice_per_pic_constraint_flag가 1과 같고 rect_slice_flag가 1과 같은 경우, single_slice_per_subpic_flag의 값은 1과 같아야 한다.
f)
일 예에서, 아래 예시적 수정들의 도입될 수 있다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다. no_pic_partition_flag가 1과 같은 경우, single_slice_per_subpic_flag의 값은 1과 같아야 한다.
g)
일 예에서, 아래 예시적 수정들의 도입될 수 있다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 [[0]] no_pic_partition_flag 와 같은 것으로 추론된다.
9.
일 예에서, 서브픽처 서브 비트스트림 추출 동안 출력 서브 비트스트림의 유도와 관련하여, CLVS 내 상이한 픽처들을 가로지르는 출력된 서브픽처는 동일한 서브픽처 인덱스를 가지도록 요구될 수 있다.
a)
예를 들어, 추출된 서브픽처의 대상 서브픽처 ID가 CLVS 내 상이한 픽처들 가운데 동일한 서브픽처 인덱스를 참조할 수 있다는 것이 요구될 수 있다.
b)
예를 들어, 만약 subpic_id_mapping_explicitly_signalled_flag가 1과 같으면, 서브픽처 서브 비트스트림이 처리되는 경우, 서브픽처 ID 매핑이 PPS에서 시그널링되지 않는 것이 요구될 수 있다(예를 들어, subpic_id_mapping_in_pps_flag는 0과 같다).
i.
일 예에서, 만약 subpic_id_mapping_explicitly_signalled_flag가 1과 같고, 서브픽처 서브 비트스트림이 처리되는 경우, 서브픽처 ID 매핑이 SPS에서 시그널링되는 것이 요구될 수 있다(예를 들어, subpic_id_mapping_in_pps_flag는 1과 같다).
c)
예를 들어, 서브픽처 서브 비트스트림 추출 동안 어떤 비트스트림들이 추출되는지는 서브픽처 인덱스에 의존할 수 있다.
d)
예를 들어, 서브픽처 서브 비트스트림 추출 동안 어떤 신택스 요소들이 재작성되는지 그리고/또는 제거되는지는 서브픽처 인덱스에 의존할 수 있다.
e)
일 예에서, 아래 예시적 수정들이 도입될 수 있다.
C.7 서브픽처 서브 비트스트림 추출 프로세스
이 프로세스의 입력들은 비트스트림 inBitstream, 대상 OLS 인덱스 targetOlsIdx, 대상 TemporalId 최고값 tIdTarget, 그리고 각 레이어 subpicId x Target[ ]에 대한 대상 서브픽처 [[ID]] 인덱스 값들의 어레이이다.
이 프로세스의 출력은 서브 비트스트림 outBitstream이다.
입력 비트스트림에 대한 비트스트림 부합성의 요건으로, 아래의 모든 조건들을 만족시키는 모든 출력 서브 비트스트림은 부합하는 비트스트림이어야 한다.
-
출력 서브 비트스트림은 본 절에서 특정된 프로세스의 출력으로, VPS에 의해 명시된 OLS들의 리스트에 대한 인덱스와 같은 비트스트림 targetOlsIdx 그리고 OLS에 존재하는 서브픽처 ID들과 같은 subpicId x Target[ ]을 출력들로 가진다.
-
출력 서브 비트스트림은 LayerIdInOls[ targetOlsIdx ]에서 nuh_layer_id 값들의 각각과 동일한 nuh_layer_id를 가지는 적어도 하나의 VCL NAL 유닛을 포함한다.
-
출력 서브 비트스트림은 tIdTarget과 같은 TemporalId를 가지는 적어도 하나의 VCL NAL 유닛을 포함한다.
참고 - 부합하는 비트스트림은 0과 같은 TemporalId를 가지는 하나 또는 그 이상의 코딩된 슬라이스 NAL 유닛들을 포함하지만, 0과 같은 nuh_layer_id를 가지는 코딩된 슬라이스 NAL 유닛들을 포함할 필요는 없다.
-
출력 서브 비트스트림은 LayerIdInOls[ targetOlsIdx ][ i ]와 같은 nuh_layer_id 및 subpicIdxTarget[ i ]에서의 값과 같은 slice_subpic_id를 가지는 적어도 하나의 VCL NAL 유닛을 포함하며, 이때 i는 0 내지 NumLayersInOls[ targetOlsIdx ] - 1의 범위에 있다.
출력 서브 비트스트림은 아래와 같이 유도된다.
-
부속서 C.6에서 특정되는 서브 비트스트림 추출 프로세스는 inBitstream, targetOlsIdx 그리고 tIdTarget를 입력들로 하여 호출되며, 상기 프로세서의 출력은 outBitstream에 할당된다.
-
만약 본 명세서에 명시되지 않은 일부 외적인 수단이 서브 비트스트림 outBitstream에 대한 대체 파라미터 세트들을 제공하는 데에 활용하능하다면, 모든 파라미터 세트들을 상기 대체 파라미터 세트들로 대체하라.
-
그렇지 않은 경우, 서브픽처 레벨 정보 SEI 메시지들이 inBitstream에 존재하면, 다음이 적용된다.
-
모든 참조된 VPS NAL 유닛들에서 profile_tier_level() 신택스 구조들의 리스트 내 ols_ptl_idx[ targetOlsIdx ] 번째 엔트리에서의 general_level_idc의 값을 수정하여 subpicId x Target[ ]에서 모든 엔트리들과 같은 서브픽처 ID를 갖는 서브픽처들로 구성되는 서브픽처들의 세트에 대해 D.3.8에서 유도된 SubpicSetLevelIdc와 같도록 한다.
-
모든 참조된 VPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들의 리스트 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cpb_size_value_minus1[ tIdTarget ][ j ] 및 bit_rate_value_minus1[ tIdTarget ][ j ]의 값들을 수정하여, subpicId x Target[ ]에서 모든 엔트리들과 같은 서브픽처 ID를 갖는 서브픽처들로 구성되는 서브픽처들의 세트 및 0 내지 hrd_cpb_cnt_minus1 범위의 j에 대해 D.3.8에서 유도된 것과 같은 SubpicSetCpbSizeVcl[ 0 ], SubpicSetCpbSizeNal[ 0 ], SubpicSetBitrateVcl[ 0 ] 및 SubpicSetBitrateNal[ 0 ]에 상응하도록 한다.
i가 0 내지 NumLayersInOls[ targetOlsIdx ] - 1의 범위 내에 있는 i번째 레이어에 대해, 다음이 적용된다.
-
subpicId x 는 subpicId x Target[ i ]의 값과 같게 설정된다.
-
1과 같은 sps_ptl_dpb_hrd_params_present_flag를 가지는 모든 참조된 SPS NAL 유닛들에서 profile_tier_level() 신택스 구조내 general_level_idc의 값을 수정하여 subpicId x 와 같은 서브픽처 [[ID]] 인덱스 를 갖는 서브픽처들로 구성되는 서브픽처들의 세트에 대해 D.3.8에서 유도된 SubpicSetLevelIdc와 같도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들의 리스트 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cpb_size_value_minus1[ tIdTarget ][ j ] 및 bit_rate_value_minus1[ tIdTarget ][ j ]의 값들을 수정하여, subpicId x 와 같은 서브픽처 [[ID]] 인덱스 를 갖는 서브픽처 및 0 내지 hrd_cpb_cnt_minus1 범위의 j에 대해 D.3.8에서 유도된 것과 같은 SubpicCpbSizeVcl[ 0 ][ SubpicId x List[ subPicId x ] ], SubpicCpbSizeNal[ 0 ][ SubpicId x List[ subPicId x ] ], SubpicBitrateVcl[ 0 ][ SubpicId x List[ subPicId x ] ] 및 SubpicBitrateNal[ 0 ][ SubpicId x List[ subPicId x ] ]에 상응하도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 pic_width_max_in_luma_samples 및 pic_height_max_in_luma_samples의 값 및 모든 참조된 PPS NAL 유닛들에서 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값을 수정하여 subpic_width_minus1[ SubpicId x List[ subPicId x ] ] 및 subpic_height_minus1[ SubpicId x List[ subPicId x ] ]와 같도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 sps_num_subpics_minus1의 값 및 모든 참조된 PPS NAL 유닛들에서 pps_num_subpics_minus1의 값을 1로 수정한다.
-
모든 참조된 SPS NAL 유닛들에서 신택스 요소들 subpic_ctu_top_left_x[ SubpicId x List[ subPicId x ] ], subpic_ctu_top_left_y[ SubpicId x List[ subPicId x ] ]이 존재하는 경우, 그것들을 0으로 수정한다.
-
모든 참조된 SPS NAL 유닛들에서 그리고 SubpicId x List[ j ]가 subPicId x 와 같지 않은 각 j에 대해, 신택스 요소들 subpic_ctu_top_left_x[ j ], subpic_ctu_top_left_y[ j ], subpic_width_minus1[ j ], subpic_height_minus1[ j ], subpic_treated_as_pic_flag[ j ], loop_filter_across_subpic_enabled_flag[ j ], 그리고 sps_subpic_id[ j ]를 제거한다.
-
타일링 및 슬라이스 구조 관련 신택스 요소들을 모든 참조된 PPS에서 수정하여 모든 타일 행들, 타일 열들, 그리고 subPicId x 와 같지 않은 subpicture ID를 가진 서브픽처와 연관되지 않은 슬라이스들을 제거한다.
-
i번째 레이어의 nuh_layer_id와 같은 nuh_layer_id 그리고 subPicId x 와 같은 slice_subpic_id를 가지는 모든 VCL NAL 유닛들을 outBitstream으로부터 제거한다.
-
sli_cbr_constraint_flag가 1과 같은 경우, FD_NUT와 같은 nal_unit_type을 가지는 모든 NAL 유닛들 및 subpicId x Target[ ] 내 서브픽처의 VCL NAL 유닛들과 연관되지 않는 필러 페이로드 SEI 메시지들을 제거하고, 모든 참조되는 VPS NAL 유닛들 및 SPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cbr_flag[ tIdTarget ][ j ]를 1과 같게 설정한다. 이때 j는 0 내지 hrd_cpb_cnt_minus1의 범위 내에 있다. 그렇지 않을 경우(sli_cbr_constraint_flag가 0과 같으면), FD_NUT와 같은 nal_unit_type를 가지는 모든 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 제거하고, cbr_flag[ tIdTarget ][ j ]를 0과 같게 설정한다.
-
outBitstream이 outBitstream에 적용가능한 1과 같은 nesting_ols_flag 및 1과 같은 nesting_subpic_flag를 가지는 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛들을 포함하는 경우, 1(픽처 타이밍) 또는 130(디코딩 유닛 정보)과 같은 payloadType을 가지는 적절한 논-스케일러브 네스팅된 SEI 메시지를 상기 스케일러블 네스팅 메시지로부터 추출하여 상기 추출된 SEI 메시지들을 outBitstream에 배치한다.
10.
일 예에서, 서브픽처 서브 비트스트림 추출 동안 출력 서브 비트스트림의 유도와 관련하여, 추출된 서브 비트스트림은 출력 비트스트림에서 단일한 서브픽처로 취급될 수 있다.
a)
일 예에서, 신택스 요소 sps_independent_subpics_flag는 추출된 서브픽처를 가지는 출력 서브 비트스트림에 참조된 신택스 구조들에 대해 1과 같은 것으로 수정될 수 있다.
b)
일 예에서, 모든 출력 레이어들에서 추출된 서브픽처에 참조된 신택스 요소들 subpic_treated_as_pic_flag 및/또는 loop_filter_across_subpic_enabled_flag는 출력 서브 비트스트림의 신택스 구조들로부터 시그널링되지 않을 수 있다(즉, 제거될 수 있다).
i.
일 예에서, 신택스 요소 subpic_treated_as_pic_flag는 추출된 서브픽처를 가지는 출력 서브 비트스트림에 참조된 신택스 구조들에 대해 1과 같은 것으로 추론될 수 있다.
ii.
일 예에서, 신택스 요소 loop_filter_across_subpic_enabled_flag는 추출된 서브픽처를 가지는 출력 서브 비트스트림에 참조된 신택스 구조들에 대해 0과 같은 것으로 추론될 수 있다.
c)
일 예에서, 모든 참조된 SPS NAL 유닛들에서 sps_num_subpics_minus1의 값 및 출력된 서브픽처를 가지는 모든 참조된 PPS NAL 유닛들에서의 pps_num_subpics_minus1의 값은 0과 같은 것으로 수정될 수 있다.
d)
일 예에서, 신택스 요소 no_pic_partition_flag는 출력된 서브픽처를 가지는 출력 서브 비트스트림에 참조된 신택스 구조들에 대해 수정될 수 있다.
i.
예를 들어, 신택스 요소 no_pic_partition_flag의 수정여부는 서브픽처를 포함하는 출력 비트스트림 내 타일/슬라이스의 수에 의존할 수 있다.
1.
일 예에서, 만약 추출된 서브픽처에 오직 하나의 타일 및 오직 하나의 슬라이스만이 존재한다면, 신택스 요소 no_pic_partition_flag는 추출된 서브픽처를 가지는 출력 서브 비트스트림으로 참조된 신택스 구조들에 대해 1과 같은 것으로 수정될 수 있다.
2.
또는, 만약 추출된 서브픽처 내 타일 및/또는 슬라이스의 수가 1 보다 크다면, 신택스 요소 no_pic_partition_flag는 추출된 서브픽처를 가지는 출력 서브 비트스트림으로 참조된 신택스 구조들에 대해 0과 같은 것으로 수정될 수 있다.
e)
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
C.7 서브픽처 서브 비트스트림 추출 프로세스
...출력 서브 비트스트림은 아래와 같이 유도된다.
-
부속서 C.6에서 특정되는 서브 비트스트림 추출 프로세스는 inBitstream, targetOlsIdx 그리고 tIdTarget를 입력들로 하여 호출되며, 상기 프로세서의 출력은 outBitstream에 할당된다.
-
만약 본 명세서에 명시되지 않은 일부 외적인 수단이 서브 비트스트림 outBitstream에 대한 대체 파라미터 세트들을 제공하는 데에 활용하능하다면, 모든 파라미터 세트들을 상기 대체 파라미터 세트들로 대체하라.
-
그렇지 않은 경우, 서브픽처 레벨 정보 SEI 메시지들이 inBitstream에 존재하면, 다음이 적용된다.
-
모든 참조된 VPS NAL 유닛들에서 profile_tier_level() 신택스 구조들의 리스트 내 ols_ptl_idx[ targetOlsIdx ] 번째 엔트리에서 general_level_idc의 값을 수정하여 subpicIdTarget[ ]에서 모든 엔트리들과 같은 서브픽처 ID를 갖는 서브픽처들로 구성되는 서브픽처들의 세트에 대해 D.3.8에서 유도된 SubpicSetLevelIdc와 같도록 한다.
-
모든 참조된 VPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들의 리스트 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cpb_size_value_minus1[ tIdTarget ][ j ] 및 bit_rate_value_minus1[ tIdTarget ][ j ]의 값들을 수정하여, subpicIdTarget[ ]에서 모든 엔트리들과 같은 서브픽처 ID를 갖는 서브픽처들로 구성되는 서브픽처들의 세트 및 0 내지 hrd_cpb_cnt_minus1 범위의 j에 대해 D.3.8에서 유도된 것과 같은 SubpicSetCpbSizeVcl[ 0 ], SubpicSetCpbSizeNal[ 0 ], SubpicSetBitrateVcl[ 0 ] 및 SubpicSetBitrateNal[ 0 ]에 상응하도록 한다
i가 0 내지 NumLayersInOls[ targetOlsIdx ] - 1의 범위 내에 있는 i번째 레이어에 대해, 다음이 적용된다.
-
subpicId는 subpicIdTarget[ i ]의 값과 같게 설정된다.
-
1과 같은 sps_ptl_dpb_hrd_params_present_flag를 가지는 모든 참조된 SPS NAL 유닛들에서 profile_tier_level() 신택스 구조내 general_level_idc의 값을 수정하여 subpicId와 같은 서브픽처 ID를 갖는 서브픽처들로 구성되는 서브픽처들의 세트에 대해 D.3.8에서 유도된 SubpicSetLevelIdc와 같도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들의 리스트 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cpb_size_value_minus1[ tIdTarget ][ j ] 및 bit_rate_value_minus1[ tIdTarget ][ j ]의 값들을 수정하여, subpicId와 같은 서브픽처 ID를 갖는 서브픽처 및 0 내지 hrd_cpb_cnt_minus1 범위의 j에 대해 D.3.8에서 유도된 것과 같은 SubpicCpbSizeVcl[ 0 ][ SubpicIdList[ subPicId] ], SubpicCpbSizeNal[ 0 ][ SubpicIdList[ subPicId ] ], SubpicBitrateVcl[ 0 ][ SubpicIdList[ subPicId ] ] 및 SubpicBitrateNal[ 0 ][ SubpicIdList[ subPicId ] ]에 상응하도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 pic_width_max_in_luma_samples 및 pic_height_max_in_luma_samples의 값 및 모든 참조된 PPS NAL 유닛들에서 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값을 수정하여 subpic_width_minus1[ SubpicIdList[ subPicId ] ] 및 subpic_height_minus1[ SubpicIdList[ subPicId ] ]와 같도록 한다.
-
모든 참조된 SPS NAL 유닛들에서 sps_num_subpics_minus1의 값 및 모든 참조된 PPS NAL 유닛들에서 pps_num_subpics_minus1의 값을 1로 수정한다.
-
모든 참조된 SPS NAL 유닛들에서 신택스 요소들 subpic_ctu_top_left_x[ SubpicIdList[ subPicId ] ], subpic_ctu_top_left_y[ SubpicIdList[ subPicId ] ]이 존재하는 경우, 그것들을 0으로 수정한다.
-
모든 참조된 SPS NAL 유닛들에서 sps_independent_subpics_flag의 값을 1로 수정한다.
[참고: 이 문장은 아래와 같이 해석될 수 있다.
-
SubpicIdList[ i ]가 subPicId와 같은 i에 대해, 모든 참조된 SPS NAL 유닛들 내 신택스 요소들 subpic_treated_as_pic_flag [ i]를 1로 수정하라.]]
-
모든 참조된 SPS NAL 유닛들에서 그리고 SubpicIdList[ j ]가 subPicId와 같지 않은 각 j에 대해, 신택스 요소들 subpic_ctu_top_left_x[ j ], subpic_ctu_top_left_y[ j ], subpic_width_minus1[ j ], subpic_height_minus1[ j ], subpic_treated_as_pic_flag[ j ], loop_filter_across_subpic_enabled_flag[ j ], 그리고 sps_subpic_id[ j ]를 제거한다.
-
타일링 및 슬라이스 구조 관련 신택스 요소들을 모든 참조된 PPS에서 수정하여 모든 타일 행들, 타일 열들, 그리고 subPicId와 같지 않은 subpicture ID를 가진 서브픽처와 연관되지 않은 슬라이스들을 제거한다.
-
i번째 레이어의 nuh_layer_id와 같은 nuh_layer_id 그리고 subPicId와 같은 slice_subpic_id를 가지는 모든 VCL NAL 유닛들을 outBitstream으로부터 제거한다.
-
sli_cbr_constraint_flag가 1과 같은 경우, FD_NUT와 같은 nal_unit_type을 가지는 모든 NAL 유닛들 및 subpicIdTarget[ ] 내 서브픽처의 VCL NAL 유닛들과 연관되지 않는 필러 페이로드 SEI 메시지들을 제거하고, 모든 참조되는 VPS NAL 유닛들 및 SPS NAL 유닛들에서 ols_hrd_parameters() 신택스 구조들 내 ols_hrd_idx[ targetOlsIdx ] 번째 엔트리의 j번째 CPB의 cbr_flag[ tIdTarget ][ j ]를 1과 같게 설정한다. 이때 j는 0 내지 hrd_cpb_cnt_minus1의 범위 내에 있다. 그렇지 않을 경우(sli_cbr_constraint_flag가 0과 같으면), FD_NUT와 같은 nal_unit_type를 가지는 모든 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 제거하고, cbr_flag[ tIdTarget ][ j ]를 0과 같게 설정한다.
NAL 유닛 관련 HLS (NAL unit related HLS)
11.
참조 픽처 리스트 신택스 요소들은 IDR 픽처들의 슬라이스 헤더들에 존재할 수 있으며, 예를 들어, 비트스트림 병합의 경우, sps_idr_rpl_present_flag는 1과 같을 수 있다.
a)
일 예에서, 출력 비트스트림(예를 들어, mixed_nalu_types_in_pic_flag가 1과 같음)이 비트스트림 병합 동안 2개의 입력 비트스트림들로부터 병합되고, 상기 입력 비트스트림 중 하나의 NAL 유닛 타입이 IDR과 같은 IRAP VCL NAL 유닛 타입일 수 있는 경우, IDR 비트스트림의 RPL이 활용 가능할 것(즉, sps_idr_rpl_present_flag가 해당 IDR 입력 비트스트림에 대해 1과 같다)이 요구될 수 있다.
b)
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
1과 같은 sps_idr_rpl_present_flag는 참조 픽처 리스트 신택스 요소들이 IDR 픽처들의 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 sps_idr_rpl_present_flag는 참조 픽처 리스트 신택스 요소들이 IDR 픽처들의 슬라이스 헤더들에 존재하지 않는다고 명시한다.
참고 - 비트스트림이 비트스트림 병합에 관련될 것으로 예상되는 경우, 인코더들은 sps_idr_rpl_present_flag의 값을 1과 같은 것으로 설정할 것이 예상된다.
분할 관련 (Splitting related)
12.
루마 및 크로마에 대한 블록(즉, CTB, TB, PB, CB 등) 분할 정보는 예측 트리에 대해 상이할 수 있다.
a)
일 예에서, 루마 및 크로마에 대한 블록 분할 구조 및/또는 분할 신택스 요소들은 크로마 이중 트리의 경우 상이할 수 있다.
b)
일 예에서, 루마 및 크로마에 대한 블록 분할 구조 및/또는 분할 신택스 요소들은 로컬 이중 트리의 경우 상이할 수 있다.
c)
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
코딩 블록은 두 개의 트리들, 즉, 예측 트리와 변환 트리의 루트 노드이다. 예측 트리는 예측 블록들의 위치와 크기를 명시한다. 변환 트리는 변환 블록들의 위치와 크기를 명시한다. 루마 및 크로마에 대한 분할 정보는 예측 트리에 대해 [[동일하며]] 동일하거나 동일하지 않을 수 있으며 , 변환 트리에 대해서는 동일하거나 동일하지 않을 수 있다.
일반 제약 플레그들 (General constraint flags)
13.
(SPS/VPS/PPS와 같은) 파라미터 세트들 및/또는 픽처 헤더 및/또는 슬라이스 헤더에서의 신택스 요소들은 일반 제약 플래그들에 좌우될 수 있다.
a)
일 예에서, 코딩 툴 들에 대해 활성화된 플래그들은 해당 일반 제약 플래그들에 좌우될 수 있다.
i.
일 예에서, 해당 일반 제약 플래그가 1인 경우, 활성화된 플래그는 0과 같아야 한다.
ii.
일 예에서, 활성화된 플래그는 해당 일반 제약 플래그에 의해 무효화될 수 있다. 예를 들어, 만약 일반 제약 플래그가 1인 경우, 해당 활성화된 플래그는 0으로 설정될 수 있다.
b)
일 예에서, 활성화된 플래그가 시그널링되는지 여부는 해당 일반 제약 플래그들에 의존할 수 있다.
i.
일 예에서, 해당 일반 제약 플래그가 1인 경우, 활성화된 플래그는 존재하지 않을 수 있다.
ii.
일 예에서, 활성화된 플래그는 그것이 존재하지 않는 경우 0이라 추론될 수 있다.
14.
SPS를 참조하는 CLVS내에서 픽처 공간 해상도가 변할 수 있는지 여부는(예를 들어, res_change_in_clvs_allowed_flag) no_res_change_in_clvs_constraint_flag와 같은 일반 제약 플래그에 좌우될 수 있다.
a)
일 예에서, 신택스 no_res_change_in_clvs_constraint_flag가 1과 같으면, res_change_in_clvs_allowed_flag는 존재하지 않을 수 있다.
b)
일 예에서, 신택스 res_change_in_clvs_allowed_flag가 존재하지 않으면, res_change_in_clvs_allowed_flag는 0과 같다고 추론될 수 있다.
15.
스케일링 윈도우 오프세트 파라미터들이 PPS에 존재하는지 여부(예를 들어, scaling_window_explicit_signalling_flag)는 SPS를 참조하는 CLVS내에서 픽처 공간 해상도가 변하는지 여부 수 있는지 여부(예를 들어, res_change_in_clvs_allowed_flag) 및/또는 no_res_change_in_clvs_constraint_flag와 같은 일반 제약 플래그에 의존할 수 있다.
a)
일 예에서, 신택스 scaling_window_explicit_signalling_flag가 존재하지 않는 경우, scaling_window_explicit_signalling_flag는 0과 같다고 추론될 수 있다.
b)
일 예에서, res_change_in_clvs_allowed_flag가 1과 같으면, scaling_window_explicit_signalling_flag는 존재하지 않을 수 있다.
c)
일 예에서, no_res_change_in_clvs_constraint_flag가 1과 같으면, scaling_window_explicit_signalling_flag는 존재하지 않을 수 있다.
16. one_subpic_per_pic_constraint_flag가 존재하는지 여부는 신택스 one_slice_per_pic_constraint_flag에 의존할 수 있다.
a)
일 예에서, one_slice_per_pic_constraint_flag가 1과 같은 경우, one_subpic_per_pic_constraint_flag는 존재하지 않을 수 있고 1과 같다고 추론될 수 있다.
b)
일 예에서, one_slice_per_pic_constraint_flag가 0과 같은 경우, one_subpic_per_pic_constraint_flag는 존재할 수 있다.
17.
일반 제약 플래그 no_bdpcm_constraint_flag는 일반 제약 플래그 no_transform_skip_constraint_flag 에 의해 좌우될 수 있다.
a)
일 예에서, 일반 제약 플래그 no_transform_skip_constraint_flag가 1과 같으면, 일반 제약 플래그 no_bdpcm_constraint_flag는 1이어야 한다.
b)
일 예에서, 일반 제약 플래그 no_bdpcm_constraint_flag가 시그널링되는지 여부는 신택스 no_transform_skip_constraint_flag에 의존할 수 있다.
i.
일 예에서, no_transform_skip_constraint_flag가 1과 같은 경우, 일반 제약 플래그 no_bdpcm_constraint_flag는 존재하지 않을 수 있다.
ii.
일 예에서, no_bdpcm_constraint_flag가 존재하지 않는 경우, 신택스 no_bdpcm_constraint_flag는 1로 추론된다.
18.
일반 제약 플래그가 시그널링되는지 여부는 다른 일반 제약 플래그들에 의존할 수 있다.
a)
일 예에서, 몇몇 제약 그룹 플래그들이 정의될 수 있으며, 다른 일반 제약 플래그들은 이 제약 그룹 플래그들에 좌우될 수 있다.
i.
일 예에서, 제약 플래그들은 툴 타입들(예측, 변환, 양자화, 인터, 인트라를 포함하지만 이것들에 제한되지는 않음) 또는 프로파일에 따라 분류될 수 있다.
ii.
일 예에서, 하나의 그룹에 속하는 제약 플래그들은 상응하는 제약 그룹 플래그로부터 유도될 수 있다.
iii.
일 예에서, 하나의 그룹에 속하는 제약 플래그들이 시그널링되는지 여부는 상응하는 제약 그룹 플래그에 의존할 수 있다. 예를 들어, 이 그룹에 속하는 제약 플래그들은, 상기 그룹 플래그가 0인 경우, 시그널링되지 않을 수 있다.
일반 제약 플래그들의 시맨틱스 (Semantics of general constraint flags)
19.
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
1과 같은 one_tile_per_pic_constraint_flag는 각 픽처가 오직 하나의 타일만을 포함해야 한다고, 즉, 각 픽처에 적용되는 NumTilesInPic의 값이 1과 같아야 한다고 명시한다. 0과 같은 one_tile_per_pic_constraint_flag는 이와 같은 제약을 부과하지 않는다.
20.
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
1과 같은 one_slice_per_pic_constraint_flag는 각 픽처가 오직 하나의 슬라이스만을 포함해야 한다고 명시한다. 달리 말하면, one_slice_per_pic_constraint_flag가 1과 같은 경우, 아래가 적용된다.
-
만약 rect_slice_flag가 1과 같으면, num_slices_in_pic_minus1은 0과 같아야 한다.
-
그렇지 않으면(rect_slice_flag가 0과 같으면), num_tiles_in_slice_minus1 present in each slice header의 값은 NumTilesInPic - 1과 같아야 한다.
0과 같은 one_slice_per_pic_constraint_flag는 이와 같은 제약을 부과하지 않는다.
21.
일 예에서, 아래의 예시적 수정들이 도입될 수 있다.
1과 같은 one_subpic_per_pic_constraint_flag는 각 픽처가 오직 하나의 서브픽처만을 포함해야 한다고, 즉, sps_num_subpics_minus1이 0과 같아야 한다고 명시한다. 0과 같은 one_subpic_per_pic_constraint_flag는 이와 같은 제약을 부과하지 않는다. one_slice_per_pic_constraint_flag가 1과 같으면, one_subpic_per_pic_constraint_flag의 값은 1과 같아야 한다.
도 1은 여기서 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(100)을 보여주는 블록도이다. 다양한 구현들은 상기 시스템(100)의 일부 또는 모든 구성품들을 포함할 수 있다. 상기 시스템(100)은 비디오 콘텐츠를 수신하기 위한 입력(102)을 포함할 수 있다. 상기 비디오 콘텐츠는 가공되지 않거나 압축되지 않은 포맷, 예를 들어, 8 또는 10 비트 다중 성분 픽셀 값들로 수신되거나 압축되거나 인코딩된 포맷으로 수신될 수 있다. 상기 입력(102)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크(Passive Optical Network: PON) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스와 같은 무선 인터페이스들을 포함한다.
상기 시스템(100)은 현재 문서에서 기술되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(104)을 포함할 수 있다. 상기 코딩 구성요소(104)는 상기 코딩 구성요소(104)의 상기 입력(102)로부터 상기 출력까지의 비디오의 평균 비트레이트를 줄여 상기 비디오의 코딩된 표현을 산출할 수 있다. 따라서 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술들이라 불린다. 상기 코딩 구성요소(104)의 출력은, 상기 구성요소(106)에 의해 나타난 대로, 연결된 통신을 통해 저장 또는 송신될 수 있다. 상기 입력(102)에서 수신된 상기 비디오의 상기 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(110)에 보내지는 디스플레이가능한 비디오 또는 픽셀 값들을 생성하기 위해 상기 구성요소(108)에 의해 사용될 수 있다. 사용자가 볼 수 있는 비디오를 상기 비트스트림 표현으로부터 생성시키는 절차는 종종 비디오 압축해제라 불린다. 더 나아가서, 특정 비디오 처리 작업들이 "코딩" 작업 또는 툴로 불리는 관계로, 상기 코딩 툴 또는 작업들이 인코더에서 사용되고 상응하는 디코딩 툴 또는 작업들은 코딩의 결과를 반전시키는 것들로써 디코더에서 실행된다는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(Universal Serial Bus: USB) 또는 고화질 멀티미디어 인터페이스(High Definition Multimedia Interface: HDMI) 또는 디스플레이 포트 등을 포함할 수 있다. 저장 인터페이스의 예들은 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에 설명된 기술들은 휴대폰, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 2는 비디오 처리 장치(3600)의 블록도이다. 상기 장치(3600)는 여기서 기술된 하나 또는 그 이상의 방법들을 실행하는 데에 사용될 수 있다. 상기 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT 수신기 등에서 구현될 수 있다. 상기 장치(3600)는 하나 또는 그 이상의 프로세서들(3602), 하나 또는 그 이상의 메모리들(3604) 그리고 비디오 처리 하드웨어(3606)을 포함할 수 있다. 상기 프로세서(들)(3602)은 본 문서에 기술된 하나 또는 그 이상의 방법들을 실행하기 위해 구성될 수 있다. 상기 메모리(메모리들)(3604)은 여기서 기술된 방법들 및 기술들을 위해 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 상기 비디오 처리 하드웨어(3606)는 본 문서에 기술된 몇몇 기술들을 하드웨어 회로에서 구현하는 데에 사용될 수 있다.
도 4는 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시한 블록도이다.
도 4에서 나타난 바와 같이, 비디오 코딩 시스템(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) 표준 및 다른 현재 및/혹은 미래의 표준들과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 5는 도 4의 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 일부 혹은 모든 기술을 수행하도록 구성될 수 있다. 도 5에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에서 공유될 수 있다. 일부 실시예에서, 프로세서는 본 개시에서 설명된 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
게다가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도5의 예에서는 별도로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 디코더의 디코딩 처리를 위한 모션 정보의 풀 세트를 출력할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오에 대한 모션 정보의 풀 세트를 출력하지 않을 수 있다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 지시되는 비디오 블록의 모션 벡터 및 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측 비디오 블록(들)을 차감하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 동작을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 연관된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 하나 또는 그 이상의 양자화 파라미터(QP: quantization parameter) 값들에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(212)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측 비디오 블록들에 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 동작이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 동작들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 6은 도 4에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 6의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 6의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200)(도 5)와 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 움직임 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 인코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 수신된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 일부 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되었는지를 지지하는 모드들, 각각의 인트라 인코딩된 블록에 대한 하나 또는 그 상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
인트라 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다. 역변환부(305)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합계하여 디코딩된 블록들을 형성할 수 있다. 요망되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상을 위한 참조 블록들을 제공하고 디스플레이 장치 상에 제시하기 위해 디코딩된 비디오를 또한 산출한다.
다음으로, 일부 실시예들에 의해 선호되는 해결 수단들의 리스트가 제공된다.
아래 해결 수단들은 이전 섹션(예를 들어, 항목 1)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리 방법으로서(예를 들어, 도 3에 기술된 방법(3000)), 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 신택스 규칙을 따르고, 상기 규칙은 비디오 픽처 레벨에서의 제1 지시자(indicator) 및 상기 비디오 영역에서의 제2 지시자가 상기 변환 동안 시간적 모션 벡터 예측 코딩 툴의 사용을 지시한다고 명시하고, 상기 규칙은 상기 제1 지시자 및/또는 상기 제2 지시자가 상기 코딩된 표현에서 생략되는 조건을 명시하는, 비디오 처리 방법.
2.
해결 수단 1에 있어서, 상기 제1 지시자는 상기 비디오 픽처내 임의의 비디오가 상기 시간적 모션 벡터 예측 코딩 툴인지 여부를 지시하는, 비디오 처리 방법.
3. 해결 수단 1 내지 2 중 어느 것에 있어서, 상기 제2 지시자는 상기 비디오 영역 레벨에서 상기 시간적 모션 벡터 예측 코딩 툴의 활성화를 지시하는, 비디오 처리 방법.
4. 해결 수단 1 내지 3 중 어느 것에 있어서, 상기 제2 지시자는 상기 코딩된 표현으로부터 생략되며, 디코더에서, 상기 제2 지시자는 특정한 값을 가지는 것으로 추론되는, 비디오 처리 방법.
아래 해결 수단들은 이전 섹션에서(예를 들어, 항목 2) 논의된 기술들의 예시적 실시예들을 보여준다.
5. 비디오 처리 방법으로서, 비디오의 비디오 영역 내 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 것을 포함하며, 이때 상기 코딩된 표현은 신택스 규칙을 따르고, 상기 신택스 규칙은 상기 비디오 영역 레벨에서의 헤더의 정보가 상기 비디오 유닛 레벨에서의 헤더의 정보로 추론됨을 명시하는, 비디오 처리 방법.
6. 해결 수단 6에 있어서, 상기 비디오 유닛은 비디오 슬라이스이고, 상기 비디오 영역은 비디오 픽처인, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 3) 논의된 기술들의 예시적 실시예들을 보여준다.
7. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현 내의 하나 또는 그 이상의 필드들은 상기 비디오 유닛 내의 서브픽처들의 수를 지시하는, 비디오 처리 방법.
8. 해결 수단 7에 있어서, 상기 비디오 유닛은 비디오 픽처인, 비디오 처리 방법.
9. 해결 수단 7에 있어서, 상기 하나 또는 그 이상의 필드들 중 제1 필드는 상기 비디오 영역 레벨에서의 서브픽처들의 수에 관한 제약을 지시하고, 제2 필드는 상기 제1 필드가 상기 제약이 활성화된다고 지시하는 경우 제로 값으로 제한되는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 4) 논의된 기술들의 예시적 실시예들을 보여준다.
10. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 비디오 유닛 내의 서브픽처들의 수를 지시하는 제2 필드의 값이 제2 필드가 크로스 서브픽처 코딩 툴의 상기 변환에 대한 적용가능성을 지시하는지 여부를 제어함을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
11. 해결 수단 10에 있어서, 상기 비디오 유닛은 비디오 픽처인, 비디오 처리 방법.
12. 해결 수단 10 내지 11 중 어느 것에 있어서, 상기 비디오 영역은 비디오 시퀀스인, 비디오 처리 방법.
13. 해결 수단 10 내지 12 중 어느 것에 있어서, 상기 크로스 서브픽처 코딩 툴은 인트라 코딩 툴 또는 인터 코딩 툴 또는 인 루프 필터링 툴을 포함하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목들 5 및 6) 논의된 기술들의 예시적 실시예들을 보여준다.
14. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 비디오 유닛 별 서브픽처들의 수가 상기 코딩된 표현 내의 신택스 요소의 값을 제어함을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
15. 해결 수단 14에 있어서, 상기 신택스 요소의 값은 서브픽처가 비디오 픽처로 취급되는지 여부를 지시하는, 비디오 처리 방법.
16. 해결 수단 14에 있어서, 상기 신택스 요소의 값은 루프 필터링이 서브픽처들을 가로질러 활성화되는지 여부를 지시하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목들 7 및 8) 논의된 기술들의 예시적 실시예들을 보여준다.
17. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 단일한 비디오 슬라이스가 비디오 유닛에서 발생하는지 여부를 지시하는 필드의 값이 상기 비디오의 사각형 슬라이스들의 코딩 특성을 제어함을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
18. 해결 수단 17에 있어서, 상기 코딩 특성은 직사각형 슬라이스의 폭이 상기 비디오 유닛의 타일 열들의 단위로 명시되는지 여부를 포함하는, 비디오 처리 방법.
19. 해결 수단 17에 있어서, 상기 코딩 특성은 단일 슬라이스가 상기 서브픽처에 포함되는지 여부를 포함하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 9) 논의된 기술들의 예시적 실시예들을 보여준다.
20. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 레이어 방향 비디오 시퀀스의 상기 코딩된 표현 내의 상이한 픽처들을 가로지르는 추출된 서브픽처들이 동일한 서브픽처 인덱스를 가지고 있다는 신택스 규칙을 따르는, 비디오 처리 방법.
21. 해결 수단 10에 있어서, 상기 포맷 규칙은 서브픽처들이 서브픽처 인덱스들에 기반하여 상기 코딩된 표현의 디코딩 동안 추출된다고 명시하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 10) 논의된 기술들의 예시적 실시예들을 보여준다.
22. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 서브픽처 서브 비트스트림에 대해 추출된 서브 비트스트림이 단일 서브픽처의 포맷을 따른다는 신택스 규칙을 따르는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 13) 논의된 기술들의 예시적 실시예들을 보여준다.
23. 비디오 처리 방법으로서, 레이어 방향 비디오 시퀀스로 구성된 복수의 픽처들을 포함하는 비디오의 비디오 영역 내의 비디오 유닛과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 이때 상기 코딩된 표현은 상기 코딩된 표현 내의 신택스 구조 내 하나 또는 그 이상의 신택스 요소들의 발생을 제어하는 하나 또는 그 이상의 제약 플래그들의 포함을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
24. 해결 수단 23에 있어서, 상기 신택스 구조는 시퀀스 파라미터 세트 또는 비디오 파라미터 세트 또는 픽처 파라미터 세트 또는 픽처 헤더 또는 슬라이스 헤더인, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 14) 논의된 기술들의 예시적 실시예들을 보여준다.
25. 해결 수단 23 내지 24 중 어느 것에 있어서, 상기 하나 또는 그 이상의 신택스 요소들은 상기 코딩된 표현 내의 픽처 해상도 변화를 지시하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 15) 논의된 기술들의 예시적 실시예들을 보여준다.
26. 해결 수단 23 내지 24 중 어느 것에 있어서, 상기 하나 또는 그 이상의 신택스 요소들은 상기 변환을 위한 스케일링 윈도우 오프세트 파라미터들을 지시하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 16) 논의된 기술들의 예시적 실시예들을 보여준다.
27. 해결 수단 23 내지 24 중 어느 것에 있어서, 상기 하나 또는 그 이상의 제약 플래그들은 픽처 당 하나의 슬라이스 제약이 활성화되는지 여부를 지시하는 플래그를 포함하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 17) 논의된 기술들의 예시적 실시예들을 보여준다.
28. 해결 수단 23 내지 24 중 어느 것에 있어서, 상기 하나 또는 그 이상의 제약 플래그들은 변환(transform)이 상기 변환(conversion) 동안 생략되는지 여부를 지시하는 플래그를 포함하는, 비디오 처리 방법.
아래의 해결 수단들은 이전 섹션에서(예를 들어, 항목 18) 논의된 기술들의 예시적 실시예들을 보여준다.
29. 해결 수단 23 내지 28 중 어느 것에 있어서, 하나 또는 그 이상의 제약 플래그들 중 제1 제약 플래그는 상기 코딩된 표현에서의 제2 제약 플래그의 발생을 제어하는, 비디오 처리 방법.
30. 해결 수단 23 내지 29 중 어느 것에 있어서, 상기 신택스 규칙은 상기 하나 또는 그 이상의 제약 플래그들이 상기 비디오의 상기 변환을 위해 사용되는 코딩 툴 타입 또는 코딩 프로파일에 따라 분류된 제약 플래그들의 그룹을 포함한다고 명시하는, 비디오 처리 방법.
31. 상기 해결 수단들 중 어느 것에 있어서, 상기 비디오 유닛은 비디오 픽처에 해당하는, 비디오 처리 방법.
32. 상기 해결 수단들 중 어느 것에 있어서, 상기 비디오 영역은 비디오 시퀀스에 해당하는, 비디오 처리 방법.
33. 해결 수단 1 내지 32 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
34. 해결 수단 1 내지 32 중 어느 것에 있어서, 상기 변환은 상기 비디오의 화소 값들을 생성하기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는, 비디오 처리 방법.
35. 해결 수단 1 내지 34 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
36. 해결 수단 1 내지 34 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
37. 컴퓨터 코드를 저장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행 시, 상기 프로세서로 하여금 해결 수단 1 내지 34 중 어느 것에서의 방법을 실시하도록 하는, 컴퓨터 프로그램 제품.
38. 본 문서에 기술된, 방법, 장치 또는 시스템.
도 7은 현재 기술에 따른 비디오 처리를 위한 방법(700)의 순서도 표현이다. 방법(700)은, 동작(710)에서, 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 상기 비디오 슬라이스의 비트스트림이 상기 비디오 픽처를 위한 픽처 헤더로부터의 특정 정보가 상기 비디오 슬라이스의 슬라이스 헤더에 의해 계승되는 방식을 결정함을 명시하는 포맷 규칙을 따른다.
일부 실시예들에서, 상기 포맷 규칙은 상기 방식이 참조 픽처 리스트 정보가 상기 픽처 헤더에 존재하는지 여부에 기반하여 더 결정된다고 명시한다. 일부 실시예들에서, 상기 특정 정보는, 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 리스트 0에 있는지 여부, 또는 상기 동일 위치 픽처의 참조 픽처 인덱스 중 적어도 하나를 포함한다. 일부 실시예들에서, 상기 포맷 규칙은 상기 방식이 시간적 모션 벡터 예측이 상기 비디오 슬라이스에 대해 활성화되는지 여부에 더 기반한다고 명시한다. 일부 실시예들에서, 상기 비디오 픽처의 상기 픽처 헤더에서의 제1 신택스 요소는 상기 시간적 모션 벡터 예측이 상기 비디오 픽처에 대해 활성화되는지 여부를 지시하며, 상기 비디오 슬라이스의 상기 슬라이스 타입이 P이고 상기 제1 신택스 요소가 1과 같은 경우, 상기 방식은, 상기 비디오 픽처가 어느 참조 픽처 리스트와 동일 위치인지를 지시하는 상기 비디오 픽처의 상기 픽처 헤더 내 제3 신택스 요소의 값과 상관없이, 상기 비디오 슬라이스가 어느 참조 픽처 리스트와 동일 위치인지를 지시하는 상기 비디오 슬라이스의 상기 슬라이스 헤더 내 제2 신택스 요소의 값이 1과 같다고 추론됨을 명시한다. 일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입이 P인 경우, 상기 방식은 상기 비디오 슬라이스가 어느 참조 픽처와 동일 위치인지를 지시하는 상기 비디오 슬라이스의 상기 슬라이스 헤더 내 제2 신택스 요소의 값이 다른 조건들과 상관없이 1로 추론된다고 명시한다. 일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입이 P인 경우, 상기 방식은 상기 비디오 슬라이스가 어느 참조 픽처 리스트와 동일 위치인지를 지시하는 상기 비디오 슬라이스의 상기 슬라이스 헤더 내 상기 제2 신택스 요소의 상기 값이 상기 비디오 슬라이스에 대해 활성화되는 시간적 모션 벡터 예측에 대응하여 1로 추론된다고 명시한다.
일부 실시예들에서, 상기 비디오 픽처의 상기 비디오 헤더의 제1 신택스 요소는 상기 시간적 모션 벡터 예측이 상기 비디오 픽처에 대해 활성화되는지 여부를 지시하며, 상기 비디오 슬라이스의 상기 슬라이스 타입이 B이고 상기 제1 신택스 요소가 1과 같은 경우, 상기 방식은 상기 비디오 슬라이스가 어느 참조 픽처 리스트와 동일 위치인지를 지시하는 상기 비디오 슬라이스의 상기 슬라이스 헤더 내 제2 신택스 요소의 값이 상기 비디오 픽처가 어느 참조 픽처 리스트와 동일 위치인지를 지시하는 상기 비디오 픽처의 상기 픽처 헤더 내 제4 신택스 요소와 같은 것으로 추론된다고 명시한다. 일부 실시예들에서, 상기 비디오 픽처 헤더에서 신택스 요소는 상기 시간적 모션 벡터 예측을 위해 사용되는 상기 비디오 픽처의 동일 위치 픽처의 참조 인덱스를 명시하며, 상기 포맷 규칙은 상기 신택스 요소의 값이 상기 참조 픽처 리스트 0 내 활성 참조 엔트리들의 수를 지시하는 변수 미만임을 명시한다.
일부 실시예들에서, 상기 비디오 슬라이스 헤더 내 신택스 요소는 상기 모션 벡터 예측을 위해 사용되는 상기 비디오 픽처의 동일 위치 픽처의 참조 인덱스를 명시하며, 상기 포맷 규칙은 상기 신택스 요소가 참조 픽처 리스트 1에서의 비활성 엔트리를 참조함을 명시한다. 일부 실시예들에서, 상기 포맷 규칙은 상기 참조 픽처 리스트 1에서의 상기 비활성 엔트리에 상응하는 참조 픽처 또한 참조 픽처 리스트 0에서의 활성 엔트리에 의해 참조됨을 더 명시한다. 일부 실시예들에서, 상기 비디오 슬라이스 헤더에서의 신택스 요소는 상기 시간적 모션 벡터 예측을 위해 사용되는 상기 비디오 픽처의 동일 위치 픽처의 참조 인덱스가 상기 변환을 위해 사용되기 전에 수정된다고 명시한다. 일부 실시예들에서, 상기 신택스 요소는 0 내지 상기 참조 픽처 리스트 0 내의 활성 참조 엔트리들의 수에서 1을 뺀 것까지의 범위 내에서 인덱스에 매핑된다. 일부 실시예들에서, 상기 신택스 요소는 상기 참조 픽처 리스트 0의 엔트리를 참조하며, 상기 신택스 요소가 상기 참조 픽처 리스트 0의 활성 참조 엔트리들의 수 보다 크거나 같은 경우 디폴트 동일위치 참조 인덱스로 설정된다. 상기 디폴트 동일위치 참조 인덱스는 0 내지 상기 참조 픽처 리스트 0의 활성 참조 엔트리들의 수에서 1을 뺀 값의 범위 내에 있다. 일부 실시예들에서, 상기 디폴트 동일위치 참조 인덱스는 0으로 설정되거나 또는 상기 비트스트림에서 시그널링된다.
일부 실시예들에서, 상기 포맷 규칙은 동일한 비디오 픽처 헤더를 참조하는 제1 타입의 제1 비디오 슬라이스와 제2 타입의 제2 비디오 슬라이스가 상기 변환을 위해 상이한 동일 위치 픽처들을 사용한다고 명시한다. 일부 실시예들에서, 상기 제1 타입은 비디오 슬라이스들의 B 타입이고, 상기 제2 타입은 비디오 슬라이스들의 P 타입이다. 일부 실시예들에서, 참조 픽처 리스트는 상기 비디오 픽처 헤더에서 시그널링되며, 동일 위치 픽처의 참조 픽처 인덱스는 상기 비디오 슬라이스 헤더에서 시그널링된다. 일부 실시예들에서, 상기 포맷 규칙은, 상기 동일 위치 픽처의 상기 참조 픽처 인덱스가 (1) 상기 슬라이스의 상기 타입이 P이고, (2) 상기 참조 픽처 리스트가 상기 비디오 픽처 헤더에서 시그널링되고, (3) 상기 시간적 모션 벡터 예측이 활성화되고, 그리고 (4) 0인 상기 비디오 픽처 헤더 내 상기 제3 신택스 요소가 상기 비디오 픽처가 상기 참조 픽처 리스트 0과 동일 위치에 있지 않다고 지시하는 경우 상기 비디오 슬라이스 헤더에서 시그널링된다고 명시한다. 일부 실시예들에서, 상기 참조 픽처 인덱스는 상기 참조 픽처 리스트 0에서의 참조 픽처를 참조한다.
일부 실시예들에서, 상기 포맷 규칙은 제1 동일 위치 참조 픽처 인덱스가 타입 B의 상기 제1 비디오 슬라이스에 대해 시그널링되거나 결정되고, 제2 동일 위치 참조 픽처 인덱스가 타입 P의 상기 제2 비디오 슬라이스에 대해 시그널링되거나 결정된다고 명시한다. 일부 실시예들에서, 상기 제1 동일 위치 참조 픽처 인덱스 및 상기 제2 동일 위치 참조 픽처 인덱스는 상기 비디오 픽처 헤더 내 상기 제3 신택스 요소가 상기 비디오 픽처가 상기 참조 픽처 리스트 0과 동일 위치에 있지 않다고 지시하는 경우에만 시그널링 된다.
일부 실시예들에서, 상기 포맷 규칙은 상기 제1 타입의 상기 제1 비디오 슬라이스 및 상기 제2 타입의 상기 제2 비디오 슬라이스가 상기 동일한 비디오 픽처 헤더를 참조하는지 여부가 상기 비트스트림에서 시그널링된다고 명시한다. 일부 실시예들에서, 상기 동일한 비디오 픽처 헤더를 참조하는 비디오 슬라이스들의 타입들은 상기 비디오 픽처 헤더에서 시그널링된다. 일부 실시예들에서, 상기 포맷 규칙은 상기 동일한 비디오 픽처 헤더를 참조하는 비디오 슬라이스들의 상기 타입들이, 참조 픽처 리스트가 상기 비디오 픽처 헤더에서 시그널링되는 경우에만, 상기 비디오 픽처 헤더에서 시그널링된다고 명시한다. 일부 실시예들에서, 상기 포맷 규칙은 참조 픽처 리스트가, 상기 동일한 비디오 픽처 헤더를 참조하는 비디오 슬라이스들의 상기 타입들이 상기 비디오 픽처 헤더에서 시그널링되는 경우에만, 상기 비디오 픽처 헤더에서 시그널링된다고 명시한다. 일부 실시예들에서, 상기 동일한 비디오 픽처 헤더를 참조하는 B 타입의 비디오 슬라이스들만이 존재하는지 여부가 상기 비트스트림에서 시그널링된다. 일부 실시예들에서, 상기 동일한 비디오 픽처 헤더를 참조하는 P 타입의 비디오 슬라이스들만이 존재하는지 여부가 상기 비트스트림에서 시그널링된다. 일부 실시예들에서, 상기 동일한 비디오 픽처 헤더를 참조하는 B 타입 및 I 타입의 비디오 슬라이스들만이 존재한다는 것이 상기 비트스트림에서 시그널링된다. 일부 실시예들에서, 상기 동일한 비디오 픽처 헤더를 참조하는 P 타입 및 I 타입의 비디오 슬라이스들만이 존재한다는 것이 상기 비트스트림에서 시그널링된다.
도 8은 현재 기술에 따른 비디오 처리를 위한 방법(800)의 순서도 표현이다. 방법(800)은, 동작(810)에서, 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 상기 비디오 슬라이스의 슬라이스 타입이 비디오 슬라이스 헤더에서의 제1 신택스 요소의 값을 결정한다고 명시하는 포맷 규칙을 따른다. 상기 제1 신택스 요소는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입이 B이고 상기 비디오 슬라이스를 지시하는 상기 비디오 슬라이스 헤더 내 제2 신택스 요소의 값이 참조 픽처 리스트 0와 동일 위치에 있는 경우, 상기 제1 신택스 요소는 참조 픽처 리스트 0에 있는 엔트리를 참조한다. 일부 실시예들에서, 상기 제1 신택스 요소는 0 내지 (활성 참조 픽처들에 대한 인덱스들의 수 - 1)의 범위에 있다.
일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입이 P이고, 상기 시간적 모션 벡터 예측이 활성화되는 경우, 상기 제1 신택스 요소는 0 내지 (활성 참조 픽처들에 대한 인덱스들의 수 - 1)의 범위에 있다.
도 9는 현재 기술에 따른 비디오 처리를 위한 방법(900)의 순서도 표현이다. 방법(900)은, 동작(910)에서, 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은, 상기 비디오 슬라이스의 슬라이스 타입이 P이고 시간적 모션 벡터 예측이 활성화되는 경우, 동일 위치 참조 픽처 리스트에서 참조 픽처를 위한 참조 픽처 리샘플링(RPR: reference picture resampling)의 사용이 비활성화된다고 명시하는 포맷 규칙을 따른다. 상기 참조 픽처는 상기 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처의 참조 인덱스에 의해 지시된다.
일부 실시예들에서, 상기 동일 위치 참조 픽처 리스트는 비디오 슬라이스 헤더 내의 신택스 요소에 기반하여 결정되며, 상기 신택스 요소는 상기 비디오 슬라이스가 참조 픽처 리스트 0과 동일 위치에 있는지 여부를 지시한다. 일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입이 P이고 상기 시간적 모션 벡터 예측이 활성화되는 경우, 상기 신택스 요소는 1과 같은 것으로 추론된다. 일부 실시예들에서, 상기 동일 위치 참조 픽처 리스트는 참조 픽처 리스트 0이다.
도 10은 현재 기술에 따른 비디오 처리를 위한 방법(1000)의 순서도 표현이다. 방법(1000)은, 동작(1010)에서, 비디오 슬라이스를 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 포맷 규칙을 따르며, 상기 포맷 규칙은, 비디오 슬라이스 헤더 내의 신택스 요소가 상기 비디오 슬라이스가 참조 픽처 리스트 0과 동일 위치에 있지 않다고 지시하는 경우, 상기 비디오 슬라이스의 슬라이스 타입이 타입 P를 배제한다고 명시한다.
일부 실시예들에서, 상기 포맷 규칙은, (1) 참조 픽처 리스트의 정보가 상기 비트스트림의 비디오 픽처 헤더에 있고, (2) 시간적 모션 벡터 예측이 상기 비디오 픽처에 대해 활성화되고, (3) 상기 비디오 픽처의 모든 코딩된 비디오 슬라이스들이 타입 B 또는 타입 P의 슬라이스 타입을 가지며, (4) 상기 비디오 픽처가 참조 픽처 리스트 0와 동일 위치에 있지 않는 경우, 상기 슬라이스 타입의 시그널링이 상기 비트스트림에서 생략된다고 명시한다. 일부 실시예들에서, 상기 비디오 슬라이스의 상기 슬라이스 타입은 타입 B로 추론된다.
도 11은 현재 기술에 따른 비디오 처리를 위한 방법(1100)의 순서도 표현이다. 방법(1100)은, 동작(1110)에서, 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 포맷 규칙을 따르며, 상기 포맷 규칙은 동작이 코딩된 레이어 비디오 시퀀스의 서브픽처의 경계를 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 픽처 내 서브픽처들의 수에 대응하여 선택적으로 포함됨을 명시한다.
일부 실시예들에서, 상기 포맷 규칙은 상기 제1 신택스 요소가 상기 코딩된 비디오 시퀀스 내 상기 서브픽처의 모든 경계들이 픽처 경계들로 취급된다고 더 지시한다는 것을 명시한다. 일부 실시예들에서, 상기 동작은 인트라 예측, 인터 예측, 또는 인 루프 필터링 동작 중 적어도 하나를 포함한다. 일부 실시예들에서, 상기 포맷 규칙은 상기 비디오 픽처 내 서브픽처들의 수가 1인 경우 상기 신택스 요소가 상기 비트스트림에서 생략됨을 명시한다. 일부 실시예들에서, 상기 신택스 요소의 값은 1로 추론되며, 이는 어떤 인 루프 필터링 동작도 상기 서브픽처의 경계를 가로질러 실시되지 않음을 지시한다. 일부 실시예들에서, 상기 신택스 요소는 시퀀스 파라미터 세트에 있다. 일부 실시예들에서, 상기 신택스 요소는 sps_independent_subpics_flag를 포함한다.
일부 실시예들에서, 상기 포맷 규칙은 상기 코딩된 레이어 비디오 시퀀스에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비디오 픽처의 상기 하나 또는 그 이상의 서브픽처들이 상기 변환을 위해 하나 또는 그 이상의 픽처들로 취급되는지 여부를 지시하는 제2 신택스 요소를 지시하는 방식을 결정한다고 명시하며, 이때 인 루프 필터링 동작은 상기 변환에서 적용되지 않는다. 일부 실시예들에서, 상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제2 신택스 요소의 값은 1로 추론되며, 이는 상기 비디오 픽처의 상기 서브픽처가 상기 변환을 위한 픽처로 취급된다고 지시한다. 일부 실시예들에서, 상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제2 신택스 요소의 값은 1일 필요가 있으며, 이는 상기 비디오 픽처의 상기 서브픽처가 상기 변환을 위한 픽처로 취급된다는 것을 지시한다.
일부 실시예들에서, 상기 포맷 규칙은 상기 코딩된 레이어 비디오 시퀀스에서 상기 비디오 픽처 내 서브픽처들의 수가 인 루프 필터링 동작이 서브픽처의 경계를 가로질러 활성화되는지 여부를 지시하는 제3 신택스 요소를 지시하는 방식을 결정한다고 더 명시한다. 일부 실시예들에서, 상기 제3 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용가능한지 여부를 더 지시한다. 일부 실시예들에서, 상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제3 신택스 요소의 값은 0으로 추론되며, 이는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 비활성화된다고 지시한다. 일부 실시예들에서, 0으로 추론되는 상기 제3 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용될 수 없다고 더 지시한다. 일부 실시예들에서, 상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제3 신택스 요소의 값은 0으로 추론될 필요가 있으며, 이는 상기 루프 필터 동작이 상기 서브픽처의 경계를 가로질러 비활성화됨을 지시한다. 일부 실시예들에서, 0으로 추론될 것으로 요구되는 상기 제2 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용될 수 없다고 더 지시한다.
일부 실시예들에서, 상기 서브픽처들의 수는 신택스 요소 sps_num_subpics_nimus1에 의해 지시된다. 일부 실시예들에서, 상기 서브픽처들의 수는 신택스 요소 one_subpic_per_pic_contraint_flag에 의해 지시된다.
도 12는 현재 기술에 따른 비디오 처리를 위한 방법(1200)의 순서도 표현이다. 방법(1200)은, 동작(1210)에서, 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 포맷 규칙을 따르며, 이 포맷 규칙은 상기 비트스트림에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비트스트림에서 제약 플래그로 제한된다고 명시한다.
일부 실시예들에서, 상기 제약 플래그는 one_subpic_per_pic_contraint_flag를 포함한다. 일부 실시예들에서, 서브픽처들의 수는 상기 제약 플래그의 값이 1인 경우 1일 것이 요구된다.
도 13은 현재 기술에 따른 비디오 처리를 위한 방법(1300)의 순서도 표현이다. 방법(1300)은, 동작(1310)에서, 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 서브픽처에서 슬라이스들의 수는 슬라이스의 폭을 지시하는 신택스 요소를 시그널링하는 방식을 결정한다고 명시하는 포맷 규칙을 따르며, 이때 상기 슬라이스의 상기 폭은 타일 열들의 수로 특정된다.
일부 실시예들에서, 상기 신택스 요소는 상기 비트스트림에서 생략되며, 상기 슬라이스의 상기 폭은 상기 서브픽처 내 슬라이스들의 수가 1인 경우 추론된다. 일부 실시예들에서, 상기 슬라이스의 상기 폭은 1 타일 열로 추론된다.
도 14는 현재 기술에 따른 비디오 처리를 위한 방법(1400)의 순서도 표현이다. 방법(1400)은, 동작(1410)에서, 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 상기 포맷 규칙은 상기 비디오 픽처 내 상기 하나 또는 그 이상의 서브픽처들 각각이 단일 슬라이스를 포함하는지 여부가 제약 플래그에 기반하여 결정된다고 명시한다.
일부 실시예들에서, 신택스 요소는 상기 비디오 픽처에서의 상기 하나 또는 그 이상의 서브픽처들 각각이 단일 슬라이스를 포함하는지 여부를 지시하며, 상기 제약 플래그는 상기 비디오 픽처가 하나의 타일 또는 슬라이스 이상으로 분할되는지 여부를 지시한다. 일부 실시예들에서, 단일 슬라이스는 오직 하나의 직사각형 슬라이스만을 지시한다. 일부 실시예들에서, 상기 제약 플래그가 상기 비디오 픽처가 하나의 타일 또는 슬라이스 이상으로 분할되지 않는다고 지시하는 경우, 상기 신택스 요소는 1과 같다고 추론된다. 일부 실시예들에서, 상기 제약 플래그가 어떤 픽처 분할도 상기 비디오 픽처에 적용되지 않는다고 지시하는 경우, 상기 신택스 요소는 1과 같다고 추론된다. 일부 실시예들에서, 상기 제약 플래그가 어떤 픽처 분할도 상기 비디오 픽처에 적용되지 않는다고 지시하는 경우, 상기 신택스 요소는 상기 비트스트림에 존재하지 않으며, 상기 신택스 요소의 상기 값은 1과 같다고 추론된다. 일부 실시예들에서, 상기 신택스 요소는 상기 제약 플래그와 같다고 추론된다.
일부 실시예들에서, 신택스 요소는 상기 비디오 픽처에서의 상기 하나 또는 그 이상의 서브픽처들 각각이 단일 슬라이스를 포함하는지 여부를 지시하며, 상기 제약 플래그는 상기 비디오 픽처가 단일 슬라이스를 포함하는지 여부를 지시하고, 그리고 상기 신택스 요소는, 상기 제약 플래그가 1과 같은 경우, 1과 같다. 일부 실시예들에서, 신택스 요소는 상기 비디오 픽처에서의 상기 하나 또는 그 이상의 서브픽처들 각각이 단일 슬라이스를 포함하는지 여부를 지시하며, 상기 제약 플래그는 상기 비디오 픽처가 단일 슬라이스를 포함하는지 여부를 지시하고, 그리고 상기 신택스 요소는, 상기 제약 플래그가 1과 같고 상기 단일 슬라이스가 직사각 모양을 가지는 경우, 1과 같다. 일부 실시예들에서, 상기 신택스 요소에 의해 제어되는 모든 비디오 픽처들 및 상기 제약 플래그는 동일한 픽처 파라미터 세트를 참조한다.
도 15는 현재 기술에 따른 비디오 처리를 위한 방법(1500)의 순서도 표현이다. 방법(1500)은, 동작(1510)에서, 비디오 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비디오 픽처들 중 적어도 하나는 하나 또는 그 이상의 서브픽처들을 포함한다. 상기 비트스트림은, 상기 변환의 서브픽처 서브 비트스트림 추출 프로세스 동안 하나 또는 그 이상의 대상 서브픽처들의 출력 서브 비트스트림을 결정하기 위해, 상이한 비디오 픽처들 양단의 각 대상 서브픽처가 동일한 서브픽처 인덱스를 사용한다고 명시하는 포맷 규칙을 따른다.
일부 실시예들에서, 상기 하나 또는 그 이상의 대상 서브픽처들에 대한 대상 서브픽처 인덱스 값들의 리스트는 상기 서브픽처 서브 비트스트림 추출 프로세스에 대한 입력으로 사용되며, 대상 서브픽처 인덱스 값들의 상기 리스트는 상이한 비디오 픽처들 양단으로 동일하다. 일부 실시예들에서, 상이한 비디오 서브픽처들 양단의 하나 또는 그 이상의 서브픽처 식별자들은 상기 서브픽처 서브 비트스트림 추출 프로세스를 위해 사용되며, 상기 하나 또는 그 이상의 서브픽처 식별자들은 대상 서브픽처 인덱스들의 동일한 리스트에 해당한다. 일부 실시예들에서, 상기 서브픽처 서브 비트스트림 추출 프로세스에서 상기 출력 서브 비트스트림을 결정하기 위해 사용되는 상기 하나 또는 그 이상의 대상 서브픽처들은 상기 서브픽처 인덱스에 기반하여 결정된다.
일부 실시예들에서, 상기 서브픽처 서브 비트스트림 추출 프로세스에서 상기 출력 서브 비트스트림을 결정하기 위해 신택스 요소들을 수정하는 방식은 상기 서브픽처 인덱스에 기반하여 결정된다. 일부 실시예들에서, 상기 신택스 요소들을 수정하는 상기 방식은 상기 신택스 요소들을 다시 작성(rewriting) 및/또는 제거하는 것을 포함한다. 일부 실시예들에서, 신택스 요소가 서브픽처 식별자 매핑이 상기 비트스트림에서 명시적으로 시그널링된다고 지시하는 경우, 상기 서브픽처 식별자 매핑은 픽처 파라미터 세트에서 생략된다. 일부 실시예들에서, 신택스 요소가 서브픽처 식별자 매핑이 상기 비트스트림에서 명시적으로 시그널링된다고 지시하는 경우, 상기 서브픽처 식별자 매핑은 픽처 파라미터 세트에서 시그널링된다.
도 16은 현재 기술에 따른 비디오 처리를 위한 방법(1600)의 순서도 표현이다. 방법(1600)은, 동작(1610)에서, 비디오 픽처들을 포함하는 비디오의 비트스트림으로부터 하나 또는 그 이상의 대상 서브픽처들의 서브 비트스트림을 추출함으로써 출력 서브 비트스트림을 결정하는 단계를 포함한다. 상기 비디오 픽처들 중 적어도 하나는 하나 또는 그 이상의 서브픽처들을 포함하고, 상기 출력 서브 비트스트림은 상기 하나 또는 그 이상의 대상 서브픽처들이 상기 출력 서브 비트스트림에서 단일 서브픽처로 표현된다고 명시하는 포맷 규칙을 따른다.
일부 실시예들에서, 상기 출력 서브 비트스트림의 하나 또는 그 이상의 신택스 요소들은 상기 결정 단계를 위해 다시 작성되고 그리고/또는 제거된다. 일부 실시예들에서, 모든 출력 레이어들에서 상기 하나 또는 그 이상의 대상 서브픽처들로 참조되는 하나 또는 그 이상의 신택스 요소들은 상기 하나 또는 그 이상의 대상 서브픽처들이 상기 출력 서브 비트스트림 내 상기 단일 서브픽처로 표현하는 것에 상응하여 상기 출력 서브 비트스트림에서 생략된다. 일부 실시예들에서, 상기 하나 또는 그 이상의 신택스 요소들은 상기 서브픽처가 픽처로 취급됨을 지시하는 제1 신택스 요소를 포함한다. 일부 실시예들에서, 상기 제1 신택스 요소는 1과 같다고 추론되며, 이는 상기 서브픽처가 픽처로 취급됨을 지시한다. 일부 실시예들에서, 상기 하나 또는 그 이상의 신택스 요소들은 루프 필터 동작이 상기 서브 픽처의 경계를 가로질러 활성화되는지 여부를 지시하는 제2 신택스 요소를 포함한다. 일부 실시예들에서, 상기 제2 신택스 요소는 0과 같다고 추론되며, 이는 상기 루프 필터 동작이 상기 서브픽처의 경계를 가로질러 비활성화된다고 지시한다.
일부 실시예들에서, 시퀀스 파라미터 세트의 모든 참조되는 신택스 구조들에서의 제3 신택스 요소와 픽처 파라미터 세트의 모든 참조되는 신택스 구조들에서의 제4 신택스 요소는 0으로 수정되며, 상기 제3 신택스 요소 및 상기 제4 신택스 요소는 비디오 픽처의 서브픽처들의 수에서 1을 뺀 값을 지시한다. 일부 실시예들에서, 동작이 상기 서브픽처의 경계를 가로질러 실시되는지 여부를 지시하는 제5 신택스 요소는 1과 같은 것으로 수정된다. 일부 실시예들에서, 비디오 픽처가 분할되는지 여부를 지시하는 제6 신택스 요소는 상기 서브 비트스트림에서 참조되는 신택스 구조에서 수정된다. 일부 실시예들에서, 상기 제6 신택스 요소는 상기 서브픽처에서의 타일들 또는 슬라이스들의 수에 기반하여 조건적으로 수정된다. 일부 실시예들에서, 상기 서브픽처가 단일 타일 또는 슬라이스를 포함하는 경우, 상기 제6 신택스 요소는 1과 같게 수정되며, 이는 상기 비디오 픽처가 분할되지 않음을 지시한다. 일부 실시예들에서, 상기 서브픽처에서 타일들 또는 슬라이스들의 수가 1 보다 큰 경우, 상기 제6 신택스 요소는 0과 같게 수정되며, 이는 상기 비디오 픽처가 분할됨을 지시한다.
도 17는 현재 기술에 따른 비디오 처리를 위한 방법(1700)의 순서도 표현이다. 방법(1700)은, 동작(1710)에서, 순시 디코딩 리프레쉬(IDR: instantaneous decoding refresh) 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 참조 픽처 리스트와 연관된 하나 또는 그 이상의 신택스 요소들이 상기 IDR 픽처의 슬라이스 헤더에 존재함을 명시하는 포맷 규칙을 따른다. 일부 실시예들에서, 신택스 플래그는 상기 하나 또는 그 이상의 신택스 요소들이 상기 IDR 픽처의 상기 슬라이스 헤더에 존재함을 지시한다. 일부 실시예들에서, 상기 신택스 플래그는 1과 같게 설정된다.
일부 실시예들에서, 신택스 플래그는 상기 하나 또는 그 이상의 신택스 요소들이 상기 IDR 픽처의 상기 슬라이스 헤더에 존재한다고 지시한다. 일부 실시예들에서, 상기 신택스 플래그는 1과 같게 설정된다.
일부 실시예들에서, 상기 변환은 상기 비디오의 두 입력 비트스트림들을 병합함으로써 출력 비트스트림을 결정하는 단계를 포함한다. 상기 두 입력 비트스트림들 중 하나의 네트워크 추상 레이어(NAL) 유닛은 인트라 랜덤 액세스 포인트(IRAP) 비디오 코딩 레이어(VCL) NAL 유닛 타입이며, 상기 IDR 픽처의 상기 참조 픽처 리스트는 상기 변환을 위해 활용 가능하다.
도 18은 현재 기술에 따른 비디오 처리를 위한 방법(1800)의 순서도 표현이다. 방법(1800)은, 동작(1810)에서, 루마 비디오 블록들 및 크로마 비디오 블록들을 포함하는 비디오 및 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 루마 비디오 블록들은 루마 분할 트리들에 따라 분할되고, 상기 크로마 비디오 블록들은 크로마 분할 트리들에 따라 분할된다. 상기 비트스트림은 상기 루마 분할 트리들을 지시하는 루마 블록 분할 정보 및 상기 크로마 분할 트리들을 지시하는 크로마 블록 분할 정보를 포함한다. 상기 비트스트림은 상기 크로마 블록 분할 정보가 상기 루마 블록 분할 정보와 상이하도록 허용됨을 명시하는 규칙을 따른다.
일부 실시예들에서, 상기 루마 비디오 블록 또는 상기 크로마 비디오 블록은 코딩 트리 블록, 변환 블록, 픽처 블록, 또는 코딩 블록을 포함한다. 일부 실시예들에서, 상기 크로마 분할 트리들은 크로마 듀얼 트리를 포함하며, 상기 크로마 비디오 블록들의 분할 구조 또는 분할 신택스 요소는 적어도 상기 루마 비디오 블록들의 분할 구조 또는 분할 신택스 요소와 다르다. 일부 실시예들에서, 상기 루마 분할 트리는 로컬 듀얼 트리를 포함하고, 상기 크로마 비디오 블록들의 분할 구조 또는 분할 신택스 요소는 적어도 상기 루마 비디오 블록들의 분할 구조 또는 분할 신택스 요소와 다르다.
도 19는 현재 기술에 따른 비디오 처리를 위한 방법(1900)의 순서도 표현이다. 방법(1900)은, 동작(1910)에서, 하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함한다. 상기 비트스트림은 하나 또는 그 이상의 신택스 구조들이 일반 제약 정보를 포함하는 신택스 요소의 제약 플래그에 기초하여 제약됨을 명시하는 포맷 규칙을 따른다.
일부 실시예들에서, 상기 제약 플래그는 비디오 파라미터 세트에 의해 명시되는 하나 또는 그 이상의 출력 레이어 세트들의 각 비디오 픽처가 단일 타일을 포함하는지 여부를 지시하는 one_tile_per_pic_constraint_flag를 포함하며, 상기 하나 또는 그 이상의 신택스 구조들은, one_tile_per_pic_constraint_flag가 1과 같은 경우 1로 제한되는 픽처 내 타일들의 수를 지시하는 제1 신택스 구조 NumTilesInPic를 포함한다. 일부 실시예들에서, 상기 제약 플래그는 비디오 파라미터 세트에 의해 명시되는 하나 또는 그 이상의 출력 레이어 세트들의 각 비디오 픽처가 단일 슬라이스를 포함는지 여부를 지시하는 one_slice_per_pic_constraint_flag를 포함하며, 상기 하나 또는 그 이상의 신택스 구조들은, 각 비디오 픽처 내 직사각형 슬라이스들의 수에서 1을 뺀 값을 지시하는 제2 신택스 요소 num_slices_in_pic_minus1를 포함한다. 일부 실시예들에서, 상기 제2 신택스 요소 num_slices_in_pic_minus1은, one_slice_per_pic_constraint_flag가 1과 같고 비디오 픽처들 내 직사각형 슬라이스들의 사용을 지시하는 다른 신택스 요소 rect_slice_flag가 1과 같은 경우 0으로 제한된다. 일부 실시예들에서, 상기 비트스트림의 각 슬라이스 헤더에서 상기 제2 신택스 요소 num_slices_in_pic_minus1은, one_slice_per_pic_constraint_flag가 1과 같고 비디오 픽처들 내 직사각형 슬라이스들의 사용을 지시하는 다른 신택스 요소 rect_slice_flag가 0과 같은 경우, 비디오 픽처 내 타일들의 수에서 1을 뺀 값과 같도록 제약된다.
일부 실시예들에서, 상기 제약 플래그는 비디오 픽처가 단일 서브픽처를 포함하는지 여부를 지시하는 one_subpic_per_pic_constraint 플래그를 포함하며, 이때 상기 하나 또는 그 이상의 신택스 요소들은, one_subpic_per_pic_constraint가 1과 같을 경우 0으로 제한되는 비디오 픽처 내 서브픽처들의 수를 지시하는 제3 신택스 요소 sps_num_subpics_minus1을 포함한다. 일부 실시예들에서, 상기 제약 플래그는 비디오 파라미터 세트에 의해 특정되는 하나 또는 그 이상의 출력 레이어 세트들에서 모든 픽처들에 대한 sps_subpic_info_present_flag가 0과 같은 지 여부를 지시하는 플래그를 포함하며, 이때 상기 하나 또는 그 이상의 신택스 요소들은, one_subpic_per_pic_constraint가 1과 같을 경우 0으로 제한되는 비디오 픽처 내 서브픽처들의 수를 지시하는 제3 신택스 요소 sps_num_subpics_minus1을 포함한다. 일부 실시예들에서, 0과 같은 sps_subpic_info_present_flag는 각 비디오 픽처가 단일 서브픽처를 포함하고 서브픽처 정보는 존재하지 않는다고 지시한다.
일부 실시예들에서, 상기 하나 또는 그 이상의 신택스 요소들은 슬라이스 파라미터 세트, 비디오 파라미터 세트, 픽처 파라미터 세트, 픽처 헤더, 또는 슬라이스 헤더에 있다. 일부 실시예들에서, 상기 하나 또는 그 이상의 신택스 요소들은 코딩 툴(coding tool)이 활성화되는지 여부를 지시하는 신택스 플래그를 포함한다. 일부 실시예들에서, 상기 신택스 플래그는 0으로 제한되며, 이는 상기 제약 플래그가 1과 같은 경우 상기 코딩 툴이 비활성화됨을 지시한다. 일부 실시예들에서, 상기 신택스 플래그는 상기 제약 플래그에 기초하여 무효화된다.
일부 실시예들에서, 상기 신택스 플래그가 상기 비트스트림에 존재하는지 여부는 상기 제약 플래그에 기반한다. 일부 실시예들에서, 상기 신택스 플래그는 상기 제약 플래그가 1과 같은 경우 상기 비트스트림에서 생략된다. 일부 실시예들에서, 상기 신택스 플래그는 0으로 추론되어 상기 코딩 툴이 비활성화됨을 지시한다.
일부 실시예들에서, 상기 제약 플래그는 코딩된 레이어 비디오 시퀀스(CLVS: coded layer video sequence)에 해상도 변경이 없음을 지시하며, 이때 상기 하나 또는 그 이상의 신택스 요소들은 해상도 변경이 상기 CLVS에서 허용되는지 여부를 지시하는 시퀀스 파라미터 세트 내 제1 신택스 요소를 포함한다. 일부 실시예들에서, 상기 신택스 요소는, 상기 제약 플래그가 1과 같은 경우, 상기 비트스트림에서 생략된다. 일부 실시예들에서, 상기 신택스 요소는 0으로 추론되어 상기 해상도 변경이 상기 CLVS에서 허용되지 않음을 지시한다.
일부 실시예들에서, 상기 하나 또는 그 이상의 신택스의 요소들은 스케일링 윈도우 오프세트 파라미터를 지시하는 제2 신택스 요소를 더 포함하며, 상기 제2 신택스 요소가 상기 비트스트림에 존재하는지 여부는 적어도 상기 제약 플래그 또는 상기 제1 신택스 요소에 기반한다. 일부 실시예들에서, 상기 제2 신택스 요소는, 상기 제1 신택스 요소가 1과 같아 상기 해상도 변경이 상기 CLVS에서 허용되지 않음을 지시하는 경우, 상기 비트스트림에서 생략된다. 일부 실시예들에서, 상기 제2 신택스 요소는, 상기 제약 플래그가 1과 같아 상기 CLVS에 해상도 변경이 없다고 지시하는 경우, 상기 비트스트림에서 생략된다. 일부 실시예들에서, 상기 제2 신택스 요소는 0과 같다고 추론된다.
일부 실시예들에서, 상기 제약 플래그는 비디오 픽처가 단일 슬라이스를 포함하는지 여부를 지시하는 one_slice_per_pic_constraint를 포함하며, 상기 하나 또는 그 이상의 신택스 요소들은 비디오 픽처가 단일 서브픽처를 포함하는지 여부를 지시하는 신택스 플래그 one_subpic_per_pic_constraint_flag를 포함한다. 일부 실시예들에서, 상기 신택스 플래그 one_subpic_per_pic_constraint_flag는, 상기 제약 플래그가 1과 같은 경우, 상기 비트스트림에서 생략되고, 이때 상기 신택스 플래그는 1로 추론되어 비디오 픽처가 단일 서브픽처를 포함한다고 지시한다. 일부 실시예들에서, 상기 신택스 플래그 one_subpic_per_pic_constraint_flag는, 상기 제약 플래그가 0과 같은 경우, 상기 비트스트림에 포함된다. 일부 실시예들에서, 상기 제약 플래그는 변환 스킵이 상기 변환에 대해 허용되지 않는지 여부를 지시하는 no_transform_skip_constraint_flag를 포함하며, 상기 하나 또는 그 이상의 신택스 요소들은 블록 차분 펄스 코드 변조(BDPCM: block differential pulse-code modulation) 코딩 툴이 허용되지 않는지 여부를 지시하는 신택스 플래그 no_bdpcm_constraint를 포함한다. 일부 실시예들에서, 상기 신택스 플래그는 1로 제한되어, 상기 제약 플래그가 1과 같아 변환 스킵이 허용되지 않음을 지시하는 경우 상기 BDPCM 코딩 툴이 허용되지 않음을 지시한다. 일부 실시예들에서, 상기 신택스 플래그는, 상기 제약 플래그가 1과 같아 변환 스킵이 허용되지 않음을 지시하는 경우 상기 비트스트림에서 생략된다. 일부 실시예들에서, 상기 신택스 플래그는 1로 추론되어 상기 BDPCM 코딩 툴이 허용되지 않음을 지시한다.
일부 실시예들에서, 상기 제약 플래그가 상기 비트스트림에 존재하는지 여부는 상기 신택스 구조의 적어도 하나의 다른 제약 플래그에 기반한다. 일부 실시예들에서, 상기 적어도 하나의 다른 제약 플래그는 제약 그룹 플래그로 정의된다.
일부 실시예들에서, 복수의 제약 플래그들은 상기 비디오의 프로파일의 코딩 툴 타입에 기반하여 분류된다. 일부 실시예들에서, 한 그룹에서의 제약 플래그의 값은 상응하는 제약 그룹 플래그에 기반하여 결정된다. 일부 실시예들에서, 제약 플래그가 상기 비트스트림에 존재하는지 여부는 상응하는 제약 그룹 플래그에 기반하여 결정된다. 일부 실시예들에서, 상기 제약 플래그가 상기 비트스트림에서 생략되는 경우, 상기 제약 플래그는 0으로 추론된다.
일부 실시예들에서, 상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함한다. 일부 실시예들에서, 상기 변환은 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함한다.
본 문서에서, 용어 "비디오 처리”는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 가리킬 수 있다. 예를 들어, 비디오 압축 알고리즘들은 비디오의 화소 표현으로부터 상응하는 비트스트림 표현으로 변환하는 동안 또는 그 반대의 경우에 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스의 의해 정의되는 대로, 비트스트림 내에서 같은 위치에 있거나(co-located) 상이한 곳에 분산되어 있는 비트들에 해당할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오류 잔차 값들로 그리고 헤더들 및 비트스트림의 다른 필드들의 비트들을 사용하여 인코딩될 수 있다. 더 나아가, 비디오 인코더는 상기 기술된 포맷 규칙에 따라 인코딩 동작을 실시할 수 있으며, 그 결과 상기 인코딩 동작에 의해 산출된 상기 코딩된 표현은 상기 포맷에 부합하게 된다. 마찬가지로, 디코더는 상기 포맷 규칙에 지식과 함께(즉, 상기 포맷 규칙에 따라 특정 필드들의 존재 또는 부재를 기대할 것인지 여부) 상기 코딩된 표현을 파싱하고, 디코딩 동작을 실시하여 비디오 화소 값들을 생성할 수 있다.
상기 개시된 그리고 여타 해결 수단들, 예시들, 실시예들, 모듈들 그리고 본 문서에 기술된 기능적 동작들은, 본 문서에 개시된 구조들 및 그것들의 구조적 등가물들을 포함하는, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이것들 중 하나 또는 그 이상의 조합들에서 구현될 수 있다. 상기 개시된 그리고 여타 실시예들은 하나 또는 그 이상의 컴퓨터 프로그램 제품들로, 즉, 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령들의 하나 또는 그 이상의 모듈들로 구현되어 데이터 처리 장치에 의해 실행되거나 또는 상기 장치의 동작을 제어할 수 있다. 상기 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기관, 메모리 디바이스, 기계 판독 가능 전파 신호에 영향을 주는 물질의 조성, 또는 이것들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예로서 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스들 및 머신들을 포함한다. 장치는 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성되는 인위적으로 생성된 신호, 예를 들어 머신 생성 전기, 광 또는 전자기 신호이다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일된 또는 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛 등과 같이 어떤 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용된 단일 파일 내에, 또는 다수의 협력하는 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 위치에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한 그것들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이에 전송하거나, 또는 양자 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예로서 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 세부사항을 포함하고 있지만, 이들은 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 해당할 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들에 관련하여 본 특허 문서에 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예에 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위조합으로 구현될 수 있다. 또한, 특징들이 특정 조합들로 작용하는 것으로 앞서 설명되고 심지어 처음에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형에 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문서에 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리가 요구되는 것으로 이해되어서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다.
Claims (36)
- 비디오 처리 방법에 있어서,
하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고,
상기 포맷 규칙은, 동작(operation)이 코딩된 레이어 비디오 시퀀스(coded layer video sequence)의 서브픽처의 경계(boundary of a subpicture)를 가로질러 실시되는지 여부를 지시하는 제1 신택스 요소가 상기 비디오 픽처 내 서브픽처들의 수에 대응하여 선택적으로 포함됨을 명시하는, 비디오 처리 방법. - 제1항에 있어서,
상기 포맷 규칙은 상기 제1 신택스 요소가 상기 코딩된 비디오 시퀀스 내 상기 서브픽처의 모든 경계들이 픽처 경계들로 취급된다는 것을 더 지시함을 명시하는, 비디오 처리 방법. - 제1항 또는 제2항 중 어느 한 항에 있어서,
상기 동작은 인트라 예측(intra prediction), 인터 예측(inter prediction), 또는 인 루프 필터링(in-loop filtering ) 동작 중 적어도 하나를 포함하는, 비디오 처리 방법. - 제3항에 있어서,
상기 포맷 규칙은 상기 비디오 픽처 내 서브픽처들의 수가 1인 경우 상기 제1 신택스 요소가 상기 비트스트림에서 생략됨을 명시하는, 비디오 처리 방법. - 제4항에 있어서,
상기 제1 신택스 요소의 값은 1로 추론되며, 이는 어떤 인 루프 필터링 동작도 상기 서브픽처의 경계를 가로질러 실시되지 않음을 지시하는, 비디오 처리 방법. - 제1항 내지 제5항 중 어느 항에 있어서,
상기 제1 신택스 요소는 시퀀스 파라미터 세트(sequence parameter set)에 있는, 비디오 처리 방법. - 제6항에 있어서,
상기 제1 신택스 요소는 sps_independent_subpics_flag를 포함하는, 비디오 처리 방법. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 포맷 규칙은, 상기 코딩된 레이어 비디오 시퀀스에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비디오 픽처의 상기 하나 또는 그 이상의 서브픽처들이 상기 변환을 위해 하나 또는 그 이상의 픽처들로 취급되는지 여부를 지시하는 제2 신택스 요소를 지시하는 방식을 결정함을 더 명시하되, 인 루프 필터링 동작은 상기 변환에서 적용되지 않는, 비디오 처리 방법. - 제8항에 있어서,
상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제2 신택스 요소의 값은 1로 추론되며, 이는 상기 비디오 픽처의 상기 서브픽처가 상기 변환을 위한 픽처로 취급됨을 지시하는, 비디오 처리 방법. - 제8항에 있어서,
상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제2 신택스 요소의 값은 1일 필요가 있으며, 이는 상기 비디오 픽처의 상기 서브픽처가 상기 변환을 위한 픽처로 취급됨을 지시하는, 비디오 처리 방법. - 제1항 내지 제10항 중 어느 한 항에 있어서,
상기 포맷 규칙은 상기 코딩된 레이어 비디오 시퀀스에서 상기 비디오 픽처 내 서브픽처들의 수가 인 루프 필터링 동작이 서브픽처의 경계를 가로질러 활성화되는지 여부를 지시하는 제3 신택스 요소를 지시하는 방식을 결정됨을 더 명시하는, 비디오 처리 방법. - 제11항에 있어서,
상기 제3 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용가능한지 여부를 더 지시하는, 비디오 처리 방법. - 제11항에 있어서,
상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제3 신택스 요소의 값은 0으로 추론되며, 이는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 비활성화됨을 지시하는, 비디오 처리 방법. - 제13항에 있어서,
0으로 추론되는 상기 제3 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용될 수 없음을 더 지시하는, 비디오 처리 방법. - 제11항에 있어서,
상기 픽처 내 서브픽처들의 수가 1인 경우, 상기 제3 신택스 요소의 값은 0으로 추론될 필요가 있으며, 이는 상기 루프 필터 동작이 상기 서브픽처의 경계를 가로질러 비활성화됨을 지시하는, 비디오 처리 방법. - 제15항에 있어서,
0으로 추론될 것으로 요구되는 상기 제3 신택스 요소는 상기 인 루프 필터링 동작이 상기 서브픽처의 경계를 가로질러 적용될 수 없음을 더 지시하는, 비디오 처리 방법. - 제1항 내지 제16항 중 어느 한 항에 있어서,
상기 서브픽처들의 수는 신택스 요소 sps_num_subpics_nimus1에 의해 지시되는, 비디오 처리 방법. - 제8항 또는 제11항 중 어느 한 항에 있어서,
상기 서브픽처들의 수는 신택스 요소 one_subpic_per_pic_contraint_flag에 의해 지시되는, 비디오 처리 방법. - 비디오 처리 방법에 있어서,
하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 비트스트림에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비트스트림에서 제약 플래그(constraint flag)로 제한됨을 명시하는, 비디오 처리 방법. - 제19항에 있어서,
상기 제약 플래그는 one_subpic_per_pic_contraint_flag를 포함하는, 비디오 처리 방법. - 제20항에 있어서,
상기 제약 플래그의 값이 1인 경우, 상기 서브픽처들의 수는 1일 것이 요구되는, 비디오 처리 방법. - 비디오 처리 방법에 있어서,
하나 또는 그 이상의 서브픽처들을 포함하는 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 실시하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 서브픽처에서 슬라이스들의 수는 슬라이스의 폭(width of a slice)을 지시하는 신택스 요소를 시그널링하는 방식을 결정함을 명시하되, 상기 슬라이스의 상기 폭은 타일 열들(tile columns)의 수로 특정되는, 비디오 처리 방법. - 제22항에 있어서,
상기 신택스 요소는 상기 비트스트림에서 생략되며, 상기 서브픽처 내 슬라이스들의 수가 1인 경우, 상기 슬라이스의 상기 폭은 추론되는, 비디오 처리 방법. - 제23항에 있어서,
상기 슬라이스의 상기 폭은 1 타일 열로 추론되는, 비디오 처리 방법. - 제1항 내지 제24항 중 어느 한 항에 있어서,
상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩 하는 것을 포함하는, 비디오 처리 방법. - 제1항 내지 제24항 중 어느 한 항에 있어서,
상기 변환은 상기 비트스트림으로부터 상기 비디오를 디코딩 하는 것을 포함하는, 비디오 처리 방법. - 비디오 비트스트림을 저장하는 방법에 있어서,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계, 여기서, 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 동작(operation)이 코딩된 레이어 비디오 시퀀스(coded layer video sequence)의 서브픽처의 경계(boundary of a subpicture)를 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 픽처 내 서브픽처들의 수에 대응하여 선택적으로 포함됨을 명시하는, 및
상기 비트스트림을 비 일시적 컴퓨터 판독가능한 기록 매체내에 저장하는 단계를 포함하는, 비디오 스트림 저장 방법. - 비디오 비트스트림을 저장하는 방법에 있어서,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계, 여기서, 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 비트스트림에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비트스트림에서 제약 플래그(constraint flag)로 제한됨을 명시하는, 및
상기 비트스트림을 비 일시적 컴퓨터 판독가능한 기록 매체내에 저장하는 단계를 포함하는, 비디오 스트림 저장 방법. - 비디오 비트스트림을 저장하는 방법에 있어서,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계, 여기서, 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 서브픽처에서 슬라이스들의 수는 슬라이스의 폭(width of a slice)을 지시하는 신택스 요소를 시그널링하는 방식을 결정함을 명시하되, 상기 슬라이스의 상기 폭은 타일 열들(tile columns)의 수로 특정되며, 및
상기 비트스트림을 비 일시적 컴퓨터 판독가능한 기록 매체내에 저장하는 단계를 포함하는, 비디오 스트림 저장 방법. - 상기 제1항 내지 제29항 중 어느 한 항 이상에 언급된 방법을 구현하기 위한 프로세서를 포함하는 비디오 디코딩 장치.
- 상기 제1항 내지 제29항 중 어느 한 항 이상에 언급된 방법을 구현하기 위한 프로세서를 포함하는 비디오 인코딩 장치.
- 컴퓨터 코드를 저장하는 컴퓨터 프로그램 제품에 있어서, 상기 코드는, 프로세서에 의해 구동될때, 상기 프로세서가 상기 제1항 내지 제29항 중 어느 한 항에서 언급된 방법을 구현하도록 하는, 컴퓨터 프로그램 제품.
- 비디오 처리 장치에 의해 수행되는 방법으로 생성된 비디오의 비트스트림을 저장하는 비 일시적 컴퓨터 판독가능한 기록 매체에 있어서, 상기 방법은,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 동작(operation)이 코딩된 레이어 비디오 시퀀스(coded layer video sequence)의 서브픽처의 경계(boundary of a subpicture)를 가로질러 실시되는지 여부를 지시하는 신택스 요소가 상기 비디오 픽처 내 서브픽처들의 수에 대응하여 선택적으로 포함됨을 명시하는, 컴퓨터 판독가능한 기록 매체. - 비디오 처리 장치에 의해 수행되는 방법으로 생성된 비디오의 비트스트림을 저장하는 비 일시적 컴퓨터 판독가능한 기록 매체에 있어서, 상기 방법은,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 상기 비트스트림에서 상기 비디오 픽처 내 서브픽처들의 수가 상기 비트스트림에서 제약 플래그(constraint flag)로 제한됨을 명시하는, 컴퓨터 판독가능한 기록 매체. - 비디오 처리 장치에 의해 수행되는 방법으로 생성된 비디오의 비트스트림을 저장하는 비 일시적 컴퓨터 판독가능한 기록 매체에 있어서, 상기 방법은,
비디오 슬라이스를 포함하는 비디오 픽처로부터 비디오 비트스트림을 생성하는 단계를 포함하되,
상기 비트스트림은 포맷 규칙을 따르고, 상기 포맷 규칙은 서브픽처에서 슬라이스들의 수는 슬라이스의 폭(width of a slice)을 지시하는 신택스 요소를 시그널링하는 방식을 결정함을 명시하되, 상기 슬라이스의 상기 폭은 타일 열들(tile columns)의 수로 특정되는, 컴퓨터 판독가능한 기록 매체. - 본 문서에 기술된, 방법, 장치, 방법에 따라 생성된 비트스트림, 또는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2020/075194 | 2020-02-14 | ||
CN2020075194 | 2020-02-14 | ||
PCT/CN2021/076546 WO2021160171A1 (en) | 2020-02-14 | 2021-02-10 | Subpicture information signaling in video bitstreams |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220131257A true KR20220131257A (ko) | 2022-09-27 |
Family
ID=77292047
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227026834A KR20220138050A (ko) | 2020-02-14 | 2021-02-10 | 비디오 비트스트림들에서 동일 위치 픽처 (collocated picture) 지시 |
KR1020227026837A KR102678547B1 (ko) | 2020-02-14 | 2021-02-10 | 비디오 비트스트림내에서 일반적인 제약 플래그 (general constraint flags )의 사용 |
KR1020227026835A KR20220134561A (ko) | 2020-02-14 | 2021-02-10 | 비디오 코딩에서 참조 픽처 리샘플링 (reference picture resampling) 활성화 |
KR1020227026836A KR20220131257A (ko) | 2020-02-14 | 2021-02-10 | 비디오 비트스트림내에 서브픽처 정보 (subpicture information) 시그널링 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227026834A KR20220138050A (ko) | 2020-02-14 | 2021-02-10 | 비디오 비트스트림들에서 동일 위치 픽처 (collocated picture) 지시 |
KR1020227026837A KR102678547B1 (ko) | 2020-02-14 | 2021-02-10 | 비디오 비트스트림내에서 일반적인 제약 플래그 (general constraint flags )의 사용 |
KR1020227026835A KR20220134561A (ko) | 2020-02-14 | 2021-02-10 | 비디오 코딩에서 참조 픽처 리샘플링 (reference picture resampling) 활성화 |
Country Status (8)
Country | Link |
---|---|
US (7) | US11870979B2 (ko) |
EP (5) | EP4088462A4 (ko) |
JP (4) | JP7457143B2 (ko) |
KR (4) | KR20220138050A (ko) |
CN (8) | CN115176467A (ko) |
BR (1) | BR112022016125A2 (ko) |
MX (1) | MX2022009669A (ko) |
WO (8) | WO2021160168A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL3831064T3 (pl) * | 2018-08-17 | 2024-06-03 | Huawei Technologies Co., Ltd. | Zarządzanie obrazami odniesienia w kodowaniu wideo |
AU2020392150B2 (en) * | 2019-11-28 | 2024-03-21 | Lg Electronics Inc. | Slice and tile configuration for image/video coding |
EP4088462A4 (en) * | 2020-02-14 | 2023-05-24 | Beijing Bytedance Network Technology Co., Ltd. | SUBPICTURE INFORMATION SIGNALING IN VIDEO BITSTREAM |
US11778215B2 (en) * | 2020-02-28 | 2023-10-03 | Qualcomm Incorporated | Coding output layer set data and conformance window data of high level syntax for video coding |
MX2022010889A (es) * | 2020-03-05 | 2022-10-27 | Lg Electronics Inc | Metodo y dispositivo de codificacion/decodificacion de imagen basado en el tipo de unidad nal combinada, y metodo para trasmitir flujo de bits. |
EP4122208A1 (en) * | 2020-03-20 | 2023-01-25 | Interdigital VC Holdings France | Method and device for image encoding and decoding |
EP4107956A4 (en) | 2020-03-21 | 2023-06-21 | Beijing Bytedance Network Technology Co., Ltd. | COMBINATION OF SUBIMAGES AND EXTENSIBILITY |
CN115668951A (zh) * | 2020-03-30 | 2023-01-31 | Lg电子株式会社 | 用信号通知关于dpb参数的数量的信息的图像编码/解码方法和设备及存储比特流的计算机可读记录介质 |
US12022101B2 (en) * | 2020-03-31 | 2024-06-25 | Lg Electronics Inc. | Image encoding/decoding method and apparatus based on subpicture information aligned between layers, and recording medium storing bitstream |
WO2021201664A1 (ko) * | 2020-04-03 | 2021-10-07 | 엘지전자 주식회사 | Gdr 또는 irap 픽처에 대한 가용 슬라이스 타입 정보에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
US11451811B2 (en) * | 2020-04-05 | 2022-09-20 | Tencent America LLC | Method and apparatus for video coding |
WO2021204553A1 (en) * | 2020-04-08 | 2021-10-14 | Nokia Technologies Oy | Luma mapping with chroma scaling for gradual decoding refresh |
WO2021213307A1 (en) | 2020-04-19 | 2021-10-28 | Beijing Bytedance Network Technology Co., Ltd. | Scaling window for video coding |
CN115699733A (zh) * | 2020-05-21 | 2023-02-03 | 字节跳动有限公司 | 在视频编解码中信令通知层间参考图片 |
KR20230013130A (ko) * | 2020-05-22 | 2023-01-26 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | 코딩된 비디오의 출력 계층 세트들의 처리 |
US11503342B2 (en) * | 2020-06-10 | 2022-11-15 | Sharp Kabushiki Kaisha | Systems and methods for signaling sequence parameter information in video coding |
EP4154533A4 (en) | 2020-06-20 | 2023-11-01 | Beijing Bytedance Network Technology Co., Ltd. | CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE |
WO2023132993A1 (en) * | 2022-01-10 | 2023-07-13 | Innopeak Technology, Inc. | Signaling general constraints information for video coding |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI376958B (en) | 2006-09-07 | 2012-11-11 | Lg Electronics Inc | Method and apparatus for decoding a scalable video coded bitstream |
CN101389021B (zh) * | 2007-09-14 | 2010-12-22 | 华为技术有限公司 | 视频编解码方法及装置 |
US8483285B2 (en) | 2008-10-03 | 2013-07-09 | Qualcomm Incorporated | Video coding using transforms bigger than 4×4 and 8×8 |
US8737825B2 (en) | 2009-09-10 | 2014-05-27 | Apple Inc. | Video format for digital video recorder |
US8594200B2 (en) * | 2009-11-11 | 2013-11-26 | Mediatek Inc. | Method of storing motion vector information and video decoding apparatus |
CN107046644B (zh) | 2010-04-09 | 2020-03-24 | 三菱电机株式会社 | 运动图像编码装置以及运动图像解码装置 |
US9124898B2 (en) | 2010-07-12 | 2015-09-01 | Mediatek Inc. | Method and apparatus of temporal motion vector prediction |
MX2013008691A (es) | 2011-02-10 | 2013-08-21 | Panasonic Corp | Metodo de codificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de decodificacion de imagenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento. |
US9060173B2 (en) * | 2011-06-30 | 2015-06-16 | Sharp Kabushiki Kaisha | Context initialization based on decoder picture buffer |
CN107580221B (zh) * | 2011-09-09 | 2020-12-08 | 株式会社Kt | 用于解码视频信号的方法 |
US9131245B2 (en) | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
EP2781098B1 (en) * | 2011-11-18 | 2019-02-06 | Google Technology Holdings LLC | An explicit way for signaling a collocated picture for high efficiency video coding (hevc) |
EP2805511B1 (en) * | 2012-01-20 | 2019-03-06 | Sun Patent Trust | Methods and apparatus for encoding and decoding video using temporal motion vector prediction |
CN107257490B (zh) * | 2012-01-27 | 2019-12-17 | 太阳专利托管公司 | 图像编码方法及图像编码装置 |
EP2824920A4 (en) * | 2012-03-06 | 2016-02-17 | Panasonic Ip Corp America | VIDEO CODING METHOD, VIDEO CODING METHOD, VIDEO COORDING DEVICE, VIDEO CODING DEVICE AND VIDEO CODING / DECODING DEVICE |
CN104937939B (zh) * | 2012-04-11 | 2018-10-23 | 谷歌技术控股有限责任公司 | 用于时间运动矢量预测符标志的编码器和解码器及其方法 |
US9654802B2 (en) | 2012-09-24 | 2017-05-16 | Qualcomm Incorporated | Sequence level flag for sub-picture level coded picture buffer parameters |
US20140301463A1 (en) * | 2013-04-05 | 2014-10-09 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9800893B2 (en) * | 2013-04-17 | 2017-10-24 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
US9813723B2 (en) * | 2013-05-03 | 2017-11-07 | Qualcomm Incorporated | Conditionally invoking a resampling process in SHVC |
US9432667B2 (en) | 2013-06-11 | 2016-08-30 | Qualcomm Incorporated | Processing bitstream constraints relating to inter-layer prediction types in multi-layer video coding |
KR101967398B1 (ko) * | 2013-07-09 | 2019-04-09 | 노키아 테크놀로지스 오와이 | 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치 |
US9648335B2 (en) * | 2013-07-12 | 2017-05-09 | Qualcomm Incorporated | Bitstream restrictions on picture partitions across layers |
US9560358B2 (en) * | 2013-07-22 | 2017-01-31 | Qualcomm Incorporated | Device and method for scalable coding of video information |
US9071814B1 (en) * | 2013-08-15 | 2015-06-30 | Google Inc. | Scene detection based on video encoding parameters |
JPWO2015034061A1 (ja) | 2013-09-06 | 2017-03-02 | 三菱電機株式会社 | 動画像符号化装置、動画像トランスコード装置、動画像符号化方法、動画像トランスコード方法及び動画像ストリーム伝送システム |
CN105723712B (zh) * | 2013-10-14 | 2019-06-28 | 韩国电子通信研究院 | 基于多层的图像编码/解码方法和设备 |
CN106664424A (zh) | 2014-01-03 | 2017-05-10 | 诺基亚技术有限公司 | 参数集编码 |
CN106105220B (zh) | 2014-01-07 | 2019-07-05 | 诺基亚技术有限公司 | 用于视频编码和解码的方法和装置 |
CN105960802B (zh) | 2014-10-08 | 2018-02-06 | 微软技术许可有限责任公司 | 切换色彩空间时对编码和解码的调整 |
WO2016138513A1 (en) * | 2015-02-27 | 2016-09-01 | Arris Enterprises, Inc. | Modification of unification of intra block copy and inter signaling related syntax and semantics |
US10560695B2 (en) | 2015-06-26 | 2020-02-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Encoding and decoding of pictures in a video |
EP3354029A4 (en) * | 2015-09-23 | 2019-08-21 | Nokia Technologies Oy | METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR ENCODING 360-DEGREE PANORAMIC VIDEO |
US10834419B2 (en) * | 2016-04-13 | 2020-11-10 | Qualcomm Incorporated | Conformance constraint for collocated reference index in video coding |
CN114245124B (zh) * | 2016-10-04 | 2023-04-07 | 有限公司B1影像技术研究所 | 图像数据编码/解码方法、介质和发送比特流的方法 |
EP3603090A4 (en) * | 2017-03-27 | 2020-08-19 | Nokia Technologies Oy | APPARATUS, METHOD AND COMPUTER PROGRAM FOR CODING AND DECODING OF VIDEO |
CN116320399A (zh) | 2017-07-03 | 2023-06-23 | 汉阳大学校产学协力团 | 利用包含追加区域的分割单位的影像解码方法以及装置 |
WO2019009590A1 (ko) | 2017-07-03 | 2019-01-10 | 김기백 | 추가 영역을 포함하는 분할 단위를 이용한 영상 복호화 방법 및 장치 |
US11153607B2 (en) * | 2018-01-29 | 2021-10-19 | Mediatek Inc. | Length-adaptive deblocking filtering in video coding |
US11470359B2 (en) * | 2018-03-30 | 2022-10-11 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks at a boundary of a picture for video coding |
CA3100316A1 (en) * | 2018-05-15 | 2019-11-21 | Sharp Kabushiki Kaisha | Image encoding device, encoded stream extraction device, and image decoding device |
US11477474B2 (en) | 2018-06-08 | 2022-10-18 | Mediatek Inc. | Methods and apparatus for multi-hypothesis mode reference and constraints |
WO2020003270A1 (en) * | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
WO2020016745A2 (en) * | 2018-07-14 | 2020-01-23 | Beijing Bytedance Network Technology Co., Ltd. | Extension of look-up table based motion vector prediction with temporal information |
US10356387B1 (en) * | 2018-07-26 | 2019-07-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Bookmarking system and method in 360° immersive video based on gaze vector information |
US11451807B2 (en) | 2018-08-08 | 2022-09-20 | Tencent America LLC | Method and apparatus for video coding |
US10911751B2 (en) | 2018-09-14 | 2021-02-02 | Tencent America LLC | Method and apparatus for video coding |
CA3114453C (en) | 2018-09-28 | 2023-07-18 | Zte Corporation | Video encoding and decoding methods and apparatus |
WO2020094050A1 (en) * | 2018-11-06 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Using inter prediction with geometric partitioning for video processing |
FI3878175T3 (fi) | 2018-11-08 | 2024-05-16 | Interdigital Vc Holdings Inc | Kvantisointi videokoodaukselle tai dekoodaukselle lohkon pinnalla |
KR20210094530A (ko) * | 2018-11-29 | 2021-07-29 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용 |
US10958900B2 (en) | 2018-12-06 | 2021-03-23 | Qualcomm Incorporated | Derivation of spatial-temporal motion vectors prediction in video coding |
US12022059B2 (en) | 2018-12-07 | 2024-06-25 | Beijing Dajia Internet Information Technology Co., Ltd. | Video coding using multi-resolution reference picture management |
AU2019201649A1 (en) | 2019-03-11 | 2020-10-01 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a tree of blocks of video samples |
US11363307B2 (en) | 2019-08-08 | 2022-06-14 | Hfi Innovation Inc. | Video coding with subpictures |
US11284077B2 (en) | 2019-09-10 | 2022-03-22 | Mediatek Inc. | Signaling of subpicture structures |
CN118214864A (zh) | 2019-09-11 | 2024-06-18 | 夏普株式会社 | 用于基于交叉分量相关性来减小视频编码中的重构误差的系统和方法 |
US20210076074A1 (en) | 2019-09-11 | 2021-03-11 | Qualcomm Incorporated | Maximum and minimum block sizes signaling at high level syntax for video coding and transform units |
GB201913403D0 (en) | 2019-09-17 | 2019-10-30 | Canon Kk | Method and apparatus for encoding and decoding a video stream with subpictures |
US11375223B2 (en) | 2019-09-20 | 2022-06-28 | Tencent America LLC | Method for signaling output layer set with sub-picture |
US20220394301A1 (en) | 2019-10-25 | 2022-12-08 | Sharp Kabushiki Kaisha | Systems and methods for signaling picture information in video coding |
MX2022005993A (es) | 2019-11-18 | 2022-09-07 | Lg Electronics Inc | Dispositivo y metodo de codificacion de imagenes para controlar el filtrado en bucle. |
BR112022009619A2 (pt) | 2019-11-18 | 2022-08-02 | Lg Electronics Inc | Dispositivo de codificação de imagem e método para controlar filtragem em loop |
US20210176475A1 (en) | 2019-12-05 | 2021-06-10 | Mediatek Inc. | Specifying Layout In Video Pictures |
US11490099B2 (en) | 2019-12-23 | 2022-11-01 | Qualcomm Incorporated | Reference subpicture scaling ratios for subpictures in video coding |
KR20220119675A (ko) | 2020-01-09 | 2022-08-30 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 화상 헤더 존재 |
KR20220051399A (ko) * | 2020-02-11 | 2022-04-26 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 시퀀스 파라미터 세트에서의 서브픽처 시그널링을 위한, 인코더, 디코더 및 대응하는 방법 |
EP4088462A4 (en) | 2020-02-14 | 2023-05-24 | Beijing Bytedance Network Technology Co., Ltd. | SUBPICTURE INFORMATION SIGNALING IN VIDEO BITSTREAM |
US11770549B2 (en) | 2020-06-10 | 2023-09-26 | Sony Group Corporation | Video data encoding and decoding circuity applying constraint data |
-
2021
- 2021-02-10 EP EP21753418.9A patent/EP4088462A4/en active Pending
- 2021-02-10 EP EP21753627.5A patent/EP4088463A4/en active Pending
- 2021-02-10 CN CN202180014357.3A patent/CN115176467A/zh active Pending
- 2021-02-10 BR BR112022016125A patent/BR112022016125A2/pt unknown
- 2021-02-10 WO PCT/CN2021/076542 patent/WO2021160168A1/en unknown
- 2021-02-10 WO PCT/CN2021/076550 patent/WO2021160174A1/en active Application Filing
- 2021-02-10 CN CN202180014201.5A patent/CN115176466A/zh active Pending
- 2021-02-10 JP JP2022548756A patent/JP7457143B2/ja active Active
- 2021-02-10 JP JP2022548755A patent/JP2023513344A/ja active Pending
- 2021-02-10 CN CN202180014407.8A patent/CN115211107A/zh active Pending
- 2021-02-10 CN CN202180014549.4A patent/CN115211112A/zh active Pending
- 2021-02-10 WO PCT/CN2021/076531 patent/WO2021160165A1/en unknown
- 2021-02-10 CN CN202180014513.6A patent/CN115191114A/zh active Pending
- 2021-02-10 KR KR1020227026834A patent/KR20220138050A/ko unknown
- 2021-02-10 WO PCT/CN2021/076552 patent/WO2021160176A1/en unknown
- 2021-02-10 WO PCT/CN2021/076539 patent/WO2021160167A1/en active Application Filing
- 2021-02-10 JP JP2022548758A patent/JP7397211B2/ja active Active
- 2021-02-10 EP EP21753962.6A patent/EP4088453A4/en active Pending
- 2021-02-10 KR KR1020227026837A patent/KR102678547B1/ko active IP Right Grant
- 2021-02-10 CN CN202180014141.7A patent/CN115176478A/zh active Pending
- 2021-02-10 CN CN202180014142.1A patent/CN115362673A/zh active Pending
- 2021-02-10 EP EP21753416.3A patent/EP4088473A4/en active Pending
- 2021-02-10 EP EP23213772.9A patent/EP4307669A3/en active Pending
- 2021-02-10 KR KR1020227026835A patent/KR20220134561A/ko unknown
- 2021-02-10 JP JP2022548754A patent/JP7457142B2/ja active Active
- 2021-02-10 MX MX2022009669A patent/MX2022009669A/es unknown
- 2021-02-10 KR KR1020227026836A patent/KR20220131257A/ko unknown
- 2021-02-10 CN CN202180013995.3A patent/CN115191119A/zh active Pending
- 2021-02-10 WO PCT/CN2021/076547 patent/WO2021160172A1/en active Application Filing
- 2021-02-10 WO PCT/CN2021/076546 patent/WO2021160171A1/en unknown
- 2021-02-10 WO PCT/CN2021/076551 patent/WO2021160175A1/en active Application Filing
-
2022
- 2022-08-11 US US17/886,084 patent/US11870979B2/en active Active
- 2022-08-11 US US17/886,104 patent/US12010295B2/en active Active
- 2022-08-11 US US17/886,121 patent/US11825079B2/en active Active
- 2022-08-12 US US17/887,294 patent/US11785210B2/en active Active
- 2022-08-12 US US17/887,275 patent/US11991352B2/en active Active
- 2022-08-12 US US17/887,283 patent/US20220400284A1/en active Pending
-
2023
- 2023-11-16 US US18/511,593 patent/US20240107006A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102678547B1 (ko) | 비디오 비트스트림내에서 일반적인 제약 플래그 (general constraint flags )의 사용 | |
CN115462071A (zh) | 自适应环路滤波 | |
JP2024003125A (ja) | ビデオコーディングにおける一般制約情報 | |
JP7514330B2 (ja) | ローカルデュアルツリーモードタイプ定義を伴うパレットモード | |
JP2023526494A (ja) | 一般制約フラグのシグナリング |