KR20220143857A - 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링 - Google Patents
비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링 Download PDFInfo
- Publication number
- KR20220143857A KR20220143857A KR1020227029612A KR20227029612A KR20220143857A KR 20220143857 A KR20220143857 A KR 20220143857A KR 1020227029612 A KR1020227029612 A KR 1020227029612A KR 20227029612 A KR20227029612 A KR 20227029612A KR 20220143857 A KR20220143857 A KR 20220143857A
- Authority
- KR
- South Korea
- Prior art keywords
- video
- slice
- equal
- picture
- scaling
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 인코딩 및 비디오 디코딩을 위한 몇몇 기법들이 설명된다. 하나의 예시적인 방법은 비디오의 비디오 블록과 이러한 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 변환을 위해 저 주파수 비-분리가능 변환을 사용하고, 비트스트림은 신택스 엘리먼트가 비트스트림에 대한 신택스 레벨에서 포함된다는 점을 명시하는 포맷 규칙을 준수하고, 신택스 엘리먼트는 참조 스케일링 리스트로부터 도출되는 스케일링 행렬의 사용이 비디오 블록에 대해 인에이블되는지를 표시하는 것이고, 신택스 레벨은 시퀀스 레벨, 화상 레벨, 또는 슬라이스 레벨이다.
Description
<관련 출원들에 대한 상호 참조>
파리 협약에 따른 적용가능한 특허 법률 및/또는 규칙들 하에서, 본 출원은 2020년 3월 3일자로 출원된 미국 임시 특허 출원 제62/984,658호에 대한 우선권 및 그 혜택을 적시에 주장하기 위해 이루어진다. 이러한 특허 법률 하에서 모든 목적들을 위해, 전술된 출원의 전체 개시내용은 본 출원의 개시내용의 일부로서 참조에 의해 원용된다.
<기술 분야>
본 특허 문서는 이미지 및 비디오 코딩 및 디코딩에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신 및 디스플레이할 수 있는 접속된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 코딩된 표현의 디코딩에 유용한 제어 정보를 사용하여 비디오의 코딩된 표현을 처리하기 위해 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기법들을 개시한다.
하나의 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은 비디오의 비디오 블록과 이러한 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 비트스트림은 포맷 규칙을 준수하고, 포맷 규칙은 스케일링 프로세스가 비디오 블록의 변환 계수들 또는 비-변환 계수들에 적용되는지를 표시하는 제1 신택스 엘리먼트가 비디오 영역 레벨에서 비트스트림에 포함된다는 점을 명시하고, 비디오 영역은 비디오의 비디오 화상보다 작다.
다른 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은 비디오의 비디오 영역의 비디오 유닛과 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 비트스트림은 포맷 규칙을 준수하고, 포맷 규칙은 비트스트림 내의 비디오 영역의 제1 레벨에서의 제1 제어 정보가 제2 제어 정보가 비트스트림 내의 비디오 유닛의 제2 레벨에서 포함되는지를 표시한다는 점을 명시하고, 제1 제어 정보 및/또는 제2 제어 정보는 스케일링 리스트가 변환을 위한 변환 계수들 또는 비-변환 계수들에 대해 사용되는지에 관한 정보를 포함한다.
다른 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은 비디오의 비디오 블록과 이러한 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고, 비디오 블록은 변환을 위해 저 주파수 비-분리가능 변환을 사용하고, 비트스트림은 신택스 엘리먼트가 비트스트림에 대한 신택스 레벨에서 포함된다는 점을 명시하는 포맷 규칙을 준수하고, 신택스 엘리먼트는 참조 스케일링 리스트로부터 도출되는 스케일링 행렬의 사용이 비디오 블록에 대해 인에이블되는지를 표시하는 것이고, 신택스 레벨은 시퀀스 레벨, 화상 레벨, 또는 슬라이스 레벨이다.
다른 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은, 비디오의 비디오 유닛과 이러한 비디오의 비트스트림 사이의 변환을 위해, 비디오 유닛의 경계를 따르는 비디오 유닛의 샘플들에 대해 경계 밖의 패딩된 샘플들을 사용하여 디-블록킹 필터링을 수행하도록 결정하는 단계; 이러한 결정에 따라 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은 하나 이상의 비디오 화상을 포함하는 비디오 사이의 변환을 수행하는 단계를 포함하고, 각각의 비디오 화상은 비디오의 코딩된 표현 및 하나 이상의 타일을 포함하고, 코딩된 표현은 포맷 규칙을 준수하고; 포맷 규칙은 코딩된 표현에서 시그널링되는 제1 정보 및 코딩된 표현으로부터 도출되는 제2 정보를 명시하고, 적어도 제1 정보 또는 제2 정보는 하나 이상의 타일의 행 인덱스들 또는 열 인덱스들과 관련된다.
다른 예시적인 양태에서, 비디오 처리 방법이 개시된다. 이러한 방법은 비디오의 비디오 영역의 비디오 유닛과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포맷 규칙을 준수하고; 포맷 규칙은 비디오 영역에서의 제1 제어 정보가 제2 제어 정보가 비디오 유닛 레벨에서 포함되는지를 제어한다는 점을 명시하고, 제1 제어 정보 및/또는 제2 제어 정보는 변환에 대 사용되는 LMCS(luma mapping and chroma scaling) 또는 CRS(chroma residue scaling) 또는 RP(reshaping process)에 관한 정보를 포함한다.
또 다른 예에서, 다른 비디오 처리 방법이 개시된다. 이러한 방법은 하나 이상의 비디오 유닛을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 이러한 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 코딩된 표현은 포맷 규칙을 준수하고, 포맷 규칙은 코딩된 표현이 적어도 일부 비디오 유닛들의 변환에 대해 사용가능한 스케일링 리스트의 2-레벨 시그널링을 포함한다는 점을 명시하고, 비디오-영역 레벨에서의 2-레벨 시그널링의 하이 레벨 시그널링은 비디오-유닛 레벨에서의 2-레벨 시그널링의 로우 레벨 시그널링이 코딩된 표현에 포함되는지 및 어디에 포함되는지를 제어하고; 스케일링 리스트는 적어도 일부 비디오 유닛들의 변환에 대해 사용되는 스케일링에 관한 정보를 포함한다.
또 다른 예에서, 다른 비디오 처리 방법이 개시된다. 이러한 방법은, 비디오의 비디오 유닛과 이러한 비디오의 코딩된 표현 사이의 변환에 대해 사용되는 저 주파수 비-분리가능 변환에 대한 스케일링 리스트를 결정하는 단계; 및 이러한 결정에 기초하여 변환을 수행하는 단계를 포함하고, 코딩된 표현 내의 신택스 구조는 스케일링 리스트가 비디오 유닛에 대해 인에이블되는지를 표시한다.
또 다른 예시적인 양태에서, 비디오 인코더 장치가 개시된다. 이러한 비디오 인코더는 위에 설명되는 방법들을 구현하도록 구성되는 프로세서를 포함한다.
또 다른 예시적인 양태에서, 비디오 디코더 장치가 개시된다. 이러한 비디오 디코더는 위에 설명되는 방법들을 구현하도록 구성되는 프로세서를 포함한다.
또 다른 예시적인 양태에서, 코드가 저장되어 있는 컴퓨터 판독가능 매체가 개시된다. 이러한 코드는 본 명세서에 설명되는 방법들 중 하나를 프로세서-실행가능 코드의 형태로 구현한다.
이러한, 그리고 다른, 특징들이 본 문서 전반적으로 설명된다.
도 1은 화상의 래스터-스캔 슬라이스 분할의 예를 도시하며, 여기서 화상은 12개의 타일들 및 3개의 래스터-스캔 슬라이스들로 나누어진다.
도 2는 화상의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 화상은 24개의 타일들(6개의 타일 열들 및 4개의 타일 행들) 및 9개의 직사각형 슬라이스들로 나누어진다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 화상의 예를 도시하며, 여기서 화상은 4개의 타일들(2개의 타일 열들 및 2개의 타일 행들) 및 4개의 직사각형 슬라이스들로 나누어진다.
도 4는 15개의 타일들, 24개의 슬라이스들 및 24개의 서브화상들로 분할되는 화상을 도시한다.
도 5는 예시적인 비디오 처리 시스템의 블록도이다.
도 6은 비디오 처리 장치의 블록도이다.
도 7은 비디오 처리의 예시적인 방법에 대한 흐름도이다.
도 8은 본 개시내용의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록도이다.
도 9는 본 개시내용의 일부 실시예들에 따른 인코더를 예시하는 블록도이다.
도 10은 본 개시내용의 일부 실시예들에 따른 디코더를 예시하는 블록도이다.
도 11은 디블록킹 필터링을 위한 패딩 프로세스의 예를 도시한다.
도 12 내지 도 15는 비디오 처리의 예시적인 방법들에 대한 흐름도들이다.
도 2는 화상의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 화상은 24개의 타일들(6개의 타일 열들 및 4개의 타일 행들) 및 9개의 직사각형 슬라이스들로 나누어진다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 화상의 예를 도시하며, 여기서 화상은 4개의 타일들(2개의 타일 열들 및 2개의 타일 행들) 및 4개의 직사각형 슬라이스들로 나누어진다.
도 4는 15개의 타일들, 24개의 슬라이스들 및 24개의 서브화상들로 분할되는 화상을 도시한다.
도 5는 예시적인 비디오 처리 시스템의 블록도이다.
도 6은 비디오 처리 장치의 블록도이다.
도 7은 비디오 처리의 예시적인 방법에 대한 흐름도이다.
도 8은 본 개시내용의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록도이다.
도 9는 본 개시내용의 일부 실시예들에 따른 인코더를 예시하는 블록도이다.
도 10은 본 개시내용의 일부 실시예들에 따른 디코더를 예시하는 블록도이다.
도 11은 디블록킹 필터링을 위한 패딩 프로세스의 예를 도시한다.
도 12 내지 도 15는 비디오 처리의 예시적인 방법들에 대한 흐름도들이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용되며 각각의 섹션에 개시되는 기법들 및 실시예들의 적용가능성을 단지 해당 섹션으로만 제한하지 않는다. 또한, H.266 전문용어는 일부 설명에서 단지 이해의 편의를 위해서만 사용되며 개시된 기법들의 범위를 제한하기 위해서 사용되지는 않는다. 이와 같이, 본 명세서에 설명되는 기법들은 다른 비디오 코덱 프로토콜들 및 설계들에 또한 적용가능하다. 본 문서에서, 편집 변경들은, VVC 사양의 현재 초안과 관련하여, 취소된 텍스트를 표시하는 이탤릭체 텍스트 및 추가된 텍스트를 표시하는 볼드체 이탤릭체 텍스트로서 보여진다.
1. 요약
본 문서는 비디오 코딩 기술들에 관련된다. 구체적으로, 이것은 서브화상들, LMCS, AMVR, 및 스케일링 리스트의 지원에 관한 것이다. 서브화상들에 대한 양태들은 하나의 서브화상에 포함되는 타일 행 및 열 수를 도출하는 것은 물론 각각의 서브화상이 단지 하나의 슬라이스만을 포함할 때 슬라이스에 포함되는 CTU들에 대한 래스터 스캔 CTU 어드레스 리스트를 도출하는 것을 포함한다. LMCS에 대한 양태들은 상이한 레벨들에서 LMCS의 인에이블을 시그널링하는 것에 관한 것이다. AMVR에 대한 양태들은 sps_affine_amvr_enabled_flag의 시맨틱스에 관한 것이다. 스케일링 리스트에 대한 양태들은 상이한 레벨들에서 명시적 스케일링 리스트의 사용을 인에이블하는 것에 관한 것이다. 아이디어들은, 싱글-레이어 및/또는 멀티-레이어 비디오 코딩, 예를 들어, 개발 중인 VVC(Versatile Video Coding)를 지원하는 임의의 비디오 코딩 표준 또는 비-표준 비디오 코덱에 개별적으로 또는 다양한 조합으로 적용될 수 있다.
2. 약어들
ALF
Adaptive Loop Filter
AMVR
Adaptive Motion Vector difference Resolution
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
LFNST
Low Frequency Non-Separable Transform
LMCS
Luma Mapping with Chroma Scaling
MCTS
Motion-Constrained Tile Sets
NAL
Network Abstraction Layer
OLS
Output Layer Set
PH
Picture Header
PPS
Picture Parameter Set
PTL
Profile, Tier and Level
PU
Picture Unit
RBSP
Raw Byte Sequence Payload
SEI
Supplemental Enhancement Information
SPS
Sequence Parameter Set
SVC
Scalable Video Coding
VCL
Video Coding Layer
VPS
Video Parameter Set
VTM
VVC Test Model
VUI
Video Usability Information
VVC
Versatile Video Coding
3. 초기 논의
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전했다. ITU-T는 H.261 및 H.263을 생성하였고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 생성하였으며, 이러한 2개의 조직들은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들을 생성하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측 플러스 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 이후의 미래 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그때 이후, 많은 새로운 방법들이 JVET에 의해 채택되어 JEM(Joint Exploration Model)이라고 명명되는 참조 소프트웨어에 넣어졌다. JVET 회의는 분기당 한 번씩 동시에 열리고, 새로운 코딩 표준은 HEVC와 비교하여 50% 비트레이트 감소를 타겟으로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 VVC(Versatile Video Coding)로서 공식적으로 명명되었고, VTM(VVC test model)의 제1 버전이 그 시간에 발표되었다. VVC 표준화에 기여하는 지속적인 노력이 있음에 따라, 새로운 코딩 기법들이 모든 JVET 회의마다 VVC 표준에 채택되고 있다. VVC 작업 초안 및 테스트 모델 VTM이 이어서 모든 회의 후에 업데이트된다. VVC 프로젝트는 이제 2020년 7월 회의에서 기술 완료(FDIS)를 목표로 하고 있다.
3.1. HEVC에서의 화상 분할 스킴들
HEVC는, MTU(Maximum Transfer Unit 크기 매칭, 병렬 처리, 및 감소된 엔드-투-엔드 지연을 위해 적용될 수 있는, 4개의 상이한 화상 분할 스킴들, 즉 정규 슬라이스들, 의존적 슬라이스들, 타일들, 및 WPP(Wavefront Parallel Processing)를 포함한다.
정규 슬라이스들은 H.264/AVC에서와 유사하다. 각각의 정규 슬라이스는 그 자체 NAL 유닛에 캡슐화되고, 화상-내 예측(in-picture prediction)(인트라 샘플 예측, 모션 정보 예측, 코딩 모드 예측) 및 슬라이스 경계들에 걸친 엔트로피 코딩 의존성이 디스에이블된다. 따라서 정규 슬라이스는 동일한 화상 내의 다른 정규 슬라이스들과 독립적으로 재구성될 수 있다(루프 필터링 동작들로 인해 여전히 상호 의존성들이 있을 수 있다).
정규 슬라이스는, H.264/AVC에서, 거의 동일한 형태로, 또한 이용가능한, 병렬화에 대해 사용될 수 있는 유일한 툴이다. 정규 슬라이스들 기반 병렬화는 (예측 코딩된 화상을 디코딩할 때 모션 보상을 위한 인터-프로세서 또는 인터-코어 데이터 공유 - 이는 전형적으로 화상-내 예측으로 인한 인터-프로세서 또는 인터-코어 데이터 공유보다 훨씬 더 과중함 - 를 제외하고는) 많은 인터-프로세서 또는 인터-코어 통신을 요구하지 않는다. 그러나, 동일한 이유로, 정규 슬라이스들의 사용은 슬라이스 헤더의 비트 비용으로 인해 및 슬라이스 경계들에 걸친 예측 결여로 인해 상당한 코딩 오버헤드를 초래할 수 있다. 추가로, (아래에 언급되는 다른 툴들과 대조적으로) 정규 슬라이스들은 또한, 정규 슬라이스들의 화상-내 독립성 및 각각의 정규 슬라이스가 그 자체 NAL 유닛에 캡슐화되는 것으로 인해, MTU 크기 요건들과 매칭하도록 비트스트림 분할을 위한 핵심 메커니즘으로서 역할을 한다. 많은 경우들에서, 병렬화의 목표 및 MTU 크기 매칭의 목표는 화상에서의 슬라이스 레이아웃에 대한 상충된 요구들을 한다. 이러한 상황의 인식은 아래에 언급되는 병렬화 툴들의 개발로 이어졌다.
의존적 슬라이스들은 짧은 슬라이스 헤더들을 가지며, 임의의 화상-내 예측을 깨뜨리지 않고 트리블록 경계들에서 비트스트림의 분할을 허용한다. 기본적으로, 전체 정규 슬라이스의 인코딩이 마무리되기 전에 정규 슬라이스의 일부가 전송되는 것을 허용하는 것에 의해 감소된 엔드-투-엔드 지연을 제공하기 위해, 의존적 슬라이스들은 정규 슬라이스들을 다수의 NAL 유닛들로 단편화하는 것을 제공한다.
WPP에서는, 화상이 CTB들(coding tree blocks)의 단일 행들로 분할된다. 엔트로피 디코딩 및 예측은 다른 파티션들에 있는 CTB들로부터의 데이터를 사용하는 것이 허용된다. 병렬 처리는 CTB 행들의 병렬 디코딩을 통해 가능하며, 여기서 대상 CTB가 디코딩되기 전에 대상 CTB의 우측 위쪽에 있는 CTB에 관련된 데이터가 이용가능한 것을 보장하기 위해, CTB 행들의 디코딩의 시작이 2개의 CTB들만큼 지연된다. 이러한 시차를 둔(staggered) 시작(이는 그래픽으로 표현될 때 파면처럼 보임)을 사용하면, 화상이 CTB 행들을 포함한 수만큼의 많은 프로세서들/코어들로 병렬화가 가능하다. 화상 내의 이웃하는 트리블록 행들 사이의 화상-내 예측이 가능하게 되기 때문에, 화상-내 예측을 인에이블하기 위해 요구된 인터-프로세서/인터-코어 통신이 상당할 수 있다. WPP 분할은 이것이 적용되지 않을 때와 비교하여 추가적인 NAL 유닛들의 생성을 결과하지 않으며, 따라서 WPP는 MTU 크기 매칭을 위한 툴이 아니다. 그러나, MTU 크기 매칭이 요구되면, 특정 코딩 오버헤드와 함께, 정규 슬라이스들이 WPP와 함께 사용될 수 있다.
타일들은 화상을 타일 열들과 행들로 분할하는 수평 경계들 및 수직 경계들을 정의한다. 타일 열은 화상의 상단으로부터 화상의 하단으로 이어진다. 마찬가지로, 타일 행은 화상의 좌측으로부터 화상의 우측으로 이어진다. 화상 내의 타일 수는 타일 열 수와 타일 행 수를 곱하는 것으로서 간단하게 도출될 수 있다.
화상의 타일 래스터 스캔 순서에서 다음 타일의 상단-좌측 CTB를 디코딩하기 전에, CTB들의 스캔 순서가 (타일의 CTB 래스터 스캔 순서에서) 타일 내에 로컬이도록 변경된다. 정규 슬라이스들과 유사하게, 타일들은 화상-내 예측 의존성들은 물론 엔트로피 디코딩 의존성들을 깨뜨린다. 그러나, 이들은 (이러한 것과 관련하여 WPP와 동일한) 개별 NAL 유닛들에 포함될 필요는 없으며; 따라서 타일들은 MTU 크기 매칭에 대해 사용될 수 없다. 각각의 타일은 하나의 프로세서/코어에 의해 처리될 수 있으며, 이웃하는 타일들을 디코딩하는 처리 유닛들 사이의 화상-내 예측을 위해 요구되는 인터-프로세서/인터-코어 통신은 슬라이스가 하나보다 많은 타일에 걸쳐 있는 경우에 공유 슬라이스 헤더를 전달하는 것, 및 재구성된 샘플들 및 메타데이터의 루프 필터링 관련 공유로 제한된다. 하나보다 많은 타일 또는 WPP 세그먼트가 슬라이스에 포함될 때, 슬라이스에서의 첫 번째 것 이외의 WPP 세그먼트 또는 각각의 타일에 대한 엔트리 포인트 바이트 오프셋은 슬라이스 헤더에서 시그널링된다.
단순함을 위해, 4개의 상이한 화상 분할 스킴들의 적용에 대한 제한들이 HEVC에서 명시되었다. 주어진 코딩된 비디오 시퀀스는 HEVC에서 명시되는 프로파일들의 대부분에 대해 타일들과 파면들 양자 모두를 포함할 수는 없다. 각각의 슬라이스 및 타일에 대해, 다음의 조건들 중 하나 또는 양자 모두가 충족되어야 한다: 1) 슬라이스 내의 모든 코딩된 트리블록들은 동일한 타일에 속함; 2) 타일 내의 모든 코딩된 트리블록들은 동일한 슬라이스에 속함. 마지막으로, 파면 세그먼트는 정확히 하나의 CTB 행을 포함하며, WPP가 사용 중일 때, 슬라이스가 CTB 행 내에서 시작되면, 이는 동일한 CTB 행에서 끝나야 한다.
HEVC에 대한 최근의 수정안은 http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zip에서 공개적으로 이용가능한, JCT-VC 출력 문서 JCTVC-AC1005, J. Boyce, A. Ramasubramonian, R. Skupin, G. J. Sullivan, A. Tourapis, Y.-K. Wang (editors), "HEVC Additional Supplemental Enhancement Information (Draft 4)," Oct. 24, 2017에서 명시된다. 이러한 수정안이 포함되면, HEVC는 3개의 MCTS 관련 SEI 메시지, 즉 시간적 MCTS들 SEI 메시지, MCTS들 추출 정보 세트 SEI 메시지, 및 MCTS들 추출 정보 내포(nesting) SEI 메시지를 명시한다.
시간적 MCTS들 SEI 메시지는 비트스트림에 MCTS들이 존재함을 표시하고 MCTS들을 시그널링한다. 각각의 MCTS에 대해, 모션 벡터들은 MCTS 내부의 완전-샘플 위치들을 포인팅하고 보간을 위해 MCTS 내부의 완전-샘플 위치들만을 단지 요구하는 분수 샘플 위치들을 포인팅하도록 제한되며, MCTS 밖의 블록들로부터 도출되는 시간적 모션 벡터 예측을 위해 모션 벡터 후보들을 사용하는 것이 허용되지 않는다. 이러한 방식으로, MCTS에 포함되지 않은 타일들이 존재하지 않으면 각각의 MCTS가 독립적으로 디코딩될 수 있다.
MCTS들 추출 정보 세트들 SEI 메시지는 MCTS 세트에 대한 부합하는 비트스트림을 생성하기 위해 (SEI 메시지의 시맨틱스의 일부로서 명시된) MCTS 서브-비트스트림 추출에서 사용될 수 있는 보충 정보를 제공한다. 이러한 정보는 다수의 추출 정보 세트들로 구성되며, 각각의 추출 정보 세트는 다수의 MCTS 세트들을 정의하고 MCTS 서브-비트스트림 추출 프로세스 동안 사용될 대체 VPS들, SPS들, 및 PPS들의 RBSP 바이트들을 포함한다. MCTS 서브-비트스트림 추출 프로세스에 따라 서브-비트스트림을 추출할 때, 파라미터 세트들(VPS들, SPS들, 및 PPS들)이 고쳐쓰기되거나 또는 대체될 필요가 있고, 슬라이스 헤더들이 약간 업데이트될 필요가 있는데 그 이유는 슬라이스 어드레스 관련 신택스 엘리먼트들(first_slice_segment_in_pic_flag 및 slice_segment_address를 포함함) 중 하나 또는 전부가 전형적으로 상이한 값들을 가질 필요가 있을 것이기 때문이다.
3.2. VVC에서의 화상들의 분할
VVC에서, 화상은 하나 이상의 타일 행과 하나 이상의 타일 열로 나누어진다. 타일은 화상의 직사각형 영역을 커버하는 CTU들의 시퀀스이다. 타일 내의 CTU들은 해당 타일 내에서 래스터 스캔 순서로 스캔된다.
슬라이스는 정수개의 완전한 타일들 또는 화상의 타일 내의 정수개의 연속적인 완전한 CTU 행들로 구성된다.
슬라이스들의 2개의 모드들, 즉 래스터-스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터-스캔 슬라이스 모드에서, 슬라이스는 화상의 타일 래스터 스캔에서 완전한 타일들의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 화상의 직사각형 영역을 집합적으로 형성하는 다수의 완전 타일들 또는 화상의 직사각형 영역을 집합적으로 형성하는 하나의 타일의 다수의 연속적인 완전 CTU 행들 중 어느 하나를 포함한다. 직사각형 슬라이스 내의 타일들은 해당 슬라이스에 대응하는 직사각형 영역 내에서 타일 래스터 스캔 순서로 스캔된다.
서브화상은 화상의 직사각형 영역을 집합적으로 커버하는 하나 이상의 슬라이스를 포함한다.
도 1은 화상의 래스터-스캔 슬라이스 분할의 예를 도시하며, 여기서 화상은 12개의 타일들 및 3개의 래스터-스캔 슬라이스들로 나누어진다.
도 2는 화상의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 화상은 24개의 타일들(6개의 타일 열들 및 4개의 타일 행들) 및 9개의 직사각형 슬라이스들로 나누어진다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 화상의 예를 도시하며, 여기서 화상은 4개의 타일들(2개의 타일 열들 및 2개의 타일 행들) 및 4개의 직사각형 슬라이스들로 나누어진다.
도 4는 화상의 서브화상 분할의 예를 도시하며, 여기서 화상은 18개의 타일들로 분할되고, 좌측에 있는 12개의 타일 각각은 4 x 4 CTU들의 하나의 슬라이스를 커버하고 우측에 있는 6개의 타일 각각은 2 x 2 CTU들의 2개의 수직으로 적층된 슬라이스를 커버하며, 함께 다양한 치수들의 24개의 슬라이스 및 24개의 서브화상(각각의 슬라이스는 서브화상임)을 초래한다.
3.3. (JVET-Q2001-vC에서와 같은) VVC에서의 SPS/PPS/화상 헤더/슬라이스 헤더의 시그널링
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
7.3.2.4 화상 파라미터 세트 RBSP 신택스
7.3.2.7 화상 헤더 구조 신택스
7.3.7.1 일반적인 슬라이스 헤더 신택스
3.4. 타일들, 슬라이스들 및 서브화상들에 대한 JVET-Q2001-vC에서의 사양들
3 정의들
화상-레벨 슬라이스 인덱스: rect_slice_flag가 1과 동일할 때 PPS에서 슬라이스들이 시그널링되는 순서로 화상 내의 슬라이스들의 리스트에 대한 슬라이스의 인덱스.
서브화상-레벨 슬라이스 인덱스: rect_slice_flag가 1과 동일할 때 PPS에서 슬라이스들이 시그널링되는 순서로 서브화상 내의 슬라이스들의 리스트에 대한 슬라이스의 인덱스.
6.5.1 CTB 래스터 스캐닝, 타일 스캐닝, 및 서브화상 스캐닝 프로세스들
타일 열 수를 명시하는 변수 NumTileColumns, 및 i번째 타일 열의 폭을 CTB 단위로 명시하는, 0 내지 NumTileColumn - 1(경계 포함)의 범위의 i에 대한 리스트 colWidth[ i ]는 다음과 같이 도출된다:
타일 행 수를 명시하는 변수 NumTileRows, 및 j번째 타일 행의 높이를 CTB 단위로 명시하는, 0 내지 NumTileRows - 1(경계 포함)의 범위의 j에 대한 리스트 RowHeight[ j ]는 다음과 같이 도출된다:
변수 NumTilesInPic는 NumTileColumns * NumTileRows와 동일하게 설정된다.
i번째 타일 열 경계의 위치를 CTB 단위로 명시하는, 0 내지 NumTileColumns(경계 포함)의 범위의 i에 대한 리스트 tileColBd[ i ]는 다음과 같이 도출된다:
주목 1 - 어레이 tileColBd[ ]의 크기는 CtbToTileColBd[ ]의 도출에서의 실제 타일 열 수보다 하나 더 크다.
j번째 타일 행 경계의 위치를 CTB 단위로 명시하는, 0 내지 NumTileRows(경계 포함)의 범위의 j에 대한 리스트 tileRowBd[ j ]는 다음과 같이 도출된다:
주목 2 - 위의 도출에서의 어레이 tileRowBd[ ]의 크기는 CtbToTileRowBd[ ]의 도출에서의 실제 타일 행 수보다 하나 더 크다.
수평 CTB 어드레스로부터 CTB 단위의 좌측 타일 열 경계로의 변환을 명시하는, 0 내지 PicWidthInCtbsY(경계 포함)의 범위의 ctbAddrX에 대한 리스트 CtbToTileColBd[ ctbAddrX ]는 다음과 같이 도출된다:
주목 3 - 위의 도출에서의 어레이 CtbToTileColBd[ ]의 크기는 slice_data() 시그널링에서의 CTB 단위의 실제 화상 폭 수보다 하나 더 크다.
수직 CTB 어드레스로부터 CTB 단위의 상단 타일 열 경계로의 변환을 명시하는, 0 내지 PicHeightInCtbsY(경계 포함)의 범위의 ctbAddrY에 대한 리스트 CtbToTileRowBd[ ctbAddrY ]는 다음과 같이 도출된다:
주목 4 - 위의 도출에서의 어레이 CtbToTileRowBd[ ]의 크기는 slice_data() 시그널링에서의 CTB 단위의 실제 화상 높이 수보다 하나 더 크다.
직사각형 슬라이스들에 대해, i번째 슬라이스 내의 CTU 수를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i에 대한 리스트 NumCtusInSlice[ i ], 슬라이스의 상단-좌측 타일의 인덱스를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i에 대한 리스트 SliceTopLeftTileIdx[ i ], 및 i번째 슬라이스 내의 j번째 CTB의 화상 래스터 스캔 어드레스를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i 및 0 내지 NumCtusInSlice[ i ] - 1(경계 포함)의 범위의 j에 대한 행렬 CtbAddrInSlice[ i ][ j ]는 다음과 같이 도출된다:
} [Ed. (YK): 리스트 ctbToSubpicIdx를 명시하는 식 31은 이러한 식 전에 이동되어야 한다.]
여기서, 함수 AddCtbsToSlice( sliceIdx, startX, stopX, startY, stopY)는 다음과 같이 명시된다: [Ed. (YK): 본 명세서에 정의되는 다른 함수들과 일치하는 스타일로 이러한 함수를 정의하는 것을 고려한다.
0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i에 대한 NumCtusInSlice[ i ]의 값들이 0보다 클 것이라는 점이 비트스트림 적합성의 요건이다. 추가적으로, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i, 및 0 내지 NumCtusInSlice[ i ] - 1(경계 포함)의 범위의 j에 대한 행렬 CtbAddrInSlice[ i ][ j ]가 0 내지 PicSizeInCtbsY - 1의 범위에 있는 모든 CTB 어드레스들을 단지 한 번만 포함할 것이라는 점이 비트스트림 적합성의 요건이다.
화상 래스터 스캔에서의 CTB 어드레스로부터 서브화상 인덱스로의 변환을 명시하는, 0 내지 PicSizeInCtbsY - 1(경계 포함)의 범위의 ctbAddrRs에 대한 리스트 CtbToSubpicIdx[ ctbAddrRs ]는 다음과 같이 도출된다: [Ed. (YK): 이러한 서브조항에서만 사용되므로 CtbToSubpicIdx[ ]를 로컬 변수로서 정의하는 것을 고려한다.]
i번째 서브화상 내의 직사각형 슬라이스 수를 명시하는 리스트 NumSlicesInSubpic[ i ]는 다음과 같이 도출된다:
7.3.4.3 화상 파라미터 세트 RBSP 시맨틱스
...
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 비트이다.
0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 i의 각각의 값에 대한 변수 SubpicIdVal[ i ]는 다음과 같이 도출된다:
다음의 제약들 양자 모두가 적용된다는 점이 비트스트림 적합성의 요건이다:
- 0 내지 sps_num_subpics_minus1의 범위(경계 포함) 내의 i 및 j의 임의의 2개의 차이 값들에 대해, SubpicIdVal[ i ]는 SubpicIdVal [ j ]와 동일하지 않을 것이다.
- 현재 화상이 CLVS의 제1 화상이 아닐 때, 0 내지 sps_num_subpics_minus1의 범위(경계 포함) 내의 i의 각각의 값에 대해, SubpicIdVal [ i ]의 값이 동일한 레이어에서 디코딩 순서로 이전 화상의 SubpicIdVal[ i ]의 값과 동일하지 않으면, 서브화상 인덱스 i를 갖는 현재 화상 내의 서브화상의 모든 코딩된 슬라이스 NAL 유닛들에 대한 nal_unit_type는 IDR_W_RADL 내지 CRA_NUT의 범위(경계 포함) 내의 특정 값과 동일할 것이다.
1과 동일한 no_pic_partition_flag는 PPS를 참조하는 각각의 화상에 화상 분할이 적용되지 않는다는 점을 명시한다. 0과 동일한 no_pic_partition_flag는 PPS를 참조하는 각각의 화상이 하나보다 많은 타일 또는 슬라이스로 분할될 수 있다는 점을 명시한다.
no_pic_partition_flag의 값이 CLVS 내의 코딩된 화상에 의해 참조되는 모든 PPS에 대해 동일할 것이라는 점이 비트스트림 적합성의 요건이다.
sps_num_subpics_minus1 + 1의 값이 1보다 클 때 no_pic_partition_flag의 값이 1과 동일하지 않아야 하는 것은 비트스트림 적합성의 요건이다.
pps_log2_ctu_size_minus5 플러스 5는 각각의 CTU의 루마 코딩 트리 블록 크기를 명시한다. pps_log2_ctu_size_minus5는 sps_log2_ctu_size_minus5와 동일할 것이다.
num_exp_tile_columns_minus1 플러스 1은 명시적으로 제공된 타일 열 폭들의 수를 명시한다. num_exp_tile_columns_minus1의 값은 0 내지 PicWidthInCtbsY - 1(경계 포함)의 범위에 있을 것이다. no_pic_partition_flag가 1과 동일할 때, num_exp_tile_columns_minus1의 값은 0과 동일한 것으로 추론된다.
num_exp_tile_rows_minus1 플러스 1은 명시적으로 제공된 타일 행 높이들의 수를 명시한다. num_exp_tile_rows_minus1의 값은 0 내지 PicHeightInCtbsY - 1(경계 포함)의 범위에 있을 것이다. no_pic_partition_flag가 1과 동일할 때, num_tile_rows_minus1의 값은 0과 동일한 것으로 추론된다.
tile_column_width_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_columns_minus1 - 1(경계 포함)의 범위에 있는 i에 대해 CTB 단위로 i번째 타일 열의 폭을 명시한다. tile_column_width_minus1[num_exp_tile_columns_minus1]은 조항 6.5.1 내에 명시되는 바와 같이 num_exp_tile_columns_minus1 이상의 인덱스를 갖는 타일 열들의 폭을 도출하기 위해 사용된다. tile_column_width_minus1[ i ]의 값은 0 내지 PicWidthInCtbsY - 1(경계 포함)의 범위에 있을 것이다. 존재하지 않을 때, tile_column_width_minus1[ 0 ]의 값은 PicWidthInCtbsY - 1과 동일한 것으로 추론된다.
tile_row_height_minus1[ i ] 플러스 1은 0 내지 num_exp_tile_rows_minus1 - 1(경계 포함)의 범위에 있는 i에 대해 CTB 단위로 i번째 타일 행의 높이를 명시한다. tile_row_height_minus1[num_exp_tile_rows_minus1]은 조항 6.5.1 내에 명시되는 바와 같이 num_exp_tile_rows_minus1 이상의 인덱스를 갖는 타일 행들의 높이를 도출하기 위해 사용된다. tile_row_height_minus1[ i ]의 값은 0 내지 PicHeightInCtbsY - 1(경계 포함)의 범위에 있을 것이다. 존재하지 않을 때, tile_row_height_minus1[ 0 ]의 값은 PicHeightInCtbsY - 1과 동일한 것으로 추론된다.
0과 동일한 rect_slice_flag는 각각의 슬라이스 내의 타일들이 래스터 스캔 순서로 있고 슬라이스 정보가 PPS에서 시그널링되지 않는다는 점을 명시한다. 1과 동일한 rect_slice_flag는 각각의 슬라이스 내의 타일들이 화상의 직사각형 영역을 커버하고 슬라이스 정보가 PPS에서 시그널링된다는 점을 명시한다. 존재하지 않을 때, rect_slice_flag는 1과 동일한 것으로 추론된다. subpic_info_present_flag가 1과 동일할 때, rect_slice_flag의 값은 1과 동일할 것이다.
1과 동일한 single_slice_per_subpic_flag는 각각의 서브화상이 단지 하나의 직사각형 슬라이스로 구성된다는 점을 명시한다. 0과 동일한 single_slice_per_subpic_flag는 각각의 서브화상이 하나 이상의 직사각형 슬라이스로 구성될 수 있다는 점을 명시한다. single_slice_per_subpic_flag가 1과 동일할 때, num_slices_in_pic_minus1의 값은 sps_num_subpics_minus1과 동일한 것으로 추론된다. 존재하지 않을 때, single_slice_per_subpic_flag의 값은 0과 동일한 것으로 추론된다. [Ed. (GJS): 이러한 플래그를 재명명하는 것 또는 이러한 플래그가 각각의 화상에 하나보다 많은 서브화상이 있을 때에 단지 관련이 있다는 해석을 회피하기 위해 다른 방식으로 명확히 하는 것을 고려한다.]
num_slices_in_pic_minus1 플러스 1은 PPS를 참조하는 각각의 화상 내의 직사각형 슬라이스들의 수를 명시한다. num_slices_in_pic_minus1의 값은 0 내지 MaxSlicesPerPicture-1의 범위(경계 포함) 있을 것이며, 여기서 MaxSlicesPerPicture는 부록 A에 명시된다. no_pic_partition_flag가 1과 동일할 때, num_slices_in_pic_minus1의 값은 0과 동일한 것으로 추론된다.
0과 동일한 tile_idx_delta_present_flag는 tile_idx_delta 값들이 PPS 내에 존재하지 않고 PPS를 참조하는 화상들 내의 모든 직사각형 슬라이스들이 조항 6.5.1 내에 정의되는 프로세스에 따라 래스터 순서로 명시된다는 점을 명시한다. [Ed. (RS): 식에 대한 참조를 추가한다.] 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에 명시되는 바와 같이 추론된다. [Ed. (YK): 식에 대한 참조를 추가한다.]
slice_height_in_tiles_minus1[ i ] 플러스 1은 타일 행 단위로 i번째 직사각형 슬라이스의 높이를 명시한다. slice_height_in_tiles_minus1[ i ]의 값은 0 내지 NumTileRows - 1(경계 포함)의 범위에 있을 것이다.
slice_height_in_tiles_minus1[ i ]가 존재하지 않을 때, 다음이 적용된다:
- NumTileRows가 1과 동일하거나, 또는 tile_idx_delta_present_flag가 0과 동일하고 tileIdx % NumTileColumns가 0보다 크면, slice_height_in_tiles_minus1[ i ]의 값은 0과 동일한 것으로 추론된다.
- 그렇지 않으면(NumTileRows가 1과 동일하지 않고, tile_idx_delta_present_flag가 1과 동일하거나 또는 tileIdx% NumTileColumns가 0과 동일함), tile_idx_delta_present_flag가 1과 동일하거나 또는 tileIdx% NumTileColumns가 0과 동일할 때, slice_height_in_tiles_minus1[ i ]의 값은 slice_height_in_tiles_minus1[ i-1 ]과 동일한 것으로 추론된다.
num_exp_slices_in_tile[ i ]는 하나보다 많은 직사각형 슬라이스를 포함하는 현재 타일에서의 명시적으로 제공된 슬라이스 높이들의 수를 명시한다. num_exp_slices_in_tile[ i ]의 값은 0 내지 RowHeight[ tileY ] - 1(경계 포함)의 범위에 있을 것이며, 여기서 tileY는 i번째 슬라이스를 포함하는 타일 행 인덱스이다. 존재하지 않을 때, num_exp_slices_in_tile[ i ]의 값은 0과 동일한 것으로 추론된다. num_exp_slices_in_tile[ i ]가 0과 동일할 때, 변수 NumSlicesInTile[ i ]의 값은 1과 동일한 것으로 도출된다.
exp_slice_height_in_ctus_minus1[ j ] 플러스 1은 현재 타일에서의 j번째 직사각형 슬라이스의 높이를 CTU 행 단위로 명시한다. exp_slice_height_in_ctus_minus1[ j ]의 값은 0 내지 RowHeight[ tileY ] - 1(경계 포함)의 범위에 있을 것이며, 여기서 tileY는 현재 타일의 타일 행 인덱스이다.
num_exp_slices_in_tile[ i ]가 0보다 클 때, 0 내지 NumSlicesInTile[ i ] - 1의 범위에 있는 k에 대한 변수 NumSlicesInTile[ i ] 및 SliceHeightInCtusMinus1[ i + k ]는 다음과 같이 도출된다:
tile_idx_delta[ i ]는 i번째 직사각형 슬라이스에서의 제1 타일의 타일 인덱스와 ( i + 1 ) 번째 직사각형 슬라이스에서의 제1 타일의 타일 인덱스 사이의 차이를 명시한다. tile_idx_delta[ i ]의 값은 -NumTilesInPic + 1 내지 NumTilesInPic - 1(경계 포함)의 범위에 있을 것이다. 존재하지 않을 때, tile_idx_delta[ i ]의 값은 0과 동일한 것으로 추론된다. 존재할 때, tile_idx_delta[ i ]의 값은 0과 동일하지 않을 것이다.
...
7.4.2.4.5 VCL NAL 유닛들의 순서 및 코딩된 화상들에 대한 이들의 연관
코딩된 화상 내의 VCL NAL 유닛들의 순서는 다음과 같이 제약된다:
- 코딩된 화상의 임의의 2개의 코딩된 슬라이스 NAL 유닛 A 및 B에 대해, subpicIdxA 및 subpicIdxB를 그들의 서브화상 레벨 인덱스 값들이라고 하고, sliceAddrA 및 sliceddrB를 그들의 slice_address 값들이라고 한다.
- 다음의 조건들 중 어느 하나가 참일 때, 코딩된 슬라이스 NAL 유닛 A는 코딩된 슬라이스 NAL 유닛 B보다 선행해야 한다:
- subpicIdxA는 subpicIdxB보다 작다.
- subpicIdxA가 subpicIdxB와 동일하고 sliceAddrA가 sliceAddrB보다 작다.
7.4.8.1 일반적인 슬라이스 헤더 시맨틱스
cu_qp_delta_abs를 포함하는 코딩 유닛에 대한 루마 양자화 파라미터와 그 예측 사이의 차이를 명시하는 변수 CuQpDeltaVal은 0과 동일하게 설정된다. cu_chroma_qp_offset_flag를 포함하는 코딩 유닛에 대한 Qp'Cb, Qp'Cr, 및 Qp'CbCr 양자화 파라미터들의 각각의 값들을 결정할 때 사용될 값들을 명시하는 변수들 CuQpOffsetCb, CuQpOffsetCr, 및 CuQpOffsetCbCr는 모두 0과 동일하게 설정된다.
1과 동일한 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더 내에 존재한다는 점을 명시한다. 0과 동일한 picture_header_in_slice_header_flag는 PH 신택스 구조가 슬라이스 헤더 내에 존재하지 않는다는 점을 명시한다.
picture_header_in_slice_header_flag의 값이 CLVS 내의 모든 코딩된 슬라이스들에서 동일할 것이라는 점이 비트스트림 적합성의 요건이다.
코딩된 슬라이스에 대해 picture_header_in_slice_header_flag가 1과 동일할 때, PH_NUT와 동일한 nal_unit_type를 갖는 VCL NAL 유닛이 CLVS 내에 존재하지 않을 것이라는 점이 비트스트림 적합성의 요건이다.
picture_header_in_slice_header_flag가 0과 동일할 때, 현재 화상 내의 모든 코딩된 슬라이스들은 0과 동일한 picture_header_in_slice_header_flag를 가질 것이고, 현재 PU는 PH NAL 유닛을 가질 것이다.
slice_subpic_id는 슬라이스를 포함하는 서브화상의 서브화상 ID를 명시한다. slice_subpic_id가 존재하면, SubpicIdVal[ CurrSubpicIdx ]가 slice_subpic_id와 동일하도록 변수 CurrSubpicIdx의 값이 도출된다. 그렇지 않으면(slice_subpic_id가 존재하지 않으면), CurrSubpicIdx는 0과 동일하게 도출된다. slice_subpic_id의 길이는 sps_subpic_id_len_minus1 + 1 비트이다.
slice_address는 슬라이스의 슬라이스 어드레스를 명시한다. 존재하지 않을 때, slice_address의 값은 0과 동일한 것으로 추론된다. rect_slice_flag가 1과 동일하고 NumSlicesInSubpic[ CurrSubpicIdx ]가 1과 동일할 때, slice_address의 값은 0과 동일한 것으로 추론된다.
rect_slice_flag가 0과 동일하면, 다음이 적용된다:
- 슬라이스 어드레스는 래스터 스캔 타일 인덱스이다.
- slice_address의 길이는 Ceil( Log2 ( NumTilesInPic ) ) 비트이다.
- slice_address의 값은 0 내지 NumTilesInPic - 1의 범위(경계 포함) 내에 있을 것이다.
그렇지 않으면(rect_slice_flag가 1과 동일함), 다음이 적용된다:
- 슬라이스 어드레스는 슬라이스의 서브화상-레벨 슬라이스 인덱스이다.
- slice_address의 길이는 Ceil( Log2( NumSlicesInSubpic[ CurrSubpicIdx ] ) ) 비트이다.
- slice_address의 값은 0 내지 NumSlicesInSubpic[ CurrSubpicIdx ] - 1의 범위(경계 포함) 내에 있을 것이다.
다음 제약들이 적용된다는 점이 비트스트림 적합성의 요건이다:
- rect_slice_flag가 0과 동일하거나 또는 subpic_info_present_flag가 0과 동일하면, slice_address의 값은 동일한 코딩된 화상의 임의의 다른 코딩된 슬라이스 NAL 유닛의 slice_address의 값과 동일하지 않을 것이다.
- 그렇지 않으면, slice_subpic_id 및 slice_address 값들의 쌍은 동일한 코딩된 화상의 임의의 다른 코딩된 슬라이스 NAL 유닛의 slice_subpic_id 및 slice_address 값들의 쌍과 동일하지 않을 것이다.
- 화상의 슬라이스들의 형상들은 각각의 CTU가, 디코딩될 때, 화상 경계로 구성되는 또는 이전에 디코딩된 CTU(들)의 경계들로 구성되는 그 전체 좌측 경계와 전체 상단 경계를 가지도록 하는 것이다.
sh_extra_bit[ i ]는 1 또는 0과 동일할 수 있다. 이러한 사양의 이러한 버전을 준수하는 디코더들은 sh_extra_bit[ i ]의 값을 무시할 것이다. 그 값은 이러한 버전의 사양 내에 명시되는 프로파일들에 대한 디코더 적합성에 영향을 미치지 않는다.
num_tiles_in_slice_minus1 플러스 1은, 존재할 때, 슬라이스 내의 타일들의 수를 명시한다. num_tiles_in_slice_minus1의 값은 0 내지 NumTilesInPic - 1(경계 포함)의 범위에 있을 것이다.
현재 슬라이스 내의 CTU 수를 명시하는 변수 NumCtusInCurrSlice, 및 슬라이스 내의 i번째 CTB의 화상 래스터 스캔 어드레스를 명시하는, 0 내지 NumCtusInCurrSlice - 1(경계 포함)의 범위의 i에 대한, 리스트 CtbAddrInCurrSlice[ i ]는 다음과 같이 도출된다:
변수들 SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos, 및 SubpicBotBoundaryPos는 다음과 같이 도출된다:
3.5. LMCS(Luma Mapping with Chroma Scaling)
LMCS는 2개의 양태들: 루마 매핑(RP에 의해 표기되는, 리셰이핑 프로세스) 및 루마 의존적 CRS(chroma residual scaling)를 포함한다. 루마 신호에 대해, LMCS 모드는 원래 도메인인 제1 도메인과 리셰이핑 모델들에 따라 루마 샘플들을 특정 값들에 매핑하는 리셰이핑된 도메인인 제2 도메인을 포함하는 2개의 도메인들이 수반되는 것에 기초하여 동작한다. 또한, 크로마 신호에 대해, 스케일링 인자들이 루마 샘플들로부터 도출되는 잔차 스케일링이 적용될 수 있다.
SPS, PH(picture header) 및 SH(slice header)의 관련 신택스 엘리먼트들 및 시맨틱스는 다음과 같이 설명된다:
신택스 테이블들
7.3.2.3
시퀀스 파라미터 세트 RBSP 신택스
7.3.2.7
화상 헤더 구조 신택스
7.3.7
슬라이스 헤더 신택스
7.3.7.1
일반적인 슬라이스 헤더 신택스
시맨틱스
1과 동일한 sps_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 CLVS에서 사용된다는 점을 명시한다. 0과 동일한 sps_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 CLVS에서 사용되지 않는다는 점을 명시한다.
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과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 인에이블된다는 점을 명시한다. 0과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 인에이블되지 않는다는 점을 명시한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이것은 0과 동일한 것으로 추론된다.
3.6. 아핀 코딩된 블록들에 대한 AMVR(Adaptive Motion Vector difference Resolution)
아핀 AMVR은 아핀 인터 코딩된 블록이 MV 차이들을, 1/4 루마 샘플(디폴트, amvr_flag가 0으로 설정됨), 1/16 루마 샘플, 1 루마 샘플의 정밀도로와 같이, 상이한 해상도들로 송신하는 것을 허용하는 코딩 툴이다.
SPS에서의 관련 신택스 엘리먼트들 및 시맨틱스는 다음과 같이 설명된다:
신택스 테이블들
7.3.2.3
시퀀스 파라미터 세트 RBSP 신택스
시맨틱스
1과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드의 모션 벡터 코딩에서 적응 모션 벡터 차이 해상도가 사용된다는 점을 명시한다. 0과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드의 모션 벡터 코딩에서 적응 모션 벡터 차이 해상도가 사용되지 않는다는 점을 명시한다. 존재하지 않을 때, sps_affine_amvr_enabled_flag의 값은 0과 동일한 것으로 추론된다.
3.7. 서브화상 레벨 정보 SEI 메시지
D.7.1 서브화상 레벨 정보 SEI 메시지 신택스
D.7.2 서브화상 레벨 정보 SEI 메시지 시맨틱스
서브화상 레벨 정보 SEI 메시지는 부록 A에 따라 서브화상 시퀀스들을 포함하는 추출된 비트스트림들의 적합성을 테스트할 때 비트스트림 내의 서브화상 시퀀스들이 부합하는 레벨에 관한 정보를 포함한다.
CLVS의 임의의 화상에 대한 서브화상 레벨 정보 SEI 메시지가 존재할 때, CLVS의 제1 화상에 대한 서브화상 레벨 정보 SEI 메시지가 존재할 것이다. 서브화상 레벨 정보 SEI 메시지는 디코딩 순서상 현재 화상부터 CLVS의 끝까지 현재 레이어에 대해 지속된다. 동일한 CLVS에 적용되는 모든 서브화상 레벨 정보 SEI 메시지들은 동일한 콘텐츠를 가질 것이다. 서브화상 시퀀스는 서브화상 인덱스의 동일한 값을 갖는 CLVS 내의 모든 서브화상들로 구성된다.
CLVS에 대한 서브화상 레벨 정보 SEI 메시지가 존재할 때, subpic_treated_as_pic_flag[ i ]의 값이 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 i의 각각의 값에 대해 1과 동일할 것이라는 점이 비트스트림 적합성의 요건이다.
num_ref_levels_minus1 플러스 1은 sps_num_subpics_minus1 + 1개의 서브화상 각각에 대해 시그널링되는 참조 레벨 수를 명시한다.
0과 동일한 sli_cbr_constraint_flag는 추출된 서브-비트스트림 내의 임의의 CPB 사양을 사용하는 HRD를 사용하여 조항 C.7에 따라 비트스트림의 임의의 서브화상의 추출로부터 초래하는 서브-비트스트림들을 디코딩하기 위해, 가상 스트림 스케줄러 (HSS)가 간헐적 비트 레이트 모드에서 동작한다는 점을 명시한다. sli_cbr_constraint_flag가 1과 동일한 것은 HSS가 CBR(constant bit rate) 모드에서 동작한다는 점을 명시한다.
explicit_fraction_present_flag가 1과 동일한 것은 신택스 엘리먼트들 ref_level_fraction_minus1[ i ]가 존재한다는 점을 명시한다. explicit_fraction_present_flag가 0과 동일한 것은 신택스 엘리먼트들 ref_level_fraction_minus1[ i ]가 존재하지 않는다는 점을 명시한다.
sli_num_subpics_minus1 플러스 1은 CLVS의 화상들에서의 서브화상 수를 명시한다. 존재할 때, sli_num_subpics_minus1의 값은 CLVS에서의 화상들에 의해 참조되는 SPS 내의 sps_num_subpics_minus1의 값과 동일할 것이다.
sli_alignment_zero_bit는 0과 동일할 것이다.
ref_level_idc[ i ]는 부록 A에 명시되는 바와 같이 각각의 서브화상이 부합하는 레벨을 표시한다. 비트스트림들은 부록 A에 명시되는 것들 이외의 ref_level_idc의 값들을 포함하지 않을 것이다. ref_level_idc[ i ]의 다른 값들은 ITU-T | ISO/IEC에 의한 미래 사용을 위해 예약된다. ref_level_idc[ i ]의 값이 i보다 큰 k의 임의의 값에 대해 ref_level_idc[ k ] 이하일 것이라는 점이 비트스트림 적합성의 요건이다.
ref_level_fraction_minus1[ i ][ j ] 플러스 1은 조항 A.4.1에 명시되는 바와 같이 j번째 서브화상이 부합하는 ref_level_idc[ i ]와 연관된 레벨 한계들의 분율을 명시한다.
변수 SubpicSizeY[ j ]는 ( subpic_width_minus1[ j ] + 1 ) * CtbSizeY * ( subpic_height_minus1[ j ] + 1 ) * CtbSizeY와 동일하게 설정된다.
존재하지 않을 때, ref_level_fraction_minus1[ i ][ j ]의 값은 Ceil( 256 * SubpicSizeY[ j ] ÷ PicSizeInSamplesY * MaxLumaPs( general_level_idc ) ÷ MaxLumaPs( ref_level_idc[ i ] ) - 1과 동일한 것으로 추론된다. [Ed. (HD): PicSizeInSamplesY는 여기서 조항 A.4.2에 명시되는 바와 같이 PicSizeMaxInSamplesY가 되어서는 안 되는가?]
변수 RefLevelFraction[ i ][ j ]는 ref_level_fraction_minus1[ i ][ j ] + 1과 동일하게 설정된다.
변수들 SubpicNumTileCols[ j ] 및 SubpicNumTileRows[ j ]는 다음과 같이 도출된다:
변수들 SubpicCpbSizeVcl[ i ][ j ] 및 SubpicCpbSizeNal[ i ][ j ]는 다음과 같이 도출된다:
조항 A.4.2에 명시되는 바와 같이 MaxCPB는 ref_level_idc[ i ]로부터 도출된다.
변수들 SubpicBitRateVcl[ i ][ j ] 및 SubpicBitRateNal[ i ][ j ]는 다음과 같이 도출된다:
조항 A.4.2에 명시되는 바와 같이 MaxBR은 ref_level_idc[ i ]로부터 도출된다.
주목 1 - 서브화상이 추출될 때, 결과적인 비트스트림은 SubpicCpbSizeVcl[ i ][ j ] 및 SubpicCpbSizeNal[ i ][ j ] 이상인 CpbSize(SPS에서 표시되거나 또는 추론됨) 및 SubpicBitRateVcl[ i ][ j ] 및 SubpicBitRateNal[ i ][ j ] 이상인 BitRate(SPS에서 표시되거나 또는 추론됨)를 갖는다.
0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 j에 대해 j번째 서브화상을 추출하는 것 및 0 내지 num_ref_level_minus1(경계 포함)의 범위에 있는 i에 대해 ref_level_idc[ i ]와 동일한 레벨 및 0과 동일한 general_tier_flag를 갖는 프로파일에 부합하는 것으로부터 초래되는 비트스트림들이 부록 C에 명시되는 바와 같이 각각의 비트스트림 적합성 테스트에 대한 다음의 제약들에 부합할 것이라는 점이 비트스트림 적합성의 요건이다:
- Ceil( 256 * SubpicSizeY[ j ] ÷ RefLevelFraction[ i ][ j ] )는 MaxLumaPs 이하일 것이며, 여기서 레벨 ref_level_idc[ i ]에 대한 MaxLumaPs는 테이블 A.1에 명시된다.
- Ceil( 256 * ( subpic_width_minus1[ j ] + 1 ) * CtbSizeY ÷ RefLevelFraction[ i ][ j ] )의 값은 Sqrt( MaxLumaPs * 8 )이하일 것이다.
- Ceil( 256 * ( subpic_width_minus1[ j ] + 1 ) * CtbSizeY ÷ RefLevelFraction[ i ][ j ] )의 값은 Sqrt( MaxLumaPs * 8 )이하일 것이다.
- SubpicNumTileCols[ j ]의 값은 MaxTileCols 이하일 것이고 SubpicNumTileRows[ j ]의 값은 MaxTileRows 이하일 것이며, 여기서 레벨 ref_level_idc[ i ]에 대한 MaxTileCols 및 MaxTileRows는 테이블 A.1에 명시된다.
- SubpicNumTileCols[ j ] * SubpicNumTileRows[ j ]의 값은 MaxTileCols * MaxTileRows * RefLevelFraction[ i ][ j ] 이하일 것이며, 여기서 레벨 ref_level_idc[ i ]에 대한 MaxTileCols 및 MaxTileRows는 테이블 A.1에 명시된다.
- j번째 서브화상에 대응하는 AU 0에 대한 NumBytesInNalUnit 변수들의 합은 AU 0의 SubpicSizeInSamplesY의 값에 대한 FormatCapabilityFactor * ( Max(SubpicSizeY[ j ], fR * MaxLumaSr * RefLevelFraction[ i ][ j ] ÷ 256 ) + MaxLumaSr * ( AuCpbRemovalTime[ 0 ] - AuNominalRemovalTime[ 0 ] ) * RefLevelFraction[ i ][ j ] ) ÷ ( 256 * MinCr )이하일 것이며, 여기서 MaxLumaSr 및 FormatCapabilityFactor은 레벨 ref_level_idc[ i ]에서 AU 0에 적용되는, 각각, 테이블 A.2 및 테이블 A.3에 명시되는 값들이고, MinCr은 A.4.2에 표시되는 바와 같이 도출된다. [Ed. (RS): fR은 A.4.2에 정의되는 프로파일-특정 변수이다.]
- j번째 서브화상에 대응하는 AU n(단, n은 0보다 큼)에 대한 NumBytesInNalUnit 변수들의 합은 FormatCapabilityFactor * MaxLumaSr * ( AuCpbRemovalTime[ n ] - AuCpbRemovalTime[ n - 1 ] ) * RefLevelFraction[ i ][ j ] ÷ ( 256 * MinCr )이하일 것이며, 여기서 MaxLumaSr 및 FormatCapabilityFactor은 레벨 ref_level_idc[ i ]에서 AU n에 적용되는, 각각, 테이블 A.2 및 테이블 A.3에 명시되는 값들이고, MinCr은 A.4.2에 표시되는 바와 같이 도출된다.
하나 이상의 서브화상을 포함하고 서브화상 인덱스들의 리스트 SubpicSetIndices 및 서브화상 세트 내의 서브화상 수 NumSubpicsInSet로 구성되는 임의의 서브화상 세트에 대해, 서브화상 세트의 레벨 정보가 도출된다.
참조 레벨 ref_level_idc[ i ]와 관련하여 총 레벨 분율에 대한 변수 SubpicSetAccLevelFraction[ i ], 및 서브화상 세트의 변수들 SubpicSetCpbSizeVcl[ i ], SubpicSetCpbSizeNal[ i ], SubpicSetBitRateVcl[ i ], 및 SubpicSetBitRateNal[ i ]는 다음과 같이 도출된다:
서브화상 세트 시퀀스 레벨 표시자 SubpicSetLevelIdc의 값은 다음과 같이 도출된다:
여기서 ref_level_idc[ i ]에 대한 MaxTileCols 및 MaxTileRows는 테이블 A.1에 명시된다.
general_tier_flag가 0과 동일하고 레벨이 SubpicSetLevelIdc와 동일한 프로파일에 부합하는 서브화상 세트 비트스트림은 부록 C에 명시되는 바와 같은 각각의 비트스트림 적합성 테스트에 대해 다음과 같은 제약들을 따를 것이다:
- VCL HRD 파라미터들에 대해, SubpicSetCpbSizeVcl[ i ]는 CpbVclFactor * MaxCPB 이하일 것이며, 여기서 CpbVclFactor은 테이블 A.3에 명시되고 MaxCPB는 CpbVclFactor 비트 단위로 테이블 A.1에 명시된다.
- NAL HRD 파라미터들에 대해, SubpicSetCpbSizeNal[ i ]는 CpbNalFactor * MaxCPB 이하일 것이며, 여기서 CpbNalFactor은 테이블 A.3에 명시되고, MaxCPB는 CpbNalFactor 비트 단위로 테이블 A.1에 명시된다.
- VCL HRD 파라미터들에 대해, SubpicSetBitRateVcl[ i ]는 CpbVclFactor * MaxBR 이하일 것이며, 여기서 CpbVclFactor은 테이블 A.3에 명시되고 MaxBR은 CpbVclFactor 비트 단위로 테이블 A.1에 명시된다.
- NAL HRD 파라미터들에 대해, SubpicSetBitRateNal[ i ]는 CpbNalFactor * MaxCR 이하일 것이며, 여기서 CpbNalFactor은 테이블 A.3에 명시되고 MaxBR은 CpbNalFactor 비트 단위로 테이블 A.1에 명시된다.
주목 2 - 서브화상 세트가 추출될 때, 결과적인 비트스트림은 SubpicSetCpbSizeVcl[ i ][ j ] 및 SubpicSetCpbSizeNal[ i ][ j ] 이상인 CpbSize(SPS에서 표시되거나 또는 추론됨) 및 SubpicSetBitRateVcl[ i ][ j ] 및 SubpicSetBitRateNal[ i ][ j ] 이상인 BitRate(SPS에서 표시되거나 또는 추론됨)를 갖는다.
3.8. 스케일링 리스트
현재의 VVC 초안 텍스트 내의 스케일링 리스트들에 대한 가장 관련된 텍스트들은 다음과 같다:
시퀀스 파라미터 세트 RBSP 신택스 및 시맨틱스
1과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용된다는 점을 명시한다. 0과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용되지 않는다는 점을 명시한다.
...
화상 헤더 구조 신택스 및 시맨틱스
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_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과 동일한 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과 동일한 것으로 추론된다.
...
변환 계수들에 대한 스케일링 프로세스
...
x = 0..nTbW - 1, y = 0..nTbH - 1인 스케일링된 변환 계수들 d[ x ][ y ]의 도출을 위해, 다음이 적용된다:
- 중간 스케일링 인자 m [x] [y]는 다음과 같이 도출된다:
- 다음의 조건들 중 하나 이상이 참이면, m[ x ][ y ]는 16과 동일하게 설정된다:
- sps_scaling_list_enabled_flag가 0과 동일하다.
- ph_scaling_list_present_flag는 0과 동일하다
- transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]는 1과 동일하다.
- scaling_matrix_for_lfnst_disabled_flag는 1과 동일하고 ApplyLfnstFlag는 1과 동일하다.
- ...
...
7.3.2.5
적응 파라미터 세트 RBSP 신택스
7.3.2.21
스케일링 리스트 데이터 신택스
1과 동일한 scaling_matrix_for_lfnst_disabled_flag는 LFNST로 코딩된 블록들에 스케일링 행렬들이 적용되지 않는다는 점을 명시한다. 0과 동일한 scaling_matrix_for_lfnst_disabled_flag는 LFNST로 코딩된 블록들에 스케일링 행렬들이 적용될 수 있다는 점을 명시한다.
4. 개시된 기술적 해결책들에 의해 해결되는 기술적 문제점들
VVC에서의 서브화상들 및 LMCS에 대한 기존의 설계들은 다음과 같은 문제점들을 갖는다:
1) 식 D.5에서의 리스트 SubpicNumTileRows[](서브화상에 포함되는 타일 행 수를 명시함)의 도출은 올바르지 않은데, 그 이유는 이러한 식에서 CtbToTileRowBd[idx]에서의 인덱스 값 idx가 최대 허용 값보다 클 수 있기 때문이다. 또한, SubpicNumTileRows[] 및 SubpicNumTileCols[](서브화상에 포함되는 타일 열 수를 명시함) 양자 모두의 도출은 CTU 기반 동작을 사용하며, 이는 불필요하게 복잡하다.
2) single_slice_per_subpic_flag가 1과 동일할 때 식 29에서의 어레이 CtbAddrInSlice의 도출은 부정확한데, 그 이유는 각각의 슬라이스에 대한 어레이 내의 래스터 스캔 CTB 어드레스들의 값들이 CTU들의 래스터 스캔 순서 대신에 CTU들의 디코딩 순서로 있을 필요가 있기 때문이다.
3) LMCS 시그널링은 비효율적이다. ph_lmcs_enabled_flag가 1과 동일할 때, 대부분의 경우들에서, 화상의 모든 슬라이스들에 대해 LMCS가 인에이블될 것이다. 그러나, 현재 VVC 설계에서, 화상의 모든 슬라이스들에 대해 LMCS가 인에이블되는 경우에, ph_lmcs_enabled_flag가 1과 동일할 뿐만 아니라, 값이 1인 slice_lmcs_enabled_flag가 각각의 슬라이스에 대해 시그널링될 필요가 있다.
a. ph_lmcs_enabled_flag의 시맨틱스는 ph_lmcs_enabled_flag가 참일 때 시그널링 슬라이스 레벨 LMCS 플래그의 동기와 충돌한다. 현재 VVC에서, ph_lmcs_enabled_flag가 참일 때, 이는 모든 슬라이스들이 LMCS를 인에이블할 것이라는 점을 의미한다. 따라서, 슬라이스 헤더에서 LMCS 인에이블 플래그들을 추가로 시그널링할 필요가 없다.
b. 또한, 화상 헤더가 LMCS가 인에이블될 때, 전형적으로, 모든 슬라이스들에 대해, LMCS가 모두 인에이블된다. 슬라이스 헤더에서 LCMS를 제어하는 것은 주로 코너 케이스들(corner cases)을 처리하기 위한 것이다. 따라서, PH LMCS 플래그가 참이고 SH LMCS 플래그가 항상 시그널링되면, 이는 공통 사용자 경우들에 대해 불필요한 비트들이 시그널링되는 것을 결과할 수 있다.
4) 각각의 아핀 인터 코딩된 CU에 대해, 아핀 AMVR이 인에이블되거나 또는 디스에이블될 수 있기 때문에, SPS 아핀 AMVR 플래그의 시맨틱스가 정확하지 않다.
5) 슬라이스 헤더 내의 스케일링 리스트 플래그, 즉, slice_scaling_list_present_flag는 변환 계수들에 대한 스케일링 프로세스를 제어하기 위해 사용되지 않고 실제로 쓸모없다.
6) 심지어 slice_scaling_list_present_flag가 변환 계수들에 대한 스케일링 프로세스를 제어하기 위해 사용될 때에도, 스케일링 리스트 시그널링은 비효율적이다. ph_scaling_list_present_flag가 1과 동일할 때, 대부분의 경우들에서, 화상의 모든 슬라이스들에 대해 명시적 스케일링 리스트가 사용될 것이다. 그러나, 현재의 VVC 설계에서, 화상의 모든 슬라이스들에 대해 명시적 스케일링 리스트가 인에이블되는 경우에, ph_scaling_list_present_flag가 1과 동일할 필요가 있을 뿐만 아니라, 값 1을 갖는 슬라이스 플래그 slice_scaling_list_present_flag가 각각의 슬라이스에 대해 시그널링될 필요가 있다.
7) LFNST 코딩된 블록에 대해, 잔차 분포는 단지 주 변환만이 적용될 때와 상이할 수 있다. 명시적으로 시그널링된 스케일링 리스트가 이들 LFNST 코딩된 블록들에 적용되지 않을 가능성이 더 높다. 그러나, 명시적으로 시그널링된 스케일링 리스트를 적용하는 것이 허용되는지 여부는 불필요한 비트들을 낭비할 수 있는 APS에서 시그널링된다.
5. 기법들 및 실시예들의 예들
위 문제점들, 및 언급되지 않은 일부 다른 문제점들을 해결하기 위해, 아래에 요약되는 바와 같은 방법들이 개시된다. 항목들은 일반적인 개념을 설명하기 위한 예로서 고려되어야 하며 좁은 방식으로 해석되어서는 안된다. 또한, 이러한 항목들은 개별적으로 적용될 수 있거나 또는 임의의 방식으로 조합될 수 있다.
제1 및 제2 문제점들을 해결하기 위한 서브화상들 관련
1. 다음의 접근법들 중 하나 이상이 개시된다:
a. 화상의 각각의 CTU 열의 타일 열 인덱스가 도출된다.
b. 서브화상에 포함되는 타일 열들의 수의 도출은 서브화상에 포함되는 가장-좌측 및/또는 가장-우측 CTU들의 타일 열 인덱스들에 기초한다.
c. 화상의 각각의 CTU 행의 타일 행 인덱스가 도출된다.
d. 서브화상에 포함되는 타일 행들의 수의 도출은 서브화상에 포함되는 상단 및/또는 하단 CTU들의 타일 행 인덱스들에 기초한다.
e. 화상-레벨 슬라이스 인덱스라는 용어는 다음과 같이 정의된다: rect_slice_flag가 1과 동일할 때 정의되는, single_slice_per_subpic_flag가 0과 동일할 때는 슬라이스들이 PPS에서 시그널링되는 순서로 되어 있는, 또는 single_slice_per_subpic_flag가 1과 동일할 때는 슬라이스들에 대응하는 서브화상의 서브화상 인덱스들이 증가하는 순서로 되어 있는 화상 내의 슬라이스들의 리스트에 대한 슬라이스의 인덱스.
f. 하나의 예에서, 서브화상이 타일로부터 분할되는 슬라이스를 포함할 때 서브화상의 높이는 타일들의 관점에서 카운트될 수 없다.
g. 하나의 예에서, 서브화상의 높이는 타일들 대신에 CTU들의 관점에서 카운트될 수 있다.
h. 서브화상의 높이가 하나의 타일 행보다 작은지가 도출된다.
i. 하나의 예에서, 서브화상의 높이가 하나의 타일 행보다 작은지는 서브화상이 하나의 타일 행으로부터의 CTU들만을 단지 포함할 때 그리고 서브화상 내의 상단 CTU들이 타일 행의 상단 CTU들이 아니거나 또는 서브화상 내의 하단 CTU들이 타일 행의 하단 CTU들이 아닐 때 참으로 도출된다.
ii. 각각의 서브화상이 단지 하나의 슬라이스만을 포함하고 서브화상의 높이가 하나의 타일 행보다 작은 것으로 표시될 때, 화상의 화상-레벨 슬라이스 인덱스 i를 갖는 각각의 슬라이스에 대해, 0 내지 슬라이스 내의 CTU 수 마이너스 1(경계 포함)의 범위에 있는 j에 대한 CtbAddrInSlice[ i ][ j ]의 값은 서브화상의 CTU 래스터 스캔에서 j번째 CTU의 화상 래스터 스캔 CTU 어드레스인 것으로 도출된다.
iii. 하나의 예에서, 서브화상의 높이가 하나의 타일 행보다 작은지는 서브화상 내의 상단 CTU들과 서브화상 내의 하단 CTU들 사이의 거리가 CTU들의 관점에서 타일의 높이보다 작을 때 참으로 도출된다.
iv. 각각의 서브화상이 단지 하나의 슬라이스만을 포함하고 서브화상의 높이가 하나의 타일 행 이상인 것으로 표시될 때, 화상의 화상-레벨 슬라이스 인덱스 i를 갖는 각각의 슬라이스에 대해, 0 내지 슬라이스 내의 CTU 수 마이너스 1(경계 포함)의 범위에 있는 j에 대한 CtbAddrInSlice[ i ][ j ]의 값은 다음의 CTU 순서에서 j번째 CTU의 화상 래스터 스캔 CTU 어드레스인 것으로 도출된다:
1) 서브화상 내의 상이한 타일들 내의 CTU들은 더 작은 값의 타일 인덱스를 갖는 제1 타일 내의 제1 CTU가 더 큰 값의 타일 인덱스를 갖는 제2 타일 내의 제2 CTU 전에 가도록 정렬된다.
2) 서브화상 내의 하나의 타일 내의 CTU들은 타일의 CTU 래스터 스캔에서 정렬된다.
제3 문제점(서브-문제점들을 포함함)을 해결하기 위한 LMCS 관련
2. (2개의 양태들: 루마 매핑(RP에 의해 표기되는, 리셰이핑 프로세스) 및 루마 의존적 CRS(chroma residual scaling)를 포함하는) LMCS의 2-레벨 제어가 도입되며, 여기서 상위 레벨(예를 들어, 화상 레벨) 및 하위 레벨(예를 들어, 슬라이스 레벨) 제어가 사용되고 하위 레벨 제어 정보가 존재하는지는 하이 레벨 제어 정보에 의존한다. 또한, 다음이 적용된다:
a. 제1 예에서, 아래의 서브-불릿들 중 하나 이상이 적용된다:
i. LMCS가 하위 레벨에서 어떻게 인에이블되는지를 명시하기 위해 제1 표시자(예를 들어, ph_lmcs_enabled_type)가 상위 레벨에서(예를 들어, PH(picture header)에서) 시그널링될 수 있으며, 제1 표시자는 비-이진 값이다.
1) 하나의 예에서, 제1 표시자가 X와 동일할 때(예를 들어, X = 2), PH와 연관된 모든 슬라이스들에 대해 LMCS가 인에이블된다는 점을 명시하고; 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, 이것은 LMCS가 PH와 연관된 하나 이상이지만 전부는 아닌 슬라이스들에 대해 인에이블된다는 점을 명시하고; 제1 표시자가 Z(Z!=X 및 Z!=Y)(예를 들어, Z=0)와 동일할 때, 이것은 PH와 연관된 모든 슬라이스들에 대해 LMCS가 디스에이블된다는 점을 명시한다.
a) 대안적으로, 또한, 제1 표시자가 존재하지 않을 때, 표시자의 값은 Z와 같은 디폴트 값과 동일한 것으로 추론된다.
2) 하나의 예에서, 제1 표시자가 X와 동일할 때(예를 들어, X = 2), PH와 연관된 모든 슬라이스들에 대해 LMCS가 디스에이블된다는 점을 명시하고; 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, PH와 연관된 하나 이상이지만 전부는 아닌 슬라이스들에 대해 LMCS가 디스에이블된다는 점을 명시하고; 제1 표시자가 Z(Z!=X 및 Z!=Y)(예를 들어, Z=0)와 동일할 때, 이것은 PH와 연관된 모든 슬라이스들에 대해 LMCS가 인에이블된다는 점을 명시한다.
a) 대안적으로, 또한, 제1 표시자가 존재하지 않을 때, 표시자의 값은 X와 같은 디폴트 값과 동일한 것으로 추론된다.
3) 대안적으로, 또한, 제1 표시자는 시퀀스 레벨에서 LMCS 인에이블링 플래그의 값(예를 들어, sps_lmcs_enabled_flag)에 따라 조건부로 시그널링될 수 있다.
4) 대안적으로, 또한, 제1 표시자는 u(v), 또는 u(2) 또는 ue(v)로 코딩될 수 있다.
5) 대안적으로, 또한, 제1 표시자는 절단된 단항 코드로 코딩될 수 있다.
6) 대안적으로, 또한, 슬라이스들 및/또는 CS 인에이블링 플래그(예를 들어, ph_chroma_residual_scale_flag)에 의해 사용되는 LMCS APS 정보(예를 들어, ph_lmcs_aps_id)는 제1 표시자의 값들의 조건 체크 하에서 시그널링될 수 있다.
ii. 하위 레벨에 대한 LMCS를 인에이블/디스에이블하는 제2 표시자(예를 들어, slice_lmcs_enabled_flag)는 하위 레벨에서(예를 들어, 슬라이스 헤더에서) 시그널링될 수 있고 이것은 제1 표시자의 값을 체크하는 것에 의해 조건부로 시그널링될 수 있다.
1) 하나의 예에서, 제2 표시자는 '제1 표시자가 Y와 동일하다(the first indicator is equal to Y)'는 조건 체크 하에서 시그널링될 수 있다.
a) 대안적으로, 제2 표시자는 '제1 표시자의 값 >> 1(the value of first indicator >> 1)' 또는 '제1 표시자의 값/2(the value of first indicator/2)' 또는 '제1 표시자의 값 & 0x01(the value of first indicator & 0x01)'의 조건 체크 하에서 시그널링될 수 있다.
b) 대안적으로, 또한, 제1 표시자가 X와 동일할 때 인에이블되는 것으로 추론될 수 있거나; 또는 제1 표시자가 Z와 동일할 때 디스에이블되는 것으로 추론될 수 있다.
b. 제2 예에서, 아래의 서브-불릿들 중 하나 이상이 적용된다:
i. LMCS가 하위 레벨에서 어떻게 인에이블되는지를 명시하기 위해 하나보다 많은 표시자가 (예를 들어, PH(picture header)에서) 상위 레벨에서 시그널링될 수 있다.
1) 하나의 예에서, 2개의 표시자들(예를 들어, 2개의 1-비트 플래그)이 PH에서 시그널링될 수 있다.
a) 하나의 예에서, 제1 표시자는 LMCS를 인에이블하는 PH와 연관된 적어도 하나의 슬라이스가 있는지를 명시한다. 그리고 제2 표시자는 PH와 연관된 모든 슬라이스들이 LMCS를 인에이블시키는지를 명시한다.
i. 대안적으로, 또한, 제2 표시자는, 예를 들어, 제1 표시자가 LMCS를 인에이블하는 적어도 하나의 슬라이스가 존재한다고 명시할 때, 제1 표시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제2 표시자가 존재하지 않을 때, 모든 슬라이스들이 LMCS를 인에이블하는 것으로 추론된다.
ii. 대안적으로, 또한, 제3 표시자는, 예를 들어, 제2 표시자가 모든 슬라이스들이 LMCS를 인에이블하지 않는다는 점을 명시할 때, 제2 표시자의 값에 따라 SH에서 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제3 표시자가 존재하지 않을 때, 이것은 제1 및/또는 제2 표시자의 값에 따라 추론될 수 있다(예를 들어, 제1 표시자의 값과 동일한 것으로 추론됨).
b) 대안으로서, 제1 표시자는 LMCS를 디스에이블하는 PH와 연관된 적어도 하나의 슬라이스가 있는지를 명시한다. 그리고 제2 표시자는 PH와 연관된 모든 슬라이스들이 LMCS를 디스에이블시키는지를 명시한다.
i. 대안적으로, 또한, 제2 표시자는, 예를 들어, 제1 표시자가 LMCS를 디스에이블하는 적어도 하나의 슬라이스가 존재한다고 명시할 때, 제1 표시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제2 표시자가 존재하지 않을 때, PH와 연관된 모든 슬라이스들이 LMCS를 디스에이블하는 것으로 추론된다.
ii. 대안적으로, 또한, 제3 표시자는, 예를 들어, 제2 표시자가 모든 슬라이스들이 LMCS를 디스에이블하지 않는다는 점을 명시할 때, 제2 표시자의 값에 따라 SH에서 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제3 표시자가 존재하지 않을 때, 이것은 제1 및/또는 제2 표시자의 값에 따라 추론될 수 있다(예를 들어, 제1 표시자의 값과 동일한 것으로 추론됨).
2) 대안적으로, 또한, 제1 표시자는 시퀀스 레벨에서 LMCS 인에이블링 플래그의 값(예를 들어, sps_lmcs_enabled_flag)에 따라 조건부로 시그널링될 수 있다.
ii. 하위 레벨에 대한 LMCS를 인에이블/디스에이블하는 제3 표시자(예를 들어, slice_lmcs_enabled_flag)는 하위 레벨에서(예를 들어, 슬라이스 헤더에서) 시그널링될 수 있고, 이것은 제1 표시자 및/또는 제2 표시자의 값을 체크하는 것에 의해 조건부로 시그널링될 수 있다.
1) 하나의 예에서, 제3 표시자는 '모든 슬라이스들이 LMCS를 인에이블하지는 않음' 또는 '모든 슬라이스들이 LMCS를 디스에이블하지는 않음'의 조건 체크 하에서 시그널링될 수 있다.
c. 또 다른 예에서, 제1/제2 예에서 언급된 제1 및/또는 제2 및/또는 제3 표시자는 LMCS 대신에 RP 또는 CRS의 사용을 제어하기 위해 사용될 수 있다.
3. SPS/PH/SH에서의 3개의 LMCS 플래그의 시맨틱스는 다음과 같이 업데이트된다:
1과 동일한 sps_lmcs_enabled_flag는 크로마 스케일링이 사용되는 루마 매핑이 CLVS에서 사용될 수 있다는 점을 명시한다. 0과 동일한 sps_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 CLVS에서 사용되지 않는다는 점을 명시한다.
1과 동일한 ph_lmcs_enabled_flag는, PH와 연관된 모든 슬라이스에 대해 크로마 스케일링을 갖는 루마 매핑이 인에이블되어 사용될 수 있다는 점을 명시한다. 0과 동일한 ph_lmcs_enabled_flag는, 크로마 스케일링을 갖는 루마 매핑이 PH와 연관된 모든 슬라이스들에 대해 사용되지 않거나, 또는 이들 중 하나 이상에 대해 디스에이블될 수 있다는 점을 명시한다. 존재하지 않을 때, ph_lmcs_enabled_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 사용되는 것이 인에이블된다는 점을 명시한다. 0과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 사용되는 것이 인에이블되지 않는다는 점을 명시한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이것은 0과 동일한 것으로 추론된다.
a. PH 및/또는 SH LMCS 시그널링은 LMCS가 화상의 모든 슬라이스들에 대해 사용될 때 LMCS 시그널링이 SH에 존재하지 않도록 변경된다.
i. 대안적으로, 또한, LMCS가 어떻게 추론되는지는 PH LMCS 시그널링에 의존한다.
1) 하나의 예에서, LMCS가 화상의 모든 슬라이스들에 대해 사용될 때 인에이블되는 것으로 추론되고; LMCS가 화상의 모든 슬라이스들에 대해 사용되지 않을 때 디스에이블되는 것으로 추론된다.
아핀 AMVR 관련
4. SPS에서의 아핀 AMVR 플래그의 시맨틱스는 다음과 같이 업데이트된다:
1과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드의 모션 벡터 코딩에서 적응 모션 벡터 차이 해상도가 사용될 수 있다는 점을 명시한다. 0과 동일한 sps_affine_amvr_enabled_flag는 아핀 인터 모드의 모션 벡터 코딩에서 적응 모션 벡터 차이 해상도가 사용되지 않는다는 점을 명시한다. 존재하지 않을 때, sps_affine_amvr_enabled_flag의 값은 0과 동일한 것으로 추론된다.
제5 및 제6 문제점들을 해결하기 위한 스케일링 리스트 관련
5. 블록에 대해, 변환 계수들 및/또는 비-변환 계수들에 대한 스케일링 프로세스는 화상, 예를 들어, 슬라이스보다 작은 비디오 영역과 연관된 신택스 엘리먼트에 따라 제어된다.
a. 하나의 예에서, 변환 계수들에 대한 스케일링 프로세스를 제어하기 위해 SPS 플래그 sps_scaling_list_enabled_flag 및 PH 플래그 ph_scaling_list_present_flag를 사용하는 것 대신에, 예를 들어, 실시예 3에서와 같이, 슬라이스 헤더 내의 스케일링 리스트 플래그, 예를 들어, slice_scaling_list_present_flag가 사용된다.
6. 명시적 스케일링 리스트의 2-레벨 제어가 도입되며, 여기서 상위 레벨 제어(예를 들어, 화상 레벨) 및 하위 레벨(예를 들어, 슬라이스 레벨) 제어가 사용되고 하위 레벨 제어 정보가 존재하는지는 하이 레벨 제어 정보에 의존한다. 명시적 스케일링 리스트는 변환 계수들 및/또는 비-변환 계수들에 대한 스케일링 프로세스에서 사용될 수 있다. 또한, 다음이 적용된다:
a. 제1 예에서, 아래의 서브-불릿들 중 하나 이상이 적용된다:
i. 제1 비-이진-값 표시자(예를 들어, ph_explicit_scaling_list_enabled_type)는 명시적 스케일링 리스트가 하위 레벨에서 어떻게 인에이블되는지를 명시하기 위해 상위 레벨에서(예를 들어, PH(picture header)에서) 시그널링될 수 있다.
1) 하나의 예에서, 제1 표시자가 X와 동일할 때(예를 들어, X = 2), PH와 연관된 모든 슬라이스에 대해 명시적 스케일링 리스트가 인에이블된다고 명시하고; 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, PH와 연관된 하나 이상이지만 전부는 아닌 슬라이스들에 대해 명시적 스케일링 리스트가 인에이블된다는 점을 명시하고; 제1 표시자가 Z(Z!=X 및 Z!=Y)(예를 들어, Z=0)와 동일할 때, PH와 연관된 모든 슬라이스들에 대해 명시적 스케일링 리스트가 디스에이블된다는 점을 명시한다.
a) 대안적으로, 또한, 제1 표시자가 존재하지 않을 때, 표시자의 값은 Z와 같은 디폴트 값과 동일한 것으로 추론된다.
b) 대안적으로, 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, 이는 슬라이스를 디코딩할 때 변환 및/또는 비-변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 화상에 대해 인에이블된다는 점을 명시한다.
c) 대안적으로, 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, 이는 슬라이스를 디코딩할 때 변환 및/또는 비-변환 계수들에 대한 스케일링 프로세스에서의 명시적 스케일링 리스트의 사용이 화상에 대해 인에이블될 수 있다는 점을 명시한다.
2) 하나의 예에서, 제1 표시자가 X와 동일할 때(예를 들어, X = 2), PH와 연관된 모든 슬라이스에 대해 명시적 스케일링 리스트가 디스에이블된다고 명시하고; 제1 표시자가 Y와 동일할 때 (Y != X)(예를 들어, Y=1), PH와 연관된 하나 이상이지만 전부는 아닌 슬라이스들에 대해 명시적 스케일링 리스트가 디스에이블된다는 점을 명시하고; 제1 표시자가 Z(Z!=X 및 Z!=Y)(예를 들어, Z=0)와 동일할 때, PH와 연관된 모든 슬라이스들에 대해 명시적 스케일링 리스트가 인에이블된다는 점을 명시한다.
a) 대안적으로, 또한, 제1 표시자가 존재하지 않을 때, 표시자의 값은 X와 같은 디폴트 값과 동일한 것으로 추론된다.
b) 대안적으로, 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, 이는 슬라이스를 디코딩할 때 변환 및/또는 비-변환 계수들에 대한 스케일링 프로세스에서의 명시적 스케일링 리스트의 사용이 화상에 대해 디스에이블될 수 있다는 점을 명시한다.
c) 대안적으로, 제1 표시자가 Y(Y != X)(예를 들어, Y=1)와 동일할 때, 이는 슬라이스를 디코딩할 때 변환 및/또는 비-변환 계수들에 대한 스케일링 프로세스에서의 명시적 스케일링 리스트의 사용이 화상에 대해 디스에이블된다는 점을 명시한다.
3) 대안적으로, 또한, 제1 표시자는 시퀀스 레벨에서 명시적 스케일링 리스트 인에이블링 플래그의 값(예를 들어, sps_explicit_scaling_list_enabled_flag)에 따라 조건부로 시그널링될 수 있다.
4) 대안적으로, 또한, 제1 표시자는 u(v), 또는 u(2) 또는 ue(v)로 코딩될 수 있다.
5) 대안적으로, 또한, 제1 표시자는 절단된 단항 코드로 코딩될 수 있다.
6) 대안적으로, 또한, 슬라이스들에 의해 사용되는 스케일링 리스트 APS 정보(예를 들어, ph_explicit_scaling_list_aps_id)는 제1 표시자의 값들의 조건 체크 하에서 시그널링될 수 있다.
ii. 하위 레벨에 대한 명시적 스케일링 리스트를 인에이블/디스에이블하는 제2 표시자(예를 들어, slice_scaling_list_present_flag)는 하위 레벨에서(예를 들어, 슬라이스 헤더에서) 시그널링될 수 있고, 제1 표시자의 값을 체크하는 것에 의해 조건부로 시그널링될 수 있다.
1) 하나의 예에서, 제2 표시자는 '제1 표시자가 Y와 동일하다(the first indicator is equal to Y)'는 조건 체크 하에서 시그널링될 수 있다.
a) 대안적으로, 제2 표시자는 '제1 표시자의 값 >> 1(the value of first indicator >> 1)' 또는 '제1 표시자의 값/2(the value of first indicator/2)' 또는 '제1 표시자의 값 & 0x01(the value of first indicator & 0x01)'의 조건 체크 하에서 시그널링될 수 있다.
b) 대안적으로, 또한, 제2 표시자는 존재하지 않을 수 있고 제1 표시자가 X와 동일할 때 인에이블되는 것으로 추론될 수 있거나; 또는 제1 표시자가 Z와 동일할 때 디스에이블되는 것으로 추론될 수 있다.
b. 제2 예에서, 아래의 서브-불릿들 중 하나 이상이 적용된다:
iii. 명시적 스케일링 리스트가 하위 레벨에서 어떻게 인에이블되는지를 명시하기 위해 하나보다 많은 표시자가 상위 레벨에서(예를 들어, PH(picture header)에서) 시그널링될 수 있다.
1) 하나의 예에서, 2개의 표시자들(예를 들어, 2개의 1-비트 플래그)이 PH에서 시그널링될 수 있다.
a) 하나의 예에서, 제1 표시자는 명시적 스케일링 리스트를 인에이블하는 PH와 연관된 적어도 하나의 슬라이스가 있는지를 명시한다. 그리고 제2 표시자는 PH와 연관된 모든 슬라이스들이 명시적 스케일링 리스트를 인에이블하는지를 명시한다.
i. 대안적으로, 또한, 제2 표시자는, 예를 들어, 제1 표시자가 명시적 스케일링 리스트를 인에이블하는 적어도 하나의 슬라이스가 있다는 점을 명시할 때, 제1 표시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제2 표시자가 존재하지 않을 때, 모든 슬라이스들이 명시적 스케일링 리스트를 인에이블한다고 추론된다.
ii. 대안적으로, 제1 표시자가 적합성 비트-스트림에서 거짓이면 제2 표시자가 거짓이어야 한다는 점이 요구된다.
ii. 대안적으로, 또한, 예를 들어, 제1 표시자가 적어도 하나의 슬라이스가 명시적 스케일링 리스트를 인에이블한다는 점을 명시하고 제2 표시자가 모든 슬라이스들이 명시적 스케일링 리스트를 인에이블하지는 않는 점을 명시할 때, 제3 표시자는 제1 표시자의 값 및 제2 표시자의 값 중 적어도 하나에 따라 SH에서 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제3 표시자가 존재하지 않을 때, 이것은 제1 및/또는 제2 표시자의 값에 따라 추론될 수 있다(예를 들어, 제1 표시자의 값과 동일한 것으로 추론됨).
b) 대안적으로, 제1 표시자는 명시적 스케일링 리스트를 디스에이블하는 PH와 연관된 적어도 하나의 슬라이스가 있는지를 명시한다. 그리고 제2 표시자는 PH와 연관된 모든 슬라이스가 명시적 스케일링 리스트를 디스에이블하는지를 명시한다.
i. 대안적으로, 또한, 제2 표시자는, 예를 들어, 제1 표시자가 명시적 스케일링 리스트를 디스에이블하는 적어도 하나의 슬라이스가 있다는 점을 명시할 때, 제1 표시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제2 표시자가 존재하지 않을 때, PH와 연관된 모든 슬라이스들이 명시적 스케일링 리스트를 디스에이블하는 것으로 추론된다.
ii. 대안적으로, 또한, 예를 들어, 제1 표시자가 적어도 하나의 슬라이스가 명시적 스케일링 리스트를 인에이블한다는 점을 명시하고 제2 표시자가 모든 슬라이스들이 명시적 스케일링 리스트를 디스에이블하지는 않는 점을 명시할 때, 제3 표시자는 제1 표시자의 값 및 제2 표시자의 값 중 적어도 하나에 따라 SH에서 조건부로 시그널링될 수 있다.
i. 대안적으로, 또한, 제3 표시자가 존재하지 않을 때, 이것은 제1 및/또는 제2 표시자의 값에 따라 추론될 수 있다(예를 들어, 제1 표시자의 값과 동일한 것으로 추론됨).
2) 대안적으로, 또한, 제1 표시자는 시퀀스 레벨에서 명시적 스케일링 리스트 인에이블링 플래그의 값(예를 들어, sps_explicit_scaling_list_enabled_flag)에 따라 조건부로 시그널링될 수 있다.
iv. 하위 레벨에 대한 명시적 스케일링 리스트를 인에이블/디스에이블하는 제3 표시자(예를 들어, slice_explicit_scaling_list_enabled_flag)는 하위 레벨에서(예를 들어, 슬라이스 헤더에서) 시그널링될 수 있고, 제1 표시자 및/또는 제2 표시자의 값을 체크하는 것에 의해 조건부로 시그널링될 수 있다.
1) 하나의 예에서, 제3 표시자는, '모든 슬라이스가 명시적 스케일링 리스트를 인에이블하지는 않는다' 또는 '모든 슬라이스가 명시적 스케일링 리스트를 디스에이블하지는 않는다'의 조건 체크 하에서 시그널링될 수 있다.
c. 제3 예에서, 명시적 스케일링 리스트가 하위 레벨에서(예를 들어, 슬라이스 헤더 (SH)에서) 어떻게 인에이블되는지를 명시하기 위해 2개의 1-비트 플래그가 상위 레벨에서(예를 들어, PH(picture header)에서) 시그널링될 수 있다.
i. 1과 동일한 제1 PH 플래그(예를 들어, ph_all_slices_use_explicit_scaling_list_flag로 명명됨)는 화상의 모든 슬라이스들이 명시적 스케일링 리스트를 사용한다는 점을 명시한다. 0과 동일한 제1 PH 플래그는 화상의 각각의 슬라이스가 명시적 스케일링 리스트를 사용할 수 있거나 또는 사용하지 않을 수 있다는 점을 명시한다.
ii. 1과 동일한 제2 제1 PH 플래그(예를 들어, ph_no_slice_uses_explicit_scaling_list_flag로 명명됨)는 화상의 어떠한 슬라이스도 명시적 스케일링 리스트를 사용하지 않는다는 점을 명시한다. 0과 동일한 제2 PH 플래그는 화상의 각각의 슬라이스가 명시적 스케일링 리스트를 사용할 수 있거나 또는 사용하지 않을 수 있다는 점을 명시한다.
iii. 제2 PH 플래그는 제1 PH 플래그가 0과 동일할 때에만 단지 시그널링된다.
iv. 제1 PH 플래그가 1과 동일할 때 또는 (제1 PH 플래그가 0과 동일하고 제2 PH 플래그가 0과 동일할 때), 스케일링 리스트 APS ID가 PH에서 시그널링된다.
v. 제1 PH 플래그가 0과 동일하고 제2 플래그가 0과 동일할 때, SH 플래그(예를 들어, slice_use_explicit_scaling_list_flag로 명명됨)가 SH에서 시그널링된다.
vi. 제1 PH 플래그가 1과 동일할 때, SH 플래그의 값은 0과 동일한 것으로 추론된다.
vii. 제1 PH 플래그가 0과 동일하고 제2 PH 플래그가 0과 동일할 때, SH 플래그의 값은 0과 동일한 것으로 추론된다.
viii. SH 플래그의 값이 1과 동일하면, 슬라이스를 디코딩하기 위해 명시적 스케일링 리스트가 사용된다. 그렇지 않으면, 슬라이스를 디코딩하기 위해 명시적 스케일링 리스트가 사용된다.
d. 제4 예에서, 스케일링 리스트 관련 양태들(예를 들어, 인에이블/디스에이블, APS ID들) 중 하나 이상 또는 각각이 PH 또는 SH에 존재하는지에 대한 하나 이상의 표시자가 시그널링될 수 있다.
i. 대안적으로, 하나의 표시자가 사용되고, 또한, 표시자는 1-비트 플래그이다.
1) 하나의 예에서, 표시자가 관련 양태들이 PH에 존재한다고 명시할 때, 모든 슬라이스들은 PH에 제시된 값들을 추론하고, 이러한 관련 양태들의 시그널링은 SH에서 스킵된다.
2) 하나의 예에서, 표시자가 관련 양태들이 SH에 존재한다고 명시할 때, 이들 관련 양태들의 시그널링은 PH에서 스킵된다.
ii. 하나의 예에서, 하나 이상의 표시자는 PH에서 시그널링된다.
iii. 다른 예에서, 하나 이상의 표시자는 PPS에서 시그널링된다.
iv. 다른 예에서, 하나 이상의 표시자는 SPS에서 시그널링된다.
7. LFNST 코딩된 블록들에 대한 명시적 스케일링 리스트를 인에이블할지는 APS 대신에 시퀀스/화상/슬라이스 레벨로 표시될 수 있다.
a. 하나의 예에서, 신택스 엘리먼트(예를 들어, 플래그)는 SPS/PPS/PH/SH에서 시그널링될 수 있다.
i. 대안적으로, 또한, 신택스 엘리먼트는 LFNST가 인에이블되는지(예를 들어, sps_lfnst_enabled_flag가 1과 동일함)의 조건 체크 하에서 시그널링될 수 있다.
ii. 대안적으로, 또한, 비디오 블록에 대해, 명시적 스케일링 리스트 또는 디폴트 스케일링 리스트를 적용할지는 신택스 엘리먼트의 값 및 LFNST가 이러한 비디오 블록에 대해 인에이블되는지에 의존할 수 있다.
8. 비디오 유닛의 경계를 따르는 비디오 유닛의 샘플들에 대한 디-블록킹 필터링 프로세스는 패딩된 샘플들에 기초하여 수행될 수 있는 것이 제안된다. 도 11은 예를 도시하며, 여기서 샘플들 p0, p1 및 p2는 비디오 유닛의 경계를 따르는 비디오 유닛의 샘플들이고, 샘플들 q0, q1 및 q2는 필터링 프로세스에서 사용될 패딩된 샘플들이다.
a. 하나의 예에서, 비디오 유닛은 화상일 수 있다.
b. 하나의 예에서, 비디오 유닛은 서브화상일 수 있다.
c. 하나의 예에서, 비디오 유닛은 슬라이스일 수 있다.
d. 하나의 예에서, 비디오 유닛은 타일일 수 있다.
e. 하나의 예에서, 비디오 유닛은 GDR(gradual decoding refresh) 내의 리프레시된 영역일 수 있고, 경계는 화상 내의 리프레시되지 않은 영역과 리프레시된 영역 사이의 경계일 수 있으며, 또한 이러한 경계는 가상 경계로서 시그널링될 수 있다.
f. 하나의 예에서, 패딩은 중복된 방식으로 수행될 수 있다. 예를 들어, q0, q1 및 q2의 값은 모두 p0의 값과 동일하게 설정될 수 있다.
하나의 예에서, 패딩은 대칭 방식으로 수행될 수 있다. 예를 들어, q0, q1 및 q2의 값은 각각 p0, p1 및 p2의 값과 동일하게 설정될 수 있다.
6. 실시예들
실시예들에서, 특정 텍스트는 사양의 현재 버전에 대한 변경들을 강조하기 위해 볼드체이고 이탤릭체이다. 이탤릭체 텍스트는 대응하는 실시예에 대한 현재의 VVC 사양의 설명으로부터 삭제될 것이다.
6.1. 실시예 1: 서브화상들의 지원
본 실시예는 항목 1 및 그 서브-항목들에 대한 것이다.
3 정의들
화상-레벨 슬라이스 인덱스: rect_slice_flag가 1과 동일할 때 정의되는, single_slice_per_subpic_flag가 0과 동일할 때는 슬라이스들이 PPS에서 시그널링되는 순서로 되거나, 또는 single_slice_per_subpic_flag가 1과 동일할 때는 슬라이스들에 대응하는 서브화상의 서브화상 인덱스들이 증가하는 순서로 되어 있는 화상 내의 슬라이스들의 리스트에 대한 슬라이스의 인덱스.
화상-레벨 슬라이스 인덱스: rect_slice_flag가 1과 동일할 때 PPS에서 슬라이스들이 시그널링되는 순서로 화상 내의 슬라이스들의 리스트에 대한 슬라이스의 인덱스.
6.5.1 CTB 래스터 스캐닝, 타일 스캐닝, 및 서브화상 스캐닝 프로세스들
...
수평 CTB 어드레스로부터 CTB 단위의 좌측 타일 열 경계로 및 타일 열 인덱스로의 변환을, 각각, 명시하는, 0 내지 PicWidthInCtbsY(경계 포함)의 범위의 ctbAddrX에 대한 리스트들 CtbToTileColBd[ ctbAddrX ] 및 ctbToTileColIdx[ ctbAddrX ] 는 다음과 같이 도출된다:
주목 3 - 위의 도출에서의 어레이들 CtbToTileColBd[ ] 및 ctbToTileColIdx[ ]의 크기는 CTB 단위의 실제 화상 폭보다 하나 더 크다.
수직 CTB 어드레스로부터 CTB 단위의 상단 타일 열 경계로 및 타일 행 인덱스로의 변환을, 각각, 명시하는, 0 내지 PicHeightInCtbsY(경계 포함)의 범위의 ctbAddrY에 대한 리스트들 CtbToTileRowBd[ ctbAddrY ] 및 ctbToTileRowIdx[ ctbAddrY ]는 다음과 같이 도출된다:
주목 4 - 위의 도출에서의 어레이들 CtbToTileRowBd[ ] 및 ctbToTileRowIdx[ ]의 크기들은 CTB 단위의 실제 화상 높이보다 하나 더 크다.
타일 열들 및 행들에서 i번째 서브화상의 폭 및 높이를, 각각, 명시하는, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위의 i에 대한 리스트들 SubpicWidthInTiles[ i ] 및 SubpicHeightInTiles[ i ], 및 i번째 서브화상의 높이가 하나의 타일 행보다 작은지를 명시하는, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위의 i에 대한 리스트 subpicHeightLessThanOneTileFlag[ i ]는 다음과 같이 도출된다:
대안적으로, 위의 식에서, 다음의 조건은:
다음과 같이 변경될 수 있다:
주목 5 - 타일이 다수의 직사각형 슬라이스들로 분할되고 단지 타일의 직사각형 슬라이스들의 서브세트만이 i번째 서브화상에 포함될 때, 타일은 SubpicHeightInTiles[ i ]의 값에서 하나의 타일로서 카운트된다.
rect_slice_flag가 1과 동일할 때, i번째 슬라이스 내의 CTU 수를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i에 대한 리스트 NumCtusInSlice[ i ], 슬라이스에서의 첫 번째 CTU를 포함하는 타일의 타일 인덱스를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i에 대한 리스트 SliceTopLeftTileIdx[ i ], 및 i번째 슬라이스 내의 j번째 CTB의 화상 래스터 스캔 어드레스를 명시하는, 0 내지 num_slices_in_pic_minus1(경계 포함)의 범위의 i 및 0 내지 NumCtusInSlice[ i ] - 1(경계 포함)의 범위의 j에 대한 행렬 CtbAddrInSlice[ i ][ j ], 및 i번째 슬라이스를 포함하는 타일 내의 슬라이스 수를 명시하는, 변수 NumSlicesInTile[ i ]는 다음과 같이 도출된다:
D.7.2 서브화상 레벨 정보 SEI 메시지 시맨틱스
...
ref_level_fraction_minus1[ i ][ j ] 플러스 1은 조항 A.4.1에 명시되는 바와 같이 j번째 서브화상이 부합하는 ref_level_idc[ i ]와 연관된 레벨 한계들의 분율을 명시한다.
변수 SubpicSizeY[ j ]는 ( subpic_width_minus1[ j ] + 1 ) * CtbSizeY * ( subpic_height_minus1[ j ] + 1 ) * CtbSizeY와 동일하게 설정된다.
존재하지 않을 때, ref_level_fraction_minus1[ i ][ j ]의 값은 Ceil( 256 * SubpicSizeY[ j ] ÷ PicSizeInSamplesY * MaxLumaPs( general_level_idc ) ÷ MaxLumaPs( ref_level_idc[ i ] ) - 1과 동일한 것으로 추론된다.
변수 RefLevelFraction[ i ][ j ]는 ref_level_fraction_minus1[ i ][ j ] + 1과 동일하게 설정된다.
변수들 SubpicNumTileCols[ j ] 및 SubpicNumTileRows[ j ]는 다음과 같이 도출된다:
- SubpicWidthInTiles[ j ]의 값은 MaxTileCols 이하일 것이고 SubpicHeightInTiles[ j ]의 값은 MaxTileRows 이하일 것이며, 여기서 레벨 ref_level_idc[ i ]에 대한 MaxTileCols 및 MaxTileRows는 테이블 A.1에 명시된다.
- SubpicWidthInTiles[ j ] * SubpicHeightInTiles[ j ]의 값은 MaxTileCols * MaxTileRows * RefLevelFraction[ i ][ j ] 이하일 것이며, 여기서 레벨 ref_level_idc[ i ]에 대한 MaxTileCols 및 MaxTileRows는 테이블 A.1에 명시된다.
...
참조 레벨 ref_level_idc[ i ]와 관련하여 총 레벨 분율에 대한 변수 SubpicSetAccLevelFraction[ i ], 및 서브화상 세트의 변수들 SubpicSetCpbSizeVcl[ i ], SubpicSetCpbSizeNal[ i ], SubpicSetBitRateVcl[ i ], 및 SubpicSetBitRateNal[ i ]는 다음과 같이 도출된다:
6.2. 실시예 2: LMCS의 지원
본 실시예에서, 화상의 모든 슬라이스들에 대해 LMCS가 사용될 때, LMCS 시그널링이 SH에 존재하지 않도록, 화상 헤더에서의 LMCS 관련 신택스 엘리먼트들의 신택스 및 시맨틱스가 수정된다.
7.3.2.7
화상 헤더 구조 신택스
7.3.7.1
일반적인 슬라이스 헤더 신택스
M과 동일한 ph_lmcs_enabled_typeflag(예를 들어, M = 1) 1은 PH와 연관된 모든 슬라이스들에 대해 크로마 스케일링을 갖는 루마 매핑이 인에이블된다는 점을 명시한다. N과 동일한 ph_lmcs_enabled_type(예를 들어, N = 2)은 PH와 연관된 적어도 하나의 슬라이스에 대해 크로마 스케일링을 갖는 루마 매핑이 인에이블되고 적어도 하나의 슬라이스에 대해 디스에이블된다는 점을 명시한다. 0과 동일한 ph_lmcs_enabled_typeflag는 PH와 연관된 모든 슬라이스들에 대해 크로마 스케일링을 갖는 루마 매핑이 하나 이상에 대해 디스에이블되거나 또는 디스에이블된다는 점을 명시한다. ph_lmcs_enabled_type의 값은 0, M, 또는 N과 동일할 것이다. 존재하지 않을 때, ph_lmcs_enabled_typeflag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 인에이블된다는 점을 명시한다. 0과 동일한 slice_lmcs_enabled_flag는 크로마 스케일링을 갖는 루마 매핑이 현재 슬라이스에 대해 인에이블되지 않는다는 점을 명시한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이는 [[0]] (ph_lmcs_enabled_type ? 1 : 0)과 동일한 것으로 추론된다. 대안적으로, slice_lmcs_enabled_flag가 존재하지 않을 때, 이것은 0 ( ph_lmcs_enabled_type = =M ) ? 1 : 0과 동일한 것으로 추론된다.
위의 예들에서, M 및 N의 값들은, 각각, 1 및 2로 설정될 수 있다. 대안적으로, M 및 N의 값들은, 각각, 2 및 1로 설정될 수 있다.
6.3. 실시예 3: 스케일링 리스트의 지원을 위한 approach#1
본 실시예에서, 스케일링 리스트에 관련된 텍스트가 수정되어, 변환 계수들에 대한 스케일링 프로세스를 제어하기 위해 스케일링 리스트에 대한 SPS 플래그와 스케일링 리스트에 대한 PH 플래그를 사용하는 것 대신에, 슬라이스 헤더 내의 스케일링 리스트 플래그가 사용된다.
시퀀스 파라미터 세트 RBSP 신택스 및 시맨틱스
1과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용된다는 점을 명시한다. 0과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용되지 않는다는 점을 명시한다.
1과 동일한 sps_explicit_scaling_list_enabled_flag는, 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서, 스케일링 리스트 APS에서 시그널링되는, 명시적 스케일링 리스트의 사용이 CLVS에 대해 인에이블된다는 점을 명시한다. 0과 동일한 sps_explicit_scaling_list_enabled_flag는, 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 CLVS에 대해 디스에이블된다는 점을 명시한다.
...
화상 헤더 구조 신택스 및 시맨틱스
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_present_flag의 값은 0과 동일한 것으로 추론된다.
1과 동일한 ph_explicit_scaling_list_enabled_flag는, 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서, 참조된 스케일링 리스트 APS(즉, SCALING_APS와 동일한 aps_params_type 및 ph_explicit_scaling_list_aps_id와 동일한 adaptation_parameter_set_id를 갖는 APS)에서 시그널링되는, 명시적 스케일링 리스트의 사용이 화상에 대해 인에이블된다는 점을 명시한다. 0과 동일한 ph_explicit_scaling_list_enabled_flag는 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 화상에 대해 디스에이블된다는 점을 명시한다. 존재하지 않을 때, ph_explicit_scaling_list_enabled_flag의 값은 0과 동일한 것으로 추론될 수 있다.
ph_explicit_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다. SCALING_APS와 동일한 aps_params_type 및 ph_explicit_scaling_list_aps_id와 동일한 adaptation_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 화상의 TemporalId 이하일 것이다.
...
일반적인 슬라이스 헤더 신택스 및 시맨틱스
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과 동일한 것으로 추론된다.
1과 동일한 slice_explicit_scaling_list_enabled_flag는 참조된 스케일링 리스트 APS에서 시그널링되는 명시적 스케일링 리스트가 현재 슬라이스의 디코딩시 변환 계수들에 대한 스케일링 프로세스에서 사용된다는 점을 명시한다. 0과 동일한 slice_explicit_scaling_list_enabled_flag는 현재 슬라이스의 디코딩시에 변환 계수들에 대한 스케일링 프로세스에서 어떠한 명시적 스케일링 리스트도 사용되지 않는다는 점을 명시한다. 존재하지 않을 때, slice_explicit_scaling_list_enabled_flag의 값은 0과 동일한 것으로 추론된다.
...
변환 계수들에 대한 스케일링 프로세스
...
x = 0..nTbW - 1, y = 0..nTbH - 1인 스케일링된 변환 계수들 d[ x ][ y ]의 도출을 위해, 다음이 적용된다:
- 중간 스케일링 인자 m [x] [y]는 다음과 같이 도출된다:
- 다음의 조건들 중 하나 이상이 참이면, m[ x ][ y ]는 16과 동일하게 설정된다:
- sps_scaling_list_enabled_flag가 0과 동일하다.
- ph_scaling_list_present_flag는 0과 동일하다
- slice_explicit_scaling_list_enabled_flag는 0과 동일하다.
- transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]는 1과 동일하다.
- scaling_matrix_for_lfnst_disabled_flag는 1과 동일하고 ApplyLfnstFlag는 1과 동일하다.
- ...
...
6.4. 실시예 4: 스케일링 리스트의 지원을 위한 approach#2
본 실시예에서, 스케일링 리스트에 관련된 텍스트들은, 다음이 적용되도록, 수정된다:
1) 변환 계수들에 대한 스케일링 프로세스를 제어하기 위해 스케일링 리스트에 대한 SPS 플래그와 스케일링 리스트에 대한 PH 플래그를 사용하는 것 대신에, 슬라이스 헤더 내의 스케일링 리스트 플래그가 사용된다.
2) 화상의 모든 슬라이스들에 대해 명시적 스케일링 리스트가 사용될 때, SH에는 스케일링 리스트 시그널링이 존재하지 않는다.
다음에서, M 및 N의 값들은 각각 1 및 2로 설정될 수 있다.
대안적으로, M 및 N의 값들은 각각 2 및 1로 설정될 수 있다.
대안적으로, 다음이 적용된다:
1) 신택스 엘리먼트 ph_explicit_scaling_list_enabled_type는 ph_explicit_scaling_list_mode로 재명명된다.
2) M, N, 및 0과 동일한 ph_explicit_scaling_list_enabled_type의 값들은 각각 A, B, 및 C와 동일한 ph_explicit_scaling_list_mode(예를 들어, 0, 1 및 2)로 대체된다.
3) ph_explicit_scaling_list_aps_id에 대한 신택스 조건 "if (ph_explicit_scaling_list_enabled_type> 0)"은 "if (ph_explicit_scaling_list_mode!= C)")로 대체된다.
시퀀스 파라미터 세트 RBSP 신택스 및 시맨틱스
1과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용된다는 점을 명시한다. 0과 동일한 sps_scaling_list_enabled_flag는 변환 계수들에 대한 스케일링 프로세스를 위해 스케일링 리스트가 사용되지 않는다는 점을 명시한다.
1과 동일한 sps_explicit_scaling_list_enabled_flag는, 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서, 스케일링 리스트 APS에서 시그널링되는, 명시적 스케일링 리스트의 사용이 CLVS에 대해 인에이블된다는 점을 명시한다. 0과 동일한 sps_explicit_scaling_list_enabled_flag는, 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 CLVS에 대해 디스에이블된다는 점을 명시한다.
...
화상 헤더 구조 신택스 및 시맨틱스
...
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_present_flag의 값은 0과 동일한 것으로 추론된다.
M(예를 들어, M = 1)과 동일한 ph_explicit_scaling_list_enabled_type는, 화상 내의 모든 슬라이스들을 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서, 참조된 스케일링 리스트 APS(즉, SCALING_APS와 동일한 aps_params_type 및 ph_explicit_scaling_list_aps_id와 동일한 adaptation_parameter_set_id를 갖는 APS)에서 시그널링되는, 명시적 스케일링 리스트가 사용된다는 점을 명시한다. N(예를 들어, N = 2)과 동일한 ph_explicit_scaling_list_enabled_type는 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 화상에 대해 인에이블된다는 점을 명시한다. 0과 동일한 ph_explicit_scaling_list_enabled_type는 슬라이스를 디코딩할 때 변환 계수들에 대한 스케일링 프로세스에서 명시적 스케일링 리스트의 사용이 화상에 대해 디스에이블된다는 점을 명시한다. ph_explicit_scaling_list_enabled_type의 값은 0, M, 또는 N과 동일할 것이다. 존재하지 않을 때, ph_explicit_scaling_list_enabled_flag의 값은 0과 동일한 것으로 추론된다.
ph_explicit_scaling_list_aps_id는 스케일링 리스트 APS의 adaptation_parameter_set_id를 명시한다. SCALING_APS와 동일한 aps_params_type 및 ph_explicit_scaling_list_aps_id와 동일한 adaptation_parameter_set_id를 갖는 APS NAL 유닛의 TemporalId는 PH와 연관된 화상의 TemporalId 이하일 것이다.
...
일반적인 슬라이스 헤더 신택스 및 시맨틱스
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과 동일한 것으로 추론된다.
1과 동일한 slice_explicit_scaling_list_enabled_flag는 참조된 스케일링 리스트 APS에서 시그널링되는 명시적 스케일링 리스트가 현재 슬라이스의 디코딩시 변환 계수들에 대한 스케일링 프로세스에서 사용된다는 점을 명시한다. 0과 동일한 slice_explicit_scaling_list_enabled_flag는 현재 슬라이스의 디코딩시에 변환 계수들에 대한 스케일링 프로세스에서 어떠한 명시적 스케일링 리스트도 사용되지 않는다는 점을 명시한다. 존재하지 않을 때, slice_explicit_scaling_list_enabled_flag의 값은 ( ph_explicit_scaling_list_enabled_type = = M ) ? 1 : 0과 동일한 것으로 추론된다.
...
변환 계수들에 대한 스케일링 프로세스
...
x = 0..nTbW - 1, y = 0..nTbH - 1인 스케일링된 변환 계수들 d[ x ][ y ]의 도출을 위해, 다음이 적용된다:
- 중간 스케일링 인자 m [x] [y]는 다음과 같이 도출된다:
- 다음의 조건들 중 하나 이상이 참이면, m[ x ][ y ]는 16과 동일하게 설정된다:
- sps_scaling_list_enabled_flag가 0과 동일하다.
- ph_scaling_list_present_flag는 0과 동일하다
- slice_explicit_scaling_list_enabled_flag는 0과 동일하다.
- transform_skip_flag[ xTbY ][ yTbY ][ cIdx ]는 1과 동일하다.
- scaling_matrix_for_lfnst_disabled_flag는 1과 동일하고 ApplyLfnstFlag는 1과 동일하다.
- ...
...
도 5는 본 명세서에 개시된 다양한 기법들이 구현될 수 있는 예시적인 비디오 처리 시스템(1900)을 도시하는 블록도이다. 다양한 구현들은 시스템(1900)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(1902)을 포함할 수 있다. 비디오 콘텐츠는 미가공(raw) 또는 압축되지 않은 포맷, 예를 들어, 8 또는 10 비트 멀티-컴포넌트 픽셀 값들로 수신될 수 있거나, 또는 압축된 또는 인코딩된 포맷일 수 있다. 입력(1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 표현할 수 있다. 네트워크 인터페이스의 예들은, Ethernet, PON(passive optical network) 등과 같은 유선 인터페이스들, 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(1900)은 본 문서에서 설명되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(1904)를 포함할 수 있다. 코딩 컴포넌트(1904)는 비디오의 평균 비트레이트를 입력(1902)으로부터 코딩 컴포넌트(1904)의 출력으로 감소시켜 비디오의 코딩된 표현을 생성할 수 있다. 따라서 코딩 기법들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기법들이라고 불린다. 코딩 컴포넌트(1904)의 출력은, 컴포넌트(1906)에 의해 표현되는 바와 같이, 저장되거나, 또는 접속된 통신을 통해 송신될 수 있다. 입력(1902)에서 수신되는 비디오의 저장된 또는 통신된 비트스트림(또는 코딩된) 표현은, 디스플레이 인터페이스(1910)에 전송되는 픽셀 값들 또는 디스플레이가능 비디오를 생성하기 위해 컴포넌트(1908)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자-시청가능 비디오를 생성하는 프로세스는 때때로 비디오 압축해제라고 불린다. 또한, 특정 비디오 처리 동작들이 "코딩(coding)" 동작들 또는 툴들로서 참조되지만, 코딩 툴들 또는 동작들은 인코더에서 사용되고, 코딩의 결과를 반대로 행하는 대응하는 디코딩 툴들 또는 동작들이 디코더에 의해 수행될 것이라는 점이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 저장 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기법들은, 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 전화들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
도 6은 비디오 처리 장치(3600)의 블록도이다. 장치(3600)는 본 명세서에 설명되는 방법들 중 하나 이상을 구현하기 위해 사용될 수 있다. 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등에서 구현될 수 있다. 장치(3600)는 하나 이상의 프로세서(3602), 하나 이상의 메모리(3604) 및 비디오 처리 하드웨어(3606)를 포함할 수 있다. 프로세서(들)(3602)는 본 문서에서 설명되는 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(3604)는 본 명세서에 설명되는 방법들 및 기법들을 구현하기 위해 사용되는 데이터 및 코드를 저장하기 위해 사용될 수 있다. 비디오 처리 하드웨어(3606)는, 하드웨어 회로에서, 본 문서에서 설명되는 일부 기법들을 구현하기 위해 사용될 수 있다.
도 8은 본 개시내용의 기법들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록도이다.
도 8에 도시되는 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 비디오 인코딩 디바이스로서 참조될 수 있는 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성한다. 비디오 디코딩 디바이스로서 참조될 수 있는 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114), 및 I/O(input/output) 인터페이스(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) 표준, VVM(Versatile Video Coding) 표준 및 다른 현재 및/또는 추가 표준들과 같은, 비디오 압축 표준에 따라 동작할 수 있다.
도 9는 도 8에 예시되는 시스템(100) 내의 비디오 인코더(114)일 수 있는, 비디오 인코더(200)의 예를 예시하는 블록도이다.
비디오 인코더(200)는 본 개시내용의 기법들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다. 도 9의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트들을 포함한다. 본 개시내용에서 설명되는 기법들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시내용에서 설명되는 기법들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트들은 분할 유닛(201), 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)을 포함할 수 있는 예측 유닛(202), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역 양자화 유닛(210), 역 변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 보다 많은, 보다 적은, 또는 상이한 기능 컴포넌트들을 포함할 수 있다. 예에서, 예측 유닛(202)은 IBC(intra block copy) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 화상이 현재 비디오 블록이 위치되는 화상인 IBC 모드에서 예측을 수행할 수 있다.
또한, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명 목적으로 도 9의 예에서 개별적으로 표현되어 있다.
분할 유닛(201)은 화상을 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택 유닛(203)은, 예를 들어, 에러 결과들에 기초하여, 코딩 모드들인 인트라 또는 인터 중 하나를 선택하고, 결과적인 인트라-코딩된 또는 인터-코딩된 블록을 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고 재구성 유닛(212)에 제공하여 참조 화상으로서 사용하기 위해 인코딩된 블록을 재구성할 수 있다. 일부 예들에서, 모드 선택 유닛(203)은 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 또한 인터-예측의 경우에 블록에 대한 모션 벡터의 해상도(예를 들어, 서브-픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하는 것에 의해 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 화상 이외의 버퍼(213)로부터의 화상들의 디코딩된 샘플들 및 모션 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지에 의존하여, 현재 비디오 블록에 대해 상이한 동작들을 수행할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 화상들을 검색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1에서의 참조 화상을 표시하는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간적 변위를 표시하는 모션 벡터를 생성할 수 있다. 모션 추정 유닛(204)은 참조 인덱스, 예측 방향 표시자, 및 모션 벡터를 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보에 의해 표시되는 참조 비디오 블록들에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0에서의 참조 화상들을 검색할 수 있고, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 리스트 1에서의 참조 화상들을 검색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1에서의 참조 화상들을 표시하는 참조 인덱스들 및 참조 비디오 블록들과 현재 비디오 블록 사이의 공간적 변위들을 표시하는 모션 벡터들을 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 참조 인덱스들 및 모션 벡터들을 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보에 의해 표시되는 참조 비디오 블록들에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 디코더의 디코딩 처리를 위한 모션 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오에 대한 모션 정보의 전체 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 결정할 수 있다.
하나의 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 갖는다는 것을 비디오 디코더(300)에서 표시하는 값을 현재 비디오 블록과 연관된 신택스 구조에서 표시할 수 있다.
다른 예에서, 모션 추정 유닛(204)은, 다른 비디오 블록 및 MVD(motion vector difference)를 현재 비디오 블록과 연관된 신택스 구조에서 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 표시한다. 비디오 디코더(300)는 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에 논의되는 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector predication) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대해 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대해 인트라 예측을 수행할 때, 인트라 예측 유닛(206)은 동일한 화상 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 엘리먼트들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 감산(예를 들어, 마이너스 부호로 표시됨)하는 것에 의해 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서의 샘플들의 상이한 샘플 성분들에 대응하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 예를 들어, 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록의 잔차 데이터가 없을 수 있고, 잔차 생성 유닛(207)은 감산 동작을 수행하지 않을 수 있다.
변환 처리 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용하는 것에 의해 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 처리 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역 양자화 유닛(210) 및 역 변환 유닛(211)은, 각각, 변환 계수 비디오 블록에 역 양자화 및 역 변환을 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성할 수 있다. 재구성 유닛(212)은 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터의 대응하는 샘플들에 재구성된 잔차 비디오 블록을 추가할 수 있다.
재구성 유닛(212)이 비디오 블록을 재구성한 후에, 비디오 블록에서의 비디오 블록킹 아티팩트들을 감소시키기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 하나 이상의 엔트로피 인코딩 동작을 수행하여 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
개시된 기술의 일부 실시예들은 비디오 처리 툴 또는 모드를 인에이블시키도록 판정하거나 또는 결정하는 것을 포함한다. 예에서, 비디오 처리 툴 또는 모드가 인에이블될 때, 인코더는 비디오 블록의 처리에서 툴 또는 모드를 사용하거나 또는 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오의 블록으로부터 비디오의 비트스트림(또는 비트스트림 표현)으로의 변환은 이러한 판정 또는 결정에 기초하여 비디오 처리 툴 또는 모드가 인에이블될 때 그것을 사용할 것이다. 다른 예에서, 비디오 처리 툴 또는 모드가 인에이블될 때, 디코더는 비디오 처리 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 지식을 사용하여 비트스트림을 처리할 것이다. 즉, 비디오의 비트스트림으로부터 비디오 블록으로의 변환은 판정 또는 결정에 기초하여 인에이블된 비디오 처리 툴 또는 모드를 사용하여 수행될 것이다.
도 10은 도 8에 예시되는 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 예시하는 블록도이다.
비디오 디코더(300)는 본 개시내용의 기법들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다. 도 10의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트들을 포함한다. 본 개시내용에서 설명되는 기법들은 비디오 디코더(300)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시내용에서 설명되는 기법들 중 임의의 것 또는 전부를 수행하도록 구성될 수 있다.
도 10의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역 양자화 유닛(304), 역 변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예들에서, 비디오 인코더(200)(도 9)와 관련하여 설명된 인코딩 패스(encoding pass)와 일반적으로 반대인 디코딩 패스(decoding pass)를 수행할 수 있다.
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상 유닛(302)은 모션 벡터들, 모션 벡터 정밀도, 참조 화상 리스트 인덱스들, 및 다른 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)은, 예를 들어, AMVP 및 병합 모드를 수행하는 것에 의해 이러한 정보를 결정할 수 있다.
모션 보상 유닛(302)은 모션 보상된 블록들을 생성할 수 있으며, 가능하게는 보간 필터들에 기초하여 보간을 수행할 수 있다. 서브-픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들이 신택스 엘리먼트들 내에 포함될 수 있다.
모션 보상 유닛(302)은 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더(200)에 의해 사용되는 바와 같이 보간 필터들을 사용할 수 있다. 모션 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터들을 결정하고 보간 필터들을 사용하여 예측 블록들을 생성할 수 있다.
모션 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 인코딩하기 위해 사용되는 블록들의 크기들, 인코딩된 비디오 시퀀스의 화상의 각각의 매크로블록이 어떻게 분할되는지를 설명하는 분할 정보, 각각의 분할이 어떻게 인코딩되는지를 표시하는 모드들, 각각의 인터-인코딩된 블록에 대한 하나 이상의 참조 프레임(및 참조 프레임 리스트), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 신택스 정보의 일부를 사용할 수 있다.
인트라 예측 유닛(303)은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해, 예를 들어, 비트스트림에서 수신되는 인트라 예측 모드들을 사용할 수 있다. 역 양자화 유닛(303)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에 의해 디코딩되는 양자화된 비디오 블록 계수들을 역 양자화(inverse quantize), 즉, 탈양자화(de-quantize)한다. 역 변환 유닛(303)은 역 변환을 적용한다.
재구성 유닛(306)은 디코딩된 블록들을 형성하기 위해 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성되는 대응하는 예측 블록들과 잔차 블록들을 합산할 수 있다. 원하는 경우, 디코딩된 블록들을 필터링하여 블록성 아티팩트들(blockiness artifacts)을 제거하기 위해 디블록킹 필터가 또한 적용될 수 있다. 디코딩된 비디오 블록은 이어서 버퍼(307)에 저장되고, 버퍼는 후속 모션 보상/인트라 예측을 위한 참조 블록을 제공하고 또한 디스플레이 디바이스 상에 제시하기 위한 디코딩된 비디오를 생성한다.
일부 실시예들에 의해 선호되는 해결책들의 리스트가 다음에 제공된다.
다음의 해결책들은 이전 섹션(예를 들어, 항목 1)에서 논의되는 기법들의 예시적인 실시예들을 보여준다.
1. 비디오 처리 방법(예를 들어, 도 7에 묘사되는 방법(900))으로서, 하나 이상의 비디오 화상을 포함하는 비디오 사이의 변환을 수행하는 단계(902)를 포함하고, 각각의 비디오 화상은 비디오의 코딩된 표현 및 하나 이상의 타일을 포함하고, 코딩된 표현은 포맷 규칙을 준수하고; 포맷 규칙은 코딩된 표현에서 시그널링되는 제1 정보 및 코딩된 표현으로부터 도출되는 제2 정보를 명시하고, 적어도 제1 정보 또는 제2 정보는 하나 이상의 타일의 행 인덱스들 또는 열 인덱스들과 관련된다.
2. 해결책 1의 방법으로서, 포맷 규칙은 각각의 비디오 화상의 각각의 코딩 트리 유닛 열의 타일 열 인덱스가 도출된다는 점을 명시한다.
3. 해결책 1의 방법으로서, 포맷 규칙은 각각의 비디오 화상의 각각의 코딩 트리 유닛 행의 타일 행 인덱스가 도출된다는 점을 명시한다.
다음의 해결책들은 이전 섹션(예를 들어, 항목 2)에서 논의된 기법들의 예시적인 실시예들을 보여준다. 이러한 해결책들에서, 비디오 영역은 비디오 화상일 수 있고 비디오 유닛은 비디오 블록 또는 코딩 트리 유닛 또는 비디오 슬라이스일 수 있다.
4. 비디오 처리 방법으로서, 비디오의 비디오 영역의 비디오 유닛과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 코딩된 표현은 포맷 규칙을 준수하고; 포맷 규칙은 비디오 영역에서의 제1 제어 정보가 제2 제어 정보가 비디오 유닛 레벨에서 포함되는지를 제어한다는 점을 명시하고, 제1 제어 정보 및/또는 제2 제어 정보는 변환에 대 사용되는 LMCS(luma mapping and chroma scaling) 또는 CRS(chroma residue scaling) 또는 RP(reshaping process)에 관한 정보를 포함한다.
5. 해결책 4의 방법으로서, 제1 제어 정보는 제2 제어 정보가 코딩된 표현에 포함되는지를 표시하는 표시자를 포함한다.
6.
해결책들 4 내지 5의 방법으로서, 제1 제어 정보의 구체적인 값은 비디오 영역 내의 모든 비디오 유닛들에 대해 LMCS가 디스에이블된다는 점을 표시한다.
7.
해결책들 4 내지 6 중 임의의 것의 방법으로서, 제2 제어 정보는 비디오 유닛에서 LMCS의 인에이블링을 제어한다.
8. 해결책 4의 방법으로서, 제1 제어 정보는 다수의 표시자들을 포함한다.
다음의 해결책들은 이전 섹션(예를 들어, 항목들 5 내지 8)에서 논의된 기법들의 예시적인 실시예들을 보여준다.
9. 비디오 처리 방법으로서, 하나 이상의 비디오 유닛을 포함하는 하나 이상의 비디오 영역을 포함하는 비디오와 이러한 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고; 코딩된 표현은 포맷 규칙을 준수하고, 포맷 규칙은 코딩된 표현이 적어도 일부 비디오 유닛들의 변환에 대해 사용가능한 스케일링 리스트의 2-레벨 시그널링을 포함한다는 점을 명시하고, 비디오-영역 레벨에서의 2-레벨 시그널링의 하이 레벨 시그널링은 비디오-유닛 레벨에서의 2-레벨 시그널링의 로우 레벨 시그널링이 코딩된 표현에 포함되는지 및 어디에 포함되는지를 제어하고; 스케일링 리스트는 적어도 일부 비디오 유닛들의 변환에 대해 사용되는 스케일링에 관한 정보를 포함한다.
10. 해결책 9의 방법으로서, 하이 레벨 시그널링 내의 이진-값 필드는 로우 레벨 시그널링의 발생을 제어하는 방법.
11. 해결책들 9 내지 10 중 임의의 것의 방법으로서, 로우 레벨 시그널링 내의 이진-값 필드는 로우 레벨 시그널링에 포함되는 스케일링 리스트의 디스에이블을 제어한다.
12. 해결책들 9 내지 11 중 임의의 것의 방법으로서, 하나 이상의 비디오 영역은 비디오 화상에 대응한다.
13. 해결책들 9 내지 12 중 임의의 것의 방법으로서, 하나 이상의 비디오 유닛은 비디오 슬라이스들 또는 비디오 코딩 유닛들을 포함한다.
다음의 해결책들은 이전 섹션(예를 들어, 항목들 5 내지 8)에서 논의된 기법들의 예시적인 실시예들을 보여준다.
14. 비디오 처리의 방법으로서, 비디오의 비디오 유닛과 이러한 비디오의 코딩된 표현 사이의 변환에 대해 사용되는 저 주파수 비-분리가능 변환에 대한 스케일링 리스트를 결정하는 단계; 및 이러한 결정에 기초하여 변환을 수행하는 단계를 포함하고, 코딩된 표현 내의 신택스 구조는 스케일링 리스트가 비디오 유닛에 대해 인에이블되는지를 표시한다.
15. 해결책 14의 방법으로서, 신택스 구조는 시퀀스 헤더 또는 화상 헤더 또는 슬라이스 헤더에 포함된다.
16. 해결책들 14 내지 15 중 임의의 것의 방법으로서, 비디오 유닛은 비디오 블록을 포함한다.
17. 해결책들 1 내지 16 중 임의의 것의 방법으로서, 변환은 비디오를 코딩된 표현으로 인코딩하는 것을 포함한다.
18. 해결책들 1 내지 16 중 임의의 것의 방법으로서, 변환은 코딩된 표현을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함한다.
19. 비디오 디코딩 장치로서, 해결책들 1 내지 18 중 하나 이상에 기재되는 방법을 구현하도록 구성되는 프로세서를 포함한다.
20. 비디오 인코딩 장치로서, 해결책들 1 내지 18 중 하나 이상에 기재되는 방법을 구현하도록 구성되는 프로세서를 포함한다.
21. 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책들 1 내지 18 중 임의의 것에 기재되는 방법을 구현하게 한다.
22. 본 문서에서 설명되는 방법, 장치 또는 시스템.
본 명세서에 설명되는 해결책들에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성하는 것에 의해 포맷 규칙을 준수할 수 있다. 본 명세서에 설명되는 해결책들에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 엘리먼트들의 존재 및 부재에 대한 지식으로 코딩된 표현에서의 신택스 엘리먼트들을 파싱하기 위해 포맷 규칙을 사용할 수 있다.
도 12는 비디오 처리의 예시적인 방법(1200)에 대한 흐름도이다. 동작(1202)은 비디오의 비디오 블록과 이러한 비디오의 비트스트림 사이의 변환을 수행하는 것을 포함하고, 비트스트림은 포맷 규칙을 준수하고, 포맷 규칙은 스케일링 프로세스가 비디오 블록의 변환 계수들 또는 비-변환 계수들에 적용되는지를 표시하는 제1 신택스 엘리먼트가 비디오 영역 레벨에서 비트스트림에 포함된다는 점을 명시하고, 비디오 영역은 비디오의 비디오 화상보다 작다.
방법(1200)의 일부 실시예들에서, 포맷 규칙은 제1 신택스 엘리먼트가 슬라이스의 슬라이스 헤더에 있다는 점을 명시하고, 포맷 규칙은 스케일링 리스트가 비트스트림 내의 시퀀스 파라미터 세트에서 인에이블되는지를 표시하는 제2 신택스 엘리먼트에 의해 스케일링 프로세스가 제어되지 않는다는 점을 명시한다. 방법(1200)의 일부 실시예에서, 제2 신택스 엘리먼트는, 슬라이스의 변환 동안 변환 계수들에 대한 스케일링 프로세스에서 스케일링 리스트 적응 파라미터 세트에 포함되는 스케일링 리스트가 인에이블되는지를 명시한다. 방법(1200)의 일부 실시예들에서, 포맷 규칙은 제1 신택스 엘리먼트가 슬라이스의 슬라이스 헤더에 있다는 점을 명시하고, 포맷 규칙은 스케일링 리스트가 비트스트림 내의 화상 헤더에 존재하는지를 표시하는 제3 신택스 엘리먼트에 의해 스케일링 프로세스가 제어되지 않는다는 점을 명시한다. 방법(1200)의 일부 실시예에서, 제1 신택스 엘리먼트는, 슬라이스의 변환 동안에 변환 계수들에 대한 스케일링 프로세스에서 스케일링 리스트 적응 파라미터 세트에 포함되는 스케일링 리스트가 인에이블되는지를 명시한다.
도 13은 비디오 처리의 예시적인 방법(1300)에 대한 흐름도이다. 동작(1302)은 비디오의 비디오 영역의 비디오 유닛과 비디오의 비트스트림 사이의 변환을 수행하는 것을 포함하고, 비트스트림은 포맷 규칙을 준수하고, 포맷 규칙은 비트스트림 내의 비디오 영역의 제1 레벨에서의 제1 제어 정보가 제2 제어 정보가 비트스트림 내의 비디오 유닛의 제2 레벨에서 포함되는지를 표시한다는 점을 명시하고, 제1 제어 정보 및/또는 제2 제어 정보는 스케일링 리스트가 변환을 위한 변환 계수들 또는 비-변환 계수들에 대해 사용되는지에 관한 정보를 포함한다.
방법(1300)의 일부 실시예들에서, 제1 제어 정보는 스케일링 리스트가 비디오 유닛의 제2 레벨에서 인에이블되는지를 명시하기 위해 스케일링 리스트가 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 인에이블되는지를 표시하는 제1 표시자를 선택적으로 포함하고, 제1 표시자는 비-이진 값이다. 방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함한다. 방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 인에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 화상 헤더의 모든 슬라이스들보다 작은 슬라이스들에 대해 인에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1300)의 일부 실시예들에서, 제1 표시자의 값은 제1 제어 정보가 제1 표시자를 제외할 때 디폴트 값과 동일한 것으로 추론된다.
방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 인에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 비디오 화상을 포함하는 비디오 영역에 대한 슬라이스를 디코딩할 때 인에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 인에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 비디오 화상을 포함하는 비디오 영역에 대한 슬라이스를 디코딩할 때 선택적으로 인에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다.
방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 화상 헤더의 모든 슬라이스들보다 작은 슬라이스들에 대해 디스에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 인에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 인에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 비디오 화상을 포함하는 비디오 영역에 대한 슬라이스를 디코딩할 때 선택적으로 디스에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1300)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 화상 헤더를 포함하고, 제1 제어 정보는 제1 표시자를 포함하고, 스케일링 리스트는 제1 표시자가 제1 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 스케일링 리스트는 제1 표시자가 제2 값과 동일할 때 비디오 화상을 포함하는 비디오 영역에 대한 슬라이스를 디코딩할 때 인에이블되고, 스케일링 리스트는 제1 표시자가 제3 값과 동일할 때 화상 헤더의 모든 슬라이스들에 대해 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다.
방법(1300)의 일부 실시예들에서, 스케일링 리스트가 시퀀스 레벨에서 인에이블되는지를 표시하는 비트스트림에서의 신택스 엘리먼트의 값에 기초하여 제1 표시자가 제1 제어 정보에 선택적으로 포함된다. 방법(1300)의 일부 실시예들에서, 제1 표시자는 u(v) 또는 u(2) 또는 ue(v)로 코딩된다. 방법(1300)의 일부 실시예들에서, 제1 표시자는 절단된 단항 코드로 코딩된다. 방법(1300)의 일부 실시예에서, 하나 이상의 슬라이스에 의해 사용되는 스케일링 리스트의 적응 파라미터 세트 (APS) 정보는, 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 스케일링 리스트가 인에이블되는지를 표시하는 제1 표시자의 값에 기초하여 비트스트림에 포함된다. 방법(1300)의 일부 실시예들에서, 제2 제어 정보는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 스케일링 리스트가 인에이블 또는 디스에이블되는지를 표시하는 제2 표시자를 선택적으로 포함하고, 제2 표시자는 제1 제어 정보에 포함되는 제1 표시자의 값에 기초하여 비트스트림에 포함되고, 제1 표시자는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 스케일링 리스트가 인에이블 또는 디스에이블되는지를 표시한다. 방법(1300)의 일부 실시예들에서, 제2 제어 정보는 슬라이스 헤더를 포함한다. 방법(1300)의 일부 실시예들에서, 제1 표시자가 제1 값과 동일한 것에 응답하여 제2 표시자가 제2 제어 정보에 포함된다. 방법(1300)의 일부 실시예들에서, 제2 표시자는 제1 표시자 >> 1, 또는 제1 표시자/2, 또는 제1 표시자 & 0x01의 조건 체크를 수행하는 것에 응답하여 제2 제어 정보에 포함되고, >>는 우측 시프트 동작을 설명하고, &는 비트별 논리 및 동작을 설명한다.
방법(1300)의 일부 실시예들에서, 제2 표시자가 제2 제어 정보에 존재하지 않는 것에 응답하여: 제1 표시자가 제1 값과 동일한 것에 응답하여 제2 표시자의 값이 인에이블되는 것으로 추론되거나, 또는 제1 표시자가 제3 값과 동일한 것에 응답하여 제2 표시자의 값이 디스에이블되는 것으로 추론되고, 제1 값, 제1 표시자의 제2 값, 및 제3 값은 서로 상이하다. 방법(1300)의 일부 실시예들에서, 제1 제어 정보는 스케일링 리스트가 비디오 유닛의 제2 레벨에서 인에이블되는지를 명시하기 위해 스케일링 리스트가 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 인에이블되는지를 표시하는 다수의 표시자들을 포함하고, 다수의 표시자는 비-이진 값들을 갖는다. 방법(1300)의 일부 실시예에서, 다수의 표시자들은 화상 헤더에 포함되는 적어도 2개의 표시자들을 포함한다. 방법(1300)의 일부 실시예들에서, 적어도 2개의 표시자들은 스케일링 리스트가 화상 헤더와 연관된 적어도 하나의 슬라이스에 대해 인에이블되는지를 명시하는 제1 표시자를 포함하고, 적어도 2개의 표시자들은 스케일링 리스트가 화상 헤더와 연관된 모든 슬라이스들에 대해 인에이블되는지를 명시하는 제2 표시자를 선택적으로 포함한다. 방법(1300)의 일부 실시예들에서, 제2 표시자는 제1 표시자의 값에 기초하여 다수의 표시자들에서 선택적으로 시그널링된다.
방법(1300)의 일부 실시예들에서, 제1 표시자의 값은 스케일링 리스트가 적어도 하나의 슬라이스에 대해 인에이블된다는 점을 명시한다. 방법(1300)의 일부 실시예들에서, 스케일링 리스트는 제2 표시자가 비트스트림에 존재하지 않는 것에 응답하여 화상 헤더와 연관된 모든 슬라이스들에 대해 인에이블되는 것으로 추론된다. 방법(1300)의 일부 실시예들에서, 제2 표시자는 제1 표시자가 적합성 비트스트림에서 거짓인 것에 응답하여 거짓이다. 방법(1300)의 일부 실시예에서, 적어도 2개의 표시자들은 제1 표시자의 제1 값 또는 제2 표시자의 제2 값에 기초하여 슬라이스 헤더에서 선택적으로 시그널링되는 제3 표시자를 포함한다. 방법(1300)의 일부 실시예들에서, 제1 표시자의 제1 값은 스케일링 리스트가 적어도 하나의 슬라이스에 대해 인에이블된다는 점을 명시하고, 제2 표시자의 제2 값은 스케일링 리스트가 모든 슬라이스들에 대해 디스에이블된다는 점을 명시한다. 방법(1300)의 일부 실시예들에서, 제3 표시자에 대한 값은 제3 표시자가 비트스트림에 존재하지 않는 것에 응답하여 제1 표시자의 제1 값 및/또는 제2 표시자의 제2 값에 기초하여 추론된다. 방법(1300)의 일부 실시예들에서, 적어도 2개의 표시자들은 화상 헤더와 연관된 적어도 하나의 슬라이스에 대해 스케일링 리스트가 디스에이블되는지를 명시하는 제1 표시자를 포함하고, 적어도 2개의 표시자들은 화상 헤더와 연관된 모든 슬라이스들에 대해 스케일링 리스트가 디스에이블되는지를 명시하는 제2 표시자를 선택적으로 포함한다.
방법(1300)의 일부 실시예들에서, 제2 표시자는 제1 표시자의 제1 값에 기초하여 다수의 표시자들에서 시그널링된다. 방법(1300)의 일부 실시예들에서, 제1 표시자의 제1 값은 스케일링 리스트가 적어도 하나의 슬라이스에 대해 디스에이블된다는 점을 명시한다. 방법(1300)의 일부 실시예들에서, 스케일링 리스트는 제2 표시자가 비트스트림에 존재하지 않는 것에 응답하여 화상 헤더와 연관된 모든 슬라이스들에 대해 디스에이블되는 것으로 추론된다. 방법(1300)의 일부 실시예에서, 적어도 2개의 표시자들은 제2 표시자의 제2 값에 기초하여 슬라이스 헤더에 제3 표시자를 선택적으로 포함한다. 방법(1300)의 일부 실시예들에서, 제1 표시자의 제1 값은 스케일링 리스트가 적어도 하나의 슬라이스에 대해 인에이블된다는 점을 명시하고, 제2 표시자의 제2 값은 스케일링 리스트가 모든 슬라이스들에 대해 인에이블된다는 점을 명시한다. 방법(1300)의 일부 실시예들에서, 제3 표시자에 대한 값은 제3 표시자가 비트스트림에 존재하지 않는 것에 응답하여 제1 표시자의 제1 값 및/또는 제2 표시자의 제2 값에 기초하여 추론된다. 방법(1300)의 일부 실시예들에서, 다수의 표시자는 스케일링 리스트가 시퀀스 레벨에서 인에이블되는지를 표시하는 신택스 엘리먼트의 값에 기초하여 제1 표시자를 선택적으로 포함한다.
방법(1300)의 일부 실시예들에서, 다수의 표시자는 스케일링 리스트가 비디오 유닛의 제2 레벨에서 인에이블 또는 디스에이블되는지를 표시하는 제3 표시자를 선택적으로 포함하고, 제3 표시자는 제1 표시자의 제1 값 및/또는 제2 표시자의 제2 값에 기초하여 선택적으로 시그널링된다. 방법(1300)의 일부 실시예들에서, 제3 표시자는 스케일링 리스트가 모든 슬라이스들에 대해 인에이블되지 않는다는 것 또는 스케일링 리스트가 모든 슬라이스들에 대해 디스에이블되지 않는다는 것을 표시하는 제2 표시자에 기초하여 선택적으로 시그널링된다. 방법(1300)의 일부 실시예들에서, 스케일링 리스트가 비디오 유닛의 제2 레벨에서 인에이블되는지를 명시하기 위해 비디오 영역의 제1 레벨에서 제1 제어 정보에 2개의 1-비트 신택스 엘리먼트들이 선택적으로 시그널링되고, 비디오 영역은 비디오 화상을 포함하고, 비디오 유닛은 하나 이상의 슬라이스를 포함한다. 방법(1300)의 일부 실시예들에서, 제1 제어 정보는 비디오 화상의 화상 헤더를 포함하고, 제2 제어 정보는 하나 이상의 슬라이스로부터의 슬라이스의 슬라이스 헤더를 포함한다.
방법(1300)의 일부 실시예들에서, 2개의 1-비트 신택스 엘리먼트들은 제1 화상 헤더 신택스 엘리먼트를 포함하고, 비디오 화상의 모든 슬라이스는 제1 화상 헤더 신택스 엘리먼트가 1과 동일한 것에 응답하여 스케일링 리스트를 사용하고, 비디오 화상의 각각의 슬라이스는 제1 화상 헤더 신택스 엘리먼트가 0과 동일한 것에 응답하여 스케일링 리스트를 선택적으로 사용한다. 방법(1300)의 일부 실시예들에서, 2개의 1-비트 신택스 엘리먼트는 제2 화상 헤더 신택스 엘리먼트를 포함하고, 제2 화상 헤더 신택스 엘리먼트가 1과 동일한 것에 응답하여 비디오 화상의 어떠한 슬라이스도 스케일링 리스트를 사용하지 않고, 제2 화상 헤더 신택스 엘리먼트가 0과 동일한 것에 응답하여 비디오 화상의 각각의 슬라이스는 스케일링 리스트를 선택적으로 사용한다. 방법(1300)의 일부 실시예들에서, 제2 화상 헤더 신택스 엘리먼트는 제1 화상 헤더 신택스 엘리먼트가 0과 동일할 때 비트스트림에서 시그널링된다. 방법(1300)의 일부 실시예들에서, 스케일링 리스트에 대한 적응 파라미터 세트 (APS) 식별자는 제1 화상 헤더 신택스 엘리먼트가 1과 동일하거나, 또는 제1 화상 헤더 신택스 엘리먼트가 0과 동일하고 제2 화상 헤더 신택스 엘리먼트가 0과 동일한 것에 응답하여 화상 헤더에서 시그널링된다. 방법(1300)의 일부 실시예들에서, 슬라이스 헤더 신택스 엘리먼트는 제1 화상 헤더 신택스 엘리먼트가 0과 동일하고 제2 화상 헤더 신택스 엘리먼트가 0과 동일한 것에 응답하여 슬라이스 헤더에서 시그널링된다.
방법(1300)의 일부 실시예들에서, 슬라이스 헤더 내의 슬라이스 헤더 신택스 엘리먼트의 값은 제1 화상 헤더 신택스 엘리먼트가 1과 동일한 것에 응답하여 0과 동일한 것으로 추론된다. 방법(1300)의 일부 실시예들에서, 슬라이스 헤더 내의 슬라이스 헤더 신택스 엘리먼트의 값은 제1 화상 헤더 신택스 엘리먼트가 0과 동일하고 제2 화상 헤더 신택스 엘리먼트가 0과 동일한 것에 응답하여 0과 동일한 것으로 추론된다. 방법(1300)의 일부 실시예에서, 스케일링 리스트는 슬라이스 헤더 내의 슬라이스 헤더 신택스 엘리먼트의 값이 1과 동일한 것에 응답하여 슬라이스를 디코딩하기 위해 사용된다. 방법(1300)의 일부 실시예들에서, 비트스트림은 스케일링 리스트에 관련된 정보가 화상 헤더 또는 슬라이스 헤더에 표시되는지를 표시하는 하나 이상의 표시자를 선택적으로 포함한다. 방법(1300)의 일부 실시예에서, 하나 이상의 표시자는 1-비트 표시자를 포함한다.
방법(1300)의 일부 실시예들에서, 비디오 유닛의 모든 슬라이스들은, 제1 제어 정보 내의 화상 헤더가 스케일링 리스트에 관련된 정보를 포함한다는 점을 표시하는 1-비트 표시자에 응답하여 화상 헤더로부터 값들을 추론하고, 스케일링 리스트에 관련된 정보의 시그널링은 슬라이스 헤더로부터 제외된다. 방법(1300)의 일부 실시예들에서, 스케일링 리스트에 관련된 정보는, 스케일링 리스트에 관련된 정보가 슬라이스 헤더에 표시된다는 점을 표시하는 1-비트 표시자에 응답하여 화상 헤더로부터 제외된다. 방법(1300)의 일부 실시예들에서, 하나 이상의 표시자는 화상 헤더에서 시그널링된다. 방법(1300)의 일부 실시예들에서, 하나 이상의 표시자는 PPS(picture parameter set)에서 시그널링된다. 방법(1300)의 일부 실시예들에서, 하나 이상의 표시자는 SPS(sequence parameter set)에서 시그널링된다.
도 14는 비디오 처리의 예시적인 방법(1400)에 대한 흐름도이다. 동작(1402)은 비디오의 비디오 블록과 이러한 비디오의 비트스트림 사이의 변환을 수행하는 것을 포함하고, 비디오 블록은 변환을 위해 저 주파수 비-분리가능 변환을 사용하고, 비트스트림은 신택스 엘리먼트가 비트스트림에 대한 신택스 레벨에서 포함된다는 점을 명시하는 포맷 규칙을 준수하고, 신택스 엘리먼트는 참조 스케일링 리스트로부터 도출되는 스케일링 행렬의 사용이 비디오 블록에 대해 인에이블되는지를 표시하는 것이고, 신택스 레벨은 시퀀스 레벨, 화상 레벨, 또는 슬라이스 레벨이다.
방법(1400)의 일부 실시예들에서, 신택스 엘리먼트는 SPS(sequence parameter set), PPS(picture parameter set), 화상 헤더, 또는 슬라이스 헤더에 포함된다. 방법(1400)의 일부 실시예들에서, 신택스 엘리먼트는 저 주파수 비-분리가능 변환이 비디오 블록에 대해 인에이블되는지에 기초하여 SPS, PPS, 화상 헤더, 또는 슬라이스 헤더에 포함된다. 방법(1400)의 일부 실시예들에서, 신택스 엘리먼트는 sps_lfnst_enabled_flag의 값이 1과 동일한지에 기초하여 SPS에 포함된다. 방법(1400)의 일부 실시예에서, 이러한 방법은, 신택스 엘리먼트에 기초하여 명시적 스케일링 리스트 또는 디폴트 스케일링 리스트로부터 도출된 스케일링 행렬을 비디오 블록에 적용할지와, 비디오 블록에 대해 저 주파수 비-분리가능 변환이 인에이블되는지를 결정하는 단계를 추가로 포함한다.
도 15는 비디오 처리의 예시적인 방법(1500)에 대한 흐름도이다. 동작(1502)은, 비디오의 비디오 유닛과 비디오의 비트스트림 사이의 변환을 위해, 비디오 유닛의 경계를 따르는 비디오 유닛의 샘플들에 대해 경계 밖의 패딩된 샘플들을 사용하여 디-블록킹 필터링을 수행하도록 결정하는 것을 포함한다. 동작(1504)은 이러한 결정에 따라 변환을 수행하는 것을 포함한다.
방법(1500)의 일부 실시예들에서, 비디오 유닛은 비디오 화상을 포함한다. 방법(1500)의 일부 실시예들에서, 비디오 유닛은 비디오 화상의 서브화상을 포함한다. 방법(1500)의 일부 실시예에서, 비디오 유닛은 슬라이스를 포함한다. 방법(1500)의 일부 실시예들에서, 비디오 유닛은 타일을 포함한다. 방법(1500)의 일부 실시예들에서, 비디오 유닛은 GDR(gradual decoding refresh)로부터 획득되는 리프레시된 영역이고, 경계는 비디오 화상의 리프레시되지 않은 영역과 리프레시된 영역 사이에 위치한다. 방법(1500)의 일부 실시예들에서, 경계는 비트스트림에서 가상 경계로서 표시된다. 방법(1500)의 일부 실시예에서, 패딩된 샘플들 중 2개 이상의 값이 비디오 유닛의 경계를 따른 샘플들로부터의 샘플의 값과 동일하도록 중복된 방식으로 패딩 프로세스가 수행된다. 방법(1500)의 일부 실시예들에서, 패딩 프로세스는 패딩된 샘플들로부터의 적어도 제1 패딩된 샘플 및 제2 패딩된 샘플들의 값들이 비디오 유닛의 경계를 따르는 샘플들로부터의 제1 샘플 및 제2 샘플의 값들과 각각 동일하도록 대칭 방식으로 수행된다.
일부 실시예들에서, 변환을 수행하는 단계는 비디오를 비트스트림으로 인코딩하는 단계를 포함한다. 일부 실시예들에서, 변환을 수행하는 단계는 비디오로부터 비트스트림을 생성하는 단계를 포함하고, 방법은 비트스트림을 비-일시적 컴퓨터-판독가능 기록 매체에 저장하는 단계를 추가로 포함한다. 일부 실시예들에서, 변환을 수행하는 단계는 비트스트림으로부터 비디오를 디코딩하는 단계를 포함한다. 일부 실시예들에서, 비디오 디코딩 장치는 본 특허 문서에 설명되는 하나 이상의 동작을 구현하도록 구성되는 프로세서를 포함한다. 일부 실시예들에서, 비디오 인코딩 장치는 본 특허 문서에 설명되는 하나 이상의 동작을 구현하도록 구성되는 프로세서를 포함한다. 일부 실시예들에서, 컴퓨터 명령어들이 저장되어 있는 컴퓨터 프로그램 제품에서, 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 이러한 특허 문서에 설명되는 하나 이상의 동작을 구현하게 한다. 일부 실시예들에서, 비-일시적 컴퓨터-판독가능 저장 매체는 이러한 특허 문서에서 설명된 하나 이상의 동작에 따라 생성되는 비트스트림을 저장한다. 일부 실시예들에서, 프로세서로 하여금 본 특허 문서에 설명되는 하나 이상의 동작을 구현하게 하는 명령어들을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체. 일부 실시예들에서, 비트스트림 생성의 방법은, 본 특허 문서에 설명되는 하나 이상의 동작에 따라 비디오의 비트스트림을 생성하는 단계, 및 비트스트림을 컴퓨터-판독가능 프로그램 매체 상에 저장하는 단계를 포함한다. 일부 실시예들에서, 본 문서에서 설명된, 방법, 장치, 개시된 방법에 따라 생성되는 비트스트림 또는 시스템.
본 문서에서, "비디오 처리(video processing)"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축해제를 참조할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의되는 바와 같이, 비트스트림 내의 상이한 위치들에 병치되는(co-located) 또는 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 에러 잔차 값들의 관점에서 그리고 또한 헤더들 내의 비트들 및 비트스트림 내의 다른 필드들을 사용하여 인코딩될 수 있다. 또한, 변환 동안, 디코더는, 위의 해결책들에 설명되는 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나, 또는 존재하지 않을 수 있다는 것을 알고서 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함될 것인지 또는 아닌지를 결정할 수 있고, 그에 따라 코딩된 표현으로부터 신택스 필드들을 포함하는 것 또는 제외하는 것에 의해 코딩된 표현을 생성할 수 있다.
본 문서에서 설명되는 개시된 그리고 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로에서, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서- 본 문서에 개시되는 구조들 및 그들의 구조적 등가물들을 포함함 -, 또는 이러한 중 하나 이상의 조합으로 구현될 수 있다. 개시된 그리고 다른 실시예들은, 데이터 처리 장치에 의한 실행을 위해, 또는 데이터 처리 장치의 동작을 제어하기 위해, 하나 이상의 컴퓨터 프로그램 제품, 즉, 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 디바이스, 머신-판독가능 저장 기판, 메모리 디바이스, 머신-판독가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이러한 것들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치(data processing apparatus)"라는 용어는 예를 들어, 프로그램가능한 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는 데이터를 처리하기 위한 모든 장치, 디바이스들 및 머신들을 포함한다. 이러한 장치는, 하드웨어에 더하여, 대상(in question) 컴퓨터 프로그램용 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이러한 중 하나 이상의 조합을 포함할 수 있다. 전파 신호는 인공적으로 생성된 신호, 예를 들어, 적합한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성되는 머신-생성 전기, 광, 또는 전자기 신호이다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고 또한 알려진) 컴퓨터 프로그램은 컴파일된 또는 해석된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기재될 수 있고, 이는 자립형(stand-alone) 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경의 사용에 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램이 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들어, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치되는 또는 다수의 사이트들에 걸쳐 분산되는 그리고 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 문서에 설명되는 프로세스 및 로직 흐름은, 입력 데이터에 대해 조작하는 것 및 출력을 생성하는 것에 의해 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능한 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있으며, 장치는 또한, 특수 목적 로직 회로, 예를 들어, FPGA 또는 ASIC로서 구현될 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서는, 예를 들어, 범용 및 특수 목적 마이크로프로세서들 양자 모두, 및 임의의 종류의 디지털 컴퓨터 중 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤-액세스 메모리 또는 양자 모두로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은, 명령을 수행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크 또는 광 디스크를 포함하거나, 또는 이들로부터 데이터를 수신하도록 또는 이들로 데이터를 전송하도록, 또는 양자 모두를 행하도록 기능적으로 연결될 것이다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 비-휘발성 메모리, 매체 및 메모리 디바이스들의 모든 형태들을 포함하고, 예를 들어, 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나, 또는 그 내에 포함될 수 있다.
본 특허 문서가 많은 세부 사항들을 포함하고 있지만, 이들이 임의의 주제의 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안 되고, 오히려 특정 기법들의 특정 실시예들에 구체적일 수 있는 특징들의 설명으로서 해석되어야 한다. 별개의 실시예들의 정황에서 본 특허 문서에서 설명되는 특정 특징들은 또한, 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 정황에서 설명되는 다양한 특징들은 또한 임의의 적합한 하위조합으로 또는 개별적으로 다수의 실시예에서 구현될 수 있다. 또한, 특징들이 특정 조합들로 동작하는 것으로서 위에 설명되고 심지어는 처음에는 이와 같이 청구될 수 있지만, 일부 경우들에서는 청구된 조합으로부터의 하나 이상의 특징이 조합으로부터 제외될(excised) 수 있으며, 청구된 조합은 하위조합 또는 하위조합의 변형에 대한 것일 수 있다.
유사하게, 도면들에는 동작들이 특정 순서로 묘사되지만, 이러한 것은 바람직한 결과들을 달성하기 위해 이러한 동작들이 도시되는 특정 순서로 또는 순차적 순서로 수행될 것이라는 점, 또는 모든 예시된 동작들이 수행될 것이라는 점을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문서에서 설명되는 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇몇 구현들 및 예들만이 설명되었지만, 본 특허 문서에서 설명되고 예시된 내용에 기초하여 다른 구현, 개선 및 변형이 이루어질 수 있다.
Claims (24)
- 비디오 처리의 방법으로서,
비디오의 비디오 블록과 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하고,
상기 비디오 블록은 상기 변환을 위해 저 주파수 비-분리가능 변환을 사용하고,
상기 비트스트림은 신택스 엘리먼트가 상기 비트스트림에 대한 신택스 레벨에서 포함된다는 점을 명시하는 포맷 규칙을 준수하고,
상기 신택스 엘리먼트는, 상기 비디오 블록에 대해 참조 스케일링 리스트로부터 도출되는 스케일링 행렬의 사용이 인에이블되는지를 표시하는 것이고,
상기 신택스 레벨은 시퀀스 레벨, 화상 레벨, 또는 슬라이스 레벨인 방법. - 제1항에 있어서, 상기 신택스 엘리먼트는 SPS(sequence parameter set), PPS(picture parameter set), 화상 헤더, 또는 슬라이스 헤더에 포함되는 방법.
- 제2항에 있어서, 상기 신택스 엘리먼트는 상기 저 주파수 비-분리가능 변환이 상기 비디오 블록에 대해 인에이블되는지에 기초하여 상기 SPS, 상기 PPS, 상기 화상 헤더, 또는 상기 슬라이스 헤더에 포함되는 방법.
- 제3항에 있어서, 상기 신택스 엘리먼트는 sps_lfnst_enabled_flag의 값이 1과 동일한지에 기초하여 상기 SPS에 포함되는 방법.
- 제2항에 있어서, 추가로,
상기 신택스 엘리먼트 및 상기 저 주파수 비-분리가능 변환이 상기 비디오 블록에 대해 인에이블되는지에 기초하여, 명시적 스케일링 리스트 또는 디폴트 스케일링 리스트로부터 도출되는 스케일링 행렬을 상기 비디오 블록에 적용할지를 결정하는 단계를 포함하는 방법. - 비디오 처리의 방법으로서,
비디오의 비디오 유닛과 상기 비디오의 비트스트림 사이의 변환을 위해, 상기 비디오 유닛의 경계를 따르는 상기 비디오 유닛의 샘플들에 대해 상기 경계 밖의 패딩된 샘플들을 사용하여 디-블록킹 필터링을 수행하도록 결정하는 단계; 및
상기 결정에 따라 상기 변환을 수행하는 단계를 포함하는 방법. - 제6항에 있어서, 상기 비디오 유닛은 비디오 화상을 포함하는 방법.
- 제6항에 있어서, 상기 비디오 유닛은 비디오 화상의 서브화상을 포함하는 방법.
- 제6항에 있어서, 상기 비디오 유닛은 슬라이스를 포함하는 방법.
- 제6항에 있어서, 상기 비디오 유닛은 타일을 포함하는 방법.
- 제6항에 있어서, 상기 비디오 유닛은 GDR(gradual decoding refresh)로부터 획득되는 리프레시된 영역이고, 상기 경계는 상기 리프레시된 영역과 비디오 화상의 리프레시되지 않은 영역 사이에 위치되는 방법.
- 제11항에 있어서, 상기 경계는 상기 비트스트림에서 가상 경계로서 표시되는 방법.
- 제6항에 있어서, 상기 패딩된 샘플들 중 2개 이상의 값들이 상기 비디오 유닛의 경계를 따르는 샘플들로부터의 샘플의 값과 동일하도록 중복된 방식으로 패딩 프로세스가 수행되는 방법.
- 제6항에 있어서, 적어도 상기 패딩된 샘플들로부터의 제1 패딩된 샘플 및 제2 패딩된 샘플들의 값들이 각각 상기 비디오 유닛의 경계를 따르는 샘플들로부터의 제1 샘플 및 제2 샘플의 값들과 동일하도록 대칭 방식으로 패딩 프로세스가 수행되는 방법.
- 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는 방법.
- 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오로부터 상기 비트스트림을 생성하는 단계를 포함하고, 상기 방법은 상기 비트스트림을 비-일시적 컴퓨터-판독가능 기록 매체에 저장하는 단계를 추가로 포함하는 방법.
- 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림으로부터 상기 비디오를 디코딩하는 단계를 포함하는 방법.
- 비디오 디코딩 장치로서 제1항 내지 제17항 중 하나 이상에 기재되는 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 디코딩 장치.
- 비디오 인코딩 장치로서 제1항 내지 제17항 중 하나 이상에 기재되는 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 인코딩 장치.
- 컴퓨터 명령어들이 저장되어 있는 컴퓨터 프로그램 제품으로서, 상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제17항 중 어느 한 항에 기재되는 방법을 구현하게 하는 컴퓨터 프로그램 제품.
- 비-일시적 컴퓨터-판독가능 저장 매체로서 제1항 내지 제17항 중 어느 한 항의 방법에 따라 생성되는 비트스트림을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체.
- 비-일시적 컴퓨터-판독가능 저장 매체로서 프로세서로 하여금 제1항 내지 제17항 중 어느 한 항에 기재되는 방법을 구현하게 하는 명령어들을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체.
- 비트스트림 생성의 방법으로서,
제1항 내지 제17항 중 어느 한 항에 기재되는 방법에 따라 비디오의 비트스트림을 생성하는 단계, 및
상기 비트스트림을 컴퓨터-판독가능 프로그램 매체에 저장하는 단계를 포함하는 방법. - 본 문서에서 설명된, 방법, 장치, 개시된 방법에 따라 생성되는 비트스트림 또는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062984658P | 2020-03-03 | 2020-03-03 | |
US62/984,658 | 2020-03-03 | ||
PCT/US2021/020618 WO2021178504A1 (en) | 2020-03-03 | 2021-03-03 | Low frequency non-separable transform signaling in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220143857A true KR20220143857A (ko) | 2022-10-25 |
Family
ID=77613699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227029612A KR20220143857A (ko) | 2020-03-03 | 2021-03-03 | 비디오 코딩에서의 저 주파수 비-분리가능 변환 시그널링 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11936865B2 (ko) |
EP (1) | EP4097980A4 (ko) |
JP (2) | JP7479492B2 (ko) |
KR (1) | KR20220143857A (ko) |
CN (2) | CN115211125A (ko) |
WO (2) | WO2021178501A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4097976A4 (en) * | 2020-02-21 | 2023-03-01 | Beijing Bytedance Network Technology Co., Ltd. | SLICE AND TILE PARTITIONING IN VIDEO ENCODING |
WO2021198309A1 (en) * | 2020-04-02 | 2021-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual boundary signaling |
WO2021201551A1 (ko) * | 2020-04-02 | 2021-10-07 | 엘지전자 주식회사 | 비디오 또는 영상 코딩 시스템에서의 흑백 영상에 대한 크로마 디블록킹 파라미터 정보에 기반한 영상 코딩 방법 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9001883B2 (en) | 2011-02-16 | 2015-04-07 | Mediatek Inc | Method and apparatus for slice common information sharing |
US9237358B2 (en) * | 2011-11-08 | 2016-01-12 | Qualcomm Incorporated | Context reduction for context adaptive binary arithmetic coding |
US10244246B2 (en) | 2012-02-02 | 2019-03-26 | Texas Instruments Incorporated | Sub-pictures for pixel rate balancing on multi-core platforms |
JP2013236358A (ja) | 2012-03-14 | 2013-11-21 | Sharp Corp | 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造 |
US9503702B2 (en) * | 2012-04-13 | 2016-11-22 | Qualcomm Incorporated | View synthesis mode for three-dimensional video coding |
WO2013155897A1 (en) | 2012-04-16 | 2013-10-24 | Mediatek Inc. | Method and apparatus for loop filtering across slice or tile boundaries |
US20130343465A1 (en) * | 2012-06-26 | 2013-12-26 | Qualcomm Incorporated | Header parameter sets for video coding |
US9479774B2 (en) | 2012-09-24 | 2016-10-25 | Qualcomm Incorporated | Buffering period and recovery point supplemental enhancement information messages |
JP6505026B2 (ja) * | 2013-07-10 | 2019-04-24 | シャープ株式会社 | 符号化方法 |
US20150264404A1 (en) * | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US9712871B2 (en) * | 2014-05-01 | 2017-07-18 | Qualcomm Incorporated | Determination bitstream decoding capability in video coding |
US10142642B2 (en) * | 2014-06-04 | 2018-11-27 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
US10148961B2 (en) | 2015-05-29 | 2018-12-04 | Qualcomm Incorporated | Arithmetic coder with multiple window sizes |
US10038917B2 (en) | 2015-06-12 | 2018-07-31 | Microsoft Technology Licensing, Llc | Search strategies for intra-picture prediction modes |
US10349085B2 (en) * | 2016-02-15 | 2019-07-09 | Qualcomm Incorporated | Efficient parameter storage for compact multi-pass transforms |
US10390048B2 (en) * | 2016-02-15 | 2019-08-20 | Qualcomm Incorporated | Efficient transform coding using optimized compact multi-pass transforms |
US20190253624A1 (en) * | 2017-07-17 | 2019-08-15 | Ki Baek Kim | Image data encoding/decoding method and apparatus |
US11095893B2 (en) * | 2016-10-12 | 2021-08-17 | Qualcomm Incorporated | Primary transform and secondary transform in video coding |
US10708591B2 (en) * | 2017-03-20 | 2020-07-07 | Qualcomm Incorporated | Enhanced deblocking filtering design in video coding |
EP3422724B1 (en) | 2017-06-26 | 2024-05-01 | Nokia Technologies Oy | An apparatus, a method and a computer program for omnidirectional video |
KR20190024212A (ko) | 2017-08-31 | 2019-03-08 | 세종대학교산학협력단 | 타일 구조의 구성 방법 및 이의 장치 |
RU2741507C1 (ru) | 2017-10-09 | 2021-01-26 | Нокиа Текнолоджиз Ой | Устройство и способ для кодирования и декодирования видео |
US10873754B2 (en) | 2017-12-12 | 2020-12-22 | Coherent Logix, Incorporated | Low latency video codec and transmission with parallel processing |
US11012715B2 (en) | 2018-02-08 | 2021-05-18 | Qualcomm Incorporated | Intra block copy for video coding |
US11445187B2 (en) | 2018-02-28 | 2022-09-13 | Sharp Kabushiki Kaisha | Systems and methods for partitioning regions of a picture for video coding using different coding unit sizes |
TWI731322B (zh) * | 2018-03-29 | 2021-06-21 | 弗勞恩霍夫爾協會 | 變換組 |
US11317085B2 (en) * | 2018-03-30 | 2022-04-26 | Vid Scale, Inc. | Template-based inter prediction techniques based on encoding and decoding latency reduction |
CN115379216A (zh) * | 2018-06-03 | 2022-11-22 | Lg电子株式会社 | 视频信号的解码、编码和发送设备及存储视频信号的介质 |
CN110662057B (zh) | 2018-06-29 | 2022-06-21 | 北京字节跳动网络技术有限公司 | 视频处理方法、装置、设备以及存储比特流的方法 |
CN112262577B (zh) | 2018-06-29 | 2024-07-16 | 交互数字Vc控股公司 | 亮度和色度分量的波阵面并行处理 |
TWI792578B (zh) | 2018-07-09 | 2023-02-11 | 弗勞恩霍夫爾協會 | 用於經編碼圖像多樣化空間劃分之編碼器、解碼器、編碼方法及解碼方法 |
CN110839158B (zh) * | 2018-08-16 | 2023-03-10 | 北京字节跳动网络技术有限公司 | 变换矩阵选择的系数相关的编解码 |
CA3114453C (en) | 2018-09-28 | 2023-07-18 | Zte Corporation | Video encoding and decoding methods and apparatus |
JP2021513755A (ja) | 2019-01-15 | 2021-05-27 | エルジー エレクトロニクス インコーポレイティド | 変換スキップフラグを利用した映像コーディング方法及び装置 |
US11616966B2 (en) * | 2019-04-03 | 2023-03-28 | Mediatek Inc. | Interaction between core transform and secondary transform |
SG11202111758WA (en) * | 2019-04-25 | 2021-11-29 | Op Solutions Llc | Global motion for merge mode candidates in inter prediction |
GB2584295A (en) | 2019-05-28 | 2020-12-02 | Canon Kk | Method and apparatus for encoding and decoding a video bitstream for merging regions of interest |
US11134275B2 (en) * | 2019-06-04 | 2021-09-28 | Tencent America LLC | Method and apparatus for performing primary transform based on filtering of blocks |
CN114208175B (zh) | 2019-06-11 | 2023-06-13 | Lg电子株式会社 | 基于色度量化参数数据的图像解码方法及其设备 |
KR20210154860A (ko) | 2019-06-11 | 2021-12-21 | 엘지전자 주식회사 | 영상 디코딩 방법 및 그 장치 |
KR20220042125A (ko) | 2019-08-10 | 2022-04-04 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 서브픽처 디코딩에서의 버퍼 관리 |
US11153576B2 (en) * | 2019-09-20 | 2021-10-19 | Qualcomm Incorporated | Scaling matrices and signaling for video coding |
JP7322290B2 (ja) | 2019-10-02 | 2023-08-07 | 北京字節跳動網絡技術有限公司 | ビデオビットストリームにおけるサブピクチャシグナリングのための構文 |
CN114600462A (zh) | 2019-10-25 | 2022-06-07 | 夏普株式会社 | 用于在视频编码中发送信号通知图片信息的系统和方法 |
JP7402016B2 (ja) * | 2019-11-06 | 2023-12-20 | オッポ広東移動通信有限公司 | 画像復号装置及び画像符号化装置 |
GB2590632B (en) | 2019-12-20 | 2023-07-26 | Canon Kk | Video coding and decoding |
GB2590636B (en) | 2019-12-20 | 2024-01-10 | Canon Kk | High level syntax for video coding and decoding |
US11477450B2 (en) | 2019-12-20 | 2022-10-18 | Zte (Uk) Limited | Indication of video slice height in video subpictures |
EP4084479A4 (en) | 2019-12-23 | 2024-01-17 | LG Electronics Inc. | IMAGE CODING APPARATUS AND METHOD BASED ON A PARTIAL IMAGE |
WO2021155778A1 (en) | 2020-02-03 | 2021-08-12 | Beijing Bytedance Network Technology Co., Ltd. | Cross-component adaptive loop filter |
US20220039430A1 (en) | 2020-08-07 | 2022-02-10 | Innovative Strategic Design, Llc | Reduced-sugar fruit juice and fruit must |
-
2021
- 2021-03-03 WO PCT/US2021/020615 patent/WO2021178501A1/en active Application Filing
- 2021-03-03 KR KR1020227029612A patent/KR20220143857A/ko unknown
- 2021-03-03 CN CN202180019067.8A patent/CN115211125A/zh active Pending
- 2021-03-03 CN CN202180019098.3A patent/CN115211044B/zh active Active
- 2021-03-03 WO PCT/US2021/020618 patent/WO2021178504A1/en unknown
- 2021-03-03 JP JP2022552756A patent/JP7479492B2/ja active Active
- 2021-03-03 EP EP21764233.9A patent/EP4097980A4/en active Pending
-
2022
- 2022-09-01 US US17/901,270 patent/US11936865B2/en active Active
-
2023
- 2023-11-06 JP JP2023189325A patent/JP2024010169A/ja active Pending
- 2023-11-13 US US18/507,838 patent/US20240121389A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4097980A1 (en) | 2022-12-07 |
US20230007253A1 (en) | 2023-01-05 |
CN115211125A (zh) | 2022-10-18 |
JP7479492B2 (ja) | 2024-05-08 |
EP4097980A4 (en) | 2023-04-19 |
US20240121389A1 (en) | 2024-04-11 |
WO2021178504A1 (en) | 2021-09-10 |
JP2023515884A (ja) | 2023-04-14 |
JP2024010169A (ja) | 2024-01-23 |
CN115211044A (zh) | 2022-10-18 |
WO2021178501A1 (en) | 2021-09-10 |
CN115211044B (zh) | 2024-10-01 |
US11936865B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7479492B2 (ja) | ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング | |
WO2021164783A1 (en) | Signaling of slice and tile picture partitions | |
KR20220124702A (ko) | 비디오 비트스트림들에서의 값 범위들에 대한 제약들 | |
JP2024015106A (ja) | サブピクチャレベルに基づいたパーティション計算 | |
WO2021164785A1 (en) | Coding of pictures containing slices and tiles |