KR20220146491A - 적응형 루프 필터링 - Google Patents

적응형 루프 필터링 Download PDF

Info

Publication number
KR20220146491A
KR20220146491A KR1020227030335A KR20227030335A KR20220146491A KR 20220146491 A KR20220146491 A KR 20220146491A KR 1020227030335 A KR1020227030335 A KR 1020227030335A KR 20227030335 A KR20227030335 A KR 20227030335A KR 20220146491 A KR20220146491 A KR 20220146491A
Authority
KR
South Korea
Prior art keywords
equal
flag
slice
specifies
sps
Prior art date
Application number
KR1020227030335A
Other languages
English (en)
Inventor
치핀 등
예-쿠이 왕
리 창
카이 창
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20220146491A publication Critical patent/KR20220146491A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods 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 video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1887Methods 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 variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

비디오 처리를 위한 방법, 시스템 및 장치가 설명된다. 하나의 예시적인 비디오 처리 방법은 규칙에 따라 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 비디오 영역에 대해 허용되도록 지정한다.

Description

적응형 루프 필터링
이 특허 문서는 이미지 및 비디오 코딩(video coding) 및 디코딩(decoding)에 관한 것이다.
적용 가능한 특허법 및/또는 파리 협약에 따른 규칙에 따라, 본 출원은 2020년 3월 11일에 출원된 국제 특허 출원 번호 PCT/CN2020/078770에 대한 우선권 및 혜택을 적시에 주장하기 위해 만들어졌다. 법에 따른 모든 목적을 위해, 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.
디지털 비디오(Digital video)는 인터넷 및 다른 디지털 통신 네트워크(digital communication network)에서 가장 많은 대역폭을 사용한다. 비디오(video)를 수신하고 나타낼 수 있는 연결된 사용자 장치(connected user device)의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 코딩된 표현(coded representation)의 디코딩(decoding)에 유용한 제어 정보(control information)를 사용하여 비디오의 코딩된 표현을 처리하기 위해 비디오 인코더(encoder) 및 디코더(decoder)에 의해 사용될 수 있는 기술을 개시한다.
하나의 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 유닛을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은, 적응형 파라미터 세트(APS)에서, 비디오의 스케일링 목록과 관련된 정보를 포함할지 여부 또는 포함하는 방법은 APS가 크로마 컴포넌트 관련 신택스 요소를 포함하고 시퀀스 파라미터 세트(SPS)의 하나 이상의 신택스 요소와 독립적인지 여부를 나타내는 제1 신택스 요소에 기초하는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 신택스 요소가 적응형 파라미터 세트(APS)에 포함된다는 것을 지정하고, 여기서 규칙은 신택스 요소가 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함되는지 여부를 나타내도록 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 적응형 파라미터 세트(APS)에 포함되는지 여부가 APS가 크로마 컴포넌트 관련 신택스 요소를 포함하는지 여부를 나타내는 제1 신택스 요소에 기초하는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 트랜스폼 스킵 기반 잔차 코딩이 슬라이스에 대해 비활성화되는지 여부를 나타내는 제1 신택스 요소를 슬라이스 헤더(SH)에 포함할지 여부를 지정하고, 및 여기서 규칙은 SH에 제1 신택스 요소를 포함할지 여부가 트랜스폼 스킵(TS) 모드가 비디오 블록에 대해 활성화되는지 여부를 나타내는 시퀀스 파라미터 세트(SPS)의 제2 신택스 요소에 선택적으로 기초하는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 루마 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 슬라이스 헤더(SH)가 제1 신택스 요소를 포함하는지 여부가 제2 신택스 요소에 기초한다는 것을 지정하고, 제1 신택스 요소는 델타 양자화 파라미터(QP)의 사용이 루마 블록의 특정 슬라이스의 하나 이상의 코딩 유닛(CU)에 대해 활성화되는지 여부를 나타낸다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 비디오 비디오의 각 서브픽처가 하나의 직사각형 슬라이스만을 포함한다는 것을 나타내는 제1 신택스 요소에 응답하여: 픽처 파라미터 세트(PPS)를 참조하는 각 비디오 픽처의 직사각형 슬라이스의 수를 나타내는 1을 더한 제2 신택스 요소는 비트스트림의 코딩된 계층 비디오 시퀀스(CLVS)의 각 비디오 픽처에 있는 서브픽처의 수를 나타내는 1을 더한 제3 신택스 요소와 동일한 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 픽처 파라미터 세트(picture parameter set)(PPS)가 비디오의 비디오 픽처가 동일한 높이를 갖는 타일 행 또는 열의 제1 수 및 상이한 높이 또는 너비를 갖는 제2 타일 행 또는 열의 수를 갖는 타일 행 또는 열로 나누어지는지 여부를 나타내는 하나 이상의 신택스 요소를 포함하는 것을 지정하고, 및 여기서 제1 타일 행 또는 열의 수는 타일 행 또는 열의 제2 수 이전에 비디오 픽처에 위치된다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(network abstraction layer)(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 비디오 영역에 대해 허용된다는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 비디오 영역에 대해 허용되지 않음을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 제2 신택스 요소의 제2 값이 0과 동일함을 나타내는 1의 값을 갖는 제1 신택스 요소의 제1 값에 응답하여 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작이 허용되지 않는 것을 지정하고, 여기서 규칙은 일반 제약 정보 신택스 구조가 제1 신택스 요소를 포함하는 것을 지정하고, 및 여기서 규칙은 0의 값을 갖는 시퀀스 파라미터 세트(SPS)의 제2 신택스 요소가 비디오의 모든 비디오 픽처에 대해 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화됨을 나타내도록 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 적응형 파라미터 세트(APS)의 수를 나타내는 하나 이상의 신택스 요소 및/또는 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작에 대한 APS 식별자를 나타내는 하나 이상의 신택스 요소를 포함할지 여부는 적응형 루프 필터링 데이터를 포함하는 APS 네트워크 추상화 계층(Network Abstraction Layer)(NAL) 유닛이 비트스트림에 존재하는지 여부를 나타내는 제1 신택스 요소의 존재에 기초하는 것을 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 하나 이상의 신택스 요소가 파라미터 세트 또는 헤더 또는 신택스 구조에 표시되어 다음 중 임의의 하나 이상이 비활성화됨을 지정하도록 지정한다: 적응형 루프 필터링 동작, 크로스 컴포넌트 적응형 루프 필터링 동작 , 크로마 스케일링 동작(LMSCS)이 있는 루마 매핑, 또는 하나 이상의 사용자 정의 스케일링 목록.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은: 루마 샘플 유닛의 PPS를 참조하는 각 비디오 픽처의 너비는 각 비디오 픽처가 참조하는 루마 샘플 유닛의 시퀀스 파라미터 세트(Sequence Parameter Set)(SPS)에 표시된 최대 픽처 너비와 동일하고, 루마 샘플 유닛의 PPS를 참조하는 각 비디오 픽처의 높이는 루마 샘플 유닛의 SPS에 표시된 최대 픽처 높이와 동일하다는 것에 응답하여: 픽처 파라미터 세트(PPS)에서 적합성 윈도우 파라미터(conformance window parameter) 세트가 생략되도록 지정한다.
다른 예시적인 측면에서, 비디오 처리 방법(video processing method)이 개시된다. 방법은 비디오의 비디오 영역과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오의 컬러 컴포넌트에 대한 스케일링 목록이 시퀀스 파라미터 세트의 신택스 필드 값과 독립적으로 적응형 파라미터 세트에 포함되는지 여부를 나타내는 플래그를 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 비디오의 비디오 영역과 비디오 영역의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 하나 이상의 적응형 파라미터 세트가 코딩된 표현에 포함되어 각각의 적응형 파라미터 세트에 대해 비디오에 대한 크로마 제약으로 인해 크로마 관련 신택스 요소가 생략되도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 유닛(video unit)을 포함하는 하나 이상의 비디오 영역(video region)을 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 제1 트랜스폼 코딩 신택스 필드(first transform coding syntax field)가 비디오 영역의 비디오 유닛의 레벨에서 코딩된 표현에 포함되는지 여부 및/또는 그 값이 비디오 영역의 레벨에서의 제2 트랜스폼 코딩 신택스 필드(second transform coding syntax field)의 값에 의존한다는 것을 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 영역을 포함하는 비디오 - 각각의 비디오 영역이 하나 이상의 비디오 유닛을 포함함 - 와 비디오의 코딩된 표현사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오 유닛 레벨의 플래그가 양자화 파라미터의 차동 시그널링(differential signaling)이 변환을 위해 활성화되는지 여부를 제어하도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 영역을 포함하는 비디오 - 각각의 비디오 영역이 하나 이상의 비디오 유닛을 포함함 - 와 비디오의 코딩된 표현사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 서브픽처의 수를 나타내는 픽처 레벨의 제1 플래그 및 서브픽처의 슬라이스의 수를 나타내는 서브픽처 레벨의 제2 플래그의 해석(interpretation)을 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 형식 규칙을 따르고; 여기서 포맷 규칙은 비디오 픽처와 연관된 픽처 파라미터 세트의 필드가 비디오 픽처가 상이한 높이 또는 폭의 다수의 타일 행 또는 열로 나누어지는지 여부를 나타내도록 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 적응형 파라미터 세트가 적응형 루프 필터링의 표시를 배제하는 경우, 비디오 영역에 적응형 루프 필터링의 적용 가능성이 제2 규칙에 기초하는 것을 지정한다.
다른 예시적인 측면에서, 다른 비디오 처리 방법이 개시된다. 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오의 너비 및 높이가 최대 너비 및 최대 높이인 픽처에 대해 픽처 파라미터 세트에서 적합성 윈도우 파라미터의 명시적 시그널링(explicit signaling)이 스킵되는 것을 지정한다.
또 다른 예시적인 측면에서, 비디오 인코더 장치(video encoder apparatus)가 개시된다. 비디오 인코더는 전술한 방법을 구현하도록 구성된 프로세서(processor)를 포함한다.
또 다른 예시적인 측면에서, 비디오 디코더 장치(video decoder apparatus)가 개시된다. 비디오 디코더는 전술한 방법을 구현하도록 구성된 프로세서를 포함한다.
또 다른 실시예 측면에서, 코드(code)가 저장된 컴퓨터 판독 가능 매체(computer readable medium)가 개시된다. 코드는 프로세서 실행 가능 코드의 형태로 여기에 설명된 방법 중 하나를 구현한다.
이러한 기능 및 기타 기능은 본 문서 전체에 걸쳐 설명되어 있다.
도 1은 예시적인 비디오 처리 시스템의 블록도이다.
도 2는 비디오 처리 장치(video processing apparatus)(1200)의 블록도이다.
도 3은 비디오 처리 방법의 하나의 예의 방법에 대한 순서도이다.
도 4는 본 개시의 일부 실시예에 따른 비디오 코딩 시스템을 예시하는 블록도이다.
도 5는 본 개시의 일부 실시예에 따른 인코더를 예시하는 블록도이다.
도 6은 본 개시의 일부 실시예에 따른 디코더를 예시하는 블록도이다.
도 7 내지 19는 예시적인 비디오 처리 방법의 순서도이다.
섹션 제목은 이해의 편의를 위해 본 문서에서 사용되며 각 섹션에 개시된 기술 및 실시예의 적용 가능성을 해당 섹션에만 제한하지 않는다. 또한, H.266 용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다.
1. 소개
이 문서는 비디오 코딩 기술(video coding technologies)과 관련이 있다. 특히 비디오 코딩에서 SH, PPS, APS 및 GCI 신택스 요소의 설계에 관한 것이다. 아이디어는 다중 계층 비디오 코딩(multi-layer video coding), 예를 들어 개발 중인 범용 비디오 코딩(Versatile Video Coding)(VVC)을 지원하는 임의의 비디오 코딩 표준 또는 비표준 비디오 코덱에 개별적으로 또는 다양한 조합으로 적용될 수 있다.
2. 약어
APS 적응형 파라미터 세트(Adaptation Parameter Set)
AU 액세스 유닛(Access Unit)
AUD 액세스 유닛 구분 기호(Access Unit Delimiter)
AVC 고급 비디오 코딩(Advanced Video Coding)
CLVS 코딩된 계층 비디오 시퀀스(Coded Layer Video Sequence)
CPB 코딩된 픽처 버퍼Coded Picture Buffer()
CRA 클린 랜덤 액세스(Clean Random Access)
CTU 코딩 트리 유닛(Coding Tree Unit)
CVS 코딩된 비디오 시퀀스(Coded Video Sequence)
DPB 디코딩된 픽처 버퍼(Decoded Picture Buffer)
DPS 디코딩 파라미터 세트(Decoding Parameter Set)
EOB 비트스트림 끝(End Of Bitstream)
EOS 시퀀스 끝(End Of Sequence)
GCI 일반 제약 정보(General Constraint Information)
GDR 점진적 디코딩 리프레시(Gradual Decoding Refresh)
HEVC 고효율 비디오 코딩(High Efficiency Video Coding)
HRD 가상 레퍼런스 디코더(Hypothetical Reference Decoder)
IDR 즉시 디코딩 리프레시(Instantaneous Decoding Refresh)
JEM 공동 연구 모델(Joint Exploration Model)
MCTS 모션 제약 타일 세트(Motion-Constrained Tile Set)
NAL 네트워크 추상화 계층(Network Abstraction Layer)
OLS 출력 계층 세트(Output Layer Set)
PH 픽처 헤더(Picture Header)
PPS 픽처 파라미터 세트(Picture Parameter Set)
PTL 프로필, 계층 및 레벨(Profile, Tier and Level)
PU 픽처 유닛(Picture Unit)
RBSP 원시 바이트 시퀀스 페이로드(Raw Byte Sequence Payload)
SEI 추가 개선 정보(Supplemental Enhancement Information)
SH 슬라이스 헤더(Slice Header)
SPS 시퀀스 파라미터 세트(Sequence Parameter Set)
SVC 확장 가능한 비디오 코딩(Scalable Video Coding)
VCL 비디오 코딩 계층(Video Coding Layer)
VPS 비디오 파라미터 세트(Video Parameter Set)
VTM VVC 테스트 모델(VVC Test Model)
VUI 비디오 사용성 정보(Video Usability Information)
VVC 다목적 비디오 코딩(Versatile Video Coding)
3. 초기 논의
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H. 261과 H. 263을 작성했고, ISO/IEC는 MPEG-1과 MPEG-4 비쥬얼(Visual)을, 두 조직은 262/MPEG-2 비디오와 264/MPEG-4 어드밴스드 비디오 코딩(Advanced Video Coding)(AVC) 및 265/HEVC 표준을 공동으로 작성했다. H.262 이후, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 트랜스폼 코딩(transform coding)이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로, JVET에 의해 많은 새로운 방법들이 채택되었고, 공동 연구 모델 (JEM: Joint Exploration Model)이라고 명명된 레퍼런스 픽처소프트웨어(reference software)에 적용되었다. JVET 회의는 분기마다 한번 동시 개최되며, 새로운 코딩 표준은 HEVC 대비 비트레이트 50% 감소를 목표로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 공식적으로 다목적 비디오 코딩(Versatile Video Coding; VVC)로 명명되었으며, 당시 VVC 테스트 모델(VTM)의 제1 버전이 출시되었다. VVC 표준화에 기여하는 지속적인 노력이 있기 때문에 모든 JVET 회의에서 새로운 코딩 기술이 VVC 표준에 채택되고 있다. VVC 작업 드래프트와 테스트 모델 VTM은 모든 회의 후에 업데이트된다. VVC 프로젝트는 현재 2020년 7월 회의에서 기술 완료(FDIS)를 목표로 하고 있다.
3.1. GCI 신택스 및 시맨틱(syntax and semantic)
최신 VVC 초안 텍스트에서, GCI 신택스 및 시맨틱은 다음과 같다:
Figure pct00001
Figure pct00002
 
Figure pct00003
general_progressive_source_flag 및 general_interlaced_source_flag는 다음과 같이 해석된다:
- general_progressive_source_flag가 1이고 general_interlaced_source_flag가 0이면, OlsInScope에 있는 픽처의 소스 스캔 유형은 프로그레시브로(progressive)만 해석되어야 한다.
- 그렇지 않고, general_progressive_source_flag가 0이고 general_interlaced_source_flag가 1이면, OlsInScope에 있는 픽처의 소스 스캔 유형은 인터레이스로만 해석되어야 한다.
- 그렇지 않고, general_progressive_source_flag가 0이고 general_interlaced_source_flag가 0이면, OlsInScope에 있는 픽처의 소스 스캔 유형은 알지못함(unknown) 또는 특정안됨(unspecified)으로 해석되어야 한다.
- 그렇지 않은 경우(general_progressive_source_flag는 1이고 general_interlaced_source_flag는 1임), OlsInScope의 각 픽처의 소스 스캔 유형은 프레임 필드 정보(frame-field information) SEI 메시지에서 신택스 요소 source_scan_type을 사용하여 픽처 레벨에서 나타난다. general_progressive_source_flag가 1이고 general_interlaced_source_flag가 1일 때 프레임 필드 정보 SEI 메시지가 각 AU에 존재해야 하는 것은 비트스트림 적합성(bitstream conformance)의 요구 사항이다.
참고 1 - 디코더는 general_progressive_source_flag 및 general_interlaced_source_flag의 값을 무시할 수 있다. 또한, 픽처의 실제 소스 스캔 유형은 이 사양의 범위를 벗어나고 인코더가 general_progressive_source_flag 및 general_interlaced_source_flag의 값을 선택하는 방법은 지정되지 않는다.
1과 동일한 general_non_packed_constraint_flag는 OlsInScope의 비트스트림에 존재하는 프레임 패킹 배치(frame packing arrangement) SEI 메시지가 없어야 하는 것을 지정한다.
0과 동일한 general_non_packed_constraint_flag는 그러한 제약을 부과하지 않는다.
참고 2 - 디코더는 프레임 패킹 배치(frame packing arrangement) SEI 메시지의 존재 또는 해석과 연관된 디코딩 프로세스 요구 사항이 없기 때문에 general_non_packed_constraint_flag의 값을 무시할 수 있다.
1과 동일한 general_frame_only_constraint_flag는 OlsInScope가 프레임을 나타내는 픽처를 전달하는 것을 지정한다. 0과 동일한 general_frame_only_constraint_flag는 OlsInScope가 프레임을 나타내거나 나타내지 않을 수 있는 픽처를 전달하도록 지정한다.
참고 3 - 디코더는 이와 연관된 디코딩 프로세스 요구 사항이 없기 때문에 general_frame_only_constraint_flag의 값을 무시할 수 있다.
1과 동일한 general_non_projected_constraint_flag는 OlsInScope.general_non_projected_constraint_flag의 비트스트림에 존재하는 정방형 투영 SEI 메시지 또는 일반화된 큐브맵 투영 SEI 메시지가 없어야 하는 것을 지정한다. 0과 동일한 general_non_projected_constraint_flag는 이러한 제약을 부과하지 않는다.
참고 4-등방형 투영 SEI 메시지 및 일반화된 큐브맵 투영 SEI 메시지의 존재 또는 해석과 연관된 디코딩 프로세스 요구 사항이 없으므로, 디코더는 general_non_projected_constraint_flag의 값을 무시할 수 있다.
1과 동일한 intra_only_constraint_flag는 slice_type이 I와 동일해야 하는 것을 지정한다. 0과 동일한 intra_only_constraint_flag는 그러한 제약을 부과하지 않는다.
max_bitdepth_constraint_idc는 bit_depth_minus8이 0에서 max_bitdepth_constraint_idc을 포함하는 범위에 있어야 하는 것을 지정한다.
max_chroma_format_constraint_idc는 chroma_format_idc가 0에서 max_chroma_format_constraint_idc을 포함하는 범위에 있어야 하는 것을 지정한다.
1과 동일한 no_res_change_in_clvs_constraint_flag는 res_change_in_clvs_allowed_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_res_change_in_clvs_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 one_tile_per_pic_constraint_flag는 각 픽처가 하나의 타일만 포함해야 하는 것을 지정한다. 0과 동일한 one_tile_per_pic_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 one_slice_per_pic_constraint_flag는 각 픽처가 하나의 슬라이스만 포함해야 하는 것을 지정한다. 0과 동일한 one_slice_per_pic_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 one_subpic_per_pic_constraint_flag는 각 픽처가 하나의 서브픽처만을 포함해야 하는 것을 지정한다. 0과 동일한 one_subpic_per_pic_constraint_flag는 그러한 제약을 부과하지 않는다. one_slice_per_pic_constraint_flag가 1과 동일할 때, one_subpic_per_pic_constraint_flag의 값은 1과 동일해야 한다.
1과 동일한 no_qtbtt_dual_tree_intra_constraint_flag는 qtbtt_dual_tree_intra_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_qtbtt_dual_tree_intra_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_partition_constraints_override_constraint_flag는 partition_constraints_override_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_partition_constraints_override_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_sao_constraint_flag는 sps_sao_enabled_flag가 0과 같아야 함을 지정한다.
0과 동일한 no_sao_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_alf_constraint_flag는 sps_alf_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_alf_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_ccalf_constraint_flag는 sps_ccalf_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_ccalf_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_joint_cbcr_constraint_flag는 sps_joint_cbcr_enabled_flag 가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_joint_cbcr_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_ref_wraparound_constraint_flag는 sps_ref_wraparound_enabled_flag가 0과 동일해야 함을 지정한다. 0과 동일한 no_ref_wraparound_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_temporal_mvp_constraint_flag는 sps_temporal_mvp_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_temporal_mvp_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_sbtmvp_constraint_flag는 sps_sbtmvp_enabled_flag가 0과 동일해야 함을 지정한다.
0과 동일한 no_sbtmvp_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_amvr_constraint_flag는 sps_amvr_enabled_flag가 0과 동일해야 함을 지정한다. 0과 동일한 no_amvr_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_bdof_constraint_flag는 sps_bdof_enabled_flag가 0과 동일해야 함을 지정한다. 0과 동일한 no_bdof_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_dmvr_constraint_flag는 sps_dmvr_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_dmvr_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_cclm_constraint_flag는 sps_cclm_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_cclm_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_mts_constraint_flag는 sps_mts_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_mts_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_sbt_constraint_flag는 sps_sbt_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_sbt_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_affine_motion_constraint_flag는sps_affine_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_affine_motion_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_bcw_constraint_flag는 sps_bcw_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_bcw_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_ibc_constraint_flag는 sps_ibc_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_ibc_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_ciip_constraint_flag는 sps_ciip_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_ciip_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_fpel_mmvd_constraint_flag는 sps_fpel_mmvd_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_fpel_mmvd_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_gpm_constraint_flag는 sps_gpm_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_gpm_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_ladf_constraint_flag는 sps_ladf_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_ladf_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_transform_skip_constraint_flag는 sps_transfrom_skip_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_transform_skip_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_bdpcm_constraint_flag는 sps_bdpcm_enabled_flag가 0과 동일해야 하는 것을 지정한다. 0과 동일한 no_bdpcm_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_qp_delta_constraint_flag는 cu_qp_delta_enabled_flag가 0과 동일해야 하는 비트스트림 적합성의 요구사항임을 지정한다. 0과 동일한 no_qp_delta_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_dep_quant_constraint_flag는 sps_dep_quant_enabled_flag가 0과 동일해야 하는 비트스트림 적합성의 요구 사항을 지정한다. 0과 동일한 no_dep_quant_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_sign_data_hiding_constraint_flag는 sps_sign_data_hiding_enabled_flag가 0과 동일해야 하는 비트스트림 적합성의 요구사항임을 지정한다. 0과 동일한 no_sign_data_hiding_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_mixed_nalu_types_in_pic_constraint_flag는 mixed_nalu_types_in_pic_flag가 0과 동일해야 하는 비트스트림 적합성의 요구사항임을 지정한다. 0과 동일한 no_mixed_nalu_types_in_pic_constraint_flag는 이러한 제약을 부과하지 않는다.
1과 동일한 no_trail_constraint_flag는 OlsInScope에 존재하는 TRAIL_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 없음을 지정한다. 0과 동일한 no_trail_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_stsa_constraint_flag는 OlsInScope에 존재하는 STSA_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 존재하지 않아야 하는 것을 지정한다. 0과 동일한 no_stsa_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_rasl_constraint_flag는 OlsInScope에 존재하는 RASL_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 없음을 지정한다. 0과 동일한 no_rasl_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_radl_constraint_flag는 OlsInScope에 존재하는 RADL_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 없음을 지정한다. 0과 동일한 no_radl_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_idr_constraint_flag는 OlsInScope에 존재하는 IDR_W_RADL 또는 IDR_N_LP와 동일한 nuh_unit_type을 갖는 NAL 유닛이 존재하지 않아야 하는 것을 지정한다. 0과 동일한 no_idr_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_cra_constraint_flag는 OlsInScope에 존재하는 CRA_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 존재하지 않아야 하는 것을 지정한다. 0과 동일한 no_cra_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_gdr_constraint_flag는 OlsInScope에 존재하는 GDR_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 없음을 지정한다. 0과 동일한 no_gdr_constraint_flag는 그러한 제약을 부과하지 않는다.
1과 동일한 no_aps_constraint_flag는 OlsInScope에 존재하는 PREFIX_APS_NUT 또는 SUFFIX_APS_NUT와 동일한 nuh_unit_type을 갖는 NAL 유닛이 존재하지 않아야 하는 것을 지정한다. 0과 동일한 no_aps_constraint_flag는 그러한 제약을 부과하지 않는다.
gci_alignment_zero_bits는 0과 동일해야 한다.
num_reserved_constraint_bytes는 예약된 제약 바이트 수를 지정한다. num_reserved_constraint_bytes의 값은 0이어야 한다. num_reserved_constraint_bytes의 다른 값은 ITU-T| ISO/IEC에서 향후 사용을 위해 예약되어 있고 이 사양의 이 버전을 준수하는 비트스트림에 존재하지 않아야 한다.
gci_reserved_constraint_byte [i]는 임의의 값을 가질 수 있다. 그것의 존재와 가치는 이 사양의 이 버전에 지정된 프로파일에 대한 디코더 적합성에 영향을 미치지 않는다. 이 사양의 이 버전을 따르는 디코더는 모든 gci_reserved_constraint_byte [i] 신택스 요소의 값을 무시해야 한다.
3.2. SPS 신택스 및 시맨틱
최신 VVC 초안 텍스트에서 SPS 신택스 및 시맨틱은 다음과 같다:
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
Figure pct00008
Figure pct00009
Figure pct00010
Figure pct00011
Figure pct00012
Figure pct00013
SPS RBSP는 참조되기 전에 디코딩 프로세스에서 사용할 수 있어야 하고, TemporalId가 0인 적어도 하나의 AU에 포함되거나 외부 수단을 통해 제공된다.
CVS에서 sps_seq_parameter_set_id의 특정 값을 가진 모든 SPS NAL 유닛은 동일한 컨텐츠를 가져야 한다.
sps_seq_parameter_set_id는 다른 신택스 요소가 참조할 수 있도록 APS에 대한 식별자(identifier)를 제공한다.
SPS NAL 유닛은 nuh_layer_id 값에 관계없이 sps_seq_parameter_set_id의 동일한 값 공간을 공유한다.
spsLayerId를 특정 SPS NAL 유닛의 nuh_layer_id 값이라고 하고, vclLayerId를 특정 VCL NAL 유닛의 nuh_layer_id 값이라고 하자. 특정 VCL NAL 유닛은 spsLayerId가 vclLayerId보다 작거나 같고 spsLayerId와 동일한 nuh_layer_id를 갖는 계층이 vclLayerId와 동일한 nuh_layer_id를 갖는 계층을 포함하는 적어도 하나의 OLS에 포함되지 않는 한 특정 SPS NAL 유닛을 참조하지 않아야 한다.
sps_video_parameter_set_id는 0보다 클 때 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 값 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에 존재할 수 있음을 지정한다. 0과 동일한 sps_ptl_dpb_hrd_params_present_flag는 이러한 4가지 신택스 구조 중 어느 것도 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과 동일한 separator_colour_plane_flag는 4의 세 가지 컬러 컴포넌트를 지정한다. 4: 4개의 크로마 형식은 별도로 코딩된다. 0과 동일한 separate_colour_plane_flag는 컬러 컴포넌트가 별도로 코딩되지 않음을 지정한다. Separate_colour_plane_flag가 존재하지 않는 경우, 0과 동일한 것으로 유추된다. Separate_colour_plane_flag가 1과 동일할 때, 코딩된 픽처는 3개의 개별 컴포넌트로 구성되며, 각각은 하나의 컬러 평면(Y, Cb 또는 Cr)의 코딩된 샘플로 구성되고 모노크롬 코딩 신택스를 사용한다. 이 경우, 각 컬러 평면은 특정 color_plane_id 값과 연결된다.
참고 1 - 다른 color_plane_id 값을 갖는 컬러 평면 사이의 디코딩 프로세스에는 종속성이 없다. 예를 들어, 하나의 color_plane_id 값을 갖는 모노크롬 픽처의 디코딩 프로세스는 인터 예측을 위해 color_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에서 적합성 크로핑 윈도우 오프셋 파라미터(conformance cropping window offset parameter)가 다음에 따른다는 것을 나타낸다. 0과 동일한 sps_conformance_window_flag는 적합성 크로핑 윈도우 오프셋 파라미터가 존재하지 않음을 나타낸다.
sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 및 sps_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와 동일한 픽처에 적용되는 크로핑 윈도우(cropping window)를 지정한다.
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 to pic_width_max_in_luma_samples- (SubWidthC*sps_conf_win_right_offset+1) 및 vertical picture coordinates from SubHeightC*sps_conf_win_top_offset to pic_height_max_in_luma_samples- (SubHeightC*sps_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 plus 5는 각 CTU의 루마 코딩 트리 블록 크기를 명시한다. sps_log2_ctu_size_minus5의 값은 0에서 2까지를 포함하는 범위에 있어야 한다. sps_log2_ctu_size_minus5의 값 3은 ITU-T| ISO/IEC에서 나중에 사용하도록 예약되어 있다.
변수 CtbLog2SizeY 및 CtbSizeY는 다음과 같이 유도된다:
CtbLog2SizeY = sps_log2_ctu_size_minus5+5 (43)
CtbSizeY = 1<<CtbLog2SizeY (44)
1과 동일한 subpic_info_present_flag는 CLVS에 대한 서브픽처 정보가 존재하고 CLVS의 각 픽처에 하나 이상의 서브픽처가 있을 수 있음을 지정한다. 0과 동일한 subpic_info_present_flag는 서브픽처 정보가 CLVS에 대해 존재하지 않고 CLVS의 각 픽처에 오직 하나의 서브픽처가 있다는 것을 지정한다.
res_change_in_clvs_allowed_flag가 1과 동일할 때, subpic_info_present_flag의 값은 0과 동일해야 한다.
참고 3 - 비트 스트림이 서브 비트 스트림 추출 프로세스의 결과이고 서브 비트 스트림 추출 프로세스에 대한 입력 비트 스트림의 서브픽처의 서브세트 만 포함하는 경우, SPS의 RBSP에서 subpic_info_present_flag의 값을 1로 설정해야 할 수도 있다.
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]는 CtbSizeY 유닛으로 i번째 서브픽처의 좌측 상단 CTU의 수평 위치를 지정한다. 신택스 요소의 길이는 Ceil (Log2 ( (pic_width_max_in_luma_samples+CtbSizeY-1) >>CtbLog2SizeY) ) 비트이다. 존재하지 않는 경우, subpic_ctu_top_left_x [i]의 값은 0과 동일한 것으로 유추된다.
subpic_ctu_top_left_y [i]는 CtbSizeY 유닛으로 i번째 서브픽처의 좌측 상단 CTU의 수직 위치를 지정한다. 신택스 요소의 길이는 Ceil (Log2 ( (pic_height_max_in_luma_samples+CtbSizeY-1) >>CtbLog2SizeY) ) 비트이다. 존재하지 않는 경우, subpic_ctu_top_left_y [i]의 값은 0과 동일한 것으로 유추된다.
subpic_width_minus1 [i] 더하기 1은 CtbSizeY 유닛으로 i번째 서브픽처의 너비를 지정한다. 신택스 요소의 길이는 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_le ft_x [i] -1과 동일한 것으로 유추된다.
subpic_height_minus1 [i] 더하기 1은 CtbSizeY 유닛으로 i번째 서브픽처의 높이를 지정한다. 신택스 요소의 길이는 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_l eft_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의 각 출력 계층과 레퍼런스 계(reference layer)층에 대해 참이어야 하는 비트스트림 적합성의 요구 사항이다:
- 출력 계층과 그 레퍼런스 계층의 모든 픽처는 pic_width_in_luma_samples의 동일한 값과 pic_height_in_luma_samples의 동일한 값을 가져야 한다.
- 출력 계층과 그 레퍼런스 계층이 참조하는 모든 SPS는, 0에서 sps_num_subpics_minus1을 포함하는 범위에 있는 j의 각 값에 대해, sps_num_subpics_minus1의 동일한 값을 가져야 하고 subpic_ctu_top_left_x[j], subpic_ctu_top_left_y[j], subpic_width_minus1[j], subpic_flag_minus1[j], subpic_height_cross1[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는 CLVS의 코딩된 픽처에 의해 참조되는 PPS 또는 SPS에서 서브픽처 ID 매핑이 명시적으로 시그널링되는 것을 지정한다. 0과 동일한 subpic_id_mapping_explicitly_signalled_flag는 CLVS에 대해 서브픽처 ID 매핑이 명시적으로 시그널링되지 않음을 지정한다. 존재하지 않는 경우, subpic_id_mapping_explicitly_signalled_flag의 값은 0과 동일한 것으로 유추된다.
subpic_id_mapping_in_sps_flag가 1인 경우, subpic_id_mapping_explicitly_signalled_flag가 1과 동일할 때, 서브픽처 ID 매핑이 SPS에서 시그널링됨을 지정한다. subpic_id_mapping_in_sps_flag이 0과 동일한 경우, 서브픽처 ID 매핑(subpicture ID mapping)이 when subpic_id_mapping_explicitly_signalled_flag이 1과 동일할 때, PPS에서 CLVS의 코딩된 픽처시그널링되는 것을 지정한다.
sps_subpic_id[i]는 i번째 서브픽처의 서브픽처 ID를 지정한다. sps_subpic_id[i] 신택스 요소의 길이는 sps_subpic_id_len_minus1+1 비트이다.
bit_depth_minus8은 다음과 같이 루마 및 크로마 어레이 샘플의 비트 깊이 BitDepth와 루마 및 크로마 양자화 파라미터 범위 오프셋 QpBdOffset의 값을 지정한다:
BitDepth = 8 + bit_depth_minus8 (45)
QpBdOffset = 6 *bit_depth_minus8 (46)
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 행에 대한 진입점 오프셋(entry point offset)에 대한 시그널링이 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의 값을 다음과 같이 지정한다:
MaxPicOrderCntLsb=2 (log2_max_pic_order_cnt_lsb_minus4 + 4) (47)
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는 CLVS에서 코딩된 픽처의 인터 예측에 LTRP가 사용되지 않음을 지정한다. 1과 동일한 long_term_ref_pics_flag는 LTRP가 CLVS에서 하나 이상의 코딩된 픽처의 인터 예측에 사용될 수 있음을 지정한다.
0과 동일한 inter_layer_ref_pics_present_flag는 CLVS에서 코딩된 픽처의 인터 예측에 ILRP가 사용되지 않음을 지정한다. 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과 동일해야 한다. [편집(Ed.)(YK) :이 신택스 요소에 더 나은 이름이 있는지 확인하라. ]
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 사이의 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과 같음)에 대해, 디코더는 현재 픽처의 슬라이스 헤더에서 직접 시그널링되는 하나의 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조가 있을 수 있기 때문에, 총 num_ref_pic_lists_in_sps [i] +1 ref_pic_list_struct(listIdx, rplsIdx) 신택스 구조에 대해 메모리를 할당해야 한다
1과 동일한 qtbtt_dual_tree_intra_flag는, I 슬라이스에 대해, 각 CTU가 암시적 쿼드트리 분할을 사용하여 64x64 루마 샘플을 갖는 코딩 유닛으로 분할되고, 이러한 코딩 유닛이 루마 및 크로마에 대한 2개의 개별 coding_tree 신택스 구조의 루트임을 지정한다. 0과 동일한 qtbtt_dual_tree_intra_flag는 I 슬라이스에 대해 별도의 coding_tree 신택스 구조가 사용되지 않음을 지정한다. qtbtt_dual_tree_intra_flag가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
log2_min_luma_coding_block_size_minus2 plus 2는 최소 루마 코딩 블록 크기를 명시한다. log2_min_luma_coding_block_size_minus2의 값 범위는 0에서 Min(4, sps_log2_ctu_size_minus5+3)까지를 포함하는 범위에 있어야 한다.
변수 MinCbLog2SizeY, MinCbSizeY, IbcBufWidthY, IbcBufWidthC 및 Vsize는 다음과 같이 유도된다:
MinCbLog2SizeY = log2_min_luma_coding_block_size_minus2+2 (48)
MinCbSizeY = 1<<MinCbLog2SizeY (49)
IbcBufWidthY = 256*128/CtbSizeY (50)
IbcBufWidthC = IbcBufWidthY/SubWidthC (51)
VSize = Min (64, CtbSizeY) (52)
MinCbSizeY의 값은 VSize보다 작거나 동일해야 한다.
각 크로마 CTB에 대한 어레이의 너비와 높이를 각각 지정하는 변수 CtbWidthC 및 CtbHeightC는 다음과 같이 유도된다:
- chroma_format_idc가 0(흑백)과 같거나 separator_colour_plane_flag가 1인 경우, CtbWidthC 및 CtbHeightC는 모두 0이다.
- 그렇지 않으면, CtbWidthC 및 CtbHeightC는 다음과 같이 유도된다:
CtbWidthC = CtbSizeY /SubWidthC (53)
CtbHeightC = CtbSizeY / SubHeightC (54)
0에서 4까지 범위의 log2BlockWidth 및 0에서 4까지 범위의 log2BlockHeight에 대해, 6.5.2절에 지정된 대로 오른쪽 위 대각선 스캔 순서 어레이 초기화 프로세스는 1<<log2BlockWidth 및 1<<log2BlockHeight를 입력으로 호출되고, 출력은 DiagScanOrder [log2BlockWidth] [log2BlockHeight] 에 할당된다.
0에서 6까지 범위의 log2BlockWidth 및 0에서 6까지 범위의 log2BlockHeight에 대해 6.5.3절에 지정된 수평 및 수직 횡단 스캔 순서 어레이 초기화 프로세스는 1<<log2BlockWidth 및 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의 쿼드트리 분할(quadtree splitting)로 인한 루마 리프 블록의 루마 샘플에서 최소 크기의 밑이 2인 로그와 slice_type이 있는 슬라이스의 루마 CU에 대한 루마 샘플의 최소 코딩 블록 크기의 밑이 2인 로그 사이의 디폴트 차이(default difference)가 SPS를 나타내는 2(I)와 동일하다는 것을 지정한다. partition_constraints_override_enabled_flag가 1과 동일할 때, 디폴트 차이는 SPS를 참조하는 PH에 있는 ph_log2_diff_min_qt_min_cb_luma에 의해 무시될 수 있다. sps_log2_diff_min_qt_min_cb_intra_slice_luma의 값은 0에서 CtbLog2SizeY-MinCbLog2SizeY까지를 포함하는 범위에 있어야 한다. CTU의 쿼드트리 분할로 인한 루마 리프 블록의 루마 샘플에서 최소 크기의 밑이 2인 로그는 다음과 같이 유도된다:
MinQtLog2SizeIntraY = sps_log2_diff_min_qt_min_cb_intra_slice_luma +MinCbLog2SizeY (55)
sps_max_mtt_hierarchy_depth_intra_slice_luma는, SPS를 참조하는 slice_type이 2(I)인 슬라이스에서 쿼드트리 리프(quadtree leaf)의 다중 유형 트리 분할로 인한 코딩 유닛에 대한 디폴트 최대 계층구조 깊이(default maximum hierarchy depth)를 지정한다. partition_constraints_override_enabled_flag가 1과 동일할 때, 디폴트 최대 계층구조 깊이는 SPS를 참조하는 PH에 있는 ph_max_mtt_hierarchy_depth_intra_slice_luma에 의해 무시될 수 있다. sps_max_mtt_hierarchy_depth_intra_slice_luma의 값은 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에 있는 ph_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는 삼진 분할(ternary split)을 사용하여 분할할 수 있는 루마 코딩 블록의 루마 샘플에서 최대 크기(폭 또는 높이)의 밑이 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를 참조하는 slice_type이 0(B) 또는 1(P)인 슬라이스의 루마 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인 로그는 다음과 같이 유도된다:
MinQtLog2SizeInterY = sps_log2_diff_min_qt_min_cb_inter_slice + MinCbLog2SizeY (56)
sps_max_mtt_hierarchy_depth_inter_slice는 SPS를 참조하는 slice_type이 0(B) 또는 1(P)인 슬라이스에서 쿼드트리 리프의 다중 유형 트리 분할로 인한 코딩 유닛에 대한 디폴트 최대 계층구조 깊이를 지정한다. 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를 참조하는 slice_type이 0(B) 또는 1(P)인 슬라이스에서 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를 참조하는 slice_type이 0(B) 또는 1(P)인 슬라이스에서 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인 로그는 다음과 같이 유도된다:
MinQtLog2SizeIntraC = sps_log2_diff_min_qt_min_cb_intra_slice_chroma +MinCbLog2SizeY (57)
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)인 슬라이스에서 treeType이 DUAL_TREE_CHROMA인 크로마 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)인 슬라이스에서 treeType이 DUAL_TREE_CHROMA인 크로마 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는 다음과 같이 유도된다:
MinTbLog2SizeY = 2(58)
MaxTbLog2SizeY = sps_max_luma_transform_size_64_flag? 6: 5 (59)
MinTbSizeY = 1<<MinTbLog2SizeY (60)
MaxTbSizeY = 1<<MaxTbLog2SizeY (61)
0과 동일한 sps_joint_cbcr_enabled_flag는 크로마 잔차의 결합 코딩이 비활성화됨을 지정한다. 1과 동일한 sps_joint_cbcr_enabled_flag는 크로마 잔차의 결합 코딩이 활성화됨을 지정한다. 존재하지 않는 경우, sps_joint_cbcr_enabled_flag의 값은 0과 동일한 것으로 유추된다.
1과 동일한 same_qp_table_for_chroma는 하나의 크로마 QP 매핑 테이블만 시그널링되고 이 테이블은 sps_joint_cbcr_enabled_flag가 1과 동일한 경우, Cb 및 Cr 잔차 및 조인트 Cb-Cr 잔차에 적용됨을 지정한다. 0과 동일한 same_qp_table_for_chroma는 크로마 QP 매핑 테이블, 2 sps_joint_cbcr_enabled_flag가 1과 동일할 때, Cb 및 Cr에 대해 그리고 조인트 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[0]이 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1[0]의 값은 0과 동일한 것으로 유추된다.
delta_qp_in_val_minus1[i][j]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 입력 좌표를 유도하는데 사용되는 델타 값을 지정한다. delta_qp_in_val_minus1[0][j]가 비트스트림에 존재하지 않을 때, delta_qp_in_val_minus1[0][j]의 값은 0과 동일한 것으로 유추된다.
delta_qp_diff_val[i][j]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 출력 좌표를 유도하는데 사용되는 델타 값을 지정한다.
i = 0.. numQpTables-1에 대한 i번째 크로마 QP 매핑 테이블 ChromaQpTable[i]은 다음과 같이 유도된다:
Figure pct00014
Figure pct00015
same_qp_table_for_chroma가 1일 때, ChromaQpTable[1][k] 및 ChromaQpTable[2][k]는 -QpBdOffset에서 63까지를 포함하는 범위에서 k에 대해 ChromaQpTable[0][k]와 동일하게 설정된다.
qpInVal [i] [j] 및 qpOutVal [i] [j]의 값은, i에 대해서는 0에서 numQpTables-1까지를 포함하는 범위이고, j에 대해서는 0에서 num_points_in_qp_table_minus1 [i] +1까지를 포함하는 범위에서, -QpBdOffset에서 63까지의 범위에 있어야 하는 것은 비트스트림 적합성의 요구 사항이다.
1과 동일한 sps_sao_enabled_flag는 샘플 적응형 오프셋 프로세스가 디블록킹 필터 프로세스 후에 재구성된 픽처에 적용되는 것을 지정한다. 0과 동일한 sps_sao_enabled_flag는 샘플 적응형 오프셋 프로세스가 디블록킹 필터 프로세스 후에 재구성된 픽처에 적용되지 않음을 지정한다.
sps_alf_enabled_flag가 0이면 적응형 루프 필터가 비활성화됨을 지정한다. sps_alf_enabled_flag가 1이면 적응형 루프 필터가 활성화됨을 지정한다.
sps_ccalf_enabled_flag가 0이면 크로스 컴포넌트 적응형 루프 필터가 비활성화됨을 지정한다. sps_ccalf_enabled_flag가 1이면 크로스 컴포넌트 적응형 루프 필터가 활성화될 수 있음을 지정한다.
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는 수평 랩-어라운드(wrap-around) 모션 보상이 인터 예측에 적용됨을 지정한다. 0과 동일한 sps_ref_wraparound_enabled_flag는 수평 랩-어라운드 모션 보상이 적용되지 않음을 지정한다. (CtbSizeY /MinCbSizeY + 1)의 값이 (pic_width_in_luma_samples /MinCbSizeY -1)보다 클 때, du기서 pic_width_in_luma_samples는 SPS를 참조하는 모든 PPS의 pic_width_in_luma_samples 값이고 sps_ref_wraparound_enabled_flag 값은 0과 동일해야 한다.
[편집(Ed.)(YK): 여기서 시맨틱은 여전히 PPS 신택스 요소에 따라 다르다. ]
1과 동일한 sps_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측자가 CLVS에서 사용될 수 있음을 지정한다. 0과 동일한 sps_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측자(temporal motion vector predictor)가 CLVS에서 사용되지 않음을 지정한다.
sps_sbtmvp_enabled_flag = 1은 CVS에서 slice_type이 I와 같지 않은 모든 슬라이스를 갖는 픽처의 디코딩에 서브 블록 기반 시간적 모션 벡터 예측자가 사용될 수 있음을 지정한다. sps_sbtmvp_enabled_flag = 0은 CVS에서 서브 블록 기반 시간적 모션 벡터 예측자가 사용되지 않도록 지정한다. 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는 양방향 예측 기반 디코더 모션 벡터 정제가 활성화됨을 지정한다. 0과 동일한 sps_dmvr_enabled_flag는 인터 쌍 예측에 기반한 디코더 모션 벡터 정제가 비활성화됨을 지정한다.
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는 모션 벡터 차이가 있는 병합 모드가 활성화됨을 지정한다. 0과 동일한 sps_mmvd_enabled_flag는 모션 벡터 차이가 있는 병합 모드가 비활성화됨을 지정한다.
sps_isp_enabled_flag가 1이면 서브 파티션이 있는 인트라 예측이 활성화됨을 지정한다. sps_isp_enabled_flag가 0이면 서브 파티션이 있는 인트라 예측이 비활성화됨을 지정한다.
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_sbtmvp_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) 후보의 최대 수를 지정한다. Six_minus_max_num_merge_cand의 값은 0에서 5까지를 포함하는 범위에 있어야 한다.
병합 MVP 후보의 최대 수인 MaxNumMergeCand는 다음과 같이 유도된다:
MaxNumMergeCand = 6 -six_minus_max_num_merge_cand(63)
0과 동일한 sps_sbt_enabled_flag는 상호 예측된 CU에 대한 서브블록 트랜스폼이 비활성화됨을 지정한다. 1과 동일한 sps_sbt_enabled_flag는 상호 예측된 CU에 대한 서브블록 트랜스폼이 활성화됨을 지정한다.
sps_affine_enabled_flag는 아핀 모델 기반 모션 보상이 인터 예측에 사용될 수 있는지 여부를 지정한다. sps_affine_enabled_flag가 0과 같으면, CLVS에서 아핀 모델 기반 모션 보상이 사용되지 않고 CLVS의 코딩 유닛 신택스에 inter_affine_flag 및 cu_affine_type_flag가 존재하지 않도록 신택스가 제한된다. 그렇지 않으면(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과 같으면, 신택스는 CLVS에서 6-파라미터 아핀 모델 기반 모션 보상이 사용되지 않고 CLVS의 코딩 유닛 신택스에 cu_affine_type_flag가 존재하지 않도록 제한되어야 한다. 그렇지 않으면(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_sbtmvp_enabled_flag가 없으면, 0과 동일한 것으로 유추된다.
1과 동일한 sps_act_enabled_flag는 적응형 컬러 트랜스폼이 사용될 수 있고 cu_act_enabled_flag가 코딩 유닛 신택스에 존재할 수 있음을 지정한다. 0과 동일한 sps_act_enabled_flag는 적응형 컬러 트랜스폼이 사용되지 않고 cu_act_enabled_flag가 코딩 유닛 신택스에 존재하지 않음을 지정한다. sps_sbtmvp_enabled_flag가 없으면, 0과동일한 것으로 유추된다.
min_qp_prime_ts_minus4는 다음과 같이 트랜스폼 스킵 모드에 대해 허용되는 최소 양자화 파라미터를 지정한다:
QpPrimeTsMin = 4 + min_qp_prime_ts_minus4 (64)
min_qp_prime_ts_minus4의 값은 0에서 48까지를 포함하는 범위에 있어야 한다.
sps_bcw_enabled_flag는 CU 가중치를 사용한 이중 예측을 인터 예측에 사용할 수 있는지 여부를 지정한다. sps_bcw_enabled_flag가 0과 같으면, CLVS에서 CU 가중치를 사용한 양방향 예측이 사용되지 않고 bcw_idx가 CLVS의 코딩 유닛 신택스에 존재하지 않도록 신택스가 제한된다. 그렇지 않으면(sps_bcw_enabled_flag가 1과 동일함) CLVS에서 CU 가중치를 사용한 이중 예측을 사용할 수 있다.
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) 후보의 최대 수를 지정한다. six_minus_max_num_ibc_merge_cand의 값은 0에서 5까지를 포함하는 범위에 있어야 한다.
IBC 병합 BVP 후보의 최대 수인 MaxNumIbcMergeCand는 다음과 같이 유도된다:
Figure pct00016
sps_ciip_enabled_flag는 ciip_flag가 인터 코딩 유닛에 대한 코딩 유닛 신택스에 존재할 수 있음을 지정한다. 0과 동일한 sps_ciip_enabled_flag는 ciip_flag가 인터 코딩 유닛에 대한 코딩 유닛 신택스에 존재하지 않음을 지정한다.
1과 동일한 sps_fpel_mmvd_enabled_flag는 모션 벡터 차이가 있는 병합 모드가 정수 샘플 정밀도를 사용하고 있음을 지정한다. sps_fpel_mmvd_enabled_flag가 0이면 모션 벡터 차이가 있는 병합 모드가 분수 샘플 정밀도를 사용할 수 있음을 지정한다.
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에서 지원되는 기하학적 파티셔닝 병합 모드 후보의 최대 수를 지정한다.
기하학적 파티셔닝 병합 모드 후보의 최대 수인 MaxNumGpmMergeCand는 다음과 같이 유도된다:
Figure pct00017
MaxNumGpmMergeCand의 값은 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]은 다음과 같이 유도된다:
Figure pct00018
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는 다음과 같이 유도된다:
Log2ParMrgLevel = log2_parallel_merge_level_minus2+2 (68)
1과 동일한 sps_scaling_list_enabled_flag는 트랜스폼 계수에 대한 스케일링 프로세스에 스케일링 목록이 사용됨을 지정한다. sps_scaling_list_enabled_flag가 0이면 트랜스폼 계수에 대한 스케일링 프로세스에 스케일링 목록이 사용되지 않음을 지정한다.
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_sbtmvp_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]는 8로 나눈 루마 샘플 유닛으로 i번째 수직 가상 경계의 위치를 지정한다. sps_virtual_boundaries_pos_x [i]의 값은 1에서 Ceil(pic_width_in_luma_samplesχ8) -1을 포함하는 범위에 있어야 한다. [편집(Ed.)(VD) : pic_width_in_luma_samples는 SPS가 아니라 PPS에 있다. ]
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]는 8로 나눈 루마 샘플 유닛으로 i번째 수평 가상 경계의 위치를 지정한다. sps_virtual_boundaries_pos_y [i]의 값은 1에서 Ceil(pic_height_in_luma_samplesχ8) -1을 포함하는 범위에 있어야 한다. [편집(Ed.)(VD) : pic_height_in_luma_samples는 SPS가 아니라 PPS에 있다. ]
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의 신택스 구조 ols_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와 동일한 TemporalId를 갖는 서브계층 표현에 대한 것과 동일한 것으로 유추된다. 여기에는 fixed_pic_rate_general_flag [i] 신택스 요소에서 시작하여 ols_hrd_parameters 신택스 구조의 "if (general_vcl_hrd_params_present_flag)" 조건 바로 아래의 sublayer_hrd_parameters(i) 신택스 구조까지의 HRD 파라미터가 포함된다.
field_seq_flag가 1이면 CLVS가 필드를 나타내는 픽처를 전달한다는 것을 나타낸다. 0과 동일한 field_seq_flag는 CLVS가 프레임을 나타내는 픽처를 전달함을 나타낸다. general_frame_only_constraint_flag가 1과 동일할 때, field_seq_flag의 값은 0과 동일해야 한다.
field_seq_flag가 1과 동일할 때, CLVS의 모든 코딩된 픽처에 대해 프레임 필드 정보 SEI 메시지가 있어야 한다.
참고 5-지정된 디코딩 프로세스는 필드 또는 프레임을 다르게 표현하는 픽처를 취급하지 않는다. 따라서 필드를 나타내는 일련의 픽처는 개별 필드의 픽처 차원(picture dimension)으로 코딩된다. 예를 들어, 1080i 필드를 나타내는 픽처는 일반적으로 1920x540의 잘린 출력 크기를 갖으며, 시퀀스 픽처 속도(sequence picture rate)는 일반적으로 소스 프레임 속도(일반적으로 25~30Hz) 대신 소스 필드의 속도(일반적으로 50~60Hz)를 나타낸다.
1과 동일한 vui_parameters_present_flag는 신택스 구조 vui_parameters()가 SPS RBSP 신택스 구조에 존재하는 것을 지정한다.
0과 동일한 vui_parameters_present_flag는 신택스 구조 vui_parameters()가 SPS RBSP 신택스 구조에 존재하지 않음을 지정한다.
0과 동일한 aps_extension_flag는 APS RBSP 신택스 구조에 aps_extension_data_flag 신택스 요소가 존재하지 않음을 지정한다. 1과 동일한 aps_extension_flag는 APS RBSP 신택스 구조에 존재하는 aps_extension_data_flag 신택스 요소가 있음을 지정한다.
sps_extension_data_flag에는 모든 값이 있을 수 있다. 그것의 존재와 가치는 이 사양의 이 버전에 지정된 프로파일에 대한 디코더 적합성에 영향을 미치지 않는다. 이 사양의 이 버전을 따르는 디코더는 모든 aps_extension_data_flag 신택스 요소를 무시해야 한다.
3.3. PPS 신택스 및 시맨틱
최신 VVC 초안 텍스트에서 PPS 신택스 및 시맨틱은 다음과 같다:
Figure pct00019
Figure pct00020
Figure pct00021
Figure pct00022
Figure pct00023
Figure pct00024
PPS RBSP는 참조되기 전에 디코딩 프로세스에서 사용할 수 있어야 하며, TemporalId가 PPS NAL 유닛의 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 유닛의 nuh_layer_id의 값이라고 하고, vclLayerId를 특정 VCL NAL 유닛의 nuh_layer_id의 값이라고 하자. 특정 VCL NAL 유닛은 ppsLayerId가 vclLayerId보다 작거나 같고 ppsLayerId와 동일한 nuh_layer_id를 갖는 계층이 vclLayerId와 동일한 nuh_layer_id를 갖는 계층을 포함하는 적어도 하나의 OLS에 포함되지 않는 한 특정 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과 동일해야 한다.
IDR_W_RADL에서 CRA_NUT까지의 범위에서 nal_unit_type 값이 nalUnitTypeA인 각 슬라이스에 대해, nal_unit_type의 다른 값을 갖는 하나 이상의 슬라이스를 또한 포함하는 픽처 picA에서(즉, 픽처 picA에 대한 mixed_nalu_types_in_pic_flag의 값은 1과 동일함), 다음이 적용된다:
- 슬라이스는 대응하는 subpic_treated_as_pic_flag[i]의 값이 1과 동일한 서브픽처 subpicA에 속해야 한다.
- 슬라이스는 nal_unit_type이 nalUnitTypeA와 같지 않은 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 변수는 다음과 같이 유도된다:
PicWidthInCtbsY = Ceil (pic_width_in_luma_samplesχCtbSizeY) (69)
PicHeightInCtbsY = 천장 (pic_height_in_luma_samplesχCtbSizeY) (70)
PicSizeInCtbsY = PicWidthInCtbsY*PicHeightInCtbsY (71)
PicWidthInMinCbsY = pic_width_in_luma_samples/MinCbSizeY (72)
PicHeightInMinCbsY = pic_height_in_luma_samples/MinCbSizeY (73)
PicSizeInMinCbsY = PicWidthInMinCbsY*PicHeightInMinCbsY (74)
PicSizeInSamplesY = pic_width_in_luma_samples*pic_height_in_luma_samples (75)
PicWidthInSamplesC = pic_width_in_luma_samples/SubWidthC (76)
PicHeightInSamplesC = pic_height_in_luma_samples/SubHeightC (77)
1과 동일한psps_conformance_window_flag는 PPS에서 적합성 크로핑 윈도우 오프셋 파라미터(conformance cropping window offset parameter)가 다음에 따른다는 것을 나타낸다.
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_에서 수직 픽처 좌표가 있는 루마 샘플이 포함되어 있다.
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_samples.in_lum보다 작아야 한다.
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 및 pps_offtom,_pps_win,_pps_win_set_offset, pps_conf_win의 동일한 값을 갖는 것이 비트스트림 적합성의 요구사항이다.
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_bottom_offset, sps_conf_win_right_offset, sps_conf_win_right_offset, sps_conf_win_right_offset, sps_conf_win_win_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의 값은 각각 pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_right_offset, pps_conf_win과 동일한 것으로 유추된다.
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 변수는 다음과 같이 유도된다:
Figure pct00025
Figure pct00026
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 값에 대해, 다음과 같이 유도된다:
Figure pct00027
다음 제약 조건이 모두 적용되는 것은 비트스트림 적합성의 요구 사항이다:
- 0에서 sps_num_subpics_minus1까지를 포함하는 범위에 있는 i 및 j의 두 가지 다른 값에 대해, SubpicIdVal [i]는 SubpicIdVal [j]와 동일하지 않는다.
- 현재 픽처가 CLVS의 제1 픽처가 아닐 때, 0부터 sps_num_subpics_minus1까지를 포함하는 범위의 i의 각 값에 대해, SubpicIdVal[i]의 값이 동일한 계층에서 디코딩 순서로 이전 픽처의 SubpicIdVal[i]의 값과 같지 않는다면, 서브픽처 인덱스 i를 갖는 현재 픽처의 서브픽처의 모든 코딩된 슬라이스 NAL 유닛에 대한 nal_unit_type은 IDR_W_RADL에서 CRA_NUT까지를 포함하는 범위에 있는 특정 값과 동일해야 한다.
1과 동일한 no_pic_partition_flag는 PPS를 참조하는 각 픽처에 픽처 파티셔닝이 적용되지 않음을 지정한다.
0과 동일한 no_pic_partition_flag는 PPS를 참조하는 각 픽처가 하나 이상의 타일 또는 슬라이스로 파티셔닝될 수 있음을 지정한다.
no_pic_partition_flag의 값이 CLVS 내의 코딩된 픽처에 의해 참조되는 모든 PPS에 대해 동일해야 하는 것은 비트스트림 적합성의 요구사항이다.
sps_num_subpics_minus1 + 1의 값이 1보다 클 때 no_pic_partition_flag의 값이 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_tile_rows_minus1의 값은 0과 동일한 것으로 유추된다.
tile_column_width_minus1 [i] 더하기 1은 0에서 num_exp_tile_columns_minus1까지를 포함하는 범위의 i에 대한 CTB 유닛으로 i번째 타일 열의 너비를 지정한다. 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에 대한 CTB 유닛으로 i번째 타일 행의 높이를 지정한다. 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까지를 포함하는의 범위에 있어야 하고, 여기서 MaxSlicesPerPicture는 부록 A에 지정되어 있다. 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의 값에 의해 표시된 순서로 지정된다는 것을 지정한다. slice_width_in_tiles_minus1 [i] 더하기 1은 타일 열 유닛으로 i번째 직사각형 슬라이스의 너비를 지정한다.
slice_width_in_tiles_minus1 [i]의 값은 0에서 NumTileColumns -1까지를 포함하는 범위에 있어야 한다. i가 num_slices_in_pic_minus1보다 작고 NumTileColumns가 1과 동일할 때, slice_width_in_tiles_minus1[i]의 값은 0과 동일한 것으로 유추된다.
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가 slice_hemin_in_in_hemin_us의 값과 동일할 때, 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보다 크면, 변수 NumSlicesInTile [i] 및 0에서 NumSlicesInTile [i] -1까지의 범위의 k에 대한 SliceHeightInCtusMinus1 [i + k]는 다음과 같이 유도된다:
Figure pct00028
Figure pct00029
tile_idx_delta [i]는 i번째 직사각형 슬라이스에서 제1 타일의 타일 인덱스와 (i + 1) 번째 직사각형 슬라이스에서 제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_slice_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_minus26plus 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 및 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_gp_offset_fla에 코딩 유닛이 존재하지 않고 신택스가 존재하지 않음을 지정한다. 존재하지 않을 때, pps_cu_chroma_qp_offset_list_enabled_flag의 값은 0과 동일한 것으로 유추된다.
chroma_qp_offset_list_len_minus1 더하기 1은 PPS 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를 참조하는 픽처 헤더 또는 슬라이스의 슬라이스 헤더에 있는 디블로킹 파라미터 오프셋에 의해 무시되지 않는 한, pps_beta_offset_div2 및 pps_tc_offset_div2는 PPS를 참조하는 슬라이스의 루마 컴포넌트에 적용되는 β 및 tC(2로 나누어진)에 대한 디폴트 디블로킹 파라미터 오프셋을 지정한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값은 모두 -12에서 12까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, pps_beta_offset_div2 및 pps_tc_offset_div2의 값은 모두 0과 동일한 것으로 유추된다.
디폴트 디블로킹 파라미터 오프셋이 PPS를 참조하는 슬라이스의 슬라이스 헤더에 있는 디블로킹 파라미터 오프셋에 의해 무시되지 않는 한, pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2는 PPS를 참조하는 슬라이스의 Cb 컴포넌트에 적용되는 β 및 tC(2로 나누어진)에 대한 디폴트 디블로킹 파라미터 오프셋을 지정한다. pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값은 모두 -12에서 12까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값은 모두 0과 동일한 것으로 유추된다.
디폴트 디블로킹 파라미터 오프셋이 PPS를 참조하는 슬라이스의 슬라이스 헤더에 있는 디블로킹 파라미터 오프셋에 의해 무시되지 않는 한, pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2는 PPS를 참조하는 슬라이스의 Cr 컴포넌트에 적용되는 β 및 tC(2로 나누어진)에 대한 디폴트 디블로킹 파라미터 오프셋을 지정한다. 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 델타 정보(delta information)가 PH 신택스 구조에 존재하고 PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더에는 존재하지 않음을 지정한다.
0과 동일한 qp_delta_info_in_ph_flag는 QP 델타 정보가 PH 신택스 구조에 존재하지 않고 PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더에 존재할 수 있음을 지정한다.
1과 동일한 pps_ref_wraparound_enabled_flag는 수평 랩-어라운드(wrap-around) 모션 보상이 인터 예측에 적용됨을 지정한다.
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 plus (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는 PPS를 참조하는 PH에 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 신택스 요소를 무시해야 한다.
3.4. APS 신택스 및 시맨틱
최신 VVC 초안 텍스트에서 APS 신택스 및 시맨틱은 다음과 같다:
Figure pct00030
APS RBSP는 ALF 신택스 구조, 즉 alf_data()를 포함한다.
Figure pct00031
Figure pct00032
Figure pct00033
Figure pct00034
APS RBSP는 LMCS 신택스 구조, 즉 lmcs_data()를 포함한다.
Figure pct00035
APS RBSP는 스케일링 목록 데이터 신택스 구조, 즉 scaling_list_data()를 포함한다.
Figure pct00036
Figure pct00037
각 APS RBSP는 참조되거나 외부 수단을 통해 제공되는 코딩된 슬라이스 NAL 유닛의 TemporalId보다 작거나 동일한 TemporalId를 갖는 적어도 하나의 AU에 포함되어 참조되기 전에 디코딩 프로세스에서 사용할 수 있다.
접두사 또는 접미사 APS NAL 유닛인지 여부에 관계없이 PU 내의 특정 값 aps_parameter_set_id 및 특정 값 aps_params_type을 갖는 모든 APS NAL 유닛은 동일한 컨텐츠를 가져야 한다.
Adaptation_parameter_set_id는 다른 신택스 요소가 참조할 수 있도록 APS에 대한 식별자(identifier)를 제공한다.
aps_params_type이 ALF_APS 또는 SCALING_APS와 동일할 때, adaptation_parameter_set_id의 값은 0에서 7까지가 포함되는 범위에 있어야 한다.
aps_params_type이 LMCS_APS와 동일할 때, adaption_parameter_set_id의 값은 0에서 3까지가 포함되는 범위에 있어야 한다.
apsLayerId를 특정 APS NAL 유닛의 nuh_layer_id의 값이라고 하고, vclLayerId를 특정 VCL NAL 유닛의 nuh_layer_id의 값이라고 하자. 특정 VCL NAL 유닛은 apsLayerId가 vclLayerId보다 작거나 같고 apsLayerId와 동일한 nuh_layer_id를 갖는 계층이 vclLayerId와 동일한 nuh_layer_id를 갖는 계층을 포함하는 적어도 하나의 OLS에 포함되지 않는 한 특정 APS NAL 유닛을 참조하지 않아야 한다.
aps_params_type은 표 6에 지정된 대로 APS에서 전달되는 APS 파라미터의 유형을 지정한다.
표 6 - APS 파라미터 유형 코드 및 APS 파라미터 유형
aps_params_type aps_params_type의 이름 APS 파라미터의 유형
0 ALF_APS ALF 파라미터
1 LMCS_APS LMCS 파라미터
2 SCALING_APS Scaling 목록 파라미터
3..7 예약됨(Reserved) 예약됨(Reserved)
nuh_layer_id 값에 관계없이 aps_params_type의 특정 값을 갖는 모든 APS NAL 유닛은 aps_parameter_set_id에 대해 동일한 값 공간을 공유한다. 다른 값의 aps_params_type을 갖는 APS NAL 유닛은 aps_parameter_set_ID에 대해 별도의 값 공간을 사용한다.
참고 2 - APS NAL 유닛(adaptation_parameter_set_id의 특정 값과 aps_params_type의 특정 값을 가짐)는 픽처 사이에 공유될 수 있으며 픽처 내의 서로 다른 슬라이스는 서로 다른 ALF APS를 참조할 수 있다.
참고 2 - 특정 VCL NAL 유닛과 연관된 접미사 APS NAL 유닛(이 VCL NAL 유닛은 디코딩 순서에서 접미사 APS NAL 유닛보다 선행함)는 특정 VCL NAL 유닛에서 사용하기 위한 것이 아니고, 디코딩 순서에서 접미사 APS NAL 유닛 뒤에 오는 VCL NAL 유닛에 의해 사용된다.
0과 동일한 aps_extension_flag는 APS RBSP 신택스 구조에 aps_extension_data_flag 신택스 요소가 존재하지 않음을 지정한다.
1과 동일한 aps_extension_flag는 APS RBSP 신택스 구조에 aps_extension_data_flag 신택스 요소가 존재함을 지정한다.
aps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재와 가치는 이 사양의 이 버전에 지정된 프로파일에 대한 디코더 적합성에 영향을 미치지 않는다. 이 사양의 이 버전을 따르는 디코더는 모든 aps_extension_data_flag 신택스 요소를 무시해야 한다.
1과 동일한 alf_luma_filter_signal_flag는 루마 필터 세트가 시그널링되는 것을 지정한다. 0과 동일한 alf_luma_filter_signal_flag는 루마 필터 세트가 시그널링되지 않음을 지정한다.
1과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되는 것을 지정한다. 0과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되지 않음을 지정한다. ChromaArrayType이 0과 동일할 때, alf_chroma_filter_signal_flag는 0과 동일해야 한다.
alf_luma_filter_signal_flag, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag 값 중 적어도 하나는 1과 동일해야 한다.
다른 적응형 루프 필터의 수를 지정하는 변수 NumAlfFilters는 25로 설정된다.
0과 동일한 alf_luma_clip_flag는 선형 적응형 루프 필터링이 루마 컴포넌트에 적용됨을 지정한다. 1과 동일한 alf_luma_clip_flag는 비선형 적응형 루프 필터링이 루마 컴포넌트에 적용될 수 있음을 지정한다.
alf_luma_num_filters_signalled_minus1 더하기 1은 루마 계수가 시그널링될 수 있는 적응형 루프 필터 클래스의 수를 지정한다. alf_luma_num_filters_signalled_minus1의 값은 0에서 NumAlfFilters - 1가 포함되는 범위에 있어야 한다.
alf_luma_coeff_delta_idx[ filtIdx ]는 0에서 NumAlfFilters - 1 범위의 filtIdx로 표시되는 필터 클래스에 대한 시그널링된 적응형 루프 필터 루마 계수 델타의 인덱스를 지정한다. alf_luma_coeff_delta_idx[ filtIdx ]가 존재하지 않는 경우, 0과 동일한 것으로 유추된다. alf_luma_coeff_delta_idx[ filtIdx ]의 길이는 Ceil( Log2( alf_luma_num_filters_signalled_minus1 + 1 ) ) 비트이다. alf_luma_coeff_delta_idx[filtIdx]의 값은 0에서 alf_luma_num_filters_signalled_minus1까지를 포함하는 범위에 있어야 한다.
alf_luma_coeff_abs[ sfIdx ][ j ]는 sfIdx가 나타내는 시그널링된 루마 필터의 j번째 계수의 절대값을 지정한다. alf_luma_coeff_abs[ sfIdx ][ j ]가 존재하지 않는 경우, 0과 동일한 것으로 유추된다. alf_luma_coeff_abs [sfIdx] [j]의 값은 0에서 128까지를 포함하는 범위에 있어야 한다.
alf_luma_coeff_sign[ sfIdx ][ j ]는 다음과 같이 sfIdx가 나타내는 필터의 j번째 루마 계수의 부호를 지정한다:
alf_luma_coeff_sign[ sfIdx ][ j ]가 0이면, 대응하는 루마 필터 계수는 양의 값을 갖는다.
그렇지 않으면(alf_luma_coeff_sign[ sfIdx ][ j ]가 1과 동일), 대응하는 루마 필터 계수는 음수 값을 갖는다.
alf_luma_coeff_sign[ sfIdx ][ j ]가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
변수 filtCoeff [sfIdx] [j] sfIdx=0.. alf_luma_num_filters_signalled_minus1, j=0.. 11은 다음과 같이 초기화된다:
Figure pct00038
루마 필터 계수 AlfCoeffL[adaptation_parameter_set_id], 요소 AlfCoeff L [adaptation_parameter_set_id] [filtIdx] [j] , filtIdx=0.. NumAlfFilters-1 및 j=0.. 11은 다음과 같이 유도된다:
AlfCoeffL[adaptation_parameter_set_id] [filtIdx] [j] =filtCoeff [alf_luma_coeff_delta_idx [filtIdx] ] [j] (94)
i=0..64, j=0..11인 고정 필터 계수 AlfFixFiltCoeff [i] [j] 및 m=0.. 15 및 n=0.. 24인 매핑 AlfClassToFiltMap [m] [n]을 필터링하는 클래스는 다음과 같이 유도된다:
Figure pct00039
Figure pct00040
Figure pct00041
Figure pct00042
Figure pct00043
filtIdx=0.. NumAlfFilters-1, j=0.. 11인 AlfCoeff L [adaptation_parameter_set_id] [filtIdx] [j] 값이 -27 ~ 27-1 범위에 있어야 하는 것이 비트스트림 적합성의 요구 사항이다.
alf_luma_clip_idx[ sfIdx ][ j ]는 sfIdx로 표시되는 시그널링된 루마 필터의 j번째 계수를 곱하기 전에 사용할 클리핑 값의 클리핑 인덱스를 지정한다. sfIdx=0.. alf_luma_num_filters_signalled_minus1 및 j=0..11인 alf_luma_clip_idx [sfIdx] [j]의 값은 0에서 3까지를 포함하는 범위에 있어야 하는 것이 비트스트림 적합성의 요구사항이다.
요소 AlfClipL[adaptation_parameter_set_id] [filtIdx] [j] , filtIdx=0.. NumAlfFilters-1 및 j=0.. 11을 갖는, 루마 필터 클리핑 값 AlfClipL[adaptation_parameter_set_id] 은 BitDepth에 의존하는 표 8에 지정된 대로 유도되고 clipIdx는 alf_luma_clip_idx [alf_luma_coeff_delta_idx [filtIdx] ] [j] 와 동일하게 설정된다.
0과 동일한 alf_chroma_clip_flag는 선형 적응형 루프 필터링이 크로마 컴포넌트에 적용되는 것을 지정하고; 1과 동일한 alf_chroma_clip_flag는 비선형 적응형 루프 필터링이 크로마 컴포넌트에 적용됨을 지정한다. 존재하지 않을 때, alf_chroma_clip_flag는 0과 동일한 것으로 유추된다.
alf_chroma_num_alt_filters_minus1 더하기 1은 크로마 컴포넌트에 대한 대체 필터의 수를 지정한다. alf_chroma_num_alt_filters_minus1의 값은 0에서 7까지를 포함하는 범위에 있어야 한다.
alf_chroma_coeff_abs[ altIdx ][ j ]는 인덱스 altIdx를 갖는 대체 크로마 필터에 대한 j번째 크로마 필터 계수의 절대값을 지정한다. alf_chroma_coeff_abs[ altIdx ][ j ]가 존재하지 않는 경우, 0과 동일한 것으로 유추된다. alf_chroma_coeff_abs[sfIdx][j]의 값은 0에서 128까지를 포함하는 범위에 있어야 한다.
alf_chroma_coeff_sign[ altIdx ][ j ]는 다음과 같이 인덱스 altIdx를 갖는 대체 크로마 필터에 대한 j번째 크로마 필터 계수의 부호를 지정한다:
alf_chroma_coeff_sign[ altIdx ][ j ]가 0이면, 대응하는 크로마 필터 계수는 양의 값을 갖는다.
그렇지 않으면(alf_chroma_coeff_sign[ altIdx ][ j ]가 1과 동일), 대응하는 크로마 필터 계수는 음의 값을 갖는다.
alf_chroma_coeff_sign[ altIdx ][ j ]가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
altIdx=0.. alf_chroma_num_alt_filters_minus:1, j=0.. 5인 요소 AlfCoeff C[adaptation_parameter_set_id][altIdx][j]를 갖는 크로마 필터 계수 AlfCoeff C[adaptation_parameter_set_id][altIdx]는 다음과 같이 유도된다:
Figure pct00044
altIdx=0.. alf_chroma_num_alt_filters_minus1, j=0..5인 AlfCoeff C [adaptation_parameter_set_id] [altIdx] [j]의 값은 -27 ~ 27-1를 포함하는 범위에 있어야 하는 것은 비트스트림 적합성의 요구 사항이다.
1과 동일한 alf_cc_cb_filter_signal_flag는 Cb 컬러 컴포넌트에 대한 크로스 컴포넌트 필터가 시그널링되는 것을 지정한다.
0과 동일한 alf_cc_cb_filter_signal_flag는 Cb 컬러 컴포넌트에 대한 크로스 컴포넌트 필터가 시그널링되지 않음을 지정한다. ChromaArrayType이 0과 동일할 때, alf_cc_cb_filter_signal_flag는 0과 동일해야 한다.
alf_cc_cb_filters_signalled_minus1 더하기 1은 현재 ALF APS에서 시그널링된 Cb 컬러 컴포넌트에 대한 크로스 컴포넌트 필터의 수를 지정한다. alf_cc_cb_filters_signalled_minus1의 값은 0에서 3까지를 포함하는 범위에 있어야 한다.
alf_cc_cb_mapped_coeff_abs [k] [j]는 Cb 컬러 컴포넌트에 대한 시그널링된 k번째 크로스 컴포넌트 필터의 j번째 매핑된 계수의 절대값을 지정한다. alf_cc_cb_mapped_coeff_abs[k][j]가 존재하지 않을 때, 그것은 0과 동일한 것으로 유추된다.
alf_cc_cb_coeff_sign [k] [j]는 Cb 컬러 컴포넌트에 대한 시그널링된 k번째 크로스 컴포넌트 필터의 j번째 계수의 부호를 다음과 같이 지정한다:
- alf_cc_cb_coeff_sign [k][j]가 0이면, 대응하는 크로스 컴포넌트 필터 계수는 양의 값을 갖는다.
- 그렇지 않으면(alf_cc_cb_sign [k][j]가 1과 동일함), 대응하는 크로스 컴포넌트 필터 계수는 음수 값을 갖는다.
alf_cc_cb_coeff_sign [k] [j]가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
Cb 컬러 컴포넌트 CcAlfApsCoeff Cb [adaptation_parameter_set_id] [k] [j]에 대한 시그널링된 k 번째 크로스 컴포넌트 필터 계수는 j=0..6인 경우 다음과 같이 유도된다:
- alf_cc_cb_mapped_coeff_abs[k][j]가 0이면, CcAlfApsCoeffCb[adaptation_parameter_set_id][k][j]가 0으로 설정된다.
- 그렇지 않으면, CcAlfApsCoeffCb[adaptation_parameter_set_id] [k] [j]는 (1-2*alf_cc_cb_coeff_sign [k] [j] ) *2alf_cc_cb_mapped_coeff_abs [k] [j] -1과 동일하게 설정된다.
1과 동일한 alf_cc_cr_filter_signal_flag는 Cr 컬러 컴포넌트에 대한 크로스 컴포넌트 필터가 시그널링되는 것을 지정한다. 0과 동일한 alf_cc_cr_filter_signal_flag는 Cr 컬러 컴포넌트에 대한 크로스 컴포넌트 필터가 시그널링되지 않음을 지정한다. ChromaArrayType이 0과 동일할 때, alf_cc_cr_filter_signal_flag는 0과 동일해야 한다.
alf_cc_cr_filters_signalled_minus1 더하기 1은 현재 ALF APS에서 시그널링된 Cr 컬러 컴포넌트에 대한 크로스 컴포넌트 필터의 수를 지정한다. alf_cc_cr_filters_signalled_minus1의 값은 0에서 3까지를 포함하는 범위에 있어야 한다.
alf_cc_cr_mapped coeff_abs [k][j]는 Cr 컬러 컴포넌트에 대한 시그널링된 k번째 크로스 컴포넌트 필터의 j번째 매핑된 계수의 절대값을 지정한다. alf_cc_cr_mapped coeff_abs[k][j]가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
alf_cc_cr_coeff_sign [k] [j] Cr 컬러 컴포넌트에 대한 시그널링된 k번째 크로스 컴포넌트 필터의 j번째 계수의 부호를 다음과 같이 지정한다:
- alf_cc_cr_coeff_sign [k][j]가 0이면, 대응하는 크로스 컴포넌트 필터 계수는 양수 값을 갖는다.
- 그렇지 않으면(alf_cc_cr_sign [k][j]가 1과 동일함) 대응하는 크로스 컴포넌트 필터 계수는 음수 값을 갖는다.
alf_cc_cr_coeff_sign [k] [j]가 존재하지 않을 때, 0과 동일한 것으로 유추된다.
j=0..6인 Cr 컬러 컴포넌트 CcAlfApsCoeff Cr [adaptation_parameter_set_id] [k] [j] 에 대한 시그널링된 k 번째 크로스 컴포넌트 필터 계수는 다음과 같이 유도된다:
- alf_cc_cr_mapped_coeff_abs[k][j]가 0이면, CcAlfApsCoeffCr[adaptation_parameter_set_id][k][j]가 0으로 설정된다.
- 그렇지 않으면, CcAlfApsCoeffCr[adaptation_parameter_set_id] [k] [j]는 (1-2*alf_cc_cr_coeff_sign [k] [j] ) *2alf_cc_cr_mapped_coeff_abs [k] [j] -1과 동일하게 설정된다.
alf_chroma_clip_idx[ altIdx ][ j ]는 대체 크로마 필터의 j번째 계수와 인덱스 altIdx를 곱하기 전에 사용할 클리핑 값의 클리핑 인덱스를 지정한다. altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5인 alf_chroma_clip_idx[ altIdx ][ j ]의 값이 0에서 3까지이 포함되는 범위에 있어야 하는 것은 비트스트림 적합성의 요구사항이다.
요소 AlfClipC[adaptation_parameter_set_id] [altIdx] [j], altIdx=0.. alf_chroma_num_alt_filters_minus1, j=0.. 5인 크로마 필터 클리핑 값 AlfClipC[adaptation_parameter_set_id] [altIdx]는 BitDepth에 의존하는 표 8에 지정된 대로 유도되고 및 clipIdx는 alf_chroma_clip_idx [altIdx] [j]와 동일하게 설정된다.
표 8 - BitDepth 및 clipIdx에 따른 AlfClip 사양
BitDepth clipIdx
0 1 2 3
8 28 25 23 21
9 29 26 24 22
10 210 27 25 23
11 211 28 26 24
12 212 29 27 25
13 213 210 28 26
14 214 211 29 27
15 215 212 210 28
16 216 213 211 29
lmcs_min_bin_idx는 크로마 스케일링 구성 프로세스가 있는 루마 매핑에 사용되는 최소 빈 인덱스를 지정한다. lmcs_min_bin_idx의 값은 0에서 15까지를 포함하는 범위에 있어야 한다.
lmcs_delta_max_bin_idx는 15와 크로마 스케일링 구성 프로세스가 있는 루마 매핑에 사용되는 최대 빈 인덱스 LmcsMaxBinIdx 사이의 델타 값을 지정한다. lmcs_delta_max_bin_idx의 값은 0에서 15까지를 포함하는 범위에 있어야 한다. LmcsMaxBinIdx의 값은 15-lmcs_delta_max_bin_idx와 동일하게 설정된다. LmcsMaxBinIdx의 값은 lmcs_min_bin_idx보다 크거나 동일해야 한다.
lmcs_delta_cw_prec_minus1 더하기 1은 신택스 lmcs_delta_abs_cw [i] 의 표현에 사용되는 비트 수를 지정한다. lmcs_delta_cw_prec_minus1의 값은 0에서 BitDepth-2까지를 포함하는 범위에 있어야 한다.
lmcs_delta_abs_cw [i]는 i번째 빈에 대한 절대 델타 코드워드 값(absolute delta codeword value)을 명시한다.
lmcs_delta_sign_cw_flag [i]는 다음과 같이 변수 lmcsDeltaCW [i]의 부호를 지정한다:
- lmcs_delta_sign_cw_flag[i]가 0이면, lmcsDeltaCW[i]는 양수 값이다.
- 그렇지 않으면(lmcs_delta_sign_cw_flag[i]가 0이 아님), lmcsDeltaCW[i]는 음수 값이다.
lmcs_delta_sign_cw_flag [i]가 없으면, 0과 동일한 것으로 유추된다.
변수 OrgCW는 다음과 같이 유도된다:
OrgCW = (1<<BitDepth) /16 (98)
i=lmcs_min_bin_idx.. LmcsMaxBinIdx인, 변수 lmcsDeltaCW [i] 는 다음과 같이 유도된다:
lmcsDeltaCW [i] = (1-2*lmcs_delta_sign_cw_flag [i] ) *lmcs_delta_abs_cw [i] (99)
변수 lmcsCW [i]는 다음과 같이 유도된다:
- i=0.. lmcs_min_bin_idx-1에 대해, lmcsCW [i]는 0과 동일하게 설정된다.
- i=lmcs_min_bin_idx.. LmcsMaxBinIdx에 대해, 다음이 적용된다:
lmcsCW [i] = OrgCW+lmcsDeltaCW [i] (100)
lmcsCW [i]의 값은 (OrgCW>>3)에서 (OrgCW<<3-1)까지를 포함하는 범위에 있어야 한다.
- i=LmcsMaxBinIdx+1.. 15에 대해, lmcsCW [i]는 0과 동일하게 설정된다.
다음 조건이 참인 것은 비트스트림 적합성의 요구 사항이다:
Figure pct00045
i=0..16인, 변수 InputPivot [i]은 다음과 같이 유도된다:
InputPivot [i] = i*OrgCW (102)
i=0..16인 변수 LmcsPivot [i], 변수 ScaleCoeff [i] 및 i=0.. 15인 InvScaleCoeff [i]는 다음과 같이 유도된다:
Figure pct00046
Figure pct00047
i=lmcs_min_bin_idx.. LmcsMaxBinIdx의 경우, LmcsPivot [i] 값이 1<< (BitDepth-5) 의 배수가 아닌 경우, (LmcsPivot [i] >> (LmcsPivot [i]) BitDepth-5) )는 (LmcsPivot [i+1] >> (BitDepth-5) )의 값과 동일하지 않아야 하는 것이 비트스트림 적합성의 요구사항이다.
lmcs_delta_abs_crs는 변수 lmcsDeltaCrs의 절대 코드워드 값을 지정한다. lmcs_delta_abs_crs의 값은 0과 7을 포함하는 범위에 있어야 한다. 존재하지 않는 경우, lmcs_delta_abs_crs는 0과 동일한 것으로 유추된다.
lmcs_delta_sign_crs_flag는 변수 lmcsDeltaCrs의 부호를 지정한다. 존재하지 않는 경우, lmcs_delta_sign_crs_flag는 0과 동일한 것으로 유추된다.
변수 lmcsDeltaCrs는 다음과 같이 유도된다:
lmcsDeltaCrs= (1-2*lmcs_delta_sign_crs_flag) *lmcs_delta_abs_crs (104)
lmcsCW [i]가 0과 동일하지 않을 때, (lmcsCW [i] + lmcsDeltaCrs)가 (OrgCW>>3) ~ ((OrgCW<<3) -1을 포함하는 범위에 있어야 하는 것은 비트스트림 적합성의 요구 사항이다.
i=0??15인 변수 ChromaScaleCoeff [i]는 다음과 같이 유도된다:
Figure pct00048
1과 동일한 scaling_matrix_for_lfnst_disabled_flag는 스케일링 매트릭스가 LFNST로 코딩된 블록에 적용되지 않음을 지정한다.
0과 동일한 scaling_matrix_for_lfnst_disabled_flag는 스케일링 매트릭스가 LFNST로 코딩된 블록에 적용될 수 있음을 지정한다.
1과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하는 것을 지정한다.
0과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하지 않음을 지정한다. scaling_list_chroma_present_flag가 ChromaArrayType이 0과 동일할 때, 0과 동일해야 하고, ChromaArrayType이 0과 같지 않을 때 1과 동일해야 하는 것은 비트스트림 적합성의 요구 사항이다.
1과 동일한 scaling_list_copy_mode_flag [id]는 스케일링 목록의 값이 레퍼런스 스케일링 목록의 값과 동일하다고 지정한다. 참조 스케일링 목록은 scaling_list_pred_id_delta [id] 에 의해 지정된다.
0과 동일한 scaling_list_copy_mode_flag [id]는 scaling_list_pred_mode_flag가 존재하는 것을 지정한다.
1과 동일한 scaling_list_pred_mode_flag [id]는 스케일링 목록의 값이 참조 스케일링 목록으로부터 예측될 수 있음을 지정한다. 참조 스케일링 목록은 scaling_list_pred_id_delta [id] 에 의해 지정된다. 0과 동일한 scaling_list_pred_mode_flag [id]는 스케일링 목록의 값이 명시적으로 시그널링되는 것을 지정한다. 존재하지 않는 경우, scaling_list_pred_mode_flag [id]의 값은 0과 동일한 것으로 유추된다.
scaling_list_pred_id_delta [id]는 예측 스케일링 행렬 ScalingMatrixPred [id]를 유도하는 데 사용되는 참조 스케일링 목록을 지정한다. 존재하지 않는 경우, scaling_list_pred_id_delta[id]의 값은 0과 동일한 것으로 유추된다. scaling_list_pred_id_delta[id]의 값은 0에서 maxIdDelta의 범위에 있어야 하며 maxIdDelta는 다음과 같이 id에 따라 유도된다:
maxIdDelta = (id< 2) ? id : ( (id<8) ? (id-2) : (id-8) ) (106)
변수 refId 및 matrixSize는 다음과 같이 유도된다:
refId = id-scaling_list_pred_id_delta [id] (107)
matrixSize = (id< 2) ? 2 : ((id<8) ? 4 : 8) (108)
(matrixSize) x (matrixSize) array ScalingMatrixPred [x] [y] x=0.. matrixSize-1, y=0.. matrixSize-1 및 변수 ScalingMatrixDCPred는 다음과 같이 유도된다:
- scaling_list_copy_mode_flag[id]와 scaling_list_pred_mode_flag[id]가 모두 0일 때, ScalingMatrixPred의 모든 요소는 8로 설정되고, ScalingMatrixDCPred의 값은 8로 설정된다.
- 그렇지 않으면, scaling_list_pred_id_delta[id]가 0일 때, ScalingMatrixPred의 모든 요소는 16으로 설정되고 ScalingMatrixDCPred는 16으로 설정된다.
- 그렇지 않으면(scaling_list_copy_mode_flag[id] 또는 scaling_list_pred_mode_flag[id]가 1이고 scaling_list_pred_id_delta[id]가 0보다 큼), ScalingMatrixPred는 alingMatrixRec [refId]와 동일하게 설정되고, ScalingMatrixPred에 대해 다음이 적용된다:
- refId가 13보다 크면, ScalingMatrixDCPred는 ScalingMatrixDCRec[refId-14]와 동일하게 설정된다.
- 그렇지 않으면(refId가 13보다 작거나 동일함) ScalingMatrixDCPred는 ScalingMatrixPred [0] [0]과 동일하게 설정된다.
scaling_list_dc_coef [id-14]는 다음과 같이 id가 13보다 클 때 변수 ScalingMatrixDC [id-14]의 값을 유도하는 데 사용된다:
ScalingMatrixDCRec [id-14] = (ScalingMatrixDCPred +scaling_list_dc_coef [id-14] ) &255 (109)
존재하지 않는 경우, scaling_list_dc_coef[id-14]의 값은 0과 동일한 것으로 유추된다. scaling_list_delta_coef 값은 - 128에서 127의 범위에 있어야 한다. ScalingMatrixDCRec [id-14]의 값은 0보다 커야 한다.
scaling_list_delta_coef[id][i]는 scaling_list_copy_mode_flag[id]가 0일 때 현재 행렬 계수 ScalingList[id][i]와 이전 행렬 계수 ScalingList[id][i-1] 사이의 차이를 지정한다. scaling_list_delta_coef [id] [i] 값은 - 128에서 127의 범위에 있어야 한다. scaling_list_copy_mode_flag[id]가 1일 때, ScalingList[id]의 모든 요소는 0으로 설정된다.
(matrixSize) x (matrixSize) array ScalingMatrixRec [id]는 다음과 같이 유도된다:
ScalingMatrixRec [id] [x] [y] = (ScalingMatrixPred [x] [y] + ScalingList [id] [k] ) &255 (110)
여기서, k = 0.. (matrixSize*matrixSize-1) , x = DiagScanOrder [Log2 (matrixSize) ] [Log2 (matrixSize) ] [k] [0] ,
y = DiagScanOrder [Log2(matrixSize) ] [Log2(matrixSize) ] [k] [1]이다.
ScalingMatrixRec [id] [x] [y]의 값은 0보다 커야 한다.
3.5. PH 신택스 및 시맨틱
최신 VVC 초안 텍스트에서 PH 신택스 및 시맨틱은 다음과 같다:
Figure pct00049
PH RBSP는 PH 신택스 구조, 즉, picture_header_structure()를 포함한다.
Figure pct00050
Figure pct00051
Figure pct00052
Figure pct00053
Figure pct00054
Figure pct00055
Figure pct00056
Figure pct00057
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는 부록 C에 지정된 비트스트림의 제1 픽처가 아닌 CLVSS 픽처의 디코딩 후 DPB에서 이전에 디코딩된 픽처의 출력에 영향을 준다.
Recovery_poc_cnt는 출력 순서대로 디코딩된 픽처의 복구 지점을 지정한다. 현재 픽처가 PH와 연관된 GDR 픽처가고, 현재 GDR 픽처의 PicOrderCntVal에 recovery_poc_cnt 값을 더한 것과 동일한 PicOrderCntVal을 갖는 CLVS에서 디코딩 순서에서 현재 GDR 픽처를 따르는 픽처 picA가 있는 경우, 픽처 picA는 복구 포인트 픽처로 지칭된다. 그렇지 않으면, 현재 픽처의 PicOrderCntVal에 recovery_poc_cnt의 값을 더한 것보다 더 큰 PicOrderCntVal을 갖는 출력 순서의 제1 픽처를 복구 포인트 픽처라고 한다. 복구 지점 픽처는 디코딩 순서에서 현재 GDR 픽처보다 선행하지 않아야 한다. Recovery_poc_cnt의 값은 0에서 MaxPicOrderCntLsb-1까지를 포함하는 범위에 있어야 한다.
현재 픽처가 GDR 픽처인 경우, 변수 RpPicOrderCntVal은 다음과 같이 유도된다:
RpPicOrderCntVal = PicOrderCntVal + recovery_poc_cnt (82)
참고 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의 aps_parameter_set_id를 지정한다.
ALF_APS와 동일한 aps_params_type 및 ph_alf_aps_id_luma[i]와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 alf_luma_filter_signal_flag 값은 1과 동일해야 한다.
ALF_APS와 동일한 aps_params_type 및 ph_alf_aps_id_luma[i]와 동일한 aps_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_chroma는 PH와 연관된 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 aps_parameter_set_id를 지정한다.
ALF_APS와 동일한 aps_params_type 및 ph_alf_aps_id_chroma와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 alf_chroma_filter_signal_flag 값은 1과 동일해야 한다.
ALF_APS와 동일한 aps_params_type 및 ph_alf_aps_id_chroma와 동일한 aps_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_i는 PH와 연관된 슬라이스의 Cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 지정한다.
ALF_APS와 동일한 aps_params_type 및 ph_cc_alf_cb_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag 값은 1과 동일해야 한다.
ALF_APS와 동일한 aps_params_type 및 ph_cc_alf_cb_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
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와 동일한 adaption_parameter_set_id를 갖는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag 값은 1과 동일해야 한다.
ALF_APS와 동일한 aps_params_type 및 ph_cc_alf_cr_aps_id와 동일한 adaption_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ph_lmcs_enabled_flag가 1이면 PH와 연관된 모든 슬라이스에 대해 크로마 스케일링이 있는 루마 매핑이 활성화됨을 지정한다. 0과 동일한 ph_lmcs_enabled_flag는 PH와 연관된 하나 이상 또는 모든 슬라이스에 대해 크로마 스케일링을 사용한 루마 매핑이 비활성화될 수 있음을 지정한다. 존재하지 않는 경우, ph_lmcs_enabled_flag의 값은 0과 동일한 것으로 유추된다.
ph_lmcs_aps_id는 PH와 연관된 슬라이스가 참조하는 LMCS APS의 aps_parameter_set_id를 지정한다. LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 adapt_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와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
1과 동일한 ph_virtual_boundaries_present_flag는 가상 경계의 정보가 PH에서 시그널링되는 것을 지정한다.
0과 동일한 ph_virtual_boundaries_present_flag는 가상 경계의 정보가 PH에서 시그널링되지 않음을 지정한다. PH에서 시그널링된 하나 이상의 가상 경계가 있을 때, 인루프 필터링 동작은 픽처의 가상 경계를 가로질러 비활성화된다. 인루프 필터링 동작에는 디블로킹 필터, 샘플 적응형 오프셋 필터 및 적응형 루프 필터 동작이 포함된다. 존재하지 않는 경우, ph_virtual_boundaries_present_flag의 값은 0과 동일한 것으로 유추된다.
subpic_info_present_flag가 1과 동일할 때, ph_virtual_boundaries_present_flag의 값이 0과 동일해야 하는 것은 비트스트림 적합성의 요구사항이다.
VirtualBoundariesPresentFlag 변수는 다음과 같이 유도된다:
VirtualBoundariesPresentFlag = 0 if (sps_virtual_boundaries_enabled_flag) VirtualBoundariesPresentFlag = sps_virtual_boundaries_present_flag ||ph_virtual_boundaries_present_flag (83)
ph_num_ver_virtual_boundaries는 PH에 있는 ph_virtual_boundaries_pos_x [i] 신택스 요소의 수를 지정한다. ph_num_ver_virtual_boundaries가 없으면, 0과 동일한 것으로 유추된다.
NumVerVirtualBoundaries 변수는 다음과 같이 유도된다:
NumVerVirtualBoundaries = 0 if (sps_virtual_boundaries_enabled_flag) NumVerVirtualBoundaries = sps_virtual_boundaries_present_flag ? sps_num_ver_virtual_boundaries : ph_num_ver_virtual_boundaries (84)
ph_virtual_boundaries_pos_x [i]는 8로 나눈 루마 샘플 유닛으로 i번째 수직 가상 경계의 위치를 지정한다. ph_virtual_boundaries_pos_x [i]의 값은 1에서 Ceil(pic_width_in_luma_samplesχ8) -1을 포함하는 범위에 있어야 한다.
0에서 NumVerVirtualBoundaries-1까지 범위의 i에 대한 목록 VirtualBoundariesPosX [i]는 수직 가상 경계의 위치를 지정하는 루마 샘플 유닛으로 다음과 같이 유도된다:
(i = 0; i < NumVerVirtualBoundaries; i++) VirtualBoundariesPosX [i] = (sps_virtual_boundaries_present_flag ? sps_virtual_boundaries_pos_x [i] : ph_virtual_boundaries_pos_x [i] ) *8 (85)
두 수직 가상 경계 사이의 거리는 CtbSizeY 루마 샘플보다 크거나 동일해야 한다.
ph_num_hor_virtual_boundaries는 PH에 있는 ph_virtual_boundaries_pos_y [i] 신택스 요소의 수를 지정한다. ph_num_hor_virtual_boundaries가 없으면, 0과 동일한 것으로 유추된다.
NumHorVirtualBoundaries 파라미터는 다음과 같이 유도된다:
NumHorVirtualBoundaries = 0 if (sps_virtual_boundaries_enabled_flag) NumHorVirtualBoundaries = sps_virtual_boundaries_present_flag ? sps_num_hor_virtual_boundaries : ph_num_hor_virtual_boundaries (86)
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]는 8로 나눈 루마 샘플 유닛으로 i번째 수평 가상 경계의 위치를 지정한다. ph_virtual_boundaries_pos_y [i]의 값은 1에서 Ceil(pic_height_in_luma_samplesχ8) -1을 포함하는 범위에 있어야 한다.
0에서 NumHorVirtualBoundaries-1을 포함하는 범위의 i에 대한 목록 VirtualBoundariesPosY [i]는 수평 가상 경계의 위치를 지정하는 루마 샘플 유닛으로 다음과 같이 유도된다:
for (i = 0; i < NumHorVirtualBoundaries; i++) VirtualBoundariesPosY [i] = (sps_virtual_boundaries_present_flag ? sps_virtual_boundaries_pos_y [i] : ph_virtual_boundaries_pos_y [i] ) *8 (87)
두 개의 수평 가상 경계 사이의 거리는 CtbSizeY 루마 샘플보다 크거나 동일해야 한다.
pic_output_flag는 부록 C에 명시된 디코딩된 픽처 출력 및 제거 프로세스에 영향을 준다. pic_output_flag가 존재하지 않는 경우, 1과 동일한 것으로 유추된다.
1과 동일한 partition_constraints_override_flag는 파티션 제약 파라미터가 PH에 존재하는 것을 지정한다.
0과 동일한 partition_constraints_override_flag는 파티션 제약 파라미터가 PH에 존재하지 않음을 지정한다. 존재하지 않을 때, partition_constraints_override_flag의 값은 0과 동일한 것으로 유추된다.
pph_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와 연관된 2(I)와 동일한 slice_type을 갖는 슬라이스에서 쿼드트리 리프의 다중 유형 트리 분할로 인한 코딩 유닛에 대한 최대 계층구조 깊이를 지정한다. 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에서 CtbLog2SizeY-MinQtLog2SizeIntraY까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, 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)인 슬라이스에서 treeType이 DUAL_TREE_CHROMA인 크로마 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)인 슬라이스에서 treeType이 DUAL_TREE_CHROMA인 크로마 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와 연관된 slice_type이 0(B) 또는 1(P)인 슬라이스의 루마 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와 연관된 slice_type이 0(B) 또는 1(P)인 슬라이스에서 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와 연관된 slice_type이 0(B) 또는 1(P)인 슬라이스에서 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는 다음과 같이 유도된다:
Figure pct00058
MaxNumSubblockMergeCand의 값은 0에서 5까지를 포함하는 범위에 있어야 한다.
1과 동일한 ph_collocated_from_l0_flag는 시간적 모션 벡터 예측에 사용되는 병치 픽처(collocated picture)가 레퍼런스 픽처 목록 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][RplsIdx[0]]-1을 포함하는 범위에 있어야 한다.
ph_collocated_from_l0_flag가 0과 동일할 때, ph_collocated_ref_idx는 레퍼런스 픽처 목록 1의 항목을 참조하고 ph_collocated_ref_idx의 값은 0에서 num_ref_entries[1][RplsIdx[1]]-1을 포함하는 범위에 있어야 한다.
존재하지 않을 때, ph_collocated_ref_idx의 값은 0과 동일한 것으로 유추된다.
mvd_l1_zero_flag가 1이면 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는 양방향 광학 흐름 인터 예측 기반 인터 양방향 예측이 PH와 연관된 슬라이스에서 비활성화됨을 지정한다. 0과 동일한 ph_disable_bdof_flag는 양방향 광학 흐름 인터 예측 기반 인터 양방향 예측이 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는 인터 양방향 예측에 기반한 디코더 모션 벡터 정제가 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과 동일할 때, 픽처의 모든 슬라이스에 대한 QpY양자화 파라미터의 초기값 SliceQpY 는 다음과 같이 유도된다:
SliceQpY= 26 + init_qp_minus26 + ph_qp_delta (89)
SliceQpY의 값은 -QpBdOffset에서 +63까지를 포함하는 범위에 있어야 한다.
ph_joint_cbcr_sign_flag는 tu_joint_cbcr_residual_flag [x0] [y0]이 1인 트랜스폼 유닛에서, 두 크로마 컴포넌트의 병치된 잔차 샘플이 반전된 부호를 갖는지 여부를 지정한다. 트랜스폼 유닛에 대해 tu_joint_cbcr_residual_flag [x0] [y0]이 1과 동일할 때, 0과 동일한 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 병치된 Cb(또는 Cr) 잔차 샘플의 부호와 동일함을 지정하고 1과 동일한 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 병치된 Cb(또는 Cr) 잔류 샘플의 반전된 부호에 의해 주어짐을 지정한다.
1과 동일한 ph_sao_luma_enabled_flag는 PH와 연관된 모든 슬라이스의 루마 컴포넌트에 대해 SAO가 활성화됨을 지정한다. 0과 동일한 ph_sao_luma_enabled_flag는 PH와 연관된 하나 이상 또는 모든 슬라이스에 대해 루마 컴포넌트에 대한 SAO가 비활성화될 수 있음을 지정한다. ph_sao_luma_enabled_flag가 없으면, 0과 동일한 것으로 유추된다.
1과 동일한 ph_sao_chroma_enabled_flag는 PH와 연관된 모든 슬라이스에서 크로마 컴포넌트에 대해 SAO가 활성화됨을 지정한다. 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 및 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의 값은 각각 pps_beta_offset_div2 및 pps_tc_offset_div2와 동일한 것으로 유추된다.
ph_beta_offset_div2 및 ph_tc_offset_div2는 PH와 관련된 슬라이스의 루마 컴포넌트에 적용되는 β 및 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 및 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_extension_length 자체를 시그널링하는 데 사용되는 비트를 포함하지 않고 바이트 단위의 PH 확장 데이터 길이를 지정한다. ph_extension_length의 값은 0에서 256까지를 포함하는 범위에 있어야 한다. 존재하지 않는 경우, ph_extension_length의 값은 0과 동일한 것으로 유추된다.
ph_extension_data_byte는 임의의 값을 가질 수 있다. 이 사양의 이 버전을 따르는 디코더는 ph_extension_data_byte의 값을 무시해야 한다. 이 값은 이 버전의 사양에 지정된 프로필에 대한 디코더 적합성에 영향을 미치지 않는다.
3.6. SH 신택스 및 시맨틱
최신 VVC 초안 텍스트에서 SH 신택스 및 시맨틱은 다음과 같다:
Figure pct00059
Figure pct00060
Figure pct00061
Figure pct00062
Figure pct00063
cu_qp_delta_abs를 포함하는 코딩 유닛에 대한 루마 양자화 파라미터와 그 예측 사이의 차이를 지정하는, 변수 CuQpDeltaVal은 0과 동일하게 설정된다. cu_chroma_qp_offset_flag를 포함하는 코딩 유닛에 대한 Qp'Cb, Qp'Cr및 Qp'CbCr양자화 파라미터의 각각의 값을 결정할 때 사용될 값을 지정하는, 변수 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과 동일할 때, 현재 픽처의 모든 코딩된 슬라이스는 0과 동일한 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 및 슬라이스 내 i 번째 CTB의 픽처 래스터 스캔 어드레스를 지정하는, 0에서 NumCtusInCurrSlice -1까지를 포함하는 범위 i에 대한 목록 CtbAddrInCurrSlice [i]는, 다음과 같이 유도된다:
Figure pct00064
Figure pct00065
변수 SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos 및 SubpicBotBoundaryPos는 다음과 같이 유도된다:
Figure pct00066
slice_type은 표 9에 따라 슬라이스의 코딩 유형을 지정한다.
표 9 - slice_type에 대한 이름 연관성
slice_type slice_type의 이름
0 B (B 슬라이스)
1 P (P 슬라이스)
2 I (I 슬라이스)
존재하지 않는 경우, 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)인 경우, 다음이 적용된다:
MinQtLog2SizeY =MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_intra_slice_luma (119)
MinQtLog2SizeC =MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_intra_slice_chroma (120)
MaxBtSizeY = 1 << (MinQtLog2SizeY+ph_log2_diff_max_bt_min_qt_intra_slice_luma) (121)
MaxBtSizeC = 1 << (MinQtLog2SizeC+ph_log2_diff_max_bt_min_qt_intra_slice_chroma) (122)
MaxTtSizeY = 1 << (MinQtLog2SizeY+ph_log2_diff_max_tt_min_qt_intra_slice_luma) (123)
MaxTtSizeC = 1 << (MinQtLog2SizeC+ph_log2_diff_max_tt_min_qt_intra_slice_chroma) (124)
MaxMttDepthY = ph_max_mtt_hierarchy_depth_intra_slice_luma (125)
MaxMttDepthC = ph_max_mtt_hierarchy_depth_intra_slice_chroma (126)
CuQpDeltaSubdiv = ph_cu_qp_delta_subdiv_intra_slice (127)
CuChromaQpOffsetSubdiv = ph_cu_chroma_qp_offset_subdiv_intra_slice (128)
- 그렇지 않은 경우(slice_type이 0(B) 또는 1(P)임) 다음이 적용된다:
MinQtLog2SizeY = MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_inter_slice (129)
MinQtLog2SizeC = MinCbLog2SizeY+ph_log2_diff_min_qt_min_cb_inter_slice (130)
MaxBtSizeY = 1 << (MinQtLog2SizeY+ph_log2_diff_max_bt_min_qt_inter_slice) (131)
MaxBtSizeC = 1 << (MinQtLog2SizeC+ph_log2_diff_max_bt_min_qt_inter_slice) (132)
MaxTtSizeY = 1 << (MinQtLog2SizeY+ph_log2_diff_max_tt_min_qt_inter_slice) (133)
MaxTtSizeC = 1 << (MinQtLog2SizeC+ph_log2_diff_max_tt_min_qt_inter_slice) (134)
MaxMttDepthY = ph_max_mtt_hierarchy_depth_inter_slice (135)
MaxMttDepthC = ph_max_mtt_hierarchy_depth_inter_slice (136)
CuQpDeltaSubdiv = ph_cu_qp_delta_subdiv_inter_slice (137)
CuChromaQpOffsetSubdiv =ph_cu_chroma_qp_offset_subdiv_inter_slice (138)
다음 사항이 적용된다:
MinQtSizeY = 1 << MinQtLog2SizeY (139)
MinQtSizeC = 1 << MinQtLog2SizeC (140)
MinBtSizeY = 1 << MinCbLog2SizeY (141)
MinTtSizeY = 1 << MinCbLog2SizeY (142)
1과 동일한 slice_alf_enabled_flag는 적응형 루프 필터가 활성화되고 슬라이스의 Y, Cb 또는 Cr 컬러 컴포넌트에 적용될 수 있음을 지정한다.
0과 동일한 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의 aps_parameter_set_id를 지정한다. ALF_APS와 동일한 aps_params_type 및 slice_alf_aps_id_luma[i]와 동일한 aps_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]와 동일한 aps_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과 동일한 slice_alf_chroma_idc는 적응형 루프 필터가 Cb 및 Cr 컬러 컴포넌트에 적용됨을 나타낸다. slice_alf_chroma_idc가 존재하지 않는 경우, ph_alf_chroma_idc와 동일한 것으로 유추된다.
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaption_parameter_set_id를 지정한다. ALF_APS와 동일한 aps_params_type 및 slice_alf_aps_id_chroma와 동일한 aps_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와 동일한 aps_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 컬러 컴포넌트가 참조하는 aps_parameter_set_id를 지정한다.
ALF_APS와 동일한 aps_params_type 및 slice_cc_alf_cb_aps_id와 동일한 aps_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와 동일한 aps_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 컬러 컴포넌트가 참조하는 aps_parameter_set_id를 지정한다. ALF_APS와 동일한 aps_params_type 및 slice_cc_alf_cr_aps_id와 동일한 aps_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와 동일한 adaption_parameter_set_id를 갖는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag 값은 1과 동일해야 한다.
color_plane_id는 separator_colour_plane_flag가 1과 동일할 때, 현재 슬라이스와 연관된 컬러 평면을 식별한다. color_plane_id의 값은 0에서 2까지를 포함하는 범위에 있어야 한다. color_plane_id 값 0, 1 및 2는 각각 Y, Cb 및 Cr 평면에 해당한다. color_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까지를 포함하는 범위에 있어야 한다.
i가 0 또는 1인 경우, 현재 슬라이스가 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]는 다음과 같이 유도된다:
Figure pct00067
Figure pct00068
NumRefIdxActive [i] -1의 값은 슬라이스를 디코딩하는 데 사용될 수 있는 레퍼런스 픽처 목록 i에 대한 최대 레퍼런스 인덱스를 지정한다. NumRefIdxActive[i]의 값이 0과 동일할 때, 레퍼런스 픽처 목록 i에 대한 레퍼런스 인덱스는 슬라이스를 디코딩하는데 사용될 수 없다.
현재 슬라이스가 P 슬라이스인 경우, NumRefIdxActive [0] 값은 0보다 커야 한다.
현재 슬라이스가 B 슬라이스인 경우, NumRefIdxActive [0] 및 NumRefIdxActive [1] 모두 0보다 커야 한다.
cabac_init_flag는 컨텍스트 변수에 대한 초기화 프로세스에서 사용되는 초기화 테이블을 결정하는 방법을 지정한다. slice_ASDT_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와 같고 slice_collocated_from_l0_flag가 1인 경우, slice_collocated_ref_idx는 레퍼런스 픽처 목록 0의 항목을 참조하고 slice_collocated_ref_idx의 값은 0에서 NumRefIdxActive [0] -1 까지를 포함하는 범위에 있어야 한다.
slice_type이 B와 같고 slice_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= 26 + init_qp_minus26 + slice_qp_delta (144)
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의 값보다 작거나 동일해야 한다.
- 0에서 NumRefIdxActive[0]-1까지를 포함하는 범위에 있는 i에 대한 각 레퍼런스 픽처 인덱스 RefPicList[0][i]에 대해, 레퍼런스 픽처 인덱스에 적용되는 루마 가중치(luma weight), Cb 자중치(weight), Cr 가중치(weight)는 각각 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의 값보다 작거나 동일해야 한다.
- 0에서 NumRefIdxActive[1]-1까지를 포함하는 범위에 있는 i에 대한 각 레퍼런스 픽처 인덱스 RefPicList[1][i]에 대해, 레퍼런스 픽처 인덱스에 적용되는 루마 가중치(luma weight), Cb 자중치(weight), Cr 가중치(weight)는 각각 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_ASDT_flag가 존재하지 않을 때, 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_ASDT_flag가 존재하지 않을 때, 0과 동일한 것으로 유추된다. pps_cr_qp_offset+slice_cr_qp_offset의 값은 -12에서 +12까지를 포함하는 범위에 있어야 한다.
slice_joint_cbcr_qp_offset은 Qp'CbCr의 값을 결정할 때 pps_joint_cbcr_qp_offset_value의 값에 더할 차이를 지정한다. slice_joint_cbcr_qp_offset의 값은 -12에서 +12까지를 포함하는 범위에 있어야 한다. slice_joint_cbcr_qp_offset이 존재하지 않으면, 0과 동일한 것으로 유추된다. pps_joint_cbcr_qp_offset_value+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_enabled_flag의 값은 0과 동일한 것으로 유추된다.
1과 동일한 slice_sao_luma_flag는 현재 슬라이스의 루마 컴포넌트에 대해 SAO가 활성화됨을 지정한다.
0과 동일한 slice_sao_luma_flag는 현재 슬라이스의 루마 컴포넌트에 대해 SAO가 비활성화됨을 지정한다. slice_sao_luma_flag가 존재하지 않는 경우, ph_sao_luma_enabled_flag와 동일한 것으로 유추된다.
1과 동일한 slice_sao_chroma_flag는 현재 슬라이스의 크로마 컴포넌트에 대해 SAO가 활성화됨을 지정하고; 0과 동일한 slice_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는 현재 슬라이스의 루마 컴포넌트에 적용되는 β 및 tC(2로 나눈 값)에 대한 디블로킹 파라미터 오프셋을 지정한다. 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인 slice_lmcs_enabled_flag는 현재 슬라이스에 대해 크로마 스케일링이 있는 루마 매핑이 활성화되지 않음을 지정한다. slice_lmcs_enabled_flag가 없으면, 0과동일한 것으로 유추된다.
1과 동일한 slice_scaling_list_present_flag는 현재 슬라이스에 대해 사용되는 스케일링 목록 데이터가 참조된 스케일링 목록 APS에 포함된 스케일링 목록 데이터에 기초하여 유도되며, aps_params_type은 SCALING_APS와 동일하고 adapt_parameter_set_id는 ph_scaling_list_aps_id와 동일하는 것을 지정한다.
0과 동일한 slice_scaling_list_present_flag는 현재 픽처에 사용된 스케일링 목록 데이터가 7.4.3.21절에 명시된 유도된 디폴트 스케일링 목록(default scaling list) 데이터임을 지정한다. 존재하지 않을 경우, slice_scaling_list_present_flag의 값은 0과 동일하도록 유추된다.
현재 슬라이스의 진입점 수를 지정하는 변수 NumEntryPoints는 다음과 같이 유도된다:
Figure pct00069
Figure pct00070
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을 포함한다. 슬라이스 데이터의 제1 바이트는 바이트 0으로 간주된다. 존재하는 경우, 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터 부분에 나타나는 에뮬레이션 방지 바이트는 서브세트 식별을 위해 슬라이스 데이터의 일부로 계산된다. 서브세트 0은, 코딩된 슬라이스 데이터의 0부터 entry_point_offset_minus1 [0]까지의 바이트로 구성되고, k가 1에서 NumEntryPoints-1까지를 포함하는 범위에 있는 서브세트 k는 다음과 같이 정의된, firstByte [k] 및 lastByte [k]가 있는 코딩된 슬라이스 데이터의 firstByte [k] ~ lastByte [k]를 포함하는 바이트로 구성된다:
Figure pct00071
lastByte [k] = firstByte [k] +entry_point_offset_minus1 [k] (147)
마지막 서브세트(서브세트 인덱스가 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] 신택스 요소의 값을 무시해야 한다. 이 값은 이 버전의 사양에 지정된 프로필에 대한 디코더 적합성에 영향을 미치지 않는다.
3.7. 트랜스폼 유닛 신택스(슬라이스 데이터)
최신 VVC 초안 텍스트에서 트랜스폼 유닛 신택스 및 시맨틱은 다음과 같다:
Figure pct00072
Figure pct00073
Figure pct00074
Figure pct00075
Figure pct00076
Figure pct00077
트랜스폼 계수 레벨은 TransCoeffLevel [x0] [y0] [cIdx] [xC] [yC] 어레이로 표시된다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다. 어레이 인덱스 cIdx는 컬러 컴포넌트에 대한 표시자(indicator)를 지정한다: Y의 경우, 0, Cb의 경우, 1, Cr의 경우, 2와 동일하다. 어레이 인덱스 xC 및 yC는 현재 트랜스폼 블록 내에서 트랜스폼 계수 위치(xC, yC)를 지정한다. TransCoeffLevel [x0] [y0] [cIdx] [xC] [yC]의 값이 7.3.10.11절에 지정되지 않은 경우, 0과 동일한 것으로 유추된다.
1과 동일한 tu_cbf_cb [x0] [y0]은 Cb 트랜스폼 블록이 0이 아닌 하나 이상의 트랜스폼 계수 레벨을 포함하는 것을 지정한다. 어레이 인덱스 x0, y0은 고려되는 트랜스폼 블록의 왼쪽 상단 위치(x0, y0)를 지정한다.
tu_cbf_cb [x0] [y0]이 없으면, 그 값은 0과 동일한 것으로 유추된다.
tu_cbf_cr [x0] [y0]이 1이면 Cr 트랜스폼 블록이 0이 아닌 하나 이상의 트랜스폼 계수 레벨을 포함한다는 것을 지정한다. 어레이 인덱스 x0, y0은 고려되는 트랜스폼 블록의 왼쪽 상단 위치(x0, y0)를 지정한다.
tu_cbf_cr [x0] [y0]이 없으면, 그 값은 0과 동일한 것으로 유추된다.
tu_cbf_luma [x0] [y0]이 1이면 루마 트랜스폼 블록이 0이 아닌 하나 이상의 트랜스폼 계수 레벨을 포함한다는 것을 지정한다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다.
tu_cbf_luma [x0] [y0]이 없으면, 그 값은 다음과 같이 유추된다:
- cu_sbt_flag가 1이고 다음 조건 중 하나가 참인 경우, tu_cbf_luma [x0] [y0]은 0과 동일한 것으로 유추된다:
- subTuIndex는 0이고 cu_sbt_pos_flag는 1이다.
- subTuIndex는 1이고 cu_sbt_pos_flag는 0이다.
- 그렇지 않고, treeType이 DUAL_TREE_CHROMA와 같으면, tu_cbf_luma [x0] [y0]이 0과 동일한 것으로 유추된다.
- 그렇지 않으면, tu_cbf_luma [x0] [y0]이 1과 동일한 것으로 유추된다.
tu_joint_cbcr_residual_ [x0] [y0] 은 크로마 컴포넌트 Cb와 Cr 모두에 대한 잔차 샘플이 단일 트랜스폼 블록으로 코딩되는지 여부를 지정한다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다.
1과 동일한 tu_joint_cbcr_residual_flag [x0] [y0]은 트랜스폼 유닛 신택스가 Cb 및 Cr 모두에 대한 잔차 샘플이 유도되는 단일 트랜스폼 블록에 대한 트랜스폼 계수 레벨을 포함한다는 것을 지정한다.
0과 동일한 tu_joint_cbcr_residual_flag [x0][y0]은 크로마 컴포넌트의 트랜스폼 계수 레벨이 신택스 요소 tu_cbf_cb[x0][y0] 및 tu_cbf_cr[x0][y0]에 의해 표시되는 바와 같이 코딩됨을 지정한다.
ttu_joint_cbcr_residual_flag[ x0 ][ y0 ]이 존재하지 않으면, 0과 동일한 것으로 유추된다.
tu_joint_cbcr_residual_flag[ x0 ][ y0 ], tu_cbf_cb[ x0 ][ y0 ] 및 tu_cbf_cr [x0] [y0] 에 따라, 변수 TuCResMode[x0] [y0] 은 다음과 같이 유도된다:
tu_joint_cbcr_residual_flag[ x0 ][ y0 ]이 0과 같으면, 변수 TuCResMode [x0] [y0] 은 0으로 설정된다.
그렇지 않으면, tu_cbf_cb [x0] [y0] 이 1과 같고 tu_cbf_cr [x0] [y0] 이 0이면, 변수 TuCResMode[x0] [y0] 은 1로 설정된다.
그렇지 않으면, tu_cbf_cb [x0] [y0] 이 1과 같으면, 변수 TuCResMode [x0] [y0] 은 2로 설정된다.
그렇지 않으면, 변수 TucresMode [x0] [y0] 이 3으로 설정된다.
cu_qp_delta_abs는 현재 코딩 유닛의 양자화 파라미터와 그 예측 간의 차이 CuQpDeltaVal의 절대값을 지정한다.
cu_qp_delta_sign_flag는 CuQpDeltaVal의 부호를 다음과 같이 지정한다:
- cu_qp_delta_sign_flag가 0이면, 대응하는 CuQpDeltaVal은 양수 값을 갖는다.
- 그렇지 않은 경우(cu_qp_delta_sign_flag가 1임) 대응하는 CuQpDeltaVal은 음수 값을 갖는다.
cu_qp_delta_sign_flag가 존재하지 않는 경우, 0과 동일한 것으로 유추된다.
cu_qp_delta_abs가 있는 경우, 변수 IsCuQpDeltaCoded 및 CuQpDeltaVal은 다음과 같이 유도된다:
IsCuQpDeltaCoded = 1 (187)
CuQpDeltaVal= cu_qp_delta_abs * (1 -2 *cu_qp_delta_sign_flag) (188)
CuQpDeltaVal의 값은 -(32 + QpBdOffset /2)에서 +(31 +QpBdOffset /2)까지를 포함하는 범위에 있어야 한다.
cu_chroma_qp_offset_flag가 존재하고 1과 같을 때 cb_qp_offset_list[]의 항목이 CuQpOffset Cb의 값을 결정하는 데 사용됨을 지정하고, cr_qp_offset_list[]의 대응하는 항목은 CuQpOffset Cr의 값을 결정하는 데 사용되고, joint_cbcr_qp_offset_list[]의 대응하는 항목은 CuQpOffset CbCr의 값을 결정하는 데 사용된다. 0과 동일한 cu_chroma_qp_offset_flag는 이러한 목록이 CuQpOffset Cb, CuQpOffset Cr 및 CuQpOffset CbCr 값을 결정하는 데 사용되지 않음을 지정한다.
cu_chroma_qp_offset_idx는 존재하는 경우, CuQpOffsetCb, CuQpOffset Cr 및 CuQpOffset C의 값을 결정하는 데 사용되는 cb_qp_offset_list [] , cr_qp_offset_list [] 및 joint_cbcr_qp_offset_list []에 대한 인덱스를 지정한다. 존재하는 경우, cu_chroma_qp_offset_idx의 값은 0에서 chroma_qp_offset_list_len_minus1까지를 포함하는 범위에 있어야 한다. 존재하지 않을 때, cu_chroma_qp_offset_idx의 값은 0과 동일한 것으로 유추된다. cu_chroma_qp_offset_flag가 있는 경우, 다음이 적용된다:
- 변수 IsCuChromaQpOffsetCoded는 1로 설정된다.
- 변수 CuQpOffsetCb, CuQpOffset Cr 및 CuQpOffset CbCr 은 다음과 같이 유도된다:
- cu_chroma_qp_offset_flag가 1이면, 다음이 적용된다:
CuQpOffsetCb= cb_qp_offset_list [cu_chroma_qp_offset_idx] (189)
CuQpOffsetCr= cr_qp_offset_list [cu_chroma_qp_offset_idx] (190)
CuQpOffsetCbCr= joint_cbcr_qp_offset_list [cu_chroma_qp_offset_idx] (191)
- 그렇지 않으면(cu_chroma_qp_offset_flag가 0과 동일), CuQpOffsetCb, CuQpOffsetCr' 및 CuQpOffsetCbCr 이 모두 0으로 설정된다.
transform_skip_flag [x0] [y0] [cIdx]은 트랜스폼이 연관 트랜스폼 블록에 적용되는지 여부를 지정한다. 어레이 인덱스 x0, y0은 픽처의 왼쪽 상단 루마 샘플을 기준으로 고려된 트랜스폼 블록의 왼쪽 상단 루마 샘플의 위치(x0, y0)를 지정한다. 어레이 인덱스 cIdx는 컬러 컴포넌트에 대한 표시자를 지정한다; Y의 경우, 0, Cb의 경우, 1, Cr의 경우, 2와 같다.
1과 동일한 transform_skip_flag [x0] [y0] [cIdx]는 연관된 트랜스폼 블록에 컬러 트랜스폼이 적용되지 않음을 지정한다.
0과 동일한 transform_skip_flag [x0] [y0] [cIdx]는 연관된 트랜스폼 블록에 컬러 트랜스폼이 적용되는지 여부가 다른 신택스 요소에 의존하는지 여부를 지정한다.
transform_skip_flag [x0] [y0] [cIdx]가 없으면, 다음과 같이 유추된다:
- BdpcmFlag [x0] [y0] [cIdx]가 1과 같으면, transform_skip_flag [x0] [y0] [cIdx]가 1과 동일한 것으로 유추된다.
- 그렇지 않으면, (BdpcmFlag [x0] [y0] [cIdx]는 0과 동일함), transform_skip_flag [x0] [y0] [cIdx]는 0과 동일한 것으로 유추된다.
4. 개시된 실시예에 의한 기술적 문제의 예
SH, PPS, APS 신택스 요소(SE)에 대한 기존 설계에는 다음과 같은 문제가 있다:
1) 최신 VVC 초안 텍스트에서 APS 신택스 요소 scaling_list_chroma_present_flag는 SCALING APS에서 시그널링된 QM(scaling/quantization matrices)의 수를 제어하기 위해 시그널링되며, 즉, scaling_list_chroma_present_flag가 1과 같을 때 루마와 크로마 모두에 대해 28개의 QM이 시그널링되고; 그렇지 않으면(scaling_list_chroma_present_flag가 0과 같을 때), 10개의 QM이 루마에 대해서만 시그널링된다. 현재 scaling_list_chroma_present_flag의 값은 ChromaArrayType(SPS 신택스 요소에서 유도됨), 즉, scaling_list_chroma_present_flag의 값은 ChromaArrayType이 0과 동일하지 않을 때 1과 동일해야 하는 반면, scaling_list_chroma_present_flag의 값은 ChromaArrayType이 0과 동일할 때 0과 동일해야 한다. 시맨틱의 이러한 제약은, APS가 ChromaArrayType의 다른 값과 연관될 수 있는, 상이한 SPS를 참조하는 픽처(또는 픽처의 슬라이스)에 적용될 수 있으므로, 발생해서는 안 되는 SPS에 대한 APS 종속성을 도입한다.
a. 또한, 현재, 블록이 사용자 정의 스케일링 목록으로 코딩되면, 루마와 크로마(사용 가능한 경우) 모두 사용자 정의 스케일링 목록을 적용해야 하고, 즉, 루마 및 크로마에 대한 사용자 정의 스케일링 목록은 개별적으로 켜고 끌 수 없다. 이러한 설계는 효율적이지 않거나 유연하지 않을 수 있다.
2) 최신 VVC 초안 텍스트에서, LMCS APS 신택스 구조가 시그널링될 때, ChromaArrayType이 0과 같은지 여부(예를 들어, 비디오 컨텐츠에 크로마 컴포넌트가 없음)에 관계없이 크로마 잔차 스케일링과 관련된 APS 신택스 요소는 항상 시그널링된다. 이는 비디오 컨텐츠에서 처리되는 크로마가 없는 동안 크로마 관련 신택스 요소의 불필요한 전송을 유발할 수 있다.
3) 최신 VVC 초안 텍스트에서 SH 신택스 요소
slice_ts_residual_coding_disabled_flag는 트랜스폼 스킵 블록에 대해 트랜스폼 스킵 기반 잔차 코딩(TSRC) 또는 일반 잔차 코딩(RRC)이 사용되는지 여부를 지정하는 데 사용된다. 그러나 지금은 SPS 레벨 트랜스폼 스킵의 비활성화와 관계없이 slice_ts_residual_coding_disabled_flag가 항상 SH에서 시그널링된다. sps_transform_skip_enabled_flag인 경우, transform_skip_flag는 항상 0이고, TSRC 및 RRC를 전환하는 조건(!transform_skip_flag [xC] [yC] [1] ||slice_ts_residual_coding_disabled_flag)이 항상 참(true)인, 그러한 경우에, slice_ts_residual_coding_disabled_flag는 의미가 없게 된다.
a. 또한, 현재 non-TS 블록은 RRC만 사용할 수 있고 TSRC와 RRC 사이를 전환할 수 없기 때문에 non-TS 블록 압축에 비효율적일 수 있다.
4) 최신 VVC 초안 텍스트에서 다중 레벨 제어는 루마 블록에 대한 cu_qp_delta를 활성화하는 데 사용되고, 즉, 먼저 PPS 켜짐/꺼짐 제어 플래그 cu_qp_delta_enabled_flag을 시그널링하고, 다음에 PH에 양자화 그룹(QG) 크기를 지정하고, 마지막으로 각 QG에서 cu_qp_delta_abs의 값을 시그널링한다. 이와 같이 설계하면, 픽처가 여러 슬라이스로 구성된 경우, 일부 슬라이스는 cu qp delta를 사용하지만 다른 슬라이스는 사용하지 않을 때, 블록 레벨 cu_qp_delta_abs는 여전히 모든 QG에 대해 여전히 시그널링되어야 한다. 따라서 피할 수 있는, 블록 레벨 비트 낭비(block level bits waste)가 있다.
5) 최신 VVC 초안 텍스트에서, PPS 신택스 요소 single_slice_per_subpic_flag가 0일 때, PPS를 참조하는 픽처의 각 서브픽처는 하나 이상의 직사각형 슬라이스로 구성될 수 있다. single_slice_per_subpic_flag가 0일 때, 이러한 PPS를 참조하는 픽처의 경우, 다음과 같은 경우가 발생할 수 있다:
a. 중복 사례: sps_num_subpics_minus1이 0보다 크지만 각 서브픽처에 슬라이스가 하나만 있는 경우. 이러한 경우, 각 픽처는 다수의 서브픽처와 다수의 직사각형 슬라이스를 포함하지만 single_slice_per_subpic_flag는 0과 동일하므로, num_slices_in_pic_minus1이 시그널링될 필요가 있다. 그러나, 이러한 경우는 개념적으로 1인 single_slice_per_subpic_flag와 동일하고 이 SE를 시그널링할 필요가 전혀 없기 때문에 중복 시그널링된다.
b. 중복 사례: sps_num_subpics_minus1이 0이고 PPS를 참조하는 각 픽처에 하나의 슬라이스만 있는 경우. 이러한 경우, 각 픽처는 단 하나의 슬라이스로 구성된 하나의 서브픽처를 포함하지만, single_slice_per_subpic_flag는 여전히 0과 같도록 허용되므로, num_slices_in_pic_minus1이 시그널링될 필요가 있다. 그러나, 이러한 경우는 개념적으로 1인 single_slice_per_subpic_flag와 동일하고 이 SE를 시그널링할 필요가 전혀 없기 때문에 중복 시그널링된다.
c. 또한, 위의 모든 중복 사례가 금지/회피되면, 0과 동일한 single_slice_per_subpic_flag는 픽처에 여러 개의 서브픽처가 있거나(각 서브픽처에 단일 슬라이스 또는 여러 슬라이스가 포함됨) 픽처에 여러 슬라이스이 있는 경우에 항상 사용되는(각 픽처는 단일 서브픽처 또는 여러 서브픽처를 포함) 것이 밝혀질 것이다. 그리고 두 경우 모두에서, num_slices_in_pic_minus1의 값은 항상 1보다 크다. 또한 PPS 신택스 요소 tile_idx_delta_present_flag를 조건부로 시그널링할 필요가 없는 것으로 밝혀졌다.
6) 최신 VVC 초안 텍스트에서, 타일의 너비 및 높이와 같은 타일 레이아웃이 암시적 유추과 연관된 명시적 시그널링 방식으로 설계되었다. 픽처가 동일한 높이의 타일이 있는 여러 타일 행으로 나누어진 경우, 현재 디자인에서는 제1 타일 행의 높이를 시그널링할 수 있으며 나머지 타일 행의 높이가 유추될 수 있다. 그렇지 않고, 픽처가 높이가 다른 타일이 있는 여러 타일 행으로 나누어지면, 각 타일 행의 높이를 명시적으로 표시한다. 그렇지 않고, 픽처가 높이가 다른 처음 몇 개의 타일 행과 높이가 같은 마지막 몇 개의 타일 행이 있는 여러 타일 행으로 나누어진 경우, 그런 다음 처음 몇 개의 타일 행의 높이와 마지막 몇 개의 타일 행 중 하나만 명시적으로 신호를 보낸 다음, 동일한 높이의 나머지 타일 행의 높이가 시그널링 없이 유추된다. 현재 디자인은 명시적 신호와 암시적 유추을 결합하여 이 세 가지 경우에 잘 작동한다. 그러나, 픽처가 동일한 높이의 처음 몇 개의 타일 행과 다른 높이의 마지막 몇 개의 타일 행이 있는 여러 타일 행으로 나누어지는 경우가 있다. 이러한 경우, 암시적 유추을 적용할 수 없고 모든 타일 행의 높이를 명시적으로 시그널링 해야 하기 때문에, 현재 디자인은 그다지 효율적이지 않은 것 같다. 마찬가지로, 타일 열 시그널링 및 직사각형 슬라이스 레이아웃 시그널링, 즉 슬라이스가 타일보다 작은 경우, 슬라이스 높이 시그널링에 대한 동일한 상황이 있다. 개선을 위해 여기에서 수정 사항을 적용할 수 있다.
7) 현재, GCI 신택스 요소 no_aps_constraint_flag는 nuh_unit_type이 PREFIX_APS_NUT 또는 SUFFIX_APS_NUT와 동일한 NAL 유닛을 비활성화하는 데 사용된다. ALF APS가 없는지 여부와 관련하여 초안 텍스트에서 더 많은 제약이 해결될 것으로 예상된다.
8) 현재, 적합성 윈도우 파라미터는 PPS에 의해 참조되는 SPS에서 시그널링된 최대 픽처 폭 및 높이와 픽처 너비 및 높이가 동일한 경우를 포함하여 PPS에서 항상 시그널링되는 반면, 최대 픽처 너비와 높이를 가진 픽처에 대한 적합성 윈도우 파라미터도 SPS에서 시그널링된다. PPS에서 최대 픽처 너비와 높이를 가진 픽처에 대한 적합성 윈도우 파라미터의 시그널링이 중복된다.
5. 실시예 및 기술의 예시 목록
위와 같은 문제점과 언급되지 않은 다른 문제점을 해결하기 위해 아래와 같은 방법을 제시한다. 기술적 솔루션은 일반적인 개념을 설명하기 위한 예시로 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 또한, 이들 기술적 솔루션은 개별적으로 또는 임의의 방식으로 조합하여 적용될 수 있다.
아래 설명에서, 최신 작업 초안 JVET-Q2001-vD를 기반으로 한 보호 텍스트 변경과 관련하여, 삭제된 부분은 열림 및 닫힘 이중 대괄호(예를 들어, [ [] ] )로 강조 표시되고 이중 대괄호 사이에는 삭제된 텍스트가 표시되고, 추가된 부분은 굵은 기울임꼴이다.
1. 첫 번째 문제를 해결하기 위해 SPS 신택스 요소에 의존하는 APS 신택스 요소 scaling_list_chroma_present_flag의 값과 관련하여, 다음 접근법 중 하나 이상이 개시된다:
1) 하나의 예에서, VPS ID 및/또는 SPS ID 및/또는 PPS ID가 APS 신택스 구조에 추가될 수 있으며, 즉, adapt_parameter_set_rbsp(), 예를 들어, adapt_parameter_set_rbsp()의 신택스 구조는 다음과 같이 변경될 수 있다:
Figure pct00078
aps_seq_parameter_set_id는 APS에 대한 sps_seq_parameter_set_id의 값을 지정한다. aps_seq_parameter_set_id의 값은 0에서 15까지를 포함하는 범위에 있어야 한다. aps_seq_parameter_set_id의 값은 CLVS에서 코딩된 픽처가 참조하는 모든 APS에서 동일해야 한다.
a. 추가적으로, 대안적으로, 크로마 스케일링 목록의 시그널링은 ChromaArrayType의 값에 기초하여 명시적으로 조절될 수 있으며, 예를 들어, scaling_list_data()의 신택스 테이블은 다음과 같이 변경될 수 있다:
Figure pct00079
그리고 scaling_list_chroma_present_flag의 시맨틱은 다음과 같이 변경된다:
[[1과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하는 것을 지정한다.
0과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하지 않음을 지정한다. scaling_list_chroma_present_flag가 ChromaArrayType이 0과 동일할 때, 0과 동일해야 하고, ChromaArrayType이 0과 같지 않을 때 1과 동일해야 하는 것이 비트스트림 적합성의 요구사항이다. ] ]
2) 하나의 예에서, APS와 연관된 VPS 및/또는 SPS 및/또는 PPS는 암시적으로 유도될 수 있다.
a. 예를 들어, APS가 비디오 유닛(픽처 헤더 또는 슬라이스 헤더와 같은)에 의해 참조되고 비디오 유닛이 VPS 및/또는 SPS 및/또는 PPS에 의존하는 경우, APS는 VPS 및/또는 SPS 및/또는 PPS와 암시적으로 연관된다.
3) 하나의 예에서, 사용자 정의 확장 목록(user-defined scaling list)(명시적 확장 목록이라고도 함)을 사용하는 대신, 명시적 스케일링 목록이 루마 블록에 적용되는 경우에도 크로마 블록에 플랫 양자화(flat quantization)(디폴트 스케일링 목록)가 사용될 수 있다.
a. 대안적으로, 또한, 루마 블록에 대한 명시적 스케일링 목록이 비트스트림에서 시그널링되는 경우에도, 크로마 블록에 대한 명시적 스케일링 목록이 시그널링되지 않을 수 있다.
4) 대안적으로, scaling_list_chroma_present_flag의 값은 ChromaArrayType의 값과 분리될 수 있다.
a. 상이한 컬러 컴포넌트(예를 들어, 루마 및 크로마 블록)에 대한 명시적 스케일링 목록 또는 디폴트 스케일링 목록을 사용할지 여부에 대한 표시는 별도로 시그널링/제어될 수 있다.
i. 하나의 예에서, 신택스 요소(예를 들어, 하나 이상의 플래그)는 루마 및/또는 크로마 컴포넌트에 대한 사용자 정의 스케일링 목록(명시적 스케일링 목록이라고도 함)을 활성화할지 여부를 지정하기 위해 SPS/PPS/PH/SH에 추가될 수 있다.
ii. 예를 들어, 플랫 양자화(디폴트 스케일링 목록)와 사용자 정의 스케일링 목록 간에 전환할 수 있도록, 루마 트랜스폼 계수를 만들기 위해 SPS에 플래그가 추가될 수 있다.
iii. 예를 들어, 하나 이상의 플래그가, 크로마-U 및/또는 크로마-V 트랜스폼 계수가 플랫 양자화(디폴트 스케일링 목록)와 사용자 정의 스케일링 목록 사이를 전환할 수 있도록 하기 위해, SPS에 추가될 수 있다.
b. 예를 들어, scaling_list_chroma_present_flag는 ChromaArrayType이 0일 때 1일 수 있다.
i. 하나의 예에서, 4:0:0 크로마 포맷의 코딩 픽처에 대해, N(N=28과 같은) 스케일링 매트릭스 세트가 APS로 시그널링될 수 있다.
ii. 하나의 예에서, 1과 동일한separate_colour_plane_flag를 갖는 4:4:4 크로마 포맷의 코딩 픽처에 대해, 스케일링 매트릭스의 M 세트(예를 들어, M=28)가 APS에서 시그널링될 수 있다
a) 예를 들어, 1과 동일한 split_colour_plane_flag 및 APS에서 시그널링된 M(예를 들어, M=28와 같은) 스케일링 매트릭스 세트의 경우, Y(루마), U(Cb) 및 V(Cr) 채널 트랜스폼 계수 각각 luma-Y-channel로 처리될 수 있고, Y, U, 및 V 트랜스폼 계수에 대한 스케일링 행렬 식별자 변수 id는 Y-컴포넌트(예를 들어, 0의 값)과 동일한 컬러 컴포넌트와 관련하여 유도된다.
b) 대안적으로, separate_colour_plane_flag가 1과 동일하고 APS에서 시그널링되는 스케일링 매트릭스 세트의 M(예를 들어, M=28)과 동일한 경우, luma-Y 트랜스폼 계수에 대한 스케일링 매트릭스 식별자 변수 id는 Y-컴포넌트와 동일한 컬러 컴포넌트(예를 들어, 0의 값)과 관련하여 유도되고, 크로마-U에 대한 스케일링 매트릭스 식별자 변수 id는 U-컴포넌트와 동일한 컬러 컴포넌트(예를 들어, 1의 값)와 관련하여 유도되고, 크로마-V에 대한 스케일링 매트릭스 식별자 변수 id는 V-컴포넌트(예를 들어, 2의 값)과 동일한 컬러 컴포넌트와 관련하여 유도된다.
c. 예를 들어, scaling_list_chroma_present_flag는 ChromaArrayType이 1일 때 0일 수 있다.
i. 하나의 예에서, 크로마 트랜스폼 계수가 사용자 정의 스케일링 목록을 사용하도록 허용되는지 여부는 scaling_list_chroma_present_flag의 값에 따라 달라질 수 있다.
a) 예를 들어, scaling_list_chroma_present_flag가 0일 때, 사용자 정의 스케일링 목록은 sps_scaling_list_enabled_flag, ph_scaling_list_enabled_flag 및 slice_scaling_list_enabled_flag의 값에 관계없이 크로마 트랜스폼 계수에 사용할 수 없다(예를 들어, 크로마에 대한 사용자 정의 스케일링 목록의 사용을 지정하는 데 사용되는 추가 플래그의 값은 0 또는 1과 같은 특정 숫자와 같아야 함) .
b) 예를 들어, scaling_list_chroma_present_flag가 1인 경우, 사용자 정의 스케일링 목록은 크로마 트랜스폼 계수에 사용되도록 허용될 수 있다.
ii. 하나의 예에서, 0과 동일한separate_colour_plane_flag를 갖는, 4:2:0, 및/또는 4:2:2 크로마 포맷, 및/또는 4:4:4 크로마 포맷의 코딩 픽처에 대해, N(N=10과 같은) 스케일링 매트릭스 세트가 APS에서 시그널링될 수 있다.
a) 예를 들어, ChromaArrayType이 0보다 크고 N(예를 들어, N=10) 스케일링 매트릭스 세트가 APS에서 시그널링되는 경우, U 및/또는 V 트랜스폼 계수에 대한 스케일링 행렬은 Y 트랜스폼 계수의 스케일링 행렬의 시그널링된 N 세트로부터 유도될 수 있다.
b) 대안적으로, ChromaArrayType이 0보다 크고 N(예를 들어, N=10) 스케일링 매트릭스 세트가 APS에서 시그널링되는 경우, U 및/또는 V 트랜스폼 계수는 사용자 정의 스케일링 목록을 사용하지 않을 수 있다(대신, U 및/또는 V 트랜스폼 계수는 기본 스케일링 인자로 플랫 양자화를 사용할 수 있음).
d. 예를 들어, ChromaArrayType에 기반한 scaling_list_chroma_present_flag에 관한 시맨틱적 제약은 예를 들어 다음과 같이 신택스 요소 scaling_list_chroma_present_flag와 연관되지 않을 수 있다:
1과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하는 것을 지정한다. 0과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하지 않음을 지정한다. [[ChromaArrayType이 0일 때 scaling_list_chroma_present_flag가 0과 동일해야 하고, ChromaArrayType이 0과 같지 않을 때 1이어야 하는 것은 비트스트림 적합성의 요구사항이다. ] ]
e. 예를 들어, ChromaArrayType에 기반한 scaling_list_chroma_present_flag에 대한 시맨틱적 제약은 다음과 같이 변경될 수 있다:
1과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하는 것을 지정한다.
0과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하지 않음을 지정한다. ChromaArrayType이 0과 동일할 때, scaling_list_chroma_present_flag가 0[[, ChromaArrayType이 0이 아닐 때 1과 동일해야 함]이 비트스트림 적합성의 요구사항이다. ] ]
5) 대안적으로, PH 및/또는 SH 신택스 요소와 관련된 제약이 추가될 수 있으며,
scaling_list_chroma_present_flag의 값을 PH/SH 신택스 요소에 의해 유도된 ChromaArrayType에 따라 특정 값(예를 들어, 0 또는 1)으로 제한하기 위해, 예를 들어 다음과 같이:
하나의 예에서, ph_scaling_list_aps_id의 시맨틱은 다음과 같이 변경된다:
ph_scaling_list_aps_id는 스케일링 목록 APS의 adaptation_parameter_set_id를 지정한다. SCALING_APS와 동일한 aps_params_type 및 ph_scaling_list_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
APS NAL 유닛의 scaling_list_chroma_present_flag 값은 aps_params_type이 SCALING_APS와 동일하고, ph_scaling_list_aps_id와 동일한 adaptation_parameter_set_id는 ChromaArrayType==0?0과 동일해야 한다: 1.
대안적으로, ph_scaling_list_aps_id의 시맨틱은 다음과 같이 변경된다:
ph_scaling_list_aps_id는 스케일링 목록 APS의 adaptation_parameter_set_id를 지정한다. SCALING_APS와 동일한 aps_params_type 및 ph_scaling_list_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ChromaArrayType이 1과 동일할 때, SCALING_APS와 동일한 aps_params_type 및 ph_scaling_list_aps_id와 동일한 adapt_parameter_set_id을 갖는 APS NAL유닛의 scaling_list_chroma_present_flag 값은 1과 동일해야 한다
대안적으로, ph_scaling_list_aps_id의 시맨틱은 다음과 같이 변경된다:
ph_scaling_list_aps_id는 스케일링 목록 APS의 adaptation_parameter_set_id를 지정한다. SCALING_APS와 동일한 aps_params_type 및 ph_scaling_list_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ChromaArrayType이 0과 동일할 때, SCALING_APS와 동일한 aps_params_type 및 ph_scaling_list_aps_id와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 scaling_list_chroma_present_flag 값은 0과 동일해야 한다.
그리고 APS SE의 시맨틱은 다음과 같이 변경된다:
1과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하는 것을 지정한다. 0과 동일한 scaling_list_chroma_present_flag는 크로마 스케일링 목록이 scaling_list_data()에 존재하지 않음을 지정한다. [[ChromaArrayType이 0일 때 scaling_list_chroma_present_flag가 0과 동일해야 하고, ChromaArrayType이 0과 같지 않을 때 1이어야 하는 것은 비트스트림 적합성의 요구사항이다. ] ]
2. ChromaArrayType이 0인 경우의 불필요한 크로마 관련 APS 신택스 요소 시그널링과 관련하여, 두 번째 문제를 해결하기 위해 다음 접근법 중 하나 이상이 개시된다:
1) 하나의 예에서, 크로마 잔차 스케일링 관련 APS 신택스 요소의 존재를 제어하기 위해 신택스 요소(예를 들어, 플래그)가 APS 신택스 구조 lmcs_data()에 추가될 수 있다(예를 들어, lmcs_delta_abs_crs, lmcs_delta_sign_crs_flag 등)
a. 예를 들어, ChromaArrayType이 0과 동일할 때, 크로마 잔차 스케일링 관련 APS 신택스 요소(예를 들어, lmcs_delta_abs_crs, lmcs_delta_sign_crs_flag, et al.)는 시그널링이 허용되지 않도록 요구되며, 예를 들어 추가된 플래그는 0 또는 1과 같은 특정 값과 동일해야 한다.
b. 예를 들어, ChromaArrayType이 0과 동일하지 않은 경우, 크로마 잔차 스케일링 관련 APS 신택스 요소(예를 들어, lmcs_delta_abs_crs, lmcs_delta_sign_crs_flag, et al.)는 시그널링될 필요가 있으며, 예를 들어, 추가된 플래그는 0 또는 1과 같은 특정 값과 동일해야 한다.
c. 예를 들어, 현재 슬라이스가 크로마 잔차 스케일링을 사용하도록 허용되는지 여부는 추가된 플래그에 따라 달라질 수 있으며, 예를 들어, 크로마 잔차 스케일링 관련 APS 신택스 요소가 시그널링되지 않음을 나타내는 추가된 플래그가 있으면, 크로마 잔차 스케일링은 sps_lmcs_enabled_flag, ph_lmcs_enabled_flag, ph_chroma_residual_scale_flag 및 sh_lmcs_enabled_flag의 값에 관계없이 사용되지 않는다.
2) ChromaArrayType의 값에 관한 lmcs_delta_abs_crs의 값을 제한하기 위해 PH/SH/APS 신택스 요소의 시맨틱 아래에 비트스트림 제한이 추가될 수 있으며, 예를 들어 다음과 같다:
ph_lmcs_aps_id는 PH와 연관된 슬라이스가 참조하는 LMCS APS의 aps_parameter_set_id를 지정한다. LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ChromaArrayType이 0과 동일할 때, LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 lmcs_delta_abs_crs 값은 0과 동일해야 한다.
대안적으로, ph_lmcs_aps_id의 시맨틱이 다음과 같이 변경된다:
ph_lmcs_aps_id는 PH와 연관된 슬라이스가 참조하는 LMCS APS의 aps_parameter_set_id를 지정한다. LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ChromaArrayType이 1과 동일할 때, LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 lmcs_delta_abs_crs 값은 0보다 커야 한다.
대안적으로, ph_lmcs_aps_id의 시맨틱이 다음과 같이 변경된다:
ph_lmcs_aps_id는 PH와 연관된 슬라이스가 참조하는 LMCS APS의 aps_parameter_set_id를 지정한다. LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 adapt_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId보다 작거나 동일해야 한다.
ChromaArrayType이 0과 같다면, LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 0과 동일해야 한다. 그렇지 않으면, LMCS_APS와 동일한 aps_params_type 및 ph_lmcs_aps_id와 동일한 aps_parameter_set_id를 갖는 APS NAL 유닛의 lmcs_delta_abs_crs 값은 0보다 커야 한다.
3. 위의 예에서 'ChromaArrayType'이라는 용어는 '컬러 형식이 4:0:0과 동일한지 확인하는 것으로 대체될 수 있다.
4. 세 번째 문제를 해결하기 위한 RRC 및 TSRC의 사용과 관련하여 다음 접근 방식 중 하나 이상이 개시된다:
1) TSRC 활성화/비활성화 플래그(예를 들어, slice_ts_residual_coding_disabled_flag)의 시그널링은 트랜스폼 스킵이 활성화되었는지 여부(예를 들어, SPS에서 sps_transform_skip_enabled_flag)에 따라 조절될 수 있다.
a. 하나의 예에서, 다음이 적용될 수 있다:
Figure pct00080
b. 대안적으로, 또한, slice_ts_residual_coding_disabled_flag가 존재하지 않는 경우, 1과 동일한 것으로 유추된다.
2) 대안적으로, TSRC 활성화 플래그(예를 들어, slice_ts_residual_coding_disabled_flag)의 값은 SPS에서 sps_transform_skip_enabled_flag에 의해 제한될 수 있으며, 예를 들어, slice_ts_residual_coding_disabled_flag의 시맨틱은 다음과 같이 변경될 수 있다:
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] ] sps_transform_skip_enabled_flag가 0과 동일할 때, slice_ts_residual_coding_disabled_flag의 값은 [ [유추되어] ] [ [0] ] 1과 동일해야 한다.
3) 대안적으로, TSRC 활성화 플래그(예를 들어, slice_ts_residual_coding_disabled_flag)의 시그널링이 다른 신택스 요소에 대해 조건화되지 않은 경우, 그것은 항상 존재할 수 있고, 예를 들어, slice_ts_residual_coding_disabled_flag의 시맨틱은 다음과 같이 변경될 수 있다:
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과 동일한 것으로 유추된다. ] ]
4) 추가적으로, TSRC는 비-트랜스폼-스킵(non-transform-skip)(non-TS) 코딩된 블록(coded block)에 적용될 수 있다.
a. 하나의 예에서, 비-TS 블록에 대해 TSRC 또는 RRC를 활성화할지 여부를 지정하기 위해 하나 이상의 신택스 플래그가 추가될 수 있다.
i. 하나의 예에서, 하나 이상의 블록 레벨(CTU/CU/TU) 신택스 플래그가 현재 비디오 유닛이 TSRC 또는 RRC를 사용하고 있는지 여부를 지정하기 위해 추가될 수 있다.
ii. 추가적으로, 대안적으로, TSRC가 비디오 유닛에 대해 허용되는지 여부를 지정하기 위해 하나 이상의 하이 레벨(SPS/PPS/PH/SH) 신택스 플래그가 추가될 수 있다.
b. 하나의 예에서, 비-TS 코딩된 블록에 대해 TSRC를 사용할지 또는 비-TS 코딩된 블록에 대해 TSRC를 허용할지 여부는 블록에 대한 QP 값과 같은 코딩된 정보에 의존할 수 있다.
i. 하나의 예에서, QP가 X(X=4와 같은) 이하인 비-TS 블록의 경우, 잔차 코딩을 위해 TSRC 또는 RRC를 사용하는 것이 허용될 수 있다.
5. 네 번째 문제를 해결하기 위한 루마 블록에 대한 cu qp 델타의 온/오프 제어와 관련하여 다음 접근 방식 중 하나 이상이 개시된다:
a. 특정 슬라이스에 대한 cu qp 델타의 활성화 및/또는 비활성화을 제어하기 위해 SH 레벨 신택스 요소(예를 들어, slice_cu_qp_delta_enabled_flag에 의해 표현되는 플래그)가 추가될 수 있다.
i. 하나의 예에서, 제안된 slice_cu_qp_delta_enabled_flag의 존재는 PPS의 cu_qp_delta_enabled_flag에 따라 결정되며, 예를 들어, PPS의 cu_qp_delta_enabled_flag가 1인 경우에만, 제안된 slice_cu_qp_delta_enabled_flag는 시그널링되고, 그렇지 않으면 (PPS의 cu_qp_delta_enabled_flag는 0과 동일),
제안된 slice_cu_qp_delta_enabled_flag는 시그널링되지 않고 0과 같은 것으로 유추된다.
a) 대안적으로, 제안된 slice_cu_qp_delta_enabled_flag의 값은 PPS의 cu_qp_delta_enabled_flag의 값으로 제한되고, 즉, PPS의 cu_qp_delta_enabled_flag가 0과 동일할 때, 제안된 slice_cu_qp_delta_enabled_flag의 값은 0과 동일해야 한다.
ii. 하나의 예에서, PPS의 cu_qp_delta_enabled_flag는 SH들에서의 SH-레벨 cu qp 델타 활성화 플래그의 존재, 및/또는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에서의 cu_qp_delta_abs 및/또는 cu_qp_delta_sign_flag의 존재를 제어하기 위해 사용될 수 있다.
iii. 하나의 예에서, 신택스 구조는 다음과 같이 변경될 수 있다:
PPS 신택스 구조는 다음과 같이 변경된다:
Figure pct00081
1과 동일한 pps_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과 동일한 pps_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가 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하지 않음을 지정한다.
그리고 PH 신택스 구조는 다음과 같이 변경된다:
Figure pct00082
그리고 SH 신택스 구조는 다음과 같이 변경된다:
Figure pct00083
1과 동일한 cu_qp_delta_enabled_flag는 cu_qp_delta_abs가 트랜스폼 유닛 및 팔레트 코딩 신택스에 존재할 수 있음을 지정한다. 0과 동일한 cu_qp_delta_enabled_flag는 cu_qp_delta_abs가 트랜스폼 유닛 또는 팔레트 코딩 신택스에 존재하지 않음을 지정한다. 존재하지 않는 경우, sps_bdpcm_chroma_enabled_flag의 값은 0과 동일한 것으로 유추된다.
b. 추가적으로, 신택스 구조 팔레트_코딩() 및/또는 신택스 구조 transform_unit()에서 cu_qp_delta_abs의 존재는 제안된 slice_cu_qp_delta_enabled_flag에 대해 조건화되며, 예를 들어 제안된 slice_cu_qp_delta_enabled_flag의 값이 1과 동일한 경우에만 cu_qp_delta_abs가 시그널링된다; 그렇지 않으면(제안된 slice_cu_qp_delta_enabled_flag가 0과 동일함), cu_qp_delta_abs의 값이 시그널링되지 않고 0과 동일한 것으로 유추된다.
대안적으로, 크로마 cu qp 오프셋은 슬라이스 레벨 온/오프 플래그에 의해 제어되지 않을 수 있으며, 예를 들어 크로마 cu qp 오프셋이 현재 슬라이스에 적용되는지 여부는 PH/PPS/SPS 레벨 플래그에 의존할 수 있다.
c. 대안적으로, 특정 슬라이스에 대한 cu qp 델타의 활성화 및/또는 비활성화를 제어하기 위해 PH 레벨 신택스 요소(예를 들어, ph_cu_qp_delta_enabled_flag로 표시되는 플래그)가 추가될 수 있다.
6. PPS SE single_slice_per_subpic_flag, num_slices_in_pic_minus1, tile_idx_delta_present_flag의 설계와 관련하여 다섯 번째 문제를 해결하기 위해 다음 접근 방식 중 하나 이상이 개시된다:
a. 하나의 예에서, 제약은 예를 들어 다음과 같이 PH/SH/PPS 신택스 요소의 시맨틱에 추가될 수 있다:
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 값보다 크거나 동일해야 하는 것은 비트스트림 적합성의 요구사항이다.
sps_num_subpics_minus1이 0과 동일할 때, rect_slice_flag가 1과 동일하고, 픽처는 단 하나의 슬라이스를 포함하고 다른 픽처는 둘 이상의 슬라이스를 포함하고, 두 픽처는 서로 다른 PPS를 참조해야 한다.
b. 하나의 예에서, single_slice_per_subpic_flag의 시맨틱은 다음과 같이 변경될 수 있다:
1과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나의 직사각형 슬라이스로 구성된다는 것을 지정한다.
0과 동일한 single_slice_per_subpic_flag는 sps_num_subpics_minus1이 0보다 크면(이 경우, 각 픽처가 둘 이상의 슬라이스를 포함함), 각 서브픽처가 하나 이상의 직사각형 슬라이스로 구성될 수 있지만 모든 서브픽처의 각각이 하나의 직사각형 슬라이스만을 포함하는 것은 아님을 지정하고, 및 그렇지 않으면(sps_num_subpics_minus1은 0이고, 이 경우, 각 픽처에는 하나의 서브픽처만 포함됨) 각 픽처에는 둘 이상의 슬라이스가 포함된다. 존재하지 않을 때, single_slice_per_subpic_flag의 값은 0과 동일한 것으로 유추된다.
c. 하나의 예에서, 제약은 예를 들어 다음과 같이 single_slice_per_subpic_flag의 시맨틱에 추가될 수 있다:
1과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나의 직사각형 슬라이스로 구성된다는 것을 지정한다.
0과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나 이상의 직사각형 슬라이스로 구성될 수 있음을 지정한다. 존재하지 않을 때, single_slice_per_subpic_flag의 값은 0과 동일한 것으로 유추된다.
sps_num_subpics_minus1이 0이고 PPS를 참조하는 각 픽처에 하나의 슬라이스만 있을 때, single_slice_per_subpic_flag의 값은 1과 동일해야 한다.
d. 추가적으로, 대안적으로, 예를 들어 다음과 같이 single_slice_per_subpic_flag의 시맨틱에 제약이 추가될 수 있다:
1과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나의 직사각형 슬라이스로 구성된다는 것을 지정한다.
0과 동일한 single_slice_per_subpic_flag는 각 서브픽처가 하나 이상의 직사각형 슬라이스로 구성될 수 있음을 지정한다. 존재하지 않을 때, single_slice_per_subpic_flag의 값은 0과 동일한 것으로 유추된다.
sps_num_subpics_minus1이 0보다 크고 각 서브픽처에 슬라이스가 하나만 있는 경우, single_slice_per_subpic_flag의 값은 1과 동일해야 한다.
e. 하나의 예에서, single_slice_per_subpic_flag는 각 서브픽처가 하나의 직사각형 슬라이스로 구성될 때 1과 동일해야 하는 것으로 제한된다.
f. 추가적으로, 대안적으로, PPS 신택스 요소 tile_idx_delta_present_flag의 존재는 예를 들어 다음과 같이 num_slices_in_pic_minus1에 기초하여 조절되지 않을 수 있다:
Figure pct00084
g. 하나의 예에서, single_slice_per_subpic_flag가 1과 동일할 때, num_slices_in_pic_minus1이 sps_num_subpics_minus1과 동일해야 한다는 제약이 있다.
h. 추가적으로, 대안적으로, PPS 신택스 엘리먼트 num_slices_in_pic_minus1은 num_slices_in_pic_minus2로 변경될 수 있다.
i. 추가로, tile_idx_delta_present_flag의 존재의 조건은 num_slices_in_pic_minus2에 기초하고, 예를 들어 다음과 같이:
Figure pct00085
num_slices_in_pic_minus [ [1] ] 2 plus [ [1] ] 2는 PPS를 참조하는 각 픽처에서 [ [직사각형] ] 슬라이스의 수를 지정한다. num_slices_in_pic_minus [ [1] ] 2의 값은 0에서 MaxSlicesPerPicture-[ [1] ] 2을 포함하는 범위에 있어야 하고, 여기서 MaxSlicesPerPicture는 부록 A에 지정된다. 변수 NumSlicesInPic의 값은 nnum_slices_in_pic_minus2+2와 동일하도록 유도된다. no_pic_partition_flag가 1과 동일할 때, 변수 NumSlicesInPic의 값은 1과 동일하도록 유도된다[ [num_slices_in_pic_minus1은 0과 동일한 것으로 유추됨] ]. single_slice_per_subpic_flag가 1과 동일할 때, NumSlicesInPic은 sps_num_subpics_minus1-1과 동일하도록 유도된다[ [num_slices_in_pic_minus1이 유추됨]].
또한, VVC 초안 텍스트의 다른 모든 위치에 있는 "num_slices_in_pic_minus1"은 "NumSlicesInPic-1"로 대체된다.
7. 여섯 번째 문제를 해결하기 위한 슬라이스 및 타일 레이아웃에 대한 시그널링과 관련하여 다음 접근법 중 하나 이상이 개시된다:
a. 신택스 요소(예를 들어, 하나 이상의 플래그)는 PPS에 추가되어 픽처가 동일한 높이의 처음 몇 개의 타일 행/열과 상이한 높이/너비의 마지막 몇 타일 행/열을 갖는 여러 타일 행/열로 나누어지는지 여부를 지정할 수 있다.
i. 예를 들어, 제안된 신택스 플래그는 다음과 같이 no_pic_partition_flag 및/또는 명시적 타일 행/열의 수(예를 들어, num_exp_tile_columns_minus1 및/또는 num_exp_tile_rows_minus1)에 따라 다르며, 예를 들어 다음과 같이:
Figure pct00086
Figure pct00087
exp_tile_columns_in_reverse_order가 1과 같으면 픽처가 동일한 너비의 처음 몇 개의 타일 열과 다른 너비의 마지막 몇 개의 타일 열이 있는 2개 이상의 타일 열로 나누어짐을 지정한다. exp_tile_columns_in_reverse_order가 0이면 이러한 타일 레이아웃을 부과하지 않는다.
exp_tile_rows_in_reverse_order가 1이면 픽처가 동일한 높이의 처음 몇 개의 타일 행과 다른 높이의 마지막 몇 개의 타일 행이 있는 2개 이상의 타일 행으로 나누어짐을 지정한다. 0과 동일한 exp_tile_rows_in_reverse_order는 그러한 타일 레이아웃을 부과하지 않는다.
ii. 추가적으로, 제안된 신택스 플래그가 1과 동일할 때, 타일 열 너비 및/또는 타일 행 높이는 제안된 신택스 플래그의 값에 따라 유도되고, 예를 들어 다음과 같이:
타일 열의 수를 지정하는, 변수 NumTileColumns와 i번째 타일 열의 너비를 CTB 유닛으로 지정하는, 0에서 NumTileColumns -1까지를 포함하는 범위의 i에 대한 목록 colWidth [i]는 다음과 같이 유도된다:
Figure pct00088
Figure pct00089
타일 행의 수를 지정하는, 변수 NumTileRows, 및 CTB 유닛으로 j번째 타일 행의 높이를 지정하는, 0에서 NumTileRows -1까지 범위 j에 대한 목록 RowHeight [j]는 다음과 같이 유도된다:
Figure pct00090
Figure pct00091
b. 또한, 마찬가지로, 타일이 여러 슬라이스로 나누어진 경우(이 경우, 슬라이스 크기가 타일 크기보다 작음), 신택스 요소(예를 들어, 하나 이상의 플래그)가 PPS에 추가되어 타일이 동일한 높이의 처음 몇 개의 슬라이스 행과 상이한 높이의 마지막 몇 개의 슬라이스 행이 있는 여러 슬라이스 행으로 나누어지는지 여부를 지정할 수 있다.
i. 추가적으로, 제안된 신택스 플래그가 1인 경우, 슬라이스 높이(예를 들어, SliceHeightInCtusMinus1)는 제안된 신택스 플래그의 값에 따라 유도된다.
8. 일곱 번째 문제를 해결하기 위한 ALF APS가 없는 경우와 관련하여, 다음 접근 방식 중 하나 이상이 공개된다:
a. 하나의 예에서, ALF APS가 없는 경우(예를 들어, no_aps_constraint_flag가 1과 같거나 필요한 APS ID가 있는 APS를 사용할 수 없음), ALF가 허용되지 않을 수 있다(이 경우, sps_alf_enabled_flag 및 sps_ccalf_enabled_flag는 0과 동일해야 한다).
b. 하나의 예에서, ALF APS가 없을 때(예를 들어, no_aps_constraint_flag가 1과 같거나 필요한 APS ID가 있는 APS를 사용할 수 없는 경우), ALF는 여전히 허용될 수 있다(이 경우, sps_alf_enabled_flag는 0 또는 1) .
i. 예를 들어, ALF APS가 없을 때(예를 들어, no_aps_constraint_flag는 1과 동일함), ph_alf_enabled_flag 및/또는 slice_alf_enabled_flag는 0 또는 1과 동일하도록 허용된다.
ii. 예를 들어, ALF APS가 없는 경우(예를 들어, no_aps_constraint_flag가 1인 경우) chroma ALF 및 CC-ALF는 허용되지 않지만 고정 필터가 있는 루마 ALF가 사용될 수 있다.
iii. 예를 들어, ALF APS가 없을 때(예를 들어, no_aps_constraint_flag가 1과 동일함), ph_num_alf_aps_ids_luma, ph_alf_chroma_idc, slice_num_alf_aps_ids_luma, slice_alf_chroma_idc, sps_ccalf_enabled_flag의 값이 0과 동일하도록 요구된다.
c. 하나의 예에서, GCI 신택스 요소 no_alf_constraint_flag가 1과 동일할 때, ALF 및/또는 CCALF는 허용되지 않을 수 있다(이 경우, sps_alf_enabled_flag 및/또는 sps_ccalf_enabled_flag는 0과 같도록 요구됨).
d. 대안적으로, 또한, 사용될 ALF APSs(예를 들어, ph_num_alf_aps_ids_luma) 및/또는 ALF/CC-ALF APS indices(예를 들어, ph_alf_aps_id_luma, ph_alf_aps_id_chroma, ph_cc_alf_cb_aps_id, ph_cc_alf_cr_aps_id)의 수를 시그널링할지여부는 ALF APS가 허용되는지(예를 들어, no_aps_constraint_flag) 여부에 달려있을 수 있다.
i. 하나의 예에서, ALF APS가 적용되지 않을 때 그 정보는 시그널링되지 않을 수 있다.
e. 하나의 예에서, 새로운 신택스 요소는 ALF, 및/또는 CCALF, 및/또는 LMCS, 및/또는 사용자 정의 스케일링 목록을 비활성화하기 위해 SPS/PPS/PH/SH/GCI에서 시그널링될 수 있다.
9. 여덟 번째 문제를 해결하기 위한 적합성 윈도우 파라미터의 시그널링에 관하여:
a. 하나의 예에서, pic_width_in_luma_samples가 pic_width_max_in_luma_samples와 동일하고 pic_height_in_luma_samples가 pic_height_max_in_luma_samples와 동일할 때, PPS에서 적합성 윈도우 파라미터(즉, pps_conformance_window_flag, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 및 pps_conf_win_bottom_offset)의 시그널링은 스킵될 수 있다.
i. 하나의 예에서, 플래그가 PPS 신택스에 추가될 수 있고, X(0 또는 1)와 동일한 이 플래그의 값이 pic_width_in_luma_samples가 pic_width_max_in_luma_samples와 동일하고 pic_height_in_luma_samples가 pic_height_max_in_luma_samples와 동일함을 지정할 때, 1-X와 동일한 플래그는 pic_width_in_luma_samples가 pic_width_max_in_luma_samples보다 작거나 pic_height_in_luma_samples가 pic_height_max_in_luma_samples보다 작음을 지정한다. 그러나, pic_width_in_luma_samples가 pic_width_max_in_luma_samples와 같고 pic_height_in_luma_samples가 pic_height_max_in_luma_samples와 동일한 경우에도, pic_width_in_luma_samples 및 pic_height_in_luma_samples는 SPS에 대한 PPS의 파싱 종속성을 피하기 위해 여전히 PPS에서 시그널링되어야 함을 참고해라.
또한, 위의 플래그가 X와 동일할 때, PPS에서 적합성 윈도우 파라미터(즉, pps_conformance_window_flag, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 및 pps_conf_win_bottom_offset)의 시그널링을 스킵하고, 또한, 파라미터의 값은 SPS의 파라미터 값(즉, sps_conformance_window_flag, sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset 및 sps_conf_win_bottom_offset)과 동일한 것으로 유추된다.
도 1은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(video processing system)(1900)을 도시하는 블록도이다. 다양한 구현은 시스템(system)(1900)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(1900)은 비디오 컨텐츠를 수신하기 위한 입력(input)(1902)을 포함할 수 있다. 비디오 컨텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
시스템(1900)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(1904)를 포함할 수 있다. 코딩 컴포넌트(1904)는 비디오의 코딩된 표현을 생성하기 위해 입력(1902)으로부터 코딩 컴포넌트(1904)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(1904)의 출력은 컴포넌트(component)(1906)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(1902)에서 수신된 비디오의 저장되거나 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1910)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(1908)에 의해 사용될 수 있다. 비트스트림 표현( bitstream representation)에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한, 특정 비디오 처리 동작을 "코딩" 동작(coding operation) 또는 툴(tools)로 지칭하지만, 코딩 툴 또는 동작이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 동작이 디코더에 의해 수행된다는 점을 이해할 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
도 2는 비디오 처리 장치(1200)의 블록도이다. 장치(apparatus)(3600)는 여기에 설명된 방법 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3600)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(3600)는 하나 이상의 프로세서(processor)(3602), 하나 이상의 메모리(memory)(3604) 및 비디오 처리 하드웨어(video processing hardware)(3606)를 포함할 수 있다. 프로세서(들)(3602)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(3604)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(video processing hardware)(3606)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다.
도 4는 본 개시물의 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템(video coding system)(100)을 예시하는 블록도이다.
도 4에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(source device)(110) 및 목적 장치(destination device)(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 비디오 디코딩 장치로 참조될 수 있다.
소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다.
비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 관련 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 관련 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기(transmitter)를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 거쳐, I/O 인터페이스(116)를 통해 목적 장치(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) 표준, 다목적 비디오 코딩(VVC) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 5는 도 4에 예시된 시스템(100)의 비디오 인코더(video encoder)(114)일 수 있는 비디오 인코더(video encoder)(200)의 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 5의 예에서, 비디오 인코더(200)는 복수의 기능적 컴포넌트들을 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
비디오 인코더(video encoder)(200)의 기능적 컴포넌트는 파티션 유닛(partition unit)(201)와, 모드 선택 유닛(mode select unit)(203), 모션 추정 유닛(motion estimation unit)(204), 모션 보상 유닛(motion compensation unit)(205) 및 인트라 예측 유닛(intra prediction unit)(206)을 포함할 수 있는 예측 유닛(predication unit)(202)과, 잔차 생생 유닛(residual generation unit)(207), 트랜스폼 유닛(transform unit)(208), 양자화 유닛(quantization unit)(209), 역양자화 유닛(inverse quantization unit)(210), 역트랜스폼 유닛(inverse transform unit)(211), 재구성 유닛(reconstruction unit)(212), 버퍼(buffer)(213), 및 엔트로피 인코딩 유닛(entropy encoding unit)(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)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 list 0 또는 list 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 또는 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스(reference index)를 생성할 수 있다. 모션 추정 유닛(204)는 레퍼런스 인덱스, 예측 디렉션 표시자 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)는 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)는 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 목록 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)는 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 및 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)는 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.
일부 예에서, 모션 추정 유닛(204)는 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)는 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.
하나의 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연결된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.
또 다른 예에서, 모션 추정 유닛(204)는 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다.
위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신택스 요소가 포함될 수 있다.
잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 빼기 동작을 수행하지 않을 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 트랜스폼을 적용하여 현재 비디오 블록에 대해 하나 이상의 트랜스폼 계수 비디오 블록을 생성할 수 있다.
트랜스폼 처리 유닛(208)는 현재 비디오 블록과 연관된 트랜스폼 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 트랜스폼 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210)와 역트랜스폼부 유닛(211)는 트랜스폼 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 트랜스폼 계수 비디오 블록에 역양자화 유닛 및 역트랜스폼 유닛을 각각 적용할 수 있다. 재구성 유닛(212)는 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성 유닛(212)가 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)가 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 활성화하기 위한 판정(decision) 또는 결정(determination)을 내리는 것을 포함한다. 예들 들어, 비디오 프로세싱 툴 또는 모드가 활성화되면, 인코더가 비디오 블록 프로세싱에서 툴 또는 모드를 사용하거나 구현하지만, 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 판정 또는 결정에 따라 활성화될 때 비디오 프로세싱 툴 또는 모드를 사용한다. 또 다른 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면, 디코더는 비디오 프로세싱 툴 또는 모드에 따라 비트스트림이 수정되었다는 것을 알고 비트스트림을 프로세싱 한다. 즉, 비디오의 비트스트림에서 비디오 블록으로의 변환은 판정 또는 결정에 따라 활성화된 비디오 프로세싱 툴 또는 모드를 사용하여 수행된다.
도 6은 도 10에 예시된 시스템(100)의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 6의 예에서, 비디오 디코더(300)는 복수의 기능적 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.
도 6의 예에서, 비디오 디코더(video decoder)(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보상 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역양자화 유닛(inverse quantization unit)(304), 역트랜스폼 유닛(inverse transformation uni)(305), 및 재구성 유닛(reconstruction unit)(306) 및 버퍼(buffer)(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고받는(reciprocal) 디코딩 패스를 수행할 수 있다(도 5).
엔트로피 디코딩 유닛(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)는 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)는, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)는 보간 필터에 기초하여 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신택스 요소에 포함될 수 있다.
모션 보상 유닛(302)는 비디오 블록을 인코딩하는 동안 비디오 인코더(200)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)는 수신된 신택스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
모션 보상 유닛(302)는 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신택스 정보를 사용할 수 있다.
인트라 예측 유닛(303)는, 공간적으로 인접한 블록(adjacent block)으로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용할 수 있다. 역양자화 유닛(303)는 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역양자화(예를 들어, 비양자화(de-quantize))한다. 역트랜스폼 유닛(Inverse transform unit)(303)은 역트랜스폼을 적용한다.
재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹 필터(deblocking filter)를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 디코딩된 비디오 블록은 버퍼(307)에 저장되고, 이는 이후의 모션 보상/인트라 예측에 대한 레퍼런스 블록을 제공하고, 디스플레이 장치에서 재생하기 위한 디코딩된 비디오를 생성한다.
일부 실시예에서, 선호하는 솔루션 목록이 다음에 제공된다.
다음 솔루션은 이전 섹션(예를 들어, 항목 1)에서 논의된 기술의 예시적인 실시예를 보여준다.
1. 비디오 처리 방법(예를 들어, 도 3에 도시된 방법(300))에서, 비디오의 비디오 영역과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계(302)를 포함하고; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오의 컬러 컴포넌트에 대한 스케일링 목록이 시퀀스 파라미터 세트의 신택스 필드 값과 독립적으로 적응형 파라미터 세트에 포함되는지 여부를 나타내는 플래그를 지정한다.
2. 솔루션 1의 방법에서, 포맷 규칙은 필드가 시퀀스 파라미터 세트를 식별하기 위한 적응형 파라미터 세트에 포함된다는 것을 지정한다.
3. 솔루션 1의 방법에서, 포맷 규칙은 적응형 파라미터 세트와 시퀀스 파라미터 세트의 비디오 파라미터 세트 또는 코딩된 표현에 스케일링 목록의 포함을 제어하는 픽처 파라미터 세트 사이의 암시적 관계를 지정한다.
4. 솔루션 1 내지 3 중 어느 하나의 방법에 있어서, 포맷 규칙은 변환 동안 사용되는 사용자 정의 또는 명시적 스케일링 목록을 포함하기 위한 포맷을 지정한다.
5. 솔루션 1 내지 4 중 어느 하나의 방법에 있어서, 포맷 규칙은 코딩된 표현에 플래그를 포함하는 것이 크로마 컴포넌트의 어레이 유형을 나타내는 신택스 요소의 포함과 무관함을 지정한다.
6. 솔루현 5의 방법에서, 플래그는 스케일링 목록이 포함되고 크로마 컴포넌트의 어레이 유형을 나타내는 신택스 요소가 0으로 설정됨을 나타낸다.
7. 솔루현 5의 방법에서, 플래그는 스케일링 목록이 포함되지 않고 크로마 컴포넌트의 어레이 유형을 나타내는 신택스 요소가 1로 설정됨을 나타낸다.
8. 솔루현 1의 방법에서, 포맷 규칙은 플래그가 픽처 헤더 또는 슬라이스 헤더에 의존하는 제약 규칙에 의해 제약되는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 2)에서 논의된 기술의 예시적인 실시예를 보여준다.
9. 비디오 처리 방법에서, 비디오의 비디오 영역과 비디오 영역의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 하나 이상의 적응형 파라미터 세트가 코딩된 표현에 포함되어 각각의 적응형 파라미터 세트에 대해 비디오에 대한 크로마 제약으로 인해 크로마 관련 신택스 요소가 생략되도록 지정한다.
10. 솔루션 9의 방법에서, 각각의 적응형 파라미터 세트에 대해, 신택스 요소는 크로마 관련 신택스 요소가 적응형 파라미터 세트에 포함되는지 여부를 시그널링한다.
11. 솔루션 9의 방법에서, 포맷 규칙은 크로마 제약이 비디오의 코딩된 표현에서 크로마의 존재를 나타내는 경우에만 픽처 헤더 또는 슬라이스 헤더 또는 적응형 파라미터 세트의 크로마 관련 필드가 조건부로 포함되는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 3)에서 논의된 기술의 예시적인 실시예를 보여준다.
12. 솔루션 9 내지 11 중 어느 방법에서, 크로마 제약은 크로마 어레이 유형이 0과 동일한 것인 방법.
13. 솔루션 9-11 중 어느 하나 방법에 있어서, 크로마 제약은 비디오의 포맷이 4:0:0와 동일한 것이다.
다음 솔루션은 이전 섹션(예를 들어, 항목 4)에서 논의된 기술의 예시적인 실시예를 보여준다.
14. 비디오 처리 방법에서, 하나 이상의 비디오 유닛(video unit)을 포함하는 하나 이상의 비디오 영역(video region)을 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 제1 트랜스폼 코딩 신택스 필드(first transform coding syntax field)가 비디오 영역의 비디오 유닛의 레벨에서 코딩된 표현에 포함되는지 여부 및/또는 그 값이 비디오 영역의 레벨에서의 제2 트랜스폼 코딩 신택스 필드(second transform coding syntax field)의 값에 의존한다는 것을 지정한다.
15. 솔루션 14의 방법에서, 제1 트랜스폼 코딩 신택스 필드는 slice_ts_residual_coding_disabled_flag이고, 제2 트랜스폼 코딩 신택스 필드는 sps_transform_skip_enabled_flag이다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
16. 비디오 처리 방법에서, 하나 이상의 비디오 영역을 포함하는 비디오 - 각각의 비디오 영역이 하나 이상의 비디오 유닛을 포함함 - 와 비디오의 코딩된 표현사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오 유닛 레벨의 플래그가 양자화 파라미터의 차동 시그널링(differential signaling)이 변환을 위해 활성화되는지 여부를 제어하도록 지정한다.
17. 솔루현 16의 방법에서, 비디오 유닛 레벨에서의 플래그는 코딩 유닛 또는 트랜스폼 유닛 레벨에서의 제2 플래그가 차동 양자화 파라미터 시그널링의 시그널링 사용을 위해 포함되는지 여부를 제어한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
18. 비디오 처리 방법에서, 하나 이상의 비디오 영역을 포함하는 비디오 - 각각의 비디오 영역이 하나 이상의 비디오 유닛을 포함함 - 와 비디오의 코딩된 표현사이의 변환을 수행하는 단계를 포함하고; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 서브픽처의 수를 나타내는 픽처 레벨의 제1 플래그 및 서브픽처의 슬라이스의 수를 나타내는 서브픽처 레벨의 제2 플래그의 해석(interpretation)을 지정한다.
19. 솔루션 18의 방법에 있어서, 포맷 규칙은, 제1 플래그가 1로 설정되고 제2 플래그가 1로 설정되는 경우, 픽처 내의 적어도 하나의 서브픽처가 하나보다 큰 슬라이스를 포함하도록 지정한다.
20. 솔루션 18의 방법에서, 포맷 규칙은 제1 플래그가 0이고 각 픽처에 단일 슬라이스가 있기 때문에 제2 플래그가 1로 설정되어야 하는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
21. 비디오 처리 방법에서, 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 여기서 코딩된 표현은 형식 규칙을 따르고; 여기서 포맷 규칙은 비디오 픽처와 연관된 픽처 파라미터 세트의 필드가 비디오 픽처가 상이한 높이 또는 폭의 다수의 타일 행 또는 열로 나누어지는지 여부를 나타내도록 지정한다.
22. 솔루션 21의 방법에서, 코딩된 표현의 제2 필드는 비디오 픽처의 타일이 상이한 높이를 갖는 다수의 슬라이스 행으로 나누어지는지 여부를 나타낸다.
23. 솔루션 22의 방법에서, 제2 필드는 다수의 슬라이스 행의 슬라이스 높이를 나타낸다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
24. 비디오 프로세싱 방법에서, 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 적응형 파라미터 세트가 적응형 루프 필터링의 표시를 배제하는 경우 비디오 영역에 적응형 루프 필터링의 적용 가능성이 제2 규칙에 기초하는 것을 지정한다.
25. 솔루션 24의 방법에서, 제2 규칙은 적응형 루프 필터링이 비디오 영역에 대해 비활성화됨을 지정한다.
26. 솔루션 24의 방법에서, 제2 규칙은 적응형 루프 필터링이 시퀀스 파라미터 세트 레벨에서 플래그의 값에 기초하여 조건부로 허용되는 것을 지정한다.
다음 솔루션은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술의 예시적인 실시예를 보여준다.
27. 비디어 처리 방법에서, 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 슬라이스 및/또는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 여기서 코딩된 표현은 포맷 규칙을 따르고; 여기서 포맷 규칙은 비디오의 너비 및 높이가 최대 너비 및 최대 높이인 픽처에 대해 픽처 파라미터 세트에서 적합성 윈도우 파라미터의 명시적 시그널링(explicit signaling)이 스킵되는 것을 지정한다.
28. 솔루션 27의 방법에서, 포맷 규칙은 명시적 시그널링이 스킵되는 경우에 너비 및 높이가 최대 너비 및 최대 높이와 동일한지 여부를 나타내는 플래그를 포함하도록 추가로 지정한다.
29. 솔루션 1 내지 26의 방법 중 어느 하나에서, 비디오 영역은 비디오 픽처를 포함한다.
30. 솔루션 1 내지 29 중 어느 하나에 있어서, 비디오 유닛은 비디오 슬라이스 또는 비디오 코딩 유닛을 포함한다.
31. 솔루션 1 내지 30의 방법 중 어느 하나에서, 변환은 비디오를 코딩된 표현으로 인코딩하는 단계를 포함한다.
32. 1항 내지 30항의 방법 중 어느 하나에서, 변환은 비디오의 픽셀 값을 생성하기 위해 코딩된 표현을 디코딩하는 단계를 포함한다.
33. 1항 내지 32항의 방법 중 하나에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
34. 1항 내지 32항의 방법 중 어느 하나에서 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
35. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에서, 코드는, 프로세서에 의해 실행 시, 프로세서로 하여금 솔루션 1 내지 32 중 어느 하나 이상에 인용된 방법을 구현하도록 한다.
36. 본 문서에 기술된 방법, 장치 및 시스템.
도 7는 비디오 처리의 하나의 예의 방법(700)에 대한 순서도이다 동작(702)는 규칙에 따라 비디오 유닛을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은, 적응형 파라미터 세트(APS)에서, 비디오의 스케일링 목록과 관련된 정보를 포함할지 여부 또는 포함하는 방법은 APS가 크로마 컴포넌트 관련 신택스 요소를 포함하고 시퀀스 파라미터 세트(SPS)의 하나 이상의 신택스 요소와 독립적인지 여부를 나타내는 제1 신택스 요소에 기초하는 것을 지정한다.
방법(700)의 일부 실시예에서, 스케일링 목록과 관련된 정보는 컬러 컴포넌트에 대한 스케일링 목록이 APS에 포함되는지 여부를 포함한다. 방법(700)의 일부 실시예에서, 규칙은 비디오 파라미터 세트(VPS), SPS, 및 픽처 파라미터 세트(PPS) 중 임의의 하나 이상을 식별하기 위해 하나 이상의 필드가 APS에 포함된다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 APS가 APS와 연결된 SPS를 나타내는 필드를 포함하도록 지정하고, 여기서, 필드의 값은 0 내지 15의 범위에 있고, 필드의 값은 코딩된 계층 비디오 시퀀스(CLVS)에서 하나 이상의 비디오 픽처에 의해 참조되는 모든 APS에서 동일하다. 방법(700)의 일부 실시예에서, 규칙은 제2 신택스 요소가 APS에 포함되는지 여부가 APS가 크로마 컴포넌트 관련 신택스 요소를 포함하는지 여부를 나타내는 제1 신택스 요소의 값에 기초하는 것을 지정하고, 여기서 제2 신택스 요소는 스케일링 목록의 값이 레퍼런스 스케일링 목록의 값과 동일한지 여부를 지정한다. 방법(700)의 일부 실시예에서, 규칙은 APS와 비디오 파라미터 세트(VPS), SPS, 및 픽처 파라미터 세트(PPS) 중 임의의 하나 이상 사이의 암시적 관계가 유도된다는 것을 지정한다.
방법(700)의 일부 실시예에서, 규칙은, APS가 비디오 유닛의 헤더에 의해 참조될 때 및 비디오 유닛이 VPS, SPS 및 PPS 중 어느 하나 이상에 의존할 때, APS가 VPS, SPS 및 PPS 중 하나 이상과 암시적으로 연관되어 있음을 지정한다.
방법(700)의 일부 실시예에서, 비디오 유닛의 헤더는 픽처 헤더 또는 슬라이스 헤더를 포함한다. 방법(700)의 일부 실시예에서, 규칙은 사용자 정의 스케일링 목록이 비디오의 루마 비디오 블록에 적용되는지 여부와 무관하게 스케일링 목록을 포함하는 플랫 양자화가 비디오의 크로마 비디오 블록에 적용되는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 비디오의 크로마 비디오 블록에 대한 명시적 스케일링 목록을 제외하는 비트스트림이 비디오의 루마 비디오 블록에 대한 명시적 스케일링 목록을 포함하는 비트스트림에 의존하지 않는다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 SPS의 하나 이상의 신택스 요소가 특정 비디오 유닛에 대해 명시적 스케일링 목록이 사용되는지 여부를 나타내는 플래그를 포함하도록 지정한다. 방법(700)의 일부 실시예에서, 특정 비디오 유닛은 저주파 비분리 트랜스폼(low-frequency non-separable transform)으로 코딩된 비디오 블록을 포함한다.
방법(700)의 일부 실시예에서, 규칙은 제1 신택스 요소가 APS에 포함되는지 여부가 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값과 무관하다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 비디오의 상이한 컬러 컴포넌트에 대한 명시적 스케일링 목록 또는 디폴트 스케일링 목록을 사용할지 여부가 APS에서 별도로 표시되거나 제어됨을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 비디오의 루마 컴포넌트 및/또는 비디오의 크로마 컴포넌트에 대한 명시적 스케일링 목록을 활성화할지 여부를 지정하기 위해 적어도 하나의 신택스 요소가 SPS 또는 PPS(픽처 파라미터 세트) 또는 PH(픽처 헤더) 또는 SH(슬라이스 헤더)에 추가되도록 지정한다. 방법(700)의 일부 실시예에서, 규칙은 SPS의 하나 이상의 신택스 요소가 비디오의 루마 트랜스폼 계수에 대해 플랫 양자화 또는 명시적 스케일링 목록이 사용되는지 여부를 나타내기 위한 플래그를 포함하도록 지정한다. 방법(700)의 일부 실시예에서, 규칙은 SPS에 추가된 하나 이상의 신택스 요소가 크로마-U 및/또는 크로마-V 트랜스폼 계수에 대해 플랫 양자화 및 명시적 스케일링 목록이 사용되는지 여부를 나타내도록 지정한다. 방법(700)의 일부 실시예에서, 규칙은 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값이 1과 동일할 때, 제1 신택스 요소가 0과 동일하다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 비디오의 비디오 픽처가 4:0:0 크로마 형식일 때 N개의 스케일링 매트릭스 세트가 APS에 나타난다는 것을 추가로 지정한다.
방법(700)의 일부 실시예에서, 규칙은, 비디오의 비디오 픽처가 4:4:4 크로마 포맷이고 별도의 컬러 평면 플래그가 4:4:4 크로마 포맷의 세 가지 컬러 컴포넌트가 별도로 코딩됨을 나타낼 때, M개의 스케일링 매트릭스 세트가 APS에 표시되는 것을 추가로 지정한다.
방법(700)의 일부 실시예에서, 규칙은 별도의 컬러 평면 플래그가 4:4:4 크로마 포맷의 세 가지 컬러 컴포넌트가 별도로 코딩되고 M개의 스케일링 행렬 세트가 APS에 표시됨을 나타낼 때: (1) 각각의 루마, 크로마-U 및 크로마- V 트랜스폼 계수는 luma-Y-채널로 취급되고, (2) 루마, 크로마-U 및 크로마-V 트랜스폼 계수는 동일한 스케일링 행렬 식별자를 갖는다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 별도의 컬러 평면 플래그가 4:4:4 크로마 포맷의 3가지 컬러 컴포넌트가 개별적으로 코딩되고 M개의 스케일링 매트릭스 세트가 APS에 표시됨을 나타낼 때: (1) 루마 트랜스폼 계수에 대한 제1 스케일링 매트릭스 식별자가 루마 컴포넌트에 대해 유도되고, (2) 크로마-U 트랜스폼 계수에 대한 제2 스케일링 매트릭스 식별자가 크로마-U 컴포넌트에 대해 유도되고, (3) 크로마-V 트랜스폼 계수에 대한 제3 스케일링 매트릭스 식별자가 크로마-V 컴포넌트에 대해 유도된다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값이 0과 동일한 경우, 제1 신택스 요소가 1과 동일하다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 크로마 트랜스폼 계수가 명시적 스케일링 목록을 사용하도록 허용되는지 여부가 플래그의 값에 기초함을 추가로 지정한다.
방법(700)의 일부 실시예에서, 규칙은, 플래그 값이 0일 때, 명시적 스케일링 목록은 SPS, 픽처 헤더(PH) 및 슬라이스 헤더(SH)에 대해 스케일링 목록이 활성화되었는지 여부를 나타내는 신택스 요소의 값에 관계없이 크로마 트랜스폼 계수에 사용되는 것이 허용되지 않음을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 플래그의 값이 1과 동일할 때, 명시적 스케일링 목록이 크로마 트랜스폼 계수에 사용되도록 허용된다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은, 비디오의 비디오 픽처가 4:2:0 크로마 포맷, 4:2:2 크로마 포맷, 및/또는 4:4:4 크로마 포맷을 가질 때 및 별도의 컬러 평면 플래그가 0일 때, N개의 스케일링 매트릭스 세트가 APS에 표시되는 것을 추가로 지정한다.
방법(700)의 일부 실시예에서, 규칙은 제1 신택스 요소가 0보다 크고, N개의 스케일링 매트릭스 세트가 APS에 표시될 때, 크로마-U 및/또는 크로마-V 트랜스폼 계수에 대한 스케일링 매트릭스는 루마 트랜스폼 계수에 대한 APS에 표시된 스케일링 매트릭스의 N 세트로부터 유도되는 것을 추가로 지정한다. 방법(700)의 일부 실시예에서, 규칙은 제1 신택스 요소가 0보다 크고, N개의 스케일링 매트릭스 세트가 APS에 표시될 때, 크로마-U 및/또는 크로마-V 트랜스폼 계수는 명시적 스케일링 목록을 사용하는 것이 허용되지 않으며, 크로마-U 및/또는 크로마-V 트랜스폼 계수는 기본 스케일링 계수로 평면 양자화를 사용할 수 있음을 추가로 지정한다. 방법(700)의 일부 실시예에서, 규칙은 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값에 제1 신택스 요소의 제1 값이 의존하지 않는다는 것을 지정한다. 방법(700)의 일부 실시예에서, 규칙은 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값이 1과 동일할 때, 제1 신택스 요소의 제1 값이 0일 필요가 없다는 것을 지정한다.
방법(700)의 일부 실시예에서, 규칙은 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값이 제1 신택스 요소의 제1 값에 기반하도록 지정하고, 여기서 규칙은 제1 신택스 요소의 제1 값은 픽처 헤더(PH) 및/또는 슬라이스 헤더(SH) 내의 하나 이상의 신택스 요소에 의해 유도된 하나 이상의 값으로부터 유도된다는 것을 추가로 지정한다.방법(700)의 일부 실시예에서, 제1 신택스 요소의 제1 값이 0일 때 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값은 0이고, 여기서 제1 신택스 요소의 값이 1인 경우, 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값은 1이다. 방법(700)의 일부 실시예에서, 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값은 제1 신택스 요소의 제1 값이 0일 때 0일 필요가 없다. 방법(700)의 일부 실시예에서, 스케일링 목록이 APS에 존재하는지 여부를 나타내는 플래그의 값은 제1 신택스 요소의 제1 값이 0일 때 1일 필요가 없다. 일부 실시예에서, 컬러 컴포넌트는 크로마 컴포넌트다. 방법(700)의 일부 실시예에서, 제1 신택스 요소는 루마 샘플링에 대한 크로마 샘플링을 나타내고 크로마 컴포넌트의 어레이 유형으로 지칭된다. 방법(700)의 일부 실시예에서, 0과 동일한 제1 신택스 요소는 비디오의 컬러 포맷이 4:0:0임을 지정한다.
도 8은 비디오 처리의 하나의 예의 방법(800)에 대한 순서도이다. 동작(802)은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 신택스 요소가 적응형 파라미터 세트(APS)에 포함된다는 것을 지정하고, 여기서 규칙은 신택스 요소가 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함되는지 여부를 나타내도록 지정한다.
방법(800)의 일부 실시예에서, 규칙은 APS가 크로마 컴포넌트 관련 신택스 요소를 제외함을 나타내는 신택스 요소의 값이 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함되지 않는다는 것을 지정하고, 여기서 규칙은 APS의 신택스 요소가 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함되지 않음을 나타내도록 지정한다. 방법(800)의 일부 실시예에서, 규칙은 APS를 나타내는 신택스 요소의 값이 크로마 컴포넌트 관련 신택스 요소를 포함할 때 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함된다는 것을 지정하고, 여기서 규칙은 APS의 신택스 요소는 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 APS에 포함된다는 것을 나타내도록 지정한다. 방법(800)의 일부 실시예에서, 규칙은 비디오의 현재 슬라이스가 크로마 잔차 스케일링을 사용하도록 허용되는지 여부가 신택스 요소에 의존하고 하나 이상의 신택스 요소에 의존하지 않는다는 것을 지정한다. 방법(800)의 일부 실시예에서, APS의 크로마 잔차 스케일링을 위한 신택스 요소는 LMCS(크로마 스케일링을 사용한 루마 매핑)와 관련된 변수의 절대 코드워드 값을 나타낸다. 방법(800)의 일부 실시예에서, APS의 크로마 잔차 스케일링에 대한 신택스 요소는 크로마 스케일링(LMCS)을 사용한 루마 매핑에 관련된 변수의 부호를 나타낸다.
도 9는 비디오 처리의 하나의 예의 방법(900)에 대한 순서도이다. 동작(902)는 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 크로마 잔차 스케일링을 위한 하나 이상의 신택스 요소가 적응형 파라미터 세트(APS)에 포함되는지 여부가 APS가 크로마 컴포넌트 관련 신택스 요소를 포함하는지 여부를 나타내는 제1 신택스 요소에 기초하는 것을 지정한다.
방법(900)의 일부 실시예에서, 규칙은 제1 신택스 요소의 제1 값이 0과 동일할 때, 하나 이상의 신택스 요소로부터의 제2 신택스 요소의 제2 값이 0과 동일하다는 것을 지정하고, 여기서 제2 신택스 요소는 APS NAL(네트워크 추상화 계층) 유닛과 연관되며, APS NAL 유닛에 대한 APS 파라미터의 유형은 LMCS(크로마 스케일링) APS를 사용한 루마 매핑이고, APS NAL 유닛에 대한 APS의 제1 식별자는 현재 픽처의 슬라이스에 의해 참조되는 픽처 헤더(PH)의 제2 식별자와 동일하다. 방법(900)의 일부 실시예에서, 규칙은 제1 신택스 요소의 제1 값이 1과 동일할 때, 하나 이상의 신택스 요소로부터의 제2 신택스 요소의 제2 값이 0보다 크다는 것을 지정하고, 여기서 제2 신택스 요소는 APS NAL(네트워크 추상화 계층) 유닛과 연관되며, APS NAL 유닛에 대한 APS 파라미터의 유형은 LMCS(크로마 스케일링) APS를 사용한 루마 매핑이고, APS NAL 유닛에 대한 APS의 제1 식별자는 현재 픽처의 슬라이스에 의해 참조되는 픽처 헤더(PH)의 제2 식별자와 동일하다. 방법(900)의 일부 실시예에서, APS에서의 크로마 잔차 스케일링을 위한 제1 신택스 요소는 LMCS(크로마 스케일링을 갖는 루마 맵핑)에 관련된 변수의 절대 코드워드 값을 나타낸다. 방법(들) 700-900의 일부 실시예에서, 규칙은 비디오의 컬러 포맷이 4:0:0임을 나타내는 제1 신택스 요소 또는 신택스 요소를 지정한다.
도 10은 비디오 처리의 하나의 예의 방법(1000)에 대한 순서도이다. 동작(1002)은 규칙에 따라 비디오 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 것을 포함하고, 여기서 규칙은 변환 스킵 기반 잔차 코딩이 슬라이스에 대해 비활성화되는지 여부를 나타내는 제1 신택스 요소를 슬라이스 헤더(SH)에 포함할지 여부를 지정하고, 및 여기서 규칙은 SH에 제1 신택스 요소를 포함할지 여부가 변환 스킵(TS) 모드가 비디오 블록에 대해 활성화되는지 여부를 나타내는 시퀀스 파라미터 세트(SPS)의 제2 신택스 요소에 선택적으로 기초하는 것을 지정한다.
방법(1000)의 일부 실시예에서, 규칙은 TS 모드가 활성화됨을 나타내는 제2 신택스 요소에 응답하여 제1 신택스 요소가 SH에 선택적으로 포함된다는 것을 지정한다. 방법(1000)의 일부 실시예에서, SPS의 제2 신택스 요소는 트랜스폼 스킵이 비디오 블록에 적용되는지 여부를 나타내는 플래그가 트랜스폼 유닛 신택스에 존재하는지 여부를 나타낸다. 방법(1000)의 일부 실시예에서, 규칙은 플래그가 트랜스폼 유닛 신택스에 존재함을 나타내는 제2 신택스 요소에 응답하여 제1 신택스 요소가 SH에 선택적으로 포함된다는 것을 지정한다. 방법(1000)의 일부 실시예에서, 규칙은 제1 신택스 요소의 제1 값이 제2 신택스 요소의 제2 값에 기초함을 지정한다. 방법(1000)의 일부 실시예에서, 규칙은 제2 신택스 요소의 제2 값이 0일 때 제1 신택스 요소의 제1 값이 0임을 지정한다. 방법(1000)의 일부 실시예에서, 규칙은 제1 신택스 요소가 임의의 다른 신택스 요소에 기초하지 않는 것에 응답하여 제1 신택스 요소가 SH에 포함된다는 것을 추가로 지정한다.
방법(1000)의 일부 실시예에서, 규칙은 트랜스폼 스킵 모드가 활성화되지 않은 비디오 블록에 대해 트랜스폼 스킵 기반 잔차 코딩 또는 정규 잔차 코딩 중 어느 하나가 활성화되는지 여부를 나타내기 위해 하나 이상의 신택스 요소가 포함된다는 것을 지정한다. 방법(1000)의 일부 실시예에서, 규칙은 하나 이상의 신택스 요소가 비디오 블록이 속하는 비디오 세그먼트 레벨에서 표시되도록 지정한다. 방법(1000)의 일부 실시예에서, 비디오 세그먼트 레벨은 코딩 트리 유닛(CTU), 코딩 유닛(CU), 또는 트랜스폼 유닛(TU)을 포함한다. 방법(1000)의 일부 실시예에서, 규칙은 트랜스폼 스킵 기반 잔차 코딩이 비디오 블록에 대해 비활성화되는지 여부를 나타내기 위해 하나 이상의 신택스 요소가 SPS, PPS(픽처 파라미터 세트), PH(픽처 헤더) 또는 SH에 나타나도록 지정한다. 방법(1000)의 일부 실시예에서, 규칙은 TS 모드가 비디오 블록에 대해 활성화되지 않을 때 비디오 블록과 연관된 코딩된 정보에 기초하여 트랜스폼 스킵 기반 잔차 코딩이 비디오 블록에 대해 활성화되는지 여부를 지정한다. 방법(1000)의 일부 실시예에서, 코딩된 정보는 비디오 블록에 대한 양자화 파라미터(QP) 값을 포함한다. 방법(1000)의 일부 실시예에서, 규칙은 QP 값이 숫자 X보다 작거나 동일할 때, 트랜스폼 스킵 기반 잔차 코딩 또는 일반 잔차 코딩(RRC) 모드가 비디오 블록에 대해 활성화되는 것을 지정한다. 일부 실시예에서 방법 1000에서 X는 4이다.
도 11은 비디오 처리의 하나의 예의 방법(1100)에 대한 순서도이다. 동작(1102)은 규칙에 따라 루마 블록을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 슬라이스 헤더(SH)가 제1 신택스 요소를 포함하는지 여부가 제2 신택스 요소에 기초한다는 것을 지정하고, 제1 신택스 요소는 델타 양자화 파라미터(QP)의 사용이 루마 블록의 특정 슬라이스의 하나 이상의 코딩 유닛(CU)에 대해 활성화되는지 여부를 나타낸다.
방법(1100)의 일부 실시예에서, 규칙은 제1 신택스 요소가 SH에 포함되는지 여부가 비디오의 하나 이상의 비디오 픽처에 대해 델타 QP의 사용이 활성화되는지 여부를 나타내는 픽처 파라미터 세트(PPS)에 포함된 제2 신택스 요소에 기초함을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 제1 신택스 요소가 SH에 포함되지 않고 제2 신택스 요소의 제2 값이 0일 때 0의 제1 값을 갖는 것으로 유추된다는 것을 지정하고, 여기서 규칙은 제1 신택스 요소는 제2 신택스 요소의 제2 값이 1일 때 SH에 포함된다. 방법(1100)의 일부 실시예에서, 규칙은 제1 신택스 요소의 제1 값이 제2 신택스 요소의 제2 값에 기초함을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 델타 QP의 사용이 비디오의 하나 이상의 비디오 픽처에 대해 활성화되는지 여부를 나타내는 픽처 파라미터 세트(PPS)에 포함된 제2 신택스 요소를 지정하고, 여기서 규칙은 제2 신택스 요소가: (1) 제1 신택스 요소가 SH에 포함되는지 여부, 및/또는 (2) 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스가 현재 CU의 QP 값과 CU의 예측 값 간의 차이의 절대값을 나타내는 제3 신택스 요소 및/또는 현재 CU의 QP 값과 CU의 예측 값 사이의 차이의 부호를 나타내는 제4 신택스 요소를 포함하는지 여부를 제어하는 것을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 픽처 파라미터 세트(PPS)는 ue(v)로 코딩된 PPS에 대한 식별자, PPS를 참조하는 각 슬라이스에 대한 루마 QP를 나타내는 se(v)로 코딩된 초기 값, 및 (1) ph_cu_qp_delta_subdiv_intra_slice 신택스 요소 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소가 PPS를 참조하는 하나 이상의 픽처 헤더(PH)에 존재하는지 여부 및 (2)트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 현재 CU의 QP 값과 CU의 예측 값 간의 차이의 절대값을 나타내는 제3 신택스 요소가 존재하는지 여부를 나타내는 u(1)로 코딩된 제2 신택스 요소, 및 u(1)으로 코딩된 제4 신택스 요소가 크로마 툴 오프셋 관련 신택스 요소가 PPS에 포함되는지 여부를 나타내는 것을 포함하는 것을 지정한다.
방법(1100)의 일부 실시예에서, 규칙은 제2 신택스 요소의 값이 1일 때, ph_cu_qp_delta_subdiv_intra_slice 신택스 요소 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소는 PPS를 참조하는 하나 이상의 PH에 존재하고 제3 신택스 요소는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하는 것을 지정하고, 및 여기서 규칙은 제2 신택스 요소의 값이 0일 때, ph_cu_qp_delta_subdiv_intra_slice 신택스 요소 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소는 PPS를 참조하는 하나 이상의 PH에 존재하지 않고 제3 신택스 요소는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하지 않는 것을 지정한다. 방법(1100)의 일부 실시예에서, 하나 이상의 PH로부터의 PH는 다음 구조를 포함한다:
Figure pct00092
방법(1100)의 일부 실시예에서, 규칙은, PPS의 제2 신택스 요소가 (1) ph_cu_qp_delta_subdiv_intra_slice 신택스 요소 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소는 PPS를 참조하는 하나 이상의 PH에 존재하고, (2) 제3 신택스 요소는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하는지를 나타낼 때, SH가 제3 신택스 요소가 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하는지 여부를 나타내는 제5 신택스 요소를 포함하는 것을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은, 제5 신택스 요소의 값이 1일 때, 제3 신택스 요소가 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재한다는 것을 지정하고, 여기서 규칙은 제5 신택스 요소의 값이 0일 때, 제3 신택스 요소는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하지 않는다는 것을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 현재 CU의 QP 값과 CU의 예측 값 사이의 차이의 절대값을 나타내는 제3 신택스 요소가 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 존재하는지 여부를 제1 신택스 요소가 제어하도록 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 제1 신택스 값의 제1 값이 1일 때, 제3 신택스 요소가 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 포함된다는 것을 지정하고, 여기서 규칙은 제1 신택스 값의 제1 값이 0이면, 제3 신택스 요소는 트랜스폼 유닛 신택스 및 팔레트 코딩 신택스에 포함되지 않는다는 것을 지정한다.
방법(1100)의 일부 실시예에서, 규칙은 비디오의 크로마 블록에 대한 cu_qp_offset 신택스 요소가 SH의 제1 신택스 요소에 의해 제어되지 않는다는 것을 지정하고, 규칙은 크로마 블록에 대한 cu_qp_offset 신택스 요소가 픽처 헤더(PH), 픽처 파라미터 세트(PPS), 또는 시퀀스 파라미터 세트(SPS)에 표시된 플래그에 기초한다는 것을 지정한다. 방법(1100)의 일부 실시예에서, 규칙은 픽처 헤더(PH)가 루마 블록의 특정 슬라이스의 하나 이상의 CU에 대해 델타 QP의 사용이 활성화되는지 여부를 제어하는 플래그를 포함한다는 것을 추가로 지정한다.
도 12는 비디오 처리의 하나의 예의 방법(1200)에 대한 순서도이다. 동작(1202)은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 비디오 비디오의 각 서브픽처가 하나의 직사각형 슬라이스만을 포함한다는 것을 나타내는 제1 신택스 요소에 응답하여: 픽처 파라미터 세트(PPS)를 참조하는 각 비디오 픽처의 직사각형 슬라이스의 수를 나타내는 1을 더한 제2 신택스 요소는 비트스트림의 코딩된 계층 비디오 시퀀스(CLVS)의 각 비디오 픽처에 있는 서브픽처의 수를 나타내는 1을 더한 제3 신택스 요소와 동일한 것을 지정한다.
방법(1200)의 일부 실시예에서, 규칙은 다음과 같은 경우에 비디오의 제1 비디오 픽처 및 제2 비디오 픽처가 상이한 픽처 파라미터 세트(picture parameter set)(PPS)를 참조하는 것을 지정한다: (1) 제3 신택스 요소의 값이 0이고, (2) 제4 신택스 요소가 PPS를 참조하는 각 비디오 픽처에 대해 직사각형 슬라이스 모드가 사용 중이고 슬라이스 레이아웃이 PPS에 포함됨을 나타내고, (3) 제1 비디오 픽처는 하나의 슬라이스만을 포함하고, 및 (4) 제2 비디오 픽처는 복수의 슬라이스를 포함한다. 방법(1200)의 일부 실시예에서, 규칙은, 제3 신택스 요소의 값이 0보다 클 때, 비디오 픽처의 서브픽처 각각이 하나 이상의 직사각형 슬라이스를 포함하고 비디오 픽처의 복수의 서브픽처 각각이 단지 하나의 직사각형 슬라이스를 포함하지 않는 것을 지정하고, 여기서 규칙은 제3 신택스 요소의 값이 0과 동일할 때, 각 비디오 픽처가 복수의 슬라이스를 포함하도록 지정한다. 방법(1200)의 일부 실시예에서, 규칙은 제3 신택스 요소의 제2 값이 0과 동일하고 PPS를 참조하는 각각의 비디오 픽처가 하나의 슬라이스만을 포함할 때 제1 신택스 요소의 제1 값이 1과 동일하다는 것을 지정한다. 방법(1200)의 일부 실시예에서, 규칙은 제3 신택스 요소의 제2 값이 0보다 크고 PPS를 참조하는 각각의 비디오 픽처가 하나의 슬라이스만을 포함할 때 제1 신택스 요소의 제1 값이 1과 동일하다는 것을 지정한다.
방법(1200)의 일부 실시예에서, 규칙은 비디오 픽처의 각각의 서브픽처가 단 하나의 직사각형 슬라이스를 포함할 때 제1 신택스 요소의 제1 값이 1과 동일하다는 것을 지정한다. 방법(1200)의 일부 실시예에서, 규칙은 PPS 내의 tile_idx_delta_present_flag 신택스 요소의 존재는 제2 신택스 요소에 기초하지 않음을 지정한다.
방법(1200)의 일부 실시예에서, 규칙은 PPS 내의 tile_idx_delta_present_flag 신택스 요소의 존재가 제4 신택스 요소에 기초함을 지정하고, 여기서 제4 신택스 요소에 2를 더한 것은 PPS를 참조하는 각 비디오 픽처의 직사각형 슬라이스의 수를 나타낸다. 방법(1200)의 일부 실시예들에서, 규칙은 비디오 픽처의 슬라이스들의 수가 제4 신택스 요소에 2를 더한 것과 동일하다는 것을 지정한다. 방법(1200)의 일부 실시예에서, 규칙은 PPS를 참조하는 각각의 비디오 픽처에 픽처 파티셔닝이 적용되지 않음을 플래그가 나타낼 때 비디오 픽처의 슬라이스의 수가 1과 동일하다는 것을 지정한다. 방법(1200)의 일부 실시예에서, 규칙은 제1 신택스 요소가 1의 값을 가질 때 비디오 픽처의 슬라이스 수가 제2 신택스 요소에서 1을 뺀 것과 동일하다는 것을 지정한다.
도 13은 비디오 처리의 하나의 예의 방법(1300)에 대한 순서도이다. 동작(1302)은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 픽처 파라미터 세트(picture parameter set)(PPS)가 비디오의 비디오 픽처가 동일한 높이를 갖는 제1 타일 행 또는 열의 수 및 상이한 높이 또는 너비를 갖는 제2 타일 행 또는 열의 수를 갖는 타일 행 또는 열로 나누어지는지 여부를 나타내는 하나 이상의 신택스 요소를 포함하는 것을 지정하고, 및 여기서 제1 타일 행 또는 열의 수는 제2 타일 행 또는 열의 수 이전에 비디오 픽처에 위치된다.
방법(1300)의 일부 실시예에서, 규칙은: (1) PPS의 플래그는 PPS를 참조하는 각 비디오 픽처에 픽처 파티셔닝이 적용되지 않음을 나타내고, (2) PPS의 제1 신택스 요소는 명시적으로 제공된 타일 열 너비의 수에서 1을 뺀 값은 1보다 클 때, PPS는 비디오 픽처가 동일한 너비의 제1 타일 열 수와 너비가 다른 타일 열의 두 개보다 많은 타일 열로 나누어지는지 여부를 나타내는 제2 신택스 요소를 포함하고, 여기서 제1 타일 열 수는 제2 타일 열 수 이전에 비디오 픽처에 위치된다는 것을 지정한다. 방법(1300)의 일부 실시예에서, 규칙은, (1) PPS의 플래그가 PPS를 참조하는 각 비디오 픽처에 픽처 파티셔닝이 적용되지 않음을 표시하고, (2) PPS의 세3 신택스 요소가 명시적으로 제공된 타일 행 높이의 수에서 1을 뺀 값이 1보다 크다는 것을 나타낼 때, PPS는 비디오 픽처가 동일한 높이의 제1 타일 행 수와 다른 높이를 갖는 제2 타일 행 수를 갖는 2개 이상의 타일 행으로 나누어지는지 여부를 나타내는 제4 신택스 요소를 포함하고, 제1 타일 행의 수는 비디오 픽처에서 제2 타일 행의 수보다 이전에 위치되는 것을 지정한다. 방법(1300)의 일부 실시예에서, 규칙은 타일 열 폭 및/또는 타일 행 높이가 각각 제2 신택스 요소 및 제4 신택스 요소에 기초하여 유도된다는 것을 지정한다.
방법(1300)의 일부 실시예에서, 규칙은 비디오 픽처의 타일이 다수의 슬라이스로 나누어질 때, PPS의 하나 이상의 신택스 요소가 타일이 다수의 슬라이스 행으로 유도되는지 여부를 나타내는 제1 신택스 요소를 포함하는 것을 지정하고, 제1 슬라이스 행 수는 동일한 높이를 갖고 제2 슬라이스 행 수는 상이한 높이를 가지며, 제1 슬라이스 행 수는 제2 슬라이스 행 수 이전의 타일에 위치된다. 방법(1300)의 일부 실시예에서, 규칙은 다중 슬라이스의 슬라이스 높이가 PPS의 제2 신택스 요소의 값에 기초하여 유도된다는 것을 지정하고, 여기서 제2 신택스 요소는 비디오 픽처가 동일한 높이의 제1 타일 행 수와 상이한 높이를 갖는 제2 타일 행 수를 갖는 2개 이상의 타일 행으로 나누어지는지 여부를 나타내고, 여기서 제1 타일 행 수는 비디오 픽처에서 제2 타일 행 수 이전에 위치된다.
도 14는 비디오 처리의 하나의 예의 방법(1400)에 대한 순서도이다. 동작(1402)은 규칙에 따라 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(network abstraction layer)(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 비디오 영역에 대해 허용된다는 것을 지정한다.
방법(1400)의 일부 실시예에서, 규칙은 1과 동일한 일반 제약 신택스 요소가 적응형 루프 필터링 데이터를 포함하는 하나 이상의 APS NAL 유닛의 부재를 지정한다고 추가로 지정되었다. 방법(1400)의 일부 실시예에서, 규칙은 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 활성화됨을 나타내는 제2 신택스 요소를 시퀀스 파라미터 세트(SPS)가 포함함을 추가로 지정한다. 방법(1400)의 일부 실시예에서, 규칙은 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화되는 것을 나타내는 제2 신택스 요소를 시퀀스 파라미터 세트(SPS)가 포함함을 추가로 지정한다. 방법(1400)의 일부 실시예에서, 규칙은 픽처 헤더(PH)의 제2 신택스 요소가 적응형 루프 필터링 동작이 비디오 영역이 속하는 현재 비디오 픽처에 대해 활성화됨을 나타내는 것을 추가로 지정하고, 및/또는 여기서 규칙은 슬라이스 헤더(SH)의 제3 신택스 요소가 적응형 루프 필터링 동작이 비디오 영역이 속하는 현재 슬라이스의 루마 및 크로마 컬러 컴포넌트에 대해 활성화됨을 나타내도록 추가로 지정한다.
방법(1400)의 일부 실시예에서, 규칙은 픽처 헤더(PH)의 제2 신택스 요소가 적응형 루프 필터링 동작이 비디오 영역이 속하는 현재 비디오 픽처에 대해 비활성화됨을 나타내는 것을 추가로 지정하고, 및/또는 여기서 규칙은 슬라이스 헤더(SH)의 제3 신택스 요소가 적응형 루프 필터링 동작이 비디오 영역이 속하는 현재 슬라이스의 루마 및 크로마 컬러 컴포넌트에 대해 비활성화됨을 나타내도록 추가로 지정한다. 방법(1400)의 일부 실시예에서, 규칙은 비디오 영역의 크로마 컬러 컴포넌트에 대해 적응형 루프 필터링 동작이 비활성화되고 비디오 영역에 대해 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화된다는 것을 추가로 지정한다. 방법(1400)의 일부 실시예에서, 규칙은 적응형 루프 필터링 동작이 비디오 영역의 루마 컴포넌트에 대해 사용된다는 것을 추가로 명시한다. 방법(1400)의 일부 실시예에서, 규칙은 다음 신택스 요소의 값이 0:ph_num_alf_aps_ids_luma, ph_alf_chroma_idc, slice_num_alf_aps_ids_luma, slice_alf_chroma_idc, 및 sps_ccalf_enabled_flag와 동일하다는 것을 추가로 지정한다.
도 15는 비디오 처리의 하나의 예의 방법(1500)에 대한 순서도이다. 동작(1502)은 규칙에 따라 비디오 영역을 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 비디오 영역에 대해 허용되지 않음을 지정한다.
방법(1500)의 일부 실시예에서, 규칙은 시퀀스 파라미터 세트(SPS)가 제2 신택스 요소 및 제3 신택스 요소를 포함한다는 것을 추가로 지정하고, 여기서 제2 신택스 요소는 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화됨을 나타내고, 및 제3 신택스 요소는 코딩된 계층 비디오 시퀀스(CLVS)에 대해 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화됨을 나타낸다.
도 16은 비디오 처리의 하나의 예의 방법(1600)에 대한 순서도이다. 동작(1602)은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 제2 신택스 요소의 제2 값이 0과 동일함을 나타내는 1의 값을 갖는 제1 신택스 요소의 제1 값에 응답하여 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작이 허용되지 않는 것을 지정하고, 여기서 규칙은 일반 제약 정보 신택스 구조가 제1 신택스 요소를 포함하는 것을 지정하고, 및 여기서 규칙은 0의 값을 갖는 시퀀스 파라미터 세트(SPS)의 제2 신택스 요소가 비디오의 모든 비디오 픽처에 대해 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화됨을 표시하도록 지정한다.
방법(1600)의 일부 실시예에서, 규칙은 ALF가 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화되는 것을 나타내는 SPS의 제3 신택스 요소의 제3 값이 0임을 지정한다.
도 17은 비디오 처리의 하나의 예의 방법(1700)에 대한 순서도이다. 동작(1702)은 규칙에 따라 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 적응형 루프 필터링 데이터를 포함하는 적응형 파라미터 세트(APS)의 수를 나타내는 하나 이상의 신택스 요소 및/또는 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작에 대한 APS 식별자를 나타내는 하나 이상의 신택스 요소를 포함할지 여부는 적응형 루프 필터링 데이터를 포함하는 APS 네트워크 추상화 계층(Network Abstraction Layer)(NAL) 유닛이 비트스트림에 존재하는지 여부를 나타내는 제1 신택스 요소의 존재에 기초하는 것을 지정한다.
방법(1700)의 일부 실시예에서, 규칙은 비트스트림에 적응형 루프 필터링 데이터를 포함하는 APS NAL 유닛의 부재를 나타내는 제1 신택스 요소에 응답하여 하나 이상의 신택스 요소가 포함되지 않는다는 것을 지정한다. 방법(1700)의 일부 실시예에서, 제1 신택스 요소는 (1) NAL 유닛이 비디오 영역의 예측 유닛(prediction unit)(PU)의 제1 비디오 코딩 계층(first video coding layer )(VCL)보다 선행한다는 것 또는 (2) NAL 유닛은 비디오 영역의 PU의 마지막 VCL을 따른다는 것을 나타내는 NAL 유닛 헤더(NUH)의 유형을 갖는 네트워크 추상화 계층(NAL)이 없다는 것을 지정한다.
방법(1700)의 일부 실시예에서, 하나 이상의 신택스 요소는 적응형 루프 필터링 데이터를 포함하고 현재 비디오 픽처의 비디오 슬라이스에 의해 참조되는 APS의 수를 나타내는 제2 신택스 요소를 포함하고, 여기서 제2 신택스는 요소는 픽처 헤더(PH)에 포함된다. 방법(1700)의 일부 실시예에서, 하나 이상의 신택스 요소는: 적응형 루프 필터링 데이터를 포함하는 제1 APS에 대한 제1 APS 식별자를 나타내는 제3 신택스 요소 - 제1 APS 식별자는 현재 비디오 픽처의 슬라이스의 루마 컴포넌트에 의해 참조됨 -, 또는 적응형 루프 필터링 데이터를 포함하는 제2 APS에 대한 제2 APS 식별자를 나타내는 제4 신택스 요소 - 제2 APS 식별자는 현재 비디오 픽처의 슬라이스의 크로마 컬러 컴포넌트에 의해 참조됨 -, 또는 적응형 루프 필터링 데이터를 포함하는 제3 APS에 대한 제3 APS 식별자를 나타내는 제5 신택스 요소 - 제3 APS 식별자는 현재 비디오 픽처에서 슬라이스의 Cb 크로마 컬러 컴포넌트에 의해 참조됨 -, 또는 적응형 루프 필터링 데이터를 포함하는 제4 APS에 대한 제4 APS 식별자를 나타내는 제6 신택스 요소 - 제4 APS 식별자는 현재 비디오 픽처에서 슬라이스의 Cr 크로마 컬러 컴포넌트에 의해 참조됨 - 를 포함하고, 여기서 제3 신택스 요소, 제4 신택스 요소, 제5 신택스 요소, 또는 제6 신택스 요소는 픽처 헤더(PH)에 포함된다.
도 18은 비디오 처리의 하나의 예의 방법(1800)에 대한 순서도이다. 동작(1802)은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은 하나 이상의 신택스 요소가 파라미터 세트 또는 헤더 또는 신택스 구조에 표시되어 다음 중 임의의 하나 이상이 비활성화됨을 지정하도록 지정한다: 적응 루프 필터링 동작, 크로스 컴포넌트 적응형 루프 필터링 동작, 크로마 스케일링 동작(LMSCS)이 있는 루마 매핑, 또는 하나 이상의 사용자 정의 스케일링 목록.
방법(1800)의 일부 실시예에서, 파라미터 세트는 시퀀스 파라미터 세트(SPS) 또는 픽처 파라미터 세트(PPS)를 포함한다. 방법(1800)의 일부 실시예에서, 헤더는 픽처 헤더(PH) 또는 슬라이스 헤더(SH)를 포함한다. 방법(1800)의 일부 실시예에서, 신택스 구조는 일반 제약 정보 신택스 구조를 포함한다.
도 19는 비디오 처리의 하나의 예의 방법(1900)에 대한 순서도이다. 동작(1902)은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 여기서 규칙은: 루마 샘플 유닛의 PPS를 참조하는 각 비디오 픽처의 너비는 각 비디오 픽처가 참조하는 루마 샘플 유닛의 시퀀스 파라미터 세트(Sequence Parameter Set)(SPS)에 표시된 최대 픽처 너비와 동일하고, 루마 샘플 유닛의 PPS를 참조하는 각 비디오 픽처의 높이는 루마 샘플 유닛의 SPS에 표시된 최대 픽처 높이와 동일하다는 것에 응답하여: 픽처 파라미터 세트(PPS)에서 적합성 윈도우 파라미터 세트가 생략되도록 지정한다.
방법(1900)의 일부 실시예에서, 규칙은 특정 값을 갖는 신택스 요소가 다음을 나타내는 것을 지정한다: (1) 각 비디오 픽처의 너비는 최대 픽처 너비와 동일하고 (2) 각 비디오 픽처의 높이는 최대 픽처 높이와 동일하다. 방법(1900)의 일부 실시예에서, 규칙은 다음에 대한 응답으로 신택스 요소가 0과 동일하다는 것을 지정한다: (1) 각 비디오 픽처의 너비를 나타내는 PPS 신택스 요소의 제1 값은 최대 픽처 너비를 나타내는 SPS 신택스 요소의 제2 값과 동일하고, (2) 높이를 나타내는 PPS 신택스 요소의 제3 값 각 비디오 픽처의 최대 픽처 높이를 나타내는 SPS 신택스 요소의 제4 값과 동일하다. 방법(1900)의 일부 실시예에서, 신택스 요소는 적합성 크로핑 윈도우 오프셋 파라미터가 PPS에 존재하는지 여부를 지정한다. 방법(1900)의 일부 실시예에서, 규칙은 PPS가 각각의 비디오 픽처의 폭 및 각각의 비디오 픽처의 높이를 나타내는 신택스 요소를 포함하도록 지정한다.
방법(1900)의 일부 실시예에서, 규칙은 1에서 특정 값을 뺀 값을 갖는 신택스 요소가 다음을 나타내도록 지정한다: (1) 각 비디오 픽처의 너비가 최대 픽처 너비보다 작고, (2) 각 비디오 픽처의 높이가 최대 픽처 높이보다 작다. 방법(1900)의 일부 실시예에서, 규칙은 특정 값을 갖는 신택스 요소에 응답하여 적합성 윈도우 파라미터의 세트가 PPS에 포함되지 않도록 지정한다. 방법(1900)의 일부 실시예에서, 적합성 윈도우 파라미터의 세트는: PPS에서 적합성 크로핑 윈도우 오프셋 파라미터가 다음에 따르는지 여부를 나타내는 제1 신택스 요소, 및 픽처 좌표에 지정된 직사각형 영역의 관점에서 코딩된 계층 비디오 시퀀스(CLVS)에서 비디오 픽처의 샘플을 나타내는 4개의 추가 신택스 요소를 포함한다. 방법(1900)의 일부 실시예에서, 적합성 윈도우 파라미터의 세트에 대한 값은 SPS에 포함된 적합성 윈도우 파라미터의 제2 세트와 동일한 것으로 유추된다. 방법(1900)의 일부 실시예에서, 적합성 윈도우 파라미터의 제2 세트는: 적합성 크로핑 윈도우 오프셋 파라미터가 SPS에서 다음에 따르는지 여부를 나타내는 제6 신택스 요소, 다음을 포함하는 하나 이상의 비디오 픽처에 적용되는 크로핑 윈도우의 좌표를 지정하는 4개의 추가 신택스 요소: (1) 최대 픽처 너비와 동일한 너비, (2) 최대 픽처 높이와 동일한 높이.
본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치들에 함께 배치(병치)(co-located)되거나 확산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록(macroblock)은 변환 및 코딩된 오류 잔차 값의 관점에서, 그리고 또한 비트스트림의 헤더 및 기타 필드에 비트를 사용하여 인코딩 될 수 있다. 또한, 변환 동안, 디코더는 위의 솔루션에서 설명된 바와 같이 결정에 기초하여 일부 필드들이 존재하거나 없을 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드가 포함되는지 여부를 결정할 수 있고, 이에 따라 코딩된 표현으로부터 신택스 필드를 포함하거나 또는 제외함으로써 코딩된 표현을 생성할 수 있다.
본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 동작(operation)은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 즉, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 메모리 장치, 기계 판독 가능 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 장치는 하드웨어에 추가하여 대응 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전용되는 단일 파일 또는 여러 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 순서도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(애플리케이션 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 전체를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되고, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 서브 조합으로 다중 실시예들에서도 구현될 수 있다. 더욱이, 앞서와 같이 특징들은 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 제외될 수 있고, 주장된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.
마찬가지로, 동작은 특정 순서로 도면에 묘사되어 있지만, 바람직한 결과를 달성하기 위하여, 이러한 동작이 표시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예들에서, 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되고 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (32)

  1. 비디오 처리 방법에 있어서,
    비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 규칙에 따라 수행하는 단계를 포함하고,
    상기 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 상기 비디오 영역에 대해 허용된다는 것을 지정하는
    방법.
  2. 제1항에 있어서,
    상기 규칙은 1과 동일한 일반 제약 신택스 요소가 상기 적응형 루프 필터링 데이터를 포함하는 상기 하나 이상의 APS NAL 유닛의 부재를 지정한다는 것을 추가로 지정하는
    방법.
  3. 제1항에 있어서,
    상기 규칙은 상기 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 활성화됨을 나타내는 제2 신택스 요소를 시퀀스 파라미터 세트(SPS)가 포함함을 추가로 지정하는
    방법.
  4. 제2항에 있어서,
    상기 규칙은 상기 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화됨을 나타내는 제2 신택스 요소를 시퀀스 파라미터 세트(SPS)가 포함함을 추가로 지정하는
    방법.
  5. 제1항에 있어서,
    상기 규칙은 픽처 헤더(PH)의 제2 신택스 요소가 상기 적응형 루프 필터링 동작이 상기 비디오 영역이 속하는 현재 비디오 픽처에 대해 활성화됨을 나타내도록 추가로 지정하고, 및/또는
    상기 규칙은 슬라이스 헤더(SH)의 제3 신택스 요소가 상기 적응형 루프 필터링 동작이 상기 비디오 영역이 속하는 현재 슬라이스의 루마 및 크로마 컬러 컴포넌트에 대해 활성화됨을 나타내는 것을 추가로 지정하는
    방법.
  6. 제1항에 있어서,
    상기 규칙은 픽처 헤더(PH)의 제2 신택스 요소가 상기 적응형 루프 필터링 동작이 상기 비디오 영역이 속하는 현재 비디오 픽처에 대해 비활성화됨을 나타냄을 추가로 지정하고, 및/또는
    상기 규칙은 슬라이스 헤더(SH)의 제3 신택스 요소가 상기 적응형 루프 필터링 동작이 상기 비디오 영역이 속하는 현재 슬라이스의 루마 및 크로마 컬러 컴포넌트에 대해 비활성화됨을 나타내는 것을 추가로 지정하는
    방법.
  7. 제1항에 있어서,
    상기 규칙은 상기 적응형 루프 필터링 동작이 상기 비디오 영역의 크로마 컬러 컴포넌트에 대해 비활성화되고 크로스 컴포넌트 적응형 루프 필터링 동작이 상기 비디오 영역에 대해 비활성화되는 것을 추가로 지정하는
    방법.
  8. 제1항에 있어서,
    상기 규칙은 상기 적응형 루프 필터링 동작이 상기 비디오 영역의 루마 컴포넌트에 대해 사용된다는 것을 추가로 지정하는
    방법.
  9. 제1항에 있어서,
    상기 규칙은:
    ph_num_alf_aps_ids_luma,
    ph_alf_chroma_idc,
    slice_num_alf_aps_ids_luma,
    slice_alf_chroma_idc 및 sps_ccalf_enabled_flag
    의 신택스 요소의 값이 0과 동일하다는 것을 추가로 지정하는
    방법.
  10. 비디오 처리 방법에 있어서,
    비디오 영역을 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 규칙에 따라 수행하는 단계를 포함하고,
    상기 규칙은 적응형 루프 필터링 데이터를 포함하는 하나 이상의 적응형 파라미터 세트(APS) 네트워크 추상화 계층(NAL) 유닛의 부재에 응답하여 적응형 루프 필터링 동작이 상기 비디오 영역에 대해 허용되지 않음을 지정하는
    방법.
  11. 제10항에 있어서,
    상기 규칙은 시퀀스 파라미터 세트(SPS)가 제2 신택스 요소 및 제3 신택스 요소를 포함한다는 것을 추가로 지정하고,
    상기 제2 신택스 요소는 상기 적응형 루프 필터링 동작이 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화됨을 나타내고,
    상기 제3 신택스 요소는 코딩된 계층 비디오 시퀀스(CLVS)에 대해 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화됨을 나타내는
    방법.
  12. 비디오 처리 방법에 있어서,
    비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림을 규칙에 따라 변환하는 단계를 포함하고,
    상기 규칙은 제2 신택스 요소의 제2 값이 0과 동일함을 나타내는 1의 값을 갖는 제1 신택스 요소의 제1 값에 응답하여 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작이 허용되지 않음을 지정하고,
    상기 규칙은 일반 제약 정보 신택스 구조가 상기 제1 신택스 요소를 포함하도록 지정하고,
    상기 규칙은 0의 값을 갖는 시퀀스 파라미터 세트(SPS)의 상기 제2 신택스 요소가 상기 비디오의 모든 비디오 픽처에 대해 상기 크로스 컴포넌트 적응형 루프 필터링 동작이 비활성화됨을 나타내도록 지정하는
    방법.
  13. 제12항에 있어서,
    상기 규칙은 ALF가 코딩된 계층 비디오 시퀀스(CLVS)에 대해 비활성화됨을 나타내는 상기SPS의 제3 신택스 요소의 제3 값이 0임을 지정하는
    방법.
  14. 비디오 처리 방법에 있어서,
    하나 이상의 비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 규칙에 따라 수행하는 단계를 포함하고,
    상기 규칙은 다음을 지정합니다.
    적응형 루프 필터링 데이터를 포함하는 적응형 파라미터 세트(APS)의 수를 나타내는 하나 이상의 신택스 요소 및/또는 적응형 루프 필터링 동작 또는 크로스 컴포넌트 적응형 루프 필터링 동작에 대한 APS 식별자를 나타내는 하나 이상의 신택스 요소를 포함할지 여부는 상기 적응형 루프 필터링 데이터를 포함하는 APS 네트워크 추상화 계층(NAL) 유닛이 상기 비트스트림에 존재하는지 여부를 나타내는 제1 신택스 요소의 존재에 기초하는 것을 지정하는
    방법.
  15. 제14항에 있어서,
    상기 규칙은 상기 비트스트림에 상기 적응형 루프 필터링 데이터를 포함하는 상기 APS NAL 유닛의 부재를 나타내는 상기 제1 신택스 요소에 응답하여 상기 하나 이상의 신택스 요소가 포함되지 않도록 지정하는
    방법.
  16. 제14항 또는 제15항에 있어서,
    상기 제1 신택스 요소는 요소는, (1) 상기 NAL 유닛이 상기 비디오 영역의 예측 유닛(PU)의 제1 비디오 코딩 레이어(VCL)보다 앞서는 것 또는 (2) 상기 NAL 유닛이 상기 비디오 영역의 PU의 마지막 VCL 다음에 오는 것을 나타내는 NAL 유닛 헤더(NUH)의 유형을 갖는 네트워크 추상화 계층(NAL) 유닛이 없다는 것을 나타내는
    방법.
  17. 제14항 또는 제15항에 있어서,
    상기 하나 이상의 신택스 요소는 상기 적응형 루프 필터링 데이터를 포함하고 현재 비디오 픽처의 비디오 슬라이스에 의해 참조되는 APS의 수를 나타내는 제2 신택스 요소를 포함하고,
    상기 제2 신택스 요소는 픽처 헤더(PH)에 포함되는
    방법.
  18. 제14항 또는 제15항에 있어서,
    상기 하나 이상의 신택스 요소는:
    적응형 루프 필터링 데이터를 포함하는 제1 APS에 대한 제1 APS 식별자를 나타내는 제3 신택스 요소 - 상기 제1 APS 식별자는 현재 비디오 픽처의 슬라이스의 루마 컴포넌트에 의해 참조됨 -, 또는
    상기 적응형 루프 필터링 데이터를 포함하는 제2 APS에 대한 제2 APS 식별자를 나타내는 제4 신택스 요소 - 상기 제2 APS 식별자는 상기 현재 비디오 픽처의 상기 슬라이스의 크로마 컬러 컴포넌트에 의해 참조됨 -, 또는
    상기 적응형 루프 필터링 데이터를 포함하는 제3 APS에 대한 제3 APS 식별자를 나타내는 제5 신택스 요소 - 상기 제3 APS 식별자는 상기 현재 비디오 픽처에서 상기 슬라이스의 Cb 크로마 컬러 컴포넌트에 의해 참조됨 -, 또는
    상기 적응형 루프 필터링 데이터를 포함하는 제4 APS에 대한 제4 APS 식별자를 나타내는 제6 신택스 요소 - 상기 제4 APS 식별자는 상기 현재 비디오 픽처에서 상기 슬라이스의 Cr 크로마 컬러 컴포넌트에 의해 참조됨 - 을 포함하고,
    상기 제3 신택스 요소, 상기 제4 신택스 요소, 상기 제5 신택스 요소, 또는 상기 제6 신택스 요소는 픽처 헤더(PH)에 포함되는
    방법.
  19. 비디오 처리 방법에 있어서,
    규칙에 따라 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고,
    상기 규칙은 하나 이상의 신택스 요소가 파라미터 세트 또는 헤더 또는 신택스 구조에 표시되어:
    적응형 루프 필터링 작업, 크로스 컴포넌트 적형응 루프 필터링 작업, 크로마 스케일링 동작이 있는 루마 매핑(LMCS), 또는 하나 이상의 사용자 정의 스케일링 목록 중 임의의 하나 이상이 비활성화됨을 지정하도록 지정하는
    방법.
  20. 제19항에 있어서,
    상기 파라미터 세트는 시퀀스 파라미터 세트(SPS) 또는 픽처 파라미터 세트(PPS)를 포함하는
    방법.
  21. 제19항에 있어서,
    상기 헤더는 픽처 헤더(PH) 또는 슬라이스 헤더(SH)를 포함하는
    방법.
  22. 제19항에 있어서,
    상기 신택스 구조는 일반 제약 정보 신택스 구조를 포함하는
    방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 변환을 수행하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는
    방법.
  24. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 변환을 수행하는 단계는 상기 비디오에 기초하여 상기 비트스트림을 생성하는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는
    방법.
  25. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 변환을 수행하는 단계는 상기 비트스트림으로 부터 상기 비디오를 디코딩하는 단계를 포함하는
    방법.
  26. 제1항 내지 제25항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
  27. 제1항 내지 제25항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
  28. 컴퓨터 명령이 저장된 컴퓨터 프로그램 제품에 있어서,
    상기 명령은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 제1항 내지 제25항 중 어느 한 항에 기재된 방법을 구현하게 하는
    컴퓨터 프로그램 제품.
  29. 제1항 내지 제25항 중 어느 한 항의 방법에 따라 생성된 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
  30. 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체 에 있어서,
    상기 명령은, 프로세서로 하여금, 제1항 내지 제25항 중 어느 한 항에 기재된 방법을 구현하게 하는
    비일시적 컴퓨터 판독가능 저장 매체.
  31. 비트스트림 생성 방법에 있어서,
    제1항 내지 제25항 중 어느 한 항에 따른 방법에 따라 비디오의 비트스트림을 생성하는 단계, 및
    컴퓨터 판독 가능 프로그램 매체에 상기 비트스트림을 저장하는 단계를 포함하는
    비트스트림 생성 방법.
  32. 본 문서에 기술된 개시된 방법 또는 시스템에 따라 생성된 방법, 장치, 비트스트림.
KR1020227030335A 2020-03-11 2021-03-11 적응형 루프 필터링 KR20220146491A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/078770 2020-03-11
CN2020078770 2020-03-11
PCT/CN2021/080187 WO2021180166A1 (en) 2020-03-11 2021-03-11 Adaptive loop filtering

Publications (1)

Publication Number Publication Date
KR20220146491A true KR20220146491A (ko) 2022-11-01

Family

ID=77671195

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227030333A KR20220152212A (ko) 2020-03-11 2021-03-11 양자화 파라미터를 위한 높은 레벨의 비트스트림 신택스
KR1020227030335A KR20220146491A (ko) 2020-03-11 2021-03-11 적응형 루프 필터링

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227030333A KR20220152212A (ko) 2020-03-11 2021-03-11 양자화 파라미터를 위한 높은 레벨의 비트스트림 신택스

Country Status (6)

Country Link
US (5) US11856235B2 (ko)
EP (3) EP4104438A4 (ko)
JP (2) JP7407299B2 (ko)
KR (2) KR20220152212A (ko)
CN (5) CN115299051A (ko)
WO (5) WO2021180164A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115299051A (zh) * 2020-03-11 2022-11-04 抖音视界有限公司 视频编解码的一致性窗口参数
JP7429297B2 (ja) 2020-03-19 2024-02-07 鴻穎創新有限公司 ビデオデータをコーディングするためのデバイス及び方法
CN115398922A (zh) * 2020-03-20 2022-11-25 交互数字Vc控股法国公司 用于图像编码和解码的方法和设备
TW202143716A (zh) * 2020-04-14 2021-11-16 法商內數位Vc控股法國公司 對可適性色彩轉換及色度聯合編碼之尺度清單控制
JP2023534098A (ja) * 2020-05-22 2023-08-08 アリババ グループ ホウルディング リミテッド 映像コンテンツを処理するための方法及び機器

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9277228B2 (en) * 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9525876B2 (en) * 2011-11-04 2016-12-20 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
CN103096054B (zh) * 2011-11-04 2015-07-08 华为技术有限公司 一种视频图像滤波处理方法和装置
US9451252B2 (en) * 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
RU2584501C1 (ru) * 2012-04-16 2016-05-20 Нокиа Текнолоджиз Ой Способ и устройство для видеокодирования
KR101678321B1 (ko) 2012-07-02 2016-11-21 노키아 테크놀로지스 오와이 비디오 코딩을 위한 방법 및 장치
US9716892B2 (en) 2012-07-02 2017-07-25 Qualcomm Incorporated Video parameter set including session negotiation information
HUE031191T2 (en) 2012-12-21 2017-07-28 ERICSSON TELEFON AB L M (publ) Multilayered video stream decoding
US20150264099A1 (en) 2014-03-14 2015-09-17 Sharp Laboratories Of America, Inc. Systems and methods for constraining a bitstream
US9641851B2 (en) * 2014-04-18 2017-05-02 Qualcomm Incorporated Conformance window information in multi-layer coding
JP6542201B2 (ja) * 2014-04-25 2019-07-10 シャープ株式会社 画像復号装置および画像復号方法
JP6653860B2 (ja) * 2014-05-26 2020-02-26 シャープ株式会社 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法及びコンピュータ読み取り可能な記録媒体
CN105491379A (zh) 2014-10-01 2016-04-13 财团法人工业技术研究院 解码器、编码器、解码方法、编码方法与编解码系统
CN107409227B (zh) 2015-03-20 2020-01-21 联发科技(新加坡)私人有限公司 视频编解码方法及装置
US20160345014A1 (en) 2015-05-20 2016-11-24 Sharp Laboratories Of America, Inc. Systems and methods for coding a number of palette indices
US10390048B2 (en) * 2016-02-15 2019-08-20 Qualcomm Incorporated Efficient transform coding using optimized compact multi-pass transforms
US10349085B2 (en) 2016-02-15 2019-07-09 Qualcomm Incorporated Efficient parameter storage for compact multi-pass transforms
US10891379B2 (en) * 2016-04-26 2021-01-12 Nec Corporation Program analysis system, program analysis method and storage medium
EP3557870A4 (en) * 2016-12-16 2020-05-13 Sharp Kabushiki Kaisha IMAGE DECODING DEVICE AND IMAGE CODING DEVICE
CN110506421B (zh) 2017-03-20 2023-11-07 夏普株式会社 用于以媒体应用程序格式发信号通知可伸缩视频的系统和方法
US11019339B2 (en) * 2017-07-12 2021-05-25 Futurewei Technologies, Inc. Fractional quantization parameter offset in video compression
US11303912B2 (en) * 2018-04-18 2022-04-12 Qualcomm Incorporated Decoded picture buffer management and dynamic range adjustment
WO2019205998A1 (en) * 2018-04-24 2019-10-31 Mediatek Inc. Methods and apparatus of alternative transform skip mode for image and video coding
KR20240056624A (ko) 2018-06-03 2024-04-30 엘지전자 주식회사 축소된 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
KR102599446B1 (ko) * 2018-06-06 2023-11-08 엘지전자 주식회사 인트라 예측 모드에 기초하여 변환 인덱스 코딩을 수행하는 방법 및 이를 위한 장치
US11689720B2 (en) 2018-09-19 2023-06-27 Electronics And Telecommunications Research Institute Method and apparatus for encoding/decoding image by using boundary processing, and recording medium for storing bitstream
KR102366765B1 (ko) 2018-12-21 2022-02-24 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
GB2580173B (en) 2018-12-21 2022-07-27 Canon Kk A filter
CN109819264B (zh) 2018-12-28 2020-05-12 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
KR102392701B1 (ko) 2019-01-15 2022-04-28 엘지전자 주식회사 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
WO2020162690A1 (ko) 2019-02-06 2020-08-13 엘지전자 주식회사 축소된 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020181434A1 (en) 2019-03-08 2020-09-17 Zte Corporation Parameter set signaling in digital video
JP2022068379A (ja) 2019-03-08 2022-05-10 シャープ株式会社 画像復号装置
KR102204438B1 (ko) 2019-03-15 2021-01-18 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
CN116886931A (zh) * 2019-03-25 2023-10-13 寰发股份有限公司 用于视频编解码的量化矩阵计算和表示的方法和装置
US11616966B2 (en) 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
MX2021013073A (es) 2019-04-25 2021-11-17 Op Solutions Llc Movimiento global para los candidatos al modo de fusion en la prediccion inter.
WO2020242181A1 (ko) 2019-05-27 2020-12-03 에스케이텔레콤 주식회사 인트라 모드 후보 구성 방법 및 영상 복호화 장치
US11134275B2 (en) 2019-06-04 2021-09-28 Tencent America LLC Method and apparatus for performing primary transform based on filtering of blocks
WO2020263493A1 (en) 2019-06-24 2020-12-30 Alibaba Group Holding Limited Method and system for processing luma and chroma signals
US11277611B2 (en) * 2019-07-24 2022-03-15 Qualcomm Incorporated Delta quantization parameter (QP) signaling in palette mode
GB2586484B (en) 2019-08-20 2023-03-08 Canon Kk A filter
WO2021045765A1 (en) * 2019-09-05 2021-03-11 Huawei Technologies Co., Ltd. Efficient adaptive loop filter parameter signaling in video coding
KR20220058958A (ko) * 2019-09-17 2022-05-10 인터디지털 브이씨 홀딩스 프랑스 에스에이에스 루마 맵핑 기울기 값들에 추가될 보정 값을 예측하는 크로마 잔차 스케일링
US11153576B2 (en) * 2019-09-20 2021-10-19 Qualcomm Incorporated Scaling matrices and signaling for video coding
WO2021055138A1 (en) 2019-09-20 2021-03-25 Alibaba Group Holding Limited Quantization parameter signaling in video processing
CN114600462A (zh) 2019-10-25 2022-06-07 夏普株式会社 用于在视频编码中发送信号通知图片信息的系统和方法
JP7402016B2 (ja) 2019-11-06 2023-12-20 オッポ広東移動通信有限公司 画像復号装置及び画像符号化装置
US20220408114A1 (en) 2019-11-22 2022-12-22 Sharp Kabushiki Kaisha Systems and methods for signaling tiles and slices in video coding
US20210168406A1 (en) * 2019-11-29 2021-06-03 Tencent America LLC Signaling of video coding tools supporting various chroma formats
EP4078972A4 (en) 2019-12-17 2024-01-03 Alibaba Group Holding Ltd METHOD AND DEVICES FOR BLOCK DIVISION AT THE IMAGE BORDER
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
CN115299051A (zh) * 2020-03-11 2022-11-04 抖音视界有限公司 视频编解码的一致性窗口参数

Also Published As

Publication number Publication date
CN115299064A (zh) 2022-11-04
JP2023517085A (ja) 2023-04-21
CN115299051A (zh) 2022-11-04
WO2021180165A1 (en) 2021-09-16
US20230043717A1 (en) 2023-02-09
US20230048394A1 (en) 2023-02-16
EP4104438A4 (en) 2023-08-16
WO2021180166A1 (en) 2021-09-16
US11856235B2 (en) 2023-12-26
CN115462071A (zh) 2022-12-09
WO2021180169A1 (en) 2021-09-16
EP4104439A1 (en) 2022-12-21
US11930219B2 (en) 2024-03-12
JP2023517084A (ja) 2023-04-21
CN115336265A (zh) 2022-11-11
CN115299065A (zh) 2022-11-04
JP7407299B2 (ja) 2023-12-28
EP4104438A1 (en) 2022-12-21
EP4304174A2 (en) 2024-01-10
JP7407300B2 (ja) 2023-12-28
WO2021180164A1 (en) 2021-09-16
US20230071955A1 (en) 2023-03-09
US11968403B2 (en) 2024-04-23
WO2021180163A1 (en) 2021-09-16
US20240146973A1 (en) 2024-05-02
EP4104439A4 (en) 2023-08-16
KR20220152212A (ko) 2022-11-15
EP4304174A3 (en) 2024-03-20
US20230039617A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
US11968402B2 (en) Constrains for high level syntax elements
WO2021180163A1 (en) Adaptation parameter set signaling based on color format
WO2021239085A1 (en) Reference picture list signaling in video coding
US11991397B2 (en) Palette mode with local dual tree modetype definition
WO2021233449A1 (en) Reserved bits in general constraint information of a video
WO2021233450A1 (en) Signalling for color component
WO2021208899A1 (en) General constraint information in video coding
US20240137572A1 (en) Palette mode with local dual tree modetype definition