KR102706671B1 - 서브픽처 레벨에 기초한 분할 계산 - Google Patents

서브픽처 레벨에 기초한 분할 계산 Download PDF

Info

Publication number
KR102706671B1
KR102706671B1 KR1020227027814A KR20227027814A KR102706671B1 KR 102706671 B1 KR102706671 B1 KR 102706671B1 KR 1020227027814 A KR1020227027814 A KR 1020227027814A KR 20227027814 A KR20227027814 A KR 20227027814A KR 102706671 B1 KR102706671 B1 KR 102706671B1
Authority
KR
South Korea
Prior art keywords
video
tile
subpicture
equal
ctb
Prior art date
Application number
KR1020227027814A
Other languages
English (en)
Other versions
KR20220143832A (ko
Inventor
예-쿠이 왕
리 장
카이 장
Original Assignee
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이트댄스 아이엔씨 filed Critical 바이트댄스 아이엔씨
Publication of KR20220143832A publication Critical patent/KR20220143832A/ko
Application granted granted Critical
Publication of KR102706671B1 publication Critical patent/KR102706671B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

비디오 인코딩 및 비디오 디코딩을 위한 여러 기술들이 설명된다. 하나의 예시적인 방법은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 각각의 비디오 픽처는 하나 이상의 타일 열을 포함하는 하나 이상의 타일을 포함하고, 여기서 비트스트림은 포맷 규칙을 준수하며, 여기서 포맷 규칙은 비디오 픽처의 타일의 각각의 코딩 트리 유닛(CTU) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정한다.

Description

서브픽처 레벨에 기초한 분할 계산
관련 출원들의 상호 참조
본 출원은 2020년 2월 24일에 제출된 미국 가특허 출원 제62/980,963호에 대한 우선권 및 그 이익을 주장하는, 2021년 2월 23일에 제출된 국제 특허 출원 제PCT/US2021/019216호에 기초한다. 앞서 언급된 모든 특허 출원들은 그 전체가 본 명세서에 참고로 포함된다.
기술 분야
이 특허 문서는 이미지 및 비디오 코딩 및 디코딩에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 코딩된 표현의 디코딩에 유용한 제어 정보를 사용하여 비디오의 코딩된 표현을 프로세싱하기 위해 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기술들을 개시한다.
하나의 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 각각의 비디오 픽처는 하나 이상의 타일 열을 포함하는 하나 이상의 타일을 포함하고, 여기서 비트스트림은 포맷 규칙을 준수하며, 여기서 포맷 규칙은 비디오 픽처의 타일의 각각의 코딩 트리 유닛(CTU) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 각각의 비디오 픽처는 하나 이상의 타일 행을 포함하는 하나 이상의 타일을 포함하고, 여기서 비트스트림은 포맷 규칙을 준수하며, 여기서 포맷 규칙은 비디오 픽처의 타일의 각각의 코딩 트리 유닛(CTU) 행에 대한 타일 행 인덱스가 도출된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 적어도 하나의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 적어도 하나의 비디오 픽처는 하나 이상의 슬라이스 및 하나 이상의 서브픽처를 포함하고, 여기서 규칙은 적어도 하나의 비디오 픽처에서의 하나 이상의 슬라이스의 슬라이스 인덱스들의 순서가 적어도 하나의 비디오 픽처의 서브픽처마다 단일 슬라이스가 포함되는지 여부를 나타내는 적어도 하나의 픽처와 연관된 신택스 요소에 응답하여 표시된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오의 비디오 영역의 비디오 유닛과 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 비트스트림에서의 비디오 영역의 제1 레벨에 있는 제1 제어 정보가 비트스트림에서의 비디오 유닛의 제2 레벨에 제2 제어 정보가 포함되는지 여부를 제어한다는 것을 지정하며, 여기서 제2 레벨은 제1 레벨보다 작고, 여기서 제1 제어 정보 및 제2 제어 정보는 루마 매핑 및 크로마 스케일링(LMCS) 툴이 비디오 유닛에 적용되는지 여부 또는 어떻게 적용되는지에 관한 정보를 포함하며, 여기서 LMCS 툴은 변환을 위해 크로마 잔차 스케일링(CRS), 또는 루마 리셰이핑 프로세스(RP)를 사용하는 것을 포함한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 참조된 시퀀스 파라미터 세트 내의 제1 신택스 요소가 루마 매핑 및 크로마 스케일링(LMCS) 툴이 인에이블된다는 것을 나타낼 때 LMCS 툴이 인에이블된다는 것을 지정하고, 여기서 규칙은 제1 신택스 요소가 LMCS 툴이 디스에이블된다는 것을 나타낼 때 LMCS 툴이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 비트스트림에서의 제2 신택스 요소가 LMCS 툴이 비디오의 픽처 헤더 레벨에서 인에이블된다는 것을 나타낼 때 비디오 픽처의 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 인에이블된다는 것을 지정하고, 여기서 규칙은 제2 신택스 요소가 LMCS 툴이 비디오의 픽처 헤더 레벨에서 디스에이블된다는 것을 나타낼 때 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 비트스트림에 선택적으로 포함되는 제3 신택스 요소가 LMCS 툴이 비디오의 슬라이스 헤더 레벨에서 인에이블된다는 것을 나타낼 때 비디오 픽처의 슬라이스 헤더와 연관된 현재 슬라이스에 대해 LMCS 툴이 사용된다는 것을 지정하고, 여기서 규칙은 제3 신택스 요소가 LMCS 툴이 비디오의 슬라이스 헤더 레벨에서 디스에이블된다는 것을 나타낼 때 현재 슬라이스에 대해 LMCS 툴이 사용되지 않는다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 적응적 모션 벡터 차이 해상도(AMVR)가 인에이블되는지 여부를 나타내는 참조된 시퀀스 파라미터 세트(SPS)에 선택적으로 포함되는 신택스 요소에 기초하여 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되는지 여부를 지정하고, 여기서 규칙은 신택스 요소가 AMVR이 디스에이블된다는 것을 나타낼 때 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 신택스 요소가 SPS에 포함되지 않을 때 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되지 않는 것으로 추론된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비디오 픽처는 서브픽처, 타일, 및 슬라이스를 포함하고, 여기서 규칙은, 서브픽처가 타일로부터 분할되는 슬라이스를 포함하는 것으로 인해, 비디오 픽처의 타일 수를 사용하여 서브픽처의 높이를 카운트하지 않고 변환이 수행된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 비디오 픽처의 코딩 트리 유닛(CTU) 수에 기초하여 카운트되는 비디오 픽처의 서브픽처의 높이를 표시한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은, 규칙에 따라, 비디오의 비디오 픽처의 서브픽처의 높이가 비디오 픽처의 타일 행의 높이보다 작은지 여부에 관해 결정하는 단계; 및 이 결정을 사용하여, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 - 코딩된 표현은 포맷 규칙을 준수함 - 사이의 변환을 수행하는 단계를 포함하며; 여기서 포맷 규칙은 코딩된 표현에서 시그널링되는 제1 정보 및 코딩된 표현으로부터 도출되는 제2 정보를 지정하고, 여기서 적어도 제1 정보 또는 제2 정보는 하나 이상의 타일의 행 인덱스들 또는 열 인덱스들에 관한 것이다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 비디오의 비디오 영역의 비디오 유닛과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 여기서 코딩된 표현은 포맷 규칙을 준수하고; 여기서 포맷 규칙은 비디오 영역에 있는 제1 제어 정보가 비디오 유닛 레벨에 제2 제어 정보가 포함되는지 여부를 제어한다는 것을 지정하며; 여기서 제1 제어 정보 및/또는 제2 제어 정보는 변환을 위해 사용되는 루마 매핑 및 크로마 스케일링(LMCS) 또는 크로마 잔차 스케일링(CRS) 또는 리셰이핑 프로세스(RP)에 관한 정보를 포함한다.
또 다른 예시적인 양태에서, 비디오 인코더 장치가 개시된다. 비디오 인코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양태에서, 비디오 디코더 장치가 개시된다. 비디오 디코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양태에서, 코드가 저장된 컴퓨터 판독 가능 매체가 개시된다. 코드는 본 명세서에서 설명된 방법들 중 하나를 프로세서 실행 가능 코드 형태로 구체화한다.
이들 및 다른 특징들이 본 문서 전체에 걸쳐 설명된다.
도 1은 픽처의 래스터 스캔 슬라이스 분할의 예를 도시하며, 여기서 픽처는 12 개의 타일과 3 개의 래스터 스캔 슬라이스로 나누어진다.
도 2는 픽처의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 픽처는 24 개의 타일(6 개의 타일 열과 4 개의 타일 행) 및 9 개의 직사각형 슬라이스로 나누어진다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 픽처의 예를 도시하며, 여기서 픽처는 4 개의 타일(2 개의 타일 열과 2 개의 타일 행) 및 4 개의 직사각형 슬라이스로 나누어진다.
도 4는 15 개의 타일, 24 개의 슬라이스 및 24 개의 서브픽처로 분할되는 픽처를 도시한다.
도 5는 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 6은 비디오 프로세싱 장치의 블록 다이어그램이다.
도 7은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다.
도 8은 본 개시내용의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 9는 본 개시내용의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 10은 본 개시내용의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 11 내지 도 19는 예시적인 비디오 프로세싱 방법들에 대한 플로차트들이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용되며 각각의 섹션에 개시된 기술들 및 실시예들의 적용 가능성을 해당 섹션으로만 제한하지 않는다. 게다가, H.266 전문용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위해 사용되지 않는다. 이에 따라, 본 명세서에서 설명되는 기술들은 다른 비디오 코덱 프로토콜들 및 설계들에도 적용 가능하다. 본 문서에서, 텍스트에 대한 편집 변경 사항들은, VVC 사양의 현재 초안과 관련하여, 이중 대괄호들 사이에 취소된 텍스트를 나타내는 열기 및 닫기 이중 대괄호들(예를 들면, [[ ]]), 및 추가된 텍스트를 나타내는 굵은 기울임꼴 텍스트에 의해 나타내어져 있다.
1. 요약
이 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 이는 서브픽처들, LMCS, 및 AMVR에 대한 지원에 관한 것이다. 서브픽처들에 대한 측면들은 하나의 서브픽처에 포함되는 타일 행 및 열 수를 도출하는 것은 물론 각각의 서브픽처가 하나의 슬라이스만을 포함할 때 슬라이스에 포함되는 CTU들에 대한 래스터 스캔 CTU 주소 리스트를 도출하는 것을 포함한다. LMCS에 대한 측면들은 상이한 레벨들에서 LMCS의 인에이블을 시그널링하는 것에 관한 것이다. AMVR에 대한 측면들은 sps_affine_amvr_enabled_flag의 시맨틱스에 관한 것이다. 아이디어들은 단일 계층 및/또는 다중 계층 비디오 코딩, 예를 들면, 개발 중인 다목적 비디오 코딩(VVC)을 지원하는 임의의 비디오 코딩 표준 또는 비표준 비디오 코덱에 개별적으로 또는 다양한 조합으로 적용될 수 있다.
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(결합 탐색 모델)
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(VVC 테스트 모델)
VUI Video Usability Information(비디오 사용성 정보)
VVC Versatile Video Coding(다목적 비디오 코딩)
3. 초기 논의
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전해 왔다. ITU-T는 H.261 및 H.263 표준들을 만들었고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual 표준들을 만들었으며, 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들을 만들었다. H.262 이후로, 비디오 코딩 표준들은 시간적 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC 이후의 미래 비디오 코딩 기술을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되었고 JEM(Joint Exploration Model)이라는 참조 소프트웨어에 추가되었다. JVET 회의는 분기마다 1회 동시에 개최되며, 새로운 코딩 표준은 HEVC에 비해 50% 비트레이트 감소를 목표로 하고 있다. 새로운 비디오 코딩 표준은 2018년 4월 JVET 회의에서 공식적으로 다목적 비디오 코딩(VVC)이라고 명명되었으며, 당시에 VVC 테스트 모델(VTM)의 첫 번째 버전이 발표되었다. VVC 표준화에 기여하는 지속적인 노력이 있기 때문에, 매번의 JVET 회의에서 새로운 코딩 기술들이 VVC 표준에 채택되고 있다. VVC 작업 초안과 테스트 모델 VTM은 이어서 매번의 회의 이후에 업데이트된다. VVC 프로젝트는 이제 2020년 7월 회의에서 기술적 완성(FDIS)을 목표로 하고 있다.
3.1. HEVC에서의 픽처 분할 방식들
HEVC는, 최대 전송 유닛(Maximum Transfer Unit, MTU) 크기 매칭, 병렬 프로세싱, 및 감소된 종단 간 지연을 위해 적용될 수 있는, 4 가지 상이한 픽처 분할 방식, 즉 일반 슬라이스들, 종속적 슬라이스들, 타일들, 및 웨이브프런트 병렬 프로세싱(Wavefront Parallel Processing, WPP)을 포함한다.
일반 슬라이스들은 H.264/AVC에서와 유사하다. 각각의 일반 슬라이스는 자체 NAL 유닛에 캡슐화되고, 픽처 내 예측(in-picture prediction)(인트라 샘플 예측, 모션 정보 예측, 코딩 모드 예측) 및 슬라이스 경계들에 걸친 엔트로피 코딩 종속성이 디스에이블된다. 따라서 일반 슬라이스는 동일한 픽처 내의 다른 일반 슬라이스들과 독립적으로 재구성될 수 있다(루프 필터링 동작들로 인해 여전히 상호 종속성들이 있을 수 있다).
일반 슬라이스는, H.264/AVC에서도 거의 동일한 형태로 이용 가능한, 병렬화에 사용될 수 있는 유일한 툴이다. 일반 슬라이스들 기반 병렬화는 (예측 코딩된 픽처를 디코딩할 때 모션 보상을 위한 프로세서 간 또는 코어 간 데이터 공유 - 이는 전형적으로 픽처 내 예측으로 인한 프로세서 간 또는 코어 간 데이터 공유보다 훨씬 더 과중함 - 를 제외하고는) 많은 프로세서 간 또는 코어 간 통신을 필요로 하지 않는다. 그렇지만, 동일한 이유로, 일반 슬라이스들의 사용은 슬라이스 헤더의 비트 비용으로 인해 및 슬라이스 경계들에 걸친 예측 결여로 인해 상당한 코딩 오버헤드를 초래할 수 있다. 게다가, (아래에 언급된 다른 툴들과 대조적으로) 일반 슬라이스들은 또한, 일반 슬라이스들의 픽처 내 독립성 및 각각의 일반 슬라이스가 자체 NAL 유닛에 캡슐화되는 것으로 인해, MTU 크기 요구 사항들과 매칭하도록 비트스트림 분할을 위한 핵심 메커니즘으로서 역할한다. 많은 경우에, 병렬화의 목표와 MTU 크기 매칭의 목표는 픽처에서의 슬라이스 레이아웃에 대한 상충된 요구들을 한다. 이러한 상황의 인식은 아래에 언급된 병렬화 툴들의 개발로 이어졌다.
종속적 슬라이스들은 짧은 슬라이스 헤더들을 가지며, 임의의 픽처 내 예측을 깨뜨리지 않고 트리블록 경계들에서 비트스트림의 분할을 가능하게 한다. 기본적으로, 일반 슬라이스 전체의 인코딩이 완료되기 전에 일반 슬라이스의 일부가 송출될 수 있게 하는 것에 의해 감소된 종단 간 지연을 제공하기 위해, 종속적 슬라이스들은 일반 슬라이스들을 다수의 NAL 유닛들로 단편화하는 것을 제공한다.
WPP에서는, 픽처가 단일 코딩 트리 블록(CTB) 행들로 분할된다. 엔트로피 디코딩 및 예측은 다른 파티션들에 있는 CTB들로부터의 데이터를 사용할 수 있다. 병렬 프로세싱은 CTB 행들의 병렬 디코딩을 통해 가능하며, 여기서 대상 CTB가 디코딩되기 전에 대상 CTB의 우측 위쪽에 있는 CTB에 관련된 데이터가 이용 가능하도록 하기 위해, CTB 행의 디코딩의 시작이 2 개의 CTB만큼 지연된다. 이러한 시차를 둔(staggered) 시작(이는 그래픽으로 표현될 때 파면처럼 보임)을 사용하면, 픽처가 CTB 행들을 포함한 수만큼의 프로세서들/코어들로 병렬화가 가능하다. 픽처 내의 이웃하는 트리블록 행들 사이의 픽처 내 예측이 가능하게 되기 때문에, 픽처 내 예측을 가능하게 하기 위해 필요한 프로세서 간/코어 간 통신이 상당할 수 있다. WPP 분할은 이것이 적용되지 않을 때와 비교하여 추가적인 NAL 유닛들의 생성을 결과하지 않으며, 따라서 WPP는 MTU 크기 매칭을 위한 툴이 아니다. 그렇지만, MTU 크기 매칭이 필요한 경우, 특정 코딩 오버헤드를 가지면서, 일반 슬라이스들이 WPP와 함께 사용될 수 있다.
타일들은 픽처를 타일 열들과 행들로 분할하는 수평 경계들 및 수직 경계들을 정의한다. 타일 열은 픽처의 상단으로부터 픽처의 하단으로 이어진다. 마찬가지로, 타일 행은 픽처의 왼쪽으로부터 픽처의 오른쪽으로 이어진다. 픽처 내의 타일 수는 타일 열 수와 타일 행 수를 곱하는 것으로서 간단하게 도출될 수 있다.
픽처의 타일 래스터 스캔 순서에서 다음 타일의 좌측 상단 CTB를 디코딩하기 전에, CTB들의 스캔 순서가 (타일의 CTB 래스터 스캔 순서에서) 타일 내에 로컬이도록 변경된다. 일반 슬라이스들과 유사하게, 타일들은 픽처 내 예측 종속성들은 물론 엔트로피 디코딩 종속성들을 깨뜨린다. 그렇지만, 타일들이 개개의 NAL 유닛들에 포함될 필요가 없으며(이 점에서 WPP와 동일함); 따라서 타일들이 MTU 크기 매칭에 사용될 수 없다. 각각의 타일은 하나의 프로세서/코어에 의해 프로세싱될 수 있으며, 이웃하는 타일들을 디코딩하는 프로세싱 유닛들 간의 픽처 내 예측에 필요한 프로세서 간/코어 간 통신은 슬라이스가 둘 이상의 타일에 걸쳐 있는 경우에 공유 슬라이스 헤더를 전달하는 것, 및 재구성된 샘플들 및 메타데이터의 루프 필터링 관련 공유로 제한된다. 둘 이상의 타일 또는 WPP 세그먼트가 슬라이스에 포함될 때, 슬라이스에서의 첫 번째 타일 또는 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 행들로 구성된다.
두 가지 슬라이스 모드, 즉 래스터 스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 픽처의 타일 래스터 스캔에서 완전한 타일들의 시퀀스를 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 픽처의 직사각형 영역을 집합적으로 형성하는 다수의 완전 타일들 또는 픽처의 직사각형 영역을 집합적으로 형성하는 하나의 타일의 다수의 연속적인 완전 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. VVC(JVET-Q2001-vC임)에서의 SPS/PPS/픽처 헤더/슬라이스 헤더의 시그널링
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure 112022084020811-pct00001
Figure 112022084020811-pct00002
Figure 112022084020811-pct00003
Figure 112022084020811-pct00004
Figure 112022084020811-pct00005
Figure 112022084020811-pct00006
Figure 112022084020811-pct00007
Figure 112022084020811-pct00008
Figure 112022084020811-pct00009
Figure 112022084020811-pct00010
7.3.2.4 픽처 파라미터 세트 RBSP 신택스
Figure 112022084020811-pct00011
Figure 112022084020811-pct00012
Figure 112022084020811-pct00013
Figure 112022084020811-pct00014
Figure 112022084020811-pct00015
Figure 112022084020811-pct00016
7.3.2.7 픽처 헤더 구조 신택스
Figure 112022084020811-pct00017
Figure 112022084020811-pct00018
Figure 112022084020811-pct00019
Figure 112022084020811-pct00020
Figure 112022084020811-pct00021
Figure 112022084020811-pct00022
Figure 112022084020811-pct00023
7.3.7.1 일반 슬라이스 헤더 신택스
Figure 112022084020811-pct00024
Figure 112022084020811-pct00025
Figure 112022084020811-pct00026
Figure 112022084020811-pct00027
Figure 112022084020811-pct00028
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 시맨틱스
...
subpic_id_mapping_in_pps_flag가 1과 동일한 것은 서브픽처 ID 매핑이 PPS에서 시그널링된다는 것을 지정한다. subpic_id_mapping_in_pps_flag가 0과 동일한 것은 서브픽처 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의 첫 번째 픽처가 아닐 때, 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 i의 각각의 값에 대해, SubpicIdVal[ i ]의 값이 동일한 계층에 있는 디코딩 순서상 이전 픽처의 SubpicIdVal[ i ]의 값과 동일하지 않은 경우, 서브픽처 인덱스 i를 갖는 현재 픽처 내의 서브픽처의 모든 코딩된 슬라이스 NAL 유닛들에 대한 nal_unit_type은 IDR_W_RADL 내지 CRA_NUT(경계 포함)의 범위에 있는 특정 값과 동일해야 한다.
no_pic_partition_flag가 1과 동일한 것은 PPS를 참조하는 각각의 픽처에 픽처 분할이 적용되지 않는다는 것을 지정한다. no_pic_partition_flag가 0과 동일한 것은 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과 동일한 것으로 추론된다.
rect_slice_flag가 0과 동일한 것은 각각의 슬라이스 내의 타일들이 래스터 스캔 순서로 있고 슬라이스 정보가 PPS에서 시그널링되지 않는다는 것을 지정한다. rect_slice_flag가 1과 동일한 것은 각각의 슬라이스 내의 타일들이 픽처의 직사각형 영역을 커버하고 슬라이스 정보가 PPS에서 시그널링된다는 것을 지정한다. 존재하지 않을 때, rect_slice_flag는 1과 동일한 것으로 추론된다. subpic_info_present_flag가 1과 동일할 때, rect_slice_flag의 값은 1과 동일해야 한다.
single_slice_per_subpic_flag가 1과 동일한 것은 각각의 서브픽처가 단 하나의 직사각형 슬라이스로 구성된다는 것을 지정한다. single_slice_per_subpic_flag가 0과 동일한 것은 각각의 서브픽처가 하나 이상의 직사각형 슬라이스로 구성될 수 있다는 것을 지정한다. 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과 동일한 것으로 추론된다.
tile_idx_delta_present_flag가 0과 동일한 것은 tile_idx_delta 값들이 PPS에 존재하지 않고 PPS를 참조하는 픽처들 내의 모든 직사각형 슬라이스들이 6.5.1 절에 정의된 프로세스에 따라 래스터 순서로 지정된다는 것을 지정한다. [Ed. (RS): 수학식에 대한 참조를 추가한다.] tile_idx_delta_present_flag가 1과 동일한 것은 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 번째 직사각형 슬라이스에서의 첫 번째 타일의 타일 인덱스와 ( i + 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과 동일하게 설정된다.
picture_header_in_slice_header_flag가 1과 동일한 것은 PH 신택스 구조가 슬라이스 헤더에 존재한다는 것을 지정한다. picture_header_in_slice_header_flag가 0과 동일한 것은 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과 동일할 때, 현재 픽처에서의 모든 코딩된 슬라이스들은 picture_header_in_slice_header_flag가 0과 동일해야 하고, 현재 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 )
LMCS는 두 가지 측면, 즉 루마 매핑(RP로 표기되는, 리셰이핑 프로세스) 및 루마 종속적 크로마 잔차 스케일링(CRS)을 포함한다. 루마 신호의 경우, LMCS 모드는 원래 도메인인 제1 도메인과 리셰이핑 모델들에 따라 루마 샘플들을 특정 값들에 매핑하는 리셰이핑된 도메인인 제2 도메인을 포함하는 2 개의 도메인에 기초하여 작동한다. 추가적으로, 크로마 신호의 경우, 스케일링 인자들이 루마 샘플들로부터 도출되는 잔차 스케일링이 적용될 수 있다.
SPS, 픽처 헤더(PH) 및 슬라이스 헤더(SH)의 관련 신택스 요소들 및 시맨틱스는 다음과 같이 설명된다:
신택스 테이블들
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure 112022084020811-pct00048
7.3.2.7 픽처 헤더 구조 신택스
Figure 112022084020811-pct00049
Figure 112022084020811-pct00050
7.3.7 슬라이스 헤더 신택스
7.3.7.1 일반 슬라이스 헤더 신택스
Figure 112022084020811-pct00051
시맨틱스
sps_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 CLVS에서 사용된다는 것을 지정한다. sps_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 CLVS에서 사용되지 않는다는 것을 지정한다.
ph_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 PH와 연관된 모든 슬라이스들에 대해 인에이블된다는 것을 지정한다. ph_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 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보다 작거나 같아야 한다.
ph_chroma_residual_scale_flag가 1과 동일한 것은 크로마 잔차 스케일링이 PH와 연관된 모든 슬라이스들에 대해 인에이블된다는 것을 지정한다. ph_chroma_residual_scale_flag가 0과 동일한 것은 크로마 잔차 스케일링이 PH와 연관된 하나, 또는 그 이상, 또는 모든 슬라이스들에 대해 디스에이블될 수 있다는 것을 지정한다. ph_chroma_residual_scale_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
slice_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 인에이블된다는 것을 지정한다. slice_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 인에이블되지 않는다는 것을 지정한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
3.6. 아핀 코딩된 블록들에 대한 적응적 모션 벡터 차이 해상도(AMVR)
아핀 AMVR은 아핀 인터 코딩된 블록이 MV 차이들을 상이한 해상도들로, 예컨대, 1/4 루마 샘플(기본값, amvr_flag이 0으로 설정됨), 1/16 루마 샘플, 1 루마 샘플의 정밀도로 전송할 수 있도록 하는 코딩 툴이다.
SPS에서의 관련 신택스 요소들 및 시맨틱스는 다음과 같이 설명된다:
신택스 테이블들
7.3.2.3 시퀀스 파라미터 세트 RBSP 신택스
Figure 112022084020811-pct00052
시맨틱스
sps_affine_amvr_enabled_flag가 1과 동일한 것은 적응적 모션 벡터 차이 해상도가 아핀 인터 모드의 모션 벡터 코딩에서 사용된다는 것을 지정한다. sps_affine_amvr_enabled_flag가 0과 동일한 것은 적응적 모션 벡터 차이 해상도가 아핀 인터 모드의 모션 벡터 코딩에서 사용되지 않는다는 것을 지정한다. 존재하지 않을 때, sps_affine_amvr_enabled_flag의 값은 0과 동일한 것으로 추론된다.
D.7 서브픽처 레벨 정보 SEI 메시지
D.7.1 서브픽처 레벨 정보 SEI 메시지 신택스
Figure 112022084020811-pct00053
D.7.2 서브픽처 레벨 정보 SEI 메시지 시맨틱스
서브픽처 레벨 정보 SEI 메시지는 부록 A에 따라 서브픽처 시퀀스들을 포함하는 추출된 비트스트림들의 적합성을 테스트할 때 비트스트림 내의 서브픽처 시퀀스들이 부합하는 레벨에 대한 정보를 포함한다.
CLVS의 임의의 픽처에 대한 서브픽처 레벨 정보 SEI 메시지가 존재할 때, CLVS의 첫 번째 픽처에 대한 서브픽처 레벨 정보 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 개의 서브픽처 각각에 대해 시그널링되는 참조 레벨 수를 지정한다.
sli_cbr_constraint_flag가 0과 동일한 것은 추출된 서브비트스트림에서 임의의 CPB 사양을 사용하는 HRD를 사용하는 것에 의해 C.7 절에 따라 비트스트림의 임의의 서브픽처의 추출로부터 얻어지는 서브비트스트림들을 디코딩하기 위해, 가상 스트림 스케줄러(hypothetical stream scheduler, HSS)가 간헐적 비트레이트 모드에서 작동한다는 것을 지정한다. sli_cbr_constraint_flag가 1과 동일한 것은 HSS가 고정 비트 레이트(constant bit rate, CBR) 모드에서 작동한다는 것을 지정한다.
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_height_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에 지정되어 있다.
0과 동일한 general_tier_flag 및 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에 표시되거나 추론됨)를 갖는다.
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. 기술들 및 실시예들의 예들
이상의 문제들, 및 언급되지 않은 어떤 다른 문제들을 해결하기 위해, 아래에 요약된 바와 같은 방법들이 개시된다. 항목들은 일반적인 개념을 설명하기 위한 예로서 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 게다가, 이러한 항목들은 개별적으로 적용될 수 있거나 임의의 방식으로 조합될 수 있다.
서브픽처들에 관련된 제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) 더 작은 타일 인덱스 값을 갖는 제1 타일 내의 제1 CTU가 더 큰 타일 인덱스 값을 갖는 제2 타일 내의 제2 CTU보다 먼저 있도록 서브픽처에서의 상이한 타일들 내의 CTU들이 정렬된다.
2) 서브픽처에서의 하나의 타일 내의 CTU들은 타일의 CTU 래스터 스캔 순서로 되어 있다.
LMCS에 관련된 제3 문제(하위 문제들을 포함함)의 해결
2. LMCS의 2-레벨 제어(두 가지 측면, 즉 루마 매핑(RP로 표기되는 리셰이핑 프로세스) 및 루마 종속적 크로마 잔차 스케일링(CRS)을 포함함)가 도입되며, 여기서 상위 레벨(예를 들면, 픽처 레벨) 제어 및 하위 레벨(예를 들면, 슬라이스 레벨) 제어가 사용되며 하위 레벨 제어 정보가 존재하는지 여부는 상위 레벨 제어 정보에 의존한다. 추가적으로, 다음이 적용된다:
a. 제1 예에서, 아래의 하위 글머리 기호들 중 하나 이상이 적용된다:
i. LMCS가 하위 레벨에서 어떻게 인에이블되는지를 지정하기 위해 제1 지시자(예를 들면, ph_lmcs_enabled_type)가 상위 레벨에서(예를 들면, 픽처 헤더(PH)에서) 시그널링될 수 있으며, 제1 지시자는 비이진 값이다.
1) 일 예에서, 제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 지시자가 존재하지 않을 때, 지시자의 값은, 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) 대안적으로, 게다가, 슬라이스들에 의해 사용되는 LMCS APS 정보(예를 들면, ph_lmcs_aps_id) 및/또는 CS 인에이블 플래그(예를 들면, ph_chroma_residual_scale_flag)는 제1 지시자의 값들에 대한 조건 검사에 따라 시그널링될 수 있다.
ii. 하위 레벨에 대한 LMCS 인에이블/디스에이블의 제2 지시자(예를 들면, slice_lmcs_enabled_flag)는 하위 레벨에서(예를 들면, 슬라이스 헤더에서) 시그널링될 수 있고, 제1 지시자의 값을 검사하는 것에 의해 조건부로 시그널링될 수 있다.
1) 일 예에서, '제1 지시자가 Y와 동일하다'의 조건 검사에 따라 제2 지시자가 시그널링될 수 있다.
a) 대안적으로, '제1 지시자의 값 >> 1' 또는 '제1 지시자의 값/2' 또는 '제1 지시자의 값 & 0x01'의 조건 검사에 따라 제2 지시자가 시그널링될 수 있다.
b) 대안적으로, 게다가, 제1 지시자가 X와 동일할 때, LMCS가 인에이블되는 것으로 추론될 수 있거나; 제1 지시자가 Z와 동일할 때 LMCS가 디스에이블되는 것으로 추론될 수 있다.
b. 제2 예에서, 아래의 하위 글머리 기호들 중 하나 이상이 적용된다:
i. LMCS가 하위 레벨에서 어떻게 인에이블되는지를 지정하기 위해 하나 초과의 지시자가 상위 레벨에서(예를 들면, 픽처 헤더(PH)에서) 시그널링될 수 있으며, 이 지시자는 비이진 값이다.
1) 일 예에서, 2 개의 지시자가 PH에서 시그널링될 수 있다.
a) 일 예에서, 제1 지시자는 LMCS를 인에이블시키는 PH와 연관된 적어도 하나의 슬라이스가 있는지 여부를 지정한다. 그리고 제2 지시자는 PH와 연관된 모든 슬라이스들이 LMCS를 인에이블시키는지 여부를 지정한다.
i. 대안적으로, 게다가, 예를 들면, 제1 지시자가 LMCS를 인에이블시키는 적어도 하나의 슬라이스가 있다는 것을 지정할 때, 제2 지시자는 제1 지시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 게다가, 제2 지시자가 존재하지 않을 때, 모든 슬라이스들이 LMCS를 인에이블시키는 것으로 추론된다.
ii. 대안적으로, 게다가, 예를 들면, 제2 지시자가 슬라이스들 모두가 LMCS를 인에이블시키는 것은 아니라는 것을 지정할 때, 제3 지시자는 제2 지시자의 값에 따라 SH에서 조건부로 시그널링될 수 있다.
i. 대안적으로, 게다가, 제3 지시자가 존재하지 않을 때, 이는 제1 및/또는 제2 지시자의 값에 따라 추론될 수 있다(예를 들면, 제1 지시자의 값과 동일한 것으로 추론될 수 있다).
b) 대안적으로, 제1 지시자는 LMCS를 디스에이블시키는 PH와 연관된 적어도 하나의 슬라이스가 있는지 여부를 지정한다. 그리고 제2 지시자는 PH와 연관된 모든 슬라이스들이 LMCS를 디스에이블시키는지 여부를 지정한다.
i. 대안적으로, 게다가, 예를 들면, 제1 지시자가 LMCS를 디스에이블시키는 적어도 하나의 슬라이스가 있다는 것을 지정할 때, 제2 지시자는 제1 지시자의 값에 따라 조건부로 시그널링될 수 있다.
i. 대안적으로, 게다가, 제2 지시자가 존재하지 않을 때, PH와 연관된 모든 슬라이스들이 LMCS를 디스에이블시키는 것으로 추론된다.
ii. 대안적으로, 게다가, 예를 들면, 제2 지시자가 슬라이스들 모두가 LMCS를 디스에이블시키는 것은 아니라는 것을 지정할 때, 제3 지시자는 제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 플래그의 시맨틱스는 다음과 같이 업데이트된다:
sps_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 CLVS에서 [[사용된다]] 사용될 수 있다 는 것을 지정한다. sps_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 CLVS에서 사용되지 않는다는 것을 지정한다.
ph_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 PH와 연관된 모든 슬라이스들에 대해 [[인에이블된다]] 사용될 수 있다 는 것을 지정한다. ph_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 PH와 연관된 [[하나, 또는 그 이상, 또는]] 모든 슬라이스들에 대해 [[디스에이블될 수 있다]] 사용되지 않는다 는 것을 지정한다. 존재하지 않을 때, ph_lmcs_enabled_flag의 값은 0과 동일한 것으로 추론된다.
slice_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 [[인에이블된다]] 사용된다 는 것을 지정한다. slice_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 [[인에이블되지]] 사용되지 않는다는 것을 지정한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이는 0과 동일한 것으로 추론된다.
a. 픽처의 모든 슬라이스들에 대해 LMCS가 사용될 때 LMCS 시그널링이 SH에 존재하지 않도록, PH 및/또는 SH LMCS 시그널링이 변경된다.
i. 대안적으로, 게다가, LMCS가 어떻게 추론되는지는 PH LMCS 시그널링에 의존한다.
1) 일 예에서, LMCS가 픽처의 모든 슬라이스들에 사용될 때 LMCS는 인에이블되는 것으로 추론되고; LMCS가 픽처의 모든 슬라이스들에 사용되지 않을 때 LMCS는 디스에이블되는 것으로 추론된다.
아핀 AMVR 관련
4. SPS에서의 아핀 AMVR 플래그의 시맨틱스는 다음과 같이 업데이트된다:
sps_affine_amvr_enabled_flag가 1과 동일한 것은 적응적 모션 벡터 차이 해상도가 아핀 인터 모드의 모션 벡터 코딩에서 [[사용된다]] 사용될 수 있다 는 것을 지정한다. sps_affine_amvr_enabled_flag가 0과 동일한 것은 적응적 모션 벡터 차이 해상도가 아핀 인터 모드의 모션 벡터 코딩에서 사용되지 않는다는 것을 지정한다. 존재하지 않을 때, sps_affine_amvr_enabled_flag의 값은 0과 동일한 것으로 추론된다.
6. 실시예들
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 픽처 헤더 구조 신택스
Figure 112022084020811-pct00072
Figure 112022084020811-pct00073
Figure 112022084020811-pct00074
7.3.7.1 일반 슬라이스 헤더 신택스
Figure 112022084020811-pct00075
ph_lmcs_enabled_ type [[플래그]] M(예를 들면, M = 1) [[ 1 ]]과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 PH와 연관된 모든 슬라이스들에 대해 인에이블된다는 것을 지정한다. ph_lmcs_enabled_flag가 N(예를 들면, N=2)과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 적어도 하나의 슬라이스에 대해 인에이블되고 PH와 연관된 적어도 하나의 슬라이스에 대해 디스에이블된다는 것을 지정한다. ph_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 PH와 연관된 [[하나, 또는 그 이상, 또는]] 모든 슬라이스들에 대해 [[디스에이블될 수 있다]]디스에이블된다는 것을 지정한다. 존재하지 않을 때, ph_lmcs_enabled_flag의 값은 0과 동일한 것으로 추론된다.
slice_lmcs_enabled_flag가 1과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 인에이블된다는 것을 지정한다. slice_lmcs_enabled_flag가 0과 동일한 것은 크로마 스케일링을 사용한 루마 매핑이 현재 슬라이스에 대해 인에이블되지 않는다는 것을 지정한다. slice_lmcs_enabled_flag가 존재하지 않을 때, 이는 [[0]] (ph_lmcs_enabled_type ? 1 : 0) 과 동일한 것으로 추론된다.
위의 예들에서, M 및 N의 값들은, 제각기, 1 및 2로 설정될 수 있다. 대안적으로, M 및 N의 값들은, 제각기, 2 및 1로 설정될 수 있다.
도 5는 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(1900)을 도시하는 블록 다이어그램이다. 다양한 구현들은 시스템(1900)의 컴포넌트들의 일부 또는 전부를 포함할 수 있다. 시스템(1900)은 비디오 콘텐츠를 수신하기 위한 입력(1902)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들면, 8 또는 10 비트 다중 성분 픽셀 값들로 수신될 수 있거나, 또는 압축된 또는 인코딩된 포맷으로 되어 있을 수 있다. 입력(1902)은 네트워크 인터페이스, 주변기기 버스 인터페이스, 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, PON(passive optical network) 등과 같은 유선 인터페이스들 및 Wi-Fi 또는 셀룰러 인터페이스들과 같은 무선 인터페이스들을 포함한다.
시스템(1900)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 컴포넌트(1904)를 포함할 수 있다. 코딩 컴포넌트(1904)는 비디오의 코딩된 표현을 생성하기 위해 입력(1902)으로부터 코딩 컴포넌트(1904)의 출력으로의 비디오의 평균 비트레이트를 감소시킬 수 있다. 따라서 코딩 기술들은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술들이라고 불린다. 코딩 컴포넌트(1904)의 출력은 저장되거나, 컴포넌트(1906)에 의해 표현된 바와 같은, 연결된 통신을 통해 전송될 수 있다. 입력(1902)에 수신되는 비디오의 저장되거나 통신되는 비트스트림 표현(또는 코딩된 표현)은 디스플레이 인터페이스(1910)로 송신되는 픽셀 값들 또는 디스플레이 가능 비디오를 생성하기 위해 컴포넌트(1908)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자가 볼 수 있는 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라고 불린다. 게다가, 특정 비디오 프로세싱 동작들이 "코딩" 동작들 또는 툴들로 지칭되지만, 코딩 툴들 또는 동작들이 인코더에서 사용되고 코딩의 결과들을 반대로 하는 대응하는 디코딩 툴들 또는 동작들은 디코더에 의해 수행될 것임이 이해될 것이다.
주변기기 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 USB(universal serial bus) 또는 HDMI(high definition multimedia interface) 또는 Displayport 등을 포함할 수 있다. 스토리지 인터페이스들의 예들은 SATA(serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술들은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰들, 랩톱들, 스마트폰들 또는 다른 디바이스들과 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 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) 인터페이스(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)은 인트라 블록 복사(intra block copy, IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
게다가, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명 목적으로 도 9의 예에서 개별적으로 표현되어 있다.
분할 유닛(201)은 픽처를 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택 유닛(203)은, 예를 들어, 오차 결과들에 기초하여, 코딩 모드들, 즉 인트라(intra) 또는 인터(inter) 중 하나를 선택할 수 있고, 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고 재구성 유닛(212)에 제공하여 참조 픽처로서 사용하기 위한 인코딩된 블록을 재구성하도록 할 수 있다. 일부 예들에서, 모드 선택 유닛(203)은 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 또한 인터 예측의 경우에 블록에 대한 모션 벡터의 해상도(예를 들면, 서브픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교하는 것에 의해 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 픽처들의 디코딩된 샘플들 및 모션 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
모션 추정 유닛(204) 및 모션 보상 유닛(205)은, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스, 또는 B 슬라이스에 있는지에 따라, 현재 비디오 블록에 대해 상이한 동작들을 수행할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 1 내의 참조 픽처를 나타내는 참조 인덱스 및 현재 비디오 블록과 참조 비디오 블록 사이의 공간적 변위를 나타내는 모션 벡터를 생성할 수 있다. 모션 추정 유닛(204)은 참조 인덱스, 예측 방향 지시자, 및 모션 벡터를 현재 비디오 블록의 모션 정보로서 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대해 양방향 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 참조 비디오 블록에 대해 리스트 0 내의 참조 픽처들을 탐색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 리스트 1 내의 참조 픽처들을 탐색할 수 있다. 모션 추정 유닛(204)은 이어서 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1 내의 참조 픽처들을 나타내는 참조 인덱스들 및 참조 비디오 블록들과 현재 비디오 블록 사이의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 참조 인덱스들 및 현재 비디오 블록의 모션 벡터들을 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 모션 정보가 나타내는 참조 비디오 블록들에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 디코더의 디코딩 프로세싱을 위한 모션 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 모션 추정 유닛(204)은 현재 비디오에 대한 모션 정보의 전체 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 모션 정보와 충분히 유사하다고 결정할 수 있다.
일 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에, 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 갖는다는 것을 비디오 디코더(300)에 알려주는 값을 표시할 수 있다.
다른 예에서, 모션 추정 유닛(204)은, 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 간의 차이를 나타낸다. 비디오 디코더(300)는 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector predication) 및 병합 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대해 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대해 인트라 예측을 수행할 때, 인트라 예측 유닛(206)은 동일한 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 차감(예를 들면, 마이너스 부호로 표시됨)하는 것에 의해 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내의 샘플들의 상이한 샘플 성분들에 대응하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 예를 들어, 스킵 모드에서 현재 비디오 블록에 대한 현재 비디오 블록의 잔차 데이터가 없을 수 있고, 잔차 생성 유닛(207)은 차감 동작을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용하는 것에 의해 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화 유닛(210) 및 역변환 유닛(211)은, 제각기, 변환 계수 비디오 블록에 역양자화 및 역변환을 적용하여 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성할 수 있다. 재구성 유닛(212)은 버퍼(213)에 저장할 현재 블록과 연관된 재구성된 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성되는 하나 이상의 예측된 비디오 블록으로부터의 대응하는 샘플들에 재구성된 잔차 비디오 블록을 가산할 수 있다.
재구성 유닛(212)이 비디오 블록을 재구성한 후에, 비디오 블록에서의 비디오 블로킹 아티팩트를 감소시키기 위해 루프 필터링 동작이 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 툴 또는 모드를 인에이블시키도록 의사 결정하거나 결정하는 것을 포함한다. 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 인코더는 비디오 블록의 프로세싱에서 툴 또는 모드를 사용하거나 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 수정하는 것은 아닐 수 있다. 즉, 비디오 블록으로부터 비디오의 비트스트림(또는 비트스트림 표현)으로의 변환은 의사 결정 또는 결정에 기초하여 비디오 프로세싱 툴 또는 모드가 인에이블될 때 이를 사용할 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 인에이블될 때, 디코더는 비디오 프로세싱 툴 또는 모드에 기초하여 비트스트림이 수정되었다는 지식을 사용하여 비트스트림을 프로세싱할 것이다. 즉, 비디오의 비트스트림으로부터 비디오 블록으로의 변환은 의사 결정 또는 결정에 기초하여 인에이블된 비디오 프로세싱 툴 또는 모드를 사용하여 수행될 것이다.
도 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 artifact)를 제거하기 위해 디블록킹 필터가 또한 적용될 수 있다. 디코딩된 비디오 블록들은 이어서 버퍼(307)에 저장되고, 버퍼(307)는 후속하는 모션 보상/인트라 예측을 위한 참조 블록들을 제공하고 또한 디스플레이 디바이스 상에 제시할 디코딩된 비디오를 생성한다.
일부 실시예들에 의해 선호되는 해결책들의 목록이 다음에 제공된다.
이하의 해결책들은 이전 섹션(예를 들면, 항목 1)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
1. 비디오 프로세싱 방법(예를 들면, 도 7에 묘사된 방법(900))으로서, 하나 이상의 비디오 픽처를 포함하는 비디오 - 각각의 비디오 픽처는 하나 이상의 타일을 포함함 - 와 비디오의 코딩된 표현 - 코딩된 표현은 포맷 규칙을 준수함 - 사이의 변환을 수행하는 단계(902)를 포함하며; 포맷 규칙은 코딩된 표현에서 시그널링되는 제1 정보 및 코딩된 표현으로부터 도출되는 제2 정보를 지정하고, 적어도 제1 정보 또는 제2 정보는 하나 이상의 타일의 행 인덱스들 또는 열 인덱스들에 관한 것인, 방법.
2. 해결책 1에 있어서, 포맷 규칙은 각각의 비디오 픽처의 각각의 코딩 트리 유닛 열의 타일 열 인덱스가 도출된다는 것을 지정하는, 방법.
3. 해결책 1에 있어서, 포맷 규칙은 각각의 비디오 픽처의 각각의 코딩 트리 유닛 행의 타일 행 인덱스가 도출된다는 것을 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 2)에서 논의된 기술들의 예시적인 실시예들을 보여준다. 이러한 해결책들에서, 비디오 영역은 비디오 픽처일 수 있고 비디오 유닛은 비디오 블록 또는 코딩 트리 유닛 또는 비디오 슬라이스일 수 있다.
4. 비디오 프로세싱 방법으로서, 비디오의 비디오 영역의 비디오 유닛과 비디오의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하며, 코딩된 표현은 포맷 규칙을 준수하고; 포맷 규칙은 비디오 영역에 있는 제1 제어 정보가 비디오 유닛 레벨에 제2 제어 정보가 포함되는지 여부를 제어한다는 것을 지정하며; 제1 제어 정보 및/또는 제2 제어 정보는 변환을 위해 사용되는 루마 매핑 및 크로마 스케일링(LMCS) 또는 크로마 잔차 스케일링(CRS) 또는 리셰이핑 프로세스(RP)에 관한 정보를 포함하는, 방법.
5. 해결책 4에 있어서, 제1 제어 정보는 제2 제어 정보가 코딩된 표현에 포함되는지 여부를 나타내는 지시자를 포함하는, 방법.
6. 해결책 4 또는 해결책 5에 있어서, 제1 제어 정보의 특정 값은 비디오 영역에서의 모든 비디오 유닛들에 대해 LMCS가 디스에이블된다는 것을 나타내는, 방법.
7. 해결책 4 내지 해결책 6 중 어느 한 해결책에 있어서, 제2 제어 정보는 비디오 유닛에서의 LMCS의 인에이블을 제어하는, 방법.
8. 해결책 4에 있어서, 제1 제어 정보는 다수의 지시자들을 포함하는, 방법.
9. 해결책 1 내지 해결책 8 중 어느 한 해결책에 있어서, 변환은 비디오를 코딩된 표현으로 인코딩하는 것을 포함하는, 방법.
10. 해결책 1 내지 해결책 8 중 어느 한 해결책에 있어서, 변환은 코딩된 표현을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함하는, 방법.
11. 비디오 디코딩 장치로서, 해결책 1 내지 해결책 10 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
12. 비디오 인코딩 장치로서, 해결책 1 내지 해결책 10 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
13. 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책 1 내지 해결책 10 중 어느 한 해결책에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
14. 본 문서에서 설명된 방법, 장치 또는 시스템.
본 명세서에 설명된 해결책들에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성하는 것에 의해 포맷 규칙을 준수할 수 있다. 본 명세서에 설명된 해결책들에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 요소들의 존재 및 부재에 대한 지식으로 코딩된 표현에서의 신택스 요소들을 파싱하기 위해 포맷 규칙을 사용할 수 있다.
도 11은 예시적인 비디오 프로세싱 방법(1100)의 플로차트이다. 동작(1102)은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 각각의 비디오 픽처는 하나 이상의 타일 열을 포함하는 하나 이상의 타일을 포함하고, 비트스트림은 포맷 규칙을 준수하며, 포맷 규칙은 비디오 픽처의 타일의 각각의 코딩 트리 유닛(CTU) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정한다.
방법(1100)의 일부 실시예들에서, ctbToTileColIdx[ ctbAddrX ]로서 표기되는, ctbAddrX 번째 타일 열에 대한 타일 열 인덱스는 다음과 같이 도출되며: tileX=0
여기서 PicWidthInCtbsY는 비디오 픽처의 폭을 코딩 트리 블록(CTB) 단위로 나타내고, 여기서 tileColBd[ i ]는 i 번째 타일 열 경계의 위치를 CTB 단위로 나타낸다.
방법(1100)의 일부 실시예들에서, 각각의 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고, 각각의 서브픽처는 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하며, 포맷 규칙은 포함된 타일 열 단위의 서브픽처의 폭이 서브픽처에 포함된 최좌측 CTU 및/또는 최우측 CTU의 타일 열 인덱스들에 기초하여 도출된다는 것을 추가로 지정한다.
방법(1100)의 일부 실시예들에서, SubpicWidthInTiles[ i ]로서 표기되는, 타일 열 단위의 i 번째 서브픽처의 폭은 다음과 같이 도출되며:
여기서 sps_num_subpics_minus1은 비디오 픽처에서의 서브픽처 수를 나타내고, 여기서 sps_subpic_ctu_top_left_x[ i ]는 i 번째 서브픽처의 좌측 상단 CTU의 수평 위치를 나타내며, 여기서 sps_subpic_width_minus1[ i ] + 1은 i 번째 서브픽처의 폭을 지정하고, 여기서 ctbToTileColIdx[ rightX ] 및 ctbToTileColIdx[ leftX ]는, 제각기, 서브픽처에 포함된 최좌측 CTU 및 최우측 CTU의 타일 열 인덱스들을 나타낸다.
방법(1100)의 일부 실시예들에서, 타일이 다수의 직사각형 슬라이스들로 분할되고 타일의 직사각형 슬라이스들의 서브세트만이 서브픽처에 포함되는 것에 응답하여, 타일은 서브픽처의 폭의 값에서 하나의 타일로서 카운트된다.
도 12는 예시적인 비디오 프로세싱 방법(1200)의 플로차트이다. 동작(1202)은 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 각각의 비디오 픽처는 하나 이상의 타일 행을 포함하는 하나 이상의 타일을 포함하고, 여기서 비트스트림은 포맷 규칙을 준수하며, 여기서 포맷 규칙은 비디오 픽처의 타일의 각각의 코딩 트리 유닛(CTU) 행에 대한 타일 행 인덱스가 도출된다는 것을 지정한다.
방법(1200)의 일부 실시예들에서, ctbToTileRowIdx[ ctbAddrY ]로서 표기되는, ctbAddrY 번째 타일 행에 대한 타일 행 인덱스는 다음과 같이 도출되며:
여기서 PicHeightInCtbsY는 비디오 픽처의 높이를 코딩 트리 블록(CTB) 단위로 나타내고, 여기서 tileRowBd[ i ]는 i 번째 타일 행 경계의 위치를 CTB 단위로 나타낸다.
방법(1200)의 일부 실시예들에서, 각각의 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고, 각각의 서브픽처는 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하며, 포맷 규칙은 타일 행 단위의 서브픽처의 높이가 서브픽처에 포함된 상단 CTU 및/또는 하단 CTU의 타일 행 인덱스들에 기초하여 도출된다는 것을 추가로 지정한다.
방법(1200)의 일부 실시예들에서, SubpicHeightInTiles[ i ]로서 표기되는, 타일 행 단위의 i 번째 서브픽처의 높이는 다음과 같이 도출되며:
여기서 sps_num_subpics_minus1은 비디오 픽처에서의 서브픽처 수를 나타내고, 여기서 sps_subpic_ctu_top_left_y[ i ]는 i 번째 서브픽처의 좌측 상단 CTU들의 수직 위치를 나타내고, 여기서 sps_subpic_height_minus1[ i ] + 1은 i 번째 서브픽처의 높이를 지정하고, 여기서 ctbToTileRowIdx[ botY ] 및 ctbToTileRowIdx[ topY ]는, 제각기, 서브픽처에 포함된 하단 CTU 및 상단 CTU의 타일 행 인덱스들을 나타낸다.
방법(1200)의 일부 실시예들에서, 타일이 다수의 직사각형 슬라이스들로 분할되고 타일의 직사각형 슬라이스들의 서브세트만이 서브픽처에 포함되는 것에 응답하여, 타일은 서브픽처의 높이의 값에서 하나의 타일로서 카운트된다.
도 13은 예시적인 비디오 프로세싱 방법(1300)의 플로차트이다. 동작(1302)은 규칙에 따라 적어도 하나의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 적어도 하나의 비디오 픽처는 하나 이상의 슬라이스 및 하나 이상의 서브픽처를 포함하고, 여기서 규칙은 적어도 하나의 비디오 픽처에서의 하나 이상의 슬라이스의 슬라이스 인덱스들의 순서가 적어도 하나의 비디오 픽처의 서브픽처마다 단일 슬라이스가 포함되는지 여부를 나타내는 적어도 하나의 픽처와 연관된 신택스 요소에 응답하여 표시된다는 것을 지정한다.
방법(1300)의 일부 실시예들에서, 규칙은 적어도 하나의 비디오 픽처 내의 각각의 슬라이스가 직사각형 슬라이스인 것에 응답하여 슬라이스 인덱스들이 표시된다는 것을 추가로 지정한다. 방법(1300)의 일부 실시예들에서, 규칙은, 신택스 요소가 하나 이상의 서브픽처 각각이 단일 직사각형 슬라이스를 포함하는 것을 나타내는 경우에, 순서가 비디오 픽처에서의 하나 이상의 서브픽처의 서브픽처 인덱스들의 증가하는 값들에 대응한다는 것을 지정하고, 하나 이상의 서브픽처의 서브픽처 인덱스들은 적어도 하나의 비디오 픽처에 의해 참조되는 시퀀스 파라미터 세트(SPS)에 표시된다. 방법(1300)의 일부 실시예들에서, 규칙은, 신택스 요소가 각각의 서브픽처가 하나 이상의 직사각형 슬라이스를 포함한다는 것을 나타내는 경우에, 순서가 하나 이상의 슬라이스가 적어도 하나의 비디오 픽처에 의해 참조되는 픽처 파라미터 세트(PPS)에 포함되는 순서에 대응한다는 것을 지정한다. 방법(1300)의 일부 실시예들에서, 신택스 요소는 적어도 하나의 비디오 픽처에 의해 참조되는 픽처 파라미터 세트(PPS)에 포함된다.
도 14는 예시적인 비디오 프로세싱 방법(1400)의 플로차트이다. 동작(1402)은 비디오의 비디오 영역의 비디오 유닛과 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 포맷 규칙을 준수하고, 여기서 포맷 규칙은 비트스트림에서의 비디오 영역의 제1 레벨에 있는 제1 제어 정보가 비트스트림에서의 비디오 유닛의 제2 레벨에 제2 제어 정보가 포함되는지 여부를 제어한다는 것을 지정하며, 여기서 제2 레벨은 제1 레벨보다 작고, 여기서 제1 제어 정보 및 제2 제어 정보는 루마 매핑 및 크로마 스케일링(LMCS) 툴이 비디오 유닛에 적용되는지 여부 또는 어떻게 적용되는지에 관한 정보를 포함하며, 여기서 LMCS 툴은 변환을 위해 크로마 잔차 스케일링(CRS), 또는 루마 리셰이핑 프로세스(RP)를 사용하는 것을 포함한다.
방법(1400)의 일부 실시예들에서, 제1 제어 정보는 비디오 유닛의 제2 레벨에서 LMCS 툴이 인에이블되는지 여부를 지정하기 위해 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블되는지 여부를 나타내는 제1 지시자를 선택적으로 포함하고, 제1 지시자는 비이진 값이다. 방법(1400)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 픽처 헤더를 포함한다. 방법(1400)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 픽처 헤더를 포함하고, 제1 제어 정보는 제1 지시자를 포함하며, 제1 지시자가 제1 값과 동일할 때 픽처 헤더의 모든 슬라이스들에 대해 LMCS 툴이 인에이블되고, 제1 지시자가 제2 값과 동일할 때 픽처 헤더의 전부보다 적은 슬라이스들에 대해 LMCS 툴이 인에이블되며, 제1 지시자가 제3 값과 동일할 때 픽처 헤더의 모든 슬라이스들에 대해 LMCS 툴이 디스에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1400)의 일부 실시예들에서, 제1 제어 정보가 제1 지시자를 제외할 때 제1 지시자의 값은 기본 값인 것으로 추론된다.
방법(1400)의 일부 실시예들에서, 비디오 영역의 제1 레벨은 픽처 헤더를 포함하고, 제1 제어 정보는 제1 지시자를 포함하며, 제1 지시자가 제1 값과 동일할 때 픽처 헤더의 모든 슬라이스들에 대해 LMCS 툴이 디스에이블되고, 제1 지시자가 제2 값과 동일할 때 픽처 헤더의 전부보다 적은 슬라이스들에 대해 LMCS 툴이 디스에이블되며, 제1 지시자가 제3 값과 동일할 때 픽처 헤더의 모든 슬라이스들에 대해 LMCS 툴이 인에이블되고, 제1 값, 제2 값, 및 제3 값은 서로 상이하다. 방법(1400)의 일부 실시예들에서, LMCS 툴이 시퀀스 레벨에서 인에이블되는지 여부를 나타내는 비트스트림에서의 신택스 요소의 값에 기초하여 제1 지시자가 제1 제어 정보에 선택적으로 포함된다. 방법(1400)의 일부 실시예들에서, 제1 지시자는 u(v) 또는 u(2) 또는 ue(v)로 코딩된다. 방법(1400)의 일부 실시예들에서, 제1 지시자는 절단된 단항 코드로 코딩된다.
방법(1400)의 일부 실시예들에서, 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블되는지 여부를 나타내는 제1 지시자의 값에 기초하여 하나 이상의 슬라이스에 의해 사용되는 LMCS 툴의 적응 파라미터 세트(APS) 정보 및/또는 크로마 스케일링 신택스 요소가 비트스트림에 포함된다. 방법(1400)의 일부 실시예들에서, 제2 제어 정보는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블되는지 디스에이블되는지를 나타내는 제2 지시자를 선택적으로 포함하고, 제2 지시자는 제1 제어 정보에 포함되는 제1 지시자의 값에 기초하여 비트스트림에 포함되며, 제1 지시자는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블되는지 디스에이블되는지를 나타낸다. 방법(1400)의 일부 실시예들에서, 제2 제어 정보는 슬라이스 헤더를 포함한다. 방법(1400)의 일부 실시예들에서, 제1 지시자가 제1 값과 동일한 것에 응답하여 제2 지시자가 제2 제어 정보에 포함된다. 방법(1400)의 일부 실시예들에서, 제1 지시자 >> 1, 또는 제1 지시자/2, 또는 제1 지시자 & 0x01의 조건 검사를 수행하는 것에 응답하여 제2 지시자가 제2 제어 정보에 포함되며, 여기서 >>는 우측 시프트 연산을 나타내고, 여기서 &는 비트 단위 논리 and 연산을 나타낸다.
방법(1400)의 일부 실시예들에서, 제1 지시자가 제1 값과 동일한 것에 응답하여 제2 지시자는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블된다는 것을 나타내는 것으로 추론되거나, 제1 지시자가 제3 값과 동일한 것에 응답하여 제2 지시자는 비디오 유닛의 제2 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 디스에이블된다는 것을 나타내는 것으로 추론되고, 제1 값, 제1 지시자의 제2 값, 및 제3 값은 서로 상이하다. 방법(1400)의 일부 실시예들에서, 제1 제어 정보는 비디오 유닛의 제2 레벨에서 LMCS 툴이 인에이블되는지 여부를 지정하기 위해 비디오 영역의 제1 레벨에서 하나 이상의 슬라이스에 대해 LMCS 툴이 인에이블되는지 여부를 나타내는 다수의 지시자들을 포함하고, 다수의 지시자들은 비이진 값들을 갖는다. 방법(1400)의 일부 실시예들에서, 다수의 지시자들은 픽처 헤더에 포함되는 적어도 2 개의 지시자를 포함한다. 방법(1400)의 일부 실시예들에서, 적어도 2 개의 지시자는 픽처 헤더와 연관된 적어도 하나의 슬라이스에 대해 LMCS 툴이 인에이블되는지 여부를 지정하는 제1 지시자를 포함하고, 적어도 2 개의 지시자는 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 인에이블되는지 여부를 지정하는 제2 지시자를 선택적으로 포함한다. 방법(1400)의 일부 실시예들에서, 제2 지시자는 제1 지시자의 값에 기초하여 다수의 지시자들에 선택적으로 존재한다.
방법(1400)의 일부 실시예들에서, 제1 지시자의 값은 적어도 하나의 슬라이스에 대해 LMCS 툴이 인에이블된다는 것을 나타낸다. 방법(1400)의 일부 실시예들에서, LMCS 툴은 제2 지시자가 비트스트림에 없는 것에 응답하여 픽처 헤더와 연관된 모든 슬라이스들에 대해 인에이블되는 것으로 추론된다. 방법(1400)의 일부 실시예들에서, 적어도 2 개의 지시자는 제2 지시자의 제2 값에 기초하여 슬라이스 헤더에 선택적으로 포함되는 제3 지시자를 포함한다. 방법(1400)의 일부 실시예들에서, 제2 지시자의 제2 값은 슬라이스들 모두에 대해 LMCS 툴이 디스에이블된다는 것을 나타낸다. 방법(1400)의 일부 실시예들에서, 제3 지시자가 비트스트림에 없는 것에 응답하여 제1 지시자의 제1 값 및/또는 제2 지시자의 제2 값에 기초하여 제3 지시자에 대한 값이 추론된다. 방법(1400)의 일부 실시예들에서, 적어도 2 개의 지시자는 픽처 헤더와 연관된 적어도 하나의 슬라이스에 대해 LMCS 툴이 디스에이블되는지 여부를 지정하는 제1 지시자를 포함하고, 적어도 2 개의 지시자는 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 디스에이블되는지 여부를 지정하는 제2 지시자를 선택적으로 포함한다. 방법(1400)의 일부 실시예들에서, 제2 지시자는 제1 지시자의 값에 기초하여 다수의 지시자들에 존재한다. 방법(1400)의 일부 실시예들에서, 제1 지시자의 값은 적어도 하나의 슬라이스에 대해 LMCS 툴이 디스에이블된다는 것을 지정한다. 방법(1400)의 일부 실시예들에서, LMCS 툴은 제2 지시자가 비트스트림에 없는 것에 응답하여 픽처 헤더와 연관된 모든 슬라이스들에 대해 디스에이블되는 것으로 추론된다. 방법(1400)의 일부 실시예들에서, 적어도 2 개의 지시자는 제2 지시자의 제2 값에 기초하여 슬라이스 헤더 내의 제3 지시자를 선택적으로 포함한다.
방법(1400)의 일부 실시예들에서, 제2 지시자의 제2 값은 슬라이스들 모두에 대해 LMCS 툴이 인에이블된다는 것을 지정한다. 방법(1400)의 일부 실시예들에서, 제3 지시자가 비트스트림에 없는 것에 응답하여 제1 지시자의 제1 값 및/또는 제2 지시자의 제2 값에 기초하여 제3 지시자에 대한 값이 추론된다. 방법(1400)의 일부 실시예들에서, 다수의 지시자들은 LMCS 툴이 시퀀스 레벨에서 인에이블되는지 여부를 나타내는 신택스 요소의 값에 기초하여 제1 지시자를 선택적으로 포함한다. 방법(1400)의 일부 실시예들에서, 다수의 지시자들은 비디오 유닛의 제2 레벨에서 LMCS 툴이 인에이블되는지 디스에이블되는지를 나타내는 제3 지시자를 선택적으로 포함하고, 제3 지시자는 제1 지시자의 제1 값 및/또는 제2 지시자의 제2 값에 기초하여 선택적으로 존재한다. 방법(1400)의 일부 실시예들에서, 제3 지시자는 모든 슬라이스들에 대해 LMCS 툴이 인에이블되지 않는다는 것 또는 모든 슬라이스들에 대해 LMCS 툴이 디스에이블되지 않는다는 것을 나타내는 제2 지시자에 기초하여 선택적으로 존재한다. 방법(1400)의 일부 실시예들에서, 제1 지시자, 제2 지시자, 및/또는 제3 지시자는 CRS 또는 루마 RP의 사용을 제어한다.
도 15는 예시적인 비디오 프로세싱 방법(1500)의 플로차트이다. 동작(1502)은 규칙에 따라 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 참조된 시퀀스 파라미터 세트 내의 제1 신택스 요소가 루마 매핑 및 크로마 스케일링(LMCS) 툴이 인에이블된다는 것을 나타낼 때 LMCS 툴이 인에이블된다는 것을 지정하고, 여기서 규칙은 제1 신택스 요소가 LMCS 툴이 디스에이블된다는 것을 나타낼 때 LMCS 툴이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 비트스트림에서의 제2 신택스 요소가 LMCS 툴이 비디오의 픽처 헤더 레벨에서 인에이블된다는 것을 나타낼 때 비디오 픽처의 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 인에이블된다는 것을 지정하고, 여기서 규칙은 제2 신택스 요소가 LMCS 툴이 비디오의 픽처 헤더 레벨에서 디스에이블된다는 것을 나타낼 때 픽처 헤더와 연관된 모든 슬라이스들에 대해 LMCS 툴이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 비트스트림에 선택적으로 포함되는 제3 신택스 요소가 LMCS 툴이 비디오의 슬라이스 헤더 레벨에서 인에이블된다는 것을 나타낼 때 비디오 픽처의 슬라이스 헤더와 연관된 현재 슬라이스에 대해 LMCS 툴이 사용된다는 것을 지정하고, 여기서 규칙은 제3 신택스 요소가 LMCS 툴이 비디오의 슬라이스 헤더 레벨에서 디스에이블된다는 것을 나타낼 때 현재 슬라이스에 대해 LMCS 툴이 사용되지 않는다는 것을 지정한다.
방법(1500)의 일부 실시예들에서, 규칙은 비디오 픽처의 모든 슬라이스들에 대해 LMCS 툴이 사용될 때 제3 신택스 요소가 비트스트림에서의 슬라이스 헤더에 포함되지 않는다는 것을 지정한다. 방법(1500)의 일부 실시예들에서, LMCS 툴이 인에이블되는지 디스에이블되는지는 제2 신택스 요소에 기초한다. 방법(1500)의 일부 실시예들에서, 비디오 픽처의 모든 슬라이스들에 대해 LMCS 툴이 사용될 때 LMCS 툴은 인에이블되고, 비디오 픽처의 모든 슬라이스들에 대해 LMCS 툴이 사용되지 않을 때 LMCS 툴은 디스에이블된다.
도 16은 예시적인 비디오 프로세싱 방법(1600)의 플로차트이다. 동작(1602)은 규칙에 따라 하나 이상의 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 규칙은 적응적 모션 벡터 차이 해상도(AMVR)가 인에이블되는지 여부를 나타내는 참조된 시퀀스 파라미터 세트(SPS)에 선택적으로 포함되는 신택스 요소에 기초하여 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되는지 여부를 지정하고, 여기서 규칙은 신택스 요소가 AMVR이 디스에이블된다는 것을 나타낼 때 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되지 않는다는 것을 지정하며, 여기서 규칙은 신택스 요소가 SPS에 포함되지 않을 때 아핀 인터 모드의 모션 벡터 코딩에서 AMVR이 사용되지 않는 것으로 추론된다는 것을 지정한다.
도 17은 예시적인 비디오 프로세싱 방법(1700)의 플로차트이다. 동작(1702)은 규칙에 따라 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비디오 픽처는 서브픽처, 타일, 및 슬라이스를 포함하고, 여기서 규칙은, 서브픽처가 타일로부터 분할되는 슬라이스를 포함하는 것으로 인해, 비디오 픽처의 타일 수를 사용하여 서브픽처의 높이를 카운트하지 않고 변환이 수행된다는 것을 지정한다.
방법(1700)의 일부 실시예들에서, 서브픽처의 높이는 코딩 트리 유닛(CTU) 수에 기초하여 카운트된다. 방법(1700)의 일부 실시예들에서, 서브픽처의 높이는 하나의 타일 행보다 작다.
도 18은 예시적인 비디오 프로세싱 방법(1800)의 플로차트이다. 동작(1802)은 비디오 픽처를 포함하는 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 비디오 픽처의 코딩 트리 유닛(CTU) 수에 기초하여 카운트되는 비디오 픽처의 서브픽처의 높이를 표시한다.
방법(1800)의 일부 실시예들에서, 서브픽처의 높이는 비디오 픽처의 타일 수에 기초하지 않는다. 방법(1800)의 일부 실시예들에서, 서브픽처의 높이는 하나의 타일 행보다 작다.
도 19는 예시적인 비디오 프로세싱 방법(1900)의 플로차트이다. 동작(1902)은, 규칙에 따라, 비디오의 비디오 픽처의 서브픽처의 높이가 비디오 픽처의 타일 행의 높이보다 작은지 여부에 관해 결정하는 단계를 포함한다. 동작(1904)은, 이 결정을 사용하여, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다.
방법(1900)의 일부 실시예들에서, 규칙은, 서브픽처가 하나의 타일 행으로부터의 코딩 트리 유닛들(CTU들)만을 포함하고, 그리고 서브픽처의 상단에 위치하는 제1 CTU 세트가 하나의 타일 행의 상단에 위치하는 제2 CTU 세트와 동일하지 않거나, 서브픽처의 하단에 위치하는 제3 CTU 세트가 하나의 타일 행의 하단에 위치하는 제4 CTU 세트와 동일하지 않을 때, 서브픽처의 높이가 하나의 타일 행보다 작다는 것을 지정한다. 방법(1900)의 일부 실시예들에서, 비디오 픽처의 각각의 서브픽처가 단지 하나의 슬라이스를 포함하고 서브픽처의 높이가 하나의 타일 행보다 작을 때, 비디오 픽처의 픽처 레벨 슬라이스 인덱스 i를 갖는 각각의 슬라이스에 대해, CtbAddrInSlice[ i ][ j ]의 값은 서브픽처의 CTU 래스터 스캔에서 j 번째 CTU의 픽처 래스터 스캔 CTU 주소로부터 도출되며, j는 0 내지 슬라이스 내의 CTU 수 - 1(경계 포함)의 범위에 있다.
방법(1900)의 일부 실시예들에서, 규칙은, 서브픽처의 상단에 위치하는 제1 CTU 세트와 서브픽처의 하단에 위치하는 제2 CTU 세트 사이의 거리가 비디오 픽처의 타일의 제2 높이보다 작을 때, 서브픽처의 높이가 하나의 타일 행보다 작다는 것을 지정하며, 여기서 타일의 제2 높이는 서브픽처의 CTU 수에 기초한다. 방법(1900)의 일부 실시예들에서, 비디오 픽처의 각각의 서브픽처가 단지 하나의 슬라이스를 포함하고 서브픽처의 높이가 하나의 타일 행보다 크거나 같을 때, 비디오 픽처의 픽처 레벨 슬라이스 인덱스 i를 갖는 각각의 슬라이스에 대해, CtbAddrInSlice[ i ][ j ]의 값은 서브픽처에서의 CTU들의 순서에서 j 번째 CTU의 픽처 래스터 스캔 CTU 주소로부터 도출되며, j는 0 내지 슬라이스 내의 CTU 수 - 1(경계 포함)의 범위에 있다.
방법(1900)의 일부 실시예들에서, 서브픽처에서의 CTU들의 순서는 제1 타일 인덱스를 갖는 제1 타일 내의 제1 CTU가 제2 타일 인덱스를 갖는 제2 타일 내의 제2 CTU보다 이전에 배치되도록 되어 있으며, 제1 타일 인덱스의 값은 제2 타일 인덱스의 값보다 작다. 방법(1900)의 일부 실시예들에서, 서브픽처에서의 CTU들의 순서는 서브픽처에서의 하나의 타일 내의 CTU들이 하나의 타일 내의 CTU들의 래스터 스캔 순서로 되어 있도록 되어 있다.
방법(들)(1100 내지 1900)의 일부 실시예들에서, 변환을 수행하는 단계는 비디오를 비트스트림으로 인코딩하는 단계를 포함한다. 방법(들)(1100 내지 1900)의 일부 실시예들에서, 변환을 수행하는 단계는 비디오를 비트스트림으로 인코딩하는 단계를 포함하고, 이 방법은 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함한다. 방법(들)(1100 내지 1900)의 일부 실시예들에서, 변환을 수행하는 단계는 비트스트림으로부터 비디오를 디코딩하는 단계를 포함한다.
일부 실시예들에서, 비디오 디코딩 장치는 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들을 구현하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 비디오 인코딩 장치는 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들을 구현하도록 구성된 프로세서를 포함한다. 일부 실시예들에서, 컴퓨터 명령어들이 저장된 컴퓨터 프로그램 제품으로서, 명령어들은, 프로세서에 의해 실행될 때 프로세서로 하여금 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들을 구현하게 한다. 일부 실시예들에서, 비일시적 컴퓨터 판독 가능 저장 매체는 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들에 따라 생성되는 비트스트림을 저장한다. 일부 실시예들에서, 비일시적 컴퓨터 판독 가능 저장 매체는 프로세서로 하여금 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들을 구현하게 하는 명령어들을 저장한다. 일부 실시예들에서, 비트스트림 생성 방법은 방법들(1100 내지 1900) 중 어느 하나 이상의 방법에 대해 설명된 동작들에 따라 비디오의 비트스트림을 생성하는 단계, 및 비트스트림을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계를 포함한다. 일부 실시예들에서, 본 문서에서 설명된, 방법, 장치, 개시된 방법에 따라 생성되는 비트스트림 또는 시스템.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내에서 동일 위치에 있거나 상이한 위치들에 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은, 변환 및 코딩된 오차 잔차 값들의 면에서 그리고 또한 비트스트림 내의 헤더들 및 다른 필드들 내의 비트들을 사용하여, 인코딩될 수 있다. 게다가, 변환 동안, 디코더는, 위의 해결책들에 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 존재하지 않을 수 있다는 것에 대한 지식을 사용하여 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 하는지 여부를 결정할 수 있고, 그에 따라 코딩된 표현에 신택스 필드들을 포함시키거나 그로부터 제외시키는 것에 의해 코딩된 표현을 생성할 수 있다.
본 문서에서 설명되는 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에서 개시되는 구조들 및 이들의 구조적 등가물들을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의해 실행하기 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치들은, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 인공적으로 생성된 신호, 예를 들면, 머신에 의해 생성된(machine-generated) 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호 연결되는 다수의 컴퓨터들 상에서 실행되도록 배포될 수 있다.
본 문서에서 설명되는 프로세스들 및 논리 흐름들은 입력 데이터에 대해 작동하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 논리 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치들이 또한 특수 목적 논리 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)으로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 양쪽 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크들, 또는 광학 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 작동 가능하게 결합될 것이거나, 또는 양쪽 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스들, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들면, 내부 하드 디스크들 또는 이동식 디스크들; 자기 광학 디스크들; 및 CD ROM과 DVD-ROM 디스크들을 포함한, 모든 형태들의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 주제의 범위 또는 청구될 수 있는 것의 범위에 대한 제한들로서 해석되어서는 안 되며, 오히려 특정 기술들의 특정의 실시예들에 특정적일 수 있는 특징들에 대한 설명들로서 해석되어야 한다. 개별 실시예들의 맥락에서 본 특허 문서에 설명되는 특정 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에서 설명되는 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (20)

  1. 비디오 프로세싱 방법으로서,
    비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 비디오 픽처는 하나 이상의 타일 행 및 하나 이상의 타일 열을 형성하는 하나 이상의 타일을 포함하고,
    상기 비트스트림은 포맷 규칙을 준수하고,
    상기 포맷 규칙은 상기 비디오 픽처의 타일의 각각의 코딩 트리 블록(CTB) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정하고,
    상기 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고,
    각각의 서브픽처는 상기 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하고,
    상기 포맷 규칙은 타일 열 단위의 서브픽처의 폭이 상기 서브픽처에 포함된 최좌측 CTB 및/또는 최우측 CTB의 타일 열 인덱스들에 기초하여 도출된다는 것을 추가로 지정하고,
    SubpicWidthInTiles[i]로서 표기되는, 타일 열 단위의 i 번째 서브픽처의 폭은 다음과 같이 도출되고:
    루프 변수로서 i를 이용하여 루프가 수행되고, 상기 루프 변수 i의 초기화는 0과 동일하고, 상기 루프 변수 i의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    i가 sps_num_subpics_minus1 이하일 때, 각각의 i에 대해:
    leftX를 sps_subpic_ctu_top_left_x[i]와 동일하게 설정하고,
    rightX를 leftX + sps_subpic_width_minus1[i]와 동일하게 설정하고,
    SubpicWidthInTiles[i]를 ctbToTileColIdx[rightX] + 1 - ctbToTileColIdx[leftX]와 동일하게 설정하기 위한 실행이 수행되고,
    sps_num_subpics_minus1 + 1은 상기 비디오 픽처에서의 서브픽처 수를 나타내고,
    sps_subpic_ctu_top_left_x[i]는 상기 i 번째 서브픽처의 좌측 상단 CTB의 수평 위치를 나타내며,
    sps_subpic_width_minus1[i] + 1은 상기 i 번째 서브픽처의 폭을 지정하고,
    ctbToTileColIdx[rightX] 및 ctbToTileColIdx[leftX]는 각각, 상기 서브픽처에 포함된 최좌측 CTB 및 최우측 CTB의 상기 타일 열 인덱스들을 나타내는, 방법.
  2. 제1항에 있어서, ctbToTileColIdx[ctbAddrX]로서 표기되는, ctbAddrX 번째 타일 열에 대한 상기 타일 열 인덱스는 다음과 같이 도출되고:
    변수 tileX의 초기화는 0과 동일하고,
    루프 변수로서 ctbAddrX를 이용하여 루프가 수행되고, 상기 루프 변수 ctbAddrX의 초기화는 0과 동일하고, 상기 루프 변수 ctbAddrX의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    ctbAddrX가 PicWidthInCtbsY 이하일 때, 각각의 ctbAddrX에 대해:
    ctbAddrX가 tileColBd[tileX + 1]과 동일하면 상기 변수 tileX의 값을 1만큼 증분하고,
    ctbToTileColIdx[ctbAddrX]를 tileX와 동일하게 설정하기 위한 실행이 수행되고,
    PicWidthInCtbsY는 상기 비디오 픽처의 폭을 CTB 단위로 나타내고,
    tileColBd[i]는 i 번째 타일 열 경계의 위치를 CTB 단위로 나타내는, 방법.
  3. 제1항에 있어서, 상기 타일이 복수의 직사각형 슬라이스들로 분할되고 상기 타일의 상기 직사각형 슬라이스들의 서브세트만이 상기 서브픽처에 포함되는 것에 응답하여, 상기 타일은 상기 서브픽처의 폭의 값에서 하나의 타일로서 카운트되는, 방법.
  4. 제1항에 있어서, 상기 포맷 규칙은 상기 비디오 픽처의 타일의 각각의 CTB 행에 대한 타일 행 인덱스가 도출된다는 것을 추가로 지정하는, 방법.
  5. 제4항에 있어서, ctbToTileRowIdx[ctbAddrY]로서 표기되는, ctbAddrY 번째 타일 행에 대한 상기 타일 행 인덱스는 다음과 같이 도출되며:
    변수 tileY의 초기화는 0과 동일하고,
    루프 변수로서 ctbAddrY를 이용하여 루프가 수행되고, 상기 루프 변수 ctbAddrY의 초기화는 0과 동일하고, 상기 루프 변수 ctbAddrY의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    ctbAddrY가 PicHeightInCtbsY 이하일 때, 각각의 ctbAddrY에 대해,
    ctbAddrY가 tileRowBd[tileY + 1]과 동일하면 상기 변수 tileY의 값을 1만큼 증분하고,
    ctbToTileRowIdx[ctbAddrY]를 tileY와 동일하게 설정하기 위한 실행을 수행하고,
    PicHeightInCtbsY는 상기 비디오 픽처의 높이를 CTB 단위로 나타내고,
    tileRowBd[i]는 i 번째 타일 행 경계의 위치를 CTB 단위로 나타내는, 방법.
  6. 제4항에 있어서, 상기 포맷 규칙은 타일 행 단위의 서브픽처의 높이가 상기 서브픽처에 포함된 상단 CTB 및/또는 하단 CTB의 타일 행 인덱스들에 기초하여 도출된다는 것을 추가로 지정하는, 방법.
  7. 제6항에 있어서, SubpicHeightInTiles[i]로서 표기되는, 타일 행 단위의 i 번째 서브픽처의 높이는 다음과 같이 도출되며:
    루프 변수로서 i를 이용하여 루프가 수행되고, 상기 루프 변수 i의 초기화는 0과 동일하고, 상기 루프 변수 i의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    i가 sps_num_subpics_minus1 이하일 때, 각각의 i에 대해:
    topY를 sps_subpic_ctu_top_left_y[i]와 동일하게 설정하고,
    bottomY를 topY + sps_subpic_height_minus1[i]와 동일하게 설정하고,
    SubpicHeightInTiles[i]를 ctbToTileRowIdx[botY] + 1 - ctbToTileRowIdx[topY]와 동일하게 설정하기 위한 실행이 수행되고,
    sps_subpic_ctu_top_left_y[i]는 상기 i 번째 서브픽처의 좌측 상단 CTB들의 수직 위치를 나타내며,
    sps_subpic_height_minus1[i] + 1은 상기 i 번째 서브픽처의 상기 높이를 지정하고,
    ctbToTileRowIdx[botY] 및 ctbToTileRowIdx[topY]는 각각, 상기 서브픽처에 포함된 하단 CTB 및 상단 CTB의 상기 타일 행 인덱스들을 나타내는, 방법.
  8. 제6항에 있어서, 상기 타일이 복수의 직사각형 슬라이스들로 분할되고 상기 타일의 상기 직사각형 슬라이스들의 서브세트만이 상기 서브픽처에 포함되는 것에 응답하여, 상기 타일은 상기 서브픽처의 높이의 값에서 하나의 타일로서 카운트되는, 방법.
  9. 제1항에 있어서, 상기 변환을 수행하는 단계는 상기 비디오를 상기 비트스트림으로 인코딩하는 단계를 포함하는, 방법.
  10. 제1항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림으로부터 상기 비디오를 디코딩하는 단계를 포함하는, 방법.
  11. 비디오 데이터를 프로세싱하기 위한 장치로서,
    프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하고, 상기 명령어들은 상기 프로세서에 의한 실행 시에 상기 프로세서로 하여금,
    비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하게 하며,
    상기 비디오 픽처는 하나 이상의 타일 행 및 하나 이상의 타일 열을 형성하는 하나 이상의 타일을 포함하고,
    상기 비트스트림은 포맷 규칙을 준수하고,
    상기 포맷 규칙은 상기 비디오 픽처의 타일의 각각의 코딩 트리 블록(CTB) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정하고,
    상기 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고,
    각각의 서브픽처는 상기 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하고,
    상기 포맷 규칙은 타일 열 단위의 서브픽처의 폭이 상기 서브픽처에 포함된 최좌측 CTB 및/또는 최우측 CTB의 타일 열 인덱스들에 기초하여 도출된다는 것을 추가로 지정하고,
    SubpicWidthInTiles[i]로서 표기되는, 타일 열 단위의 i 번째 서브픽처의 폭은 다음과 같이 도출되고:
    루프 변수로서 i를 이용하여 루프가 수행되고, 상기 루프 변수 i의 초기화는 0과 동일하고, 상기 루프 변수 i의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    i가 sps_num_subpics_minus1 이하일 때, 각각의 i에 대해:
    leftX를 sps_subpic_ctu_top_left_x[i]와 동일하게 설정하고,
    rightX를 leftX + sps_subpic_width_minus1[i]와 동일하게 설정하고,
    SubpicWidthInTiles[i]를 ctbToTileColIdx[rightX] + 1 - ctbToTileColIdx[leftX]와 동일하게 설정하기 위한 실행이 수행되고,
    sps_num_subpics_minus1 + 1은 상기 비디오 픽처에서의 서브픽처 수를 나타내고,
    sps_subpic_ctu_top_left_x[i]는 상기 i 번째 서브픽처의 좌측 상단 CTB의 수평 위치를 나타내며,
    sps_subpic_width_minus1[i] + 1은 상기 i 번째 서브픽처의 폭을 지정하고,
    ctbToTileColIdx[rightX] 및 ctbToTileColIdx[leftX]는 각각, 상기 서브픽처에 포함된 최좌측 CTB 및 최우측 CTB의 상기 타일 열 인덱스들을 나타내는, 장치.
  12. 명령어들을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은 프로세서로 하여금,
    비디오 픽처를 포함하는 비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하게 하며,
    상기 비디오 픽처는 하나 이상의 타일 행 및 하나 이상의 타일 열을 형성하는 하나 이상의 타일을 포함하고,
    상기 비트스트림은 포맷 규칙을 준수하고,
    상기 포맷 규칙은 상기 비디오 픽처의 타일의 각각의 코딩 트리 블록(CTB) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정하고,
    상기 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고,
    각각의 서브픽처는 상기 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하고,
    상기 포맷 규칙은 타일 열 단위의 서브픽처의 폭이 상기 서브픽처에 포함된 최좌측 CTB 및/또는 최우측 CTB의 타일 열 인덱스들에 기초하여 도출된다는 것을 추가로 지정하고,
    SubpicWidthInTiles[i]로서 표기되는, 타일 열 단위의 i 번째 서브픽처의 폭은 다음과 같이 도출되고:
    루프 변수로서 i를 이용하여 루프가 수행되고, 상기 루프 변수 i의 초기화는 0과 동일하고, 상기 루프 변수 i의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    i가 sps_num_subpics_minus1 이하일 때, 각각의 i에 대해:
    leftX를 sps_subpic_ctu_top_left_x[i]와 동일하게 설정하고,
    rightX를 leftX + sps_subpic_width_minus1[i]와 동일하게 설정하고,
    SubpicWidthInTiles[i]를 ctbToTileColIdx[rightX] + 1 - ctbToTileColIdx[leftX]와 동일하게 설정하기 위한 실행이 수행되고,
    sps_num_subpics_minus1 + 1은 상기 비디오 픽처에서의 서브픽처 수를 나타내고,
    sps_subpic_ctu_top_left_x[i]는 상기 i 번째 서브픽처의 좌측 상단 CTB의 수평 위치를 나타내며,
    sps_subpic_width_minus1[i] + 1은 상기 i 번째 서브픽처의 폭을 지정하고,
    ctbToTileColIdx[rightX] 및 ctbToTileColIdx[leftX]는 각각, 상기 서브픽처에 포함된 최좌측 CTB 및 최우측 CTB의 상기 타일 열 인덱스들을 나타내는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비디오의 비트스트림을 저장한 비일시적 컴퓨터 판독가능 기록 매체로서,
    상기 방법은,
    포맷 규칙에 따라 비디오 픽처를 포함하는 상기 비디오의 싱기 비트스트림을 생성하는 단계를 포함하고,
    상기 비디오 픽처는 하나 이상의 타일 행 및 하나 이상의 타일 열을 형성하는 하나 이상의 타일을 포함하고,
    상기 비트스트림은 상기 포맷 규칙을 준수하고,
    상기 포맷 규칙은 상기 비디오 픽처의 타일의 각각의 코딩 트리 블록(CTB) 열에 대한 타일 열 인덱스가 도출된다는 것을 지정하고,
    상기 비디오 픽처는 하나 이상의 서브픽처를 또한 포함하고,
    각각의 서브픽처는 상기 비디오 픽처의 직사각형 서브세트를 집합적으로 형성하는 하나 이상의 슬라이스를 포함하고,
    상기 포맷 규칙은 타일 열 단위의 서브픽처의 폭이 상기 서브픽처에 포함된 최좌측 CTB 및/또는 최우측 CTB의 타일 열 인덱스들에 기초하여 도출된다는 것을 추가로 지정하고,
    SubpicWidthInTiles[i]로서 표기되는, 타일 열 단위의 i 번째 서브픽처의 폭은 다음과 같이 도출되고:
    루프 변수로서 i를 이용하여 루프가 수행되고, 상기 루프 변수 i의 초기화는 0과 동일하고, 상기 루프 변수 i의 값은 상기 루프에서의 각각의 실행 후에 1씩 증분되고,
    i가 sps_num_subpics_minus1 이하일 때, 각각의 i에 대해:
    leftX를 sps_subpic_ctu_top_left_x[i]와 동일하게 설정하고,
    rightX를 leftX + sps_subpic_width_minus1[i]와 동일하게 설정하고,
    SubpicWidthInTiles[i]를 ctbToTileColIdx[rightX] + 1 - ctbToTileColIdx[leftX]와 동일하게 설정하기 위한 실행이 수행되고,
    sps_num_subpics_minus1 + 1은 상기 비디오 픽처에서의 서브픽처 수를 나타내고,
    sps_subpic_ctu_top_left_x[i]는 상기 i 번째 서브픽처의 좌측 상단 CTB의 수평 위치를 나타내며,
    sps_subpic_width_minus1[i] + 1은 상기 i 번째 서브픽처의 폭을 지정하고,
    ctbToTileColIdx[rightX] 및 ctbToTileColIdx[leftX]는 각각, 상기 서브픽처에 포함된 최좌측 CTB 및 최우측 CTB의 상기 타일 열 인덱스들을 나타내는, 비일시적 컴퓨터 판독가능 기록 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020227027814A 2020-02-24 2021-02-23 서브픽처 레벨에 기초한 분할 계산 KR102706671B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062980963P 2020-02-24 2020-02-24
US62/980,963 2020-02-24
PCT/US2021/019216 WO2021173539A1 (en) 2020-02-24 2021-02-23 Partition calculation based on subpicture level

Publications (2)

Publication Number Publication Date
KR20220143832A KR20220143832A (ko) 2022-10-25
KR102706671B1 true KR102706671B1 (ko) 2024-09-19

Family

ID=77491992

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020227027814A KR102706671B1 (ko) 2020-02-24 2021-02-23 서브픽처 레벨에 기초한 분할 계산
KR1020227028405A KR20220144802A (ko) 2020-02-24 2021-02-23 서브픽처의 높이의 도출
KR1020227028407A KR20220143841A (ko) 2020-02-24 2021-02-23 비디오 코딩에서의 픽처 레벨 슬라이스 인덱스의 사용
KR1020227028383A KR20220143839A (ko) 2020-02-24 2021-02-23 서브픽처와 타일 행 시그널링 간의 상호작용

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020227028405A KR20220144802A (ko) 2020-02-24 2021-02-23 서브픽처의 높이의 도출
KR1020227028407A KR20220143841A (ko) 2020-02-24 2021-02-23 비디오 코딩에서의 픽처 레벨 슬라이스 인덱스의 사용
KR1020227028383A KR20220143839A (ko) 2020-02-24 2021-02-23 서브픽처와 타일 행 시그널링 간의 상호작용

Country Status (8)

Country Link
US (5) US11863793B2 (ko)
EP (5) EP4094436A4 (ko)
JP (5) JP7400114B2 (ko)
KR (4) KR102706671B1 (ko)
CN (4) CN115152210A (ko)
BR (1) BR112022016943A2 (ko)
MX (1) MX2022010116A (ko)
WO (4) WO2021173540A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115152210A (zh) * 2020-02-24 2022-10-04 字节跳动有限公司 子图片的高度的推导

Family Cites Families (51)

* Cited by examiner, † Cited by third party
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
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 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造
CN103518375B (zh) * 2012-04-16 2017-08-18 寰发股份有限公司 用于视频数据的环路滤波器处理方法及其装置
US9491456B2 (en) * 2012-09-24 2016-11-08 Qualcomm Incorporated Coded picture buffer removal times signaled in picture and sub-picture timing 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
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US10368072B2 (en) * 2015-05-29 2019-07-30 Qualcomm Incorporated Advanced arithmetic coder
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 세종대학교산학협력단 타일 구조의 구성 방법 및 이의 장치
KR102488330B1 (ko) * 2017-10-09 2023-01-12 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
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
WO2019167849A1 (en) * 2018-02-28 2019-09-06 Sharp Kabushiki Kaisha Systems and methods for partitioning regions of a picture for video coding using different coding unit sizes
JP2021519546A (ja) 2018-03-29 2021-08-10 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 映像符号化のための候補変換セットの決定
EP3777167A1 (en) 2018-03-30 2021-02-17 Vid Scale, Inc. Template-based inter prediction techniques based on encoding and decoding latency reduction
ES2949998T3 (es) 2018-06-03 2023-10-04 Lg Electronics Inc Método y dispositivo para procesar una señal de vídeo usando una transformada reducida
WO2020005758A1 (en) * 2018-06-29 2020-01-02 Interdigital Vc Holdings, Inc. Wavefront parallel processing of luma and chroma components
WO2020003270A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
KR20230106707A9 (ko) * 2018-07-09 2024-03-25 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법
EP3815363A1 (en) 2018-08-16 2021-05-05 Beijing Bytedance Network Technology Co. Ltd. Coefficient dependent coding of transform matrix selection
WO2020034330A1 (en) 2018-09-28 2020-02-20 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
KR20210153128A (ko) 2019-04-25 2021-12-16 오피 솔루션즈, 엘엘씨 인터 예측에서의 병합 모드 후보들에 대한 글로벌 모션
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
KR102594690B1 (ko) * 2019-06-11 2023-10-26 엘지전자 주식회사 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치
CN116800978A (zh) * 2019-06-11 2023-09-22 Lg电子株式会社 图像编码/解码方法、图像数据发送方法和存储介质
WO2021027774A1 (en) * 2019-08-10 2021-02-18 Beijing Bytedance Network Technology Co., Ltd. Subpicture dependent signaling in video bitstreams
US11153576B2 (en) 2019-09-20 2021-10-19 Qualcomm Incorporated Scaling matrices and signaling for video coding
WO2021060801A1 (ko) * 2019-09-23 2021-04-01 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2021063420A1 (en) * 2019-10-02 2021-04-08 Beijing Bytedance Network Technology Co., Ltd. Slice level signaling in video bitstreams that include sub-pictures
WO2021079948A1 (en) * 2019-10-25 2021-04-29 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
JP7402016B2 (ja) 2019-11-06 2023-12-20 オッポ広東移動通信有限公司 画像復号装置及び画像符号化装置
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
GB2590632B (en) 2019-12-20 2023-07-26 Canon Kk Video coding and decoding
AU2020414207B2 (en) 2019-12-23 2024-05-02 Lg Electronics Inc. Image coding apparatus and method based on sub-picture
US20230050232A1 (en) * 2020-01-15 2023-02-16 Lg Electronics Inc. In-loop filtering-based image coding apparatus and method
CN115176468A (zh) 2020-02-03 2022-10-11 抖音视界有限公司 跨分量自适应环路滤波器
CN115152210A (zh) * 2020-02-24 2022-10-04 字节跳动有限公司 子图片的高度的推导
CN115486074A (zh) * 2020-05-21 2022-12-16 阿里巴巴集团控股有限公司 视频处理中的砖块和条带分割
US20220039430A1 (en) 2020-08-07 2022-02-10 Innovative Strategic Design, Llc Reduced-sugar fruit juice and fruit must

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross, et al. Versatile Video Coding (Draft 8), Joint Video exploration Team(JVET), JVET-Q2001-vC, 2020-02-09
Karsten Suehring et al., AHG9: Subpicture location signalling bugfix, Joint Video exploration Team(JVET), JVET-Q0787-v2, 2020-01-13
Ye-Kui Wang et al., AHG12: Cleanups on signalling of subpictures, tiles, and rectangular slices, Joint Video exploration Team(JVET), JVET-Q0119-v1, 2019-12-30

Also Published As

Publication number Publication date
US11863793B2 (en) 2024-01-02
CN115244922A (zh) 2022-10-25
US20220417562A1 (en) 2022-12-29
JP2023514852A (ja) 2023-04-11
EP4307677A3 (en) 2024-04-17
CN115152209A (zh) 2022-10-04
US11778183B2 (en) 2023-10-03
US11856234B2 (en) 2023-12-26
WO2021173548A1 (en) 2021-09-02
EP4307677A2 (en) 2024-01-17
KR20220143839A (ko) 2022-10-25
KR20220143841A (ko) 2022-10-25
WO2021173540A1 (en) 2021-09-02
JP7400114B2 (ja) 2023-12-18
JP2023515514A (ja) 2023-04-13
EP4094436A1 (en) 2022-11-30
US20230007308A1 (en) 2023-01-05
US20230007280A1 (en) 2023-01-05
KR20220144802A (ko) 2022-10-27
EP4094438A1 (en) 2022-11-30
US20240129539A1 (en) 2024-04-18
WO2021173552A1 (en) 2021-09-02
JP2023515126A (ja) 2023-04-12
JP2023515513A (ja) 2023-04-13
MX2022010116A (es) 2022-09-05
US20230007247A1 (en) 2023-01-05
EP4094437A4 (en) 2023-03-29
JP7395005B2 (ja) 2023-12-08
KR20220143832A (ko) 2022-10-25
JP2024015106A (ja) 2024-02-01
CN115191115A (zh) 2022-10-14
EP4094432A4 (en) 2023-04-05
EP4094437A1 (en) 2022-11-30
BR112022016943A2 (pt) 2022-10-25
JP7397213B2 (ja) 2023-12-12
EP4094436A4 (en) 2023-03-29
WO2021173539A1 (en) 2021-09-02
EP4094432A1 (en) 2022-11-30
EP4094438A4 (en) 2023-03-29
US11863794B2 (en) 2024-01-02
JP7400115B2 (ja) 2023-12-18
CN115152210A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
JP7479492B2 (ja) ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
KR20220113404A (ko) 비디오 서브픽처들을 시그널링하기 위한 신택스
US20240129539A1 (en) Interaction Between Subpicture and Tile Row Signaling
WO2021164781A1 (en) Picture partitioning in video coding
WO2021164785A1 (en) Coding of pictures containing slices and tiles

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant