KR20220163392A - 비디오 코딩에서 디블로킹 시그널링 - Google Patents

비디오 코딩에서 디블로킹 시그널링 Download PDF

Info

Publication number
KR20220163392A
KR20220163392A KR1020227034984A KR20227034984A KR20220163392A KR 20220163392 A KR20220163392 A KR 20220163392A KR 1020227034984 A KR1020227034984 A KR 1020227034984A KR 20227034984 A KR20227034984 A KR 20227034984A KR 20220163392 A KR20220163392 A KR 20220163392A
Authority
KR
South Korea
Prior art keywords
equal
flag
slice
value
aps
Prior art date
Application number
KR1020227034984A
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 KR20220163392A publication Critical patent/KR20220163392A/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/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/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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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

Abstract

비디오 처리를 위한 시스템들, 방법들 그리고 장치들이 기술된다. 상기 비디오 처리는 비디오 인코딩, 비디오 디코딩 또는 비디오 트랜스코딩을 포함할 수 있다. 비디오 처리의 일 예시적 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하며, 상기 포맷 규칙은, 상기 비디오 영역에 대한 디블로킹 필터의 적용가능성이 i) 픽처 파라미터 세트 레벨 및 ii) 픽처 레벨 또는 슬라이스 레벨에서의 신택스 요소들에 기반하여 판단된다고 명시한다.

Description

비디오 코딩에서 디블로킹 시그널링
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2020년 4월 9일에 제출된 국제출원 No. PCT/CN2020/083967의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 영상 및 비디오 코딩 및 디코딩에 관한 것이다.
디지털 비디오는 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 차지한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 인코더들 및 디코더들이 코딩된 표현의 디코딩에 유용한 제어 정보를 사용하여 상기 코딩된 표현을 처리하기 위해 사용할 수 있는 기술들을 개시한다.
일 예시적 측면에서, 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 크로마 성분들을 가지며, 하나 또는 그 이상의 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 포맷 규칙을 따르며, 상기 포맷 규칙은 크로마 어레이 타입 필드가 상기 변환 동안 사용되는 크로마의 변환 특성에 관한 제약조건을 제어한다는 것을 명시한다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 비디오 영역들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 변환 동안 비디오 영역에 대한 디블로킹 필터의 적용 가능성을 지시하는 상기 비디오 영역에 대한 디블로킹 모드 지시자를 포함할 것을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 비디오 슬라이스들 및/또는 하나 또는 그 이상의 비디오 서브픽처들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 포맷 규칙을 따르며, 상기 포맷 규칙은 픽처 분할이 비디오 픽처에 대해 비활성화되는 경우 상기 비디오 픽처에 대해 서브픽처 모드별 단일 슬라이스가 활성화되는 것으로 간주되는지 여부를 지시하는 플래그를 명시한다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 비디오 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 픽처 또는 슬라이스 레벨 크로마 양자화 파라미터 오프셋이 픽처 헤더 또는 슬라이스 헤더에서 시그널링됨을 명시하는 포맷 규칙을 따른다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 비디오 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 비디오의 비디오 블록의 변환에 대해 적용가능한 크로마 양자화 파라미터(QP: quantization parameter) 테이블이 (delta_qp_in_val_minus1[ i ][ j ] + 1) 및 delta_qp_diff_val[ i ][ j ] 간의 XOR 연산으로 유도된다고 명시하는 포맷 규칙을 따르며, 이때 delta_qp_in_val_minus1[i][j]는 i번째 크로마 매핑 테이블의 j번째 피벗 포인트의 입력 좌표를 유도하는 데에 사용되는 델타 값을 명시하고, delta_qp_diff_val[ i ][ j ]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 출력 좌표를 유도하는 데에 사용되는 델타 값을 명시하며, 이때 i 및 j는 정수들이다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은, 제2 필드에 기반하는 적응 파라미터 세트 내의 제1 필드의 값에 대한 제약조건이, 픽처 또는 슬라이스가 상기 적응 파라미터 세트를 참조하는 경우 픽처 헤더 또는 슬라이스 헤더에 포함되는 정보를 사용하여 유도된다는 것을 명시한다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은, 상기 비디오 영역에 대한 디블로킹 필터의 적용가능성이 i) 픽처 파라미터 세트 레벨 및 ii) 픽처 레벨 또는 슬라이스 레벨에서의 신택스 요소들에 기반하여 판단된다고 명시한다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은, 제1 예측 모드의 적용가능성 또는 현재 비디오 블록의 블록 크기를 지시하는 제2 신택스 요소중 적어도 하나에 기반하여 상기 현재 비디오 블록이 스킵 모드로 코딩되는지 여부를 지시하는 제1 신택스 모드를 생략할 것을 명시하며, 상기 제1 예측은 블록 벡터들에 의해 결정되는 것과 같은 상기 현재 비디오 블록의 동일 슬라이스의 샘플 값들의 블록들로부터 유도된다.
다른 예시적 측면에서, 다른 비디오 처리 방법이 개시된다. 상기 방법은 하나 또는 그 이상의 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은 픽처 내 코딩 트리 블록들의 수에 기반하여 상기 픽처를 비디오 영역으로 분할할지 여부를 지시하는 지시의 존재 및/또는 값을 명시한다.
또 다른 예시적 측면에서, 비디오 인코더 장치가 개시된다. 상기 비디오 인코더는 상기 기술된 방법들을 실시하도록 구성된 프로세서를 포함한다.
또 다른 예시적 측면에서, 비디오 디코더 장치가 개시된다. 상기 비디오 디코더는 상기 기술된 방법들을 실시하도록 구성된 프로세서를 포함한다.
또 다른 예시적 측면에서, 코드를 저장하는 컴퓨터 판독 가능한 매체가 개시된다. 상기 코드는 여기에 기술된 방법들 중 하나를 프로세서로 실행 가능한 코드의 형태로 구현한다.
이와 같은 특성들 및 여타 특성들은 본 문서 전체에 걸쳐 기술된다.
도 1은 예시적인 비디오 처리 시스템의 블록도이다.
도 2는 비디오 처리 장치의 블록도이다.
도 3은 비디오 처리의 예시적 방법에 대한 순서도이다.
도 4는 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 도시하는 블록도이다.
도 5는 본 개시의 일부 실시예들에 따른 인코더를 도시하는 블록도이다.
도 6은 본 개시의 일부 실시예들에 따른 디코더를 도시하는 블록도이다.
도 7은 개시된 기술의 일부 구현들에 기반한 비디오 처리의 예시적 방법들을 위한 순서도들을 보여준다.
도 8a 내지 도 8c는 개시된 기술의 일부 구현들에 기반한 비디오 처리의 예시적 방법들을 위한 순서도들을 보여준다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용된 것으로 각 섹션에 개시된 기술들 및 실시예들의 적용을 해당 섹션으로 한정하지 않는다. 또한, H.266용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다
1. 도입 (Introduction)
본 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 비디오 코딩에서 APS, 디블로킹, 서브픽처 그리고 QP 델타의 신택스 설계에 관한 것이다. 착안들은, 개별적으로 또는 다양한 조합으로, 임의의 비디오 코딩 표준 또는 멀티 레이어 비디오 코딩을 지원하는 비표준 비디오 코덱, 예를 들면, 개발중인 VVC(Versatile Video Coding)에 적용될 수 있다.
2. 약어 (Abbreviations)
APS Adaptation Parameter Set (적응 파라미터 세트)
AU Access Unit (액세스 유닛)
AUD Access Unit Delimiter (액세스 유닛 구분자)
AVC Advanced Video Coding (고급 비디오 코딩)
CLVS Coded Layer Video Sequence (코딩된 레이어 비디오 시퀀스)
CPB Coded Picture Buffer (코딩된 픽처 버퍼)
CRA Clean Random Access (클린 랜덤 액세스)
CTU Coding Tree Unit (코딩 트리 유닛)
CVS Coded Video Sequence (코딩된 비디오 시퀀스)
DPB Decoded Picture Buffer (디코딩된 픽처 버퍼)
DPS Decoding Parameter Set (디코딩 파라미터 세트)
EOB End Of Bitstream (비트스트림 끝)
EOS End Of Sequence (시퀀스 끝)
GDR Gradual Decoding Refresh (점진적 디코딩 리프레시)
HEVC High Efficiency Video Coding (고효율 비디오 코딩)
HRD Hypothetical Reference Decoder (가상 참조 디코더)
IDR Instantaneous Decoding Refresh (순시 디코딩 리프레시)
JEM Joint Exploration Model (합동 탐사 모델)
MCTS Motion-Constrained Tile Sets (모션 제약 타일 세트)
NAL Network Abstraction Layer (네트워크 추상화 계층)
OLS Output Layer Set (출력 레이어 세트)
PH Picture Header (픽처 헤더)
PPS Picture Parameter Set (픽처 파라미터 세트)
PROF Prediction Refinement with Optical Flow (광학 흐름을 이용한 예측 조정)
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 Test Model (VVC 테스트 모델)
VUI Video Usability Information (비디오 사용성 정보)
VVC Versatile Video Coding (다목적 비디오 코딩)
3. 초기 논의 (Initial discussion)
비디오 코딩 표준들은 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 주로 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였다. 두 기관은 H.262/MPEG-2 Video, H.264/MPEG-4 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. JVET 회의는 매 분기마다 동시에 개최되며, 새로운 코딩 표준은 HEVC 대비 비트 레이트 50% 감소를 목표로 한다. 2018년 4월 새로운 코딩 표준은 VVC라는 공식적인 이름을 가지게 되었고, 당시에 VVC 테스트 모델 (VTM)의 첫 번째 버전이 출시되었다. VVC 표준화에 대한 지속적인 노력이 있는 관계로, 매 JVET 회의 마다 새로운 코딩 기술들이 VVC 표준에 채택되고 있다. 이후 상기 VVC 규격 초안 및 테스트 모델 VTM은 매 회의 마다 업데이트되었다. 이제 상기 VVC 프로젝트는 2020년 7월 회의에서 기술적 완성(FDIS)를 목표로 하고 있다.
3.1 PPS 신택스 및 시맨틱스 (syntax and semantics)
최신 VVC 초안 텍스트에서 PPS 신택스 (syntax)와 시맨틱스 (semantics)는 다음과 같다:
Figure pct00001
Figure pct00002
Figure pct00003
Figure pct00004
PPS RBSP는 PPS NAL 유닛의 TemporalId 이하의 TemporalId를 가지는 적어도 하나의 AU에 포함되거나 외부 수단을 통해 제공되어, 그것이 참조되기 전에 디코딩 프로세스에 이용가능해야 한다.
PU 내에서 pps_pic_parameter_set_id의 특정 값을 가지는 모든 PPS NAL 유닛들은 동일한 콘텐츠를 가져야 한다.
pps_pic_parameter_set_id는 다른 신택스 요소들에 참조할 PPS를 식별한다. pps_pic_parameter_set_id의 값은 0 내지 63의 범위(경계값 포함) 내에 있어야 한다.
PPS NAL 유닛들은, nuh_layer_id 값들에 상관없이, pps_pic_parameter_set_id의 동일한 값 공간을 공유한다.
ppsLayerId는 특정 PPS NAL 유닛의 nal_layer_id의 값이라 하고, vclLayerId가 특정 VCL NAL 유닛의 nuh_layer_id의 값이라 하자. ppsLayerId가 vclLayerId 이하가 아니고 ppsLayerId와 같은 nuh_layer_id를 가지는 레이어가 vclLayerId와 같은 nuh_layer_id를 가지는 레이어를 포함하는 적어도 하나의 OLS에 포함되지 않는다면, 상기 특정 VCL NAL 유닛은 상기 특정 PPS NAL 유닛을 참조하지 않아야 한다.
pps_seq_parameter_set_id는 SPS에 대한 sps_seq_parameter_set_id의 값을 명시한다. pps_seq_parameter_set_id의 값은 0 내지 15의 범위(경계값 포함) 내에 있어야 한다. pps_seq_parameter_set_id의 값은 CLVS에서 코딩된 픽처들에 의해 참조되는 모든 PPS들에서 동일해야 한다.
1과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 각 픽처가 둘 이상의 VCL NAL 유닛을 가지며, 상기 VCL NAL 유닛은 nal_unit_type의 동일한 값을 가지지 않으며, 상기 픽처는 IRAP 픽처가 아님을 명시한다. 0과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 각 픽처가 하나 이상의 VCL NAL 유닛들을 가지며, PPS를 참조하는 각 픽처의 VCL NAL 유닛들은 nal_unit_type의 동일한 값을 가진다고 명시한다.
no_mixed_nalu_types_in_pic_constraint_flag가 1과 같은 경우, mixed_nalu_types_in_pic_flag의 값은 0과 같아야 한다.
nal_unit_type의 다른 값을 가지는 하나 이상의 슬라이스들을 역시 포함하는 픽처 picA에서(즉, 픽처 picA에 대한 mixed_nalu_types_in_pic_flag의 값이 1과 같다), IDR_W_RADL 내지 CRA_NUT의 범위에서(경계값 포함) nal_unit_type 값 nalUnitTypeA를 가지는 각 슬라이스에 대해, 다음이 적용된다.
- 대응하는 subpic_treated_as_pic_flag[ i ]의 값이 1과 같은, 서브픽처 subpicA에 상기 슬라이스가 속한다.
- 상기 슬라이스는 nalUnitTypeA와 같지 않은 nal_unit_type을 가지는 VCL NAL 유닛들을 포함하는 picA의 서브픽처에 속하지 않아야 한다.
- 만약 nalUnitTypeA가 CRA와 같다면, 디코딩 순서 및 출력 순서에서 CLVS에서 현재 픽처를 따르는 모든 다음 PU들에 대해, 해당 PU들 내 subpicA에서의 슬라이스의 RefPicList[ 0 ]도 RefPicList[ 1 ]도 활성 엔트리에서 디코딩 순서 상 picA를 선행하는 임의의 픽처를 포함해야 한다.
- 그렇지 않으면(즉, nalUnitTypeA이 IDR_W_RADL 또는 IDR_N_LP와 같으면), 디코딩 순서에서 현재 픽처를 따르는 CLVS 내 모든 PU들에 대해, 해당 PU들 내 subpicA에서의 슬라이스의 RefPicList[ 0 ]도 RefPicList[ 1 ]도 활성 엔트리에서 디코딩 순서상 picA를 선행하는 임의의 픽처를 포함해야 한다.
참고 1 - 1과 같은 mixed_nalu_types_in_pic_flag는 PPS를 참조하는 픽처들이 상이한 NAL 유닛 타입들을 가지는 슬라이스들을 포함한다고, 즉 인코더들이 합치하는 비트스트림 구조 및 원본 비트스트림들의 파라미터들의 추가 정렬을 보장해야 하는 서브픽처 비트스트림 병합 동작으로부터 발생하는 코딩된 픽처들을 지시한다. 이러한 정렬들의 일 예는 다음과 같다. sps_idr_rpl_flag의 값이 0과 같고 mixed_nalu_types_in_pic_flag가 1과 같으면, PPS를 참조하는 픽처는 IDR_W_RADL 또는 IDR_N_LP와 같은 nal_unit_type을 가지는 슬라이스들을 가질 수 없다.
pic_width_in_luma_samples은 PPS를 참조하는 각 코딩된 픽처의 폭을 루마 샘플 단위로 명시한다. pic_width_in_luma_samples는 0과 같아서는 안 되고, Max( 8, MinCbSizeY )의 정수 배여야 하며, pic_width_max_in_luma_samples 이하여야 한다.
res_change_in_clvs_allowed_flag가 0과 같으면, pic_width_in_luma_samples는 pic_width_max_in_luma_samples와 같아야 한다.
pic_height_in_luma_samples는 PPS를 참조하는 각 코딩된 픽처의 높이를 루마 샘플 단위로 명시한다. pic_height_in_luma_samples는 0과 같아서는 안 되고, Max( 8, MinCbSizeY )의 정수 배여야 하며, pic_height_max_in_luma_samples 이하여야 한다.
res_change_in_clvs_allowed_flag가 0과 같으면, pic_height_in_luma_samples는 pic_height_max_in_luma_samples와 같아야 한다.
변수들 PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC 및 PicHeightInSamplesC는 아래와 같이 유도된다.
Figure pct00005
1과 같은 pps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 PPS에서 다음에 따라 온다고 지시한다. 0과 같은 pps_conformance_window_flag는 적합성 크로핑 윈도우 오프세트 파라미터들이 PPS에서 존재하지 않는다고 지시한다.
pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 그리고 pps_conf_win_bottom_offset은 디코딩 프로세스로부터 출력되는 CLVS내 픽처들의 샘플들을, 출력을 위한 픽처 좌표들에서 명시된 직사각 영역에 비추어 명시한다. pps_conformance_window_flag가 0과 같은 경우, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 그리고 pps_conf_win_bottom_offset의 값들은 0과 같다고 추론된다.
적합성 크로핑 윈도우는 SubWidthC * pps_conf_win_left_offset부터 pic_width_in_luma_samples - ( SubWidthC * pps_conf_win_right_offset + 1 ) 까지의(경계값 포함) 수평 픽처 좌표들 및 SubHeightC * pps_conf_win_top_offset부터 pic_height_in_luma_samples - ( SubHeightC * pps_conf_win_bottom_offset + 1 ) 까지의(경계값 포함) 수직 픽처 좌표들을 갖는 루마 샘플들을 포함한다.
SubWidthC * ( pps_conf_win_left_offset + pps_conf_win_right_offset )의 값은 pic_width_in_luma_samples 보다 작아야 하고, SubHeightC * ( pps_conf_win_top_offset + pps_conf_win_bottom_offset ) 의 값은 pic_height_in_luma_samples 보다 작아야 한다.
ChromaArrayType이 0이 아닐 때, 두 크로마 어레이의 해당하는 지정된 샘플들은 픽처 좌표들( x / SubWidthC, y / SubHeightC )를 갖는 샘플들이고, 여기서 ( x, y )는 지정된 루마 샘플들의 픽처 좌표들이다.
참고 2 - 적합성 크로핑 윈도우 오프세트 파라미터들은 출력에서만 적용된다. 모든 내적인 디코딩 프로세스들은 크로핑되지 않은 픽처 사이즈에 적용된다.
ppsA 및 ppsB가 동일한 SPS를 참조하는 임의의 두 PPS들이라 하자. 비트스트림 적합성의 요건으로, ppsA 및 ppsB가 각각 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 동일한 값들을 가지는 경우, ppsA 및 ppsB는 pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 및 pps_conf_win_bottom_offset의 동일한 값들을 각각 가져야 한다.
pic_width_in_luma_samples가 pic_width_max_in_luma_samples와 같고 pic_height_in_luma_samples가 pic_height_max_in_luma_samples와 같다면, 비트스트림 적합성의 요건으로, pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset 그리고 pps_conf_win_bottom_offset은 sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset 및 sps_conf_win_bottom_offset과 각각 같아야 한다.
1과 같은 scaling_window_explicit_signalling_flag는 스케일링 윈도우 오프세트 파라미터들이 PPS에 존재한다고 명시한다. 0과 같은 scaling_window_explicit_signalling_flag는 스케일링 윈도우 오프세트 파라미터들이 PPS에 존재하지 않는다고 명시한다. res_change_in_clvs_allowed_flag가 0과 같은 경우, scaling_window_explicit_signalling_flag의 값은 0과 같아야 한다.
scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offsetscaling_win_bottom_offset는 스케일링 비 계산을 위해 픽처 사이즈에 적용되는 오프세트들을 명시한다. 존재하지 않는 경우, scaling_win_left_offset, scaling_win_right_offset, scaling_win_top_offset 및 scaling_win_bottom_offset의 값들은 각각 SubWidthC * conf_win_left_offset, SubWidthC * conf_win_right_offset, SubHeightC * conf_win_top_offset, 그리고 SubHeightC * conf_win_bottom_offset와 같은 것으로 추론된다.
SubWidthC * ( scaling_win_left_offset + scaling_win_right_offset )의 값은 pic_width_in_luma_samples 미만이어야 하며, SubHeightC * ( scaling_win_top_offset + scaling_win_bottom_offset )의 값은 pic_height_in_luma_samples 미만이어야 한다.
변수들 PicOutputWidthL 및 PicOutputHeightL는 다음과 같이 유도된다.
Figure pct00006
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 pct00007
비트스트림 적합성의 요건으로, 다음 제약조건들이 모두 적용된다.
- 0 내지 sps_num_subpics_minus1의 범위 내(경계값 포함) 임의의 두 상이한 값 i 및 j에 대해, SubpicIdVal[ i ]는 SubpicIdVal[ j ]와 같아서는 안 된다.
- 현재 픽처가 CLVS의 첫 번째 픽처인 경우, 0 내지 sps_num_subpics_minus1의 범위 내(경계값 포함) i의 각 값에 대해, 만약 SubpicIdVal[ i ]의 값이 동일 레이어에서 디코딩 순서 상 이전 픽처의 SubpicIdVal[ j ]의 값과 같지 않다면, 서브픽처 인덱스 i를 가지는 현재 픽처에서 서브픽처의 모든 코딩된 슬라이스 NAL 유닛들에 대한 nal_unit_type은 IDR_W_RADL 내지 CRA_NUT의 범위에서(경계값 포함) 특정 값과 같아야 한다.
1과 같은 no_pic_partition_flag는 픽처 파티셔닝이 PPS를 참조하는 각 픽처에 적용되지 않는다고 명시한다. 0과 같은 no_pic_partition_flag는 PPS를 참조하는 각 픽처가 1개 보다 많은 타일 또는 슬라이스로 분할될 수 있음을 명시한다.
비트스트림 적합성의 요건으로, no_pic_partition_flag의 값은 CLVS내 코딩된 픽처들에 의해 참조되는 모든 PPS들에 대해 동일해야 한다.
비트스트림 적합성의 요건으로, no_pic_partition_flag의 값은, sps_num_subpics_minus1 + 1의 값이 1 보다 큰 경우, 1과 같이 않아야 한다.
pps_log2_ctu_size_minus5 플러스 5는 각 CTU의 루마 코딩 트리 블록 크기를 명시한다.
pps_log2_ctu_size_minus5는 sps_log2_ctu_size_minus5와 같아야 한다.
num_exp_tile_columns_minus1 플러스 1은 명시적으로 제공된 타일 열 폭들의 수를 명시한다. num_exp_tile_columns_minus1의 값은 0 내지 PicWidthInCtbsY - 1의 범위 내에 있어야 한다(경계값 포함). no_pic_partition_flag이 1과 같은 경우, num_exp_tile_columns_minus1의 값은 0과 같은 것으로 추론된다.
num_exp_tile_rows_minus1 플러스 1은 명시적으로 제공된 타일 행 높이들의 수를 명시한다. num_exp_tile_rows_minus1의 값은 0 내지 PicHeightInCtbsY - 1의 범위 내에 있어야 한다(경계값 포함). no_pic_partition_flag이 1과 같은 경우, num_exp_tile_rows_minus1의 값은 0과 같은 것으로 추론된다.
tile_column_width_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_columns_minus1 - 1의 범위 내(경계값 포함) i에 대해 i번째 타일 열의 폭을 CTB 단위로 명시한다. tile_column_width_minus1[ num_exp_tile_columns_minus1 ]은 6.5.1절에 명시된 바와 같이 인덱스가 num_exp_tile_columns_minus1 보다 크거나 같은 타일 열들의 폭을 유도하는 데에 사용된다. tile_column_width_minus1[ i ]의 값은 0 내지 PicWidthInCtbsY - 1의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, tile_column_width_minus1[ 0 ]의 값은 PicWidthInCtbsY - 1와 같은 것으로 추론된다.
tile_row_height_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_rows_minus1 - 1의 범위 내(경계값 포함) i에 대해 i번째 타일 행의 높이를 CTB 단위로 명시한다. tile_row_height_minus1[ num_exp_tile_rows_minus1 ]은 6.5.1절에 명시된 바와 같이 인덱스가 num_exp_tile_rows_minus1 보다 크거나 같은 타일 행들의 높이를 유도하는 데에 사용된다. tile_row_height_minus1[ i ]의 값은 0 내지 PicHeightInCtbsY - 1의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, tile_row_height_minus1[ 0 ]의 값은 PicHeightInCtbsY - 1과 같은 것으로 추론된다.
0과 같은 rect_slice_flag는 각 슬라이스 내의 타일들이 래스터 스캔 순서에 있으며, 슬라이스 정보가 PPS에서 시그널링되지 않는다고 명시한다. 1과 같은 rect_slice_flag는 각 슬라이스 내의 타일들이 픽처의 직사각형 영역을 커버하며, 슬라이스 정보가 PPS에서 시그널링된다고 명시한다. 존재하지 않는 경우, rect_slice_flag는 1과 같은 것으로 추론한다. subpic_info_present_flag가 1과 같은 경우, rect_slice_flag의 값은 1과 같아야 한다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. single_slice_per_subpic_flag가 1과 같은 경우, num_slices_in_pic_minus1는 sps_num_subpics_minus1와 같다고 추론된다. 존재하지 않는 경우, single_slice_per_subpic_flag의 값은 0과 같은 것으로 추론된다.
num_slices_in_pic_minus1 플러스 1은 PPS를 참조하는 각 픽처에서 직사각형 슬라이스들의 수를 명시한다. num_slices_in_pic_minus1의 값은 0 내지 MaxSlicesPerPicture - 1의 범위(경계값 포함) 내에 있어야 한다. no_pic_partition_flag가 1과 같은 경우, num_slices_in_pic_minus1의 값은 0과 같은 것으로 추론된다.
0과 같은 tile_idx_delta_present_flag는 tile_idx_delta 값들이 PPS에 존재하지 않는다고 명시하며, PPS를 참조하는 픽처들 내 모든 직사각형 슬라이스들이 6.5.1 절에 정의되는 프로세스에 따라 래스터 순서로 명시된다. 1과 같은 tile_idx_delta_present_flag는 tile_idx_delta 값들이 PPS에 존재할 수 있다고 명시하며, PPS를 참조하는 픽처들 내 모든 직사각형 슬라이스들이 tile_idx_delta의 값들에 의해 지시되는 순서로 명시된다. 존재하지 않는 경우, tile_idx_delta_present_flag의 값은 0과 같은 것으로 추론된다.
slice_width_in_tiles_minus1[ i ] 플러스 1은 i번째 직사각형 슬라이스의 폭을 타일 열의 단위로 명시한다. slice_width_in_tiles_minus1[ i ]의 값은 0 내지 NumTileColumns - 1의 범위(경계값 포함) 내에 있어야 한다.
slice_width_in_tiles_minus1[ i ]가 존재하지 않는 경우, 다음이 적용된다.
- 만약 NumTileColumns가 1과 같으면, slice_width_in_tiles_minus1[ i ]의 값은 0과 같다고 추론된다.
- 그렇지 않으면, slice_width_in_tiles_minus1[ i ]의 값은 6.5.1절에서 명시된 바와 같이 추론된다.
slice_height_in_tiles_minus1[ i ] 플러스 1은 i번째 직사각형 슬라이스의 높이를 타일 행의 단위로 명시한다. slice_height_in_tiles_minus1[ i ]의 값은 0 내지 NumTileRows - 1의 범위(경계값 포함) 내에 있어야 한다.
slice_height_in_tiles_minus1[ i ]가 존재하지 않는 경우, 다음이 적용된다.
- NumTileRows가 1과 같거나 또는 tile_idx_delta_present_flag가 0과 같고 tileIdx % NumTileColumns가 0 보다 크다면, slice_height_in_tiles_minus1[ i ]의 값이 0과 같다고 추론된다.
- 그렇지 않은 경우(NumTileRows가 1과 같지 않고, tile_idx_delta_present_flag가 1과 같거나 tileIdx % NumTileColumns가 0과 같으면), tile_idx_delta_present_flag가 1과 같거나 tileIdx % NumTileColumns가 0과 같으면, slice_height_in_tiles_minus1[ i ]의 값은 slice_height_in_tiles_minus1[ i - 1 ]과 같다고 추론된다.
num_exp_slices_in_tile[ i ]는 둘 이상의 직사각형 슬라이스들을 포함하는 현재 타일에서 명시적으로 제공된 슬라이스 높이들의 수를 명시한다. num_exp_slices_in_tile[ i ]의 값은 0 내지 RowHeight[ tileY ] - 1의 범위(경계값 포함) 내에 있어야 하며, 이때 tileY는 i번째 슬라이스를 포함하는 타일 행 인덱스이다. 존재하지 않는 경우, num_exp_slices_in_tile[ i ]의 값은 0과 같은 것으로 추론된다. num_exp_slices_in_tile[ i ]가 0과 같은 경우, 변수 NumSlicesInTile[ i ]의 값은 1과 같은 것으로 유도된다.
exp_slice_height_in_ctus_minus1[ j ] 플러스 1은 현재 타일 내 j 번째 직사각형 슬라이스의 높이를 CTU 행의 단위로 명시한다. exp_slice_height_in_ctus_minus1[ j ]의 값은 0 내지 RowHeight[ tileY ] - 1의 범위(경계값 포함) 내에 있어야 하며, 여기서 tileY는 현재 타일의 타일 행 인덱스이다.
num_exp_slices_in_tile[ i ]가 0 보다 큰 경우, 0 내지 NumSlicesInTile[ i ] - 1의 범위 내의 k에 대해 변수 NumSlicesInTile[ i ] 및 SliceHeightInCtusMinus1[ i + k ]는 아래와 같이 유도된다.
Figure pct00008
tile_idx_delta[ i ]는 i번째 직사각형 슬라이스 내의 첫 번째 타일의 타일 인덱스와 (i+1)번째 직사각형 슬라이스 내의 첫 번째 타일의 타일 인덱스 간의 차이를 명시한다. tile_idx_delta[ i ]의 값은 -NumTilesInPic + 1 내지 NumTilesInPic - 1의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, tile_idx_delta[ i ]의 값은 0과 같은 것으로 추론된다. 존재하는 경우, tile_idx_delta[ i ]의 값은 0과 같지 않아야 한다.
1과 같은 loop_filter_across_tiles_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 타일 경계들을 가로질러 실시될 수 있다고 명시한다. 0과 같은 loop_filter_across_tiles_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 타일 경계들을 가로질러 실시되지 않는다고 명시한다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, loop_filter_across_tiles_enabled_flag의 값은 1과 같은 것으로 추론된다.
1과 같은 loop_filter_across_slices_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 슬라이스 경계들을 가로질러 실시될 수 있다고 명시한다. 0과 같은 loop_filter_across_slices_enabled_flag는 인 루프 필터링 동작들이 PPS를 참조하는 픽처들에서 슬라이스 경계들을 가로질러 실시되지 않는다고 명시한다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, loop_filter_across_slices_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더들에 존재하지 않는다고 명시한다.
num_ref_idx_default_active_minus1[ i ] 플러스 1은, i가 0과 같은 경우, num_ref_idx_active_override_flag가 0과 같은 P 또는 B 슬라이스들에 대한 변수 NumRefIdxActive[ 0 ]의 추론된 값을 명시하고, i가 1과 같은 경우, num_ref_idx_active_override_flag가 0과 같은 B 슬라이스들에 대한 변수 NumRefIdxActive[ 1 ]의 추론된 값을 명시한다. num_ref_idx_default_active_minus1[ i ]의 값은 0 내지 14의 범위(경계값 포함) 내에 있어야 한다.
0과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]가 PPS를 참조하는 픽처들에 대한 슬라이스 헤더들 또는 PH 신택스 구조들에 존재하지 않는다고 명시한다. 1과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[ 1 ] 및 ref_pic_list_idx[ 1 ]가 PPS를 참조하는 픽처들에 대한 슬라이스 헤더들 또는 PH 신택스 구조들에 존재할 수 있다고 명시한다.
init_qp_minus26 플러스 26은 PPS를 참조하는 각 슬라이스에 대한 SliceQpY의 초기 값을 명시한다. SliceQpY의 초기 값은, ph_qp_delta의 0 아닌 값이 디코딩되는 경우 픽처 레벨에서 그리고 slice_qp_delta의 0 아닌 값이 디코딩되는 경우 슬라이스 레벨에서 수정된다. init_qp_minus26의 값은 -( 26 + QpBdOffset ) 내지 +37의 범위(경계값 포함) 내에 있어야 한다.
1과 같은 cu_qp_delta_enabled_flag ph_cu_qp_delta_subdiv_intra_slice 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하며 cu_qp_delta_abs는 변환 유닛 신택스에 존재할 수 있다고 명시한다. 0과 같은 cu_qp_delta_enabled_flag는 ph_cu_qp_delta_subdiv_intra_slice 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하지 않으며 cu_qp_delta_abs는 변환 유닛 신택스에 존재하지 않는다고 명시한다.
1과 같은 pps_chroma_tool_offsets_present_flag는 크로마 툴 오프세트 관련 신택스 요소들이 PPS RBSP 신택스 구조에 존재함을 명시한다. 0과 같은 pps_chroma_tool_offsets_present_flag는 크로마 툴 오프세트 관련 신택스 요소들이 PPS RBSP 신택스 구조에 존재함을 명시한다. ChromaArrayType이 0과 같은 경우, pps_chroma_tool_offsets_present_flag의 값은 0과 같아야 한다.
pps_cb_qp_offset and pps_cr_qp_offset은 Qp'Cb and Qp'Cr를 각각 유도하는 데에 사용되는 루마 양자화 파라미터 Qp'Y에 대한 오프세트들을 명시한다. pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다. ChromaArrayType이 0과 같은 경우, pps_cb_qp_offset 및 pps_cr_qp_offset은 디코딩 프로세스에서 사용되지 않으며, 디코더들은 그것들의 값을 무시해야 한다. 존재하지 않는 경우, pps_cb_qp_offset 및 pps_cr_qp_offset의 값들은 0과 같은 것으로 추론된다.
1과 같은 pps_joint_cbcr_qp_offset_present_flag는 pps_joint_cbcr_qp_offset_value 및 joint_cbcr_qp_offset_list[ i ]가 PPS RBSP 신택스 구조에 존재한다고 명시한다. 0과 같은 pps_joint_cbcr_qp_offset_present_flag는 pps_joint_cbcr_qp_offset_value 및 joint_cbcr_qp_offset_list[ i ]가 PPS RBSP 신택스 구조에 존재하지 않는다고 명시한다. ChromaArrayType이 0과 같거나 sps_joint_cbcr_enabled_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_present_flag는 0과 같아야 한다. 존재하지 않는 경우, pps_joint_cbcr_qp_offset_present_flag의 값은 0과 같은 것으로 추론된다.
pps_joint_cbcr_qp_offset_value는 Qp'CbCr을 유도하는 데에 사용되는 루마 양자화 파라미터 Qp'Y의 오프세트를 명시한다. pps_joint_cbcr_qp_offset_value의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다. ChromaArrayType이 0과 같거나 sps_joint_cbcr_enabled_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_value는 디코딩 프로세스에서 사용되지 않으며, 디코더들은 그것의 값을 무시해야 한다. pps_joint_cbcr_qp_offset_present_flag가 0과 같은 경우, pps_joint_cbcr_qp_offset_value는 존재하지 않으며 0과 같은 것으로 추론된다.
1과 같은 pps_slice_chroma_qp_offsets_present_flag는 slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들이 연관된 슬라이스 헤더들에 존재한다고 명시한다. 0과 같은 pps_slice_chroma_qp_offsets_present_flag는 slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들이 연관된 슬라이스 헤더들에 존재하지 않는다고 명시한다. 존재하지 않는 경우, pps_slice_chroma_qp_offsets_present_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_cu_chroma_qp_offset_list_enabled_flag는 ph_cu_chroma_qp_offset_subdiv_intra_slice 및 ph_cu_chroma_qp_offset_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하며, cu_chroma_qp_offset_flag가 변환 유닛 신택스 및 팔레트 코딩 신택스에 존재할 수 있음을 명시한다. 0과 같은 pps_cu_chroma_qp_offset_list_enabled_flag는 ph_cu_chroma_qp_offset_subdiv_intra_slice 및 ph_cu_chroma_qp_offset_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하지 않으며, cu_chroma_qp_offset_flag가 변환 유닛 신택스 및 팔레트 코딩 신택스에 존재하지 않음을 명시한다. 존재하지 않는 경우, pps_cu_chroma_qp_offset_list_enabled_flag의 값은 0과 같은 것으로 추론된다.
chroma_qp_offset_list_len_minus1 플러스 1은 PSS RBSP 신택스 구조에 존재하는 cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ] 신택스 요소들의 수를 명시한다. chroma_qp_offset_list_len_minus1의 값은 0 내지 5의 범위(경계값 포함) 안에 있어야 한다.
cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ]는 Qp'Cb, Qp'Cr, 그리고 Qp'CbCr를 각각 유도하는 데에 사용되는 오프세트들을 명시한다. cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] 및 joint_cbcr_qp_offset_list[ i ]의 값들은 -12 내지 +12의 범위(경계값 포함) 안에 있어야 한다. pps_joint_cbcr_qp_offset_present_flag가 0과 같은 경우, joint_cbcr_qp_offset_list[ i ]은 존재하지 않으며, 그것은 0과 같은 것으로 추론된다.
0과 같은 pps_weighted_pred_flag는 가중치 예측이 PPS를 참조하는 P 슬라이드들에 적용되지 않음을 명시한다. 1과 같은 pps_weighted_pred_flag는 가중치 예측이 PPS를 참조하는 P 슬라이드들에 적용됨을 명시한다. sps_weighted_pred_flag가 0과 같은 경우, pps_weighted_pred_flag의 값은 0과 같아야 한다.
0과 같은 pps_weighted_bipred_flag는 명시적 가중치 예측이 PPS를 참조하는 B 슬라이드들에 적용되지 않음을 명시한다. 1과 같은 pps_weighted_bipred_flag는 가중치 예측이 PPS를 참조하는 B 슬라이드들에 적용됨을 명시한다. sps_weighted_bipred_flag가 0과 같은 경우, pps_weighted_bipred_flag의 값은 0과 같아야 한다.
1과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 존재를 명시한다. 0과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 부재를 명시한다.
1과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 PH들 내 ph_deblocking_filter_override_flag의 존재 또는 PPS를 참조하는 슬라이스 헤더들 내 slice_deblocking_filter_override_flag의 존재를 명시한다. 0과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 PH들 내 ph_deblocking_filter_override_flag의 부재 또는 PPS를 참조하는 슬라이스 헤더들 내 slice_deblocking_filter_override_flag의 부재를 명시한다. 존재하지 않는 경우, deblocking_filter_override_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. 존재하지 않는 경우, pps_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.
pps_beta_offset_div2pps_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 루마 컴포넌트에 적용되는 (2로 나눈) β 및 Tc를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, pps_beta_offset_div2 및 pps_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
pps_cb_beta_offset_div2pps_cb_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 Cb 컴포넌트에 적용되는 (2로 나눈) β 및 tC를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, pps_cb_beta_offset_div2 및 pps_cb_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
pps_cr_beta_offset_div2pps_cr_tc_offset_div2는, 디폴트 디블로킹 파라미터 오프세트들이 PPS를 참조하는 슬라이스들의 슬라이스 헤더들 또는 픽처 헤더들에 존재하는 디블로킹 파라미터 오프세트들에 의해 무효화되지 않는 경우, PPS를 참조하는 슬라이스들을 위한 Cr 컴포넌트에 적용되는 (2로 나눈) β 및 tC를 위한 디폴트 디블로킹 파라미터 오프세트들을 명시한다. pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
1과 같은 rpl_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하며 PH 신택스 구조를 포함하는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 rpl_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 dbf_info_in_ph_flag는 디블로킹 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 dbf_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다. 존재하지 않는 경우, dbf_info_in_ph_flag의 값은 0과 같은 것으로 추론한다.
1과 같은 sao_info_in_ph_flag는 SAO 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 sao_info_in_ph_flag는 SAO 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 alf_info_in_ph_flag는 ALF 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 alf_info_in_ph_flag는 ALF 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 wp_info_in_ph_flag는 가중치 예측 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 wp_info_in_ph_flag는 가중치 예측 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다. 존재하지 않는 경우, wp_info_in_ph_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 qp_delta_info_in_ph_flag는 QP 델타 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 qp_delta_info_in_ph_flag는 QP 델타 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다.
1과 같은 pps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 인터 예측에서 적용됨을 명시한다. 0과 같은 pps_ref_wraparound_enabled_flag는 수평 랩 어라운드 모션 보상이 적용되지 않음을 명시한다. CtbSizeY / MinCbSizeY + 1의 값이 pic_width_in_luma_samples / MinCbSizeY - 1 보다 큰 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 한다. sps_ref_wraparound_enabled_flag의 값이 0과 같은 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 한다.
pps_ref_wraparound_offset 플러스 ( CtbSizeY / MinCbSizeY ) + 2는 MinCbSizeY 루마 샘플들의 유닛들에서 수평 랩 어라운드 위치를 산정하기 위해 사용되는 오프세트를 명시한다. pps_ref_wraparound_offset의 값은 0 내지 ( pic_width_in_luma_samples / MinCbSizeY ) - ( CtbSizeY / MinCbSizeY ) - 2의 범위(경계값 포함) 내에 있어야 한다.
변수 PpsRefWraparoundOffset은 pps_ref_wraparound_offset+( CtbSizeY / MinCbSizeY ) + 2와 같은 것으로 설정된다.
0과 같은 picture_header_extension_present_flag는 어떤 PH 확장 신택스 요소들도 PPS를 참조하는 PH들에 존재하지 않는다고 명시한다. 1과 같은 picture_header_extension_present_flag는 PH 확장 신택스 요소들이 PPS를 참조하는 PH들에 존재한다고 명시한다. picture_header_extension_present_flag는 본 명세서의 본 버전에 부합하는 비트스트림에서 0과 같아야 한다.
0과 같은 slice_header_extension_present_flag는 어떤 슬라이스 헤더 확장 신택스 요소들도 PPS를 참조하는 코딩된 픽처들을 위한 슬라이스 헤더들에 존재하지 않는다고 명시한다. 1과 같은 slice_header_extension_present_flag는 슬라이스 헤더 확장 신택스 요소들이 PPS를 참조하는 코딩된 픽처들을 위한 슬라이스 헤더들에 존재한다고 명시한다. slice_header_extension_present_flag는 본 명세서의 본 버전에 부합하는 비트스트림에서 0과 같아야 한다.
0과 같은 pps_extension_flag는 어떤 pps_extension_data_flag 신택스 요소들도 PPS RBSP 신택스 구조에 존재하지 않는다고 명시한다. 1과 같은 pps_extension_flag는 PPS RBSP 신택스 구조에 pps_extension_data_flag 신택스 요소들이 존재한다고 명시한다.
pps_extension_data_flag는 임의의 값을 가질 수 있다. 그것의 존재와 값은 본 명세서의 본 버전에 명시되는 프로파일들에 대한 디코더의 적합성에 영향을 미치지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 pps_extension_data_flag 신택스 요소들을 무시해야 한다.
3.2 APS syntax and semantics
최신 VVC 초안 텍스트에서 APS 신택스와 시맨틱스은 다음과 같다:
Figure pct00009
APS RBSP는 ALF 신택스 구조, 즉 alf_data( )를 포함한다.
Figure pct00010
Figure pct00011
APS RBSP는 LMCS 신택스 구조, 즉 lmcs_data( )를 포함한다.
Figure pct00012
APS RBSP에는 스케일링 리스트 데이터 신택스 구조, 즉 scaling_list_data( )를 포함한다.
Figure pct00013
각 APS RBSP은 참조되기에 앞서 디코딩 프로세스에 사용가능해야 하며, 이를 참조하거나 외부 수단을 통해 제공되는 코딩된 슬라이스 NAL 유닛의 TemporalId 보다 작거나 같은 TemporalId를 갖는 적어도 하나의 AU에 포함되어야 한다.
PU 내 특정 adaptation_parameter_set_id 값 및 특정 aps_params_type 값을 갖는 모든 APS NAL 유닛들은 동일한 컨텐츠를 가져야 한다.
adaptation_parameter_set_id는 다른 신택스 요소들이 참조할 수 있도록 APS에 대한 식별자를 제공한다.
aps_params_type이 ALF_APS 혹은 SCALING_APS와 동일하면, adaptation_parameter_set_id 의 값은 0내지 7의 범위(경계값 포함) 내여야 한다.
aps_params_type이 LMCS_APS와 동일하면, adaptation_parameter_set_id의 값은 0 내지 3의 범위(경계값 포함) 내여야 한다.
ApsLayerId는 특정 APS NAL 유닛의 nuh_layer_id의 값이라 하고, vclLayerId는 특정 VCL NAL 유닛의 nuh_layer_id의 값이라 하자. ApsLayerId가 vclLayerId 이하가 아니고 apsLayerId와 같은 nuh_layer_id를 가진 레이어가 vclLayerId와 같은 nuh_layer_id를 가진 레이어를 포함하는 적어도 하나의 OLS에 포함되지 않으면, 상기 특정 VCL NAL 유닛은 상기 특정 APS NAL 유닛을 참조하지 않아야 한다.
aps_params_type는 표 6에 명시된 바와 같이 APS에서 운반되는 APS 파라미터들의 타입을 명시한다.
표 6 - APS 파라미터 타입 코드들 및 APS 파라미터들의 타입들
Figure pct00014
aps_params_type의 특정한 값을 가지는 모든 APS NAL 유닛들은, nuh_layer_id 값들과 무관하게, adaptation_parameter_set_id를 위한 동일한 값 공간을 공유한다. aps_params_type의 상이한 값들을 가지는 APS NAL 유닛들은 adaptation_parameter_set_id를 위한 별개 값 공간들을 사용한다.
참고 1 - (adaptation_parameter_set_id의 특정한 값 및 aps_params_type의 특정한 값들을 가지는) APS NAL 유닛은 픽처들을 가로질러 공유될 수 있으며, 픽처 내부의 상이한 슬라이스들은 상이한 ALF APS들을 참조할 수 있다.
참고 2 - 특정한 VCL NAL 유닛(이 VCL NAL 유닛은 디코딩 순서 상 서픽스 APS NAL 유닛에 선행한다)과 연관된 서픽스 APS NAL 유닛은 상기 특정 VCL NAL 유닛이 사용하기 위한 것이 아니며, 디코딩 순서에서 상기 서픽스 APS NAL 유닛을 따르는 VCL NAL 유닛들이 사용하기 위한 것이다.
0과 같은 aps_extension_flag는 aps_extension_data_flag 신택스 요소들이 APS RBSP 신택스 구조에 존재하지 않음을 명시한다. 1과 같은 aps_extension_flag는 APS RBSP 신택스 구조에 존재하는 aps_extension_data_flag 신택스 요소들이 있음을 명시한다.
aps_extension_data_flag는 어떤 값이라도 가질 수 있다. 그것의 존재와 값은 본 명세서의 본 버전에 명시되는 프로파일들에 대한 디코더의 적합성에 영향을 미치지 않는다. 본 명세서의 본 버전에 부합하는 디코더들은 모든 aps_extension_data_flag 신택스 요소들을 무시해야 한다.
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과 같은 것으로 추론된다.
sfIdx = 0..alf_luma_num_filters_signalled_minus1, j = 0..11인 변수 filtCoeff[ sfIdx ][ j ]는 다음과 같이 초기화된다.
Figure pct00015
filtIdx = 0..NumAlfFilters - 1 및 j = 0..11인, 요소 AlfCoeffL[ adaptation_parameter_set_id ][ filtIdx ][ j ]를 가지는 루마 필터 계수 AlfCoeffL[ adapt_parameter_set_id ]는 다음과 같이 도출된다.
Figure pct00016
i = 0..64, j = 0..11인 고정 필터 계수 AlfFixFiltCoeff[ i ][ j ] 및 m = 0..15 및 n = 0..24인 필터 매핑 AlfClassToFiltMap[ m ][ n ]에 대한 클래스는 다음과 같이 도출된다.
Figure pct00017
Figure pct00018
Figure pct00019
filtIdx = 0..NumAlfFilters - 1, j = 0..11인 AlfCoeffL[ 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의 범위(경계값 포함) 내에 있어야 한다는 것은 비트스트림 적합성의 요건이다.
filtIdx = 0..NumAlfFilters - 1 및 j = 0..11인, 요소 AlfClipL[ adaptation_parameter_set_id ][ filtIdx ][ j ]을 구비하는 루마 필터 클리핑 값들 AlfClipL[ adapt_parameter_set_id ]는, alf_luma_clip_idx[ alf_luma_coeff_delta_idx[ filtIdx ] ][ j ]와 동일하게 설정된 clipIdx 및 BitDepth에 따라 표 8에 명시된 바와 같이 도출된다.
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인, 요소 AlfCoeffC[ adaptation_parameter_set_id ][ altIdx ][ j ]를 구비하는 크로마 필터 계수들 AlfCoeffC[ adapt_parameter_set_id ][ altIdx ]는 다음과 같이 도출된다.
Figure pct00020
altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5인 AlfCoeffC[ adaptation_parameter_set_id ][ altIdx ][ j ]의 값이 -27 - 1 내지 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과 같은 것으로 추론된다.
j = 0..6 인, Cb 컬러 성분 CcAlfApsCoeffCb[ adaptation_parameter_set_id ][ k ][ j ]에 대한 시그널링된 k번째 크로스 컴포넌트 필터 계수들은 다음과 같이 도출된다.
- alf_cc_cb_mapped_coeff_abs[ k ][ j ]가 0과 같으면, CcAlfApsCoeffCb[ adaptation_parameter_set_id ][ k ][ j ]는 0과 같게 설정된다.
- 그렇지 않은 경우, CcAlfApsCoeffCb[ adaptation_parameter_set_id ][ k ][ j ]는
Figure pct00021
와 같은 것으로 설정된다.
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 컬러 성분 CcAlfApsCoeffCr[ 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 ]는
Figure pct00022
와 같은 것으로 설정된다.
alf_chroma_clip_idx[ altIdx ][ j ]는 인덱스 altIdx를 가지는 대안 크로마 필터의 j번째 계수를 곱하기 전에 사용할 클리핑 값의 클리핑 인덱스를 명시한다. altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5인 alf_chroma_clip_idx[ altIdx ][ j ]값이 0 내지 3의 범위(경계값 포함) 내에 있어야 한다는 것은 비트스트림 적합성의 요건이다.
altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5인, 요소들 AlfClipC[ adaptation_parameter_set_id ][ altIdx ][ j ]를 가지는 크로마 필터 클리핑 값들 AlfClipC[ adaptation_parameter_set_id ][ altIdx ]는, alf_chroma_clip_idx[ altIdx ][ j ]와 같게 설정된 clipIdx 및 BitDepth에 따라 표 8에 명시된 바와 같이 도출된다.
표 8 - BitDepth 및 clipIdx에 따른 AlfClip 사양
Figure pct00023
lmcs_min_bin_idx는 크로마 스케일링을 이용한 루마 매핑 구성 프로세스에서 사용되는 최소 빈 인덱스를 명시한다. lmcs_min_bin_idx의 값은 0 내지 15(경계값 포함)의 범위에 있어야 한다.
lmcs_delta_max_bin_idx는 15와 LMCS(luma mapping with chroma scaling) 구성 프로세스에서 사용되는 최대 빈 인덱스 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 내지 BitDepthY-2(경계값 포함)의 범위에 있어야 한다.
lmcs_delta_abs_cw[ i ]는 i번째 빈에 대한 절대 델타 코드워드 값을 명시한다.
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는 다음과 같이 도출된다.
Figure pct00024
i = lmcs_min_bin_idx..LmcsMaxBinIdx인 변수 lmcsDeltaCW[ i ]는 다음과 같이 도출된다.
Figure pct00025
변수 lmcsCW[ i ]는 다음과 같이 도출된다.
- i = 0.. lmcs_min_bin_idx - 1에 대해, lmcsCW[ i ]는 0과 같게 설정된다.
- i = lmcs_min_bin_idx..LmcsMaxBinIdx에 대해, 다음이 적용된다.
Figure pct00026
lmcsCW[ i ]의 값은 ( OrgCW  >>  3 ) 내지 ( OrgCW  <<  3 - 1 )의 범위(경계값 포함)에 있어야 한다.
- i = LmcsMaxBinIdx + 1..15에 대해, lmcsCW[ i ]는 0과 같게 설정된다.
다음의 조건이 참이라는 것은 비트스트림 적합성의 요건이다.
Figure pct00027
i = 0..16인 변수 InputPivot[ i ]는 다음과 같이 도출된다.
Figure pct00028
i = 0..16인 변수 LmcsPivot[ i ], i = 0..15인 변수들 ScaleCoeff[ i ] 및 InvScaleCoeff[ i ]는 다음과 같이 도출된다.
Figure pct00029
비트스트림 적합성의 요건으로, i = lmcs_min_bin_idx..LmcsMaxBinIdx에 대해, LmcsPivot[ i ]의 값이 1 << ( BitDepth - 5 )의 배수가 아닌 경우, ( 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는 다음과 같이 도출된다.
Figure pct00030
비트스트림 적합성의 요건으로, lmcsCW[ i ]가 0과 같지 않은 경우, ( lmcsCW[ i ] + lmcsDeltaCrs )는 ( OrgCW >> 3 ) 내지 ( ( OrgCW << 3 ) - 1 )의 범위(경계값 포함) 내에 있어야 한다.
i = 0 ... 15에 대해 변수 ChromaScaleCoeff[ i ]는 다음과 같이 도출된다.
Figure pct00031
1과 동일한 scaling_matrix_for_lfnst_disabled_flag는 스케일링 매트릭스들은 LFNS로 코딩된 블록들에 적용되지 않는다고 명시한다. 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( )에 존재하지 않음을 명시한다. 비트스트림 적합성의 요건으로, ChromaArrayType이 0과 같은 경우 scaling_list_chroma_present_flag는 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에 의존하여 다음과 같이 도출된다.
Figure pct00032
변수들 refId 및 matrixSize는 다음과 같이 도출된다.
Figure pct00033
x = 0..matrixSize - 1 및 y = 0..matrixSize - 1인 (matrixSize)x(matrixSize) 어레이 ScalingMatrixPred[ x ][ y ] 그리고 변수 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는 ScalingMatrixRec[ refId ]과 같게 설정되고, ScalingMatrixDCPred에 대해 다음이 적용된다.
- 만약 refId가 13 보다 크다면, ScalingMatrixDCPred는 ScalingMatrixDCRec[ refId - 14 ]와 같게 설정된다.
- 그렇지 않은 경우(refId가 13 이하인 경우), ScalingMatrixDCPred는 ScalingMatrixPred[ 0 ][ 0 ]와 같게 설정된다.
scaling_list_dc_coef[ id - 14 ]은, id가 13 보다 큰 경우, 변수 ScalingMatrixDC[ id - 14 ]의 값을 도출하는 데에 아래와 같이 사용된다.
Figure pct00034
존재하지 않는 경우, scaling_list_dc_coef[ id - 14 ]의 값은 0과 같은 것으로 추론된다. scaling_list_dc_coef[ id - 14 ]의 값은 -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) 어레이 ScalingMatrixRec[ id ]는 다음과 같이 도출된다.
Figure pct00035
ScalingMatrixRec[ id ][ x ][ y ]의 값은 0 보다 커야 한다.
3.3 PH 신택스 및 시맨틱스
최신 VVC 초안 텍스트에서 PH 신택스와 시맨틱스은 다음과 같다:
Figure pct00036
PH RBSP는 PH 신택스 구조, 즉 picture_header_structure( )를 포함한다.
Figure pct00037
Figure pct00038
Figure pct00039
Figure pct00040
Figure pct00041
Figure pct00042
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에 명시된 것과 같이 비트스트림의 첫 번째 픽처가 아닌 CLVSS 픽처의 디코딩 후에 DPB의 이전에 디코딩된 픽처들의 출력에 영향을 미친다.
recovery_poc_cnt는 디코딩된 픽처들의 출력 순서 상의 복구점을 명시한다. 현재 블록이 PH와 연관된 GDR 픽처이고 recovery_poc_cnt의 값에 현재 GDR 픽처의 PicOrderCntVal를 더한 것과 같은 PicOrderCntVal를 가지는 CLVS에서 디코딩 순서상 현재 GDR 픽처를 따르는 픽처 picA가 존재하면, 상기 픽처 picA는 복구점 픽처로 지칭된다. 그렇지 않으면, 현재 픽처의 PicOrderCntVal과 recovery_poc_cnt의 값을 더한 것 보다 더 큰 PicOrderCntVal를 가지는 출력 순서 상의 첫 번째 픽처는 복구점 픽처라 불린다. 복구점 픽처는 디코딩 순서 상 현재 GDR 픽처에 선행해서는 안 된다. recovery_poc_cnt의 값은 0 내지 MaxPicOrderCntLsb - 1의 범위(경계값 포함) 안에 있어야 한다.
현재 픽처가 GDR 픽처인 경우, 변수 RpPicOrderCntVal은 다음과 같이 도출된다.
Figure pct00043
참고 2 - gdr_enabled_flag가 1이고 현재 픽처의 PicOrderCntVal이 연관된 GDR 픽처의 RpPicOrderCntVal 보다 크거나 같다면, 현재 및 디코딩 순서상 뒤따르는 디코딩된 픽처들은, 존재하는 경우, 디코딩 순서 상 연관된 GDR 픽처에 선행하는 이전 IRAP 픽처로부터 디코딩 프로세스를 시작하여 산출된 해당 픽처들에 정확하게 매치된다.
ph_extra_bit[ i ]는 1 또는 0과 같을 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 ph_extra_bit[ i ]의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
1과 같은 ph_poc_msb_present_flag는 신택스 요소 poc_msb_val가 PH에 존재한다고 명시한다. 0과 같은 ph_poc_msb_present_flag는 신택스 요소 poc_msb_val가 PH에 존재하지 않는다고 명시한다. vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]가 0과 같고, 현재 레이어의 참조 레이어에서 현재 AU 내에 픽처가 있다면, ph_poc_msb_present_flag의 값은 0과 같아야 한다.
poc_msb_val은 현재 픽처의 POC MSB 값을 명시한다. 신택스 요소 poc_msb_val의 길이는 poc_msb_len_minus1 + 1 비트이다.
1과 같은 ph_alf_enabled_flag는 적응적 루프 필터가 PH와 연관된 모든 슬라이스들에 대해 활성화되며, 슬라이스들에서 Y, Cb 또는 Cr 컬러 성분에 적용될 수 있다고 명시한다. 0과 같은 ph_alf_enabled_flag는 적응적 루프 필터가 PH와 연관된 하나, 그 이상 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_alf_enabled_flag는 0과 같은 것으로 추론된다.
ph_num_alf_aps_ids_luma는 PH와 연관된 슬라이스들이 참조하는 ALF APS들의 수를 명시한다.
ph_alf_aps_id_luma[ i ]는 PH와 연관된 슬라이스들의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
0과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용되지 않음을 명시한다. 1과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 컬러 컴포넌트에 적용됨을 지시한다. 2와 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cr 컬러 컴포넌트에 적용됨을 지시한다. 3과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용됨을 지시한다. ph_alf_chroma_idc가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
ph_alf_aps_id_chrona는 PH와 연관된 슬라이스들의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_cc_alf_cb_enabled_flag는 Cb 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 모든 슬라이스들에 대해 활성화되며 상기 슬라이스들에서의 Cb 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 ph_cc_alf_cb_enabled_flag는 Cb 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 하나, 또는 그 이상, 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_cc_alf_cb_enabled_flag는 0과 같은 것으로 추론될 수 있다.
ph_cc_alf_cb_aps_id는 PH와 연관된 슬라이스들의 Cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
1과 같은 ph_cc_alf_cr_enabled_flag는 Cr 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 모든 슬라이스들에 대해 활성화되며 상기 슬라이스들에서의 Cr 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 ph_cc_alf_cr_enabled_flag는 Cr 컬러 컴포넌트를 위한 크로스 컴포넌트 필터가 PH와 관련된 하나, 또는 그 이상, 또는 모든 슬라이스들에 대해 비활성화될 수 있다고 명시한다. 존재하지 않는 경우, ph_cc_alf_cr_enabled_flag는 0과 같은 것으로 추론될 수 있다.
ph_cc_alf_cr_aps_id는 PH와 연관된 슬라이스들의 Cr 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
1과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 PH와 연관된 모든 슬라이스들에 대해 활성화됨을 명시한다. 0과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 PH와 연관된 하나 또는 그 이상의 또는 모든 슬라이스들에 대해 비활성화될 수 있음을 명시한다. 존재하지 않는 경우, ph_lmcs_enabled_flag의 값은 0과 같은 것으로 추론된다.
ph_lmcs_aps_id는 PH와 연관된 슬라이스들의 참조하는 LMCS APS의 adaptation_parameter_set_id를 명시한다. LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_chroma_residual_scale_flag는 크로마 잔차 스케일링이 PH와 연관된 모든 슬라이스들에 대해 활성화됨을 명시한다. 0과 같은 ph_chroma_residual_scale_flag는 크로마 잔차 스케일링이 PH와 연관된 하나 또는 그 이상의 또는 모든 슬라이스들에 대해 비활성화될 수 있음을 명시한다. ph_chroma_residual_scale_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_scaling_list_present_flag는 PH와 연관된 슬라이스들을 위해 사용되는 스케일링 리스트 데이터가 참조되는 스케일링 리스트 APS에 포함된 스케일링 리스트 데이터에 기반하여 유도됨을 명시한다. 0과 같은 ph_scaling_list_present_flag는 PH와 연관된 슬라이스들을 위해 사용되는 스케일링 리스트 데이터가 16과 같은 것으로 설정됨을 명시한다. 존재하지 않는 경우, ph_scaling_list_present_flag의 값은 0과 같은 것으로 추론된다.
ph_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다. SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
1과 같은 ph_virtual_boundaries_present_flag는 가상 경계들의 정보가 PH에서 시그널링된다고 명시한다. 0과 같은 ph_virtual_boundaries_present_flag는 가상 경계들의 정보가 PH에서 시그널링되지 않는다고 명시한다. PH에서 시그널링되는 하나 이상의 가상 경계들이 존재하는 경우, 인 루프 필터링 동작들은 PH를 참조하는 픽처들에서 가상 경계들을 가로질러 비활성화된다. 인 루프 필터링 동작들은 디블로킹 필터, 샘플 적응적 오프세트 필터 그리고 적응적 루프 필터 동작들을 포함한다. 존재하지 않는 경우, ph_virtual_boundaries_present_flag의 값은 0과 같은 것으로 추론된다.
비트스트림 부합성의 요건으로, subpic_info_present_flag가 1과 같은 경우, ph_virtual_boundaries_present_flag의 값은 0과 같아야 한다.
변수 VirtualBoundariesPresentFlag는 다음과 같이 유도된다.
Figure pct00044
ph_num_ver_virtual_boundaries는 PH에서 존재하는 ph_virtual_boundaries_pos_x[ i ] 신택스 요소들의 수를 명시한다. ph_num_ver_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
변수 NumVerVirtualBoundaries는 다음과 같이 유도된다.
Figure pct00045
ph_virtual_boundaries_pos_x[ i ]는 루마 샘플 단위로 i번째 수직 가상 경계의 위치를 8로 나눈 값을 명시한다. ph_virtual_boundaries_pos_x[ i ]의 값은 1 내지 Ceil( pic_width_in_luma_samples χ 8 ) - 1의 범위(경계값 포함) 내에 있어야 한다.
0 내지 NumVerVirtualBoundaries - 1의 범위(경계값 포함) 내의 i에 대해, 수직 가상 경계들의 위치들을, 루마 샘플 단위로 명시하는 리스트 VirtualBoundariesPosX[ i ]는 다음과 같이 유도된다.
Figure pct00046
임의의 2개의 수직 가상 경계들 사이의 거리는 CtbSizeY 루마 샘플들 이상이어야 한다.
ph_num_hor_virtual_boundaries는 PH에서 존재하는 ph_virtual_boundaries_pos_y[ i ] 신택스 요소들의 수를 명시한다. ph_num_hor_virtual_boundaries가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
파라미터 NumHorVirtualBoundaries는 다음과 같이 도출된다.
Figure pct00047
sps_virtual_boundaries_enabled_flag가 1과 같고 ph_virtual_boundaries_present_flag가 1과 같은 경우, ph_num_ver_virtual_boundaries와 ph_num_hor_virtual_boundaries의 합은 0 보다 커야 한다.
ph_virtual_boundaries_pos_y[ i ]는 루마 샘플들의 유닛들에서 i번째 수평 가상 경계의 위치를 8로 나눈 값을 명시한다. ph_virtual_boundaries_pos_y[ i ]의 값은 1 내지 Ceil( pic_height_in_luma_samples
Figure pct00048
8 ) - 1의 범위(경계값 포함) 내에 있어야 한다.
0 내지 NumHorVirtualBoundaries - 1의 범위(경계값 포함) 내의 i에 대해, 수평 가상 경계들의 위치들을, 루마 샘플 단위로 명시하는 리스트 VirtualBoundariesPosY[ i ]는 다음과 같이 도출된다.
Figure pct00049
임의의 2개의 수평 가상 경계들 사이의 거리는 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과 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_intra_slice_luma는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 2(I)와 같은 slice_type을 가지는 슬라이스들의 루마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위(경계값 포함)에 있을 수 있다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_luma 의 값은 sps_log2_diff_min_qt_min_cb_intra_slice_luma와 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_intra_slice_luma는 PH와 연관된 slice_type이 2(I)를 가지는 슬라이스들에서 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_intra_slice_luma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_intra_slice_luma의 값은 sps_max_mtt_hierarchy_depth_intra_slice_luma와 같다고 추론된다.
ph_log2_diff_max_bt_min_qt_intra_slice_luma는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시할 수 있다. ph_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_intra_slice_luma의 값은 sps_log2_diff_max_bt_min_qt_intra_slice_luma와 같다고 추론된다.
ph_log2_diff_max_tt_min_qt_intra_slice_luma는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraY의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_intra_slice_luma의 값은 sps_log2_diff_max_tt_min_qt_intra_slice_luma와 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_intra_slice_chroma는 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)와 동일한 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 CU들에 대한 루마 샘플들에서의 최소 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_intra_slice_chroma의 값은 sps_log2_diff_min_qt_min_cb_intra_slice_chroma와 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_intra_slice_chroma는 PH와 연관된 slice_type이 2(I)를 가지는 슬라이스들에서 DUAL_TREE_CHROMA와 동일한 treeType을 갖는 크로마 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 크로마 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_intra_slice_chroma의 값은 sps_max_mtt_hierarchy_depth_intra_slice_chroma와 같은 것으로 추론된다.
ph_log2_diff_max_bt_min_qt_intra_slice_chroma는 이진 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 지정할 수 있다. ph_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_intra_slice_chroma의 값은 sps_log2_diff_max_bt_min_qt_intra_slice_chroma와 같은 것으로 추론된다.
ph_log2_diff_max_tt_min_qt_intra_slice_chroma는 삼항 분할을 사용하여 분할될 수 있는 크로마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 slice_type이 2(I)인 슬라이스들에서 DUAL_TREE_CHROMA와 같은 treeType을 갖는 크로마 CTU의 쿼드트리 분할로 인해 생기는 크로마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 사이의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeIntraC의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_intra_slice_chroma의 값은 sps_log2_diff_max_tt_min_qt_intra_slice_chroma와 같은 것으로 추론된다.
ph_cu_qp_delta_subdiv_intra_slice는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 운반하는 인트라 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_qp_delta_subdiv_intra_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma )의 범위(경계값 포함) 내에 있어야 한다.
존재하지 않는 경우, ph_cu_qp_delta_subdiv_intra_slice의 값은 0과 같은 것으로 추론된다.
ph_cu_chroma_qp_offset_subdiv_intra_slice는 cu_chroma_qp_offset_flag를 운반하는 인트라 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_chroma_qp_offset_subdiv_intra_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma )의 범위(경계값 포함) 내에 있어야 한다.
존재하지 않는 경우, ph_cu_chroma_qp_offset_subdiv_intra_slice의 값은 0과 같은 것으로 추론된다.
ph_log2_diff_min_qt_min_cb_inter_slice는 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 루마 CU들에 대한 루마 샘플들에서의 최소 루마 코딩 블록 크기의 밑이 2인 로그 간의 차이를 명시할 수 있다. ph_log2_diff_min_qt_min_cb_inter_slice의 값은 0 내지 CtbLog2SizeY - MinCbLog2SizeY의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_min_qt_min_cb_luma의 값은 sps_log2_diff_min_qt_min_cb_inter_slice과 같은 것으로 추론된다.
ph_max_mtt_hierarchy_depth_inter_slice는 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 쿼드트리 리프의 멀티 타입 트리 분할로 인해 생기는 코딩 유닛들에 대한 최대 계층 깊이를 명시한다. ph_max_mtt_hierarchy_depth_inter_slice의 값은 0 내지 2*( CtbLog2SizeY - MinCbLog2SizeY )의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_max_mtt_hierarchy_depth_inter_slice의 값은 sps_max_mtt_hierarchy_depth_inter_slice와 같은 것으로 추론된다.
ph_log2_diff_max_bt_min_qt_inter_slice는 이진 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_bt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_bt_min_qt_inter_slice의 값은 sps_log2_diff_max_bt_min_qt_inter_slice와 같다고 추론된다.
ph_log2_diff_max_tt_min_qt_inter_slice는 삼항 분할을 사용하여 분할될 수 있는 루마 코딩 블록의 루마 샘플들에서 최대 크기(폭 또는 높이)의 밑이 2인 로그와 PH와 연관된 0(B) 또는 1(P)와 같은 slice_type을 갖는 슬라이스들에서 CTU의 쿼드트리 분할로 인해 생기는 루마 리프 블록의 루마 샘플들에서의 최소 크기(폭 또는 높이) 간의 차이를 명시한다. ph_log2_diff_max_tt_min_qt_inter_slice의 값은 0 내지 CtbLog2SizeY - MinQtLog2SizeInterY의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_log2_diff_max_tt_min_qt_inter_slice의 값은 sps_log2_diff_max_tt_min_qt_inter_slice와 같다고 추론된다.
ph_cu_qp_delta_subdiv_inter_slice는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 운반하는 인터 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_qp_delta_subdiv_inter_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice )의 범위(경계값 포함) 내에 있어야 한다.
존재하지 않는 경우, ph_cu_qp_delta_subdiv_inter_slice의 값은 0과 같은 것으로 추론된다.
ph_cu_chroma_qp_offset_subdiv_inter_slice는 cu_chroma_qp_offset_flag를 운반하는 인터 슬라이스 내 코딩 유닛들의 최대 cbSubdiv 값을 명시한다. ph_cu_chroma_qp_offset_subdiv_inter_slice의 값은 0 내지 2 * ( CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice )의 범위(경계값 포함) 내에 있어야 한다.
존재하지 않는 경우, ph_cu_chroma_qp_offset_subdiv_inter_slice의 값은 0과 같은 것으로 추론된다.
ph_temporal_mvp_enabled_flag는 시간적 모션 벡터 예측기들이 PH와 연관된 슬라이스들에 대한 인터 예측에 사용될 수 있음을 명시한다. ph_temporal_mvp_enabled_flag가 0과 같은 경우, PH와 연관된 슬라이스들의 신택스 요소들이 포함되어 어떤 시간적 모션 벡터 예측기도 슬라이스들의 디코딩에 사용되지 않아야 한다. 그렇지 않은 경우(ph_temporal_mvp_enabled_flag가 1과 같은 경우), PH와 연관된 슬라이스들의 신택스 요소들이 포함되어 시간적 모션 벡터 예측기가 슬라이스들의 디코딩에 사용될 수 있다. 존재하지 않는 경우, ph_temporal_mvp_enabled_flag의 값은 0과 같은 것으로 추론된다. DPB 내 어떤 참조 픽처도 현재 픽처로서 동일한 공간적 해상도를 가지지 않는 경우, ph_temporal_mvp_enabled_flag의 값은 0과 같아야 한다.
서브블록 기반 병합 MVP 후보들의 최대 수 MaxNumSubblockMergeCand 는 다음과 같이 유도된다.
Figure pct00050
MaxNumSubblockMergeCand의 값은 0 내지 5의 범위 내에 있어야 한다.
1과 같은 ph_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 0으로부터 유도된다고 명시한다. 0과 같은 ph_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 1로부터 유도된다고 명시한다.
ph_collocated_ref_idx는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
ph_collocated_from_l0_flag가 1과 같은 경우, ph_collocated_ref_idx는 참조 픽처 리스트 0 내의 엔트리를 참조하며, ph_collocated_ref_idx의 값은 0 내지 num_ref_entries[ 0 ][ PicRplsIdx[ 0 ] ] - 1의 범위(경계값 포함) 내에 있어야 한다. ph_collocated_from_l0_flag가 0과 같은 경우, ph_collocated_ref_idx는 참조 픽처 리스트 1 내의 엔트리를 참조하며, ph_collocated_ref_idx의 값은 0 내지 num_ref_entries[ 1 ][ PicRplsIdx[ 1 ] ] - 1의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_collocated_ref_idx의 값은 0과 같다고 추론된다.
1과 같은 mvd_l1_zero_flag는 mvd_coding( x0, y0, 1 ) 신택스 구조가 파싱되지 않으며, MvdL1[ x0 ][ y0 ][ compIdx ] 및 MvdCpL1[ x0 ][ y0 ][ cpIdx ][ compIdx ]가 compIdx = 0..1 및 cpIdx = 0..2에 대해 0과 같은 것으로 설정된다고 지시한다. 0과 같은 mvd_l1_zero_flag는 mvd_coding( x0, y0, 1 ) 신택스 구조가 파싱된다고 지시한다.
1과 같은 ph_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 PH와 연관된 슬라이스들에서 정수 샘플 정밀도를 사용하고 있다고 명시한다. 0과 같은 ph_fpel_mmvd_enabled_flag는 모션 벡터 차분을 가진 머지 모드가 PH와 연관된 슬라이스들에서 분수 샘플 정밀도를 사용할 수 있다고 명시한다. 존재하지 않는 경우, ph_fpel_mmvd_enabled_flag의 값은 0으로 추론된다.
1과 같은 ph_disable_bdof_flag는 양방향 광학 흐름 인터 예측 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_bdof_flag는 양방향 광학 흐름 인터 예측 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 활성화 또는 활성화되지 않을 수 있음을 명시한다.
ph_disable_bdof_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_bdof_enabled_flag가 1과 같은 경우, ph_disable_bdof_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_bdof_enabled_flag가 0과 같은 경우), ph_disable_bdof_flag의 값이 1과 같은 것으로 추론된다.
1과 같은 ph_disable_dmvr_flag는 디코더 모션 벡터 개선 기반 인터 양 예측(bi-prediction)이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_dmvr_flag는 디코더 모션 벡터 개선 기반 인터 양 예측이 PH와 연관된 슬라이스들에서 활성화 또는 활성화되지 않을 수 있음을 명시한다.
ph_disable_dmvr_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_dmvr_enabled_flag가 1과 같은 경우, ph_disable_dmvr_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_dmvr_enabled_flag가 0과 같은 경우), ph_disable_dmvr_flag의 값이 1과 같은 것으로 추론된다.
1과 같은 ph_disable_prof_flag는 광학적 흐름을 가지는 예측 개선이 PH와 연관된 슬라이스들에서 비활성화됨을 명시한다. 0과 같은 ph_disable_prof_flag는 광학적 흐름을 가지는 예측 개선이 PH와 연관된 슬라이스들에서 활성화되거나 활성화되지 않을 수 있음을 명시한다.
ph_disable_prof_flag가 존재하지 않는 경우, 다음이 적용된다.
- sps_affine_prof_enabled_flag가 1과 같은 경우, ph_disable_prof_flag의 값은 0과 같은 것으로 추론된다.
- 그렇지 않은 경우(sps_affine_prof_enabled_flag가 0과 같은 경우), ph_disable_prof_flag의 값이 1과 같은 것으로 추론된다.
ph_qp_delta는 코딩 유닛 레이어에서 CuQpDeltaVal의 값에 의해 수정될 때 까지 픽처 내 코딩 블록들을 위해 사용될 QpY의 초기값을 명시한다.
qp_delta_info_in_ph_flag가 1과 같은 경우, 픽처 SliceQpY의 모든 슬라이스들에 대한 QpY 양자화 파라미터의 초기값은 아래와 같이 유도된다.
Figure pct00051
SliceQpY의 값은 -QpBdOffset 내지 +63의 범위(경계값) 내에 있어야 한다.
ph_joint_cbcr_sign_flag는 1과 같은 tu_joint_cbcr_residual_flag[ x0 ][ y0 ]을 가지는 변환 유닛들에서 크로마 컴포넌트들의 동일 위치 잔차 샘플들이 반대 부호들을 가진다고 명시한다. tu_joint_cbcr_residual_flag[ x0 ][ y0 ]가 변환 유닛에 대해 1과 같은 경우, 0과 같은 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 동일 위치 Cr(또는 Cb) 잔차 샘플의 부호와 동일하다는 것을 명시하며, 1과 같은 ph_joint_cbcr_sign_flag는 Cr(또는 Cb) 컴포넌트의 각 잔차 샘플의 부호가 동일 위치 Cr(또는 Cb) 잔차 샘플의 반대 부호에 의해 주어진다는 것을 명시한다.
1과 같은 ph_sao_luma_enabled_flag는 SAO가 PH와 연관된 모든 슬라이스들에서 루마 컴포넌트에 대해 활성화됨을 명시하며, 0과 같은 ph_sao_luma_enabled_flag는 SAO가 PH와 연관된 하나 또는 그 이상 또는 모든 슬라이스들에서 루마 컴포넌트에 대해 비활성화될 수 있음을 명시한다. ph_sao_luma_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_sao_chroma_enabled_flag는 SAO가 PH와 연관된 모든 슬라이스들에서 크로마 컴포넌트에 대해 활성화됨을 명시하며, 0과 같은 ph_sao_chroma_enabled_flag는 SAO가 PH와 연관된 하나 또는 그 이상 또는 모든 슬라이스들에서 크로마 컴포넌트에 대해 비활성화될 수 있음을 명시한다. ph_sao_chroma_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
0과 같은 ph_dep_quant_enabled_flag는 종속 양자화가 각 픽처에 대해 비활성화됨을 명시한다. 1과 같은 ph_dep_quant_enabled_flag는 종속 양자화가 각 픽처에 활성화됨을 명시한다. ph_dep_quant_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
0과 같은 pic_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 현재 픽처에 대해 비활성화된다고 명시한다. 1과 같은 pic_sign_data_hiding_enabled_flag는 부호 비트 숨기기가 현재 픽처에 대해 활성화된다고 명시한다. pic_sign_data_hiding_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 ph_deblocking_filter_override_flag는 디블로킹 파라미터들이 PH에 존재한다고 명시한다. 0과 같은 ph_deblocking_filter_override_flag는 디블로킹 파라미터들이 PH에 존재하지 않는다고 명시한다. 존재하지 않는 경우, ph_deblocking_filter_override_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 ph_deblocking_filter_disabled_flag는 PH에 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 ph_deblocking_filter_disabled_flag는 PH와 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. ph_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 pps_deblocking_filter_disabled_flag와 같은 것으로 추론된다.
ph_beta_offset_div2 and ph_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 루마 컴포넌트에 적용되는,
Figure pct00052
및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. ph_beta_offset_div2 및 ph_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_beta_offset_div2 및 ph_tc_offset_div2의 값들은 모두 0과 같은 것으로 추론된다.
ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 Cb 컴포넌트에 적용되는,
Figure pct00053
및 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_div2ph_cr_tc_offset_div2는 PH와 연관된 슬라이스들에 대한 Cr 컴포넌트에 적용되는,
Figure pct00054
및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들은 각각 pps_cr_beta_offset_div2 및 pps_cr_tc_offset_div2의 값들과 같은 것으로 추론된다.
ph_extension_length는 PH 확장 데이터의 길이를 바이트 단위로 명시하며, ph_extension_length 자체를 시그널링하는 데에 사용되는 비트들은 포함하지 않는다. ph_extension_length의 값은 0 내지 256의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, ph_extension_length의 값은 0과 같다고 추론된다.
ph_extension_data_byte는 어떤 값이라도 가질 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 ph_extension_data_byte의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
3.4 SH 신택스 및 시맨틱스
최신 VVC 초안 텍스트에서, SH 신택스 및 시맨틱스는 다음과 같다
Figure pct00055
Figure pct00056
Figure pct00057
Figure pct00058
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과 같다면, 현재 픽처 내 모든 코딩된 슬라이스들은 1과 같은 picture_header_in_slice_header_flag를 가져야 하며, 현재 PU는 PH NAL 유닛을 가져야 한다.
slice_subpic_id는 슬라이스를 포함하는 서브픽처의 서브픽처 ID를 명시한다. 만약 slice_subpic_id가 존재한다면, 변수 CurrSubpicIdx의 값은 SubpicIdVal[ CurrSubpicIdx ]가 slice_subpic_id와 같도록 유도된다. 그렇지 않으면(slice_subpic_id가 존재하지 않으면), CurrSubpicIdx는 0과 같도록 유도된다. slice_subpic_id의 길이는 sps_subpic_id_len_minus1 + 1 비트이다.
slice_address는 슬라이스의 어드레스를 명시한다. 존재하지 않는 경우, slice_address의 값은 0과 같은 것으로 추론된다. rect_slice_flag가 1과 같고 NumSlicesInSubpic[ CurrSubpicIdx ]가 1과 같은 경우, slice_address의 값은 0과 같은 것으로 추론된다.
만약 rect_slice_flag가 0과 같으면, 다음이 적용된다.
- 슬라이스 어드레스는 래스터 스캔 타일 인덱스이다.
- slice_address의 길이는 Ceil( Log2 ( NumTilesInPic ) ) 비트이다.
- slice_address의 값은 0 내지 NumTilesInPic - 1의 범위(경계값 포함) 내에 있어야 한다.
그렇지 않은 경우(rect_slice_flag가 1과 같은 경우), 다음이 적용된다.
- 슬라이스 어드레스는 슬라이스의 서브픽처 레벨 슬라이스 인덱스이다.
- slice_address의 길이는 Ceil( Log2( NumSlicesInSubpic[ CurrSubpicIdx ] ) ) 비트이다.
- slice_address의 값은 0 내지 NumSlicesInSubpic[ CurrSubpicIdx ] - 1의 범위(경계값 포함) 내에 있어야 한다.
비트스트림 부합성의 요건으로, 아래 제약조건들이 적용된다.
- 만약 rect_slice_flag가 0과 같거나 subpic_info_present_flag가 0과 같으면, slice_address의 값은 동일한 코딩된 픽처의 어떤 다른 코딩된 슬라이스 NAL 유닛의 slice_address의 값과도 같아서는 안 된다.
- 그렇지 않은 경우, slice_subpic_id 및 slice_address 값들의 쌍은 동일한 코딩된 픽처의 어떤 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값들의 쌍과 같아서는 안 된다.
- 픽처의 슬라이스들의 모양들은 각 CTU가, 디코딩 될 때, 그것의 좌측 경계 전체 및 상단 경계 전체가 픽처 경계로 구성되거나 이전에 디코딩된 CTU(들)의 경계들로 구성되도록 해야 한다.
sh_extra_bit[ i ]는 1 또는 0과 같을 수 있다. 본 명세서의 본 버전에 부합하는 디코더들은 sh_extra_bit[ i ]의 값을 무시해야 한다. 그것의 값은 명세서의 본 버전에 명시된 프로파일들에 대한 디코더 적합성에 영향을 주지 않는다.
num_tiles_in_slice_minus1 플러스 1이 존재하는 경우, 그것은 슬라이스 내 타일들의 수를 명시한다. num_tiles_in_slice_minus1의 값은 0 내지 NumTilesInPic - 1의 범위(경계값 포함) 내에 있어야 한다.
현재 슬라이스 내 CTU들의 수를 명시하는 변수 NumCtusInCurrSlice와 0 내지 NumCtusInCurrSlice - 1의 범위 내에 있는 i에 대해, 슬라이스 내 i번째 CTB의 픽처 래스터 스캔 어드레스를 명시하는 리스트 CtbAddrInCurrSlice[ i ]는 다음과 같이 도출된다.
Figure pct00059
변수들 SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos 및 SubpicBotBoundaryPos는 다음과 같이 도출된다.
Figure pct00060
slice_type은 표 9에 따른 슬라이스의 코딩 타입을 명시한다
표 9 - slice_type의 명칭 연관관계
Figure pct00061
존재하지 않는 경우, 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)와 같으면, 다음이 적용된다.
Figure pct00062
- 그렇지 않은 경우(slice_type이 0 (B) 또는 1 (P)와 같으면), 다음이 적용된다.
Figure pct00063
- 다음이 적용된다.
Figure pct00064
1과 같은 slice_alf_enabled_flag는 적응적 루프 필터가 활성화되며, 슬라이스 내 Y, Cb 또는 Cr 컬러 컴포넌트에 적용될 수 있다고 명시한다. 0과 같은 1과 같은 slice_alf_enabled_flag는 적응적 루프 필터가 슬라이스 내 모든 컬러 컴포넌트에 대해 비활성화된다고 명시한다. 존재하지 않는 경우, slice_alf_enabled_flag의 값은 ph_alf_enabled_flag와 같다고 추론된다.
slice_num_alf_aps_ids_luma는 슬라이스가 참조하는 ALF APS들의 수를 명시한다. slice_alf_enabled_flag가 1과 같고 slice_num_alf_aps_ids_luma가 존재하지 않는 경우, slice_num_alf_aps_ids_luma의 값은 ph_num_alf_aps_ids_luma의 값과 같다고 추론된다.
slice_alf_aps_id_luma[ i ]는 슬라이스의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_luma[ i ]가 존재하지 않는 경우, slice_alf_aps_id_luma[ i ]의 값은 ph_alf_aps_id_luma[ i ]의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용되지 않음을 명시한다. 1과 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cb 컬러 컴포넌트에 적용됨을 지시한다. 2와 같은 slice_alf_chroma_idc는 적응적 루프 필터가 Cr 컬러 컴포넌트에 적용됨을 지시한다. 3과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용됨을 지시한다. slice_alf_chroma_idc가 존재하지 않는 경우, 그것은 ph_alf_chroma_idc와 같은 것으로 추론된다.
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_chroma가 존재하지 않는 경우, slice_alf_aps_id_chroma의 값은 ph_alf_aps_id_chroma의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 필터가 Cb 컬러 컴포넌트에 적용되지 않음을 명시한다. 1과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 필터가 활성화되며, Cb 컬러 컴포넌트에 적용될 수 있음을 지시한다. slice_cc_alf_cb_enabled_flag가 존재하지 않는 경우, 그것은 ph_cc_alf_cb_enabled_flag와 같은 것으로 추론된다.
slice_cc_alf_cb_aps_id는 슬라이스의 Cb 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cb_enabled_flag가 1과 같고 slice_cc_alf_cb_aps_id가 존재하지 않는 경우, slice_cc_alf_cb_aps_id의 값은 ph_cc_alf_cb_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
0과 같은 slice_cc_alf_cr_enabled_flag는 크로스 컴포넌트 필터가 Cr 컬러 컴포넌트에 적용되지 않음을 명시한다. 1과 같은 slice_cc_alf_cb_enabled_flag는 크로스 컴포넌트 적응적 루프 필터가 활성화되며, Cr 컬러 컴포넌트에 적용될 수 있음을 지시한다. slice_cc_alf_cr_enabled_flag가 존재하지 않는 경우, 그것은 ph_cc_alf_cr_enabled_flag와 같은 것으로 추론된다.
slice_cc_alf_cr_aps_id는 슬라이스의 Cr 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cr_enabled_flag가 1과 같고 slice_cc_alf_cr_aps_id가 존재하지 않는 경우, slice_cc_alf_cr_aps_id의 값은 ph_cc_alf_cr_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
colour_plane_id는 separate_colour_plane_flag가 1과 같은 경우 현재 슬라이스와 연관된 컬러 평면을 식별한다. colour_plane_id의 값은 0 내지 2의 범위(경계값 포함) 내에 있어야 한다. colour_plane_id 값들 0, 1 및 2는 Y, Cb 및 Cr 평면들에 각각 해당한다. colour_plane_id의 값 3은 ITU-T | ISO/IEC에 의해 미래에 사용할 목적으로 유보되었다.
참고 1 - 하나의 픽처의 상이한 컬러 평면들의 디코딩 프로세스들 간의 의존성은 존재하지 않는다.
1과 같은 num_ref_idx_active_override_flag는 신택스 요소 num_ref_idx_active_minus1[ 0 ]가 P 및 B 슬라이스들에 대해 존재하며, 신택스 요소 num_ref_idx_active_minus1[ 1 ]이 B 슬라이스들에 대해 존재한다고 명시한다. 0과 같은 num_ref_idx_active_override_flag는 신택스 요소들 num_ref_idx_active_minus1[ 0 ] 및 num_ref_idx_active_minus1[ 1 ]이 존재하지 않는다고 명시한다. 존재하지 않는 경우, num_ref_idx_active_override_flag의 값은 1과 같다고 추론된다.
num_ref_idx_active_minus1[ i ]은 수학식 143에 의해 규정되는 바와 같은 변수 NumRefIdxActive[ i ]의 유도를 위해 사용된다. num_ref_idx_active_minus1[ i ]의 값은 0 내지 14의 범위(경계값 포함) 내에 있어야 한다.
0 또는 1과 같은 i에 대해, 현재 슬라이스가 B 슬라이스이고, num_ref_idx_active_override_flag가 1과 같으며, num_ref_idx_active_minus1[ i ]가 존재하지 않는 경우, num_ref_idx_active_minus1[ i ]는 0과 같다고 추론된다.
현재 슬라이스가 P 슬라이스이고, num_ref_idx_active_override_flag가 1과 같으며, num_ref_idx_active_minus1[ 0 ]가 존재하지 않는 경우, num_ref_idx_active_minus1[ 0 ]는 0과 같다고 추론된다.
변수 NumRefIdxActive[ i ]는 다음과 같이 도출된다.
Figure pct00065
NumRefIdxActive[ i ] - 1의 값은 슬라이스를 디코딩하는 데에 사용될 수 있는 참조 픽처 리스트 i에 대한 최대 참조 인덱스를 명시한다. NumRefIdxActive[ i ]의 값이 0과 같으면, 참조 픽처 리스트 i에 대한 어떤 참조 인덱스도 슬라이스를 디코딩하는 데에 사용될 수 없다.
현재 슬라이스가 P 슬라이스인 경우, NumRefIdxActive[ 0 ]의 값은 0보다 커야 한다.
현재 슬라이스가 B 슬라이스인 경우, NumRefIdxActive[ 0 ]와 NumRefIdxActive[ 1 ] 모두 0 보다 커야 한다.
cabac_init_flag는 문맥 변수들에 대한 초기화 프로세스에서 사용되는 초기화 표를 결정하기 위한 방법을 명시한다. cabac_init_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 0로부터 유도된다고 명시한다. 0과 같은 slice_collocated_from_l0_flag는 시간적 모션 벡터 예측을 위해 사용되는 동일 위치 픽처가 참조 픽처 리스트 1로부터 유도된다고 명시한다.
slice_type이 B 또는 P와 같고, ph_temporal_mvp_enabled_flag는 1과 같고, 그리고 slice_collocated_from_l0_flag가 존재하지 않는 경우, 다음이 적용된다.
- 만약 rpl_info_in_ph_flag가 1과 같으면, slice_collocated_from_l0_flag는 ph_collocated_from_l0_flag와 같다고 추론된다.
- 그렇지 않은 경우(rpl_info_in_ph_flag가 0과 같고, slice_type이 P와 같으면), slice_collocated_from_l0_flag의 값은 1과 같은 것으로 추론된다.
slice_collocated_ref_idx는 시간적 모션 벡터 예측에 대해 사용되는 동일 위치 픽처의 참조 인덱스를 명시한다.
slice_type이 P와 같거나 slice_type이 B와 같고 collocated_from_l0_flag가 1과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 0을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 0 ] - 1의 범위(경계값 포함) 내에 있어야 한다.
slice_type이 B와 같고 collocated_from_l0_flag가 0과 같으면, slice_collocated_ref_idx는 참조 픽처 리스트 1을 참조하고, slice_collocated_ref_idx의 값은 0 내지 NumRefIdxActive[ 1 ] - 1의 범위(경계값 포함) 내에 있어야 한다.
slice_collocated_ref_idx가 존재하지 않는 경우, 다음이 적용된다.
- rpl_info_in_ph_flag가 1과 같으면, slice_collocated_ref_idx의 값은 ph_collocated_ref_idx와 같다고 추론된다.
- 그렇지 않으면(rpl_info_in_ph_flag가 0과 같으면), slice_collocated_ref_idx의 값은 0과 같다고 추론된다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 픽처는 코딩된 픽처의 모든 슬라이스들에 대해 동일해야 한다.
비트스트림 부합성의 요건으로, slice_collocated_ref_idx에 의해 참조되는 참조 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들은 현재 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 값들과 각각 같아야 하며, RprConstraintsActive[ slice_collocated_from_l0_flag? 0 : 1 ][ slice_collocated_ref_idx ]는 0과 같아야 한다.
slice_qp_delta는 코딩 유닛 레이어에서 CuQpDeltaVal의 값에 의해 수정될 때까지 슬라이스 내 코딩 블록들에 대해 사용될 QpY의 초기 값을 명시한다.
qp_delta_info_in_ph_flag가 0과 같은 경우, 슬라이스에 대한 QpY 양자화 파라미터의 초기 값 SliceQpY는 아래와 같이 유도된다.
Figure pct00066
SliceQpY 의 값은 -QpBdOffset 내지 +63의 범위(경계값 포함) 내에 있어야 한다.
다음 조건들 중 어느 하나가 참인 경우,
- wp_info_in_ph_flag가 1과 같고, pps_weighted_pred_flag가 1과 같고, 그리고 slice_type이 P와 같다.
- wp_info_in_ph_flag가 1과 같고, pps_weighted_bipred_flag가 1과 같고, 그리고 slice_type이 B와 같다.
다음이 적용된다.
- NumRefIdxActive[ 0 ]의 값은 NumWeightsL0의 값 이하여야 한다.
- i는 0 내지 NumRefIdxActive[ 0 ] - 1의 범위(경계값 포함) 내에 있는 있는, 각 참조 픽처 인덱스 RefPicList[ 0 ][ i ]에 대해, 참조 픽처 인덱스에 적용되는 루마 가중치, Cb 가중치 그리고 Cr 가중치는 각각 LumaWeightL0[ i ], ChromaWeightL0[ 0 ][ i ] 및 ChromaWeightL0[ 1 ][ i ]이다.
wp_info_in_ph_flag가 1과 같고, pps_weighted_bipred_flag가 1과 같으며, slice_type이 B와 같으며, 다음이 적용된다.
- NumRefIdxActive[ 1 ]의 값은 NumWeightsL1의 값 이하여야 한다.
- i가 0 내지 NumRefIdxActive[ 1 ] - 1의 범위(경계값 포함) 내에 있는 있는, 각 참조 픽처 인덱스 RefPicList[ 1 ][ i ]에 대해, 참조 픽처 인덱스에 적용되는 루마 가중치, Cb 가중치 그리고 Cr 가중치는 각각 LumaWeightL1[ i ], ChromaWeightL1[ 0 ][ i ] 및 ChromaWeightL1[ 1 ][ i ]이다.
slice_cb_qp_offset은 Qp'Cb 양자화 파라미터의 값을 결정할 때 pps_cb_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_cb_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다. slice_cb_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_cb_qp_offset + slice_cb_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다.
slice_cr_qp_offset은 Qp'Cr 양자화 파라미터의 값을 결정할 때 pps_cr_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_cr_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다. slice_cr_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_cr_qp_offset + slice_cr_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다.
slice_joint_cbcr_qp_offset은 Qp'CbCr 양자화 파라미터의 값을 결정할 때 pps_joint_cbcr_qp_offset의 값에 더해져야 할 차분을 명시한다. slice_joint_cbcr_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다. slice_joint_cbcr_qp_offset이 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. pps_joint_cbcr_qp_offset + slice_joint_cbcr_qp_offset의 값은 -12 내지 +12의 범위(경계값 포함) 내에 있어야 한다.
1과 같은 cu_chroma_qp_offset_enabled_flag는 cu_chroma_qp_offset_flag가 변환 및 팔레트 코딩 신택스에 존재할 수 있다고 명시한다. 0과 같은 cu_chroma_qp_offset_enabled_flag는 cu_chroma_qp_offset_flag가 변환 및 팔레트 코딩 신택스에 존재하지 않는다고 명시한다. 존재하지 않는 경우, cu_chroma_qp_offset_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 sao_luma_flag는 SAO가 현재 슬라이스에서 루마 컴포넌트에 대해 활성화됨을 명시한다. 0과 같은 sao_luma_flag는 SAO가 현재 슬라이스에서 루마 컴포넌트에 대해 비활성화됨을 명시한다. slice_sao_luma_flag가 존재하지 않는 경우, 그것은 ph_sao_luma_enabled_flag와 같은 것으로 추론된다.
1과 같은 slice_sao_chroma_flag는 SAO가 현재 슬라이스에서 크로마 컴포넌트에 대해 활성화됨을 명시한다. 0과 같은 sao_chroma_flag는 SAO가 현재 슬라이스에서 크로마 컴포넌트에 대해 비활성화됨을 명시한다. slice_sao_chroma_flag가 존재하지 않는 경우, 그것은 ph_sao_chroma_enabled_flag와 같은 것으로 추론된다.
1과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재한다고 명시한다. 0과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재하지 않는다고 명시한다. 존재하지 않는 경우, slice_deblocking_filter_override_flag의 값은 ph_deblocking_filter_override_flag와 같은 것으로 추론된다.
1과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용된다고 명시한다. slice_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 ph_deblocking_filter_disabled_flag와 같은 것으로 추론된다.
slice_beta_offset_div2slice_tc_offset_div2는 현재 슬라이스를 위한 루마 컴포넌트에 적용되는
Figure pct00067
및 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_div2slice_cb_tc_offset_div2는 현재 슬라이스에 대한 Cb 컴포넌트에 적용되는,
Figure pct00068
및 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_div2slice_cb_tc_offset_div2는 현재 슬라이스에 대한 Cr 컴포넌트에 적용되는,
Figure pct00069
및 tC(2로 나누어진)에 대한 디블로킹 파라미터 오프세트들을 명시한다. slice_cr_beta_offset_div2 및 slice_cr_tc_offset_div2의 값들은 모두 -12 내지 12의 범위(경계값 포함) 내에 있어야 한다. 존재하지 않는 경우, slice_cr_beta_offset_div2 및 slice_cr_tc_offset_div2의 값들은 각각 ph_cr_beta_offset_div2 및 ph_cr_tc_offset_div2의 값들과 같은 것으로 추론된다.
1과 같은 slice_ts_residual_coding_disabled_flag는 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데에 residual_coding( ) 신택스 구조가 사용된다고 명시한다. 0과 같은 slice_ts_residual_coding_disabled_flag는 현재 슬라이스에 대한 변환 스킵 블록의 잔차 샘플들을 파싱하는 데에 residual_ts_coding( ) 신택스 구조가 사용된다고 명시한다. slice_ts_residual_coding_disabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 현재 슬라이스에 대해 활성화됨을 명시한다. 0과 같은 ph_lmcs_enabled_flag는 루마 매핑 및 크로마 스케일링이 현재 슬라이스에 대해 활성화되지 않는다고 명시한다. slice_lmcs_enabled_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
1과 같은 slice_scaling_list_present_flag는 현재 슬라이스를 위해 사용되는 스케일링 리스트 데이터가 SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 참조되는 스케일링 리스트 APS에 포함된 스케일링 리스트 데이터에 기반하여 유도됨을 명시한다. 0과 같은 slice_scaling_list_present_flag는 현재 슬라이스를 위해 사용되는 스케일링 리스트 데이터가 7.4.3.21절에 명시된 바와 같이 유도된 디폴트 스케일링 리스트 데이터임을 명시한다. 존재하지 않는 경우, slice_scaling_list_present_flag의 값은 0과 같은 것으로 추론된다.
현재 슬라이스에서 엔트리 지점들의 수를 명시하는 변수 NumEntryPoints는 다음과 같이 유도된다.
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의 범위(경계값 포함)에 있다. 슬라이스 데이터의 첫 번째 바이트는 바이트 0으로 간주된다. 존재하는 경우, 코딩된 슬라이스 NAL 유닛의 슬라이스 데이터 부분에 나타나는 에뮬레이션 방지 바이트들은 서브세트 식별의 목적을 위한 슬라이스 데이터의 일부로 간주된다. 서브세트 0는 코딩된 슬라이스 데이터의 bytes 0 내지 entry_point_offset_minus1[ 0 ] (경계값 포함)으로 구성되며, 서브세트 k는 아래와 같이 정의되는 firstByte[ k ] 및 lastByte[ k ]를 가지는 코딩된 슬라이스 데이터의 firstByte[ k ] 내지 lastByte[ k ]까지의 바이트들(경계값 포함)로 구성되며, 이때 k는 1 내지 NumEntryPoints - 1의 범위 내에 있다.
Figure pct00071
마지막 서브세트 (서브세트 인덱스는 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.5 크로마 QP 매핑 테이블
7.3.2.3 of JVET-Q2001-vC의 7.3.2.3절에서, SPS는 아래에 보이는 것과 같이 크로마 QP 테이블라는 이름의 구조를 포함한다
Figure pct00072
해당하는 시맨틱스 및 QP 테이블 유도는 아래와 같다.
0과 같은 sps_joint_cbcr_enabled_flag는 크로마 잔차들의 조인트 코딩이 비활성화됨을 명시한다. 1과 같은 sps_joint_cbcr_enabled_flag는 크로마 잔차들의 조인트 코딩이 활성화됨을 명시한다. 존재하지 않는 경우, sps_joint_cbcr_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 same_qp_table_for_chroma는 오직 하나의 크로마 매핑 테이블이 시그널링되며, 이 테이블이, sps_joint_cbcr_enabled_flag가 1인 경우, Cb 및 Cr 잔차들에 그리고 조인트 Cb-Cr 잔차들에 추가로 적용됨을 명시한다. 0과 같은 same_qp_table_for_chroma는 크로마 QP 매핑 테이블들이 Cb 및 Cr에 2개, 그리고 sps_joint_cbcr_enabled_flag가 1인 경우 조인트 Cb-Cr에 대해 추가로 SPS에서 시그널링된다고 명시한다. same_qp_table_for_chroma가 비트스트림에 존재하지 않는 경우, same_qp_table_for_chroma의 값은 1과 같은 것으로 추론된다.
qp_table_start_minus26[ i ] 플러스 26은 i번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 시작 루마 및 크로마 QP를 명시한다.
qp_table_start_minus26[ i ]의 값은 -26 - QpBdOffset 내지 36의 범위(경계값 포함)에 있어야 한다. qp_table_start_minus26[ i ]가 비트스트림에 존재하지 않을 때, qp_table_start_minus26[ i ]의 값은 0과 같은 것으로 추론된다.
num_points_in_qp_table_minus1[ i ] 플러스 1은 i번째 크로마 QP 매핑 테이블을 설명하는 데 사용되는 포인트들의 수를 명시한다. 신택스 요소 num_points_in_qp_table_minus1[ i ]의 값은 0 내지 63 + QpBdOffset의 범위(경계값 포함)에 있어야 한다. num_points_in_qp_table_minus1[ i ]가 비트스트림에 존재하지 않을 때, num_points_in_qp_table_minus1[ 0 ]의 값은 0과 같은 것으로 추론된다.
delta_qp_in_val_minus1[ i ][ j ]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 입력 좌표를 도출하는 데 사용되는 델타 값을 명시한다.
delta_qp_in_val_minus1[ 0 ][ j ]이 비트스트림에 존재하지 않는 경우, delta_qp_in_val_minus1[ 0 ][ j ]의 값은 0과 동일한 것으로 추론된다.
delta_qp_diff_val[ i ][ j ]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 출력 좌표를 도출하는 데 사용되는 델타 값을 명시한다.
i = 0..numQpTables - 1에 대한 i번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]은 다음과 같이 유도될 수 있다.
Figure pct00073
same_qp_table_for_chroma가 1과 같은 경우, ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 -QpBdOffset 내지 63의 범위(경계값 포함)내의 k에 대해 ChromaQpTable[ 0 ][ k ]와 같게 설정된다.
비트스트림 부합성의 요건으로, qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 0 내지 numQpTables - 1의 범위(경계값 포함)에서의 i, 0 내지 sps_num_points_in_qp_table_minus1[ i ] + 1의 범위(경계값 포함)에서의 j에 대해, -QpBdOffset 내지 63의 범위(경계값 포함)에 있어야 한다.
상기 설명에서, QpBdOffset은 다음과 같이 도출된다.
bit_depth_minus8는 루마 및 크로마 어레이들의 샘플들의 비트 깊이 BitDepth 및 루마 및 크로마 양자화 파라미터 범위 오프세트 QpBdOffset의 값을 아래와 같이 명시한다.
Figure pct00074
bit_depth_minus8은 0 내지 8의 범위(경계값 포함)에 있어야 한다.
4. Technical problems solved by disclosed technical solutions
최신 VVC 초안 사양에서 APS, 디블로킹, 서브픽처, 그리고 QP 델타에 대한 현재의 설계들에는 아래와 같은 문제점들이 있다.
1) 현재, APS 신택스 요소 scaling_list_chroma_present_flag의 값은 SPS 신택스 요소들 chroma_format_idc 및 separate_colour_plane_flag로부터 유도된 ChromaArrayType에 기반하여 제한되며, 이는 다음과 같이 표현되고 있다.
ChromaArrayType이 0과 같은 경우 scaling_list_chroma_present_flag는 0과 같아야 하며, ChromaArrayType이 0과 같지 않은 경우, 1과 같아야 한다.
APS 신택스 요소의 시맨틱스에서 이와 같은 제약조건들은 SPS에 대한 APS의 시맨틱스 의존성을 끌어들이는데, 이는 발생해서는 안 된다. 왜냐하면 APS 신택스에는 PPS ID 또는 SPS ID가 없는 관계로 ChromaArrayType의 상이한 값들과 연관될 수 있는 SPS들을 참조하는 픽처들(또는 픽처들의 슬라이스들)에 APS가 적용될 수 있기 때문이다.
a. 게다가, 유사한 APS-SPS 시맨틱스 의존성이 일부 ALF/CC-ALF APS 신택스 요소들의 시맨틱스에도 존재하며, 이는 다음과 같이 표현된다.
ChromaArrayType이 0과 같은 경우, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag는 0과 같아야 한다.
b. 현재, LMCS APS가 시그널링되는 경우, ChromaArrayType이 0과 같은 지 여부에 관계없이(즉, CLVS에 어떤 크로마 성분도 존재하지 않음), 크로마 잔차 스케일링 관련 신택스 요소들은 항상 LMCS APS 신택스 구조에서 시그널링된다. 이는 크로마 관련 신택스 요소들의 불필요한 시그널링으로 귀결된다.
2) 최신 VVC 텍스트에서 디블로킹 제어 메커니즘이 매우 복잡하고, 간단하지 않으며, 이해하기 어려워 에러를 일으키기 쉽다는 주장이 있다. 이와 관련하여 우리가 주목한 몇 가지 예시적인 이슈들은 다음과 같다.
a. 현재의 텍스트에 따르면, 디블로킹 필터가 PPS에서 비활성화된다 하더라도, 그것은 PH 또는 SH에서 활성화될 수 있다. 예를 들어, 만약 pps_deblocking_filter_disabled_flag가 먼저 1과 같다고 시그널링되고, deblocking_filter_override_enabled_flag또한 1과 같다고 시그널링되면, 그것이 지시하는 것은, 디블로킹 필터가 PPS에서 비활성화된다는 것이며, 이는 또한 디블로킹 필터 활성/비활성 제어가 PH 또는 SH에서 무효화되도록 허용한다. 그 다음으로 dbf_info_in_ph_flag가 시그널링되고 PH 신택스 요소 ph_deblocking_filter_disabled_flag는 0과 같은 것으로 시그널링 될 수 있으며, 이는 결국 PH와 관련된 슬라이스들에 대해 디블로킹 필터를 활성화시킨다. 이러한 경우, 디블로킹 필터는, 그것이 상위 레벨(가령, PPS)에서 비활성화되었는 사실에 무관하게 PH에서 결국 활성화된다. 이와 같은 설계 로직은 VVC 텍스트에 독특한 것으로, 다른 코딩 툴들(가령, ALF, SAO, LMCS, TMVP, WP 등)의 설계 로직과는 매우 다르며, 일반적으로 코딩 툴이 상위 레이어(가령, SPS, PPS)에서 비활성화되면, 그것은 하위 레이어들(가령, PH, SH)에서는 완전히 비활성화된다.
b. 더 나아가, pps_deblocking_filter_disabled_flag의 현재 정의는 다음과 같다. "1과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다...". 하지만, 현재 신택스 테이블에 따르면, pps_deblocking_filter_disabled_flag가 1과 같고 slice_deblocking_filter_disabled_flag가 존재하지 않는 경우에도, ph_deblocking_filter_disabled_flag가 존재하고 0과 같은 것으로 시그널링되면, 디블로킹 필터의 동작이 여전히 적용될 수 있다. 따라서, pps_deblocking_filter_disabled_flag의 현재 정의는 맞지 않다.
c. 게다가, 현재 텍스트에 따르면, 만약 PPS 신택스 요소들 deblocking_filter_override_enabled_flag 및 pps_deblocking_filter_disabled_flag 모두 1과 같으면, 그것이 명시하는 것은 디블로킹이 PPS에서 비활성화되며 디블로킹 필터의 제어가 PH 또는 SH에서 무효화되도록 의도된다는 것이다. 하지만, 이후의 PH 신택스 요소들 ph_deblocking_filter_override_flag 및 ph_deblocking_filter_disabled_flag는 여전히 1과 같은 것으로 시그널링될 수 있으며, 이는 결과적인 무효화 프로세스가 아무 것도 변화시키지 못하고(가령, 디블로킹이 PH/SH에서 비활성화 상태로 유지됨) 무의미한 시그널링을 위해 단지 불필요한 비트들을 사용하는 셈이다.
d. 또한, 현재 텍스트에 따르면, SH 신택스 요소 slice_deblocking_filter_override_flag가 존재하지 않는 경우, 그것은 ph_deblocking_filter_override_flag와 같은 것으로 추론된다. 하지만, PPS에서의 묵시적 또는 명시적 시그널링 외에도, 디블로킹 파라미터들은 dbf_info_in_ph_flag에 따라 PH 또는 SH 중 하나에서만 시그널링될 수 있으며, 둘 다에서는 시그널링 될 수 없다. 따라서, dbf_info_in_ph_flag가 참인 경우, 의도는 PH에서 오버라이딩 디블로킹 필터 파라미터들을 시그널링 하도록 허용하는 것이다. 이 경우, 만약 PH 오버라이드 플래그가 참이고 SH 오버라이드 플래그가 시그널링되지 않고 PH 오버라이드 플래그와 동일한 것으로 추론된다면, 추가적인 디블로킹 필터 파라미터들은 여전히 SH에서 시그널링 될 것이며, 이는 의도에 반한다.
e. 또한, SPS 레벨 디블로킹 on/off 제어가 존재하지 않으며, 이는 추가될 수 있으며, PPS/PH/SH에서의 관련 신택스 요소들이 그에 따라 갱신될 수 있다.
3) 현재, PPS 신택스 요소 single_slice_per_subpic_flag가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다. single_slice_per_subpic_flag는 다음 두 가지 경우에 존재하지 않는다: i) no_pic_partition_flag가 1과 같고, ii) no_pic_partition_flag가 0과 같으며 rect_slice_flag도 0과 같은 경우. i)의 경우, 1과 동일한 no_pic_partition_flag는 PPS를 참조하는 각 픽처에 어떤 픽처 분할도 적용되지 않으며, 그리하여 각 픽처에는 오직 하나의 슬라이스 만이 존재하고, 그 결과 각 픽처에는 오직 하나의 서브픽처만이 존재하고 각 서브픽처에는 오직 하나의 슬라이스만이 존재한다고 명시한다. 따라서, 이 경우 single_slice_per_subpic_flag는 1과 같은 것으로 추론되어야 한다. ii)의 경우, rect_slice_flag가 0과 같으므로, single_slice_per_subpic_flag의 추론된 값은 필요하지 않다.
4) 현재, 픽처 또는 슬라이스 레벨의 루마 qp 델타가 PH 또는 SH 중 하나에서 항상 의무적으로 시그널링되며, 둘 다에서는 결코 시그널링되지 않는다. 반면에, 슬라이스 레벨의 크로마 QP 오프셋은 SH에서 선택적으로 시그널링된다. 이러한 설계는 다소 일관적이지 않다.
a. 또한, PPS 신택스 요소 cu_qp_delta_enabled_flag의 현재 시맨틱스는 다음과 같이 쓰여 있다. 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는 변환 유닛 신택스에 존재할 수 있다고 명시한다. 하지만, cu_qp_delta_abs는 팔레트 코딩 신택스에도 존재할 수 있으며, 이는 cu_qp_delta_enabled_flag에 의해서도 명시되어야 한다. 달리 말하면, cu_qp_delta_enabled_flag의 현재 시맨틱스는 충분히 명료하지 않으며 다소 혼동스럽다.
5) 크로마 QP 매핑 테이블의 현재 설계는 루마 QP와 동일한 크로마 QP의 경우를 표현하기에 분명하지는 않다.
6) 현재, subpic_treated_as_pic_flag[ i ]는 sps_independent_subpics_flag의 값과 같은 것으로 추론된다. 하지만, 현재 사양은 subpic_treated_as_pic_flag[ i ]가 0과 같은 경우, 오직 수평 랩 어라운드가 활성화되도록 허용하며, 여기서 랩 어라운드 모션 보상은 360도 비디오 컨텐츠를 위해 설계되었다. 따라서, 픽처가 오직 하나의 서브픽처만을 포함하는 경우(특별히 완전한 360도 비디오 시퀀스가 오직 하나의 서브픽처만을 포함하는 경우), subpic_treated_as_pic_flag[ i ]에 대해 추론된 값은 0과 같다고 추론될 수 있거나 또는 랩 어라운드 모션 보상을 허용하는 특정 값과 같다고 추론될 수 있다.
7) 현재, pps_deblocking_filter_disabled_flag의 시맨틱스는 정확하지 않고 불완전하다. 가령, pps_deblocking_filter_disabled_flag가 1과 같은 경우, 디블로킹은 이 PPS를 참조하는 슬라이스들에 대해 활성화 또는 비활성화 될 수 있지만, 해당 조건들은 시맨틱스에서 언급되지 않고 있다. pps_deblocking_filter_disabled_flag가 0과 같은 경우에 대한 시맨틱스의 부분에서도 마찬가지이다.
a. 더 나아가, PPS 신택스 요소 pps_deblocking_filter_disabled_flag가 1과 같고, 한편으로 PH/SH 신택스 요소 ph/slice_deblocking_filter_override_flag가 1과 같다고 시그널링되는 경우, ph/slice_deblocking_filter_disabled_flag는 1과 같다고 명시적으로 시그널링 되도록 여전히 허용된다. 상기 플래그 값들의 이와 같은 조합은 다음과 같이 귀결된다. PPS레벨에서 디블로킹은 비활성화되어 픽처 또는 슬라이스에서 무효화(overridden)되는 것이 허용된다고 얘기되며, 그리고 나서 PH/SH 레벨에서 그것이 무효화될 것이라고 지시된 후, 동일한 헤더(PH/SH)에서 비트가 시그널링되어 그것이 실제로 무효화되지는 않고 디블로킹이 픽처/슬라이스 레벨에서 비활성화된 상태로 유지된다고 최종적으로 결정된다. 이는 바람직하지 않은 이중적인 결과를 초래하는 것으로 주장된다. 즉, 비트가 불필요하게 사용될 뿐 아니라, 다소간의 혼란만을 유발하도록 사용된다는 것이다. 따라서, 우리가 제안하는 바는 디블로킹 제어 신택스 요소들의 시맨틱스를 더 개선하여 무효화(overriding) 지시를 허용하고 나서 심정의 변화를 지시하는 다음 비트를 동일한 PH 또는 SH에서 곧바로 전송하는 특성을 제거하는 것이다.
5. A listing of solutions and embodiments
상기 문제들 및 언급되지 않은 일부 기타 문제들을 해결하기 위해 아래에 요약된 방법들이 개시된다. 아래에 열거되는 항목들은 일반적인 개념들을 설명하기 위한 예시들로 고려되어야 하며, 좁은 방식으로 해석되어서는 안 된다. 더 나아가, 이 항목들은 개별적으로 적용되거나 어떤 방식으로도 결합될 수 있다.
아래 논의에서, SH는 PH와 관련될 수 있다. 즉, 상기SH는 슬라이스와 관련되고, 슬라이스는 상기 PH와 관련된 픽처에 있다. SH는 PPS와 관련될 수 있다. 즉, 상기 SH는, 상기 PPS와 관련된 픽처 안에 잇는 슬라이스와 관련된다. PH는 PPS와 관련될 수 있다. 즉, 상기 PH는 상기 PPS와 관련되는 픽처와 관련된다.
아래 논의에서, SPS는 PPS와 관련될 수 있다. 즉, 상기 PPS는 상기 SPS를 참조할 수 있다.
아래 논의에서, 변경된 텍스트들은 JVET-Q2001에서 최신 VVC 텍스트에 기반한다. 추가되거나 수정된 대부분의 관련 부분들은 굵은 이탤릭체로 강조되었고 , 삭제된 부분들 일부는 이중 꺽쇠[[ ]]로 표시된다(가령, [[a]]는 글자 "a"의 삭제를 의미한다)
1. 첫 번째 문제를 해결하기 위해 APS 신택스 요소들에 대한 제약조건들과 관련하여, 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예에서, PH 신택스 요소에 의해 도출된 ChromaArrayType에 따라 scaling_list_chroma_present_flag의 값을 제한한다.
i. 예를 들어, 실시예들의 첫 번째 세트에서와 같이, scaling_list_chroma_present_flag 값의 제한 여부는 ph_scaling_list_aps_id의 존재여부에 의존할 수 있다.
1) 일 예에서, ph_scaling_list_aps_id가 존재하는 경우, SCALING_AP와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은 ChromaArrayType = = 0 ? 0 : 1와 같아야 한다고 요구된다.
ii. 또는, 실시예들의 첫 번째 세트에서와 같이, scaling_list_chroma_present_flag는 PH 신택스 요소에 의해 도출된 ChromaArrayType에 기반하여 제한되지만, 이는 ph_scaling_list_aps_id의 존재와는 무관하다.
1) 일 예에서, SCALING_AP와 같은 aps_params_type를 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은 ChromaArrayType = = 0 ? 0 : 1와 같아야 한다고 요구된다.
b. 일 예에서, PH 신택스 요소에 의해 도출된 ChromaArrayType에 따라 lmcs_delta_abs_crs의 값을 제한한다.
i. 예를 들어, 실시예들의 첫 번째 세트에서와 같이, lmcs_delta_abs_crs값의 제한 여부는 ph_lmcs_aps_id의 존재여부에 의존할 수 있다.
1) 일 예에서, ph_lmcs_aps_id가 존재하는 경우, LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 하고, 그렇지 않으면 0 보다 커야 한다고 요구된다.
2) 또는, ph_lmcs_aps_id가 존재하는 경우, LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 한다고 요구된다.
ii. 또는, 실시예들의 첫 번째 세트에서와 같이, lmcs_delta_abs_crs는 PH 신택스 요소에 의해 도출된 ChromaArrayType에 기반하여 제한되지만, 이는 ph_lmcs_aps_id의 존재와는 무관하다.
1) 일 예에서, ph_lmcs_aps_id와 같은 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 하고, 그렇지 않으면 0 보다 커야 한다고 요구된다.
2) 예를 들면, ph_lmcs_aps_id와 같은 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 한다고 요구된다.
c. 일 예에서, PH 신택스 요소들 및/또는 SH 신택스 요소들에 의해 도출된 ChromaArrayType에 따라 ALF APS 신택스 요소들(예를 들어, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, alf_cc_cr_filter_signal_flag 등)의 값을 제한한다.
i. 예를 들어, 실시예들의 첫 번째 세트에서와 같이, alf_chroma_filter_signal_flag 및/또는 alf_cc_cb_filter_signal_flag 및/또는 alf_cc_cr_filter_signal_flag의 값이 제한되는지 여부는 ph_alf_aps_id_luma[ i ] 또는 slice_alf_aps_id_luma[ i ]가 존재하는지 여부 및/또는 ChromaArrayType이 0과 같은 지 여부에 의존할 수 있다.
1) 예를 들어, ph_alf_aps_id_luma[ i ]가 존재하고 ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다고 요구된다.
2) 또한, slice_alf_aps_id_luma[ i ]가 존재하고 ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다고 요구된다.
ii. 또는, 실시예들의 첫 번째 세트에서와 같이, alf_chroma_filter_signal_flag 및/또는 alf_cc_cb_filter_signal_flag 및/또는 alf_cc_cr_filter_signal_flag는 PH 신택스 요소들 또는 SH 신택스 요소들에 의해 도출된 ChromaArrayType에 기반하여 제한되며, 이는 ph_alf_aps_id_luma[ i ] 및/또는 slice_alf_aps_id_luma[ i ]의 존재와는 무관하다.
1) 예를 들어, ChromaArrayType이 존재하는 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다고 요구된다.
2) 또는, ChromaArrayType이 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다고 요구된다.
iii. 또는, 실시예들의 첫 번째 세트에서와 같이, alf_chroma_filter_signal_flag 및/또는 alf_cc_cb_filter_signal_flag 및/또는 alf_cc_cr_filter_signal_flag는 크로마 APS ID 관련 PH 또는 SH 신택스 요소들에 의해 도출된 ChromaArrayType에 기반하여 제한된다.
1) 예를 들어, alf_chroma_filter_signal_flag는 PH 신택스 요소 ph_alf_aps_id_chroma 및/또는 SH 신택스 요소 slice_alf_aps_id_chroma에 의해 도출된 ChromaArrayType에 따라 제한된다.
2) 예를 들어, alf_cc_cb_filter_signal_flag는 PH 신택스 요소 ph_cc_alf_cb_aps_id 및/또는 SH 신택스 요소 slice_cc_alf_cb_aps_id에 의해 도출된 ChromaArrayType에 따라 제한된다.
3) 예를 들어, alf_cc_cr_filter_signal_flag는 PH 신택스 요소 ph_cr_alf_cb_aps_id 및/또는 SH 신택스 요소 slice_cr_alf_cb_aps_id에 의해 도출된 ChromaArrayType에 따라 제한된다.
d. 일 예에서, ALF 및/또는 SCALING LIST 및/또는 LMCS 데이터 신택스 구조에서 APS 신택스 요소들의 시맨틱스는 그것이 4:0:0 코딩 및/또는 별도의 컬러 코딩인지 여부에 의존하지 않는다.
i. 예를 들어, ALF 데이터 신택스 구조에서(예를 들어, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, alf_cc_cr_filter_signal_flag 등) APS 신택스 요소들의 시맨틱스는, 실시예들의 첫번째 세트에서와 같이, SPS/PH/SH 신택스 요소들(예를 들어, ChromaArrayType)에 의해 도출된 변수들/신택스들에 의존하지 않을 수 있다.
ii. 게다가, 또는, SCALING LSIT 데이터 신택스 구조(예를 들어, scaling_list_chroma_present_flag 등)에서 APS 신택스 요소들의 시맨틱스는, 실시예들의 첫번째 세트에서와 같이, SPS/PH/SH 신택스 요소들(예를 들어, ChromaArrayType)에 의해 도출된 변수들/신택스들에 의존하지 않을 수 있다.
e. 그리고, 실시예들의 첫 번째 세트에서와 같이, ALF/SCALING/LMCS APS NAL 유닛의 temporalId이 제한되는지 여부는 해당하는 APS ID가 존재하는지 여부에 의존할 수 있다.
i. 예를 들어, ALF APS NAL 유닛의 temporalId가 제한되는지 여부는 ph_alf_aps_id_luma[ i ] 및/또는 ph_alf_aps_id_chroma 및/또는 ph_cc_alf_cb_aps_id 및/또는 ph_cc_alf_cr_aps_id가 존재하는지 여부에 의존할 수 있다.
ii. 예를 들어, LMCS APS NAL의 temporalId가 제한되는지 여부는 ph_lmcs_aps_id가 존재하는지 여부에 의존할 수 있다.
iii. 예를 들어, SCALING APS NAL 유닛의 temporalId가 제한되는지 여부는 ph_scaling_list_aps_id가 존재하는지 여부에 의존할 수 있다.
f. 또는, 실시예들의 첫 번째 세트에서와 같이. alf_luma_filter_signal_flag, alf_chroma_filter_signal_flag 및/또는 alf_cc_cb_filter_signal_flag 및/또는 alf_cc_cr_filter_signal_flag의 값들이 1과 같아야 하는지 여부는 해당 APS ID가 존재하는지 여부에 의존할 수 있다.
i. 예를 들어, alf_luma_filter_signal_flag가 1과 같아야 하는지 여부는 ph_alf_aps_id_luma[ i ] 및/또는 slice_alf_aps_id_luma[ i ]가 존재하는지 여부에 의존할 수 있다.
ii. 예를 들어, alf_chroma_filter_signal_flag가 1과 같아야 하는지 여부는 ph_alf_aps_id_chroma 및/또는 slice_alf_aps_id_chroma가 존재하는지 여부에 의존할 수 있다.
iii. 예를 들어, alf_cc_cb_filter_signal_flag가 1과 같아야 하는지 여부는 ph_cc_alf_cb_aps_id 및/또는 slice_cc_alf_cb_aps_id가 존재하는지 여부에 의존할 수 있다.
iv. 예를 들어, alf_cc_cr_filter_signal_flag가 1과 같아야 하는지 여부는 ph_cc_alf_cr_aps_id 및/또는 slice_cc_alf_cr_aps_id가 존재하는지 여부에 의존할 수 있다.
g. 추가로, 또는, SH에서의 크로마 ALF APS ID 신택스 요소들(예를 들어, slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cr_alf_cb_aps_id 등)이 추론되는지 여부는, 실시예들의 첫 번째 세트에서와 같이, ChromaArrayType의 값에 의존할 수 있다.
i. 예를 들어, ChromaArrayType이 0과 같지 않은 경우, SH에서의 크로마 ALF APS ID 신택스 요소들(예를 들어, slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cr_alf_cb_aps_id 등)은 추론될 수 있다.
h. 일 예에서, ChromaArrayType에 기반한 APS 신택스 요소들의 제약조건은 PH 또는 SH 신택스 요소들에 의해 도출될 수 있다.
i. 일 예에서, 신택스 요소들의 제한되는 APS는 PH 또는 SH에 의해 시그널링되는 인덱스(가령, ph_num_alf_aps_ids_luma, ph_alf_aps_id_chroma, ph_lmcs_aps_idph_scaling_list_aps_id)에 의해 결정된다.
ii. 일 예에서, ChromaArrayType는 SPS에서 시그널링되는 정보(가령, chroma_format_idc 및 separate_colour_plane_flag)에 의해 도출될 수 있고, 상기 정보는 PPS에서 시그널링되는 (pps_seq_parameter_set_id와 같은) 정보에 의해 결정되며, 이것은 PH 또는 SH에서 시그널링되는 (ph_pic_parameter_set_id와 같은) 인덱스에 의해 더 결정된다.
iii. 일 예에서, 제약조건들은 APS 및 PH 또는 SH를 파싱한 후에 검사되어야 한다.
iv. 일 예에서, 신택스 요소(예를 들어, aps_chroma_present_flag라 불리는 요소)는 크로마 관련 APS 신택스 요소들이 시그널링될 것인지 여부를 명시하는 APS 신택스 구조(예를 들어, adaptation_parameter_set_rbsp( ))에서 시그널링될 수 있다.
v. 또한, 신택스 요소 aps_chroma_present_flag는 ChromaArrayType에 의해 제한될 수 있다.
a) 예를 들어, ChromaArrayType이 0과 같으면, aps_chroma_present_flag는 0과 같아야 한다.
b) 예를 들어, ChromaArrayType이 0 보다 크면, aps_chroma_present_flag는 1과 같아야 한다.
vi. 또한, ChromaArrayType에 기반한 제약조건은 PH 또는 SH 신택스 요소들에 의해 도출될 수 있다.
a) 일 예에서, ALF_APS와 같은 aps_params_type 및 ph/slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType이 0과 같은 경우, 0과 같아야 한다고 요구된다.
a. 추가로, 또는, ALF_APS와 같은 aps_params_type 및 ph/slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType이 0 보다 큰 경우, 1과 같아야 한다고 요구된다.
b) 일 예에서, SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType이 0과 같은 경우, 0과 같아야 한다고 요구된다.
a. 추가로, 또는, SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType이 0 보다 큰 경우, 1과 같아야 한다고 요구된다.
c) 일 예에서, LMPS_APS와 같은 aps_params_type 및 ph_lmps_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType이 0과 같은 경우, 0과 같아야 한다고 요구된다.
vii. 또한, ChromaArrayType에 기반한 제약조건은, PH/SH에서 APS ID의 존재와 관계없이, PH 신택스 요소들 또는 SH 신택스 요소들에 의해 도출될 수 있다.
a) 일 예에서, SCALING_APS 및/또는 ALF_APS 및/또는 LMCS APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType가 0과 같은 경우, 0과 같아야 한다고 요구된다.
b) 게다가, 또는, SCALING_APS 및/또는 ALF_APS 및/또는 LMCS APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 aps_chroma_present_flag의 값은, chromaArrayType가 0 보다 큰 경우, 1과 같아야 한다고 요구된다.
2. 두 번째 문제를 해결하기 위한 디블로킹 제어의 시그널링과 관련하여, 실시예들의 두 번째 세트에서와 같이, 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예에서, N 비트(가령 N=2) 디블로킹 모드 지시자(예를 들어, deblocking_filter_mode_idc라 불림)가 시그널링 된다.
i. 일 예에서, 신택스 요소 deblocking_filter_mode_idc는 u(2) 코딩된다.
a) 또는, deblocking_filter_mode_idc의 파싱 프로세스는 N 비트(가령 N=2)를 가지는 부호없는 정수이다.
ii. 일 예에서, 신택스 요소 deblocking_filter_mode_idc는 PPS에서 시그널링된다.
iii. 일 예에서, 신택스 요소 deblocking_filter_mode_idc는 다음 네 가지 모드를 명시하는 데에 사용된다: a) 모든 슬라이스들에 대해 사용되지 않으며 완전히 비활성화되는 디블로킹; b) 0 값인
Figure pct00075
및 tC 오프세트들을 사용하여 모든 슬라이스들에 대해 사용되는 디블로킹; c) PPS에서 명시적으로 시그널링되는
Figure pct00076
및 tC 오프세트들을 사용하여 모든 슬라이스들에 대해 사용되는 디블로킹; 그리고 d) 픽처 또는 슬라이스 레벨에서 더 제어되는 디블로킹.
b. 신택스 플래그 ph/slice_deblocking_filter_used_flag는 PH 또는 SH에서 시그널링되어, 디블로킹이 현재 픽처/슬라이스에 대해 사용되는지 여부를 명시한다.
c. 신택스 플래그 ph/slice_deblocking_parameters_override_flag는 PH 또는 SH에서 시그널링되어,
Figure pct00077
및 tC 오프세트들이 PH/SH에서 시그널링되는 값들에 의해 무효화되는지 여부를 명시한다.
i. 또한, 존재하지 않는 경우, slice_deblocking_parameters_override_flag의 값은 0과 같은 것으로 추론한다.
d. 일 예에서, 디블로킹 제어를 명시하는 신택스 요소들(예를 들어, 활성화 플래그, 비활성화 플래그, 제어 플래그, 디블로킹 모드 지시자, 디블로킹 필터 베타/tc 파라미터들 등)은 SPS에서 시그널링될 수 있다.
i. 일 예에서, 하나 또는 그 이상의 신택스 요소들은, 디블로킹이 비디오 유닛(예를 들어, CLVS)에서 활성화되는지 여부를 명시하는 SPS에서 시그널링될 수 있다.
ii. 또한, 디블로킹이 SPS에서 비활성화되는 경우, PPS/PH/SH 레벨에서 디블로킹 ON/OFF 제어와 관련하여 PPS/PH/SH에서 신택스 요소가, 디블로킹이 완전히 비활성화되어 모든 슬라이스들에 대해 사용되지 않는다고 명시하는 특정한 값과 같아야 한다고 요구된다.
iii. 일 예에서, 디블로킹 필터 제어 존재 플래그는 SPS에서 시그널링될 수 있다.
iv. 예를 들어, N-비트(가령 N=2) 디블로킹 모드 지시자(예를 들어, deblocking_filter_mode_idc라 불림)는 SPS에서 시그널링될 수 있다.
v. 예를 들어, 베타/tc 디블로킹 파라미터들은 SPS에서 시그널링될 수 있다.
vi. 예를 들어, 디블로킹이 0 값의 베타/tc 디블로킹 파라미터들로 활성화되는지 여부는 SPS 신택스 요소에 의존할 수 있다.
vii. 예를 들어, 디블로킹은 SPS/PPS/PH/SH 레벨에서 시그널링될 수 있으며, SPS에서 시그널링되는 베타/tc 디블로킹 파라미터들을 사용할 수 있다.
viii. 예를 들어, 디블로킹은 SPS/PPS/PH/SH 레벨에서 적용될 수 있으며, SPS에서 시그널링되는 0 값의 디블로킹 파라미터들을 사용할 수 있다.
3. 세 번째 문제를 해결하기 위한 PPS 신택스 요소 single_slice_per_subpic_flag의 추론과 관련하여 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예에서, no_pic_partition_flag가 1과 같은 경우, single_slice_per_subpic_flag를 1과 같다고 추론한다. 즉, single_slice_per_subpic_flag의 시맨틱스는 아래와 같이 변경된다.
1과 같은 single_slice_per_subpic_flag는 각 서브픽처가 오직 하나의 직사각형 슬라이스로 구성된다고 명시한다. 0과 같은 single_slice_per_subpic_flag는 각 서브픽처가 하나 또는 그 이상의 직사각형 슬라이스들로 구성될 수 있음을 명시한다. no_pic_partition_flag가 1과 같은 경우 [[존재하지 않는 경우]], single_slice_per_subpic_flag의 값은 [[0]] 1 과 같은 것으로 추론된다.
4. 네 번째 문제를 해결하기 위한 픽처 또는 스라이스 QP 델타 시그널링과 관련하여 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예에서, 픽처 또는 슬라이스 레벨 크로마 QP 오프셋은 PH 또는 SH에서 항상 시그널링된다.
i. 예를 들어, 만약 비디오 콘텐츠에 크로마 성분이 있으면(예를 들어, ChromaArrayType가 0과 같지 않은 경우), 픽처 또는 슬라이스 레벨 크로마 QP 오프셋은, PPS에서 시그널링되는 존재하는 플래그(예를 들어, pps_slice_chroma_qp_offsets_present_flag)의 조건에 관계없이, 항상 시그널링될 수 있다.
ii. 또는, 만약 비디오 콘텐츠에 크로마 성분이 있으면(예를 들어, ChromaArrayType가 0과 같지 않은 경우), slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들은, PPS 존재 플래그(예를 들어, pps_slice_chroma_qp_offsets_present_flag)에 관계없이, 관련된 슬라이스 헤더들에 항상 존재할 수 있다.
iii. 또한, slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 요소들의 존재를 명시하는 상기 존재 플래그(예를 들어, pps_slice_chroma_qp_offsets_present_flag)는 시그널링되지 않을 수 있다.
b. 일 예에서, pps_cu_qp_delta_enabled_flag는 변환 유닛 신택스 및 팔레트 코딩 신택스 모두에서 cu_qp_delta_abs 및 cu_qp_delta_sign_flag의 존재를 명시하기 위해 사용될 수 있으며, pps_cu_qp_delta_enabled_flag의 시맨틱스는 아래와 같이 변경될 수 있다.
1과 같은 pcu_qp_delta_enabled_flag ph_cu_qp_delta_subdiv_intra_slice 및 ph_cu_qp_delta_subdiv_inter_slice 신택스 요소들이 PPS를 참조하는 PH들에 존재하고, 상기 cu_qp_delta_abs 및 cu_qp_delta_sign_flag 신택스 요소들이 변환 유닛 신택스 및 팔레트 코딩 신택스 에 존재할 수 있다고 명시한다. 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 및 cu_qp_delta_sign_flag 신택스 요소들은 변환 유닛 신택스 또는 팔레트 코딩 신택스 에 존재하지 않는다고 명시한다.
c. 일 예에서, 루마 QP 델타는 PH 및 SH 모두에서 시그널링될 수 있다.
i. 예를 들어, 루마 QP 델타 존재 플래그는 PPS 및/또는 PH 및/또는 SH에서 시그널링될 수 있다.
ii. 예를 들어, 루마 QP 델타가 PH/SH에서 시그널링되는지 여부는 PPS 및/또는 PH/SH에서의 존재 플래그들에 의존한다.
iii. 예를 들어, PH 루마 QP 델타 및 SH 루마 QP 델타의 값들은 추가적일 수 있으며, SliceQpY와 같은 루마 양자화 파라미터를 계산하기 위해 사용될 수 있다.
d. 일 예에서, 크로마 QP 오프셋들은 PH 및 SH 모두에서 시그널링될 수 있다.
i. 예를 들어, 크로마 QP 오프셋 존재 플래그는 PPS 및/또는 PH 및/또는 SH에서 시그널링될 수 있다.
ii. 예를 들어, 상기 크로마 QP 오프셋들이 PH/SH에서 시그널링되는지 여부는 PPS 및/또는 PH/SH에서의 존재 플래그들에 의존한다.
iii. 예를 들어, PH 크로마 QP 오프셋들 및 SH 크로마 QP 오프셋들의 값들은 추가적일 수 있으며, Cb 및 Cr 성분들에 대한 크로마 양자화 파라미터를 도출하기 위해 사용될 수 있다.
5. 크로마 QP 매핑 테이블들과 관련하여, 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예로, 크로마 QP 테이블의 유도 프로세스에서, XOR 연산자는, 실시예들의 세 번째 세트에서와 같이, (delta_qp_in_val_minus1[ i ][ j ] + 1)와 delta_qp_diff_val[ i ][ j ] 사이에서 실시되어야 한다.
b. SPS에서 sps_ multiple_sets_of_chroma_qp_table_present_flag에 플래그가 있어야 한다고 제안된다.
i. sps_multiple_sets_of_chroma_qp_table_present_flag가 0과 같은 경우, Qp 매핑 테이블의 한 세트만이 시그널링되도록 허용된다.
ii. sps_multiple_sets_of_chroma_qp_table_present_flag가 1과 같은 경우, 크로마 Qp 매핑 테이블의 두 세트 이상이 시그널링되도록 허용된다.
c. B/P 슬라이스 없는 시퀀스에 대해 두 세트 이상의 크로마 Qp 매핑 테이블들이 시그널링되는 것이 허용되지 않을 것이다.
6. 여섯 번째 문제를 해결하기 위한 sps_independent_subpics_flag 및 subpic_treated_as_pic_flag[ i ]와 관련하여, 아래 접근법들 중 하나 또는 그 이상이 개시된다.
a. 일 예에서, sps_independent_subpics_flag의 존재는 서브픽처들의 수가 1 보다 큰지 여부에 의존한다.
i. 예를 들어, 서브픽처들의 수가 1 보다 큰 경우에만(예를 들어, sps_num_subpics_minus1 > 0 이면), sps_independent_subpics_flag가 시그널링 된다.
ii. 예를 들어, 서브픽처들의 수가 1과 같으면(예를 들어, sps_num_subpics_minus1 == 0 이면), sps_independent_subpics_flag가 생략된다.
b. 또한, sps_independent_subpics_flag가 존재하지 않는 경우, 그것은 (0 또는 1과 같은) 특정한 값과 같은 것으로 추론된다.
c. 일 예에서, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, 그것은 (0 또는 1과 같은) 특정한 값과 같은 것으로 추론된다.
d. 일 예에서, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, 그것은 랩 어라운드 모션 보상이 활성화되는(또는 사용될 수 있는) 특정한 값과 같은 것으로 추론된다.
i. 또한, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, 그것은 수평 랩 어라운드 모션 보상이 활성화되는(또는 사용될 수 있는) 특정한 값과 같은 것으로 추론된다.
e. 일 예에서, subpic_treated_as_pic_flag[ i ]의 상기 추론된 값은 픽처가 오직 하나의 서브픽처로만 구성되는지 여부 및/또는 상기 서브픽처가 상기 픽처와 동일한 폭을 가지는지 여부에 의존할 수 있다.
i. 일 예에서, 만약 상기 서브픽처가 상기 픽처와 동일한 폭을 가진다면, subpic_treated_as_pic_flag[ i ]는 X(예를 들어, X=0)로 추론될 수 있다.
f. 일 예에서, sps_independent_subpics_flag가 존재하지 않는 경우, sps_independent_subpics_flag가 어떤 값으로 추론될지는 다른 신택스 요소(들) 또는 변수(들)에 의존할 수 있다.
i. 예를 들어, 상기 추론된 값은 서브픽처 정보가 존재하는지 여부(예를 들어, subpic_info_present_flag가 0 또는 1과 같음)에 의존할 수 있다.
ii. 예를 들어, subpic_info_present_flag가 0과 같고 sps_independent_subpics_flag가 존재하지 않는 경우, 그것은 (0 또는 1과 같은) 특정한 값과 같은 것으로 추론된다.
iii. 예를 들어, subpic_info_present_flag가 1과 같고 sps_independent_subpics_flag가 존재하지 않는 경우, 그것은 (0 또는 1과 같은) 특정한 값과 같은 것으로 추론된다.
g. 일 예에서, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]가 어떤 값으로 추론될지는 서브픽처 정보(예를 들어, subpic_info_present_flag) 의 존재 및/또는 CLVS 내 서브픽처들의 수(예를 들어, sps_num_subpics_minus1) 및/또는 sps_independent_subpics_flag에 의존할 수 있다.
i. 일 예에서, subpic_info_present_flag가 0과 같고, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]의 값은 (0과 같은) 특정한 값과 같은 것으로 추론된다.
ii. 일 예에서, subpic_info_present_flag가 1과 같고, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]의 값은 (1과 같은) 특정한 값과 같은 것으로 추론된다.
iii. 일 예에서, subpic_info_present_flag가 1과 같고, sps_num_subpics_minus1가 0과 같으며, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]의 값은 (0 또는 1과 같은) 특정 값과 같은 것으로 추론된다.
iv. 일 예에서, subpic_info_present_flag가 1과 같고, sps_num_subpics_minus1가 0보다 크며, sps_independent_subpics_flag가 1과 같고, subpic_treated_as_pic_flag[ i ]가 존재하지 않는 경우, subpic_treated_as_pic_flag[ i ]의 값은 (0 또는 1과 같은) 특정 값과 같은 것으로 추론된다.
7. 인터 예측 프로세스 동안 경계에 대한 패딩 또는 클리핑을 어떻게 실시할 것인지는 경계의 종류, 랩 어라운드 패딩 또는 클리핑의 지시(예를 들어, pps_ref_wraparound_enabled_flag, sps_ref_wraparound_enabled_flag 등) 그리고 서브픽처 경계를 픽처 경계로 취급하는 것의 지시(예를 들어, subpic_treated_as_pic_flag[ i ])의 결합된 점검에 의존할 수 있다.
a. 예를 들어, 만약 경계가 픽처 경계라면, 랩 어라운드 패딩의 지시는 참이며, 랩 어라운드 패딩(또는 랩 어라운드 클리핑)은, 서브픽처 경계를 픽처 경계로 취급하는 것의 지시를 고려하지 않고, 적용될 수 있다.
i. 일 예에서, 경계는 수직 경계여야 한다.
b. 예를 들어, 만약 두 수직 경계들이 모두 픽처 경계들이면, 랩 어라운드 패딩의 지시는 참이며, 서브픽처 경계를 픽처 경계로 취급하는 것의 지시를 고려하지 않고, 랩 어라운드 패딩(또는 랩 어라운드 클리핑)은 적용될 수 있다.
c. 일 예에서, 상기 랩 어라운드 패딩(또는 랩 어라운드 클리핑)은 수평 랩 어라운드 패딩/클리핑을 지시할 수 있다.
8. 일 예에서, 랩 어라운드 패딩 또는 클리핑에 대한 상이한 지시들이 상이한 서브픽처들에 대해 시그널링 될 수 있다.
9. 일 예에서, 랩 어라운드 패딩 또는 클리핑에 대한 상이한 오프셋들이 상이한 서브픽처들에 대해 시그널링 될 수 있다.
10. PH/SH에서, 변수 X는 B 슬라이스가 픽처에서 허용/사용되는지 여부를 지시하는 데에 사용되며, 상기 변수는 다음 방법들 중 하나를 사용하여 도출될 수 있다: a) ( rpl_info_in_ph_flag && num_ref_entries[ 0 ][ RplsIdx[ 0 ] ] > 0 && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 0 ); b) ( rpl_info_in_ph_flag && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 0 ); c) ( rpl_info_in_ph_flag && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 1 ); d) ( rpl_info_in_ph_flag && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 0 ); e) VVC 텍스트에서 NumRefIdxActive (예를 들어, 리스트 1에 대한 NumRefIdxActive가 K(예를 들어, K=0) 보다 큼))에 기반하여; f) 리스트 1에 대해 허용된 참조 픽처들의 수에 기반하여.
1) 또는, 더 나아가, PH에서 시그널링되는 하나 또는 복수의 신택스 요소들의 시그널링 및/또는 시맨틱스 및/또는 추론은 상기 변수에 따라 변경될 수 있다.
i. 일 예에서, 상기 하나 또는 복수의 신택스 요소들은 양 예측 또는 인트라 인터 혼합 코딩과 같은 하나 이상의 예측 시그널 또는 복수의 예측 블록들로부터의 선형/비선형 가중치 동반 예측을 활성화하기 위한 것들이다.
ii. 일 예에서, 상기 하나 또는 복수의 신택스 요소들은
a) ph_collocated_from_l0_flag
b) mvd_l1_zero_flag
c) ph_disable_bdof_flag
d) ph_disable_dmvr_flag
e) num_l1_weights
를 포함할 수 있지만, 이에 제한되지 않는다.
iii. 일 예에서, 상기 변수가 상기 픽처가 하나 또는 그 이상의 B 슬라이스들을 포함할 수 있다고 지시하는 경우에만, 상기 하나 또는 복수의 신택스 요소들이 시그널링 될 수 있다. 그렇지 않은 경우, 상기 시그널링은 생략되고, 상기 신택스 요소의 값들은 추론된다.
a) 또는, 더 나아가, 상기 하나 또는 복수의 신택스 요소들을 시그널링 할지 여부는 글머리 기호 1.1) 및 2.1)에서 (X가 참이거나 1인)과 같은 제1 신택스 요소들에 의존할 수 있다.
b) ph_disable_bdof_flag는 (sps_bdof_pic_present_flag && X )가 참인 경우에만 시그널링 될 수 있다.
c) ph_disable_dmvr_flag는 (sps_dmvr_pic_present_flag && X )가 참인 경우에만 시그널링 될 수 있다.
iv. 일 예에서, X가 0과 같으면(또는 거짓이면), mvd_l1_zero_flag는 시그널링 되지 않고, 그것의 값은 1로 추론된다.
v. 일 예에서, 상기 하나 또는 복수의 신택스 요소들의 추론은 상기 제1 신택스 요소의 값에 의존한다.
a) 일 예에서, 상기 ph_disable_bdof_flag에 대해, 다음이 적용된다.
- 만약 sps_bdof_enabled_flag가 1과 같고 그리고 X가 1과 같으면(또는 참이면) , ph_disable_bdof_flag의 값은 0과 같다고 추론된다.
- 그렇지 않으면(sps_bdof_enabled_flag가 0과 같거나 또는 X가 0과 같으면(또는 거짓이면) , ph_disable_bdof_flag의 값은 1과 같다고 추론된다.
b) 일 예에서, 상기 ph_disable_dmvr_flag에 대해, 다음이 적용된다.
- 만약 sps_dmvr_enabled_flag가 1과 같고 그리고 X가 1과 같으면(또는 참이면) , ph_disable_dmvr_flag의 값은 0과 같다고 추론된다.
- 그렇지 않으면(sps_dmvr_enabled_flag가 0과 같거나 또는 X가 0과 같으면(또는 거짓이면) , ph_disable_dmvr_flag의 값은 1과 같다고 추론된다.
c) 일 예에서, ph_temporal_mvp_enabled_flag 및 rpl_info_in_ph_flag가 모두 1과 같고, X가 0과 같으면(또는 거짓이면), ph_collocated_from_l0_flag의 값은 1과 같은 것으로 추론된다.
d) 일 예에서, X가 0과 같으면(또는 거짓이면), num_l1_weights는 시그널링 되지 않으며, 그것이 값은 0으로 추론되고, 그 결과 참조 픽처 리스트 1에 대한 가중치 예측 파라미터들은 픽처의 PH 또는 SH들에서 시그널링 되지 않는다.
11. 픽처를 타일들/슬라이스들/서브픽처들로 분할할지 여부에 대한 지시의 시그널링(가령, PPS에서 no_pic_partition_flag)은 픽처 내 CTB들의 수를 조건으로 할 수 있다.
1) 일 예에서, 픽처 내 CTU들의 수가 1과 같으면(또는 2 보다 작으면), no_pic_partition_flag는 시그널링 되지 않는다.
2) 또는, 픽처 내 CTU들의 수가 1과 같으면(또는 2 보다 작으면) no_pic_partition_flag가 0과 같아야 한다고 제약된다.
12. 일곱 번째 문제를 해결하기 위한 디블로킹의 신택스 및 시맨틱스와 관련하여, 네 번째 실시예에서와 같이, 아래 접근법들 가운데 하나 또는 그 이상의 개시된다.
a. 디블로킹 필터의 동작이 PPS를 참조하는 슬라이스들에 대해 비활성화(또는 활성화)되는지 여부는 PPS에서 시그널링 되는 디블로킹 신택스(예를 들어, pps_deblocking_filter_disabled_flag) 및 픽처 또는 슬라이스 레벨에서 시그널링 되는 디블로킹 신택스 요소들 모두에 의존한다.
i. 일 예에서, 1과 동일한 pps_deblocking_filter_disabled_flag는, 픽처 또는 슬라이스 레벨에서 달리 지시되지 않는 한 디블로킹 필터의 동작은 PPS를 참조하는 슬라이스들에 대해 비활성화된다고 명시한다.
ii. 일 예에서, 0과 동일한 pps_deblocking_filter_disabled_flag는, 픽처 또는 슬라이스 레벨에서 달리 지시되지 않는 한 디블로킹 필터의 동작은 PPS를 참조하는 슬라이스들에 대해 활성화된다고 명시한다.
b. 존재하지 않는 경우, slice_deblocking_filter_override_flag는 0과 같다고 추론한다.
c. 디블로킹 필터가 PPS에서 비활성화되고 PH/SH에서 기각될 예정인 경우, PH/SH에서 디블로킹 ON/OFF 제어 플래그의 시그널링을 생략한다.
i. 일 예에서, PH에서 디블로킹 ON/OFF 제어 플래그를 시그널링 할지 여부(예를 들어, ph_deblocking_filter_disabled_flag)는 디블로킹이 PPS에서 비활성화되는지 여부(예를 들어, pps_deblocking_filter_disabled_flag의 값이 1과 같은 지 여부) 및/또는 PH에서의 기각 플래그(예를 들어, ph_deblocking_filter_override_flag가 1과 같거나 같지 않음)에 의존할 수 있다.
a) 예를 들어, pps_deblocking_filter_disabled_flag 및 ph_deblocking_filter_override_flag가 1과 같으면, ph_deblocking_filter_disabled_flag의 시그널링은 생략될 수 있다.
b) 또는, deblocking_filter_override_enabled_flag 및 pps_deblocking_filter_disabled_flag 및 ph_deblocking_filter_override_flag가 1과 같으면, ph_deblocking_filter_disabled_flag의 시그널링이 생략될 수 있다.
ii. 또한, ph_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 다음과 같이 추론될 수 있다.
a) deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag 그리고 ph_deblocking_filter_override_flag가 모두 1과 같다면, ph_deblocking_filter_disabled_flag의 값은 0과 같다고 추론된다.
b) 그렇지 않은 경우, ph_deblocking_filter_disabled_flag의 값은 pps_deblocking_filter_disabled_flag와 같다고 추론된다.
iii. 또한, 추가로, ph_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 다음과 같이 추론될 수 있다.
a) 만약 pps_deblocking_filter_disabled_flag 및 ph_deblocking_filter_override_flag가 모두 1과 같다면, ph_deblocking_filter_disabled_flag의 값은 0과 같다고 추론된다.
b) 그렇지 않은 경우, ph_deblocking_filter_disabled_flag의 값은 pps_deblocking_filter_disabled_flag와 같다고 추론된다.
iv. 일 예에서, SH에서 디블로킹 ON/OFF 제어 플래그를 시그널링 할지 여부(예를 들어, slice_deblocking_filter_disabled_flag)는 디블로킹이 PPS에서 비활성화되는지 여부(예를 들어, pps_deblocking_filter_disabled_flag의 값이 1과 같은 지 여부) 및/또는 SH에서의 기각 플래그(예를 들어, slice_deblocking_filter_override_flag가 1과 같거나 같지 않음)에 의존할 수 있다.
a) 일 예에서, deblocking_filter_override_enabled_flag 및 pps_deblocking_filter_disabled_flag 및 slice_deblocking_filter_override_flag가 1과 같으면, slice_deblocking_filter_disabled_flag의 시그널링은 생략될 수 있다.
b) 또는, pps_deblocking_filter_disabled_flag 및 slice_deblocking_filter_override_flag가 1과 같으면, slice_deblocking_filter_disabled_flag의 시그널링은 생략될 수 있다.
v. 또한, slice_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 다음과 같이 추론될 수 있다.
a) 만약 deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag 그리고 slice_deblocking_filter_override_flag가 모두 1과 같다면, slice_deblocking_filter_disabled_flag의 값은 0과 같다고 추론될 수 있다.
b) 그렇지 않은 경우, slice_deblocking_filter_disabled_flag의 값은 pps_deblocking_filter_disabled_flag와 같다고 추론된다.
vi. 추가로, 또는, slice_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 다음과 같이 추론될 수 있다.
a) 만약 pps_deblocking_filter_disabled_flag 및 slice_deblocking_filter_override_flag가 모두 1과 같으면, slice_deblocking_filter_disabled_flag의 값은 0과 같다고 추론된다.
b) 그렇지 않으면, slice_deblocking_filter_disabled_flag의 값은 pps_deblocking_filter_disabled_flag의 값과 같다고 추론된다.
13. sps_ibc_enabled_flag가 1과 같고 블록 크기가 64x64 이상인 경우 cu_skip_flag가 생략될 수 있다고 제안된다.
a. 일 예는 다섯 번째 실시예에 제시된다
6. 예시적인 실시예들 (Example Embodiments)
다음은 상기 섹션 5에서 요약된 발명의 일부 측면들에 대한 일부 예시적인 실시예들로, VVC 사양에 적용될 수 있다. 수정된 텍스트들은 JVET-Q2001-vE에서의 최신 VVC 텍스트에 기반한다. 추가되거나 수정된 대부분의 관련 부분들은 굵은 이탤릭체로 강조되었고 , 삭제된 부분들 일부는 이중 꺽쇠[[ ]]로 표시된다(가령, [[a]]는 글자 "a"의 삭제를 의미한다).
6.1. 실시예들의 첫 번째 세트 (First set of embodiments)
이것은 상기 섹션 5에서 요약된 1번 항목들에 대한 실시예들의 세트이다.
6.1.1. 1.a.i 에 대한 실시예
ph_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다. SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
ph_scaling_list_aps_id가 존재하는 경우, SCALING_AP와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은 ChromaArrayType = = 0 ? 0 : 1와 같아야 한다. ( 또는, 다음과 같이 표현될 수 있다: SCALING_AP와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은, ChromaArrayType이 0과 같으면, 0과 같아야 하고, 그렇지 않으면, 1과 같아야 한다).
...
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과 같아야 한다.]]
6.1.2. 1.a.ii 에 대한 실시예
ph_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다.
SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
SCALING_AP와 같은 aps_params_type을 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은 ChromaArrayType = = 0 ? 0 : 1과 같아야 한다. ( 또는, 다음과 같이 표현될 수 있다 : SCALING_AP와 같은 aps_params_type을 가지는 APS NAL 유닛의 scaling_list_chroma_present_flag의 값은, ChromaArrayType이 0과 같으면, 0과 같아야 하고, 그렇지 않으면, 1과 같아야 한다).
...
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과 같아야 한다.]]
6.1.3. 1.b.i 에 대한 실시예
ph_lmcs_aps_id는 PH와 연관된 슬라이스들의 참조하는 LMCS APS의 adaptation_parameter_set_id를 명시한다.
LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
ph_lmcs_aps_id가 존재하는 경우, LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 하고, 그렇지 않으면 0 보다 커야 한다.
6.1.4. 1.b.ii 에 대한 실시예
ph_lmcs_aps_id는 PH와 연관된 슬라이스들의 참조하는 LMCS APS의 adaptation_parameter_set_id를 명시한다.
LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
LMCS_APS와 같은 aps_params_type를 가지는 APS NAL 유닛의 lmcs_delta_abs_crs의 값은 ChromaArrayType가 0과 같다면 0과 같아야 하고, 그렇지 않으면 0 보다 커야 한다.
6.1.5. 1.c.i 에 대한 실시예
PH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
ph_alf_aps_id_luma[ i ]는 PH와 연관된 슬라이스들의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
ph_alf_aps_id_luma[ i ]가 존재하고 ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다.
...
SH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
slice_alf_aps_id_luma[ i ]는 슬라이스의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다. -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_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
slice_alf_aps_id_luma[ i ]가 존재하고 ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다.
...
ALF 신택스 구조에서 APS 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
1과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링됨을 명시한다. 0과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되지 않음을 명시한다. [[ChromaArrayType이 0과 같을 때, alf_chroma_filter_signal_flag는 0과 같아야 한다.]]
...
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과 같아야 한다.]]
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과 같아야 한다.]]
6.1.6. 1.c.ii 에 대한 실시예
PH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
ph_alf_aps_id_luma[ i ]는 PH와 연관된 슬라이스들의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
ChromaArrayType이 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다.
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과 같은 것으로 추론된다.
...
SH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
slice_alf_aps_id_luma[ i ]는 슬라이스의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.- slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_luma[ i ]가 존재하지 않는 경우, slice_alf_aps_id_luma[ i ]의 값은 ph_alf_aps_id_luma[ i ]의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType이 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag 및 alf_cc_cr_filter_signal_flag의 값들은 0과 같아야 한다.
...
그리고 ALF 데이터 신택스 구조에서의 APS 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
1과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링됨을 명시한다. 0과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되지 않음을 명시한다. [[ChromaArrayType이 0과 같을 때, alf_chroma_filter_signal_flag는 0과 같아야 한다.]]
...
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과 같아야 한다.]]
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과 같아야 한다.]]
6.1.7. 1.c.iii 에 대한 실시예
PH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
ph_alf_aps_id_chroma는 PH와 연관된 슬라이스들의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag는 0과 같아야 한다.
...
ph_cc_alf_cb_aps_id는 PH와 연관된 슬라이스들의 Cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag는 0과 같아야 한다.
...
ph_cc_alf_cr_aps_id는 PH와 연관된 슬라이스들의 Cr 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag는 0과 같아야 한다.
...
SH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_chroma가 존재하지 않는 경우, slice_alf_aps_id_chroma의 값은 ph_alf_aps_id_chroma의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag는 0과 같아야 한다.
...
slice_cc_alf_cb_aps_id는 슬라이스의 cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cb_enabled_flag가 1과 같고 slice_cc_alf_cb_aps_id가 존재하지 않는 경우, slice_cc_alf_cb_aps_id의 값은 ph_cc_alf_cb_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag는 0과 같아야 한다.
...
slice_cc_alf_cr_aps_id는 슬라이스의 cr 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
slice_cc_alf_cr_enabled_flag가 1과 같고 slice_cc_alf_cr_aps_id가 존재하지 않는 경우, slice_cc_alf_cr_aps_id의 값은 ph_cc_alf_cr_aps_id의 값과 같은 것으로 추론된다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
ChromaArrayType가 0과 같은 경우, ALF_APS와 같은 aps_params_type을 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag는 0과 같아야 한다.
...
APS 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
1과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링됨을 명시한다. 0과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되지 않음을 명시한다. [[ChromaArrayType이 0과 같을 때, alf_chroma_filter_signal_flag는 0과 같아야 한다.]]
...
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과 같아야 한다.]]
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과 같아야 한다.]]
...
6.1.8. 1.d.i 에 대한 실시예
ALF 데이터 신택스 구조에서의 APS 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
1과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링됨을 명시한다. 0과 동일한 alf_chroma_filter_signal_flag는 크로마 필터가 시그널링되지 않음을 명시한다. [[ChromaArrayType이 0과 같을 때, alf_chroma_filter_signal_flag는 0과 같아야 한다.]]
...
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과 같아야 한다.]]
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과 같아야 한다.]]
...
6.1.9. 1.d.ii 에 대한 실시예
SCALING LIST 데이터 신택스 구조에서의 APS 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
...
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과 같아야 한다.
...]]
6.1.10. 1.e 및 1.f 에 대한 실시예
ph_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다.
ph_scaling_list_aps_id가 존재하는 경우, 다음이 적용된다.
- SCALING_APS와 같은 aps_params_type 및 ph_scaling_list_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
...
ph_lmcs_aps_id는 PH와 연관된 슬라이스들의 참조하는 LMCS APS의 adaptation_parameter_set_id를 명시한다.
ph_lmcs_aps_id가 존재하는 경우, 다음이 적용된다.
- LMCS_APS와 같은 aps_params_type 및 ph_lmcs_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
...
ph_alf_aps_id_luma[ i ]는 PH와 연관된 슬라이스들의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.
ph_alf_aps_id_luma[ i ]가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
- ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
0과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용되지 않음을 명시한다. 1과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 컬러 컴포넌트에 적용됨을 지시한다. 2와 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cr 컬러 컴포넌트에 적용됨을 지시한다. 3과 같은 ph_alf_chroma_idc는 적응적 루프 필터가 Cb 및 Cr 컬러 컴포넌트들에 적용됨을 지시한다.
ph_alf_chroma_idc가 존재하지 않는 경우, 그것은 0과 같은 것으로 추론된다.
ph_alf_aps_id_chroma는 PH와 연관된 슬라이스들의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ph_alf_aps_id_chroma가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
- ALF_APS와 같은 aps_params_type 및 ph_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
...
ph_cc_alf_cb_aps_id는 PH와 연관된 슬라이스들의 Cb 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ph_cc_alf_cb_aps_id가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
- ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
...
ph_cc_alf_cr_aps_id는 PH와 연관된 슬라이스들의 Cr 컬러 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다.
ph_cc_alf_cr_aps_id가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
- ALF_APS와 같은 aps_params_type 및 ph_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 PH와 연관된 픽처의 TemporalId 이하여야 한다.
...
slice_alf_aps_id_luma[ i ] 는 슬라이스의 루마 성분이 참조하는 i번째 ALF APS의 adaptation_parameter_set_id을 명시한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_luma[i]가 존재하지 않는 경우, slice_alf_aps_id_luma[i]의 값은 ph_alf_aps_id_luma[i]의 값과 동일한 것으로 추론된다.
slice_alf_aps_id_luma[ i ]는 슬라이스의 루마 컴포넌트가 참조하는 i번째 ALF APS의 adaptation_parameter_set_id를 명시한다.-slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_luma[ i ]가 존재하지 않는 경우, slice_alf_aps_id_luma[ i ]의 값은 ph_alf_aps_id_luma[ i ]의 값과 같은 것으로 추론된다.
slice_alf_aps_id_luma[ i ]가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
- ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_luma[ i ]와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_luma_filter_signal_flag의 값은 1과 같아야 한다.
...
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_chroma가 존재하지 않는 경우, slice_alf_aps_id_chroma의 값은 ph_alf_aps_id_chroma의 값과 같은 것으로 추론된다.
slice_alf_aps_id_chroma가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
- ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroam와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_chroma_filter_signal_flag의 값은 1과 같아야 한다.
...
slice_cc_alf_cb_aps_id는 슬라이스의 cb 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다.
slice_cc_alf_cb_enabled_flag가 1과 같고 slice_cc_alf_cb_aps_id가 존재하지 않는 경우, slice_alf_cb_aps_id의 값은 ph_cc_alf_cb_aps_id의 값과 같은 것으로 추론된다.
slice_cc_alf_cb_aps_id가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
-- ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cb_filter_signal_flag의 값은 1과 같아야 한다.
...
slice_cc_alf_cr_aps_id는 슬라이스의 cr 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다. slice_cc_alf_cr_enabled_flag가 1과 같고 slice_cc_alf_cr_aps_id가 존재하지 않는 경우, slice_alf_cr_aps_id의 값은 ph_cc_alf_cr_aps_id의 값과 같은 것으로 추론된다.
slice_cc_alf_cr_aps_id가 존재하는 경우, 다음이 적용된다.
- ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
- ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 alf_cc_cr_filter_signal_flag의 값은 1과 같아야 한다.
...
6.1.11. 1.g 에 대한 실시예
SH 신택스 요소들의 시맨틱스는 다음과 같이 변경된다.
slice_alf_aps_id_chroma는 슬라이스의 크로마 컴포넌트가 참조하는 ALF APS의 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_alf_aps_id_chroma와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
slice_alf_enabled_flag가 1과 같고 slice_alf_aps_id_chroma가 존재하지 않으며, 그리고 ChromaArrayType 가 0과 같지 않은 경우 , slice_alf_aps_id_chroma의 값은 ph_alf_aps_id_chroma의 값과 같은 것으로 추론된다.
...
slice_cc_alf_cb_aps_id는 슬라이스의 Cb 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다.
ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cb_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다. slice_cc_alf_cb_enabled_flag가 1과 같고 slice_cc_alf_cb_aps_id가 존재하지 않고 그리고 ChromaArrayType 가 0과 같지 않은 경우, slice_cc_alf_cb_aps_id의 값은 ph_cc_alf_cb_aps_id의 값과 같은 것으로 추론된다.
...
slice_cc_alf_cr_aps_id는 슬라이스의 Cr 컬러 컴포넌트가 참조하는 adaptation_parameter_set_id를 명시한다. ALF_APS와 같은 aps_params_type 및 slice_cc_alf_cr_aps_id와 같은 adaptation_parameter_set_id를 가지는 APS NAL 유닛의 TemporalId는 코딩된 슬라이스 NAL 유닛의 TemporalId 이하여야 한다.
slice_cc_alf_cr_enabled_flag가 1과 같고 slice_cc_alf_cr_aps_id가 존재하지 않고 그리고 ChromaArrayType 가 0과 같지 않은 경우, slice_cc_alf_cr_aps_id의 값은 ph_cc_alf_cr_aps_id의 값과 같은 것으로 추론된다.
...
6.2. 실시예들의 두 번째 세트 (Second set of embodiments)
이것은 상기 섹션 5에서 요약된 2번 항목들(2.a에서 2.c까지)에 대한 실시예들의 세트이다.
신택스 구조 pic_parameter_set_rbsp( )는 다음과 같이 변경된다
Figure pct00078
...
0과 동일한 deblocking_filter_mode_idc는 디블로킹 필터가 PPS를 참조하는 어떤 슬라이스에도 적용되지 않는다고 명시한다. 1과 동일한 deblocking_filter_mode_idc는 디블로킹 필터가 PPS를 참조하는 모든 슬라이스들에
Figure pct00079
and tC에 대해 0 값을 가지는 디블로킹 파라미터 오프셋들을 사용하여 적용됨을 명시한다. 2와 동일한 deblocking_filter_mode_idc는 디블로킹 필터가 PPS를 참조하는 모든 슬라이스들에
Figure pct00080
and tC에 대해, PPS에서 명시적으로 시그널링되는
Figure pct00081
and tC에 대한 디블로킹 파라미터 오프셋들을 사용하여 적용됨을 명시한다. 3과 동일한 deblocking_filter_mode_idc는 디블로킹 필터가 PPS를 참조하는 모든 슬라이스들에 적용되는지 여부가 PH 또는 슬라이스의 슬라이스 헤더에 존재하는 파라미터들에 의해 제어됨을 명시한다.
[[ 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과 같은 것으로 추론된다. ]]
1과 같은 dbf_info_in_ph_flag는 디블로킹 필터 정보가 PH 신택스 구조에 존재하며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에는 존재하지 않는다고 명시한다. 0과 같은 dbf_info_in_ph_flag는 참조 픽처 리스트 정보가 PH 신택스 구조에 존재하지 않으며, PH 신택스 구조를 포함하지 않는 PPS를 참조하는 슬라이스 헤더들에 존재할 수 있다고 명시한다. [[존재하지 않는 경우, dbf_info_in_ph_flag의 값은 0과 같은 것으로 추론한다.]]
...
그리고 신택스 구조 picture_header_structure( )는 다음과 같이 변경된다.
Figure pct00082
...
1과 같은 ph_deblocking_filter_used_flag는 디블로킹 필터가 현재 픽처 내 슬라이스들에 대해 적용된다고 명시한다. 0과 같은 ph_deblocking_filter_used_flag는 디블로킹 필터가 현재 픽처 내 슬라이스들에 대해 적용되지 않는다고 명시한다. 존재하지 않는 경우, ph_deblocking_filter_used_flag의 값은 (deblocking_filter_mode_idc > 0)와 같다고 추론된다.
1과 같은 ph_deblocking_[[filter]] parameters _override_flag는 디블로킹 파라미터들이 PH에 존재한다고 명시한다. 0과 같은 ph_deblocking_[[filter]] parameters _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와 같은 것으로 추론된다.]]
...
그리고 신택스 구조 slice_header ( )는 다음과 같이 변경된다.
Figure pct00083
...
1과 같은 slice_deblocking_filter_used_flag는 디블로킹 필터가 현재 슬라이스에 대해 적용된다고 명시한다. 0과 같은 slice_deblocking_filter_used_flag는 디블로킹 필터가 현재 슬라이스에 대해 적용되지 않는다고 명시한다. 존재하지 않는 경우, slice_deblocking_filter_used_flag의 값은 ph_deblocking_filter_used_flag와 같은 것으로 추론된다.
1과 같은 slice_deblocking_[[filter]] parameters _override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재한다고 명시한다. 0과 같은 slice_deblocking_[[filter]] parameters _override_flag는 디블로킹 파라미터들이 슬라이스 헤더에 존재하지 않는다고 명시한다. 존재하지 않는 경우, slice_deblocking_filter_override_flag의 값은 [[ph_deblocking_filter_override_flag]] 0 과 같다고 추론된다.
[[1과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 slice_deblocking_filter_disabled_flag는 현재 슬라이스에 디블로킹 필터의 동작이 적용된다고 명시한다. slice_deblocking_filter_disabled_flag가 존재하지 않는 경우, 그것은 ph_deblocking_filter_disabled_flag와 같은 것으로 추론된다.]]
...
그리고 디블로킹 필터 프로세스의 디코딩 프로세서는 다음과 같이 변경된다.
8.8.3 디블로킹 필터 프로세스
8.8.3.1 일반사항
디블로킹 필터링 프로세스는, 다음 유형들의 에지들을 제외하고, 픽처의 모든 코딩 서브블록 에지들 및 변환 블록 에지들에 적용된다.
- 픽처의 경계에 있는 에지들,
- 서브픽처 인덱스 subpicIdx를 가지며 loop_filter_across_subpic_enabled_flag[ SubPicIdx ]가 0과 같은, 서브픽처의 경계들과 일치하는 에지들,
- VirtualBoundariesPresentFlag가 1과 같은 경우, 픽처의 가상 경계들과 일치하는 에지들,
- loop_filter_across_tiles_enabled_flag가 0과 같은 경우 타일 경계들과 일치하는 에지들,
- loop_filter_across_slices_enabled_flag가 0과 같은 경우, 슬라이스 경계들과 일치하는 에지들,
- slice_deblocking_filter_ used [[disabled]]_flag가 [[1]] 0 같은, 슬라이스들의 상단 또는 좌측 경계들과 일치하는 에지들,
- slice_deblocking_filter_ used [[disabled]]_flag가 [[1]] 0 과 같은, 슬라이스들 내의 에지들,
- 루마 성분의 4 X 4 샘플 그리드 경계들에 대응하지 않는 에지들,
- 크로마 성분의 8 X 8 샘플 그리드 경계들에 대응하지 않는 에지들,
- 에지의 양 측면들이 모두 1과 같은 intra_bdpcm_luma_flag를 가지는 루마 성분 내의 에지들,
- 에지의 양 측면들이 모두 1과 같은 intra_bdpcm_chroma_flag를 가지는 크로마 성분 내의 에지들,
- 연관된 변환 유닛의 에지들이 아닌 크로마 서브블록들의 에지들
수직 또는 수평의 에지 종류는 표 42에 명시된 변수 edgeType에 의해 표현된다.
표 42 - edgeType과의 명칭 연관
Figure pct00084
현재 슬라이스의 slice_deblocking_filter_ used [[disabled]]_flag가 [[0]] 1 과 같은 경우, 다음이 적용된다.
- 변수 treeType은 DUAL_TREE_LUMA와 같은 것으로 설정된다.
- 수직 에지들은 변수 treeType, 디블로킹에 앞서 복원된 픽처, 즉, 어레이 recPictureL 그리고 EDGE_VER와 같은 것으로 설정된 변수 edgeType을 입력들로하고, 디블로킹 후 수정된 복원 픽처, 즉 어레이 recPictureL를 출력으로 하여, 8.8.3.2절에서 명시된 바와 같이, 한 방향에 대한 디블로킹 필터 프로세스를 불러내어 필터링된다.
- 수평 에지는 변수 treeType, 디블로킹 후 수정된 복원 픽처, 즉, 어레이 recPictureL 그리고 EDGE_HOR와 같은 것으로 설정된 변수 edgeType을 입력들로하고, 디블로킹 후 수정된 복원 픽처, 즉 어레이 recPictureL를 출력으로 하여, 8.8.3.2절에서 명시된 바와 같이, 한 방향에 대한 디블로킹 필터 프로세스를 불러내어 필터링된다.
- ChromaArrayType이 0과 같지 않은 경우, 다음이 적용된다.
- 변수 treeType은 DUAL_TREE_CHROMA와 같은 것으로 설정된다.
- 수직 에지들은 변수 treeType, 디블로킹에 앞서 복원된 픽처, 즉, 어레이들 recPicturecb 및 recPicturecr그리고 EDGE_VER와 같은 것으로 설정된 변수 edgeType을 입력들로하고, 디블로킹 후 수정된 복원 픽처, 즉 어레이들 recPicturecb 및 recPicturecr을 출력으로 하여, 8.8.3.2절에서 명시된 바와 같이, 한 방향에 대한 디블로킹 필터 프로세스를 불러내어 필터링된다.
- 수평 에지들은 변수 treeType, 디블로킹 후 수정된 복원 픽처, 즉, 어레이들 recPicturecb 및 recPicturecr그리고 EDGE_HOR와 같은 것으로 설정된 변수 edgeType을 입력들로하고, 디블로킹 후 수정된 복원 픽처, 즉 어레이들 recPicturecb 및 recPicturecr을 출력으로 하여, 8.8.3.2절에서 명시된 바와 같이, 한 방향에 대한 디블로킹 필터 프로세스를 불러내어 필터링된다.
6.3. 실시예들의 세번째 세트 (Third set of embodiments)
이탤릭체 굵은 글씨로 표시된 수정들은 JVET-Q2001-vE에 기반한다.
i = 0..numQpTables - 1 에 대해, i번째 크로마 QP 매핑 테이블 ChromaQpTable[ i ]은 다음과 같이 도출된다.
Figure pct00085
same_qp_table_for_chroma가 1과 같은 경우, ChromaQpTable[ 1 ][ k ] 및 ChromaQpTable[ 2 ][ k ]는 ChromaQpTable[ 0 ][ k ]와 같게 설정되며, k의 범위는 -QpBdOffset 내지 63(경계값 포함)이다.
비트스트림 부합성의 요건으로, qpInVal[ i ][ j ] 및 qpOutVal[ i ][ j ]의 값들이 0 내지 numQpTables - 1의 범위(경계값 포함)에서의 i, 0 내지 sps_num_points_in_qp_table_minus1[ i ] + 1의 범위(경계값 포함)에서의 j에 대해, -QpBdOffset 내지 63의 범위(경계값 포함)에 있어야 한다.
6.4. 실시예들의 네번째 세트 (Foutth set of embodiments)
PPS 시맨틱스 (JVET-R0159-v2에서의 텍스트 기반, SPS flag 제외):
...
1과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 존재를 명시한다. 0과 같은 deblocking_filter_control_present_flag는 디블로킹 필터 제어 신택스 요소들의 PPS내 부재를, 그리고 디블로킹 필터가,
Figure pct00086
and t C 에 대한 0 값의 디블로킹 파라미터 오프세트들을 사용하여, 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 및 ph_deblockig_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag 및 ph_deblockig_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. 존재하지 않는 경우, pps_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.
또는 1과 같은 pps_deblocking_filter_disabled_flag는, deblocking_filter_override_enabled_flag가 0과 같은 경우, PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 pps_deblocking_filter_disabled_flag는 deblocking_filter_override_enabled_flag가 0과 같은 경우, PPS를 참조하는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다. 존재하지 않는 경우, pps_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다. ]]
1과 같은 pps_deblocking_filter_disabled_flag는, 픽처 또는 슬라이스 레벨에서 달리 지시되지 않는 한, PPS를 참조하는 슬라이스들에 대해 디블로킹 필터의 동작이 비활성화된다고 명시한다. 0과 같은 pps_deblocking_filter_disabled_flag는, 픽처 또는 슬라이스 레벨에서 달리 지시되지 않는 한, PPS를 참조하는 슬라이스들에 대해 디블로킹 필터의 동작이 활성화된다고 명시한다.
...
신택스 구조 picture_header_structure( )는 아래와 같이 변경된다.
Figure pct00087
...
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는, [[ slice_deblocking_filter_disabled_flag가 존재하지 않는 [참고: ph_deblocking_filter_disabled_flag 가 존재하는 경우, slice_deblocking_filter_disabled_flag는 픽처의 어떤 슬라이스의 SH에도 존재하지 않을 것이므로, 따라서 제거.] ]] PH에 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용되지 않는다고 명시한다. 0과 같은 ph_deblocking_filter_disabled_flag는, [[ slice_deblocking_filter_disabled_flag가 존재하지 않는 [참고: ph_deblocking_filter_disabled_flag 가 존재하는 경우, slice_deblocking_filter_disabled_flag는 픽처의 어떤 슬라이스의 SH에도 존재하지 않을 것이므로, 따라서 제거.] ]] PH와 연관되는 슬라이스들에 디블로킹 필터의 동작이 적용된다고 명시한다.
ph_deblocking_filter_disabled_flag가 존재하지 않으면, 그것은 다음과 같이 추론된다.
- deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag 및 ph_deblocking_filter_override_flag 가 모두 1과 같으면 ph_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다. [대안으로,이 설정은 다음과 같이 표현 될 수 있다 : pps_deblocking_filter_disabled_flag와 ph_deblocking_filter_override_flag가 모두 1과 같으면 ph_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.]
- 그렇지 않으면 ph_deblocking_filter_disabled_flag의 값이 pps_deblocking_filter_disabled_flag와 같은 것으로 추론된다.
...
그리고 slice_header() 신택스 구조는 다음과 같이 변경된다:
Figure pct00088
1과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터가 슬라이스 헤더에 있음을 명시한다. 0과 같은 slice_deblocking_filter_override_flag는 디블로킹 파라미터가 슬라이스 헤더에 존재하지 않음을 명시한다. 존재하지 않으면, slice_deblocking_filter_override_flag의 값은 [[ph_deblocking_filter_override_flag]] 0 과 같은 것으로 추론된다.
1과 같은 slice_deblocking_filter_disabled_flag는 디블로킹 파라미터의 작동이 현재 슬라이스에서 적용되지 않음을 명시한다. 0과 같은 slice_deblocking_filter_disabled_flag는 디블로킹 파라미터의 작동이 현재 슬라이스에서 적용됨을 명시한다. 존재하지 않으면, slice_deblocking_filter_disabled_flag는 다음과 같이 추론된다.
deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag 그리고 ph_deblocking_filter_override_flag가 모두 1과 같다면, ph_deblocking_filter_disabled_flag의 값은 0과 같다고 추론된다. [또는, 이 문장은 다음과 같이 표현될 수도 있다. pps_deblocking_filter_disabled_flag 및 slice_deblocking_filter_override_flag가 모두 1과 같다면, slice_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.]
그 외의 경우, slice_deblocking_filter_disabled_flag의 값은 ph_deblocking_filter_disabled_flag와 같은 것으로 추론된다 .
6.5. 실시예들의 다섯번째 세트 (Fifth set of embodiments)
이탤릭체 굵은 글씨로 강조되어 표시되는 수정사항들은 JVET-P2001-vE에 기반한다
Figure pct00089
도 1은 여기서 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(1900)을 보여주는 블록도이다. 다양한 구현들은 상기 시스템(1900)의 일부 또는 모든 구성품들을 포함할 수 있다. 상기 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(1902)을 포함할 수 있다. 상기 비디오 콘텐츠는 가공되지 않거나 압축되지 않은 포맷, 예를 들어, 8 또는 10 비트 다중 성분 픽셀 값들로 수신되거나 압축되거나 인코딩된 포맷으로 수신될 수 있다. 상기 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크(Passive Optical Network: PON) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스와 같은 무선 인터페이스들을 포함한다.
상기 시스템(1900)은 현재 문서에서 기술되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(1904)을 포함할 수 있다. 상기 코딩 구성요소(1904)는 상기 코딩 구성요소(1904)의 상기 입력(1902)로부터 상기 출력까지의 비디오의 평균 비트레이트를 줄여 상기 비디오의 코딩된 표현을 산출할 수 있다. 따라서 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술들이라 불린다. 상기 코딩 구성요소(1904)의 출력은, 상기 구성요소(1906)에 의해 나타난 대로, 연결된 통신을 통해 저장 또는 송신될 수 있다. 상기 입력(1902)에서 수신된 상기 비디오의 상기 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(1910)에 보내지는 디스플레이가능한 비디오 또는 픽셀 값들을 생성하기 위해 상기 구성요소(1908)에 의해 사용될 수 있다. 사용자가 볼 수 있는 비디오를 상기 비트스트림 표현으로부터 생성시키는 절차는 종종 비디오 압축해제라 불린다. 더 나아가서, 특정 비디오 처리 작업들이 "코딩" 작업 또는 툴로 불리는 관계로, 상기 코딩 툴 또는 작업들이 인코더에서 사용되고 상응하는 디코딩 툴 또는 작업들은 코딩의 결과를 반전시키는 것들로써 디코더에서 실행된다는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(Universal Serial Bus: USB) 또는 고화질 멀티미디어 인터페이스(High Definition Multimedia Interface: HDMI) 또는 디스플레이 포트 등을 포함할 수 있다. 저장 인터페이스의 예들은 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에 설명된 기술들은 휴대폰, 노트북, 스마트폰, 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 실행할 수 있는 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 2는 비디오 처리 장치(3600)의 블록도이다. 상기 장치(3600)는 여기서 기술된 하나 또는 그 이상의 방법들을 실행하는 데에 사용될 수 있다. 상기 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT 수신기 등에서 구현될 수 있다. 상기 장치(3600)는 하나 또는 그 이상의 프로세서들(3602), 하나 또는 그 이상의 메모리들(3604) 그리고 비디오 처리 하드웨어(3606)을 포함할 수 있다. 상기 프로세서(들)(3602)은 본 문서에 기술된 하나 또는 그 이상의 방법들을 실행하기 위해 구성될 수 있다. 상기 메모리(메모리들)(3604)은 여기서 기술된 방법들 및 기술들을 위해 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 상기 비디오 처리 하드웨어(3606)는 본 문서에 기술된 몇몇 기술들을 하드웨어 회로에서 구현하는 데에 사용될 수 있다.
도 4는 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시한 블록도이다.
도 4에서 나타난 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(110) 및 대상 장치(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성할 수 있으며, 비디오 인코딩 장치로 지칭될 수 있다. 대상 장치(120)은 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있으며, 비디오 디코딩 장치로 지칭될 수 있다.
소스 장치(110)은 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 장치, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하는 인터페이스, 및/혹은 비디오 데이터 생성을 위한 컴퓨터 그래픽스 시스템, 혹은 이러한 소스들의 조합 등과 같은 소스를 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비트스트림을 생성하기 위해 비디오 소스(112)로부터 비디오 데이터를 인코딩한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 관련 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 관련 데이터는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 다른 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/역변조기 (모뎀) 및/혹은 전송기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 직접 대상 장치(120)에 전송될 수 있다. 인코딩된 비디오 데이터는 또한 대상 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수 있다.
대상 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/혹은 모뎀을 포함할 수 있다. I/O 인터페이스(126)은 소스 장치(110) 혹은 저장 매체/서버 (130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 사용자에게 디코딩된 비디오 데이터를 디스플레이할 수 있다. 디스플레이 장치(122)는 대상 장치(120)와 통합되거나 외부 디스플레이 장치와 인터페이스하도록 구성된 대상 장치(120)의 외부에 존재할 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(High Efficiency Video Coding) 표준, VVC(Versatile Video Coding) 표준 및 다른 현재 및/혹은 미래의 표준들과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 5는 도 4의 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 일부 혹은 모든 기술을 수행하도록 구성될 수 있다. 도 5에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에서 공유될 수 있다. 일부 실시예에서, 프로세서는 본 개시에서 설명된 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
게다가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도5의 예에서는 별도로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 디코더의 디코딩 처리를 위한 모션 정보의 풀 세트를 출력할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오에 대한 모션 정보의 풀 세트를 출력하지 않을 수 있다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는 현재 비디오 블록과 연관된 신택스 구조에서 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 지시되는 비디오 블록의 모션 벡터 및 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측 비디오 블록(들)을 차감하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 동작을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 연관된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 하나 또는 그 이상의 양자화 파라미터(QP: quantization parameter) 값들에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(212)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측 비디오 블록들에 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 동작이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 동작들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 6은 도 4에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다.
비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 6의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 6의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200)(도 5)와 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 움직임 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 인코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 수신된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 일부 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되었는지를 지지하는 모드들, 각각의 인트라 인코딩된 블록에 대한 하나 또는 그 상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
인트라 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 인트라 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다. 역변환부(305)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합계하여 디코딩된 블록들을 형성할 수 있다. 요망되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상을 위한 참조 블록들을 제공하고 디스플레이 장치 상에 제시하기 위해 디코딩된 비디오를 또한 산출한다.
다음으로, 일부 실시예들에 의해 선호되는 예들의 리스트가 제공된다.
첫 번째 세트의 절들은 이전 섹션에서 논의된 기술들의 예시적 실시예들을 보여준다. 아래 절들은 이전 섹션(예를 들어, 항목 1)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리 방법으로서(예를 들어, 도 3에 도시된 방법(3000), 하나 또는 그 이상의 크로마 성분들을 가지며, 하나 또는 그 이상의 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 포맷 규칙을 따르며, 상기 포맷 규칙은 크로마 어레이 타입 필드가 상기 변환 동안 사용되는 크로마의 변환 특성에 관한 제약조건을 제어하는, 비디오 처리 방법.
2. 제1절(clause)에 있어서, 상기 변환 특성은 상기 하나 또는 그 이상의 크로마 성분들에 대한 하나 또는 그 이상의 스케일링 리스트들의 존재를 지시하는 필드에 대한 제약조건을 포함하는, 비디오 처리 방법.
3. 제1절에 있어서, 상기 변환 특성은 루마 매핑 및 크로마 스케일링을 위해 사용되는 코드 워드를 지시하는 필드의 값에 대한 제약조건을 포함하는, 비디오 처리 방법.
4. 제1절에 있어서, 상기 변환 특성은 상기 변환 동안 사용되는 적응 루프 필터에 대한 적응 파라미터 세트를 기술하는 신택스 요소들의 값들에 대한 제약조건을 포함하는, 비디오 처리 방법.
5. 제1절에 있어서, 상기 포맷 규칙은 4:0:0 포맷 또는 별도의 컬러 코딩 포맷을 시그널링하는 상기 크로마 어레이 타입 필드에 대해 적응 파라미터 세트의 하나 또는 그 이상의 엔트리들의 동일한 시맨틱스를 사용할 것을 명시하는, 비디오 처리 방법.
6. 제5절에 있어서, 상기 하나 또는 그 이상의 엔트리들은, 적응 루프 필터 파라미터 또는 스케일링 리스트 파라미터 또는 루마 매핑 및 크로마 스케일링 파라미터(luma mapping with chroma scaling parameter)를 포함하는, 비디오 처리 방법.
7. 제5 내지 제6절에 있어서, 상기 포맷 규칙은, 상기 적응 파라미터 세트의 상기 하나 또는 그 이상의 엔트리들에 대한 제약조건이 상기 적응 파라미터 세트의 식별자가 상기 비트스트림에 포함되는지 여부에 의존한다고 더 명시하는, 비디오 처리 방법.
아래 절들은 이전 섹션(예를 들어, 항목 2)에서 논의된 기술들의 예시적 실시예들을 보여준다.
8. 비디오 처리 방법으로서, 하나 또는 그 이상의 비디오 영역들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 변환 동안 비디오 영역에 대한 디블로킹 필터의 적용 가능성을 지시하는 상기 비디오 영역에 대한 디블로킹 모드 지시자를 포함할 것을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
9. 제8절에 있어서, 상기 디블로킹 모드 지시자는 N 비트 필드이며, 이때 N은 1 보다 큰 정수인, 비디오 처리 방법.
10. 제8절 내지 제9절에 있어서, 상기 비디오 영역에 대한 상기 디블로킹 모드 지시자는 픽처 파라미터 세트에 포함되는, 비디오 처리 방법.
11. 제8절에 있어서, 상기 디블로킹 모드 지시자는 상기 디블로킹 필터의 상기 비디오 영역에 대한 적용가능성을 지시하는 상기 비디오 영역의 헤더에 포함되는 플래그에 해당하는, 비디오 처리 방법.
12. 제8절 내지 제11절에 있어서, 상기 포맷 규칙은, 상기 디블로킹 모드 지시자에서 시그널링되는 디블로킹 필터 파라미터들이 디폴트 파라미터들을 기각할지(override) 여부를 시그널링하는 플래그를 명시하는, 비디오 처리 방법.
13. 제8절 내지 제12절 중 어느 것에 있어서, 상기 비디오 영역은 비디오 픽처 또는 비디오 슬라이스에 해당하는, 비디오 처리 방법.
아래 절들은 이전 섹션(예를 들어, 항목 3)에서 논의된 기술들의 예시적 실시예들을 보여준다.
14. 비디오 처리 방법으로서, 하나 또는 그 이상의 비디오 슬라이스들 및/또는 하나 또는 그 이상의 비디오 서브픽처들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 픽처 분할이 비디오 픽처에 대해 비활성화되는 경우 상기 비디오 픽처에 대해 서브픽처 모드별 단일 슬라이스가 활성화되는 것으로 간주되는지 여부를 지시하는 플래그를 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
아래 절들은 이전 섹션(예를 들어, 항목 4)에서 논의된 기술들의 예시적 실시예들을 보여준다.
15. 비디오 처리 방법으로서, 하나 또는 그 이상의 비디오 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은 픽처 또는 슬라이스 레벨 크로마 양자화 파라미터 오프셋이 픽처 헤더 또는 슬라이스 헤더에서 시그널링됨을 명시하는 포맷 규칙을 따르는, 비디오 처리 방법.
16. 제15절에 있어서, 상기 포맷 규칙은 슬라이스 레벨 크로마 양자화 파라미터 오프세들을 상기 슬라이스 헤더에 포함할 것을 명시하는, 비디오 처리 방법.
아래 절들은 이전 섹션(예를 들어, 항목 5)에서 논의된 기술들의 예시적 실시예들을 보여준다.
17. 비디오 처리 방법으로서, 하나 또는 그 이상의 비디오 슬라이스들을 포함하는 하나 또는 그 이상의 비디오 픽처들을 포함하는 비디오와 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하며, 이때 상기 코딩된 표현은, 상기 비디오의 비디오 블록의 변환에 대해 적용가능한 크로마 양자화 파라미터(QP: quantization parameter) 테이블이 (delta_qp_in_val_minus1[ i ][ j ] + 1) 및 delta_qp_diff_val[ i ][ j ] 간의 XOR 연산으로 유도된다고 명시하는 포맷 규칙을 따르며, 이때 delta_qp_in_val_minus1[i][j]는 i번째 크로마 매핑 테이블의 j번째 피벗 포인트의 입력 좌표를 유도하는 데에 사용되는 델타 값을 명시하고, delta_qp_diff_val[ i ][ j ]는 i번째 크로마 QP 매핑 테이블의 j번째 피벗 포인트의 출력 좌표를 유도하는 데에 사용되는 델타 값을 명시하며, 이때 i 및 j는 정수들인, 비디오 처리 방법.
18. 제1절 내지 제17절에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
19. 제1절 내지 제17절 중 어느 것에 있어서, 상기 변환은 상기 코딩된 표현을 디코딩하여 상기 비디오의 픽셀 값들을 생성하는 단계를 포함하는, 비디오 처리 방법.
20. 제1절 내지 제19절 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
21. 제1절 내지 제19절 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
22. 컴퓨터 코드를 저장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행 시, 상기 프로세서로 하여금 제1절 내지 제19절 중 어느 것에서의 방법을 실시하도록 하는, 컴퓨터 프로그램 제품.
23. 본 문서에 기술된, 방법, 장치 또는 시스템.
두 번째 세트의 절들은 이전 섹션(예를 들어, 1.h)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 데이터를 처리하는 방법(예를 들어, 도 7에 도시된 것과 같은 방법(700))에 있어서, 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은, 제2 필드에 기반하는 적응 파라미터 세트 내의 제1 필드의 값에 대한 제약조건이, 픽처 또는 슬라이스가 상기 적응 파라미터 세트를 참조하는 경우 픽처 헤더 또는 슬라이스 헤더에 포함되는 정보를 사용하여 유도된다고 명시하는, 비디오 데이터 처리 방법.
2. 제1절에 있어서, 상기 제2 필드는 상기 비디오의 크로마 포맷 식별자를 지시하는, 방법.
3. 제1절 또는 제2절에 있어서, 상기 제2 필드는 루마 샘플링에 관련된 크로마 샘플링을 지시하는, 방법.
4. 제1절에 있어서, 상기 제2 필드는 상기 비디오 내 크로마 성분의 존재를 지시하는, 방법.
5. 제1절에 있어서, 상기 포맷 규칙은, 상기 적응 파라미터 세트가 상기 픽처 헤더 또는 상기 슬라이스 헤더에 포함되는 인덱스에 의해 결정된다고 더 명시하는, 방법.
6. 제1절에 있어서, 상기 제2 필드는 시퀀스 파라미터 세트에 포함된 신택스 요소인, 방법.
7. 제1절에 있어서, 상기 제2 필드는 시퀀스 파라미터 세트에 포함된 정보에 기반하는, 방법.
8. 제7절에 있어서, 상기 시퀀스 파라미터 세트는, 상기 픽처 헤더 또는 상기 슬라이스 헤더에 포함되는 다른 지시에 의해 더 결정되는 픽처 파라미터 세트에 포함되는 지시에 의해 결정되는, 방법.
9. 제1절에 있어서, 상기 값은 상기 적응 파라미터 세트 및 상기 헤더 또는 상기 슬라이스 헤더 중 적어도 하나를 파싱한 후에 확인되는, 방법.
10. 제1절에 있어서, 상기 제1 필드는 크로마 관련 신택스 요소들의 존재를 명시하는 크로마 존재 플래그에 해당하는, 방법.
11. 제1절에 있어서, 상기 포맷 규칙은, 크로마 관련 신택스 요소들이 적응 파라미터 세트 신택스 구조에 포함된다고 명시하는 신택스 요소를 명시하는, 방법.
12. 제1절에 있어서, 상기 제1 필드는, 적응 파라미터 세트(APS: adaptation parameter set) 네트워크 추상층(NAL: network abstraction layer) 유닛이 크로마 관련 신택스 요소들을 포함하는지 여부를 지시하는 크로마 존재 플래그에 해당하는, 방법.
13. 제1절에 있어서, 상기 포맷 규칙은 상기 제1 필드의 상기 값이 상기 제2 필드의 값에 기반하여 결정된다고 더 명시하는, 방법.
14. 제13절에 있어서, 상기 크로마 성분이 상기 비디오에 포함되지 않는다고 지시하는 상기 제2 필드의 상기 값에 대응하여, 상기 제1 필드의 상기 값은 상기 APS NAL 유닛이 크로마 관련 신택스 요소들을 포함하지 않는다고 지시하는, 방법.
15. 제13절에 있어서, 상기 크로마 성분이 상기 비디오에 포함된다고 지시하는 상기 제2 필드의 상기 값에 대응하여, 상기 제1 필드의 상기 값은 상기 APS NAL 유닛이 크로마 관련 신택스 요소들을 포함한다고 지시하는, 방법.
16. 제1절에 있어서, 상기 포맷 규칙은 상기 제1 필드의 상기 값이 상기 픽처 헤더 또는 상기 슬라이스 헤더 내 APS 식별자에 의존한다고 더 명시하는, 방법.
17. 제16절에 있어서, 상기 포맷 규칙은, 상기 제2 필드가 특정한 값을 가지는 경우, 상기 픽처 헤더 또는 상기 슬라이스 헤더에 포함되는 정보와 동일한 상기 APS 식별자 및 적응 루프 필터(ALF: adaptive loop filter)를 지시하는 APS 파라미터 타입을 가지는 APS NAL 유닛의 상기 제1 필드의 상기 값에 대한 요건을 설정하도록 명시하는, 방법.
18. 제17절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값과 같은 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
19. 제18절에 있어서, 상기 제1 특정 값 및 상기 제2 특정 값은 0과 같은, 방법.
20. 제17절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값 보다 큰 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
21. 제20절에 있어서, 상기 제1 특정 값은 1과 같고, 상기 제2 특정 값은 0과 같은, 방법.
22. 제22절에 있어서, 상기 포맷 규칙은, 상기 제2 필드가 특정한 값을 가지는 경우, 상기 픽처 헤더 또는 상기 슬라이스 헤더에 포함되는 정보와 동일한 상기 APS 식별자 및 SCALING 타입을 지시하는 APS 파라미터 타입을 가지는 APS NAL 유닛의 상기 제1 필드의 상기 값에 대한 요건을 설정하도록 명시하는, 방법.
23. 제22절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값과 같은 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
24. 제23절에 있어서, 상기 제1 특정 값 및 상기 제2 특정 값은 0과 같은, 방법.
25. 제22절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값 보다 큰 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
26. 제25절에 있어서, 상기 제1 특정 값은 1과 같고, 상기 제2 특정 값은 0과 같은, 방법.
27. 제16절에 있어서, 상기 포맷 규칙은, 상기 제2 필드가 특정한 값을 가지는 경우, 상기 픽처 헤더 또는 상기 슬라이스 헤더에 포함되는 정보와 동일한 상기 APS 식별자 및 LMCS(luma mapping with chroma scaling 루마 매핑 및 크로마 스케일링) 타입을 지시하는 APS 파라미터 타입을 가지는 APS NAL 유닛의 상기 제1 필드의 상기 값에 대한 요건을 설정하도록 명시하는, 방법.
28. 제1절에 있어서, 상기 포맷 규칙은, 상기 제1 필드의 상기 값이 상기 픽처 헤더 또는 상기 슬라이스 헤더 내 상기 적응 파라미터 세트의 식별자의 존재로부터 독립적임을 더 명시하는, 방법.
29. 제28절에 있어서, 상기 포맷 규칙은, 상기 제2 필드가 특정한 값을 가지는 경우, SCALING 타입 및/또는 ALF(적응 루프 필터링) 타입 및/또는 LMCS 타입을 지시하는 APS 파라미터 타입을 가지는 APS NAL 유닛의 상기 제1 필드의 상기 값에 대한 요건을 설정하도록 명시하는, 방법.
30. 제29절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값과 같은 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
31. 제29절에 있어서, 상기 제1 특정 값 및 상기 제2 특정 값은 0과 같은, 방법.
32. 제29절에 있어서, 상기 포맷 규칙은, 상기 제2 필드의 상기 값이 제2 특정 값 보다 큰 경우, 상기 제1 필드의 상기 값이 제1 특정 값과 같도록 상기 요건을 설정할 것을 명시하는, 방법.
33. 제32절에 있어서, 상기 제3 특정 값은 1과 같고, 상기 제2 특정 값은 0과 같은, 방법.
34. 제1절 내지 제33절 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 방법.
35. 제1절 내지 제33절 중 어느 것에 있어서, 상기 변환은 상기 비트스트림으로부터 상기 비디오를 디코딩하는 단계를 포함하는, 방법.
36. 제1절 내지 제33절에 있어서, 상기 변환은 상기 비트스트림을 상기 비디오로부터 생성시키는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능한 기록 매체에 저장하는 단계를 더 포함하는, 방법.
37. 제1절 내지 제36절 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
38. 비디오의 비트스트림을 저장하는 방법으로, 제1절 내지 제36절 중 어느 하나에서의 방법을 포함하고, 비일시적 컴퓨터 판독가능 기록 매체에 상기 비트스트림을 저장하는 단계를 포함하는, 방법.
39. 프로그램 코드를 저장하는 컴퓨터 판독 가능 매체로서, 실행 시, 프로세서로 하여금 제1절 내지 제36절 중 하나 또는 그 이상에의 방법을 실시하도록 하는, 매체.
40. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능 매체.
41. 비트스트림 표현을 저장하기 위한 비디오 처리 장치로서, 상기 비디오 처리 장치는 제1절 내지 제36절 중 어느 하나 또는 그 이상에서의 방법을 실시하도록 구성되는, 비디오 처리 장치.
세 번째 세트의 절들은 이전 섹션(예를 들어, 항목 11 내지 13)에서 논의된 기술들의 예시적 실시예들을 보여준다.
1. 비디오 처리 방법(예를 들어, 도 8A에 도시된 것과 같은 방법(800))으로서, 비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되, 상기 포맷 규칙은, 상기 비디오 영역에 대한 디블로킹 필터의 적용가능성이 i) 픽처 파라미터 세트 레벨 및 ii) 픽처 레벨 또는 슬라이스 레벨에서의 신택스 요소들에 기반하여 판단된다고 명시하는, 비디오 처리 방법.
2. 제1절에 있어서, 상기 비디오 영역은 슬라이스인, 비디오 처리 방법.
3. 제1절에 있어서, 상기 포맷 규칙은, 픽처 파라미터 세트를 참조하는 슬라이스들에 대한 상기 디블로킹 필터의 상기 적용가능성이 픽처 파라미터 세트 내 제1 신택스 요소 및 상기 픽처 레벨 또는 상기 슬라이스 레벨에서의 제2 신택스 요소에 기반한다고 명시하는, 비디오 처리 방법.
4. 제3절에 있어서, 상기 제1 신택스 요소의 값이, 상기 픽처 레벨 또는 상기 슬라이스 레벨에서 달리 지시되지 않는 한, 상기 디블로킹 필터가 픽처 파라미터 세트를 참조하는 상기 슬라이스들에 대해 적용되는지 여부를 명시한다고, 상기 포맷 규칙이 명시하는, 비디오 처리 방법.
5. 제4절에 있어서, 0과 같은 상기 제1 신택스 요소의 상기 값은, 픽처 헤더 또는 슬라이스 헤더에 존재하는 정보에 의해 픽처 또는 슬라이스에 대해 기각되지(overridden) 않는 한 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 명시하는, 비디오 처리 방법.
6. 제4절에 있어서, 1과 같은 상기 제1 신택스 요소의 상기 값은, 픽처 헤더 또는 슬라이스 헤더에 존재하는 정보에 의해 픽처 또는 슬라이스에 대해 기각되지(overridden) 않는 한 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 비활성화됨을 명시하는, 비디오 처리 방법.
7. 제1절에 있어서, 상기 포맷 규칙은, 슬라이스 헤더 내 디블로킹 파라미터들의 존재를 지시하는 제3 신택스 요소가 존재하는 않는 경우, 상기 제3 신택스 요소가 특정 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
8. 제1절에 있어서, 상기 포맷 규칙은, 상기 픽처 레벨 또는 상기 슬라이스 레벨에서 상기 디블로킹 필터의 적용 가능성을 지시하는 제2 신택스 요소를 포함할지 여부가 (1) 상기 디블로킹 필터가 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 디블로킹 동작(behavior)이 기각 허용 가능성을 지시하는 픽처 헤더 또는 슬라이스 헤더 내 디블록킹 파라미터들의 존재에 의존한다고 명시하는, 비디오 처리 방법.
9. 제8절에 있어서, 상기 포맷 규칙은, 상기 제2 신택스 요소를 상기 픽처 헤더에 포함할지 여부가 (1) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 상기 디블로킹 파라미터들의 상기 픽처 헤더 내 존재를 지시하는 디블로킹 기각(override) 플래그의 값에 의존한다고 명시하는, 비디오 처리 방법.
10. 제9절에 있어서, 상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그 및 ii) 픽처 헤더 레벨에서의 상기 디블로킹 기각 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 픽처 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
11. 제9절에 있어서, 상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그, ii) 픽처 헤더 레벨에서의 상기 디블로킹 기각 플래그, 그리고 iii) 상기 디블로킹 기각 플래그의 존재를 지시하는 존재 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 픽처 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
12. 제9절에 있어서, 상기 포맷 규칙은, 상기 디블로킹 필터의 적용가능성을 지시하는 상기 제2 신택스 요소가 존재하지 않는 경우, 상기 제2 신택스 요소의 값을 추론할 것을 명시하는, 비디오 처리 방법.
13. 제12절에 있어서, 상기 포맷 규칙은, i) 디블로킹 동작의 기각(overriding)이 상기 PPS를 참조하는 슬라이스들에 대해 허용됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 상기 디블로킹 기각 플래그, ii) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화됨을 지시하는 상기 PPS 레벨에서의 디블로킹 필터 플래그, 그리고 iii) 상기 디블로킹 동작이 상기 픽처 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
14. 제12절에 있어서, 상기 포맷 규칙은, i) 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 디블로킹 필터 플래그, 그리고 ii) 디블로킹 동작이 상기 픽처 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
15. 제8절에 있어서, 상기 포맷 규칙은, 상기 제2 신택스 요소를 상기 슬라이스 헤더에 포함할지 여부가 (1) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 상기 디블로킹 파라미터들의 상기 슬라이스 헤더 내 존재를 지시하는 디블로킹 기각(override) 플래그의 값에 의존한다고 명시하는, 비디오 처리 방법.
16. 제15절에 있어서, 상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그, ii) 슬라이스 헤더 레벨에서의 상기 디블로킹 기각 플래그, 그리고 iii) 상기 디블로킹 기각 플래그의 존재를 지시하는 존재 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 슬라이스 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
17. 제15절에 있어서, 상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그 및 ii) 상기 디블로킹 기각 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 슬라이스 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
18. 제15절에 있어서, 상기 포맷 규칙은, 상기 디블로킹 필터의 적용가능성을 지시하는 상기 제2 신택스가 존재하지 않는 경우, 상기 제2 신택스 요소의 값을 추론할 것을 명시하는, 비디오 처리 방법.
19. 제18절에 있어서, 상기 포맷 규칙은, i) 디블로킹 동작의 기각(overriding)이 상기 PPS를 참조하는 슬라이스들에 대해 허용됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 상기 디블로킹 기각 플래그, ii) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화됨을 지시하는 상기 PPS 레벨에서의 디블로킹 필터 플래그, 그리고 iii) 상기 디블로킹 동작이 상기 슬라이스 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법
20. 제18절에 있어서, 상기 포맷 규칙은, i) 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 디블로킹 필터 플래그, 그리고 ii) 디블로킹 동작이 슬라이스 헤더 레벨에서 기각될 것임을 지시하는 상기 슬라이스 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
21. 비디오 처리 방법으로(예를 들어, 도 8B에서 도시되는 것과 같은 방법(810)), 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계(812)를 포함하되, 상기 포맷 규칙은, 제1 예측 모드의 적용가능성 또는 현재 비디오 블록의 블록 크기를 지시하는 제2 신택스 요소중 적어도 하나에 기반하여 상기 현재 비디오 블록이 스킵 모드로 코딩되는지 여부를 지시하는 제1 신택스 모드를 생략할 것을 명시하며, 상기 제1 예측은 블록 벡터들에 의해 결정되는 것과 같은 상기 현재 비디오 블록의 동일 슬라이스의 샘플 값들의 블록들로부터 유도되는, 비디오 처리 방법.
22. 제21절에 있어서, 상기 제2 신택스 요소는 시퀀스 파라미터 세트에 있는, 비디오 처리 방법.
23. 제21절에 있어서, 상기 제1 예측 모드는 인트라 블록 카피 예측 모드인, 비디오 처리 방법.
24. 제1절에 있어서, 상기 포맷 규칙은, 상기 제2 신택스 요소가 상기 제1 예측 모드가 활성화되고 상기 블록 크기가 64x64 보다 작지 않음을 지시하는 경우, 상기 제1 신택스 요소를 생략할 것을 명시하는, 비디오 처리 방법.
25. 비디오 처리 방법으로서(예를 들어, 도 8C에 도시된 것과 같은 방법(820)), 하나 또는 그 이상의 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계(822)를 포함하되, 상기 포맷 규칙은 픽처 내 코딩 트리 블록들의 수에 기반하여 상기 픽처를 비디오 영역으로 분할할지 여부를 지시하는 지시의 존재 및/또는 값을 명시하는, 비디오 처리 방법.
26. 제25절에 있어서, 상기 포맷 규칙은, 상기 픽처 내 코딩 트리 블록들의 수가 1과 같거나 2 보다 작으면, 상기 지시가 포함되지 않는다고 명시하는, 비디오 처리 방법.
27. 제25절에 있어서, 상기 포맷 규칙은, 상기 픽처 내 코딩 트리 블록들의 수가 1과 같거나 2 보다 작으면, 상기 지시가 0과 같은 값을 가진다고 명시하는, 비디오 처리 방법.
28. 제1절 내지 제27절 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
29. 제1절 내지 제27절 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함하는, 비디오 처리 방법.
30. 제1절 내지 제27절 중 어느 것에 있어서, 상기 변환은 상기 비트스트림을 상기 비디오로부터 생성시키는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 비디오 처리 방법.
31. 제1절 내재 제30절 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
32. 비디오의 비트스트림을 저장하는 방법으로, 제1절 내지 제30절 중 어느 하나에서의 방법을 포함하고, 비일시적 컴퓨터 판독가능 기록 매체에 상기 비트스트림을 저장하는 단계를 더 포함하는, 방법.
33. 프로그램 코드를 저장하는 컴퓨터 판독 가능 매체로서, 실행 시, 프로세서로 하여금 제1절 내지 제30절 중 하나 또는 그 이상에의 방법을 실시하도록 하는, 매체.
34. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능 매체.
35. 비트스트림 표현을 저장하기 위한 비디오 처리 장치로서, 상기 비디오 처리 장치는 제1절 내지 제30절 중 어느 하나 또는 그 이상에서의 방법을 실시하도록 구성되는, 비디오 처리 장치.
본 문서에서, 용어 "비디오 처리”는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 가리킬 수 있다. 예를 들어, 비디오 압축 알고리즘들은 비디오의 픽셀 표현으로부터 상응하는 비트스트림 표현으로 변환하는 동안 또는 그 반대의 경우에 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스의 의해 정의되는 대로, 비트스트림 내에서 같은 위치에 있거나(co-located) 상이한 곳에 분산되어 있는 비트들에 해당할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오류 잔차 값들로 그리고 헤더들 및 비트스트림의 다른 필드들의 비트들을 사용하여 인코딩될 수 있다. 더 나아가, 디코더는, 변환동안, 상기 해결 수단들에 기술된 바와 같이, 상기 판단에 기반하여, 일부 필드들이 존재 또는 부재할 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 또는 포함되지 않아야 한다고 결정하고 상기 신택스 필드들을 상기 코딩된 표현에 포함시키거나 상기 코딩된 표현에서 배제시킴으로써 그에 맞게 상기 코딩된 표현을 생성할 수 있다.
상기 개시된 그리고 여타 해결 수단들, 예시들, 실시예들, 모듈들 그리고 본 문서에 기술된 기능적 동작들은, 본 문서에 개시된 구조들 및 그것들의 구조적 등가물들을 포함하는, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이것들 중 하나 또는 그 이상의 조합들에서 구현될 수 있다. 상기 개시된 그리고 여타 실시예들은 하나 또는 그 이상의 컴퓨터 프로그램 제품들로, 즉, 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령들의 하나 또는 그 이상의 모듈들로 구현되어 데이터 처리 장치에 의해 실행되거나 또는 상기 장치의 동작을 제어할 수 있다. 상기 컴퓨터 판독 가능 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기관, 메모리 디바이스, 기계 판독 가능 전파 신호에 영향을 주는 물질의 조성, 또는 이것들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예로서 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스들 및 머신들을 포함한다. 장치는 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성되는 인위적으로 생성된 신호, 예를 들어 머신 생성 전기, 광 또는 전자기 신호이다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일된 또는 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛 등과 같이 어떤 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용된 단일 파일 내에, 또는 다수의 협력하는 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 위치에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한 그것들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이에 전송하거나, 또는 양자 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예로서 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 세부사항을 포함하고 있지만, 이들은 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 해당할 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들에 관련하여 본 특허 문서에 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예에 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위조합으로 구현될 수 있다. 또한, 특징들이 특정 조합들로 작용하는 것으로 앞서 설명되고 심지어 처음에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형에 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문서에 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리가 요구되는 것으로 이해되어서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다

Claims (35)

  1. 비디오 처리 방법에 있어서,
    비디오의 비디오 영역과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되,
    상기 포맷 규칙은, 상기 비디오 영역에 대한 디블로킹 필터의 적용가능성이 i) 픽처 파라미터 세트 레벨 및 ii) 픽처 레벨 또는 슬라이스 레벨에서의 신택스 요소들에 기반하여 판단된다고 명시하는, 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 비디오 영역은 슬라이스인, 비디오 처리 방법.
  3. 제1항에 있어서,
    상기 포맷 규칙은, 픽처 파라미터 세트를 참조하는 슬라이스들에 대한 상기 디블로킹 필터의 상기 적용가능성이 픽처 파라미터 세트 내 제1 신택스 요소 및 상기 픽처 레벨 또는 상기 슬라이스 레벨에서의 제2 신택스 요소에 기반한다고 명시하는, 비디오 처리 방법.
  4. 제3항에 있어서,
    상기 제1 신택스 요소의 값이, 상기 픽처 레벨 또는 상기 슬라이스 레벨에서 달리 지시되지 않는 한, 상기 디블로킹 필터가 픽처 파라미터 세트를 참조하는 상기 슬라이스들에 대해 적용되는지 여부를 명시한다고, 상기 포맷 규칙이 명시하는, 비디오 처리 방법.
  5. 제4항에 있어서,
    0과 같은 상기 제1 신택스 요소의 상기 값은, 픽처 헤더 또는 슬라이스 헤더에 존재하는 정보에 의해 픽처 또는 슬라이스에 대해 기각되지(overridden) 않는 한 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 명시하는, 비디오 처리 방법.
  6. 제4항에 있어서,
    1과 같은 상기 제1 신택스 요소의 상기 값은, 픽처 헤더 또는 슬라이스 헤더에 존재하는 정보에 의해 픽처 또는 슬라이스에 대해 기각되지(overridden) 않는 한 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 비활성화됨을 명시하는, 비디오 처리 방법.
  7. 제1항에 있어서,
    상기 포맷 규칙은, 슬라이스 헤더 내 디블로킹 파라미터들의 존재를 지시하는 제3 신택스 요소가 존재하는 않는 경우, 상기 제3 신택스 요소가 특정 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
  8. 제1항에 있어서,
    상기 포맷 규칙은, 상기 픽처 레벨 또는 상기 슬라이스 레벨에서 상기 디블로킹 필터의 적용 가능성을 지시하는 제2 신택스 요소를 포함할지 여부가 (1) 상기 디블로킹 필터가 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 디블로킹 동작(behavior)이 기각 허용 가능성을 지시하는 픽처 헤더 또는 슬라이스 헤더 내 디블록킹 파라미터들의 존재에 의존한다고 명시하는, 비디오 처리 방법.
  9. 제8항에 있어서,
    상기 포맷 규칙은, 상기 제2 신택스 요소를 상기 픽처 헤더에 포함할지 여부가 (1) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 상기 디블로킹 파라미터들의 상기 픽처 헤더 내 존재을 지시하는 디블로킹 기각(override) 플래그의 값에 의존한다고 명시하는, 비디오 처리 방법.
  10. 제9항에 있어서,
    상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그 및 ii) 픽처 헤더 레벨에서의 상기 디블로킹 기각 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 픽처 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
  11. 제9항에 있어서,
    상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그, ii) 픽처 헤더 레벨에서의 상기 디블로킹 기각 플래그, 그리고 iii) 상기 디블로킹 기각 플래그의 존재를 지시하는 존재 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 픽처 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
  12. 제9항에 있어서,
    상기 포맷 규칙은, 상기 디블로킹 필터의 적용가능성을 지시하는 상기 제2 신택스 요소가 존재하지 않는 경우, 상기 제2 신택스 요소의 값을 추론할 것을 명시하는, 비디오 처리 방법.
  13. 제12항에 있어서,
    상기 포맷 규칙은, i) 디블로킹 동작의 기각(overriding)이 상기 PPS를 참조하는 슬라이스들에 대해 허용됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 상기 디블로킹 기각 플래그, ii) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화됨을 지시하는 상기 PPS 레벨에서의 디블로킹 필터 플래그, 그리고 iii) 상기 디블로킹 동작이 상기 픽처 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
  14. 제12항에 있어서,
    상기 포맷 규칙은, i) 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 디블로킹 필터 플래그, 그리고 ii) 디블로킹 동작이 상기 픽처 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
  15. 제8항에 있어서,
    상기 포맷 규칙은, 상기 제2 신택스 요소를 상기 슬라이스 헤더에 포함할지 여부가 (1) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부 및/또는 (2) 상기 디블로킹 파라미터들의 상기 슬라이스 헤더 내 존재를 지시하는 디블로킹 기각(override) 플래그의 값에 의존한다고 명시하는, 비디오 처리 방법.
  16. 제15항에 있어서,
    상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그, ii) 슬라이스 헤더 레벨에서의 상기 디블로킹 기각 플래그, 그리고 iii) 상기 디블로킹 기각 플래그의 존재를 지시하는 존재 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 슬라이스 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
  17. 제15항에 있어서,
    상기 포맷 규칙은, i) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화되는지 여부를 지시하는 디블로킹 필터 플래그 및 ii) 상기 디블로킹 기각 플래그가 특정 값을 가지는 경우, 상기 제2 신택스 요소를 상기 슬라이스 헤더에서 생략할 것을 명시하는, 비디오 처리 방법.
  18. 제15항에 있어서,
    상기 포맷 규칙은, 상기 디블로킹 필터의 적용가능성을 지시하는 상기 제2 신택스가 존재하지 않는 경우, 상기 제2 신택스 요소의 값을 추론할 것을 명시하는, 비디오 처리 방법.
  19. 제18항에 있어서,
    상기 포맷 규칙은, i) 디블로킹 동작의 기각(overriding)이 상기 PPS를 참조하는 슬라이스들에 대해 허용됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 상기 디블로킹 기각 플래그, ii) 상기 디블로킹 필터가 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 비활성화됨을 지시하는 상기 PPS 레벨에서의 디블로킹 필터 플래그, 그리고 iii) 상기 디블로킹 동작이 상기 슬라이스 헤더 레벨에서 기각될 것임을 지시하는 픽처 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
  20. 제18항에 있어서,
    상기 포맷 규칙은, i) 상기 픽처 파라미터 세트를 참조하는 픽처들에 대해 상기 디블로킹 필터가 활성화됨을 지시하는 PPS(픽처 파라미터 세트) 레벨의 디블로킹 필터 플래그, 그리고 ii) 디블로킹 동작이 슬라이스 헤더 레벨에서 기각될 것임을 지시하는 상기 슬라이스 헤더 레벨에서의 존재 플래그의 경우, 상기 제2 신택스 요소의 상기 값이 상기 디블로킹 필터가 상기 픽처에서 활성화됨을 지시하는 특정 값과 같다고 추론할 것을, 그리고 그렇지 않은 경우, 상기 제2 신택스 요소의 상기 값이 상기 PPS 레벨에서의 상기 디블로킹 필터 플래그의 값과 같다고 추론할 것을 명시하는, 비디오 처리 방법.
  21. 비디오 처리 방법으로,
    비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되,
    상기 포맷 규칙은, 제1 예측 모드의 적용가능성 또는 현재 비디오 블록의 블록 크기를 지시하는 제2 신택스 요소중 적어도 하나에 기반하여 상기 현재 비디오 블록이 스킵 모드로 코딩되는지 여부를 지시하는 제1 신택스 모드를 생략할 것을 명시하며,
    상기 제1 예측은 블록 벡터들에 의해 결정되는 것과 같은 상기 현재 비디오 블록의 동일 슬라이스의 샘플 값들의 블록들로부터 유도되는, 비디오 처리 방법.
  22. 제21항에 있어서,
    상기 제2 신택스 요소는 시퀀스 파라미터 세트에 있는, 비디오 처리 방법.
  23. 제21항에 있어서,
    상기 제1 예측 모드는 인트라 블록 카피 예측 모드인, 비디오 처리 방법.
  24. 제1항에 있어서,
    상기 포맷 규칙은, 상기 제2 신택스 요소가 상기 제1 예측 모드가 활성화되고 상기 블록 크기가 64x64 보다 작지 않음을 지시하는 경우, 상기 제1 신택스 요소를 생략할 것을 명시하는, 비디오 처리 방법.
  25. 비디오 처리 방법으로서,
    하나 또는 그 이상의 픽처들을 포함하는 비디오와 상기 비디오의 비트스트림 간의 변환을 포맷 규칙에 따라 실시하는 단계를 포함하되,
    상기 포맷 규칙은 픽처 내 코딩 트리 블록들의 수에 기반하여 상기 픽처를 비디오 영역으로 분할할지 여부를 지시하는 지시의 존재 및/또는 값을 명시하는, 비디오 처리 방법.
  26. 제25항에 있어서,
    상기 포맷 규칙은, 상기 픽처 내 코딩 트리 블록들의 수가 1과 같거나 2 보다 작으면, 상기 지시가 포함되지 않는다고 명시하는, 비디오 처리 방법.
  27. 제25항에 있어서,
    상기 포맷 규칙은, 상기 픽처 내 코딩 트리 블록들의 수가 1과 같거나 2 보다 작으면, 상기 지시가 0과 같은 값을 가진다고 명시하는, 비디오 처리 방법.
  28. 제1항 내지 제27항 중 어느 것에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
  29. 제1항 내지 제27항 중 어느 것에 있어서,
    상기 변환은 상기 비디오를 상기 비트스트림으로부터 디코딩하는 단계를 포함하는, 비디오 처리 방법.
  30. 제1항 내지 제27항 중 어느 것에 있어서,
    상기 변환은 상기 비트스트림을 상기 비디오로부터 생성시키는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 비디오 처리 방법.
  31. 제1항 내지 제30절 중 하나 또는 그 이상에서의 방법을 실시하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
  32. 비디오의 비트스트림을 저장하는 방법으로,
    제1항 내지 제30항 중 어느 하나에서의 방법을 포함하고,
    비일시적 컴퓨터 판독가능 기록 매체에 상기 비트스트림을 저장하는 단계를 더 포함하는, 방법.
  33. 프로그램 코드를 저장하는 컴퓨터 판독 가능 매체로서,
    실행 시, 프로세서로 하여금 제1항 내지 제30항 중 하나 또는 그 이상에의 방법을 실시하도록 하는, 매체.
  34. 상기 기술된 방법들 중 어느 것에 따라 생성된 비트스트림을 저장하는 컴퓨터 판독가능 매체.
  35. 비트스트림 표현을 저장하기 위한 비디오 처리 장치로서,
    상기 비디오 처리 장치는 제1항 내지 제30항 중 어느 하나 또는 그 이상에서의 방법을 실시하도록 구성되는, 비디오 처리 장치.
KR1020227034984A 2020-04-09 2021-04-09 비디오 코딩에서 디블로킹 시그널링 KR20220163392A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2020/083967 2020-04-09
CN2020083967 2020-04-09
PCT/CN2021/086111 WO2021204234A1 (en) 2020-04-09 2021-04-09 Deblocking signaling in video coding

Publications (1)

Publication Number Publication Date
KR20220163392A true KR20220163392A (ko) 2022-12-09

Family

ID=78022414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227034984A KR20220163392A (ko) 2020-04-09 2021-04-09 비디오 코딩에서 디블로킹 시그널링

Country Status (6)

Country Link
US (2) US11743506B1 (ko)
EP (1) EP4118825A4 (ko)
JP (1) JP2023521588A (ko)
KR (1) KR20220163392A (ko)
CN (2) CN115428457A (ko)
WO (2) WO2021204233A1 (ko)

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373009B2 (en) 2005-02-09 2008-05-13 Lsi Corporation Method and apparatus for efficient transmission and decoding of quantization matrices
US9066102B2 (en) 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
US9532066B2 (en) 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
US9565449B2 (en) 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
JP5763210B2 (ja) * 2011-04-21 2015-08-12 メディアテック インコーポレイテッド 改良されたループ型フィルタリング処理のための方法と装置
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9277228B2 (en) * 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
CN104025599B (zh) 2011-11-08 2018-12-14 诺基亚技术有限公司 参考图片处理
WO2013067687A1 (en) 2011-11-08 2013-05-16 Mediatek Singapore Pte. Ltd. Residue quad tree depth for chroma components
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
CN103918269B (zh) * 2012-01-04 2017-08-01 联发科技(新加坡)私人有限公司 色度帧内预测方法及装置
US9749661B2 (en) * 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
US9538200B2 (en) * 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
US9756327B2 (en) 2012-04-03 2017-09-05 Qualcomm Incorporated Quantization matrix and deblocking filter adjustments for video coding
TW201408071A (zh) 2012-04-09 2014-02-16 Vid Scale Inc 視訊編碼加權預測參數傳訊
US20150043637A1 (en) 2012-04-13 2015-02-12 Sony Corporation Image processing device and method
US9167248B2 (en) 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9900593B2 (en) 2012-08-29 2018-02-20 Vid Scale, Inc. Method and apparatus of motion vector prediction for scalable video coding
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
US10021414B2 (en) 2013-01-04 2018-07-10 Qualcomm Incorporated Bitstream constraints and motion vector restriction for inter-view or inter-layer reference pictures
WO2015006281A2 (en) 2013-07-09 2015-01-15 Sony Corporation High level syntax improvement on inter-layer prediction for shvc/mv-hevc
US9648335B2 (en) 2013-07-12 2017-05-09 Qualcomm Incorporated Bitstream restrictions on picture partitions across layers
US9648330B2 (en) 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
TW201517597A (zh) 2013-07-31 2015-05-01 Nokia Corp 用於視訊編碼及解碼之方法及裝置
WO2015139010A1 (en) 2014-03-14 2015-09-17 Vid Scale, Inc. Systems and methods for rgb video coding enhancement
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
US10380136B2 (en) 2014-10-10 2019-08-13 Salesforce.Com, Inc. Dataflow optimization for extractions from a data repository
CN108028945A (zh) 2015-08-06 2018-05-11 Lg 电子株式会社 通过使用单例系数更新执行变换的设备和方法
US10306253B2 (en) 2015-10-14 2019-05-28 Qualcomm Incorporated Signaling of parameter sets in files of multi-layer bitstreams
US10382766B2 (en) * 2016-05-09 2019-08-13 Qualcomm Incorporated Signalling of filtering information
US10419755B2 (en) 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
US10582201B2 (en) 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
CN109691110B (zh) 2016-09-08 2023-07-25 佳稳集团有限公司 利用空间布局信息的同步多视点影像的编码/解码方法以及其装置
BR112019012582A8 (pt) * 2016-12-22 2023-02-07 Mediatek Inc Método e aparelho de refinamento de movimento para codificação de vídeo
KR102424829B1 (ko) 2017-02-22 2022-07-25 에스케이텔레콤 주식회사 비디오 데이터가 부호화된 비트스트림을 처리하는 방법
CN114449270B (zh) 2017-07-04 2023-09-26 三星电子株式会社 使用多核变换的视频解码/编码方法和设备
CN116916012A (zh) * 2017-09-08 2023-10-20 株式会社Kt 视频信号处理方法及装置
WO2019089382A1 (en) 2017-10-31 2019-05-09 Vid Scale, Inc. 360-degree video coding using face-based geometry padding
US10778979B2 (en) 2018-01-11 2020-09-15 Qualcomm Incorporated Signaling mechanisms for equal ranges and other DRA parameters for video coding
WO2020031061A2 (en) 2018-08-04 2020-02-13 Beijing Bytedance Network Technology Co., Ltd. Mvd precision for affine
TWI818065B (zh) 2018-08-21 2023-10-11 大陸商北京字節跳動網絡技術有限公司 雙邊濾波器的減小的視窗尺寸
CN112425169B (zh) 2018-09-07 2023-07-11 华为技术有限公司 用于视频译码中帧内预测和帧间预测的插值滤波方法和装置
AU2019342803B2 (en) 2018-09-21 2023-07-13 Huawei Technologies Co., Ltd. Apparatus and method for inverse quantization
US11218694B2 (en) 2018-09-24 2022-01-04 Qualcomm Incorporated Adaptive multiple transform coding
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
SG11202104480RA (en) 2018-11-05 2021-05-28 Beijing Bytedance Network Technology Co Ltd Interpolation for inter prediction with refinement
WO2020111023A1 (en) 2018-11-30 2020-06-04 Sharp Kabushiki Kaisha Systems and methods for signaling tile structures for pictures of coded video
US10972755B2 (en) 2018-12-03 2021-04-06 Mediatek Singapore Pte. Ltd. Method and system of NAL unit header structure for signaling new elements
US11683487B2 (en) * 2019-03-26 2023-06-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) with adaptive parameter set (APS) in video coding
EP4011082A4 (en) 2019-08-08 2023-10-25 Fg Innovation Company Limited DEVICE AND METHOD FOR ENCODING VIDEO DATA
US11375219B2 (en) * 2019-09-24 2022-06-28 Tencent America LLC Coding method and system with improved dynamic internal bit depth
CN114600462A (zh) * 2019-10-25 2022-06-07 夏普株式会社 用于在视频编码中发送信号通知图片信息的系统和方法
US11470358B2 (en) 2020-04-02 2022-10-11 Sharp Kabushiki Kaisha Systems and methods for signaling scaling window information in video coding
US11601657B2 (en) 2020-04-02 2023-03-07 Qualcomm Incorporated LUMA mapping with chroma scaling (LMCS) in video coding

Also Published As

Publication number Publication date
EP4118825A1 (en) 2023-01-18
WO2021204233A1 (en) 2021-10-14
JP2023521588A (ja) 2023-05-25
CN115428457A (zh) 2022-12-02
EP4118825A4 (en) 2023-08-09
WO2021204234A1 (en) 2021-10-14
CN115668917A (zh) 2023-01-31
US20230319312A1 (en) 2023-10-05
US11743506B1 (en) 2023-08-29

Similar Documents

Publication Publication Date Title
WO2021197445A1 (en) Constraints on adaptation parameter set syntax elements
JP2023515185A (ja) ハイレベルシンタックス要素のための制約
US20230008778A1 (en) Interplay between picture header and slice header of a video bitstream
WO2021180164A1 (en) Transform skip based residual coding
WO2021204136A1 (en) Signaling for inter prediction in high level syntax
WO2021204251A1 (en) Use of header syntax elements and adaptation parameter set
WO2021233448A1 (en) Signalling of general level index
WO2021244420A1 (en) Palette mode with local dual tree modetype definition
KR20230002447A (ko) 비디오 코딩 신택스 요소의 조건적 시그널링
KR20220157950A (ko) 어파인 머지 및 어파인 모션 벡터 예측 모드에 대한 예측 리파인먼트
US11743506B1 (en) Deblocking signaling in video coding
WO2021209061A1 (en) Presence of adaptation parameter set units
WO2021213357A1 (en) Adaptive color transform in video coding