KR20220037387A - 코딩된 비디오에서의 디코더 구성 레코드 - Google Patents

코딩된 비디오에서의 디코더 구성 레코드 Download PDF

Info

Publication number
KR20220037387A
KR20220037387A KR1020210124542A KR20210124542A KR20220037387A KR 20220037387 A KR20220037387 A KR 20220037387A KR 1020210124542 A KR1020210124542 A KR 1020210124542A KR 20210124542 A KR20210124542 A KR 20210124542A KR 20220037387 A KR20220037387 A KR 20220037387A
Authority
KR
South Korea
Prior art keywords
visual media
media file
video
syntax element
format
Prior art date
Application number
KR1020210124542A
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 KR20220037387A publication Critical patent/KR20220037387A/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • 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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

하나 이상의 이미지를 저장하는 파일 포맷을 인코딩 또는 디코딩하기 위한 시스템들, 방법들 및 장치들이 설명된다. 하나의 예시적인 방법은 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 여기서 신택스 요소는 비트스트림과 연관된 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 갖는다.

Description

코딩된 비디오에서의 디코더 구성 레코드{DECODER CONFIGURATION RECORD IN CODED VIDEO}
관련 출원의 상호 참조
파리 협약에 따른 적용 가능한 특허법 및/또는 규칙에 따라, 본 출원은 2020년 9월 17일에 출원된 미국 가특허 출원 제63/079,892호에 대한 우선권 및 그 이익을 적시에 주장하기 위해 이루어졌다. 법에 따른 모든 목적들을 위해, 앞서 언급된 출원의 전체 개시는 본 출원의 개시의 일부로서 참고로 포함된다.
기술 분야
이 특허 문서는 파일 포맷의 디지털 오디오 비디오 미디어 정보의 생성, 저장 및 소비에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 많은 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
본 문서는 파일 포맷에 따른 비디오 또는 이미지의 코딩된 표현을 프로세싱하기 위해 비디오 인코더 및 디코더에 의해 사용될 수 있는 기술을 개시한다.
하나의 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 비트스트림은 하나 이상의 출력 계층 세트 및 하나 이상의 프로필 티어 레벨 신택스 구조를 포함하는 하나 이상의 파라미터 세트를 포함하고, 여기서 프로필 티어 레벨 신택스 구조들 중 적어도 하나는 일반 제약 정보 신택스 구조를 포함하며, 여기서 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에서의 구성 레코드에 포함된다는 것을 지정하고, 여기서 신택스 요소는 구성 레코드에 표시된 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 프로필, 티어 또는 레벨을 나타낸다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 여기서 신택스 요소는 비트스트림과 연관된 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 갖는다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 여기서 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 여기서 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소가 8 비트를 사용하여 서브픽처 공통 그룹 박스 또는 서브픽처 다중 그룹 박스 중 임의의 하나 또는 둘 모두에 코딩된다는 것을 지정한다.
다른 예시적인 양태에서, 비디오 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 비주얼 미디어 데이터와 비주얼 미디어 데이터의 비트스트림 표현을 저장하는 파일 사이의 변환을 수행하는 단계를 포함하며; 여기서 포맷 규칙은 프로필, 티어, 제약 또는 파일에서 식별되는 비트스트림 표현과 연관된 티어와 관련하여 파일에 포함된 정보에 대한 제약을 지정한다.
또 다른 예시적인 양태에서, 비디오 인코더 장치가 개시된다. 비디오 인코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양태에서, 비디오 디코더 장치가 개시된다. 비디오 디코더는 위에서 설명된 방법들을 구현하도록 구성된 프로세서를 포함한다.
또 다른 예시적인 양태에서, 코드가 저장되어 있는 컴퓨터 판독 가능 매체가 개시된다. 코드는 본 명세서에 설명된 방법들 중 하나를 프로세서 실행 가능 코드의 형태로 구체화한다.
또 다른 예시적인 양태에서, 비트스트림이 저장되어 있는 컴퓨터 판독 가능 매체가 개시된다. 비트스트림은 본 문서에 설명된 방법을 사용하여 생성되거나 프로세싱된다.
이들 및 다른 특징들이 본 문서 전체에 걸쳐 설명된다.
도 1은 예시적인 비디오 프로세싱 시스템의 블록 다이어그램이다.
도 2는 비디오 프로세싱 장치의 블록 다이어그램이다.
도 3은 예시적인 비디오 프로세싱 방법에 대한 플로차트이다.
도 4는 본 개시의 일부 실시예들에 따른 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 5는 본 개시의 일부 실시예들에 따른 인코더를 예시하는 블록 다이어그램이다.
도 6은 본 개시의 일부 실시예들에 따른 디코더를 예시하는 블록 다이어그램이다.
도 7은 인코더 블록 다이어그램의 예를 도시한다.
도 8 내지 도 10은 예시적인 비디오 프로세싱 방법들에 대한 플로차트들이다.
섹션 표제들은 본 문서에서 이해의 편의를 위해 사용되며 각각의 섹션에 개시된 기술들 및 실시예들의 적용 가능성을 해당 섹션으로만 제한하지 않는다. 게다가, H.266 전문용어는 일부 설명에서 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위해 사용되지 않는다. 이에 따라, 본 명세서에 설명된 기술들은 다른 비디오 코덱 프로토콜들 및 설계들에도 적용 가능하다. 본 문서에서, 텍스트에 대한 편집 변경 사항들은, VVC 사양 또는 ISOBMFF 파일 포맷 사양의 현재 초안과 관련하여, 이중 대괄호 사이에 있는 텍스트가 삭제된 텍스트임을 나타내는 열기 및 닫기 이중 대괄호(예를 들면, [[ ]]), 및 추가된 텍스트를 나타내는 굵은 기울임꼴 텍스트에 의해 나타내어져 있다.
1. 간략한 논의
이 문서는 비디오 파일 포맷에 관한 것이다. 구체적으로, 이는 ISOBMFF(ISO base media file format)에 기초한 VVC(Versatile Video Coding) 비디오 비트스트림들을 담고 있는 미디어 파일들에서의 디코더 구성 정보 및 서브픽처 엔티티 그룹들의 시그널링에 관련되어 있다. 이러한 착안들은 임의의 코덱, 예를 들면, VVC 표준에 의해 코딩된 비디오 비트스트림들에 대해 그리고 임의의 비디오 파일 포맷, 예를 들면, 개발 중인 VVC 비디오 파일 포맷에 대해 개별적으로 또는 다양한 조합으로 적용될 수 있다.
2. 약어
ACT adaptive colour transform(적응 컬러 변환)
ALF adaptive loop filter(적응 루프 필터)
AMVR adaptive motion vector resolution(적응 모션 벡터 분해능)
APS adaptation parameter set(적응 파라미터 세트)
AU access unit(액세스 유닛)
AUD access unit delimiter(액세스 유닛 구분자)
AVC advanced video coding(고급 비디오 코딩) (Rec. ITU-T H.264 | ISO/IEC 14496-10)
B bi-predictive(양방향 예측)
BCW bi-prediction with CU-level weights(CU 레벨 가중치들을 사용한 양방향 예측)
BDOF bi-directional optical flow(양방향 광학 흐름)
BDPCM block-based delta pulse code modulation(블록 기반 델타 펄스 코드 변조)
BP buffering period(버퍼링 기간)
CABAC context-based adaptive binary arithmetic coding(콘텍스트 기반 적응 이진 산술 코딩)
CB coding block(코딩 블록)
CBR constant bit rate(고정 비트 레이트)
CCALF cross-component adaptive loop filter(교차 성분 적응 루프 필터)
CPB coded picture buffer(코딩된 픽처 버퍼)
CRA clean random access(클린 랜덤 액세스)
CRC cyclic redundancy check(순환 중복 검사)
CTB coding tree block(코딩 트리 블록)
CTU coding tree unit(코딩 트리 유닛)
CU coding unit(코딩 유닛)
CVS coded video sequence(코딩된 비디오 시퀀스)
DPB decoded picture buffer(디코딩된 픽처 버퍼)
DCI decoding capability information(디코딩 능력 정보)
DRAP dependent random access point(종속 랜덤 액세스 포인트)
DU decoding unit(디코딩 유닛)
DUI decoding unit information(디코딩 유닛 정보)
EG exponential-Golomb(지수-골롬)
EGk k-th order exponential-Golomb(k차 지수-골롬)
EOB end of bitstream(비트스트림 끝)
EOS end of sequence(시퀀스 끝)
FD filler data(필러 데이터)
FIFO first-in, first-out(선입 선출)
FL fixed-length(고정 길이)
GBR green, blue, and red(녹색, 청색 및 적색)
GCI general constraints information(일반 제약 정보)
GDR gradual decoding refresh(점진적 디코딩 리프레시)
GPM geometric partitioning mode(기하학적 분할 모드)
HEVC high efficiency video coding(고효율 비디오 코딩) (Rec. ITU-T H.265 | ISO/IEC 23008-2)
HRD hypothetical reference decoder(가상 참조 디코더)
HSS hypothetical stream scheduler(가상 스트림 스케줄러)
I intra(인트라)
IBC intra block copy(인트라 블록 복사)
IDR instantaneous decoding refresh(순간 디코딩 리프레시)
ILRP inter-layer reference picture(계층 간 참조 픽처)
IRAP intra random access point(인트라 랜덤 액세스 포인트)
LFNST low frequency non-separable transform(저주파 비분리 변환)
LPS least probable symbol(최소 확률 심벌)
LSB least significant bit(최하위 비트)
LTRP long-term reference picture(장기 참조 픽처)
LMCS luma mapping with chroma scaling(크로마 스케일링을 사용한 루마 매핑)
MIP matrix-based intra prediction(행렬 기반 인트라 예측)
MPS most probable symbol(최대 확률 심벌)
MSB most significant bit(최상위 비트)
MTS multiple transform selection(다중 변환 선택)
MVP motion vector prediction(모션 벡터 예측)
NAL network abstraction layer(네트워크 추상화 계층)
OLS output layer set(출력 계층 세트)
OP operation point(동작 포인트)
OPI operating point information(동작 포인트 정보)
P predictive(예측)
PH picture header(픽처 헤더)
POC picture order count(픽처 순서 카운트)
PPS picture parameter set(픽처 파라미터 세트)
PROF prediction refinement with optical flow(광학 흐름을 사용한 예측 개선)
PT picture timing(픽처 타이밍)
PU picture unit(픽처 유닛)
QP quantization parameter(양자화 파라미터)
RADL random access decodable leading (picture)(랜덤 액세스 디코딩 가능 선두 (픽처))
RASL random access skipped leading (picture)(랜덤 액세스 스킵된 선두)(픽처)
RBSP raw byte sequence payload(원시 바이트 시퀀스 페이로드)
RGB red, green, and blue(적색, 녹색 및 청색)
RPL reference picture list(참조 픽처 목록)
SAO sample adaptive offset(샘플 적응 오프셋)
SAR sample aspect ratio(샘플 종횡비)
SEI supplemental enhancement information(추가 향상 정보)
SH slice header(슬라이스 헤더)
SLI subpicture level information(서브픽쳐 레벨 정보)
SODB string of data bits(데이터 비트 스트링)
SPS sequence parameter set(시퀀스 파라미터 세트)
STRP short-term reference picture(단기 참조 픽처)
STSA step-wise temporal sublayer access(단계별 시간 서브계층 액세스)
TR truncated rice(절삭된 라이스)
VBR variable bit rate(가변 비트 레이트)
VCL video coding layer(비디오 코딩 계층)
VPS video parameter set(비디오 파라미터 세트)
VSEI versatile supplemental enhancement information(다목적 추가 개선 정보) (Rec. ITU-T H.274 | ISO/IEC 23002-7)
VUI video usability information(비디오 사용성 정보)
VVC versatile video coding(다목적 비디오 코딩) (Rec. ITU-T H.266 | ISO/IEC 23090-3)
3. 비디오 코딩 소개
3.1. 비디오 코딩 표준들
비디오 코딩 표준은 주로 잘 알려진 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는 나중에 VVC(Versatile Video Coding) 프로젝트가 공식적으로 시작되었을 때 JVET(Joint Video Experts Team)로 이름이 변경되었다. VVC는 2020년 7월 1일에 종료된 19차 회의에서 JVET에 의해 확정된, HEVC에 비해 50% 비트레이트 감소를 목표로 하는, 새로운 코딩 표준이다.
VVC(Versatile Video Coding) 표준(ITU-T H.266 | ISO/IEC 23090-3) 및 관련 VSEI(Versatile Supplemental Enhancement Information) 표준(ITU-T H.274 | ISO/IEC 23002-7)은, 텔레비전 방송, 화상 회의 또는 저장 매체로부터의 재생과 같은 전통적인 사용과 또한 적응적 비트 레이트 스트리밍, 비디오 영역 추출, 다수의 코딩된 비디오 비트스트림으로부터의 콘텐츠 합성 및 병합, 멀티뷰 비디오, 확장 가능한 계층화된 코딩 및 뷰포트 적응적 360° 몰입형 미디어와 같은 더 새롭고 더 고급의 사용 사례들 둘 모두를 포함한, 최대한 넓은 범위의 응용 분야들에서 사용하도록 설계되었다.
3.2. 파일 포맷 표준들
미디어 스트리밍 응용들은 전형적으로 IP, TCP 및 HTTP 전송 방법을 기반으로 하며, 전형적으로 ISO 기본 미디어 파일 포맷(ISOBMFF)과 같은 파일 포맷에 의존한다. 하나의 그러한 스트리밍 시스템은 DASH(dynamic adaptive streaming over HTTP)이다. ISOBMFF 및 DASH와 함께 비디오 포맷을 사용하기 위해, ISOBMFF 트랙에 그리고 DASH 표현 및 세그먼트에 비디오 콘텐츠를 캡슐화하기 위해, AVC 파일 포맷 및 HEVC 파일 포맷과 같은, 비디오 포맷에 특정적인 파일 포맷 사양이 필요하다. 콘텐츠 선택을 위해, 예를 들면, 스트리밍 세션의 시작 시의 초기화와 스트리밍 세션 동안의 스트림 적응 둘 모두에 적절한 미디어 세그먼트의 선택을 위해, 비디오 비트스트림에 관한 중요한 정보, 예를 들면, 프로필, 티어, 레벨 및 많은 다른 정보가 파일 포맷 레벨 메타데이터 및/또는 DASH MPD(media presentation description)로서 노출될 필요가 있을 것이다.
유사하게, ISOBMFF와 함께 이미지 포맷을 사용하기 위해, AVC 이미지 파일 포맷 및 HEVC 이미지 파일 포맷과 같은, 이미지 포맷에 특정적인 파일 포맷 사양이 필요할 것이다.
ISOBMFF 기반의 VVC 비디오 콘텐츠의 저장을 위한 파일 포맷인 VVC 비디오 파일 포맷은 현재 MPEG에 의해 개발 중이다.
ISOBMFF 기반의, VVC를 사용하여 코딩된 이미지 콘텐츠의 저장을 위한 파일 포맷인 VVC 이미지 파일 포맷은 현재 MPEG에 의해 개발 중이다.
3.3. VVC 비디오 파일 포맷의 몇몇 세부 사항들
3.3.1. 디코더 구성 정보
3.3.1.1. VVC 디코더 구성 레코드
3.3.1.1.1. 정의
이 하위 조항은 ISO/IEC 23090-3 비디오 콘텐츠에 대한 디코더 구성 정보를 지정한다.
이 레코드는, 샘플 엔트리에 저장된 경우, 파라미터 세트들뿐만 아니라 그의 포함된 NAL 유닛들의 길이를 나타내기 위해 각각의 샘플에 사용되는 길이 필드의 크기를 포함한다. 이 레코드는 외부에서 프레임화된다(그의 크기는 레코드를 포함하는 구조에서 제공된다).
이 레코드는 버전 필드를 포함한다. 사양의 이 버전은 이 레코드의 버전 1을 정의한다. 레코드에 대한 호환되지 않는 변경들은 버전 번호의 변경으로 표시될 것이다. 독자는 버전 번호가 인식되지 않는 경우 이 레코드 또는 이 레코드가 적용되는 스트림들을 디코딩하려고 시도해서는 안 된다.
이 레코드에 대한 호환 가능한 확장들은 이를 확장시키며 구성 버전 코드를 변경하지 않을 것이다. 독자는 자신이 이해하는 데이터의 정의를 넘는 인식되지 않는 데이터를 무시할 준비가 되어 있어야 한다.
VvcPtlRecord는 트랙이 VVC 비트스트림을 기본적으로 또는 'subp' 트랙 참조들을 분석하는 것을 통해 포함하고 있을 때 디코더 구성 레코드에 존재할 것이다. ptl_present_flag가 트랙의 디코더 구성 레코드에서 0과 동일한 경우, 트랙은 'oref' 트랙 참조를 가져야 한다.
VvcPTLRecord, chroma_format_idc 및 bit_depth_minus8의 신택스 요소들에 대한 값들은 이 레코드에 의해 기술되는 스트림이 디코딩될 때 활성화되는 모든 파라미터 세트들(이 단락에서의 이하의 문장들에서 "모든 파라미터 세트들"이라고 지칭됨)에 대해 유효해야 한다. 구체적으로, 이하의 제한사항들이 적용된다:
프로필 표시 general_profile_idc는 이 구성 레코드와 연관된 스트림이 준수하는 프로필을 나타내야 한다.
비고 1: SPS들이 상이한 프로필들로 표시되는 경우, 스트림은 전체 스트림이, 있는 경우, 어느 프로필을 준수하는지를 결정하기 위해 검사를 필요로 할 수 있다. 전체 스트림이 검사되지 않거나 검사가 전체 스트림이 준수하는 프로필이 없다는 것을 나타내는 경우, 전체 스트림은 이러한 규칙들이 충족될 수 있는 별도의 구성 레코드들을 사용하여 둘 이상의 서브스트림으로 분할되어야 한다.
티어 표시 general_tier_flag는 모든 파라미터 세트들에 표시된 최상위 티어보다 크거나 같은 티어를 표시해야 한다.
general_constraint_info에서의 각각의 비트는 모든 파라미터 세트들이 해당 비트를 세트시키는 경우에만 세트될 수 있다.
레벨 표시 general_level_idc는 모든 파라미터 세트들에서의 최상위 티어에 대해 표시된 최상위 레벨보다 크거나 같은 능력 레벨을 표시해야 한다.
이하의 제약은 chroma_format_idc에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_chroma_format_idc의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, chroma_format_idc는 sps_chroma_format_idc와 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, chroma_format_idc는, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_chroma_format[ output_layer_set_idx ]과 동일해야 한다.
- 그렇지 않은 경우, chroma_format_idc가 존재하지 않아야 한다.
이하의 제약은 bit_depth_minus8에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_bitdepth_minus8의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, bit_depth_minus8은 sps_bitdepth_minus8과 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, bit_depth_minus8은, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_bitdepth_minus8[ output_layer_set_idx ]와 동일해야 한다.
- 그렇지 않은 경우, bit_depth_minus8이 존재하지 않아야 한다.
VVC 비디오 기본 스트림에 의해 사용되는 다른 중요한 포맷 정보뿐만 아니라 크로마 포맷 및 비트 깊이에 관한 명시적 표시가 VVC 디코더 구성 레코드에서 제공된다. 2 개의 시퀀스가 그의 VUI 정보 내의 색 공간 표시들이 상이한 경우, 2 개의 상이한 VVC 샘플 엔트리들이 또한 필요하다.
초기화 NAL 유닛들을 전달하는 어레이 세트가 있다. NAL 유닛 유형들은 DCI, VPS, SPS, PPS, 프리픽스 APS 및 프리픽스 SEI NAL 유닛들만을 표시하도록 제한된다. ISO/IEC 23090-3 및 이 사양에서 예약된 NAL 유닛 유형들은 미래에 정의를 취득할 수 있으며, 독자는 NAL 유닛 유형의 예약되거나 허용되지 않는 값들을 갖는 어레이들을 무시해야 한다.
비고 2: 이러한 '관대한' 거동은 오류들이 발생되지 않도록 설계되어, 미래 사양들에서 이러한 어레이들에 대한 역호환 확장들의 가능성을 허용한다.
비고 3: 샘플 엔트리에서 운반되는 NAL 유닛들은 AUD 및 OPI NAL 유닛들(있는 경우) 바로 뒤에 포함되거나 또는 샘플 엔트리를 참조하는 첫 번째 샘플로부터 재구성된 액세스 유닛의 시작 부분에 포함된다.
어레이들이 DCI, VPS, SPS, PPS, 프리픽스 APS, 프리픽스 SEI 순서로 있는 것이 권고된다.
3.3.1.1. 2. 신택스
aligned(8) class VvcPTLRecord(num_sublayers) {
unsigned int(8) num_bytes_constraint_info;
unsigned int(7) general_profile_idc;
unsigned int(1) general_tier_flag;
unsigned int(8) general_level_idc;
unsigned int(1) ptl_frame_only_constraint_flag;
unsigned int(1) ptl_multilayer_enabled_flag;
if (num_bytes_constraint_info > 0)
unsigned int(8*num_bytes_constraint_info - 2) general_constraint_info; for (i=num_sublayers - 2; i >= 0; i--)
unsigned int(1) ptl_sublayer_level_present_flag[i];
for (j=num_sublayers; j<=8 && num_sublayers > 1; j++)
bit(1) ptl_reserved_zero_bit = 0;
for (i=num_sublayers-2; i >= 0; i--)
if (ptl_sublayer_level_present[i])
unsigned int(8) sublayer_level_idc[i];
unsigned int(8) num_sub_profiles;
for (j=0; j < num_sub_profiles; j++)
unsigned int(32) general_sub_profile_idc;
}
aligned(8) class VvcDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(16) avgFrameRate;
unsigned int(2) constantFrameRate;
unsigned int(3) numTemporalLayers;
unsigned int(2) lengthSizeMinusOne;
unsigned int(1) ptl_present_flag;
if (ptl_present_flag) {
VvcPTLRecord(numTemporalLayers) track_ptl;
unsigned int(16) output_layer_set_idx;
}
unsigned int(1) chroma_format_present_flag;
if (chroma_format_present_flag)
unsigned int(2) chroma_format_idc;
else
bit(2) reserved = '11'b;
unsigned int(1) bit_depth_present_flag;
if (bit_depth_present_flag)
unsigned int(3) bit_depth_minus8;
else
bit(3) reserved = '111'b;
unsigned int(1) reserved= '1'b;
unsigned int(8) numOfArrays;
for (j=0; j < numOfArrays; j++) {
unsigned int(1) array_completeness;
bit(1) reserved = 0;
unsigned int(6) NAL_unit_type;
unsigned int(16) numNalus;
for (i=0; i< numNalus; i++) {
unsigned int(16) nalUnitLength;
bit(8*nalUnitLength) nalUnit;
}
}
}
3.3.1.1.3. 시맨틱스
general_profile_idc, general_tier_flag, general_sub_profile_idc, general_constraint_info, general_level_idc, ptl_frame_only_constraint_flag, ptl_multilayer_enabled_flag, sublayer_level_present, 및 sublayer_level_idc[i]는, 이 구성 레코드가 적용되는 스트림에 대한, ISO/IEC 23090-3에 정의된 바와 같은 필드들 general_profile_idc, general_tier_flag, general_sub_profile_idc에 대한 매칭하는 값들, general_constraint_info( ), general_level_idc, ptl_multilayer_enabled_flag, ptl_frame_only_constraint_flag, sublayer_level_present, 및 sublayer_level_idc[i] 내의 비트들을 포함한다.
avgFrameRate는, 이 구성 레코드가 적용되는 스트림에 대한, 프레임/(256초)의 단위의 평균 프레임 레이트를 제공한다. 값 0은 지정되지 않은 평균 프레임 레이트를 나타낸다.
1과 동일한 constantFrameRate는 이 구성 레코드가 적용되는 스트림이 일정한 프레임 레이트임을 나타낸다. 값 2는 스트림에서의 각각의 시간 계층의 표현이 일정한 프레임 레이트임을 나타낸다. 값 0은 스트림이 일정한 프레임 레이트일 수 있거나 그렇지 않을 수 있음을 나타낸다.
numTemporalLayers가 1 초과인 것은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능하고 포함된 시간 계층들(ISO/IEC 23090-3에서 시간 서브계층 또는 서브계층이라고도 지칭됨)의 수가 numTemporalLayers와 동일하다는 것을 나타낸다. 값 1은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능하지 않음을 나타낸다. 값 0은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능한지 여부를 알 수 없음을 나타낸다.
lengthSizeMinusOne + 1은 이 구성 레코드가 적용되는 스트림에서의 VVC 비디오 스트림 샘플에 있는 NALUnitLength 필드의 바이트 단위의 길이를 나타낸다. 예를 들어, 1 바이트의 크기는 0의 값으로 표시된다. 이 필드의 값은, 제각기, 1, 2 또는 4 바이트로 인코딩된 길이에 대응하는 0, 1 또는 3 중 하나이어야 한다.
ptl_present_flag가 1과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함함을 지정한다. ptl_present_flag가 0과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함하지 않을 수 있지만, 오히려 출력 계층 세트를 형성하지 않는 하나 이상의 개별 계층 또는 TemporalId가 0과 동일한 서브계층을 제외한 개별 서브계층들을 포함할 수 있음을 지정한다.
num_sub_profiles는 디코더 구성 레코드에 표시된 서브 프로필들의 수를 정의한다.
track_ptl은 트랙에 포함된 VVC 비트스트림에 의해 표현되는 출력 계층 세트의 프로필, 티어 및 레벨을 지정한다.
output_layer_set_idx는 트랙에 포함된 VVC 비트스트림에 의해 표현되는 출력 계층 세트의 출력 계층 세트 인덱스를 지정한다. output_layer_set_idx의 값은 트랙에 포함된 비트스트림을 디코딩하기 위해, ISO/IEC 23090-3에 지정된 바와 같이, VVC 디코더에 외부 수단에 의해 제공되는 TargetOlsIdx 변수의 값으로서 사용될 수 있다.
chroma_format_present_flag가 0과 동일한 것은 chroma_format_idc가 존재하지 않음을 지정한다. chroma_format_present_flag가 1과 동일한 것은 chroma_format_idc가 존재함을 지정한다.
chroma_format_idc는 이 트랙에 적용되는 크로마 포맷을 나타낸다. 이하의 제약은 chroma_format_idc에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_chroma_format_idc의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, chroma_format_idc는 sps_chroma_format_idc와 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, chroma_format_idc는, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_chroma_format[ output_layer_set_idx ]과 동일해야 한다.
- 그렇지 않은 경우, chroma_format_idc가 존재하지 않아야 한다.
bit_depth_present_flag가 0과 동일한 것은 bit_depth_minus8이 존재하지 않음을 지정한다. bit_depth_present_flag가 1과 동일한 것은 bit_depth_minus8이 존재함을 지정한다.
bit_depth_minus8은 이 트랙에 적용되는 비트 깊이를 나타낸다. 이하의 제약은 bit_depth_minus8에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_bitdepth_minus8의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, bit_depth_minus8은 sps_bitdepth_minus8과 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, bit_depth_minus8은, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_bitdepth_minus8[ output_layer_set_idx ]와 동일해야 한다.
- 그렇지 않은 경우, bit_depth_minus8이 존재하지 않아야 한다.
numArrays는 표시된 유형(들)의 NAL 유닛들의 어레이들의 수를 나타낸다.
array_completeness는, 1과 동일할 때는, 주어진 유형의 모든 NAL 유닛들이 후속하는 어레이에 있고 스트림에는 아무 것도 없음을 나타내며; 0과 동일할 때는, 표시된 유형의 추가적인 NAL 유닛들이 스트림에 있을 수 있음을 나타내고; 기본값 및 허용된 값은 샘플 엔트리 이름에 의해 제약된다.
NAL_unit_type은 후속하는 어레이에서의 NAL 유닛들의 유형(모두 해당 유형이어야 함)을 나타내고; 이는 ISO/IEC 23090-2에 정의된 바와 같은 값을 취하며; DCI, VPS, SPS, PPS, APS, 프리픽스 SEI 또는 서픽스 SEI NAL 유닛을 나타내는 값들 중 하나를 취하도록 제한된다.
numNalus는 이 구성 레코드가 적용되는 스트림에 대한 구성 레코드에 포함된 표시된 유형의 NAL 유닛들의 수를 나타낸다. SEI 어레이는 '선언적' 성격의 SEI 메시지들, 즉 스트림 전체에 관한 정보를 제공하는 메시지만을 포함해야 한다. 그러한 SEI의 예는 사용자 데이터 SEI일 수 있다.
nalUnitLength는 NAL 유닛의 바이트 단위의 길이를 나타낸다.
nalUnit은, ISO/IEC 23090-3에 지정된 바와 같이, DCI, VPS, SPS, PPS, APS 또는 선언적 SEI NAL 유닛을 포함한다.
3.3. 2. 서브픽처 엔티티 그룹들
3.3.2.1. 일반
여러 VVC 서브픽처 트랙들 중 병합된 비트스트림의 적합성을 나타내는 레벨 정보를 제공하는 서브픽처 엔티티 그룹들이 정의된다.
비고: VVC 베이스 트랙들은 VVC 서브픽처 트랙들을 병합하기 위한 또 다른 메커니즘을 제공한다.
암시적 재구성 프로세스는 파라미터 세트들의 수정을 필요로 한다. 서브픽쳐 엔티티 그룹들은 재구성된 비트스트림들에 대한 파라미터 세트 생성을 용이하게 하는 지침을 제공한다.
공동으로 디코딩되어야 하는 그룹 내의 코딩된 서브픽처들이 상호 교환 가능할 때, 즉, 플레이어가 동일한 레벨 기여도를 갖는 샘플별 서브픽처들의 그룹으로부터 다수의 활성 트랙들을 선택할 때, SubpicCommonGroupBox는 조합 규칙들 및 공동으로 디코딩될 때의 결과적인 조합의 level_idc를 나타낸다.
상이한 속성들, 예를 들면, 공동으로 디코딩되도록 선택된 상이한 해상도를 가진 코딩된 서브픽처들이 있을 때, SubpicMultipleGroupsBox는 조합 규칙들 및 공동으로 디코딩될 때의 결과적인 조합의 level_idc를 나타낸다.
서브픽처 엔티티 그룹들에 포함된 모든 entity_id 값들은 VVC 서브픽처 트랙들을 식별해 주어야 한다. 존재할 때, SubpicCommonGroupBox 및 SubpicMultipleGroupsBox는 영화 레벨 MetaBox에서의 GroupsListBox에 포함되어야 하고 파일 레벨 또는 트랙 레벨 MetaBox에 포함되지 않아야 한다.
3.3. 2.2. 서브픽처 공통 그룹 박스의 신택스
aligned(8) class SubpicCommonGroupBox extends EntityToGroupBox('acgl',0,0)
{
unsigned int(32) level_idc;
unsigned int(32) num_active_tracks;
}
3.3.2.3. 서브픽처 공통 그룹 박스의 시맨틱스
level_idc는 엔티티 그룹 중의 num_active_tracks 개의 엔티티의 임의의 선택이 준수하는 레벨을 지정한다.
num_active_tracks는 level_idc의 값이 제공되는 트랙들의 수를 지정한다.
3.3. 2.4. 서브픽처 다중 그룹 박스의 신택스
aligned(8) class SubpicMultipleGroupsBox extends EntityToGroupBox('amgl',0,0)
{
unsigned int(32) level_idc;
unsigned int(32) num_subgroup_ids;
subgroupIdLen = (num_subgroup_ids >= (1 << 24)) ? 32 :
(num_subgroup_ids >= (1 << 16)) ? 24 :
(num_subgroup_ids >= (1 << 8)) ? 16 : 8;
for (i = 0; i < num_entities_in_group; i++)
unsigned int(subgroupIdLen) track_subgroup_id[i];
for (i = 0; i < num_subgroup_ids; i++)
unsigned int(32) num_active_tracks[i];
}
3.3. 2.5. 시맨틱스
level_idc는 0 내지 num_subgroup_ids - 1(경계 포함)의 범위에 있는 i의 모든 값들에 대해 i와 동일한 ID를 갖는 서브그룹 중의 임의의 num_active_tracks[i]를 선택하는 조합이 준수하는 레벨을 지정한다.
num_subgroup_ids는, track_subgroup_id[i]의 동일한 값에 의해 각각 식별되는, 개별 서브그룹들의 수를 지정한다. 상이한 서브그룹들은 track_subgroup_id[i]의 상이한 값들에 의해 식별된다.
track_subgroup_id[i]는 이 엔티티 그룹에서의 i 번째 트랙에 대한 서브그룹 ID를 지정한다. 서브그룹 ID 값들은 0 내지 num_subgroup_ids - 1(경계 포함)의 범위에 있어야 한다.
num_active_tracks[i]는 level_idc에 문서화되어 있는 i와 동일한 ID를 갖는 서브그룹 중의 트랙들의 수를 지정한다.
4. 개시된 기술적 해결책들에 의해 해결되는 기술적 문제들의 예들
디코더 구성 정보 및 서브픽처 엔티티 그룹들의 정보의 시그널링에 관한 VVC 비디오 파일 포맷의 최신 설계들은 다음과 같은 문제들을 가지고 있다:
1) 프로필 표시 general_profile_idc가 이 구성 레코드와 연관된 스트림이 준수하는 프로필을 나타내야 한다는 것이 지정된다. 그렇지만, 스트림은 다수의 출력 계층 세트들에 대응할 수 있으며, 따라서 이 시맨틱스는 general_profile_idc의 잘못된 값이 구성 레코드에서 시그널링되는 것을 허용할 수 있다.
2) 티어 표시 general_tier_flag가 모든 파라미터 세트들에 표시된 최상위 티어보다 크거나 같은 티어를 표시해야 한다는 것이 지정된다. 그렇지만, 파라미터 세트들에서 시그널링되고 현재 구성 레코드의 범위에 없는 OLS들에 적용되는 profile_tier_level( ) 구조들이 있을 수 있으며, 따라서 이 시맨틱스는 이 필드의 잘못된 값이 구성 레코드에서 시그널링되는 것을 허용할 수 있다. 게다가, 참조되지 않는 파라미터 세트들에서 시그널링되는 profile_tier_level( ) 구조들이 있을 수 있으며, VPS는 현재 구성 레코드의 범위에 없는 OLS들에 적용되는 PTL 구조들을 포함할 수 있다.
3) general_constraint_info에서의 각각의 비트가 모든 파라미터 세트들이 해당 비트를 세트시키는 경우에만 세트될 수 있다는 것이 지정된다. 그렇지만, 파라미터 세트들에서 시그널링되고 현재 구성 레코드의 범위에 없는 OLS들에 적용되는 profile_tier_level( ) 구조들이 있을 수 있으며, 따라서 이 시맨틱스는 이 필드의 잘못된 값이 구성 레코드에서 시그널링되는 것을 허용할 수 있다.
4) 레벨 표시 general_level_idc는 모든 파라미터 세트들에서의 최상위 티어에 대해 표시된 최상위 레벨보다 크거나 같은 능력 레벨을 표시해야 한다는 것이 지정된다. 그렇지만, 파라미터 세트들에서 시그널링되고 현재 구성 레코드의 범위에 없는 OLS들에 적용되는 profile_tier_level( ) 구조들이 있을 수 있다. 게다가, 최상위 티어의 최상위 레벨은 최하위 티어의 최상위 레벨보다 낮을 수 있는 반면, 레벨은 필요한 디코딩 능력을 결정하는 데 매우 중요한 최대 픽처 폭, 높이 등을 결정한다. 따라서, 이 시맨틱스는 이 필드의 잘못된 값이 구성 레코드에서 시그널링되는 것을 허용할 수 있다.
5) VvcPTLRecord( ) 신택스 구조의 신택스 및 시맨틱스에서, num_bytes_constraint_info 필드 및 general_constraint_info 필드에 관련된 다음과 같은 문제들이 있다:
a. num_bytes_constraint_info 필드가 8 비트를 사용하여 코딩된다. 그렇지만, VVC 사양에 정의된 general_constraint_info( ) 신택스 구조에서의 최대 비트 수는 336 비트, 즉 42 바이트이며, 따라서 6 비트를 사용하는 것으로 충분하다.
b. 게다가, num_bytes_constraint_info 필드의 시맨틱스가 누락되어 있다.
c. general_constraint_info 필드는 "if (num_bytes_constraint_info > 0)"을 조건으로 한다. 그렇지만, VVC 사양에 정의된 profile_tier_level( ) 신택스 구조에서, 프로필, 티어 및 레벨이 존재할 때마다, general_constraint_info( ) 신택스 구조가 존재하는 반면, general_constraint_info( ) 신택스 구조에서의 제1 신택스 요소 gci_present_flag가 0과 동일할 때에도, general_constraint_info( ) 신택스 구조의 길이는 여전히 0 바이트가 아니라 1 바이트이다. 따라서, 조건은 "if (num_bytes_constraint_info > 1)"로 변경되어야 한다, 즉, general_constraint_info( ) 신택스 구조의 gci_present_flag가 0과 동일할 때 general_constraint_info 필드를 시그널링하지 않도록 변경되어야 한다.
d. general_constraint_info 필드는 (8 * num_bytes_constraint_info - 2) 비트를 사용하여 코딩된다. 그렇지만, general_constraint_info, 즉, VVC 사양에 정의된 general_constraint_info( ) 신택스 구조의 길이는 정수 바이트이다.
6) VvcDecoderConfigurationRecord에서, output_layer_set_idx 필드는 ptl_present_flag가 1과 동일할 때(즉, track_ptl 필드가 시그널링될 때) 항상 시그널링된다. 그렇지만, (참조된 VVC 트랙들 또는, 있는 경우, VVC 서브픽처 트랙들을 분석한 후에) VVC 트랙에 담겨 있는 VVC 비트스트림이 단일 계층 비트스트림인 경우, 종종 OLS 인덱스의 값을 알 필요가 없으며, OLS 인덱스를 하는 것이 유용하더라도, 이는 계층만을 포함하는 OLS의 OLS 인덱스인 것으로 쉽게 도출될 수 있다.
7) VvcDecoderConfigurationRecord에서의 NAL_unit_type 필드는 6 비트를 사용하여 코딩된다. 그렇지만, 5 비트로 충분할 것이다.
8) ptl_present_flag의 시맨틱스는 다음과 같이 지정된다: ptl_present_flag가 1과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함함을 지정한다. ptl_present_flag가 0과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함하지 않을 수 있지만, 오히려 출력 계층 세트를 형성하지 않는 하나 이상의 개별 계층 또는 TemporalId가 0과 동일한 서브계층을 제외한 개별 서브계층들을 포함할 수 있음을 지정한다.
그렇지만, 트랙이 다수의 출력 계층 세트들에 대응하는 VVC 비트스트림을 포함하는 경우는 다루어지지 않는다.
9) SubpicCommonGroupBox 및 SubpicMultipleGroupsBox의 level_idc 필드는 32 비트를 사용하여 코딩된다. 그렇지만, 8 비트로 충분할 것이다.
10) SubpicCommonGroupBox에서의 num_active_tracks 필드 및 SubpicMultipleGroupsBox에서의 num_subgroup_ids 필드와 num_active_tracks[i] 필드는 모두 32 비트를 사용하여 코딩된다. 그렇지만, 이들 모두에 대해 16 비트로 충분할 것이다.
5. 해결책들의 목록
위의 문제들 및 다른 문제들을 해결하기 위해, 아래에 요약된 바와 같은 방법들이 개시된다. 항목들은 일반적인 개념을 설명하기 위한 예로서 간주되어야 하며 좁은 의미로 해석되어서는 안된다. 게다가, 이러한 항목들은 개별적으로 적용될 수 있거나 임의의 방식으로 조합될 수 있다.
1) 문제 1을 해결하기 위해, 프로필 표시 general_profile_idc가 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 프로필을 나타내야 한다는 것이 지정된다.
2) 문제 2를 해결하기 위해, 티어 표시 general_tier_flag는 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 profile_tier_level( ) 신택스 구조들에(모든 파라미터 세트들에) 표시된 최상위 티어보다 크거나 같은 티어를 나타내야 한다고 지정된다.
a. 대안적으로, 티어 표시 general_tier_flag는 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 profile_tier_level( ) 신택스 구조들에(모든 파라미터 세트들에) 표시된 최상위 티어를 나타내야 한다고 지정된다.
b. 대안적으로, 티어 표시 general_tier_flag가 이 구성 레코드와 연관된 스트림이 준수하는 최상위 티어를 나타내야 한다는 것이 지정된다.
c. 대안적으로, 티어 표시 general_tier_flag가 이 구성 레코드와 연관된 스트림이 준수하는 티어를 나타내야 한다는 것이 지정된다.
3) 문제 3을 해결하기 위해, 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 profile_tier_level( ) 신택스 구조들에서의 모든 general_constraints_info( ) 신택스 구조들에서(모든 파라미터 세트들에서) 비트가 세트되는 경우에만 general_constraint_info에서의 각각의 비트가 세트될 수 있다고 지정된다.
4) 문제 4를 해결하기 위해, 레벨 표시 general_level_idc는 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 profile_tier_level( ) 신택스 구조들에(모든 파라미터 세트들에) 최상위 레벨보다 크거나 같은 능력 레벨을 나타내야 한다고 지정된다.
5) 문제 5를 해결하기 위해, 이하의 항목들 중 하나 이상이 제안된다:
a. num_bytes_constraint_info 필드가 6 비트를 사용하여 코딩된다.
b. num_bytes_constraint_info 필드가 ptl_multilayer_enabled_flag 필드 바로 뒤에 코딩된다.
c. num_bytes_constraint_info 필드의 시맨틱스는 다음과 같이 지정된다: num_bytes_constraint_info는 ISO/IEC 23090-3에 정의된 바와 같이 general_constraint_info( ) 신택스 구조에서의 바이트 수를 지정한다. 이 값이 1과 동일한 것은 general_constraint_info( ) 신택스 구조에서의 gci_present_flag가 0과 동일하고, general_constraint_info 필드가 이 VvcPTLRecord에서 시그널링되지 않음을 나타낸다.
d. general_constraint_info 필드의 시그널링에 대한 조건은 "if(num_bytes_constraint_info > 0)"으로부터 "if(num_bytes_constraint_info > 1)"로 변경된다.
e. general_constraint_info 필드는 (8 * num_bytes_constraint_info - 2) 비트 대신에 8 * num_bytes_constraint_info 비트를 사용하여 코딩된다.
6) 문제 6을 해결하기 위해, VvcDecoderConfigurationRecord에서의 output_layer_set_idx 필드의 시그널링은 ptl_present_flag가 1과 동일할 때에도 선택적이며, 예를 들면, VVC 비트스트림이 (참조된 VVC 트랙들 또는, 있는 경우, VVC 서브픽처 트랙들을 분석한 후에) VVC 트랙에 담겨 있는 단지 하나의 계층을 포함한다는 것을 나타내는 "if(track_ptl.ptl_multilayer_enabled_flag)"를 조건으로 한다.
a. 대안적으로, ptl_present_flag가 1과 동일하고 output_layer_set_idx가 존재하지 않을 때, 그의 값은 (참조된 VVC 트랙들 또는, 있는 경우, VVC 서브픽처 트랙들을 분석한 후에) VVC 트랙에 담겨 있는 계층만을 포함하는 OLS의 OLS 인덱스와 동일한 것으로 추론된다.
7) 문제 7을 해결하기 위해, VvcDecoderConfigurationRecord에서의 NAL_unit_type 필드는 6 비트 대신에 5 비트를 사용하여 코딩된다.
8) 문제 8을 해결하기 위해, ptl_present_flag의 시맨틱스는 다음과 같이 지정된다: ptl_present_flag가 1과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함함을 지정한다. ptl_present_flag가 0과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함하지 않을 수 있지만, 오히려 다수의 출력 계층 세트들에 대응하는 VVC 비트스트림을 포함할 수 있거나 출력 계층 세트를 형성하지 않는 하나 이상의 개별 계층 또는 TemporalId가 0과 동일한 서브계층을 제외한 개별 서브계층들을 포함할 수 있음을 지정한다.
9) 문제 9를 해결하기 위해, SubpicCommonGroupBox 및 SubpicMultipleGroupsBox 중 하나 또는 둘 모두에서의 level_idc 필드의 코딩이 8 비트를 사용하도록 변경되는 것이 지정된다.
a. 대안적으로, 게다가, level_idc 필드 이후의 후속하는 24 비트는 예약된 비트로서 지정된다.
b. 대안적으로, 게다가, level_idc 필드 이후의 후속하는 8 비트는 예약된 비트로서 지정된다.
c. 대안적으로, 게다가, level_idc 필드 이후의 0 개의 후속 비트는 예약된 비트로서 지정된다.
10) 문제 10을 해결하기 위해, SubpicCommonGroupBox에서의 num_active_tracks 필드, 및 SubpicMultipleGroupsBox의 num_subgroup_ids 필드 및 num_active_tracks[i] 필드 중 하나 이상의 코딩이 16 비트를 사용하도록 변경되는 것이 지정된다.
a. 대안적으로, 게다가, 위의 필드들 중 하나 이상의 필드 이후의 후속하는 16 비트는 예약된 비트로서 지정된다.
b. 대안적으로, 게다가, 위의 필드들 중 하나 이상의 필드 이후의 0 개의 후속 비트는 예약된 비트로서 지정된다.
6. 실시예들
아래는 VVC 비디오 파일 포맷에 대한 표준 사양에 적용될 수 있는 앞서 섹션 5에 요약된 발명 양태들 중 일부에 대한 몇몇 예시적인 실시예들이다. 변경된 텍스트는 최신 초안 사양에 기초한다. 추가되거나 수정된 대부분의 관련 부분들은 굵은 기울임꼴 텍스트로 표시되며, 삭제된 부분들 중 일부는 열기 및 닫기 이중 대괄호(예를 들면, [[ ]])로 표시되고, 이중 대괄호 사이에 삭제된 텍스트는 삭제된 또는 제거된 텍스트를 나타낸다. 본질적으로 편집에 관련된 것이고 따라서 강조 표시되지 않은 일부 다른 변경들이 있을 수 있다.
6.1. 제1 실시예
이 실시예는 항목 1, 항목 2, 항목 3, 항목 4, 항목 5a, 항목 5b, 항목 5c, 항목 5d, 항목 5e, 항목 6, 항목 6a, 항목 7 및 항목 8에 대한 것이다.
6.1. 1. 디코더 구성 정보
6.1.1.1. VVC 디코더 구성 레코드
6.1.1.1.1. 정의
이 하위 조항은 ISO/IEC 23090-3 비디오 콘텐츠에 대한 디코더 구성 정보를 지정한다.
이 레코드는, 샘플 엔트리에 저장된 경우, 파라미터 세트들, DCI, 및 SEI NAL 유닛들 뿐만 아니라 그의 포함된 NAL 유닛들의 길이를 나타내기 위해 각각의 샘플에 사용되는 길이 필드의 크기를 포함한다. 이 레코드는 외부에서 프레임화된다(그의 크기는 레코드를 포함하는 구조에서 제공된다).
이 레코드는 버전 필드를 포함한다. 사양의 이 버전은 이 레코드의 버전 1을 정의한다. 레코드에 대한 호환되지 않는 변경들은 버전 번호의 변경으로 표시될 것이다. 독자는 버전 번호가 인식되지 않는 경우 이 레코드 또는 이 레코드가 적용되는 스트림들을 디코딩하려고 시도해서는 안 된다.
이 레코드에 대한 호환 가능한 확장들은 이를 확장시키며 구성 버전 코드를 변경하지 않을 것이다. 독자는 자신이 이해하는 데이터의 정의를 넘는 인식되지 않는 데이터를 무시할 준비가 되어 있어야 한다.
VvcPtlRecord는 트랙이 VVC 비트스트림을 기본적으로 또는 'subp' 트랙 참조들을 분석하는 것을 통해 포함하고 있을 때 디코더 구성 레코드에 존재할 것이고, 이 경우에 VVC 비트스트림에 대한 특정 출력 계층 세트는 output_layer_set_idx 필드에 의해 표시된다 . ptl_present_flag가 트랙의 디코더 구성 레코드에서 0과 동일한 경우, 트랙은 'oref' 트랙 참조를 가져야 한다.
VvcPTLRecord, chroma_format_idc 및 bit_depth_minus8의 신택스 요소들에 대한 값들은 이 레코드에 의해 기술되는 스트림이 디코딩될 때 [[활성화]] 참조 되는 모든 파라미터 세트들(이 단락에서의 이하의 문장들에서 "모든 파라미터 세트들"이라고 지칭됨)에 대해 유효해야 한다. 구체적으로, 이하의 제한사항들이 적용된다:
프로필 표시 general_profile_idc는 이 구성 레코드[[와 연관된 스트림]]에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트 가 준수하는 프로필을 나타내야 한다.
비고 1: [[SPS들이]] 상이한 프로필들[[로 표시되는 경우]]이 이 구성 레코드에서 output_layer_set_idx에 의해 식별되는 출력 계층 세트의 상이한 CVS들에 대해 표시되는 경우 , 스트림은 전체 스트림이, 있는 경우, 어느 프로필을 준수하는지를 결정하기 위해 검사를 필요로 할 수 있다. 전체 스트림이 검사되지 않거나 검사가 전체 스트림이 준수하는 프로필이 없다는 것을 나타내는 경우, 전체 스트림은 이러한 규칙들이 충족될 수 있는 별도의 구성 레코드들을 사용하여 둘 이상의 서브스트림으로 분할될 필요가 있다.
티어 표시 general_tier_flag는 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 [[파라미터 세트들]] profile_tier_level( ) 신택스 구조들에(모든 파라미터 세트들에) 표시된 최상위 티어보다 크거나 같은 티어를 나타내야 한다.
[[모든 파라미터 세트들이 해당 비트를 세트시키는 경우]] 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 profile_tier_level( ) 신택스 구조들에서의 모든 general_constraints_info( ) 신택스 구조들에서(모든 파라미터 세트들에서) 비트가 세트되는 경우 에만 general_constraint_info에서의 각각의 비트가 세트될 수 있다.
레벨 표시 general_level_idc는 이 구성 레코드에서의 output_layer_set_idx에 의해 식별되는 출력 계층 세트가 준수하는 모든 [[파라미터 세트들]] profile_tier_level( ) 신택스 구조들에서의(모든 파라미터 세트들에서의) [[최상위 티어에 대해 표시된]] 최상위 레벨보다 크거나 같은 능력 레벨을 나타내야 한다.
이하의 제약은 chroma_format_idc에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_chroma_format_idc의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, chroma_format_idc는 sps_chroma_format_idc와 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, chroma_format_idc는, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_chroma_format[ output_layer_set_idx ]과 동일해야 한다.
- 그렇지 않은 경우, chroma_format_idc가 존재하지 않아야 한다.
이하의 제약은 bit_depth_minus8에 대해 적용된다:
- ISO/IEC 23090-3에 정의된 바와 같은, sps_bitdepth_minus8의 값이 트랙의 NAL 유닛들에 의해 참조되는 모든 SPS들에서 동일한 경우, bit_depth_minus8은 sps_bitdepth_minus8과 동일해야 한다.
- 그렇지 않고, ptl_present_flag가 1과 동일한 경우, bit_depth_minus8은, ISO/IEC 23090-3에 정의된 바와 같이, vps_ols_dpb_bitdepth_minus8[ output_layer_set_idx ]와 동일해야 한다.
- 그렇지 않은 경우, bit_depth_minus8이 존재하지 않아야 한다.
VVC 비디오 기본 스트림에 의해 사용되는 다른 중요한 포맷 정보뿐만 아니라 크로마 포맷 및 비트 깊이에 관한 명시적 표시가 VVC 디코더 구성 레코드에서 제공된다. 2 개의 시퀀스가 그의 VUI 정보 내의 색 공간 또는 비트 깊이 표시들이 상이한 경우, 2 개의 상이한 VVC 샘플 엔트리들이 또한 필요하다.
초기화 비-VCL NAL 유닛들을 지니는 어레이 세트가 있다. NAL 유닛 유형들은 DCI, VPS, SPS, PPS, 프리픽스 APS 및 프리픽스 SEI NAL 유닛들만을 표시하도록 제한된다. ISO/IEC 23090-3 및 이 사양에서 예약된 NAL 유닛 유형들은 미래에 정의를 취득할 수 있으며, 독자는 NAL 유닛 유형의 예약되거나 허용되지 않는 값들을 갖는 어레이들을 무시해야 한다.
비고 2: 이러한 '관대한' 거동은 오류들이 발생되지 않도록 설계되어, 미래 사양들에서 이러한 어레이들에 대한 역호환 확장들의 가능성을 허용한다.
비고 3: 샘플 엔트리에 담겨 있는 NAL 유닛들은 AUD 및 OPI NAL 유닛들(있는 경우) 바로 뒤에 포함되거나 또는 샘플 엔트리를 참조하는 첫 번째 샘플로부터 재구성된 액세스 유닛의 시작 부분에 포함된다.
어레이들이 DCI, VPS, SPS, PPS, 프리픽스 APS, 프리픽스 SEI 순서로 있는 것이 권고된다.
6.1.1.1. 2. 신택스
aligned(8) class VvcPTLRecord(num_sublayers) {
[[unsigned int(8) num_bytes_constraint_info;]]
unsigned int(7) general_profile_idc;
unsigned int(1) general_tier_flag;
unsigned int(8) general_level_idc;
unsigned int(1) ptl_frame_only_constraint_flag;
unsigned int(1) ptl_multilayer_enabled_flag;
unsigned int (6) num _bytes_constraint_info;
[[if (num_bytes_constraint_info > 0)]]
[[unsigned int(8*num_bytes_constraint_info - 2) general_constraint_info;]]
if ( num _bytes_constraint_info > 1)
unsigned int (8* num _bytes_constraint_info) general_constraint_info; for (i=num_sublayers - 2; i >= 0; i--)
unsigned int(1) ptl_sublayer_level_present_flag[i];
for (j=num_sublayers; j<=8 && num_sublayers > 1; j++)
bit(1) ptl_reserved_zero_bit = 0;
for (i=num_sublayers-2; i >= 0; i--)
if (ptl_sublayer_level_present[i])
unsigned int(8) sublayer_level_idc[i];
unsigned int(8) num_sub_profiles;
for (j=0; j < num_sub_profiles; j++)
unsigned int(32) general_sub_profile_idc [j] ;
}
aligned(8) class VvcDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(16) avgFrameRate;
unsigned int(2) constantFrameRate;
unsigned int(3) numTemporalLayers;
unsigned int(2) lengthSizeMinusOne;
unsigned int(1) ptl_present_flag;
if (ptl_present_flag) {
VvcPTLRecord(numTemporalLayers) track_ptl;
if (track_ ptl . ptl _ multilayer _enabled_flag)
unsigned int(16) output_layer_set_idx; }
unsigned int(1) chroma_format_present_flag;
if (chroma_format_present_flag)
unsigned int(2) chroma_format_idc;
else
bit(2) reserved = '11'b;
unsigned int(1) bit_depth_present_flag;
if (bit_depth_present_flag)
unsigned int(3) bit_depth_minus8;
else
bit(3) reserved = '111'b;
unsigned int(1) reserved= '1'b;
unsigned int(8) numOfArrays;
for (j=0; j < numOfArrays; j++) {
unsigned int(1) array_completeness;
[[bit(1) reserved = 0;]]
[[unsigned int(6) NAL_unit_type;]]
bit(2) reserved = 0;
unsigned int (5) NAL _unit_type;
unsigned int(16) numNalus;
for (i=0; i< numNalus; i++) {
unsigned int(16) nalUnitLength;
bit(8*nalUnitLength) nalUnit;
}
}
}
6.1.1.1.3. 시맨틱스
이 구성 레코드가 적용되는 스트림에 대해, ISO/IEC 23090-3에 정의된 바와 같이, general_profile_idc, general_tier_flag, general_level_idc, ptl_frame_only_constraint_flag, ptl_multilayer_enabled_flag, general_constraint_info, ptl_sublayer_level_present[i], sublayer_level_idc[i], num_sub_profiles, 및 general_sub_profile_idc[j]는 필드들 또는 신택스 구조들 general_profile_idc, general_tier_flag, general_level_idc, ptl_frame_only_constraint_flag, ptl_multilayer_enabled_flag, general_constraint_info( ), ptl_sublayer_level_present[i], sublayer_level_idc[i], ptl_num_sub_profiles, 및 general_sub_profile_idc[j]에 대한 매칭하는 값들을 포함한다.
num_bytes_constraint_info는 ISO/IEC 23090-3에 정의된 바와 같이 general_constraint_info( ) 신택스 구조에서의 바이트 수를 지정한다. 이 값이 1과 동일한 것은 general_constraint_info( ) 신택스 구조에서의 gci_present_flag가 0과 동일하고, general_constraint_info 필드가 이 VvcPTLRecord에서 시그널링되지 않음을 나타낸다.
avgFrameRate는, 이 구성 레코드가 적용되는 스트림에 대한, 프레임/(256초)의 단위의 평균 프레임 레이트를 제공한다. 값 0은 지정되지 않은 평균 프레임 레이트를 나타낸다.
constantFrameRate가 1과 동일한 것은 이 구성 레코드가 적용되는 스트림이 일정한 프레임 레이트임을 나타낸다. 값 2는 스트림에서의 각각의 시간 계층의 표현이 일정한 프레임 레이트임을 나타낸다. 값 0은 스트림이 일정한 프레임 레이트일 수 있거나 그렇지 않을 수 있음을 나타낸다.
numTemporalLayers가 1 초과인 것은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능하고 포함된 시간 계층들(ISO/IEC 23090-3에서 시간 서브계층 또는 서브계층이라고도 지칭됨)의 수가 numTemporalLayers와 동일하다는 것을 나타낸다. 값 1은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능하지 않음을 나타낸다. 값 0은 이 구성 레코드가 적용되는 트랙이 시간적으로 확장 가능한지 여부를 알 수 없음을 나타낸다.
lengthSizeMinusOne + 1은 이 구성 레코드가 적용되는 스트림에서의 VVC 비디오 스트림 샘플에 있는 NALUnitLength 필드의 바이트 단위의 길이를 나타낸다. 예를 들어, 1 바이트의 크기는 0의 값으로 표시된다. 이 필드의 값은, 제각기, 1, 2 또는 4 바이트로 인코딩된 길이에 대응하는 0, 1 또는 3 중 하나이어야 한다.
ptl_present_flag가 1과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함함을 지정한다. ptl_present_flag가 0과 동일한 것은 트랙이 특정 출력 계층 세트에 대응하는 VVC 비트스트림을 포함하지 않을 수 있지만, 오히려 다수의 출력 계층 세트들에 대응하는 VVC 비트스트림을 포함할 수 있거나 출력 계층 세트를 형성하지 않는 하나 이상의 개별 계층 또는 TemporalId가 0과 동일한 서브계층을 제외한 개별 서브계층들을 포함할 수 있음을 지정한다.
track_ptl은 트랙에 포함된 VVC 비트스트림에 의해 표현되는 출력 계층 세트의 프로필, 티어 및 레벨을 지정한다.
output_layer_set_idx는 트랙에 포함된 VVC 비트스트림에 의해 표현되는 출력 계층 세트의 출력 계층 세트 인덱스를 지정한다. output_layer_set_idx의 값은 트랙에 포함된 비트스트림을 디코딩하기 위해, ISO/IEC 23090-3에 지정된 바와 같이, VVC 디코더에 외부 수단에 의해 제공되는 TargetOlsIdx 변수의 값으로서 사용될 수 있다. ptl_present_flag가 1과 동일하고 output_layer_set_idx가 존재하지 않을 때, 그의 값은 (참조된 VVC 트랙들 또는, 있는 경우, VVC 서브픽처 트랙들을 분석한 후에) VVC 트랙에 담겨 있는 계층만을 포함하는 OLS의 OLS 인덱스와 동일한 것으로 추론된다.
chroma_format_present_flag가 0과 동일한 것은 chroma_format_idc가 존재하지 않음을 지정한다. chroma_format_present_flag가 1과 동일한 것은 chroma_format_idc가 존재함을 지정한다.
chroma_format_idc는 이 트랙에 적용되는 크로마 포맷을 나타낸다.
bit_depth_present_flag가 0과 동일한 것은 bit_depth_minus8이 존재하지 않음을 지정한다. bit_depth_present_flag가 1과 동일한 것은 bit_depth_minus8이 존재함을 지정한다.
bit_depth_minus8은 이 트랙에 적용되는 비트 깊이를 나타낸다.
numArrays는 표시된 유형(들)의 NAL 유닛들의 어레이들의 수를 나타낸다.
array_completeness는, 1과 동일할 때는, 주어진 유형의 모든 NAL 유닛들이 후속하는 어레이에 있고 스트림에는 아무 것도 없음을 나타내며; 0과 동일할 때는, 표시된 유형의 추가적인 NAL 유닛들이 스트림에 있을 수 있음을 나타내고; 허용된 값은 샘플 엔트리 이름에 의해 제약된다.
NAL_unit_type은 후속하는 어레이에서의 NAL 유닛들의 유형(모두 해당 유형이어야 함)을 나타내고; 이는 ISO/IEC 23090-3에 정의된 바와 같은 값을 취하며; DCI, VPS, SPS, PPS, 프리픽스 APS 또는 프리픽스 SEI NAL 유닛을 나타내는 값들 중 하나를 취하도록 제한된다.
numNalus는 이 구성 레코드가 적용되는 스트림에 대한 구성 레코드에 포함된 표시된 유형의 NAL 유닛들의 수를 나타낸다. SEI 어레이는 '선언적' 성격의 SEI 메시지들, 즉 스트림 전체에 관한 정보를 제공하는 메시지만을 포함해야 한다. 그러한 SEI의 예는 사용자 데이터 SEI일 수 있다.
nalUnitLength는 NAL 유닛의 바이트 단위의 길이를 나타낸다.
nalUnit은, ISO/IEC 23090-3에 지정된 바와 같이, DCI, VPS, SPS, PPS, APS 또는 선언적 SEI NAL 유닛을 포함한다.
도 1은 본 명세서에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(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 인터페이스 등을 포함한다. 본 문서에서 설명되는 기술은 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 모바일 폰, 랩톱, 스마트폰 또는 다른 디바이스와 같은 다양한 전자 디바이스들에서 구체화될 수 있다.
도 2는 비디오 프로세싱 장치(3600)의 블록 다이어그램이다. 장치(3600)는 본 명세서에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3600)는 스마트폰, 태블릿, 컴퓨터, IoT(Internet of Things) 수신기 등으로 구체화될 수 있다. 장치(3600)는 하나 이상의 프로세서(3602), 하나 이상의 메모리(3604) 및 비디오 프로세싱 하드웨어(3606)를 포함할 수 있다. 프로세서(들)(3602)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(3604)는 본 명세서에 설명된 방법들 및 기술들을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어(3606)는, 하드웨어 회로로, 본 문서에 설명된 일부 기술들을 구현하는 데 사용될 수 있다. 일부 실시예들에서, 비디오 프로세싱 하드웨어(3606)는 프로세서(3602), 예를 들면, 그래픽 코프로세서에 적어도 부분적으로 포함될 수 있다.
도 4는 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 예시하는 블록 다이어그램이다.
도 4에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 비디오 인코딩 디바이스라고 지칭될 수 있는 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성한다. 비디오 디코딩 디바이스라고 지칭될 수 있는 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114), 및 입출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스와 같은 소스, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 그러한 소스들의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 관련 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 관련 데이터는 시퀀스 파라미터 세트, 픽처 파라미터 세트, 및 다른 신택스 구조를 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 I/O 인터페이스(116)를 통해 네트워크(130a)를 거쳐 목적지 디바이스(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124), 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 취득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이할 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나, 또는 외부 디스플레이 디바이스와 인터페이싱하도록 구성된 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는, HEVC(High Efficiency Video Coding) 표준, VVM(Versatile Video Coding) 표준 및 다른 현재 및/또는 추가 표준들과 같은, 비디오 압축 표준에 따라 동작할 수 있다.
도 5는 도 4에 예시된 시스템(100) 내의 비디오 인코더(114)일 수 있는, 비디오 인코더(200)의 예를 예시하는 블록 다이어그램이다.
비디오 인코더(200)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 5의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트들은 분할 유닛(201), 모드 선택 유닛(203), 모션 추정 유닛(204), 모션 보상 유닛(205) 및 인트라 예측 유닛(206)을 포함할 수 있는 예측 유닛(202), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역양자화 유닛(210), 역변환 유닛(211), 재구성 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 보다 많은, 보다 적은 또는 상이한 기능 컴포넌트들을 포함할 수 있다. 예에서, 예측 유닛(202)은 인트라 블록 복사(intra block copy, IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
게다가, 모션 추정 유닛(204) 및 모션 보상 유닛(205)과 같은 일부 컴포넌트들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도 5의 예에서 개별적으로 표현되어 있다.
분할 유닛(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)은 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.
도 6은 도 4에 예시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 예시하는 블록 다이어그램이다.
비디오 디코더(300)는 본 개시의 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 6의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 디코더(300)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에 설명된 기술들의 일부 또는 전부를 수행하도록 구성될 수 있다.
도 6의 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(301), 모션 보상 유닛(302), 인트라 예측 유닛(303), 역양자화 유닛(304), 역변환 유닛(305), 및 재구성 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예들에서, 비디오 인코더(200)(도 5)와 관련하여 설명된 인코딩 패스(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 내지 항목 4)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
1. 비주얼 미디어 프로세싱 방법(예를 들면, 도 3에 묘사된 방법(3000))으로서, 포맷 규칙에 따라 비주얼 미디어 데이터와 비주얼 미디어 데이터의 비트스트림 표현을 저장하는 파일 사이의 변환을 수행하는 단계(3002)를 포함하며; 포맷 규칙은 프로필, 티어, 제약 또는 파일에서 식별되는 비트스트림 표현과 연관된 티어와 관련하여 파일에 포함된 정보에 대한 제약을 지정하는, 방법.
2. 해결책 1의 방법으로서, 포맷 규칙은 파일이 파일에서 식별되는 비트스트림 표현의 출력 계층 세트가 준수하는 프로필의 식별을 포함한다는 것을 지정하는, 방법.
3. 해결책 1 및 해결책 2 중 어느 하나의 방법으로서, 포맷 규칙은 파일에서 식별되는 티어가 파일에 포함된 출력 계층 세트가 준수하는 모든 신택스 구조들에 표시된 최상위 티어보다 높거나 같다는 것을 지정하는, 방법.
4. 해결책 1 내지 해결책 3 중 어느 하나의 방법으로서, 포맷 규칙은 파일에서 식별되는 제약이 파일 내의 출력 계층 세트가 준수하는 제약을 나타내는 신택스 구조들의 하나 이상의 제약 필드에 의해 표시되는 대응하는 값들과 정렬된다는 것을 지정하는, 방법.
5. 해결책 1 내지 해결책 4 중 어느 하나의 방법으로서, 포맷 규칙은 파일에서 식별되는 레벨이 파일 내의 출력 계층 세트가 준수하는 레벨을 나타내는 신택스 구조들의 하나 이상의 레벨 필드에 의해 표시되는 대응하는 값들과 정렬된다는 것을 지정하는, 방법.
6. 해결책 1 내지 해결책 5 중 어느 하나의 방법으로서, 변환은 포맷 규칙에 따라 비주얼 미디어 데이터의 비트스트림 표현을 생성하고 비트스트림 표현을 파일에 저장하는 것을 포함하는, 방법.
7. 해결책 1 내지 해결책 5 중 어느 하나의 방법으로서, 변환은 비주얼 미디어 데이터를 복구하기 위해 포맷 규칙에 따라 파일을 파싱하는 것을 포함하는, 방법.
8. 해결책 1 내지 해결책 7 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
9. 해결책 1 내지 해결책 7 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
10. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 해결책 1 내지 해결책 7 중 어느 하나에 언급된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
11. 해결책 1에서 해결책 7 중 어느 하나에 따라 생성되는 파일 포맷을 준수하는 비트스트림 표현이 저장되어 있는 컴퓨터 판독 가능 매체.
12. 본 문서에 설명된 방법, 장치 또는 시스템.
본 명세서에 설명된 해결책들에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성하는 것에 의해 포맷 규칙을 준수할 수 있다. 본 명세서에 설명된 해결책들에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 요소들의 존재 및 부재에 대한 지식으로 코딩된 표현에서의 신택스 요소들을 파싱하기 위해 포맷 규칙을 사용할 수 있다.
기법 1. 비주얼 미디어 데이터를 프로세싱하는 방법(예를 들면, 도 8에 묘사된 바와 같은 방법(8000))으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계(8002)를 포함하며, 비트스트림은 하나 이상의 출력 계층 세트 및 하나 이상의 프로필 티어 레벨 신택스 구조를 포함하는 하나 이상의 파라미터 세트를 포함하고, 프로필 티어 레벨 신택스 구조들 중 적어도 하나는 일반 제약 정보 신택스 구조를 포함하며, 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에서의 구성 레코드에 포함된다는 것을 지정하고, 신택스 요소는 구성 레코드에 표시된 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 프로필, 티어 또는 레벨을 나타내는, 방법.
기법 2. 기법 1의 방법으로서, 신택스 요소는 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 프로필을 나타내는 일반 프로필 표시자 신택스 요소인, 방법.
기법 3. 기법 1의 방법으로서, 신택스 요소는 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 모든 프로필 티어 레벨 신택스 구조들에 표시된 최상위 티어보다 크거나 같은 티어를 나타내는 일반 티어 신택스 요소인, 방법.
기법 4. 기법 1의 방법으로서, 신택스 요소는 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 모든 프로필 티어 레벨 신택스 구조들에 표시된 최상위 티어를 나타내는 일반 티어 신택스 요소인, 방법.
기법 5. 기법 1의 방법으로서, 신택스 요소는 구성 레코드와 연관된 스트림이 준수하는 최상위 티어를 나타내는 일반 티어 신택스 요소인, 방법.
기법 6. 기법 1의 방법으로서, 신택스 요소는 구성 레코드와 연관된 스트림이 준수하는 티어를 나타내는 일반 티어 신택스 요소인, 방법.
기법 7. 기법 1의 방법으로서, 구성 레코드는 일반 제약 정보 신택스 요소를 포함하고, 포맷 규칙은 일반 제약 정보 신택스 요소에서의 제1 비트가 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 모든 프로필 티어 레벨 신택스 구조들에서의 모든 일반 제약 정보 신택스 구조들에서의 제2 비트에 대응한다는 것을 지정하며, 포맷 규칙은 모든 일반 제약 정보 신택스 구조들에서 제2 비트가 1과 동일하게 설정되는 경우에만 제1 비트가 1로 설정된다는 것을 지정하는, 방법.
기법 8. 기법 1의 방법으로서, 신택스 요소는 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 모든 프로필 티어 레벨 신택스 요소들에 표시된 최상위 레벨보다 크거나 같은 능력 레벨을 나타내는 값을 갖는 일반 레벨 신택스 요소인, 방법.
기법 9. 기법 1의 방법으로서, 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에 저장된 스트림에 포함된 하나 이상의 다른 출력 계층 세트와 연관되도록 허용되지 않는다는 것을 지정하는, 방법.
기법 10. 기법 1 내지 기법 9 중 어느 하나의 방법으로서, 변환은 포맷 규칙에 따라 비주얼 미디어 파일을 생성하고 비트스트림을 비주얼 미디어 파일에 저장하는 것을 포함하는, 방법.
기법 11. 기법 1 내지 기법 9 중 어느 하나의 방법으로서, 변환은 비주얼 미디어 파일을 생성하는 것을 포함하고, 이 방법은 비주얼 미디어 파일을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 방법.
기법 12. 기법 1 내지 기법 9 중 어느 하나의 방법으로서, 변환은 비트스트림을 재구성하기 위해 포맷 규칙에 따라 비주얼 미디어 파일을 파싱하는 것을 포함하는, 방법.
기법 13. 기법 1 내지 기법 12 중 어느 하나의 방법으로서, 비주얼 미디어 파일은 다목적 비디오 코딩(VVC)에 의해 프로세싱되는, 방법.
기법 14. 비주얼 미디어 데이터를 프로세싱하기 위한 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 명령어들은, 프로세서에 의한 실행 시에, 프로세서로 하여금 기법 1 내지 기법 13 중 하나 이상에 언급된 방법을 구현하게 하는, 장치.
기법 15. 프로세서로 하여금 기법 1 내지 기법 13 중 어느 하나에 언급된 방법을 구현하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
기법 16. 기법 1 내지 기법 13 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
기법 17. 기법 1 내지 기법 13 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
기법 18. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 기법 1 내지 기법 13 중 어느 하나에 언급된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
기법 19. 기법 1 내지 기법 13 중 어느 하나에 따라 생성되는 파일 포맷을 준수하는 비주얼 미디어 파일이 저장되어 있는 컴퓨터 판독 가능 매체.
기법 20. 비주얼 미디어 파일 생성 방법으로서, 기법 1 내지 기법 13 중 어느 하나에 언급된 방법에 따라 비주얼 미디어 파일을 생성하는 단계, 및 비주얼 미디어 파일을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계를 포함하는, 방법.
기법 21. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은 기법 1 내지 기법 13 중 어느 하나에 언급되어 있는, 비일시적 컴퓨터 판독 가능 기록 매체. 일부 실시예들에서, 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은: 포맷 규칙에 따라 비주얼 미디어 데이터에 기초하여 비주얼 미디어 파일을 생성하는 단계를 포함하며, 비트스트림은 하나 이상의 출력 계층 세트 및 하나 이상의 프로필 티어 레벨 신택스 구조를 포함하는 하나 이상의 파라미터 세트를 포함하고, 프로필 티어 레벨 신택스 구조들 중 적어도 하나는 일반 제약 정보 신택스 구조를 포함하며, 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에서의 구성 레코드에 포함된다는 것을 지정하고, 신택스 요소는 구성 레코드에 표시된 출력 계층 세트 인덱스에 의해 식별되는 출력 계층 세트가 준수하는 프로필, 티어 또는 레벨을 나타내는, 방법.
구현 1. 비주얼 미디어 데이터를 프로세싱하는 방법(예를 들면, 도 9에 묘사된 바와 같은 방법(9000))으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계(9002)를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 신택스 요소는 비트스트림과 연관된 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 갖는, 방법.
구현 2. 구현 1의 방법으로서, 포맷 규칙은 신택스 요소가 6 비트를 사용하여 비주얼 미디어 파일에 코딩된다는 것을 지정하는, 방법.
구현 3. 구현 1의 방법으로서, 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에서의 프로필 티어 레벨 다층 활성화 플래그 신택스 요소 바로 뒤에 비주얼 미디어 파일에 코딩된다는 것을 지정하는, 방법.
구현 4. 구현 1의 방법으로서, 포맷 규칙은 신택스 요소가 비주얼 미디어 파일에 코딩된다는 것을 지정하고, 비주얼 미디어 파일에서의 일반 제약 정보 신택스 요소에서의 바이트 수를 지정하며, 포맷 규칙은 1과 동일한 신택스 요소의 값이 일반 제약 정보 신택스 요소에서의 일반 제약 정보 플래그가 0과 동일하다는 것을 나타내고 일반 제약 정보 신택스 요소가 비주얼 미디어 파일에서의 프로필 티어 레벨 레코드에 포함되도록 허용되지 않는다는 것을 지정하는, 방법.
구현 5. 구현 1의 방법으로서, 포맷 규칙은 비주얼 미디어 파일에 일반 제약 정보 신택스 요소를 포함시키기 위한 조건이 신택스 요소에 의해 표시된 값이 1 초과인지 여부에 의존한다는 것을 지정하는, 방법.
구현 6. 구현 1의 방법으로서, 포맷 규칙은 비주얼 미디어 파일에 일반 제약 정보 신택스 요소를 코딩하는 데 사용되는 비트 수가 8과 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 곱한 결과임을 지정하고, 포맷 규칙은 8과 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 곱한 결과가 2만큼 차감되지 않는다는 것을 지정하는, 방법.
구현 7. 비주얼 미디어 데이터를 프로세싱하는 방법으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소에 대해 5 비트가 사용된다는 것을 지정하고, 신택스 요소는 비주얼 미디어 파일 내의 디코더 구성 레코드에서의 네트워크 추상화 계층 유닛 유형을 나타내는 값을 갖는, 방법. 일부 실시예들에서, 여기서 포맷 규칙은 비주얼 미디어 파일에서의 다른 신택스 요소에 대해 5 비트가 사용된다는 것을 지정하고, 여기서 다른 신택스 요소는 비주얼 미디어 파일 내의 디코더 구성 레코드에서의 네트워크 추상화 계층 유닛 유형을 나타내는 다른 값을 갖는다.
구현 8. 비주얼 미디어 데이터를 프로세싱하는 방법으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 비주얼 미디어 파일에서의 트랙은 하나 이상의 출력 계층 세트를 포함하는 비디오 비트스트림을 포함하고; 포맷 규칙은 신택스 요소가 트랙에 대해 표시되는 것을 지정하며, 신택스 요소는 트랙이 하나 이상의 출력 계층 세트로부터의 특정 출력 계층 세트에 대응하는 비디오 비트스트림을 포함하는지 여부를 나타내는, 방법. 일부 실시예들에서, 여기서 비주얼 미디어 파일에서의 트랙은 하나 이상의 출력 계층 세트를 포함하는 비디오 비트스트림을 포함하고, 여기서 포맷 규칙은 다른 신택스 요소가 트랙에 대해 표시되는 것을 지정하며, 여기서 다른 신택스 요소는 트랙이 하나 이상의 출력 계층 세트로부터의 특정 출력 계층 세트에 대응하는 비디오 비트스트림을 포함하는지 여부를 나타낸다.
구현 9. 구현 8의 방법으로서, 신택스 요소는 트랙이 다수의 출력 계층 세트들에 대응하는 비디오 비트스트림을 포함한다는 것을 나타내는, 방법. 일부 실시예들에서, 다른 신택스 요소는 트랙이 다수의 출력 계층 세트들에 대응하는 비디오 비트스트림을 포함한다는 것을 나타낸다.
구현 10. 구현 8의 방법으로서, 신택스 요소는 트랙이 하나 이상의 출력 계층 세트로부터의 특정 출력 계층 세트에 대응하지 않는 비디오 비트스트림을 포함한다는 것을 나타내는, 방법. 일부 실시예들에서, 다른 신택스 요소는 트랙이 하나 이상의 출력 계층 세트로부터의 특정 출력 계층 세트에 대응하지 않는 비디오 비트스트림을 포함한다는 것을 나타낸다.
구현 11. 비주얼 미디어 데이터를 프로세싱하는 방법으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 포맷 규칙은 비주얼 미디어 파일이 출력 계층 세트를 표시하는 데 사용되는 출력 계층 세트 인덱스를 나타내는 값을 갖는 신택스 요소를 포함하는지 여부를 지정하는, 방법. 일부 실시예들에서, 포맷 규칙은 비주얼 미디어 파일이 출력 계층 세트를 표시하는 데 사용되는 출력 계층 세트 인덱스를 나타내는 값을 갖는 다른 신택스 요소를 포함하는지 여부를 지정한다.
구현 12. 구현 11의 방법으로서, 포맷 규칙은 비주얼 미디어 파일에서의 프로필 티어 존재 플래그 신택스 요소의 다른 값이 1과 동일한 것에 응답하여 또는 프로필 티어 계층 다층 활성화 플래그가 1과 동일한 것에 응답하여 비주얼 미디어 파일이 디코더 구성 레코드에서의 출력 계층 세트 인덱스를 나타내는 값을 갖는 신택스 요소를 선택적으로 표시하는 것을 지정하는, 방법. 일부 실시예들에서, 포맷 규칙은, 비주얼 미디어 파일에서의 프로필 티어 존재 플래그 신택스 요소의 다른 값이 1과 동일한 것에 응답하여 또는 프로필 티어 계층 다층 활성화 플래그가 1과 동일한 것에 응답하여, 비주얼 미디어 파일이 디코더 구성 레코드에서의 출력 계층 세트 인덱스를 나타내는 값을 갖는 다른 신택스 요소를 선택적으로 표시하는 것을 지정한다.
구현 13. 구현 11의 방법으로서, 포맷 규칙은 비주얼 미디어 파일이 출력 계층 세트 인덱스를 나타내는 값을 갖는 신택스 요소를 포함하도록 허용되지 않는 것을 지정하고, 포맷 규칙은, 비주얼 미디어 파일에서 프로필 티어 존재 플래그 신택스 요소가 1과 동일한 것에 응답하여, 출력 계층 세트 인덱스의 값이 트랙에 담겨 있는 계층만을 포함하는 제2 출력 계층 세트의 제2 출력 계층 인덱스의 제2 값과 동일한 것으로 추론된다는 것을 지정하는, 방법. 일부 실시예들에서, 포맷 규칙은 비주얼 미디어 파일이 출력 계층 세트 인덱스를 나타내는 값을 갖는 다른 신택스 요소를 포함하도록 허용되지 않는 것을 지정하고, 여기서 포맷 규칙은, 비주얼 미디어 파일에서 프로필 티어 존재 플래그 신택스 요소가 1과 동일한 것에 응답하여, 출력 계층 세트 인덱스의 값이 트랙에 담겨 있는 계층만을 포함하는 제2 출력 계층 세트의 제2 출력 계층 인덱스의 제2 값과 동일한 것으로 추론된다는 것을 지정한다.
구현 14. 구현 1 내지 구현 13 중 어느 하나의 방법으로서, 변환은 포맷 규칙에 따라 비주얼 미디어 파일을 생성하고 비트스트림을 비주얼 미디어 파일에 저장하는 것을 포함하는, 방법.
구현 15. 구현 1 내지 구현 13 중 어느 하나의 방법으로서, 변환은 비주얼 미디어 파일을 생성하는 것을 포함하고, 이 방법은 비주얼 미디어 파일을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 방법.
구현 16. 구현 1 내지 구현 13 중 어느 하나의 방법으로서, 변환은 비트스트림을 재구성하기 위해 포맷 규칙에 따라 비주얼 미디어 파일을 파싱하는 것을 포함하는, 방법.
구현 17. 구현 1 내지 구현 16 중 어느 하나의 방법으로서, 비주얼 미디어 파일은 다목적 비디오 코딩(VVC)에 의해 프로세싱되는, 방법.
구현 18. 비주얼 미디어 데이터를 프로세싱하기 위한 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 명령어들은, 프로세서에 의한 실행 시에, 프로세서로 하여금 구현 1 내지 구현 17 중 하나 이상에 언급된 방법을 구현하게 하는, 장치.
구현 19. 프로세서로 하여금 구현 1 내지 구현 17 중 어느 하나에 언급된 방법을 구현하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
구현 20. 구현 1 내지 구현 17 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
구현 21. 구현 1 내지 구현 17 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
구현 22. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 구현 1 내지 구현 17 중 어느 하나에 언급된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
구현 23. 구현 1 내지 구현 17 중 어느 하나에 따라 생성되는 파일 포맷을 준수하는 비주얼 미디어 파일이 저장되어 있는 컴퓨터 판독 가능 매체.
구현 24. 비주얼 미디어 파일 생성 방법으로서, 구현 1 내지 구현 17 중 어느 하나에 언급된 방법에 따라 비주얼 미디어 파일을 생성하는 단계, 및 비주얼 미디어 파일을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계를 포함하는, 방법.
구현 25. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은 구현 1 내지 구현 17 중 어느 하나에 언급되어 있는, 비일시적 컴퓨터 판독 가능 기록 매체. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은: 포맷 규칙에 따라 비주얼 미디어 데이터에 기초하여 비주얼 미디어 파일을 생성하는 단계를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 신택스 요소는 비트스트림과 연관된 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 갖는, 방법.
동작 1. 비주얼 미디어 데이터를 프로세싱하는 방법(예를 들면, 도 9에 묘사된 바와 같은 방법(10000))으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계(10002)를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소가 8 비트를 사용하여 서브픽처 공통 그룹 박스 또는 서브픽처 다중 그룹 박스 중 임의의 하나 또는 둘 모두에 코딩된다는 것을 지정하는, 방법.
동작 2. 동작 1의 방법으로서, 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소 바로 뒤에 예약된 비트가 없음을 지정하는, 방법.
동작 3. 동작 1의 방법으로서, 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소 바로 뒤의 24 비트가 예약된 비트임을 지정하는, 방법.
동작 4. 동작 1의 방법으로서, 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소 바로 뒤의 8 비트가 예약된 비트임을 지정하는, 방법.
동작 5. 비주얼 미디어 데이터를 프로세싱하는 방법으로서, 포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 제1 신택스 요소, 제2 신택스 요소 또는 제3 신택스 요소 세트에 관련된 특성들을 지정하고, 제1 신택스 요소는 비주얼 미디어 파일에서의 활성 트랙들의 수를 나타내는 제1 값을 가지며, 제2 신택스 요소는 비주얼 미디어 파일에서의 서브그룹 식별자들의 수를 나타내는 제2 값을 갖고, 제3 신택스 요소 세트에서의 각각의 신택스 요소는 비주얼 미디어 파일에서의 활성 트랙들의 수를 나타내는 제3 값을 갖는, 방법. 일부 실시예들에서, 여기서 포맷 규칙은 비주얼 미디어 파일에서의 제1 신택스 요소, 제2 신택스 요소 또는 제3 신택스 요소 세트에 관련된 특성들을 지정하고, 여기서 제1 신택스 요소는 비주얼 미디어 파일에서의 활성 트랙들의 수를 나타내는 제1 값을 가지며, 여기서 제2 신택스 요소는 비주얼 미디어 파일에서의 서브그룹 식별자들의 수를 나타내는 제2 값을 갖고, 여기서 제3 신택스 요소 세트에서의 각각의 신택스 요소는 비주얼 미디어 파일에서의 활성 트랙들의 수를 나타내는 제3 값을 갖는다.
동작 6. 동작 5의 방법으로서, 포맷 규칙은 비주얼 미디어 파일 내의 서브픽처 공통 그룹 박스에서의 활성 트랙들의 수를 나타내는 제1 값을 갖는 제1 신택스 요소를 표시하기 위해 16 비트가 사용된다는 것을 지정하는, 방법.
동작 7. 동작 5의 방법으로서, 포맷 규칙은 비주얼 미디어 파일 내의 서브픽처 다중 그룹 박스에서의 서브그룹 식별자들의 수를 나타내는 제2 값을 갖는 제2 신택스 요소를 표시하기 위해 16 비트가 사용된다는 것을 지정하고, 포맷 규칙은 비주얼 미디어 파일 내의 서브픽처 다중 그룹 박스에서의 활성 트랙들의 수를 나타내는 제3 값을 갖는 제3 신택스 요소 세트 내의 각각의 신택스 요소를 표시하기 위해 16 비트가 사용된다는 것을 지정하는, 방법.
동작 8. 동작 5의 방법으로서, 포맷 규칙은 활성 트랙들의 수를 나타내는 제1 값을 갖는 제1 신택스 요소 바로 뒤에 16 비트가 예약되거나 - 제2 신택스 요소는 서브그룹 식별자들의 수를 나타내는 제2 값을 가짐 -, 또는 활성 트랙들의 수를 나타내는 제3 값을 갖는 제3 신택스 요소 세트 내의 각각의 신택스 요소가 예약된다는 것을 지정하는, 방법.
동작 9. 동작 5의 방법으로서, 포맷 규칙은 활성 트랙들의 수를 나타내는 제1 값을 갖는 제1 신택스 요소 바로 뒤에 예약된 비트가 없거나 - 제2 신택스 요소는 서브그룹 식별자들의 수를 나타내는 제2 값을 가짐 -, 또는 활성 트랙들의 수를 나타내는 제3 값을 갖는 제3 신택스 요소 세트 내의 각각의 신택스 요소가 예약된다는 것을 지정하는, 방법.
동작 10. 동작 1 내지 동작 9 중 어느 하나의 방법으로서, 변환은 포맷 규칙에 따라 비주얼 미디어 파일을 생성하고 비트스트림을 비주얼 미디어 파일에 저장하는 것을 포함하는, 방법.
동작 11. 동작 1 내지 동작 9 중 어느 하나의 방법으로서, 변환은 비주얼 미디어 파일을 생성하는 것을 포함하고, 이 방법은 비주얼 미디어 파일을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 방법.
동작 12. 동작 1 내지 동작 9 중 어느 하나의 방법으로서, 변환은 비트스트림을 재구성하기 위해 포맷 규칙에 따라 비주얼 미디어 파일을 파싱하는 것을 포함하는, 방법.
동작 13. 동작 1 내지 동작 12 중 어느 하나의 방법으로서, 비주얼 미디어 파일은 다목적 비디오 코딩(VVC)에 의해 프로세싱되는, 방법.
동작 14. 비주얼 미디어 데이터를 프로세싱하기 위한 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 명령어들은, 프로세서에 의한 실행 시에, 프로세서로 하여금 동작 1 내지 동작 13 중 하나 이상에 언급된 방법을 구현하게 하는, 장치.
동작 15. 프로세서로 하여금 동작 1 내지 동작 13 중 어느 하나에 언급된 방법을 구현하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
동작 16. 동작 1 내지 동작 13 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
동작 17. 동작 1 내지 동작 13 중 하나 이상에 언급된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
동작 18. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램 제품으로서, 코드는, 프로세서에 의해 실행될 때, 프로세서로 하여금 동작 1 내지 동작 13 중 어느 하나에 언급된 방법을 구현하게 하는, 컴퓨터 프로그램 제품.
동작 19. 동작 1 내지 동작 13 중 어느 하나에 따라 생성되는 파일 포맷을 준수하는 비주얼 미디어 파일이 저장되어 있는 컴퓨터 판독 가능 매체.
동작 20. 비주얼 미디어 파일 생성 방법으로서, 동작 1 내지 동작 13 중 어느 하나에 언급된 방법에 따라 비주얼 미디어 파일을 생성하는 단계, 및 비주얼 미디어 파일을 컴퓨터 판독 가능 프로그램 매체에 저장하는 단계를 포함하는, 방법.
동작 21. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은 동작 1 내지 동작 13 중 어느 하나에 언급되어 있는, 비일시적 컴퓨터 판독 가능 기록 매체. 일부 실시예들에서, 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성되는 비주얼 미디어 파일의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 이 방법은: 포맷 규칙에 따라 비주얼 미디어 데이터에 기초하여 비주얼 미디어 파일을 생성하는 단계를 포함하며, 포맷 규칙은 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고, 포맷 규칙은 레벨 식별을 나타내는 값을 갖는 신택스 요소가 8 비트를 사용하여 서브픽처 공통 그룹 박스 또는 서브픽처 다중 그룹 박스 중 임의의 하나 또는 둘 모두에 코딩된다는 것을 지정하는, 비일시적 컴퓨터 판독 가능 기록 매체.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오의 픽셀 표현으로부터 대응하는 비트스트림 표현으로 또는 그 반대로 변환하는 동안 비디오 압축 알고리즘들이 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이, 비트스트림 내의 상이한 위치들에 병치(co-locate)되거나 분산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 오차 잔차 값들의 관점에서 그리고 또한 헤더들 내의 비트들 및 비트스트림 내의 다른 필드들을 사용하여 인코딩될 수 있다. 게다가, 변환 동안, 디코더는, 위의 해결책들에 설명된 바와 같이, 결정에 기초하여, 일부 필드들이 존재하거나 존재하지 않을 수 있다는 것에 대한 지식으로 비트스트림을 파싱할 수 있다. 유사하게, 인코더는 특정 신택스 필드들이 포함되어야 하는지 여부를 결정할 수 있고, 그에 따라 코딩된 표현으로부터 신택스 필드들을 포함하거나 제외하는 것에 의해 코딩된 표현을 생성할 수 있다.
본 문서에 설명된 개시된 및 다른 해결책들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로로, 또는 본 문서에 개시된 구조 및 그의 구조적 등가물을 포함한, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품으로서, 즉 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호를 실현하는 조성물(composition of matter), 또는 이들 중 하나 이상의 조합일 수 있다. “데이터 프로세싱 장치"라는 용어는, 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함한, 데이터를 프로세싱하기 위한 모든 장치, 디바이스, 및 머신을 포괄한다. 장치는, 하드웨어 외에도, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들면, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인공적으로 생성된 신호, 예를 들면, 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성되는 머신 생성 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 알려짐)은, 컴파일되는(compiled) 또는 인터프리트되는(interpreted) 언어들을 포함한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램(stand-alone program)으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함한, 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램이 파일 시스템에서의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예를 들면, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합 파일들(coordinated files)(예를 들면, 하나 이상의 모듈, 서브 프로그램(sub program), 또는 코드 부분(portion of code)을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서 또는 하나의 사이트에 위치하거나 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 문서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하여 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들이 또한 특수 목적 로직 회로, 예를 들면, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치가 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들면, 자기, 자기 광학 디스크, 또는 광학 디스크를 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 이들로 데이터를 전송하도록 동작 가능하게 결합될 수 있거나, 또는 둘 모두일 것이다. 그렇지만, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예로서, 반도체 메모리 디바이스, 예를 들면, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들면, 내장형 하드 디스크 또는 이동식 디스크; 자기 광학 디스크; 및 CD ROM과 DVD-ROM 디스크를 포함한, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 구체적 사항들을 포함하지만, 이들은 임의의 주제의 범위 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 기술들의 특정의 실시예들에 특정적일 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별적인 실시예들의 맥락에서 본 특허 문서에 설명되는 특정한 특징들이 또한 단일 실시예에서 조합하여 구현될 수 있다. 이와 달리, 단일 실시예의 맥락에서 설명되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 기능하는 것으로 위에서 설명되고 심지어 처음에 그 자체로서 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징이 일부 경우에 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정의 순서로 묘사되지만, 이것은, 바람직한 결과를 달성하기 위해, 그러한 동작들이 도시된 특정의 순서로 또는 순차적 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 본 특허 문서에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안된다.
단지 몇 가지 구현들 및 예들이 설명되고 다른 구현들, 향상들 및 변형들이 이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (15)

  1. 비주얼 미디어 데이터를 프로세싱하는 방법으로서,
    포맷 규칙에 따라 비주얼 미디어 파일과 비주얼 미디어 데이터의 비트스트림 사이의 변환을 수행하는 단계를 포함하며,
    상기 포맷 규칙은 상기 비주얼 미디어 파일에서의 신택스 요소의 특성을 지정하고,
    상기 신택스 요소는 상기 비트스트림과 연관된 제약 정보를 표시하는 데 사용되는 바이트 수를 나타내는 값을 갖는, 방법.
  2. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 6 비트를 사용하여 상기 비주얼 미디어 파일에 코딩된다는 것을 지정하는, 방법.
  3. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 상기 비주얼 미디어 파일에서의 프로필 티어 레벨 다층 활성화 플래그 신택스 요소 바로 뒤에 상기 비주얼 미디어 파일에 코딩된다는 것을 지정하는, 방법.
  4. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 상기 비주얼 미디어 파일에 코딩된다는 것을 지정하고, 상기 비주얼 미디어 파일에서의 일반 제약 정보 신택스 요소에서의 바이트 수를 지정하며,
    상기 포맷 규칙은 1과 동일한 상기 신택스 요소의 값이 상기 일반 제약 정보 신택스 요소에서의 일반 제약 정보 플래그가 0과 동일하다는 것을 나타내고 상기 일반 제약 정보 신택스 요소가 상기 비주얼 미디어 파일에서의 프로필 티어 레벨 레코드에 포함되도록 허용되지 않는다는 것을 지정하는, 방법.
  5. 제1항에 있어서,
    상기 포맷 규칙은 상기 비주얼 미디어 파일에 일반 제약 정보 신택스 요소를 포함시키기 위한 조건이 신택스 요소에 의해 표시된 상기 값이 1 초과인지 여부에 의존한다는 것을 지정하는, 방법.
  6. 제1항에 있어서,
    상기 포맷 규칙은 상기 비주얼 미디어 파일에서의 다른 신택스 요소에 대해 5 비트가 사용된다는 것을 지정하고,
    상기 다른 신택스 요소는 상기 비주얼 미디어 파일 내의 디코더 구성 레코드에서의 네트워크 추상화 계층 유닛 유형을 나타내는 다른 값을 갖는, 방법.
  7. 제1항에 있어서, 상기 비주얼 미디어 파일에서의 트랙은 하나 이상의 출력 계층 세트를 포함하는 비디오 비트스트림을 포함하고,
    상기 포맷 규칙은 다른 신택스 요소가 트랙에 대해 표시되는 것을 지정하며,
    상기 다른 신택스 요소는 상기 트랙이 상기 하나 이상의 출력 계층 세트로부터의 특정 출력 계층 세트에 대응하는 비디오 비트스트림을 포함하는지 여부를 나타내는, 방법.
  8. 제7항에 있어서, 상기 다른 신택스 요소는 상기 트랙이 다수의 출력 계층 세트들에 대응하는 상기 비디오 비트스트림을 포함한다는 것을 나타내는, 방법.
  9. 제7항에 있어서, 상기 다른 신택스 요소는 상기 트랙이 상기 하나 이상의 출력 계층 세트로부터의 상기 특정 출력 계층 세트에 대응하지 않는 상기 비디오 비트스트림을 포함한다는 것을 나타내는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 변환은 상기 포맷 규칙에 따라 상기 비주얼 미디어 파일을 생성하고 상기 비트스트림을 상기 비주얼 미디어 파일에 저장하는 것을 포함하는, 방법.
  11. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 변환은 상기 비주얼 미디어 파일을 생성하는 것을 포함하고, 상기 방법은 상기 비주얼 미디어 파일을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 더 포함하는, 방법.
  12. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 변환은 상기 비트스트림을 재구성하기 위해 상기 포맷 규칙에 따라 상기 비주얼 미디어 파일을 파싱하는 것을 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 비주얼 미디어 파일은 다목적 비디오 코딩(VVC)에 의해 프로세싱되는, 방법.
  14. 비주얼 미디어 데이터를 프로세싱하기 위한 장치로서, 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하며, 상기 명령어들은, 상기 프로세서에 의한 실행 시에, 상기 프로세서로 하여금 제1항 내지 제13항 중 하나 이상의 항에 언급된 방법을 구현하게 하는, 장치.
  15. 프로세서로 하여금 제1항 내지 제13항 중 어느 한 항에 언급된 방법을 구현하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020210124542A 2020-09-17 2021-09-17 코딩된 비디오에서의 디코더 구성 레코드 KR20220037387A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063079892P 2020-09-17 2020-09-17
US63/079,892 2020-09-17

Publications (1)

Publication Number Publication Date
KR20220037387A true KR20220037387A (ko) 2022-03-24

Family

ID=77801577

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020210124589A KR20220037388A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서의 프로필, 티어, 레벨 및 일반 제약 표시
KR1020210124542A KR20220037387A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서의 디코더 구성 레코드
KR1020210124889A KR20220037396A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서의 서브픽처 엔티티 그룹 시그널링

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210124589A KR20220037388A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서의 프로필, 티어, 레벨 및 일반 제약 표시

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210124889A KR20220037396A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서의 서브픽처 엔티티 그룹 시그널링

Country Status (5)

Country Link
US (3) US11902552B2 (ko)
EP (3) EP3972275A1 (ko)
JP (3) JP7268107B2 (ko)
KR (3) KR20220037388A (ko)
CN (3) CN114205598A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7432735B2 (ja) * 2019-12-26 2024-02-16 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイルティアレベルパラメータセット
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
JP7431330B2 (ja) 2019-12-26 2024-02-14 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイル、層及びレイヤの指示
EP4066387A4 (en) 2019-12-27 2023-02-15 ByteDance Inc. SUBPICTURE SIGNALING IN PARAMETER SETS
EP4070466A4 (en) 2020-01-09 2023-05-10 ByteDance Inc. SIGNALING A HIGH-LEVEL SYNTAX DISPLAY
US11451811B2 (en) * 2020-04-05 2022-09-20 Tencent America LLC Method and apparatus for video coding
US11902552B2 (en) 2020-09-17 2024-02-13 Lemon Inc. Decoder configuration record in coded video
US11792433B2 (en) * 2020-09-28 2023-10-17 Sharp Kabushiki Kaisha Systems and methods for signaling profile and level information in video coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9161004B2 (en) 2012-04-25 2015-10-13 Qualcomm Incorporated Identifying parameter sets in video files
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
EP3026899A4 (en) 2013-07-22 2016-12-28 Sony Corp IMAGE PROCESSING DEVICE AND METHOD
US20150264404A1 (en) 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
EP4020983A1 (en) * 2014-12-31 2022-06-29 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US10798422B2 (en) * 2015-10-20 2020-10-06 Intel Corporation Method and system of video coding with post-processing indication
US10419768B2 (en) 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
CN110506421B (zh) 2017-03-20 2023-11-07 夏普株式会社 用于以媒体应用程序格式发信号通知可伸缩视频的***和方法
GB2567625B (en) 2017-10-12 2020-07-15 Canon Kk Method, device, and computer program for generating timed media data
WO2019234608A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with more than four sub-blocks
WO2020044254A1 (en) 2018-08-28 2020-03-05 Beijing Bytedance Network Technology Co., Ltd. Binarization of partitioning related to extended quadtree
EP3854106B1 (en) * 2018-09-18 2023-10-04 Nokia Technologies Oy Method and apparatus for non-binary profile constraint signaling for video coding
RS64353B1 (sr) 2019-01-09 2023-08-31 Huawei Tech Co Ltd Signaliziranje identifikatora podslika kod video kodiranja
CA3127848C (en) 2019-02-02 2024-06-11 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
US11190793B2 (en) * 2019-07-09 2021-11-30 Qualcomm Incorporated Memory constraint for adaptation parameter sets for video coding
US11375223B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for signaling output layer set with sub-picture
US11778215B2 (en) 2020-02-28 2023-10-03 Qualcomm Incorporated Coding output layer set data and conformance window data of high level syntax for video coding
US11611778B2 (en) * 2020-05-20 2023-03-21 Sharp Kabushiki Kaisha Systems and methods for signaling general constraint information in video coding
US11902552B2 (en) 2020-09-17 2024-02-13 Lemon Inc. Decoder configuration record in coded video
WO2022074295A1 (en) 2020-10-07 2022-04-14 Nokia Technologies Oy A coded picture with mixed vcl nal unit type

Also Published As

Publication number Publication date
JP7268106B2 (ja) 2023-05-02
JP7268107B2 (ja) 2023-05-02
JP7209062B2 (ja) 2023-01-19
US20220086473A1 (en) 2022-03-17
EP3972274A1 (en) 2022-03-23
JP2022050368A (ja) 2022-03-30
JP2022050369A (ja) 2022-03-30
EP3972265A1 (en) 2022-03-23
US20220086497A1 (en) 2022-03-17
CN114205600A (zh) 2022-03-18
CN114205598A (zh) 2022-03-18
US20220086385A1 (en) 2022-03-17
US11902552B2 (en) 2024-02-13
JP2022050367A (ja) 2022-03-30
KR20220037388A (ko) 2022-03-24
CN114205601A (zh) 2022-03-18
KR20220037396A (ko) 2022-03-24
EP3972275A1 (en) 2022-03-23

Similar Documents

Publication Publication Date Title
EP3972265A1 (en) Decoder configuration record in coded video
US11831921B2 (en) Video operating points record syntax and semantics
KR20220037393A (ko) 비디오 코딩에서의 디코딩 능력 정보 저장
KR20220047409A (ko) 비디오 코딩에서의 적응 파라미터 세트 저장
US20230269384A1 (en) Roll sample group in vvc video coding
WO2022068839A1 (en) Signalling of auxiliary information
KR20220142957A (ko) 서브픽처 엔티티 그룹에 대한 레벨 표시자