KR20230020999A - 서브픽처 서브비트스트림 추출에 대한 비디오 파라미터 세트 제약들 - Google Patents

서브픽처 서브비트스트림 추출에 대한 비디오 파라미터 세트 제약들 Download PDF

Info

Publication number
KR20230020999A
KR20230020999A KR1020227043180A KR20227043180A KR20230020999A KR 20230020999 A KR20230020999 A KR 20230020999A KR 1020227043180 A KR1020227043180 A KR 1020227043180A KR 20227043180 A KR20227043180 A KR 20227043180A KR 20230020999 A KR20230020999 A KR 20230020999A
Authority
KR
South Korea
Prior art keywords
bitstream
video
sub
sps
picture
Prior art date
Application number
KR1020227043180A
Other languages
English (en)
Inventor
예-쿠이 왕
Original Assignee
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이트댄스 아이엔씨 filed Critical 바이트댄스 아이엔씨
Publication of KR20230020999A publication Critical patent/KR20230020999A/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/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/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

비디오 데이터를 프로세싱하는 방법은 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함한다. 비트스트림은 출력 대상 서브비트스트림이 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안 하나 이상의 신택스 구조에 대해 선택적으로 수행되는 재작성 동작을 지정하는 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 서브계층을 포함하는 하나 이상의 계층을 포함한다. 하나 이상의 신택스 요소는 출력 대상 서브비트스트림에 대한 정보를 포함한다.

Description

서브픽처 서브비트스트림 추출에 대한 비디오 파라미터 세트 제약들
관련 출원들의 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙들에 따라, 본 출원은 2020년 6월 9일에 출원된 미국 가특허 출원 제63/036,908호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원의 전체 개시내용은 참조에 의해 본 출원의 개시내용의 일부로서 포함된다.
기술 분야
이 특허 문서는 이미지 및 비디오 데이터 프로세싱에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 비디오 또는 이미지의 코딩된 표현을 프로세싱하기 위해 비디오 인코더들 및 디코더들에 의해 사용될 수 있는 기술들을 개시한다.
하나의 예시적인 양상에서, 비디오 데이터를 프로세싱하는 방법이 개시된다. 이 방법은 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 다수의 계층들을 포함하고; 여기서 규칙은, 출력 비트스트림이 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안, 출력 비트스트림에 적용 가능하지 않은 스케일러블 네스팅된 SEI 메시지(scalable nested SEI message)를 포함하는 추가 향상 정보 네트워크 추상화 계층 유닛(SEI NAL unit)이 출력 비트스트림에서 생략된다는 것을 지정한다.
하나의 예시적인 양상에서, 비디오 데이터를 프로세싱하는 방법이 개시된다. 이 방법은 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 다수의 계층들을 포함하고; 여기서 규칙은 비트스트림에 대한 서브픽처 서브비트스트림 추출 프로세스에 의해 추출되는 서브픽처 시퀀스를 식별해 주는 제1 서브픽처 인덱스가 픽처당 다수의 서브픽처들을 갖는 비트스트림의 계층들의 제2 서브픽처 인덱스에 기초한다는 것을 지정한다.
하나의 예시적인 양상에서, 비디오 데이터를 프로세싱하는 방법이 개시된다. 이 방법은 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 서브계층을 포함하는 하나 이상의 계층을 포함하고, 여기서 규칙은 출력 대상 서브비트스트림이 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안 하나 이상의 신택스 구조에 대해 선택적으로 수행되는 재작성 동작을 지정하며, 여기서 하나 이상의 신택스 요소는 출력 대상 서브비트스트림에 대한 정보를 포함한다.
하나의 예시적인 양상에서, 비디오 데이터를 프로세싱하는 방법이 개시된다. 이 방법은 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 계층을 포함하고; 여기서 규칙은, 조건에 응답하여, 서브픽처 서브비트스트림 추출 프로세스 동안 추출되는 대상 출력 서브픽처 서브비트스트림의 제1 추가 향상 정보 네트워크 추상화 계층(SEI NAL) 유닛의 선택적 프로세싱을 지정한다.
또 다른 예시적인 양상에서, 비디오 인코더 장치가 개시된다. 비디오 인코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양상에서, 비디오 디코더 장치가 개시된다. 비디오 디코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양상에서, 코드가 저장된 컴퓨터 판독 가능 매체가 개시된다. 코드는 본 명세서에서 설명되는 방법들 중 하나를 프로세서 실행 가능 코드 형태로 구체화한다.
이들 및 다른 특징들이 본 문서 전체에 걸쳐 설명된다.
도 1은 픽처의 래스터 스캔 슬라이스 분할의 예를 도시하며, 여기서 픽처는 12 개의 타일 및 3 개의 래스터 스캔 슬라이스로 나누어진다.
도 2는 픽처의 직사각형 슬라이스 분할의 예를 도시하며, 여기서 픽처는 24 개의 타일(6 개의 타일 열과 4 개의 타일 행) 및 9 개의 직사각형 슬라이스로 나누어진다.
도 3은 타일들 및 직사각형 슬라이스들로 분할되는 픽처의 예를 도시하며, 여기서 픽처는 4 개의 타일(2 개의 타일 열과 2 개의 타일 행) 및 4 개의 직사각형 슬라이스로 나누어진다.
도 4는 15 개의 타일, 24 개의 슬라이스 및 24 개의 서브픽처로 분할되는 픽처를 도시한다.
도 5는 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 6은 비디오 프로세싱 장치의 블록 다이어그램이다.
도 7은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다.
도 8은 본 개시내용의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 9는 본 개시내용의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 10은 본 개시내용의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 11은 전형적인 서브픽처 기반 뷰포트 종속적 360° 비디오 코딩 방식의 예를 도시한다.
도 12는 서브픽처들 및 공간 스케일러빌리티(spatial scalability)에 기초한 뷰포트 종속적 360o 비디오 코딩 방식을 도시한다.
도 13a 내지 도 13d는 비디오 데이터 프로세싱 방법들에 대한 예시적인 플로차트들을 도시한다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용되며 각각의 섹션에서 개시되는 기술들 및 실시예들의 적용 가능성을 해당 섹션으로만 제한하지 않는다. 게다가, H.266 전문용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위해 사용되지 않는다. 그와 같이, 본 명세서에서 설명되는 기술들은 다른 비디오 코덱 프로토콜들 및 설계들에도 적용 가능하다. 본 문서에서, 편집 변경 사항들은, VVC 사양의 현재 초안에 대해, 삭제된 텍스트를 나타내는 취소선(strikethrough)과 추가된 텍스트를 나타내는 강조 표시(굵은 기울임꼴을 포함함)로 텍스트에 표시된다.
1. 서론
이 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 서브픽처 시퀀스들에 대한 레벨 정보를 지정하고 시그널링하는 것에 관한 것이다. 이는 단일 계층 비디오 코딩 및 다중 계층 비디오 코딩, 예를 들면, 개발 중인 다목적 비디오 코딩(VVC)을 지원하는 임의의 비디오 코딩 표준 또는 비표준 비디오 코덱에 적용될 수 있다.
2. 약어
APS Adaptation Parameter Set(적응 파라미터 세트)
AU Access Unit(액세스 유닛)
AUD Access Unit Delimiter(액세스 유닛 구분자)
AVC Advanced Video Coding(고급 비디오 코딩)
CLVS Coded Layer Video Sequence(코딩된 계층 비디오 시퀀스)
CPB Coded Picture Buffer(코딩된 픽처 버퍼)
CRA Clean Random Access(클린 랜덤 액세스)
CTU Coding Tree Unit(코딩 트리 유닛)
CVS Coded Video Sequence(코딩된 비디오 시퀀스)
DCI Decoding Capability Information(디코딩 능력 정보)
DPB Decoded Picture Buffer(디코딩된 픽처 버퍼)
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(순간 디코딩 리프레시)
ILP Inter-Layer Prediction(계층 간 예측)
ILRP Inter-Layer Reference Picture(계층 간 참조 픽처)
JEM Joint Exploration Model(결합 탐색 모델)
LTRP Long-Term Reference Picture(장기 참조 픽처)
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(픽처 유닛)
RAP Random Access Point(랜덤 액세스 포인트)
RBSP Raw Byte Sequence Payload(원시 바이트 시퀀스 페이로드)
SEI Supplemental Enhancement Information(추가 향상 정보)
SLI Subpicture Level Information(서브픽처 레벨 정보)
SPS Sequence Parameter Set(시퀀스 파라미터 세트)
STRP Short-Term Reference Picture(단기 참조 픽처)
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 [1] 표준들을 만들었다. H.262 이후로, 비디오 코딩 표준들은 시간적 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC 이후의 미래 비디오 코딩 기술을 탐구하기 위해, 2015년에 VCEG와 MPEG에 의해 공동으로 JVET(Joint Video Exploration Team)가 설립되었다. 그 이후로, 많은 새로운 방법들이 JVET에 의해 채택되었고 JEM(Joint Exploration Model)[2]이라는 참조 소프트웨어에 추가되었다. 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 세트에 대한 적합성 준수 비트스트림(conforming bitstream)을 생성하기 위해 (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. 시퀀스 내에서의 픽처 해상도 변경
AVC 및 HEVC에서, IRAP 픽처의 경우, 새로운 SPS를 사용하는 새로운 시퀀스가 시작되지 않는 한, 픽처들의 공간 해상도가 변경될 수 없다. VVC는 항상 인트라 코딩되는 IRAP 픽처를 인코딩하지 않으면서 한 위치에서 시퀀스 내에서의 픽처 해상도 변경을 가능하게 한다. 이 특징은 때때로 참조 픽처 리샘플링(reference picture resampling, RPR)이라고 지칭되는데, 그 이유는 이 특징이 해당 참조 픽처가 디코딩 중인 현재 픽처와 상이한 해상도를 가질 때 인터 예측에 사용되는 참조 픽처의 리샘플링을 필요로 하기 때문이다.
스케일링 비율(scaling ratio)은 1/2(참조 픽처로부터 현재 픽처로의 2배 다운샘플링) 이상 8(8배 업샘플링) 이하로 제한된다. 참조 픽처와 현재 픽처 사이의 다양한 스케일링 비율들을 처리하기 위해 상이한 주파수 컷오프(frequency cutoff)들을 갖는 3 개의 리샘플링 필터 세트가 지정된다. 3 개의 리샘플링 필터 세트는, 제각기, 1/2 내지 1/1.75, 1/1.75 내지 1/1.25, 및 1/1.25 내지 8의 범위에 있는 스케일링 비율에 대해 적용된다. 각각의 리샘플링 필터 세트는 모션 보상 보간 필터들의 경우와 동일하게 루마를 위한 16 개의 위상과 크로마를 위한 32 개의 위상을 갖는다. 실제로, 정규 MC 보간 프로세스는 1/1.25 내지 8의 범위에 있는 스케일링 비율을 갖는 리샘플링 프로세스의 특수한 경우이다. 수평 및 수직 스케일링 비율들은 픽처 폭 및 높이와, 참조 픽처 및 현재 픽처에 대해 지정된 왼쪽, 오른쪽, 위쪽 및 아래쪽 스케일링 오프셋들에 기초하여 도출된다.
HEVC와 상이한, 이 특징을 지원하기 위한 VVC 설계의 다른 양상들은 다음을 포함한다: i) 픽처 해상도 및 대응하는 적합성 창(conformance window)은 SPS가 아니라 PPS에서 시그널링되는 반면, SPS에서는 최대 픽처 해상도가 시그널링된다. ii) 단일 계층 비트스트림의 경우, 각각의 픽처 저장소(하나의 디코딩된 픽처를 저장하기 위한 DPB 내의 슬롯)는 최대 픽처 해상도를 갖는 디코딩된 픽처를 저장하는 데 필요한 버퍼 크기를 차지한다.
3.4. 일반적인 스케일러블 비디오 코딩(SVC) 및 VVC에서의 스케일러블 비디오 코딩(SVC)
스케일러블 비디오 코딩(SVC, 때때로 비디오 코딩에서 단지 스케일러빌리티(scalability)라고도 지칭됨)은 기본 계층(base layer, BL)(때때로 참조 계층(reference layer, RL)이라고 지칭됨) 및 하나 이상의 스케일러블 향상 계층(enhancement layer, EL))이 사용되는 비디오 코딩을 지칭한다. SVC에서, 기본 계층은 기본 품질 레벨을 갖는 비디오 데이터를 전달할 수 있다. 하나 이상의 향상 계층은, 예를 들어, 더 높은 공간적, 시간적, 및/또는 신호 대 잡음(SNR) 레벨들을 지원하기 위해 추가적인 비디오 데이터를 전달할 수 있다. 향상 계층들은 이전에 인코딩된 계층을 기준으로 정의될 수 있다. 예를 들어, 하부 계층(bottom layer)은 BL로서 역할할 수 있는 반면, 상부 계층(top layer)은 EL로서 역할할 수 있다. 중간 계층(middle layer)들은 EL들 또는 RL들 또는 양쪽 모두로서 역할할 수 있다. 예를 들어, 중간 계층(예를 들면, 최하위 계층도 아니고 최상위 계층도 아닌 계층)은, 기본 계층 또는 임의의 개재하는 향상 계층들과 같은, 중간 계층 아래의 계층들에 대한 EL일 수 있으며, 동시에 중간 계층 위의 하나 이상의 향상 계층에 대한 RL로서 역할할 수 있다. 유사하게, HEVC 표준의 멀티뷰(Multiview) 또는 3D 확장에서는, 다수의 뷰들이 있을 수 있고, 하나의 뷰에 대한 정보가 다른 뷰에 대한 정보(예를 들면, 모션 추정, 모션 벡터 예측 및/또는 다른 중복성들)를 코딩(예를 들면, 인코딩 또는 디코딩)하는 데 활용될 수 있다.
SVC에서, 인코더 또는 디코더에 의해 사용되는 파라미터들은 이들이 활용될 수 있는 코딩 레벨(예를 들면, 비디오 레벨, 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨 등)에 기초하여 파라미터 세트들로 그룹화된다. 예를 들어, 비트스트림에서 상이한 계층들의 하나 이상의 코딩된 비디오 시퀀스에 의해 활용될 수 있는 파라미터들은 비디오 파라미터 세트(VPS)에 포함될 수 있고, 코딩된 비디오 시퀀스에서의 하나 이상의 픽처들에 의해 활용되는 파라미터들은 시퀀스 파라미터 세트(SPS)에 포함될 수 있다. 유사하게, 픽처 내의 하나 이상의 슬라이스에 의해 활용되는 파라미터들은 픽처 파라미터 세트(PPS)에 포함될 수 있고, 단일 슬라이스에 특정적인 다른 파라미터들은 슬라이스 헤더에 포함될 수 있다. 유사하게, 임의의 주어진 시간에 특정 계층이 어느 파라미터 세트(들)를 사용하고 있는지의 표시가 다양한 코딩 레벨들에서 제공될 수 있다.
VVC에서 참조 픽처 리샘플링(RPR)을 지원하는 덕분에, 다수의 계층들, 예를 들면, VVC에서 SD 및 HD 해상도들을 갖는 2 개의 계층을 포함하는 비트스트림을 지원하는 것은 어떠한 추가적인 신호 프로세싱 레벨 코딩 툴도 필요로 하지 않고 설계될 수 있는데, 그 이유는 공간 스케일러빌리티(spatial scalability) 지원에 필요한 업샘플링이 RPR 업샘플링 필터만을 사용할 수 있기 때문이다. 그럼에도 불구하고, 스케일러빌리티 지원을 위해서는 (스케일러빌리티를 지원하지 않는 것에 비해) 상위 레벨 신택스 변경들이 필요하다. 스케일러빌리티 지원은 VVC 버전 1에 지정되어 있다. AVC 및 HEVC의 확장들을 포함한, 임의의 이전 비디오 코딩 표준들에서의 스케일러빌리티 지원들과 상이하게, VVC 스케일러빌리티의 설계는 가능한 한 단일 계층 디코더 설계들에 친숙하게 만들어졌다. 다중 계층 비트스트림들에 대한 디코딩 능력은 비트스트림에 단일 계층만이 있는 것처럼 지정된다. 예를 들면, DPB 크기와 같은, 디코딩 능력은 디코딩될 비트스트림에서의 계층 수와 무관한 방식으로 지정된다. 기본적으로, 단일 계층 비트스트림들을 위해 설계된 디코더는 다중 계층 비트스트림들을 디코딩할 수 있기 위해 많은 변경들을 필요로 하지 않는다. AVC 및 HEVC의 다중 계층 확장들의 설계들과 비교하여, HLS 양상들은 일부 유연성들을 희생시키면서 상당히 단순화되었다. 예를 들어, IRAP AU는 CVS에 존재하는 계층들 각각에 대한 픽처를 포함해야 한다.
3.5. 서브픽처들에 기초한 뷰포트 종속적 360 o 비디오 스트리밍
전방향 비디오라고도 하는 360o 비디오의 스트리밍에서, 임의의 특정 순간에 전방향 비디오 영역 전체의 서브세트(즉, 현재 뷰포트)만이 사용자에게 렌더링되는 반면, 사용자는 시청 배향, 결과적으로 현재 뷰포트를 변경하기 위해 언제든지 머리를 돌릴 수 있다. 클라이언트에서 이용 가능한 현재 뷰포트에 의해 커버되지 않으며 사용자가 영역에서의 어딘가로 시청 배향을 갑자기 변경하는 경우에만 사용자에게 렌더링될 준비가 되어 있는 적어도 어떤 저품질 표현을 갖는 것이 바람직한 반면, 바로 지금 사용하기 위해 렌더링되고 있는 현재 뷰포트에 대해서만 전방향 비디오의 고품질 표현이 필요하다. 전방향 비디오 전체의 고품질 표현을 적절한 입도(granularity)로 서브픽처들로 분할하는 것은 그러한 최적화를 가능하게 한다. VVC를 사용하여, 2 개의 표현이 서로 독립적인 2 개의 계층으로서 인코딩될 수 있다.
전형적인 서브픽처 기반 뷰포트 종속적 360o 비디오 전달 방식이 도 11에 도시되어 있으며, 여기서 전체 비디오(full video)의 고해상도 표현(higher-resolution representation)은 서브픽처들로 구성되는 반면, 전체 비디오의 저해상도 표현(lower-resolution representation)은 서브픽처들을 사용하지 않으며 고해상도 표현보다 덜 빈번한 랜덤 액세스 포인트들로 코딩될 수 있다. 클라이언트는 전체 비디오를 저해상도로 수신하고, 고해상도 비디오의 경우, 클라이언트는 현재 뷰포트를 커버하는 서브픽처들만을 수신하여 디코딩한다.
최신 VVC 초안 사양은 도 12에 도시된 바와 같은 개선된 360o 비디오 코딩 방식을 또한 지원한다. 도 11에 도시된 접근법과 비교하여 유일한 차이점은 도 12에 도시된 접근법의 경우 계층 간 예측(ILP)이 적용된다는 것이다.
3.6. 파라미터 세트들
AVC, HEVC, 및 VVC는 파라미터 세트들을 지정한다. 파라미터 세트들의 유형들은 SPS, PPS, APS, 및 VPS를 포함한다. SPS 및 PPS는 AVC, HEVC 및 VVC 모두에서 지원된다. VPS는 HEVC 이후 도입되었으며 HEVC와 VVC 양쪽 모두에 포함된다. APS가 AVC 또는 HEVC에는 포함되지 않았지만, 최신 VVC 초안 텍스트에는 포함된다.
SPS는 시퀀스 레벨 헤더 정보를 전달하도록 설계되었으며, PPS는 가끔 변하는 픽처 레벨 헤더 정보를 전달하도록 설계되었다. SPS 및 PPS를 사용하면, 가끔 변하는 정보가 각각의 시퀀스 또는 픽처마다 반복될 필요가 없으며, 따라서 이러한 정보의 중복 시그널링이 회피될 수 있다. 게다가, SPS 및 PPS를 사용하는 것은 중요한 헤더 정보의 대역 외(out-of-band) 전송을 가능하게 하며, 따라서 중복 전송들의 필요성을 회피할 뿐만 아니라 오류 복원력(error resilience)도 개선시킨다.
VPS는 다중 계층 비트스트림들에서의 모든 계층들에 공통인 시퀀스 레벨 헤더 정보를 전달하기 위해 도입되었다.
APS는 코딩하는 데 꽤 많은 비트들을 필요로 하는 픽처 레벨 또는 슬라이스 레벨 정보를 전달하기 위해 도입되었으며, 다수의 픽처들에 의해 공유될 수 있고, 차례로 상당히 많은 상이한 변형들이 있을 수 있다.
3.7. 서브픽처 서브비트스트림 추출 프로세스
Bytedance IDF P2005612001H_v0에서 제안된 변경 사항들을 더한 최신 VVC 텍스트의 C.7 절에서의 서브픽처 서브비트스트림 추출 프로세스는 다음과 같다.
C.7 서브픽처 서브비트스트림 추출 프로세스
이 프로세스에 대한 입력들은 비트스트림 inBitstream, 대상 OLS 인덱스 targetOlsIdx, 대상 최고 TemporalId 값 tIdTarget, 및 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 i에 대한 대상 서브픽처 인덱스 값들의 리스트 subpicIdxTarget[ i ]이다.
이 프로세스의 출력은 서브비트스트림 outBitstream이다.
이하의 조건들 모두를 충족시키는 임의의 출력 서브비트스트림이 적합성 준수 비트스트림이어야 한다는 것은 입력 비트스트림에 대한 비트스트림 적합성의 요구사항이다:
- 출력 서브비트스트림은, 비트스트림, VPS에 의해 지정되는 OLS들의 리스트에 대한 인덱스와 동일한 targetOlsIdx, 0 내지 vps_max_sublayers_minus1(경계 포함)의 범위에 있는 임의의 값과 동일한 tIdTarget, 및 이하의 조건들을 충족시키는 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 i에 대한 리스트 subpicIdxTarget[ i ]를 입력들로 하여 이 절에서 지정되는 프로세스의 출력이다:
- targetOLsIdx 번째 OLS에서의 모든 계층들이 동일한 공간 해상도, sps_num_subpics_minus1에 대한 동일한 값, 및 동일한 서브픽처 레이아웃을 가지며, 모든 서브픽처가 1과 동일한 sps_subpic_treated_as_pic_flag[ ]를 갖는다.
- i의 모든 값들에 대한 subpicIdxTarget[ i ]의 값들이 동일하고 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 특정 값과 동일하다.
- NumLayersInOls[ targetOlsIdx ]가 1보다 크고 sps_num_subpics_minus1이 0보다 클 때, 서브픽처 레벨 정보 SEI 메시지가 1과 동일한 sn_ols_flag를 갖는 스케일러블 네스팅 SEI 메시지(scalable nesting SEI message)에 존재해야 하고 NestingOlsIdx[ i ]가 0 내지 sn_num_olss_minus1(경계 포함)의 범위에 있는 i의 하나의 값에 대해 targetOlsIdx와 동일하다.
다중 계층 OLS에 대한 사용의 경우, SLI SEI 메시지는 스케일러블 네스팅 SEI 메시지에 포함되어야 하며 특정 OLS들에 적용하기 위해 또는 특정 OLS들 내의 모든 계층들에 적용하기 위해 스케일러블 네스팅 SEI 메시지에 표시되어야 한다.
- 출력 서브비트스트림이 리스트 LayerIdInOls[ targetOlsIdx ] 내의 nuh_layer_id 값들 각각과 동일한 nuh_layer_id를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
- 출력 서브비트스트림이 tIdTarget과 동일한 TemporalId를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
비고 - 적합성 준수 비트스트림은 0과 동일한 TemporalId를 갖는 하나 이상의 코딩된 슬라이스 NAL 유닛을 포함하지만, 0과 동일한 nuh_layer_id를 갖는 코딩된 슬라이스 NAL 유닛들을 포함할 필요는 없다.
- 출력 서브비트스트림이 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있는 각각의 i에 대해 LayerIdInOls[ targetOlsIdx ][ i ]와 동일한 nuh_layer_id를 갖고 SubpicIdVal[ subpicIdxTarget[ i ] ]와 동일한 sh_subpic_id를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
출력 서브비트스트림 outBitstream은 다음과 같이 도출된다:
- 부록 C.6에서 지정되는 서브비트스트림 추출 프로세스는 inBitstream, targetOlsIdx, 및 tIdTarget을 입력들로 하여 호출되고 프로세스의 출력은 outBitstream에 할당된다.
- 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, LayerIdInOls[ targetOLsIdx ][ i ]와 동일한 nuh_layer_id 및 SubpicIdVal[ subpicIdxTarget[ i ] ]와 동일하지 않은 sh_subpic_id를 갖는 모든 VCL NAL 유닛들 및 이들과 연관된 필러 데이터 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 포함하는 SEI NAL 유닛들을 outBitstream으로부터 제거한다.
- sli_cbr_constraint_flag가 0과 동일할 때, FD_NUT와 동일한 nal_unit_type을 갖는 모든 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 포함하는 SEI NAL 유닛들을 제거한다.
- 서브비트스트림 outBitstream에 대한 대체 파라미터 세트들을 제공하기 위해 이 사양에 지정되지 않은 일부 외부 수단들이 이용 가능한 경우, 모든 파라미터 세트들을 대체 파라미터 세트들로 대체한다.
- 그렇지 않고, 서브픽처 레벨 정보 SEI 메시지들이 inBitstream에 존재할 때, 다음이 적용된다:
- subpicIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처들로 구성된 서브픽처 세트에 대해 수학식 D.11에서 도출되는 SubpicSetLevelIdc와 동일하도록 모든 참조된 VPS NAL 유닛들에서 profile_tier_level() 신택스 구조들의 리스트 내의 vps_ols_ptl_idx[ targetOlsIdx ] 번째 엔트리에서의 general_level_idc의 값을 재작성한다.
- VCL HRD 파라미터들 또는 NAL HRD 파라미터들이 존재할 때, 모든 참조된 VPS NAL 유닛들에서의 vps_ols_hrd_idx[ MultiLayerOlsIdx[ targetOlsIdx ] ] 번째 ols_hrd_parameters( ) 신택스 구조에서 및 i 번째 계층에 의해 참조되는 모든 SPS NAL 유닛들에서의 ols_hrd_parameters( ) 신택스 구조들에서 j 번째 CPB의 cpb_size_value_minus1[ tIdTarget ][ j ] 및 bit_rate_value_minus1[ tIdTarget ][ j ]의 각자의 값들을, 수학식 D.6 및 수학식 D.7에 의해, 제각기, 도출되는 SubpicCpbSizeVcl[ SubpicSetLevelIdx ][ subpicIdx ] 및 SubpicCpbSizeNal[ SubpicSetLevelIdx ][ subpicIdx ], 수학식 D.8 및 수학식 D.9에 의해, 제각기, 도출되는SubpicBitrateVcl[ SubpicSetLevelIdx ][ subpicIdx ] 및 SubpicBitrateNal[ SubpicSetLevelIdx ][ subpicIdx ]에 대응하도록, 재작성하며, 여기서 SubpicSetLevelIdx는 subpicIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처에 대해 수학식 D.11에 의해 도출되고, j는 0 내지 hrd_cpb_cnt_minus1(경계 포함)의 범위에 있으며, i는 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있다.
- 0 내지 NumLayersInOls[ targetOlsIdx ] - 1의 범위에 있는 각각의 i 값에 대해, 다음이 적용된다.
- 변수 spIdx는 subpicIdxTarget[ i ]와 동일하게 설정된다.
- 1과 동일한 sps_ptl_dpb_hrd_params_present_flag를 갖는 모든 참조된 SPS NAL 유닛들에서의 profile_tier_level() 신택스 구조에서 general_level_idc의 값을 spIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처로 구성된 서브픽처 세트에 대해 수학식 D.11에 의해 도출되는 SubpicSetLevelIdc와 동일하도록 재작성한다.
- 변수들 subpicWidthInLumaSamples 및 subpicHeightInLumaSamples는 다음과 같이 도출된다:
Figure pct00001
- 모든 참조된 SPS NAL 유닛들에서의 sps_pic_width_max_in_luma_samples 및 sps_pic_height_max_in_luma_samples의 값들과 모든 참조된 PPS NAL 유닛들에서의 pps_pic_width_in_luma_samples 및 pps_pic_height_in_luma_samples의 값들을, 제각기, subpicWidthInLumaSamples 및 subpicHeightInLumaSamples와 동일하도록 재작성한다.
- 모든 참조된 SPS NAL 유닛들에서의 sps_num_subpics_minus1의 값 및 모든 참조된 PPS NAL 유닛들에서의 pps_num_subpics_minus1의 값을 0으로 재작성한다.
- 존재할 때, 모든 참조된 SPS NAL 유닛들에서의 신택스 요소들 sps_subpic_ctu_top_left_x[ spIdx ] 및 sps_subpic_ctu_top_left_y[ spIdx ]를 0으로 재작성한다.
- spIdx와 동일하지 않은 각각의 j에 대해 모든 참조된 SPS NAL 유닛들에서의 신택스 요소들 sps_subpic_ctu_top_left_x[ j ], sps_subpic_ctu_top_left_y[ j ], sps_subpic_width_minus1[ j ], sps_subpic_height_minus1[ j ], sps_subpic_treated_as_pic_flag[ j ], sps_loop_filter_across_subpic_enabled_flag[ j ], 및 sps_subpic_id[ j ]를 제거한다.
- spIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처와 연관되지 않은 모든 타일 행들, 타일 열들, 및 슬라이스들을 제거하기 위해 타일들 및 슬라이스들의 시그널링을 위한 모든 참조된 PPS에서의 신택스 요소들을 재작성한다.
- 변수들 subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset 및 subpicConfWinBottomOffset은 다음과 같이 도출된다:
Figure pct00002
이상의 수학식들에서의 sps_subpic_ctu_top_left_x[ spIdx ], sps_subpic_width_minus1[ spIdx ], sps_subpic_ctu_top_left_y[ spIdx ], sps_subpic_height_minus1[ spIdx ], sps_pic_width_max_in_luma_samples, sps_pic_height_max_in_luma_samples, sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 및 sps_conf_win_bottom_offset은 재작성되기 전의 원래 SPS들로부터의 것이다.
- 모든 참조된 SPS NAL 유닛들에서의 sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 및 sps_conf_win_bottom_offset의 값들 및 모든 참조된 PPS NAL 유닛들에서의 pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 및 pps_conf_win_bottom_offset의 값들을, 제각기, subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset, 및 subpicConfWinBottomOffset과 동일하도록 재작성한다.
- 변수들 subpicScalWinLeftOffset, subpicScalWinRightOffset, subpicScalWinTopOffset 및 subpicScalWinBotOffset은 다음과 같이 도출된다:
Figure pct00003
Figure pct00004
이상의 수학식들에서의 sps_subpic_ctu_top_left_x[ spIdx ], sps_subpic_width_minus1[ spIdx ], sps_subpic_ctu_top_left_y[ spIdx ], sps_subpic_height_minus1[ spIdx ], sps_pic_width_max_in_luma_samples, 및 sps_pic_height_max_in_luma_samples는 재작성되기 전의 원래 SPS들로부터의 것이며, 이상에서의 pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, 및 pps_scaling_win_bottom_offset은 재작성되기 전의 원래 PPS들로부터의 것이다.
- 모든 참조된 PPS NAL 유닛들에서의 pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, 및 pps_scaling_win_bottom_offset의 값들을, 제각기, subpicScalWinLeftOffset, subpicScalWinRightOffset, subpicScalWinTopOffset, 및 subpicScalWinBotOffset과 동일하도록 재작성한다.
- sli_cbr_constraint_flag가 1과 동일한 경우, 0 내지 hrd_cpb_cnt_minus1의 범위에 있는 j에 대해 모든 참조된 VPS NAL 유닛들 및 SPS NAL 유닛들에서의 vps_ols_hrd_idx[ MultiLayerOlsIdx[ targetOlsIdx ] ] 번째 ols_hrd_parameters( ) 신택스 구조에서 j 번째 CPB의 cbr_flag[ tIdTarget ][ j ]를 1과 동일하게 설정한다. 그렇지 않은 경우(sli_cbr_constraint_flag가 0과 동일한 경우), cbr_flag[ tIdTarget ][ j ]를 0과 동일하게 설정한다.
- outBitstream이 outBitstream에 적용 가능한 1과 동일한 sn_ols_flag 및 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛들을 포함할 때, 스케일러블 네스팅 SEI 메시지로부터 1(PT), 130(DUI), 또는 132(디코딩된 픽처 해시)와 동일한 payloadType을 갖는 적절한 비-스케일러블 네스팅된 SEI 메시지를 추출하고, 추출된 SEI 메시지들을 outBitstream에 배치한다.
4. 개시된 기술적 해결책들에 의해 해결되는 기술적 문제들
서브픽처 서브비트스트림 추출 프로세스의 최신 설계는 다음과 같은 문제들이 있다:
1) 출력 비트스트림에 적용되지 않는 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지들에서 스케일러블 네스팅된 SEI 메시지들을 포함하는 SEI NAL 유닛들은 출력 비트스트림으로부터 제거되어야 한다.
2) 서브픽처 시퀀스를 식별해 주기 위한 서브픽처 인덱스는, 픽처당 하나의 서브픽처만을 갖는 계층들이 아니라, 픽처당 다수의 서브픽처들을 갖는 계층들에서의 추출될 서브픽처들의 서브픽처 인덱스여야 한다.
3) 0 내지 tIdTarget - 1(경계 포함)의 범위에 있는 k에 대한 sublayer_level_idc[ k ]의 재작성이 누락되며, 어느 조건 하에서 레벨 정보의 재작성이 참조된 VPS들 및/또는 참조된 SPS들에 대해 수행되어야 하는지가 명확하게 지정되어 있지 않다.
4) 0 내지 tIdTarget - 1(경계 포함)의 범위에 있는 k에 대한 cpb_size_value_minus1[ k ][ j ] 및 bit_rate_value_minus1[ k ][ j ]의 재작성이 누락되며, 어느 조건 하에서 CPB 크기 및 비트 레이트 정보의 재작성이 참조된 VPS들 및/또는 참조된 SPS들에 대해 수행되어야 하는지가 명확하게 지정되어 있지 않다.
5) 어느 조건 하에서 cbr_flag[ tIdTarget ][ j ]의 재작성이 참조된 VPS들 및/또는 참조된 SPS들에 대해 수행되어야 하는지가 명확하게 지정되어 있지 않다.
6) 스케일러블 네스팅된 SEI 메시지들을 비-스케일러블 네스팅된 SEI 메시지들로 만드는 마지막 단계는 다수의 문제들이 있다:
a. 디코딩된 픽처 해시 SEI 메시지가 스케일러블 네스팅 SEI 메시지에 포함될 때, sn_ols_flag의 값은 0과 동일할 필요가 있는 반면, 마지막 단계의 현재 텍스트는 sn_ols_flag가 1과 동일한 것으로 가정한다.
b. sn_ols_flag가 1과 동일하고 sn_subpic_flag가 1과 동일한 경우에서의 SLI 및 BP SEI 메시지들은 다루어지지 않는다.
c. sn_ols_flag가 0과 동일하고 sn_subpic_flag가 1과 동일한 경우에서의 SEI 메시지들은 다루어지지 않는다.
d. 결과적인 비-스케일러블 네스팅된 SEI 메시지들이 출력 비트스트림에서 어디에(어느 SEI NAL 유닛에) 배치되어야 하는지(SEI NAL 유닛이 어디에 있어야 하는지)가 지정되어 있지 않다.
e. 원래 컨테이너 SEI NAL 유닛들이 출력 비트스트림으로부터 제거되어야 한다.
5. 해결책들 및 실시예들의 목록
위의 문제들 및 다른 문제들을 해결하기 위해, 아래에서 요약되는 방법들이 개시된다. 해결책 항목들은 일반적인 개념들을 설명하기 위한 예들로서 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 게다가, 이러한 항목들은 개별적으로 적용될 수 있거나 임의의 방식으로 조합될 수 있다.
1) 문제 1을 해결하기 위해, 서브픽처 서브비트스트림 추출 프로세스에서, 출력 비트스트림에 적용되지 않는 스케일러블 네스팅된 SEI 메시지들을 포함하는 SEI NAL 유닛들이 출력 비트스트림으로부터 제거되는 것이 지정될 수 있다.
2) 문제 2를 해결하기 위해, 서브픽처 서브비트스트림 추출 프로세스에서, 다음이 지정될 수 있다: 서브픽처 시퀀스를 식별해 주기 위한 서브픽처 인덱스가, 픽처당 하나의 서브픽처만을 갖는 계층들이 아니라, 픽처당 다수의 서브픽처들을 갖는 계층들에서의 추출될 서브픽처들의 서브픽처 인덱스로서 지정된다.
3) 문제 3을 해결하기 위해, 서브픽처 서브비트스트림 추출 프로세스에서, 다음이 지정될 수 있다: 존재할 때, 참조된 VPS들에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때, 참조된 SPS들에서, general_level_idc 및 0 내지 tIdTarget - 1(경계 포함)의 범위에 있는 k에 대한 sublayer_level_idc[ k ] 양쪽 모두를 적절한 값들(예를 들면, 본 문서에서 설명됨)로 재작성한다.
4) 문제 4를 해결하기 위해, 서브픽처 서브비트스트림 추출 프로세스에서, 다음이 지정될 수 있다: 존재할 때, 참조된 VPS들에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때, 참조된 SPS들에서, 0 to tIdTarget(경계 포함)의 범위에 있는 모든 k 값들에 대한 cpb_size_value_minus1[ k ][ j ] 및 bit_rate_value_minus1[ k ][ j ]를 적절한 값들(예를 들면, 본 문서에서 설명됨)로 재작성한다.
5) 문제 5를 해결하기 위해, 서브픽처 서브비트스트림 추출 프로세스에서, 다음이 지정될 수 있다: 존재할 때, 참조된 VPS들에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때, 참조된 SPS들에서, cbr_flag[ tIdTarget ][ j ]를 적절한 값들(예를 들면, 본 문서에서 설명됨)로 재작성한다.
6) 문제 6을 해결하기 위해, 특정 조건 하에서, 이하의 동작들 중 하나 이상이 수행될 수 있다:
a. 새로운 SEI NAL 유닛 seiNalUnitB를 생성한다.
b. seiNalUnitA를 포함하는 PU에 seiNalUnitB를 포함시킨다.
c. seiNalUnitA를 포함하는 PU에 seiNalUnitB를 seiNalUnitA 직후에 포함시킨다.
d. 스케일러블 네스팅 SEI 메시지로부터 스케일러블 네스팅된 SEI 메시지들을 추출하고 이들을 (비-스케일러블 네스팅된 SEI 메시지들로서) seiNalUnitB에 직접 포함시킨다.
e. outBitstream으로부터 seiNalUnitA를 제거한다.
7) 일 예에서, 항목 6)에서의 특정 조건은 다음과 같다: outBitstream이, outBitstream에서와 정확히 동일한 계층 세트를 가지는 OLS들(sn_ols_flag가 1과 동일할 때) 또는 계층들(sn_ols_flag가 0과 동일할 때)에 적용 가능하고 outBitstream에서와 동일한 서브픽처 세트를 가지는 서브픽처들에 적용 가능한, 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛 seiNalUnitA를 포함할 때.
8) 일 예에서, 서브픽처 서브비트스트림 추출 프로세스에서, LayerIdInOls[ targetOlsIdx ]가 비트스트림에서의 모든 NAL 유닛들 내의 nuh_layer_id의 모든 값들을 포함하지 않고 outBitstream이 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛 seiNalUnitA를 포함할 때, seiNalUnitA를 출력 비트스트림에 유지한다.
6. 실시예들
아래는 VVC 사양에 적용될 수 있는 위에서 섹션 5에 요약된 발명 양상들 중 일부에 대한 일부 예시적인 실시예들이다. 변경된 텍스트들은 JVET-S0152-v5에서의 최신 VVC 텍스트를 기반으로 한다. 추가되거나 수정된 대부분의 관련 부분들은 굵게 밑줄 로 강조 표시되고, 삭제된 부분들 중 일부는 [[기울임꼴 이중 대괄호 텍스트]] 로 강조 표시된다. 본질적으로 편집에 관련된 것이고 따라서 강조 표시되지 않은 일부 다른 변경들이 있을 수 있다.
6.1. 제1 실시예
이 실시예는 항목 1 내지 항목 7 및 이들의 하위 항목들에 대한 것이다.
C.7 서브픽처 서브비트스트림 추출 프로세스
이 프로세스에 대한 입력들은 비트스트림 inBitstream, 대상 OLS 인덱스 targetOlsIdx, 대상 최고 TemporalId 값 tIdTarget, 및 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 i에 대한 [[각각의 계층에 대한]] 대상 서브픽처 인덱스 값들의 [[어레이]] 리스트 subpicIdxTarget[  i  ]이다.
이 프로세스의 출력은 서브비트스트림 outBitstream이다.
OLS 인덱스 targetOlsIdx를 갖는 OLS는 대상 OLS라고 지칭된다. 대상 OLS 내의 계층들 중에서, 참조된 SPS들이 0보다 큰 sps_num_subpics_minus1을 갖는 계층들은 multiSubpicLayers라고 지칭된다.
이하의 조건들 모두를 충족시키는 임의의 출력 서브비트스트림이 적합성 준수 비트스트림이어야 한다는 것은 입력 비트스트림에 대한 비트스트림 적합성의 요구사항이다:
- 출력 서브비트스트림은, 비트스트림, VPS에 의해 지정되는 OLS들의 리스트에 대한 인덱스와 동일한 targetOlsIdx, 0 내지 vps_max_sublayers_minus1(경계 포함)의 범위에 있는 임의의 값과 동일한 tIdTarget, 이하의 조건들을 충족시키는 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 i에 대한 리스트 subpicIdxTarget[ i ] [[OLS에 존재하는 서브픽처 인덱스와 동일함]] [[입력들로 하여]] 입력들로 하여 이 절에서 지정되는 프로세스의 출력이다:
- sps_subpic_treated_as_pic_flag[ subpicIdxTarget[ i ] ]가 1과 동일하도록, subpicIdxTarget[ i ]의 값이 0 내지 sps_num_subpics_minus1(경계 포함)의 범위에 있는 값과 동일하고, 여기서 sps_num_subpics_minus1 및 sps_subpic_treated_as_pic_flag[ subpicIdxTarget[ i ] ]는 LayerIdInOls[ targetOLsIdx ][ i ]와 동일한 nuh_layer_id를 갖는 계층에 의해 참조되는 SPS에서 발견되거나 SPS에 기초하여 추론된다.
비고 1 - LayerIdInOls[ targetOLsIdx ][ i ]와 동일한 nuh_layer_id를 갖는 계층에 대한 sps_num_subpics_minus1이 0과 동일할 때, subpicIdxTarget[ i ]의 값은 항상 0과 동일하다.
- 임의의 2 개의 상이한 정수 값 m 및 n에 대해, nuh_layer_id가, 제각기, LayerIdInOls[ targetOLsIdx ][ m ] 및 LayerIdInOls[ targetOLsIdx ][ n ]인 양쪽 계층들에 대해 sps_num_subpics_minus1 이 0보다 클 때, subpicIdxTarget[ m ]이 subpicIdxTarget[ n ]과 동일하다.
- 출력 서브비트스트림이 리스트 LayerIdInOls[ targetOlsIdx ] 내의 nuh_layer_id 값들 각각과 동일한 nuh_layer_id를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
- 출력 서브비트스트림이 tIdTarget과 동일한 TemporalId를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
비고 2 - 적합성 준수 비트스트림은 0과 동일한 TemporalId를 갖는 하나 이상의 코딩된 슬라이스 NAL 유닛을 포함하지만, 0과 동일한 nuh_layer_id를 갖는 코딩된 슬라이스 NAL 유닛들을 포함할 필요는 없다.
- 출력 서브비트스트림이 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있는 각각의 i에 대해 LayerIdInOls[ targetOlsIdx ][ i ]와 동일한 nuh_layer_id를 갖고 SubpicIdVal[ subpicIdxTarget[ i ] ] [[ 내의 값]] 와 동일한 sh_subpic_id를 갖는 적어도 하나의 VCL NAL 유닛을 포함한다.
출력 서브비트스트림 outBitstream이 다음과 같은 순서의 단계들에 의해 [[다음과 같이]] 도출된다 :
1. 부록 C.6에서 지정되는 서브비트스트림 추출 프로세스는 inBitstream, targetOlsIdx, 및 tIdTarget을 입력들로 하여 호출되고 프로세스의 출력은 outBitstream에 할당된다.
2. 0 내지 NumLayersInOls[ targetOLsIdx ] - 1(경계 포함)의 범위에 있는 각각의 i 값에 대해, LayerIdInOls[ targetOLsIdx ][ i ]와 동일한 nuh_layer_id 및 SubpicIdVal[ subpicIdxTarget[ i ] ]와 동일하지 않은 sh_subpic_id를 갖는 모든 VCL NAL 유닛들, 이들과 연관된 필러 데이터 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 포함하는 이들과 연관된 SEI NAL 유닛들을 outBitstream으로부터 제거한다.
3. 대상 OLS에 적용되는 SLI SEI 메시지의 sli_cbr_constraint_flag가 0과 동일할 때, FD_NUT과 동일한 nal_unit_type을 갖는 모든 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 포함하는 SEI NAL 유닛들을 제거한다.
4. 0 내지 sn_num_subpics_minus1(경계 포함)의 j에 대한 sn_subpic_idx[ j ] 값들 중 어느 것도 multiSubpicLayers 내의 계층들에 대한 subpicIdxTarget[ i ] 값들 중 임의의 것과 동일하지 않고 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지들을 포함하는 모든 SEI NAL 유닛들을 outBitstream으로부터 제거한다.
5. 서브비트스트림 outBitstream에 대한 대체 파라미터 세트들을 제공하기 위해 이 사양에 지정되지 않은 일부 외부 수단들이 이용 가능한 경우, 모든 파라미터 세트들을 대체 파라미터 세트들로 대체한다. 그렇지 않고, SLI SEI 메시지들이 inBitstream에 존재할 때, 다음과 같은 순서의 단계들이 적용 된다[[적용된다]]:
a. 변수 [[subpicIdx]] spIdx multiSubpicLayers 내의 임의의 계층에 대한 subpicIdxTarget[ i ] [[subpicIdxTarget[ [ NumLayersInOls[ targetOlsIdx ] - 1 ] ] ]] 의 값과 동일하게 설정된다.
b. 존재할 때, 모든 참조된 VPS NAL 유닛들 내의 profile_tier_level( ) 신택스 구조들의 리스트에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때, 모든 참조된 SPS NAL 유닛들 내의 profile_tier_level( ) 신택스 구조에서, vps_ols_ptl_idx[ targetOlsIdx ] 번째 엔트리에서의 general_level_idc 및 0 내지 tIdTarget - 1(경계 포함)의 범위에 있는 k에 대한 sublayer_level_idc[ k ]의 spIdx 번째 서브픽처 시퀀스 [[subpicIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처들로 구성된 서브픽처 세트]] 에 대해 수학식 D.10에서 도출되는 SubpicLevelIdc[ spIdx ][ tIdTarget ] 및 SubpicLevelIdc[ spIdx ][ k ]와, 제각기, 동일하도록 재작성한다.
c. 0 내지 tIdTarget(경계 포함)의 범위에 있는 k에 대해, spLvIdx가 SubpicLevelIdx[ spIdx ][ k ]와 동일하게 설정되는 것으로 하고, 여기서 SubpicLevelIdx[ spIdx ][ k ]는 spIdx 번째 서브픽처 시퀀스에 대해 수학식 D.10에 의해 도출된다. VCL HRD 파라미터들 또는 NAL HRD 파라미터들이 존재할 때, 0 내지 tIdTarget(경계 포함)의 범위에 있는 k에 대해, 존재할 때, 모든 참조된 VPS NAL 유닛들 내의 vps_ols_hrd_idx[ MultiLayerOlsIdx[ targetOlsIdx ] ] 번째 ols_hrd_parameters( ) 신택스 구조에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때 , [[ i 번째 계층에 의해 참조되는]] 모든 참조된 SPS NAL 유닛들 내의 ols_hrd_parameters( ) 신택스 구조들에서, j 번째 CPB의 cpb_size_value_minus1[  k [[tIdTarget]]  ][ j ] 및 bit_rate_value_minus1[  k [[tIdTarget]]  ][ j ]의 각자의 값들을, 수학식 D.6 및 수학식 D.7에 의해, 제각기, 도출되는 SubpicCpbSizeVcl[  spLvIdx [[SubpicLevelIdx]]  ][  spIdx[ [subpicIdx]]  ] [ k ], 및 SubpicCpbSizeNal[  spLvIdx [[SubpicLevelIdx]]  ][  spIdx [[subpicIdx]]  ] [ k ] , 수학식 D.8 및 수학식 D.9에 의해, 제각기, 도출되는 SubpicBitrateVcl[  spLvIdx [[SubpicLevelIdx]]  ][  spIdx [[subpicIdx]]  ] [ k ] 및 SubpicBitrateNal[  spLvIdx [[SubpicLevelIdx]]  ][  spIdx [[subpicIdx]]  ] [ k ] 에 대응하도록, 재작성하며, 여기서 [[ SubpicLevelIdx는 subpicIdx와 동일한 서브픽처 인덱스를 갖는 서브픽처에 대해 수학식 D.10에 의해 도출되고,]] j는 0 내지 hrd_cpb_cnt_minus1(경계 포함)의 범위에 있으며, i는 0 내지 NumLayersInOls[ targetOlsIdx ] - 1(경계 포함)의 범위에 있다.
d. multiSubpicLayers 내의 각각의 계층 [[ 0 내지 NumLayersInOls[ targetOlsIdx ] - 1의 범위에 있는 i에 대한 i 번째 계층]] 에 대해, 해당 계층에서의 픽처들에 의해 참조되는 SPS들 및 PPS들을 재작성하기 위해 다음과 같은 순서의 단계들이 적용된다 [[ 적용된다]] :
i. 변수들 subpicWidthInLumaSamples 및 subpicHeightInLumaSamples는 다음과 같이 도출된다:
Figure pct00005
ii. 모든 참조된 SPS NAL 유닛들에서의 sps_pic_width_max_in_luma_samples 및 sps_pic_height_max_in_luma_samples의 값들과 모든 참조된 PPS NAL 유닛들에서의 pps_pic_width_in_luma_samples 및 pps_pic_height_in_luma_samples의 값들을, 제각기, subpicWidthInLumaSamples 및 subpicHeightInLumaSamples와 동일하도록 재작성한다.
iii. 모든 참조된 SPS NAL 유닛들에서의 sps_num_subpics_minus1의 값 및 모든 참조된 PPS NAL 유닛들에서의 pps_num_subpics_minus1의 값을 0으로 재작성한다.
iv. 존재할 때, 모든 참조된 SPS NAL 유닛들에서의 신택스 요소들 sps_subpic_ctu_top_left_x[  spIdx[[ subpicIdx]]  ] 및 sps_subpic_ctu_top_left_y[  spIdx[[ subpicIdx]] ]를 0으로 재작성한다.
v. spIdx[[ subpicIdx]]와 동일하지 않은 각각의 j에 대해 모든 참조된 SPS NAL 유닛들에서의 신택스 요소들 sps_subpic_ctu_top_left_x[ j ], sps_subpic_ctu_top_left_y[ j ], sps_subpic_width_minus1[ j ], sps_subpic_height_minus1[ j ], sps_subpic_treated_as_pic_flag[ j ], sps_loop_filter_across_subpic_enabled_flag[ j ], 및 sps_subpic_id[ j ]를 제거한다.
vi. spIdx[[ subpicIdx]]와 동일한 서브픽처 인덱스를 갖는 서브픽처와 연관되지 않은 모든 타일 행들, 타일 열들, 및 슬라이스들을 제거하기 위해 타일들 및 슬라이스들의 시그널링을 위한 모든 참조된 PPS에서의 신택스 요소들을 재작성한다.
vii. 변수들 subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset 및 subpicConfWinBottomOffset은 다음과 같이 도출된다:
Figure pct00006
이상의 수학식들에서의 sps_subpic_ctu_top_left_x[ spIdx ], sps_subpic_width_minus1[ spIdx ], sps_subpic_ctu_top_left_y[ spIdx ], sps_subpic_height_minus1[ spIdx ], sps_pic_width_max_in_luma_samples, sps_pic_height_max_in_luma_samples, sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 및 sps_conf_win_bottom_offset은 재작성되기 전의 원래 SPS들로부터의 것이다.
비고 3 - 입력 비트스트림과 출력 비트스트림 양쪽 모두에서 multiSubpicLayers 내의 계층들에서의 픽처들에 대해, sps_pic_width_max_in_luma_samples 및 sps_pic_height_max_in_luma_samples의 값들은, 제각기, pps_pic_width_in_luma_samples 및 pps_pic_height_in_luma_samples와 동일하다. 따라서 위의 수학식들에서, sps_pic_width_max_in_luma_samples 및 sps_pic_height_max_in_luma_samples는, 제각기, pps_pic_width_in_luma_samples 및 pps_pic_height_in_luma_samples로 대체될 수 있다.
viii. 모든 참조된 SPS NAL 유닛들에서의 sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, 및 sps_conf_win_bottom_offset의 값들 및 모든 참조된 PPS NAL 유닛들에서의 pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, 및 pps_conf_win_bottom_offset의 값들을, 제각기, subpicConfWinLeftOffset, subpicConfWinRightOffset, subpicConfWinTopOffset, 및 subpicConfWinBottomOffset과 동일하도록 재작성한다.
ix. 변수들 subpicScalWinLeftOffset, subpicScalWinRightOffset, subpicScalWinTopOffset 및 subpicScalWinBotOffset은 다음과 같이 도출된다:
Figure pct00007
이상의 수학식들에서의 sps_subpic_ctu_top_left_x[ spIdx ], sps_subpic_width_minus1[ spIdx ], sps_subpic_ctu_top_left_y[ spIdx ], sps_subpic_height_minus1[ spIdx ], sps_pic_width_max_in_luma_samples, 및 sps_pic_height_max_in_luma_samples는 재작성되기 전의 원래 SPS들로부터의 것이며, 이상에서의 pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, 및 pps_scaling_win_bottom_offset은 재작성되기 전의 원래 PPS들로부터의 것이다.
x. 모든 참조된 PPS NAL 유닛들에서의 pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, 및 pps_scaling_win_bottom_offset의 값들을, 제각기, subpicScalWinLeftOffset, subpicScalWinRightOffset, subpicScalWinTopOffset, 및 subpicScalWinBotOffset과 동일하도록 재작성한다.
[[- i 번째 계층의 nuh_layer_id와 동일한 nuh_layer_id를 갖고 SubpicIdVal[ subpicIdx ]와 동일하지 않은 sh_subpic_id를 갖는 모든 VCL NAL 유닛들을 outBitstream으로부터 제거한다.]]
e. sli_cbr_constraint_flag가 1과 동일한 [[때 ]] 경우 , [[FD_NUT와 동일한 nal_unit_type을 갖는 모든 NAL 유닛들 및 subpicIdTarget[ ] 내의 서브픽처의 VCL NAL 유닛들과 연관되지 않은 필러 페이로드 SEI 메시지들을 제거하고]] [[0 내지 hrd_cpb_cnt_minus1의 범위에 있는 j에 대해]], 존재할 때, 모든 참조된 VPS NAL 유닛들에서, 그리고 NumLayersInOls[ targetOLsIdx ]가 0과 동일할 때, 모든 참조된 SPS NAL 유닛들에서 vps_ols_hrd_idx[ MultiLayerOlsIdx[ targetOlsIdx ] ] 번째 ols_hrd_parameters( ) 신택스 구조에서의 j 번째 CPB의 cbr_flag[ tIdTarget ][ j ]를 1과 동일하게 설정한다. 그렇지 않은 경우
Figure pct00008
(sli_cbr_constraint_flag가 0과 동일한 경우), [[FD_NUT와 동일한 nal_unit_type을 갖는 모든 NAL 유닛들 및 필러 페이로드 SEI 메시지들을 제거하고]] cbr_flag[ tIdTarget ][ j ]를 0과 동일하게 설정한다. 양쪽 경우들에서, j는 0 내지 hrd_cpb_cnt_minus1(경계 포함)의 범위에 있다.
6. outBitstream이, outBitstream에서와 정확히 동일한 계층 세트를 가지는 OLS들(sn_ols_flag가 1과 동일할 때) 또는 계층들(sn_ols_flag가 0과 동일할 때)에 적용 가능하고 outBitstream에서와 동일한 서브픽처 세트를 가지는 서브픽처들에 적용 가능한, 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛 seiNalUnitA를 포함할 때, 새로운 SEI NAL 유닛 seiNalUnitB를 생성하고, seiNalUnitA를 포함하는 PU에 seiNalUnitB를 seiNalUnitA 직후에 포함시키며, 스케일러블 네스팅 SEI 메시지로부터 스케일러블 네스팅된 SEI 메시지들을 추출하고, 스케일러블 네스팅된 SEI 메시지들을 seiNalUnitB에 (비-스케일러블 네스팅된 SEI 메시지들로서) 직접 포함시키며, seiNalUnitA를 outBitstream으로부터 제거한다. [[outBitstream이 outBitstream에 적용 가능한 1과 동일한 sn_ols_flag 및 1과 동일한 sn_subpic_flag를 갖는 스케일러블 네스팅 SEI 메시지를 포함하는 SEI NAL 유닛들을 포함할 때, 스케일러블 네스팅 SEI 메시지로부터 1(PT), 130(DUI), 또는 132(디코딩된 픽처 해시)와 동일한 payloadType을 갖는 적절한 비-스케일러블 네스팅된 SEI 메시지를 추출하고, 추출된 SEI 메시지들을 outBitstream에 배치한다.]]
도 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 내지 항목 8)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
1. 비디오 프로세싱 방법(예를 들면, 도 7에 묘사된 방법(700))으로서, 하나 이상의 서브픽처를 포함하는 비디오와 비디오의 코딩된 표현 사이의 변환을 수행하는 단계(702)를 포함하며, 코딩된 표현은 하나 이상의 네트워크 추상화 계층(NAL) 유닛들로 편성(organize)되고, 변환은 서브픽처의 서브비트스트림이 구성되거나 추출되는 서브픽처 서브비트스트림 추출 프로세스를 지정하는 규칙에 따르는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 1)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
2. 해결책 1에 있어서, 규칙은 출력 비트스트림에 적용 가능하지 않은 스케일러블 네스팅된 SEI 메시지를 포함하는 추가 향상 정보(SEI) NAL 유닛이 출력 비트스트림으로부터 제거된다는 것을 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 2)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
3. 해결책 1 및 해결책 2 중 어느 한 해결책에 있어서, 규칙은 서브픽처 시퀀스를 식별해 주기 위한 서브픽처 인덱스가 픽처당 다수의 서브픽처들을 포함하는 비디오 계층에서의 추출될 서브픽처들의 서브픽처 인덱스에 대응한다는 것을 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 3)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
4. 해결책 1 내지 해결책 3 중 어느 한 해결책에 있어서, 규칙은, 출력 계층 세트 내의 계층 수가 하나인 경우에, 일반 레벨을 나타내는 제1 신택스 요소 및 계층 레벨을 나타내는 제2 신택스 요소를 다른 값으로 재작성하도록 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 4)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
5. 해결책 1 내지 해결책 4 중 어느 한 해결책에 있어서, 규칙은, 출력 계층 세트 내의 계층 수가 하나인 경우에, 코딩된 픽처 버퍼의 크기를 나타내는 제1 신택스 요소 및 비트레이트를 나타내는 제2 신택스 요소를 다른 값(예를 들면, 본 명세서에서 설명되는 적절한 값)으로 재작성하도록 지정하는, 방법.
이하의 해결책들은 이전 섹션(예를 들면, 항목 5 내지 항목 8)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
6. 해결책 1 내지 해결책 5 중 어느 한 해결책에 있어서, 규칙은 참조된 비디오 파라미터 세트 또는 시퀀스 파라미터 세트에서의 코딩된 비트레이트를 나타내는 신택스 필드의 값을 다른 값(예를 들면, 본 명세서에서 설명되는 적절한 값)으로 재작성하도록 지정하는, 방법.
7. 해결책 1 내지 해결책 6 중 어느 한 해결책에 있어서, 변환은 비디오를 코딩된 표현으로 인코딩하는 것을 포함하는, 방법.
8. 해결책 1 내지 해결책 6 중 어느 한 해결책에 있어서, 변환은 코딩된 표현을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함하는, 방법.
9. 비디오 디코딩 장치로서, 해결책 1 내지 해결책 8 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
10. 비디오 인코딩 장치로서, 해결책 1 내지 해결책 8 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
11. 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책 1 내지 해결책 8 중 어느 한 해결책에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
12. 본 문서에서 설명된 방법, 장치 또는 시스템.
본 명세서에 설명된 해결책들에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성하는 것에 의해 포맷 규칙을 준수할 수 있다. 본 명세서에 설명된 해결책들에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 요소들의 존재 및 부재에 대한 지식으로 코딩된 표현에서의 신택스 요소들을 파싱하기 위해 포맷 규칙을 사용할 수 있다.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내에서 동일 위치에 있거나 상이한 위치들에 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오차 잔차 값들로 그리고 또한 비트스트림 내의 헤더들 및 다른 필드들 내의 비트들을 사용하여 인코딩될 수 있다. 게다가, 변환 동안, 디코더는, 위의 해결책들에 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 존재하지 않을 수 있다는 것에 대한 지식을 사용하여 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 하는지 여부를 결정할 수 있고, 그에 따라 코딩된 표현에 신택스 필드들을 포함시키거나 그로부터 제외시키는 것에 의해 코딩된 표현을 생성할 수 있다.
일부 바람직한 실시예들에서, 제1 해결책 세트는 섹션 5에서의 항목 1 및 항목 2에 추가로 설명된 바와 같이 구현될 수 있다.
1. 비디오 데이터를 프로세싱하는 방법(예를 들면, 도 13a에 묘사된 방법(1300))으로서, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계(1302)를 포함하며, 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 다수의 계층들을 포함하고; 규칙은, 출력 비트스트림이 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안, 출력 비트스트림에 적용 가능하지 않은 스케일러블 네스팅된 SEI 메시지를 포함하는 추가 향상 정보 네트워크 추상화 계층(SEI NAL) 유닛이 출력 비트스트림에서 생략된다는 것을 지정하는, 방법.
2. 해결책 1에 있어서, 출력 비트스트림은 하나 이상의 대상 서브픽처 인덱스에 의해 식별되는 서브픽처들을 포함하는 하나 이상의 출력 계층을 포함하고, 스케일러블 네스팅된 SEI가 미리 결정된 값을 갖는 플래그 및 출력 비트스트림에서의 제2 하나 이상의 서브픽처 인덱스와 매칭하지 않는 SEI NAL 유닛의 제1 하나 이상의 서브픽처 인덱스를 포함하는 것에 응답하여 SEI NAL 유닛은 출력 비트스트림에 적용 가능하지 않은 것으로 간주되는, 방법.
3. 해결책 2에 있어서, 미리 결정된 값을 갖는 플래그는 SEI NAL 유닛이 특정 계층의 특정 서브픽처에 적용 가능하다는 것을 나타내는, 방법.
4. 해결책 2 또는 해결책 3에 있어서, 플래그는 sn_subpic_flag인, 방법.
5. 해결책 2 내지 해결책 4 중 어느 한 해결책에 있어서, 픽처당 다수의 서브픽처들을 갖는 출력 비트스트림에서의 계층들에 대해, 제1 하나 이상의 서브픽처 인덱스는 sn_subpic_idx[j]이고, 여기서 j는 0 내지 sn_num_subpics_minus1의 값을 갖는 정수이며, 제2 하나 이상의 서브픽처 인덱스는 subpicIdxTarget[i]이고, 여기서 i는 정수인, 방법.
6. 비디오 데이터를 프로세싱하는 방법(예를 들면, 도 13b에 묘사된 방법(1310))으로서, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 다수의 계층들을 포함하고; 규칙은 비트스트림에 대한 서브픽처 서브비트스트림 추출 프로세스에 의해 추출되는 서브픽처 시퀀스를 식별해 주는 제1 서브픽처 인덱스가 픽처당 다수의 서브픽처들을 갖는 비트스트림의 계층들의 제2 서브픽처 인덱스에 기초한다는 것을 지정하는, 방법.
7. 해결책 6에 있어서, 규칙은 제1 서브픽처 인덱스가 서브픽처 레벨 정보 추가 향상 정보(SLI SEI) 메시지가 비트스트림에 포함되는 것에 응답한 것임을 지정하는, 방법.
일부 바람직한 실시예들에서, 제2 해결책 세트는 섹션 5에서의 항목 3, 항목 4 및 항목 5에 추가로 설명된 바와 같이 구현될 수 있다.
1. 비디오 데이터를 프로세싱하는 방법(예를 들면, 도 13c에 묘사된 방법(1320))으로서, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계(1322)를 포함하며, 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 서브계층을 포함하는 하나 이상의 계층을 포함하고, 규칙은 출력 대상 서브비트스트림이 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안 하나 이상의 신택스 구조에 대해 선택적으로 수행되는 재작성 동작을 지정하며, 하나 이상의 신택스 요소는 출력 대상 서브비트스트림에 대한 정보를 포함하는, 방법.
2. 해결책 1에 있어서, 하나 이상의 신택스 구조는: (a) 출력 대상 서브비트스트림이 준수하는 코딩 레벨을 나타내는 제1 신택스 구조, 및 (b) 0 내지 tIdTarget-1의 인덱스 값들을 갖는 출력 대상 서브비트스트림 내의 서브계층 시퀀스들이 준수하는 코딩 레벨들을 나타내는 제2 신택스 구조 - tIdTarget은 출력 대상 서브비트스트림 내의 서브계층들의 최고 시간 계층 식별자를 나타내는 정수임 - 를 포함하는, 방법.
3. 해결책 1에 있어서, 하나 이상의 신택스 요소는: (a) 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스의 코딩된 픽처 버퍼 크기를 나타내는 제1 신택스 구조, 및 (b) 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스의 비트레이트 값을 나타내는 제2 신택스 구조를 포함하는, 방법.
4. 해결책 1에 있어서, 하나 이상의 신택스 요소는: (a) 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스가 일정한 비트레이트를 갖는 것으로 처리되는지 여부를 나타내는 제1 신택스 구조를 포함하는, 방법.
5. 해결책 1 또는 해결책 2에 있어서, 제1 신택스 구조 및 제2 신택스 구조는 출력 대상 서브비트스트림에 의해 참조되는 비디오 파라미터 세트에 포함되는, 방법.
6. 해결책 1 또는 해결책 2에 있어서, 출력 대상 서브비트스트림이 단일 계층을 포함하는 경우에, 제1 신택스 구조 및 제2 신택스 구조는 출력 대상 서브비트스트림에 의해 참조되는 시퀀스 파라미터 세트에 포함되는, 방법.
일부 바람직한 실시예들에서, 제3 해결책 세트는 섹션 5에서의 항목 6, 항목 7 및 항목 8에 추가로 설명된 바와 같이 구현될 수 있다.
1. 비디오 데이터를 프로세싱하는 방법(예를 들면, 도 13d에 묘사된 방법(1330))으로서, 비디오와 비디오의 비트스트림 사이의 변환을 수행하는 단계(1332)를 포함하며, 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 계층을 포함하고; 규칙은, 조건에 응답하여, 서브픽처 서브비트스트림 추출 프로세스 동안 추출되는 대상 출력 서브픽처 서브비트스트림의 제1 추가 향상 정보 네트워크 추상화 계층(SEI NAL) 유닛의 선택적 프로세싱을 지정하는, 방법.
2. 해결책 1에 있어서, 프로세싱은 제1 SEI NAL 유닛을 생성하는 것을 포함하는, 방법.
3. 해결책 1 및 해결책 2 중 어느 한 해결책에 있어서, 프로세싱은 제2 SEI NAL 유닛을 포함하는 픽처 유닛에 제1 SEI NAL 유닛을 추가하는 것을 포함하는, 방법.
4. 해결책 1 내지 해결책 3 중 어느 한 해결책에 있어서, 프로세싱은 제2 SEI NAL 유닛을 포함하는 픽처 유닛에 제1 SEI NAL 유닛을 제2 SEI NAL 유닛 직후에 추가하는 것을 포함하는, 방법.
5. 해결책 1 내지 해결책 4 중 어느 한 해결책에 있어서, 프로세싱은 제2 SEI NAL 유닛 내의 스케일러블 네스팅 SEI 메시지로부터 스케일러블 네스팅된 SEI 메시지를 추출하는 것 및 추출된 스케일러블 네스팅된 SEI 메시지를 제1 SEI NAL 유닛에 비-스케일러블 네스팅된 SEI 메시지로서 포함시키는 것을 포함하는, 방법.
6. 해결책 1 내지 해결책 5 중 어느 한 해결책에 있어서, 프로세싱은 대상 출력 서브픽처 서브비트스트림으로부터 제2 SEI NAL 유닛을 제거하는 것을 포함하는, 방법.
7. 해결책 1 내지 해결책 6 중 어느 한 해결책에 있어서, 조건은: (a) 대상 출력 서브픽처 서브비트스트림이 스케일러블 네스팅 SEI 메시지를 포함하는 제2 SEI NAL 유닛을 포함하는 것, (b) 스케일러블 네스팅 SEI 메시지 내의 신택스 필드가 스케일러블 네스팅 SEI 메시지가 대상 출력 서브픽처 서브비트스트림에서와 동일한 계층 세트에 적용 가능하다는 것을 나타내는 값으로 설정되는 것, 및 (c) 스케일러블 네스팅 SEI 메시지가 대상 출력 서브픽처 서브비트스트림에서와 동일한 서브픽처 세트에 적용 가능한 것을 포함하는, 방법.
8. 해결책 1에 있어서, 조건은: (a) 대상 출력 서브픽처 서브비트스트림에서의 계층들의 리스트가 비트스트림에서의 모든 계층들을 포함하지는 않는 것, (b) 대상 출력 서브픽처 서브비트스트림이 스케일러블 네스팅 SEI 메시지들을 포함하는 것을 포함하며, 프로세싱은 대상 출력 서브픽처 서브비트스트림 내의 제1 SEI NAL 유닛을 변경되지 않은 채로 유지하는 것을 포함하는, 방법.
9. 해결책 1 내지 해결책 8 중 어느 한 해결책에 있어서, 제1 SEI NAL 유닛은 seiNalUnitB인, 방법.
10. 해결책 1 내지 해결책 9 중 어느 한 해결책에 있어서, 제2 SEI NAL 유닛은 seiNalUnitA인, 방법.
위에 열거된 제1, 제2 및 제3 해결책 세트를 참조하면, 일부 실시예들에서, 비디오는 360도 비디오를 포함한다. 일부 실시예들에서, 변환은 비디오를 비트스트림으로 인코딩하는 것을 포함한다. 일부 실시예들에서, 변환은 비트스트림을 디코딩하여 비디오의 픽셀 값들을 생성하는 것을 포함한다.
일부 실시예들은 제1, 제2 또는 제3 해결책 리스트에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치를 포함할 수 있다.
일부 실시예들은 해결책 1 내지 해결책 8 중 하나 이상의 해결책에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치를 포함할 수 있다.
일부 실시예들에서, 비디오를 표현하는 비트스트림을 컴퓨터 판독 가능 기록 매체에 저장하는 방법이 구현될 수 있다. 이 방법은 위에 열거된 해결책들 중 어느 하나 이상의 해결책에 기재된 방법에 따라 비디오로부터 비트스트림을 생성하는 단계 및 비트스트림을 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함한다.
일부 실시예들은 위에 열거된 해결책들 중 어느 하나 이상의 해결책에 따라 생성되는 비트스트림을 저장하는 컴퓨터 판독 가능 매체를 포함할 수 있다.
일부 실시예들은 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품을 포함할 수 있으며, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 위에 열거된 해결책들 중 어느 한 해결책에 기재된 방법을 구현하게 한다.
본 문서에서 설명되는 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에서 개시되는 구조들 및 이들의 구조적 등가물들을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의해 실행하기 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함한, 데이터를 프로세싱하기 위한 모든 장치들, 디바이스들, 및 머신들을 포괄한다. 장치들은, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 인공적으로 생성된 신호, 예를 들면, 머신에 의해 생성된(machine-generated) 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일(coordinated file)들(예를 들면, 하나 이상의 모듈, 서브 프로그램(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 (15)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    비디오와 상기 비디오의 비트스트림 사이의 변환을 수행하는 단계
    를 포함하며,
    상기 비트스트림은 규칙에 따라 하나 이상의 서브픽처를 포함하는 하나 이상의 픽처를 포함하는 하나 이상의 서브계층을 포함하는 하나 이상의 계층을 포함하고,
    상기 규칙은 출력 대상 서브비트스트림이 상기 비트스트림으로부터 추출되는 서브픽처 서브비트스트림 추출 프로세스 동안 하나 이상의 신택스 구조에 대해 선택적으로 수행되는 재작성 동작을 지정하며,
    상기 하나 이상의 신택스 요소는 상기 출력 대상 서브비트스트림에 대한 정보를 포함하는, 방법.
  2. 제1항에 있어서, 상기 하나 이상의 신택스 구조는: (a) 상기 출력 대상 서브비트스트림이 준수하는 코딩 레벨을 나타내는 제1 신택스 구조, 및 (b) 0 내지 tIdTarget-1의 인덱스 값들을 갖는 상기 출력 대상 서브비트스트림 내의 서브계층 시퀀스들이 준수하는 코딩 레벨들을 나타내는 제2 신택스 구조 - 상기 tIdTarget은 상기 출력 대상 서브비트스트림 내의 서브계층들의 최고 시간 계층 식별자를 나타내는 정수임 - 를 포함하는, 방법.
  3. 제1항에 있어서, 상기 하나 이상의 신택스 요소는: (a) 상기 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스의 코딩된 픽처 버퍼 크기를 나타내는 제1 신택스 구조, 및 (b) 상기 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스의 비트레이트 값을 나타내는 제2 신택스 구조를 포함하는, 방법.
  4. 제1항에 있어서, 상기 하나 이상의 신택스 요소는: (a) 상기 출력 대상 서브비트스트림 내의 각각의 서브계층 시퀀스가 일정한 비트레이트를 갖는 것으로 처리되는지 여부를 나타내는 제1 신택스 구조를 포함하는, 방법.
  5. 제1항 또는 제2항에 있어서, 상기 제1 신택스 구조 및 상기 제2 신택스 구조는 상기 출력 대상 서브비트스트림에 의해 참조되는 비디오 파라미터 세트에 포함되는, 방법.
  6. 제1항 또는 제2항에 있어서, 상기 출력 대상 서브비트스트림이 단일 계층을 포함하는 경우에, 상기 제1 신택스 구조 및 상기 제2 신택스 구조는 상기 출력 대상 서브비트스트림에 의해 참조되는 시퀀스 파라미터 세트에 포함되는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 비디오는 360도 비디오를 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 변환은 상기 비디오를 상기 비트스트림으로 인코딩하는 것을 포함하는, 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 변환은 상기 비트스트림을 디코딩하여 상기 비디오의 픽셀 값들을 생성하는 것을 포함하는, 방법.
  10. 비디오 디코딩 장치로서, 제1항 내지 제9항 중 하나 이상의 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 디코딩 장치.
  11. 비디오 인코딩 장치로서, 제1항 내지 제9항 중 하나 이상의 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는, 비디오 인코딩 장치.
  12. 비디오를 표현하는 비트스트림을 컴퓨터 판독 가능 기록 매체에 저장하는 방법으로서,
    제1항 내지 제9항 중 어느 하나 이상의 항에 기재된 방법에 따라 상기 비디오로부터 상기 비트스트림을 생성하는 단계; 및
    상기 비트스트림을 상기 컴퓨터 판독 가능 기록 매체에 저장하는 단계
    를 포함하는, 방법.
  13. 컴퓨터 판독 가능 매체로서, 제1항 내지 제9항 중 어느 하나 이상의 항에 따라 생성되는 비트스트림을 저장하는, 컴퓨터 판독 가능 매체.
  14. 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품으로서, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항에 기재된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
  15. 본 문서에서 설명된 방법, 장치 또는 시스템.
KR1020227043180A 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출에 대한 비디오 파라미터 세트 제약들 KR20230020999A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063036908P 2020-06-09 2020-06-09
US63/036,908 2020-06-09
PCT/US2021/036363 WO2021252468A1 (en) 2020-06-09 2021-06-08 Video parameter set constraints for subpicture sub-bitstream extraction

Publications (1)

Publication Number Publication Date
KR20230020999A true KR20230020999A (ko) 2023-02-13

Family

ID=78846457

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227043163A KR20230019848A (ko) 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출 프로세스 향상들
KR1020227043180A KR20230020999A (ko) 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출에 대한 비디오 파라미터 세트 제약들
KR1020227043286A KR20230020428A (ko) 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출 프로세스에서 추가 향상 정보의 처리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227043163A KR20230019848A (ko) 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출 프로세스 향상들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227043286A KR20230020428A (ko) 2020-06-09 2021-06-08 서브픽처 서브비트스트림 추출 프로세스에서 추가 향상 정보의 처리

Country Status (7)

Country Link
US (4) US11997294B2 (ko)
EP (3) EP4150912A4 (ko)
JP (3) JP2023529447A (ko)
KR (3) KR20230019848A (ko)
CN (3) CN115918077A (ko)
BR (1) BR112022025044A2 (ko)
WO (3) WO2021252465A1 (ko)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150015545A1 (en) * 2009-05-25 2015-01-15 Micro-Nits Co., Ltd. Pointing input system having sheet-like light beam layer
US9124895B2 (en) * 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
EP2868103B1 (en) * 2012-06-29 2016-12-07 GE Video Compression, LLC Video data stream concept
RU2612577C2 (ru) 2012-07-02 2017-03-09 Нокиа Текнолоджиз Ой Способ и устройство для кодирования видеоинформации
US9479774B2 (en) * 2012-09-24 2016-10-25 Qualcomm Incorporated Buffering period and recovery point supplemental enhancement information messages
US9565452B2 (en) * 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
US10116931B2 (en) * 2013-01-03 2018-10-30 Texas Instruments Incorporated Hierarchical inter-layer prediction in multi-loop scalable video coding
US9521393B2 (en) * 2013-01-07 2016-12-13 Qualcomm Incorporated Non-nested SEI messages in video coding
IL287526B (en) * 2013-04-07 2022-07-01 Dolby Int Ab Signal change in systems layer output
US9794579B2 (en) * 2013-07-15 2017-10-17 Qualcomm Incorporated Decoded picture buffer operations for video coding
JP6212212B2 (ja) * 2013-10-11 2017-10-11 ヴィド スケール インコーポレイテッド Hevc拡張のための高レベル構文
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
EP3090550A1 (en) * 2014-01-02 2016-11-09 VID SCALE, Inc. Sub-bitstream extraction process for hevc extensions
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US9716900B2 (en) * 2014-06-20 2017-07-25 Qualcomm Incorporated Extensible design of nesting supplemental enhancement information (SEI) messages
KR102433227B1 (ko) * 2016-02-09 2022-08-18 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 감소성 또는 효율적인 랜덤 액세스를 허용하는 픽처/비디오 데이터 스트림들에 대한 개념
US10687055B2 (en) * 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit
EP3603090A4 (en) * 2017-03-27 2020-08-19 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR CODING AND DECODING OF VIDEO
EP3926954A4 (en) * 2019-02-15 2022-04-06 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD
US11356681B2 (en) * 2019-12-27 2022-06-07 Tencent America LLC Coded video sub-bitstream extraction
WO2021225338A1 (ko) * 2020-05-04 2021-11-11 엘지전자 주식회사 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
CN115804090A (zh) 2023-03-14
EP4150904A4 (en) 2023-11-15
US20230095312A1 (en) 2023-03-30
EP4150912A4 (en) 2023-11-08
US20230113601A1 (en) 2023-04-13
JP7511680B2 (ja) 2024-07-05
EP4150903A4 (en) 2023-11-08
KR20230020428A (ko) 2023-02-10
EP4150903A1 (en) 2023-03-22
JP7511681B2 (ja) 2024-07-05
US11997294B2 (en) 2024-05-28
US20240098281A1 (en) 2024-03-21
WO2021252465A1 (en) 2021-12-16
JP2023529453A (ja) 2023-07-10
EP4150904A1 (en) 2023-03-22
BR112022025044A2 (pt) 2022-12-27
CN115918076A (zh) 2023-04-04
EP4150912A1 (en) 2023-03-22
KR20230019848A (ko) 2023-02-09
US11924446B2 (en) 2024-03-05
WO2021252468A1 (en) 2021-12-16
JP2023529447A (ja) 2023-07-10
CN115918077A (zh) 2023-04-04
US20230108287A1 (en) 2023-04-06
JP2023529448A (ja) 2023-07-10
WO2021252471A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US20240073430A1 (en) Subpicture Sub-Bitstream Extraction Improvements
US11825124B2 (en) Scaling window in video coding
US20240107046A1 (en) Sublayer signaling in a video bitstream
US11997294B2 (en) Subpicture sub-bitstream extraction process enhancements
US11838529B2 (en) Scalable nesting of supplemental enhancement information messages in video coding

Legal Events

Date Code Title Description
A201 Request for examination