KR20220037399A - 코딩된 비디오에서 동작 포인트 엔티티 그룹 시그널링 - Google Patents

코딩된 비디오에서 동작 포인트 엔티티 그룹 시그널링 Download PDF

Info

Publication number
KR20220037399A
KR20220037399A KR1020210125019A KR20210125019A KR20220037399A KR 20220037399 A KR20220037399 A KR 20220037399A KR 1020210125019 A KR1020210125019 A KR 1020210125019A KR 20210125019 A KR20210125019 A KR 20210125019A KR 20220037399 A KR20220037399 A KR 20220037399A
Authority
KR
South Korea
Prior art keywords
bitstream
visual media
layer
group
video
Prior art date
Application number
KR1020210125019A
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 KR20220037399A publication Critical patent/KR20220037399A/ko

Links

Images

Classifications

    • 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
    • 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/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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
    • H04N21/234336Processing 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 by media transcoding, e.g. video is transformed into a slideshow of still pictures or audio is converted into text
    • 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
    • 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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

파일 형식에 따라 시각 매체 파일을 생성하거나 파싱하는 시스템, 방법 및 장치는 시각 매체 미디어와 형식 규칙에 따라 시각 매체 데이터의 비트스트림을 저장하는 시각 매체 파일 간의 변환을 수행하는 것을 포함한다. 시각 매체 파일은 특정 유형의 엔티티 그룹에 속하는 다중 트랙들을 저장한다. 형식 규칙은 그룹 식별자의 특정 유형에 대한 트랙 참조가 있는 다중 트랙들에 응답하여 다중 트랙들이 (A) 특정 유형의 샘플 그룹을 운반하는 것을 생략하거나 (B) 특정 유형의 샘플 그룹의 정보가 특정 유형의 엔터티 그룹의 정보와 일치하게 특정 유형의 샘플 그룹을 운반하도록 지정한다.

Description

코딩된 비디오에서 동작 포인트 엔티티 그룹 시그널링{OPERATING POINT ENTITY GROUP SIGNALING IN CODED VIDEO}
관련 출원들과의 상호 참조
파리 조약 하에서 적용 가능한 특허법 및/또는 시행령에 따라, 본원은 2020년 9월 17일에 출원된 미국 가출원 제63/079,946호, 2020년 10월 7일에 출원된 미국 가출원 제63/088,786호에 대한 우선권 및 관련 효익들을 우선권 주장 기간에 맞춰(timely) 주장한다. 특허법에 따른 모든 목적들을 위해, 전술한 출원들의 전체 개시사항들은 본원의 개시의 일부로서 참고로 포함된다. 특허법에 따른 모든 목적들을 위해, 전술한 출원들의 전체 개시사항들은 본원의 개시의 일부로서 참고로 포함된다.
본 특허 문서는 파일 포맷에서 디지털 오디오 비디오 미디어 정보의 생성, 저장 및 소비에 연관된다.
디지털 비디오는 인터넷과 다른 디지털 통신 네트워크 상의 최대 대역폭 사용(bandwidth use)을 차지한다. 비디오를 수신 및 재생(displaying)할 수 있는 연결된 사용 장치의 수가 증가함에 따라, 디지털 비디오 사용의 대역폭 요구는 계속 증가(grow)할 것으로 기대되고 있다.
본 문서는 파일 포맷에 따라 시각 미디어 파일을 파싱하거나 작성하기 위한 시각 미디어 프로세싱 장치에 의해 사용될 수 있는 기술들을 개시한다.
한 예시적 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 파일 레벨 정보가 동작 포인트 정보를 포함하는 특정 유형의 샘플 그룹을 포함하는 다중 트랙 중 하나 이상의 트랙을 특정하는 신택스 요소를 포함한다는 포맷 규칙에 따라 시각 미디어 데이터와 다중 트랙에 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다.
다른 예시적 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다. 시각 미디어 파일은 하나 이상의 비디오 레이어를 포함하는 하나 이상의 트랙을 저장한다. 포맷 규칙은 레이어 종속성 정보(layer dependency information)를 지시하는 신택스 요소들의 제1 세트가 시각 미디어 파일에 저장되는지 여부는 시각 미디어 파일의 모든 레이어가 독립적임을 지시하는 제2 신택스 요소가 1을 갖는지 여부에 기초한다고 특정한다.
다른 예시적인 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 다중 트랙에 저장된 반복적인 AUD NAL(access unit delimiter network access layer) 유닛들이 다중 트랙에서 비트스트림을 암시적으로 복원하는 동안 처리되는 방식을 특정하는 포맷 규칙에 따라 시각 미디어 데이터와 다중 트랙에 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다.
다른 예시적인 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다. 시각 미디어 파일은 하나 이상의 비디오 레이어를 포함하는 하나 이상의 트랙을 저장한다. 시각 미디어 파일은 OP(operation point, 동작 포인트)의 정보를 포함한다. 포맷 규칙은 신택스 요소가 샘플 그룹 엔트리 및 OP의 그룹 박스에 포함되는지 여부 혹은 어떻게 포함되는지에 응답하여 단일 비디오 레이어를 포함하는 OP에 응답하도록 지정한다. 신택스 요소는 OP의 출력 레이어 세트에 대한 인덱스를 지시하도록 구성된다.
다른 예시적인 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 그룹 식별자에 대한 특정 유형의 트랙 참조를 갖는 다중 트랙에 응답하여 다중 트랙이 (A) 특정 유형의 샘플 그룹을 운반하는 것을 생략하거나 (B) 특정 유형의 엔티티 그룹의 정보와 특정 유형의 샘플 그룹의 정보가 일치하는 특정 유형의 샘플 그룹을 운반하도록 특정하는 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다.
다른 예시적인 국면에서, 시각 미디어 프로세싱 방법이 개시된다. 이 방법은 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계를 포함한다. 시각 미디어 파일은 다중 트랙으로 구성되며, 시각 미디어 파일은 시각 미디어 파일의 동작 포인트에 대한 정보를 담고 있는 엔티티 그룹과 각 동작 포인트를 담고 있는 트랙을 저장한다. 포맷 규칙은 각 동작 포인트의 정보를 전달하는 엔티티 그룹 혹은 샘플 그룹을 저장하는 시각 미디어 파일에 응답하는 시각 미디어 파일의 속성을 지정한다.
또 다른 예시적 국면에서, 시각 미디어 작성(writing) 장치가 개시된다. 장치는 상기에서 설명된 방법들을 실행하는 프로세서를 포함한다.
또 다른 예시적 국면에서, 시각 미디어 파싱(parsing) 장치가 개시된다. 장치는 상기에서 설명된 방법들을 실행하는 프로세서를 포함한다.
또 다른 예시적 국면에서, 코드가 저장된 컴퓨터 판독 가능한 매체가 개시된다. 이 코드는 프로세서 실행 가능한 코드의 형태로 여기서 설명된 방법들 중 하나를 구현한다.
또 다른 예시적 국면에서, 시각 미디어 파일을 저장하는 컴퓨터 판독 가능한(computer readable) 프로그램 매체(program medium)가 개시된다. 시각 미디어는 본 문서에 개시된 방법을 이용하여 생성되거나 파싱된다.
이들 및 다른 국면들이 이 명세서에서 더 상세히 설명된다.
도 1은 예시적인 비디오 프로세싱 시스템의 블록도이다.
도 2는 비디오 프로세싱 장치의 블록도이다.
도 3은 예시적인 비디오 프로세싱 방법의 흐름도이다.
도 4는 본 개시의 일부 실시예에 따른 비디오 코딩 시스템의 블록도이다.
도 5는 본 개시의 일부 실시예에 따른 인코더의 블록도이다.
도 6은 본 개시의 일 부 실시예에 따른 디코더의 블록도이다.
도 7은 예시적인 인코더 블록도를 도시한다.
도 8은 0인 vps_max_tid_il_ref_pics_plus1[ 1 ][ 0 ]를 갖는 OLS2를 포함하는 두 개의 OLS를 갖는 비트스트림의 일 예를 도시한다.
도 9a 내지 9f는 예시적인 시각 미디어 프로세싱 방법들의 흐름도들을 도시한다.
섹션의 표제들은 이 명세서에서 이해의 편의를 위한 것으로 각 섹션에 개시된 기술들 및 실시예들의 범위를 그 섹션에만 한정하는 것이 아니다. 또한, H.266용어는 이해의 편의를 위해서만 사용되며 개시된 기술들의 범위를 제한하기 위한 것이 아니다. 이와 같이, 여기에 설명된 기술은 다른 비디오 코덱 프로토콜 및 설계에도 적용할 수 있다. 본 문서에서, 편집 변경 사항은 VVC 사양 또는 ISOBMFF 파일 포맷 사양의 현재 드래프트와 관련하여 취소된 텍스트를 나타내는 취소선과 추가된 텍스트(굵은 기울임꼴 포함)를 나타내는 강조 표시로 텍스트에 표시된다.
1. 초기 논의
본 문서는 비디오 파일 포맷에 연관된다. 특히, ISOBMFF(ISO bas media file format) 기반 미디어 파일에 스케일러블한(scalable) 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 CU 레벨 가중치를 갖는 양 예측(bi-prediction with CU-level weights)
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차 지수 골롬(k-th order exponential-Golomb)
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 진보된 비디오 코딩(Advanced Video Coding, AVC) 및 H.265/HEVC 표준들을 산출했다. H.262 부터, 비디오 코딩 표준은 시간적 예측과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기반한다. HEVC 너머의 미래 비디오 기술을 탐구하기 위해, 공동 비디오 탐구 팀(Joint Video Exploration Team, JVET)이 VCEG 및 MPEG에 의해 공동으로 2015년 설립되었다. 그 이후 많은 새로운 방법들이 JVET에 의해 채택되어 공동 탐구 모델(Joint Exploration Model, JEM)로 명명된 참조 소프트웨어에 투입되었다. JVET는 이후 VVC(Versatile Video Coding) 프로젝트가 공식적으로 출범된 이후 JVET(Joint Video Experts Team)로 이름이 변경되었다. VVC는 새로운 코딩 표준으로, HEVC에 비해 50% 비트율 저감을 목표로 하며, 2020년 7월 1일에 JVET의 19번째 미팅이 마무리됨으로써 확정된 바 있다.
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)은 텔레비전 방송, 화상 회의, 저장 매체에서 재생과 같은 기존 용도와 적응적 비트율 스트리밍, 비디오 영역 추출, 다중 코딩된 비디오 비트스트림에서 콘텐츠 합성 및 병합, 멀티뷰(Multiview) 비디오, 스케일러블(scalable) 레이어드 코딩, 및 뷰포트(viewport) 적응적 360도 이머시브(immersive) 미디어와 같은 보다 새롭고 고차원적인 용도를 포함하여 최대한 광범위한 응용 프로그램에서 사용되도록 설계되었다.
3.2. 파일 포맷 표준
미디어 스트리밍 응용 프로그램들은 일반적으로 IP, TCP, HTTP 트랜스포트 방법에 기초하며, 일반적으로 ISOBMFF(ISO base media file format)[[7]]과 같은 파일 포맷에 기초한다. 이러한 스트리밍 시스템 중 하나는 DASH(dynamic adaptive streaming over HTTP)이다. ISOBMFF 및 DASH 기반 비디오 포맷을 사용하기 위해, AVC 파일 포맷 및 HEVC 파일 포맷 같은 특정 비디오 포맷에 특정한 파일 포맷 사양이 ISOBMFF 트랙 및 DASH 표현 및 세그먼트들에서 비디오 콘텐츠의 캡슐화를 위해 요구된다. 예를 들어, 프로필, 티어, 레벨, 및 다른 것들과 같은 비디오 비트스트림에 대한 중요 정보들은, 예를 들어, 스트리밍 세션의 시작에서의 초기화 및 스트리밍 세션 동안 스트림 적응(stream adaptation) 모두를 위한 적절한 미디어 세그먼트의 선택 등과 같은 콘텐츠 선택 목적을 위한 파일 포맷 레벨 메타데이터 및/혹은 DASH MPD(media presentation description)로 나타나야 한다.
마찬가지로, ISOBMFF 기반 이미지 포맷의 사용을 위해, AVC 이미지 파일 포맷 및 HEVC 이미지 파일 포맷과 같은 이미지 포맷에 특정한 파일 포맷 사양이 필요하다.
ISOBMFF 기반의 VVC 비디오 콘텐츠의 저장을 위한 파일 포맷인 VVC 비디오 파일 포맷은 현재 MPEG에 의해 개발되고 있다. 가장 최근의 드래프트 사양은 2020년 7월에 개시된 MPEG 출력 문서 N19454, "Information technology ― Coding of audio-visual objects ― Part 15: Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format ― Amendment 2: Carriage of VVC and EVC in ISOBMFF" 이다.
VVC를 이용하여 코딩된 이미지 콘텐츠의 저장을 위한 파일 포맷인 ISOBMFF 기반의 VVC 이미지 파일 포맷이 현재 MPEG에 의해 개발되고 있다. 가장 최근의 VVC 이미지 파일 포맷의 드래프트 사양은 2020년 7월에 개시된 MPEG 출력 문서 N19460, "Information technology ― High efficiency coding and media delivery in heterogeneous environments ― Part 12: Image File Format ― Amendment 3: Support for VVC, EVC, slideshows and other improvements"에 포함된다.
3.3. VVC에서 시간적 확장성(scalability) 지원
VVC는 HEVC에서와 유사한 시간적 확장성 지원을 포함한다. 이러한 지원은 NAL 유닛 헤더에서 시간적 ID의 시그널링, 특정 시간적 서브 레이어의 픽처들은 하위 시간적 서브레이어의 픽처들에 의한 인터 예측 참조를 위해 사용될 수 없다는 제한, 서브 비트스트림 추출 프로세스 및 적절한 입력의 각 서브 비트스트림 추출 출력이 비트스트림에 부합해야한다는 요구 사항을 포함한다.MANEs(media-aware network elements)는 시간적 확장성에 기초하여 스트림 적응 목적을 위해 NAL 유닛 헤더에서 시간적 ID를 활용할 수 있다. MANEs(media-aware network elements)는 시간적 확장성에 기초하여 스트림 적응 목적을 위해 NAL 유닛 헤더에서 시간적 ID를 활용할 수 있다.
3.4. VVC에서 시퀀스 내 픽처 해상도 변경
AVC 및 HEVC에서, 새로운 SPS를 사용하는 새로운 시퀀스가 IRAP 픽처로 시작되지 않는 한 픽처의 공간적 해상도는 변경할 수 없다. VVC는 항상 인트라 코딩되는 IRAP 픽처의 인코딩 없이 시퀀스 내의 한 위치에서의 픽처 해상도 변경을 가능하게 한다. 이러한 특징은 RPR(reference picture resampling)으로 종종 지칭되는데, 참조 픽처가 디코딩된 현재 픽처와 다른 해상도를 갖는 경우 인터 예측을 위해 사용되는 참조 픽처의 리샘플링을 필요로 하기 때문이다.
기존 실시예들의 움직임 보상 모듈을 재사용하는 것을 허용하기 위해, 스케일링 비율은 1/2 (참조 픽처에서 현재 픽처로 2회 다운샘플링)이상 8 이하(8회 업샘플링)로 제한된다. 수평 및 수직 스케일링 비율은 픽처 너비 및 높이, 참조 픽처 및 현재 픽처에 대해 특정된 좌측, 우측, 상단 및 하단 스케일링 오프셋에 기초하여 유도된다.
RPR은 예를 들어 네트워크 상태 변화에 대처하기 위해 스트리밍 혹은 화상 회의 시나리오에서 순간적인 비트 율 스파이크를 유발하는, IRAP 픽처를 코딩할 필요가 없는 해상도 변경을 허용한다. RPR은 또한 전체 비디오 영역 혹은 일부 관심 영역에 확대/축소가 필요한 응용 프로그램 시나리오에서도 사용될 수 있다. 스케일링 윈도우 오프셋은 보다 넓은 범위의 확대/축소 기반 응용 프로그램들을 지원하기 위해 음수일 수 있다. 음수인 스케일링 윈도우 오프셋은 추출된 서브 비트스트림에 대해 원본 비트스트림에서와 동일한 스케일링 윈도우를 유지하면서 멀티 레이어 비트스트림에서 서브픽처 시퀀스의 추출을 가능하게 한다.
픽처 리샘플링 및 움직임 보상이 서로 다른 두 단계로 적용되는 HEVC의 스케일러블 확장에서 공간적 확장성(scalability)와 다르게, VVC에서의 RPR은 샘플 위치 유도와 움직임 벡터 스케일링이 움직임 보상 동안 수행되는 블록 레벨에서의 동일한 프로세스의 일부로 수행된다.
구현 복잡성을 제한하기 위한 노력에 따라, CLVS에서의 픽처들이 픽처마다 다중 서브 픽처들을 갖는 경우, CLVS 내의 픽처 해상도 변경은 허용되지 않는다. 또한, 디코더 측 움직임 벡터 개선, 양 방향 광학 흐름, 및 광학 흐름 기반 예측 개선은 현재 픽처와 참조 픽처들 간에 RPR이 사용되는 경우 적용되지 않는다. 시간적 움직임 벡터 후보들의 유도를 위한 동일 위치(collocated) 픽처는 현재 픽처와 동일한 픽처 크기, 스케일링 윈도우 오프셋, CTU 사이즈를 갖도록 제한된다.
RPR 지원을 위해, VVC 설계의 다른 일부 측면들이 HEVC와는 상이하게 구성된다. 먼저, SPS에서 최대 픽처 해상도 및 대응 적합성 윈도우가 시그널링되는 한편, 픽처 해상도 및 대응 적합성 및 스케일링 윈도우는 SPS 대신 PPS에서 시그널링된다. 응용 프로그램들에서, SPS에서의 대응 적합성 윈도우 오프셋 기반의 최대 픽처 해상도는 절단(cropping) 이후 의도한 혹은 원하는 픽처 출력 크기로 사용될 수 있다. 이후, 단일 레이어 비트스트림의 경우, 각 픽처 저장소(하나의 디코딩된 픽처의 저장을 위한 DPB의 슬롯)는 최대 픽처 해상도를 갖는 디코딩된 픽처의 저장에 필요한 버퍼 사이즈를 차지한다.
3.5. VVC에서 멀티레이어 확장성 지원
VVC 코어 설계에서 RPR에 의해 현재 픽처와 상이한 크기의 참조 픽처들로부터 인터 예측하는 능력을 갖는 것은 VVC가 상이한 해상도의 다중 레이어들(예를 들어, 각 표준 정의 및 고 정의 해상도들에 대한 두 개의 레이어들)을 포함하는 비트스트림들을 쉽게 지원할 수 있게 한다. VVC 디코더에서, 이러한 기능성은 공간적 확장성 지원을 위해 필요한 업샘플링 기능성이 RPR 업샘플링 필터의 재사용에 의해 제공될 수 있는 것과 같이 추가적인 어떠한 시그널링 프로세싱 레벨 코딩 도구의 필요 없이 통합될 수 있다. 그럼에도 불구하고, 비트스트림의 확장성 지원을 가능하게 하는 추가적인 상위 레벨 신택스 설계가 필요하다.
확장성은 VVC에서 지원될 수 있으나, 다중 레이어 프로필에만 포함될 수 있다. AVC 및 HEVC 확장을 포함한 임의의 앞선 비디오 코딩 표준들에서 확장성 지원과 상이하게, VVC 확장성의 설계는 가능한 한 단일 레이어 디코더 구현예에 가깝도록 만들어졌다. 멀티 레이어 비트스트림들에 대한 디코딩 기능은 마치 비트스트림에 단일 레이어만 존재하는 것처럼 특정된다. 예를 들어, DPB 크기와 같은 디코딩 기능은 디코딩될 비트스트림의 레이어 수와 무관한 방식으로 지정된다. 기본적으로, 단일 레이어 비트스트림을 위해 설계된 디코더는 멀티 레이어 비트스트림들을 디코딩 하기 위해 많은 변경이 필요 하지 않다.
AVC 및 HEVC의 멀티 레이어 확장의 설계와 비교할 때, HLS 측면은 약간의 유연성을 희생하면서 상당 부분 단순화되었다. 예를 들어, 1) IRAP AU는 CVS에 존재하는 각 레이어에 대한 픽처를 포함하여야 하므로, 레이어 별 스타트업(startup) 디코딩 프로세스를 특정할 필요가 없다. 그리고 2) 유도된 POC 값들이 AU의 모든 픽처들에 대해 동일하도록, 복잡한 POC 재설정(resetting) 메카니즘 대신 POC 시그널링을 위한 훨씬 단순한 설계가 VVC에 포함된다.
HEVC에서와 같이, 레이어들과 레이어 종속성에 대한 정보는 VPS에 포함된다. OLS들에 대한 정보는 어떤 레이어가 OLS에 포함되는지, 어떤 레이어가 출력인지, 그리고 각 OLS와 연관된 PTL 및 HRD 파라미터들과 같은 다른 정보의 시그널링을 위해 제공된다. HEVC에서와 같이, 모든 레이어, 최상위 레이어만 혹은 사용자 지정 출력(custom output) 모드에서 지시된 특정 레이어들 만을 출력하는 세 가지 동작 모드가 있다.
VVC에서와 HEVC에서의 OLS 설계에는 몇몇 차이점이 존재한다. 먼저, HEVC에서는 레이어 세트들이 시그널링되며, 이후 OLS들이 레이어 세트들에 의해 시그널링되고, 각 OLS에 대해 출력 레이어들이 시그널링된다. HEVC에서의 설계는 출력 레이어 뿐 아니라 출력 레이어 디코딩을 위해 필요한 레이어가 아닌 레이어도 OLS에 속하도록 허용되었다. VVC에서의 설계는, OLS의 모든 레이어가 출력 레이어이거나 출력 레이어를 디코딩하는 데 필요한 레이어가 될 것을 요구한다. 따라서, VVC에서는 OLS들이 OLS의 출력 레이어들에 의해 지시되어 시그널링되고, 이후 VPS에서 지시된 레이어 종속성들에 의해 OLS에 속한 다른 레이어들이 유도된다. 또한, VVC는 각 레이어가 적어도 하나의 OLS에 포함될 것을 요구한다.
VVC OLS 설계에서의 또 다른 차이점은 OLS가 OLS에 매핑된 식별된 레이어들의 세트에 속하는 모든 NAL 유닛들로 구성되는 HEVC와 달리, VVC는 OLS에 매핑된 비출력 레이어들에 속하는 일부 NAL유닛들을 배제할 수 있다는 데 있다. 보다 상세하게는, VVC OLS는 ph_recovery_poc_cnt 가 0인 IRAP 혹은 GDR 픽처들 혹은 인터 레이어 예측에 사용되는 서브레이어들로부터의 픽처들만을 포함하는 비 출력 레이어들과 연관된 OLS와 매핑되는 레이어들의 세트로 구성된다. 이는 OLS를 형성하는 레이어들 내에서 모든 서브레이어들의 모든 "필수" 픽처들만을 고려하는 멀티 레이어 비트스트림에 대한 최적 레벨 값을 지시할 수 있게 한다. 여기서, "필수"란 출력 혹은 디코딩에 필요하다는 것을 의미한다. 도 8은 vps_max_tid_il_ref_pics_plus1[ 1 ][ 0 ]가 0인 2-레이어 비트스트림의 일 예를 도시하는데, 즉, OLS2가 추출될 때 레이어 L0의 IRAP 픽처들만이 유지되는 서브 비트스트림의 예를 보여준다.
AVC에서 및 HEVC에서와 유사하게 서로 다른 레이어들에 대해서는 서로 다른 RAP 주기를 허용하는 것이 유리한 일부 시나리오들을 감안하면, AU들은 비 정렬(non-aligned) RAP들을 갖는 레이어들을 갖는 것이 허용된다. 멀티 레이어 비트스트림에서의 보다 신속한 RAP들의 식별을 위해, 즉, 모든 레이어에서 RAP를 갖는 AU들의 경우, AUD(access unit delimiter)는 AU 가 IRAP AU 인지 혹은 GDR AU인지 여부를 지시하는 플래그를 갖는 HEVC와 달리 확장된다. 또한, AUD는 VPS가 다중 레이어들을 지시할 때 그러한 IRAP 혹은 GDR AU들에 존재하도록 강제된다. 그러나, VPS 혹은 VPS를 참조하지 않는 비트스트림들에 의해 지시되는 단일 레이어 비트스트림들을 위해, AUD는 HEVC에서와 같이 완전히 선택적인 사항이 된다. 왜냐하면, RAP가 AU와 각각의 파라미터 세트에서 제1 슬라이스의 NAL 유닛 유형으로부터 쉽게 탐지될 수 있기 때문이다.
디코딩 프로세스에 의해 필요한 파라미터 세트들을 비트스트림 추출 프로세스에서 배제하지 않음이 확실시되면서도 다중 레이어들에 의해 SPS들, PPS들, APS들의 공유를 가능케 하기 위해, 제1 레이어의 VCL NAL 유닛은 제1 레이어를 포함하는 모든 OLS들이 하위 레이어 ID 값에 의해 식별되는 레이어를 포함하는 한 동일 혹은 하위 레이어 ID 값을 갖는 SPS, PPS, APS를 참조할 수 있다.
3.6. VVC 비디오 파일 포맷의 일부 세부 사항
3.6.1. 다중 레이어를 갖는 VVC 저장 개요
다중 레이어를 갖는 비트스트림에 대한 지원은 다양한 도구를 포함하며, 다양한 도구들이 어떻게 사용될 수 있는지에 대한 다양한 '모델들'이 존재한다. 다중 레이어를 갖는 VVC 스트림은 다음과 같은 여러가지 방법으로 트랙에 배치될 수 있다.
1. 모든 레이어는 동작 포인트에 해당하는, 한 트랙의 모든 레이어.
2. 모든 레이어를 포함하는 동작 포인트는 존재하지 않는, 한 트랙의 모든 레이어.
3. 지시된 하나 이상의 트랙의 모든 샘플들을 포함하는 비트스트림은 동작 포인트에 해당하는 개별 트랙에 존재하는, 하나 이상의 레이어 혹은 서브 레이어.
4. 하나 이상의 트랙들로 이루어진 트랙 세트의 모든 NAL 유닛들을 포함하는 동작 포인트는 존재하지 않는 개별 트랙에 존재하는, 하나 이상의 레이어 혹은 서브 레이어.
VVC 파일 포맷은 하나 이상의 레이어를 트랙에 저장하는 것을 허용한다. 트랙 마다 다중 레이어의 스토리지가 사용될 수 있다. 예를 들어, 콘텐츠 제공자가 서브세팅(subsetting)을 의도하지 않은 멀티 레이어 비트스트림을 제공하고자 하는 경우, 혹은 각 레이어가 뷰(view)(예를 들어, 스테레오 쌍)에 해당하는 출력 레이어들의 기 정의된 몇 개의 세트를 위해 비트스트림을 생성하는 경우, 트랙은 그에 따라 생성될 수 있다.
VVC 비트스트림이 다중 트랙으로 표현되고, 플레이어가 다중 트랙에 레이어가 저장된 동작 포인트를 사용하는 경우, 플레이어는 VVC 디코더에 VVC 액세스 유닛들을 전달하기 전에 복원해야 한다.
VVC 동작 포인트는 트랙으로 명시적으로 표현될 수 있다. 즉, 트랙의 각 샘플은 기본적으로 혹은 'subp' 트랙 참조들을 확인(존재하는 경우)하고, 'vvcN' 트랙 참조들을 확인(존재하는 경우)하여 액세스 유닛을 포함한다. 액세스 유닛들은 동작 포인트의 일부인 모든 레이어 및 서브 레이어들의 NAL 유닛을 포함한다.
VVC 비트스트림의 저장은 다음과 같은 구조에 의해 지원된다.
a) 샘플 엔트리,
b) 동작 포인트 정보('vopi') 샘플 그룹,
c) 레이어 정보 ('linf') 샘플 그룹,
d) 동작 포인트 엔티티 그룹 ('opeg').
샘플 엔트리 내의 구조는 해당 샘플 엔트리와 관련된, 코딩된 비디오 및 비 VCL(non-VCL) 데이터 정보 등 샘플의 디코딩 또는 사용에 대한 정보를 제공한다.
동작 포인트 정보 샘플 그룹은 동작 지점을 구성하는 레이어 및 서브 레이어, 그들 간의 종속성(존재하는 경우), 프로필, 티어, 및 동작 포인트의 레벨 파라미터 및 기타 동작 지점과 관련된 정보와 같은 동작 포인트에 대한 정보를 기록한다.
레이어 정보 샘플 그룹은 트랙의 샘플들로 운반되는 모든 레이어 및 서브 레이어들을 나열한다.
동작 포인트 엔티티 그룹은 동작 지점을 구성하는 레이어 및 서브 레이어, 그들 간의 종속성(존재하는 경우), 프로필, 티어, 및 동작 포인트의 레벨 파라미터 및 기타 동작 지점과 관련된 정보와 각 동작 포인트를 운반하는 트랙들의 식별과 같은 동작 포인트에 대한 정보를 기록한다.
트랙을 찾기 위해 트랙 참조 사용과 결합되는 이러한 샘플 그룹들 혹은 동작 포인트 엔티티 그룹의 정보는 트랙 참조들을 사용하여 트랙들을 찾거나 동작 포인트 엔티티 그룹에서 독자(reader)가 기능에 따라 동작 포인트를 선택하고 선택한 동작 포인트를 디코딩 하는 데 필요한 관련 레이어 및 서브레이어를 포함하는 트랙을 식별하고 효율적으로 추출하기에 충분하다.
3.6.2. 데이터 공유 및 복원 VVC 비트스트림
3.6.2.1. 일반론
멀티 레이어 VVC 비트스트림을 운반하는 다중 트랙의 샘플들로부터 액세스 유닛을 복원하기 위해, 동작 포인트가 먼저 결정되어야 한다.
주의: 비트스트림이 다중 VVC 트랙에서 나타나면, 파일 파싱기(parser)는 선택된 동작 포인트에 필요한 트랙들을 하기와 같이 식별할 수 있다.
VVC 샘플 엔트리의 모든 트랙들을 찾는다.
트랙들이 동일한 ID에 대한 'oref' 트랙 참조를 포함하는 경우, 해당 ID를 VVC 트랙 혹은 'opeg' 엔티티 그룹으로 확인한다.
디코딩 용량 및 응용 프로그램 목적에 적합한 'opeg' 엔티티 그룹 또는 'vopi' 샘플 그룹에서 이러한 동작 포인트를 선택한다.
'opeg' 엔티티 그룹이 존재하는 경우, 트랙들의 세트가 정확히 선택된 동작 포인트를 나타냄을 지시한다. 따라서, VVC 비트스트림은 트랙들의 세트에서 복원되고 디코딩될 수 있다.
'opeg' 엔티티 그룹이 존재하지 않는 경우 (즉, 'vopi' 샘플 그룹이 존재하는 경우), 'vopi' 및 'linf' 샘플 그룹들로부터 어떤 트랙들의 세트가 선택된 동작 포인트를 디코딩하는데 필요한지를 탐색한다.
VVC 비트스트림을 운반하는 다중 VVC 트랙들로부터 비트스트림을 복원하기 위해, 목표 최대 값 TemporalId이 먼저 결정되어야 한다.
여러 트랙들이 액세스 유닛에 대한 데이터를 포함하는 경우, 트랙들에서 각 샘플들의 정렬은 샘플 디코딩 시간에 기초하여 수행된다. 즉, 편집 리스트들을 고려하지 않고 샘플까지의 시간 테이블(time-to-sample table)을 사용한다.
다중 VVC 트랙들에 의해 VVC 비트스트림이 표현되는 경우, 샘플들의 디코딩 시간은 트랙이 디코딩 시간을 증가시킴으로써 정렬된 단일 스트림으로 결합된 경우 액세스 단위 순서가 ISO/ISE 23090-3에 특정된 대로 정확해야 한다.
액세스 유닛들의 시퀀스는 3.6.2.2.에 설명된 암시적인 복원 프로세스에 따라 필요한 트랙들에서 각 샘플들로부터 복원된다.
3.6.2.2. VVC 비트스트림의 암시적인 복원
동작 포인트 정보 샘플 그룹이 존재하는 경우, 필요한 트랙들은 동작 포인트 정보 및 레이어 정보 샘플 그룹들에 의해 지시된 대로 트랙들이 운반하는 레이어들 및 그들의 참조 레이어들에 기초하여 선택된다.
동작 포인트 엔티티 그룹이 존재하는 경우, 필요한 트랙들은 OperatingPointGroupBox의 정보에 기초하여 선택된다.
VCL NAL 유닛들이 0보다 큰 TemporalId을 갖는 서브레이어를 포함하는 비트스트림을 복원하는 경우, 동일 레이어 내의 모든 하위 서브레이어들(즉, VCL NAL 유닛들이 보다 작은 TemporalId를 갖는 하위 서브레이어)이 결과 비트스트림에 포함되고, 이에 따라 필요한 트랙들이 선택된다.
액세스 유닛을 복원하는 경우, 동일한 디코딩 시간을 갖는 샘플들에서의 픽처 유닛들(ISO/IEC 23090-3에 특정된 바와 같이)이 nuh_layer_id 값의 오름차 순으로 액세스 유닛에 배치된다.
독립적인 레이어들로 액세스 유닛을 복원하고 max_tid_il_ref_pics_plus1이 0보다 큰 경우, 동일 레이어 내에서 VCL NAL 유닛들이 max_tid_il_ref_pics_plus1 - 1 (동작 포인트 정보 샘플 그룹에 지시된 바와 같이) 이하인 TemporalId를 갖는 참조 레이어들의 서브 레이어들이 결과 비트스트림에 포함되고 필요한 트랙들이 이에 따라 선택된다.
독립적인 레이어들로 액세스 유닛을 복원하고 max_tid_il_ref_pics_plus1가 0인 경우, 참조 레이어들의 IRAP 픽처 유닛들만이 결과 비트스트림에 포함되고 필요한 트랙들이 이에 따라 선택된다.
VVC 트랙이 'subp' 트랙 참조를 포함하는 경우, 각 픽처 유닛은 하기에 특정된 바와 같은 EOS 및 EOB NAL 유닛들에 대한 추가적인 조건들로 11.7.3 절에 특정된 바와 같이 복원된다. 11.7.3절의 프로세스는 목표 동작 포인트의 각 레이어에 대해 nuh_layer_id의 오름차 순으로 반복된다. 그 외의 경우, 각 픽처 유닛은 하기에 설명된 바와 같이 복원된다.
복원된 액세스 유닛들이 디코딩 시간의 오름차순으로 VVC 비트스트림에 배치되고, 하기에 설명된 바와 같이, EOB(end of bitstream) 및 EOS(end of sequence) NAL 유닛들의 복사본들이 VVC 비트스트림에서 제거된다.
VVC 비트스트림의 동일한 코딩된 비디오 시퀀스 내이고, 다중 트랙에 저장된 상이한 서브레이어들에 속하는 액세스 유닛의 경우, 각 샘플들에서 특정 nuh_layer_id 값을 갖는 EOS NAL 유닛을 포함하는 트랙이 복수 개일 수 있다. 이 경우, 이러한 EOS NAL 유닛들 중 오직 하나만이 최종 복원 비트스트림에서 이러한 액세스 유닛들 중 마지막 액세스 유닛(최대 디코딩 시간을 갖는 유닛)으로 유지되어야 하며, 이러한 액세스 유닛들의 마지막 EOB NAL 유닛(존재하는 경우)을 제외한 모든 NAL 유닛들 뒤에 배치되어야 하며, 다른 EOS NAL 유닛들은 폐기된다. 마찬가지로, 각 샘플들에 EOB NAL 유닛을 포함하는 이러한 트랙들이 복수 개 존재할 수 있다. 이 경우, EOB NAL 유닛들 중 오직 하나 만이 최종 복원 비트스트림에 포함되고, 이러한 액세스 유닛들의 마지막 끝에 배치되며, 다른 EOB NAL 유닛들은 폐기된다.
특정 레이어 혹은 서브레이어가 복수의 트랙을 이용하여 표현될 수 있기 때문에, 동작 포인트에 필요한 트랙들을 확인할 때, 특정 레이어 혹은 서브레이어를 모두 운반하는 트랙들의 세트 가운데에서의 선택이 필요할 수 있다.
동작 포인트 엔티티 그룹이 존재하지 않는 경우, 동일 레이어 혹은 서브레이어를 운반하는 트랙들 가운데 선택된, 최종적으로 필요한 트랙들은 목표 동작 포인트에 속하지 않는 동일 레이어들 혹은 서브레이어들을 집합적으로 전달할 수 있다. 목표 동작 포인트에 대한 복원 비트스트림은 최종적으로 필요한 트랙들로 운반되지만 목표 동작 포인트에 속하지 않는 레이어들 혹은 서브레이어들을 포함해서는 안 된다.
주의: VVC 디코더 구현 예들은 ISO/IEC 23090-3의 8절에 있는 TargetOlsIdx 및 HighestTid 변수에 각각 해당하는 목표 출력 레이어 세트 인덱스 및 목표 동작 포인트의 최고 TemporalId 값에 해당하는 비트스트림을 입력으로 사용한다. 파일 파싱기(parser)는 복원 비트스트림이 VVC 디코더에 전송되기 전에 목표 동작 포인트에 포함된 것 이외의 다른 레이어들 및 서브레이어들을 포함하지 않는지를 확인해야 한다.
3.6.3. 동작 포인트 정보 샘플 그룹
3.6.3.1. 정의
응용 프로그램들은 동작 포인트 정보 샘플 그룹('vopi')을 사용하여 주어진 VVC 비트스트림이 제공하는 다양한 동작 포인트와 구성에 대해 수용한다. 각 동작 포인트는 출력 레이어 세트, 최대 TemporalId 값, 및 프로필, 레벨, 티어 시그널링과 연관된다. 이러한 모든 정보는 'vopi' 샘플 그룹에 의해 수집된다. 이러한 정보 외에, 이 샘플 그룹은 레이어들 간의 종속성 정보를 더 제공한다.
복수의 VVC 트랙이 VVC 비트스트림에 대해 존재하고, 동작 포인트 엔티티 그룹이 VVC 비트스트림에 대해 존재하지 않는 경우, 다음 두 가지가 모두 적용된다.
- VVC 비트스트림에 대한 VVC 트랙들 가운데, 'vopi' 샘플 그룹을 운반하는 오직 한 트랙만이 존재하여야 한다.
- VVC 비트스트림의 다른 모든 VVC 트랙은 'vopi' 샘플 그룹을 운반하는 트랙에 대한 'oref' 유형의 트랙 참조를 가져야 한다.
주어진 트랙의 특정 샘플에 대해, 다른 트랙의 시간적 동일 위치(temporally collocated) 샘플은 이 특정 샘플의 디코딩 시간과 동일한 디코딩 시간을 갖도록 정의된다. 트랙
Figure pat00001
의 각 샘플
Figure pat00002
이 'vopi' 샘플 그룹을 운반하는 트랙
Figure pat00003
에 대한 'oref' 트랙 참조를 갖는 경우, 하기가 적용된다.
- 트랙
Figure pat00004
에 시간적 동일 위치 샘플
Figure pat00005
이 존재하는 경우, 샘플
Figure pat00006
은 샘플
Figure pat00007
와 동일한 'vopi' 샘플 그룹 엔트리와 연관된다.
- 그외의 경우, 샘플
Figure pat00008
은 디코딩 시간에서 샘플
Figure pat00009
에 선행하는 트랙
Figure pat00010
의 마지막 샘플과 동일한 'vopi' 샘플 그룹 엔트리와 연관된다.
VVC 비트스트림에 의해 여러 VPS들이 참조되는 경우, grouping_type 이 'vopi'인 샘플 그룹 설명 박스에 여러 엔트리들을 포함해야할 수도 있다. 단일 VPS가 존재하는 보다 일반적인 경우에는, 각 트랙 분절에 포함시키는 것보다, ISO/IEC 14496-12에 정의된 기본 샘플 그룹 메커니즘을 사용하고 샘플 테이블 박스에 동작 포인트 정보 샘플 그룹을 포함시키는 것이 바람직하다.
grouping_type_parameter는 그룹화 유형이 'vopi'인 SampleToGroupBox에 대해 정의되지 않는다.
3.6.3.2. 신택스
class VvcOperatingPointsRecord {
unsigned int(8) num_profile_tier_level_minus1;
for (i=0; i<=num_profile_tier_level_minus1; i++) {
unsigned int(8) ptl_max_temporal_id[i];
VvcPTLRecord(ptl_max_temporal_id[i]+1) ptl[i];
}
unsigned int(1) all_independent_layers_flag;
bit(7) reserved = 0;
if (all_independent_layers_flag){
unsigned int(1) each_layer_is_an_ols_flag;
bit(7) reserved = 0;
} else
unsigned int(8) ols_mode_idc;
unsigned int(16) num_operating_points;
for (i=0; i<num_operating_points) {
unsigned int(16) output_layer_set_idx;
unsigned int(8) ptl_idx;
unsigned int(8) max_temporal_id;
unsigned int(8) layer_count;
for (j=0; j<layer_count; j++) {
unsigned int(6) layer_id;
unsigned int(1) is_outputlayer;
bit(1) reserved = 0;
}
bit(6) reserved = 0;
unsigned int(1) frame_rate_info_flag
unsigned int(1) bit_rate_info_flag
if (frame_rate_info_flag) {
unsigned int(16) avgFrameRate;
bit(6) reserved = 0;
unsigned int(2) constantFrameRate;
}
if (bit_rate_info_flag) {
unsigned int(32) maxBitRate;
unsigned int(32) avgBitRate;
}
}
unsigned int(8) max_layer_count;
for (i=0; i<max_layer_count; i++) {
unsigned int(8) layerID;
unsigned int(8) num_direct_ref_layers;
for (j=0; j<num_direct_ref_layers; j++)
unsigned int(8) direct_ref_layerID;
unsigned int(8) max_tid_il_ref_pics_plus1;
}
}
class VvcOperatingPointsInformation extends VisualSampleGroupEntry ('vopi') {
VvcOperatingPointsRecord oinf;
}
3.6.3.3. 시멘틱스
num_profile_tier_level_minus1 더하기 1은 후속 프로필, 티어, 레벨 조합의 수와 연관된 필드들을 제공한다.
ptl_max_temporal_id[i]: 특정 i번째 프로필, 티어, 레벨 구조에 대한 연관 비트스트림의 NAL 유닛들의 최대 TemporalID를 제공한다.
주의: 하기에 설명되는 동작 포인트의 ptl_max_temporal_id[i] 및 max_temporal_id 의 시멘틱스는 동일한 숫자 값을 갖는다 하더라도 서로 상이한 의미를 갖는다.
ptl[i] 는 i번째 프로필, 티어, 레벨 구조를 특정한다.
all_independent_layers_flag, each_layer_is_an_ols_flag, ols_mode_idc 및 max_tid_il_ref_pics_plus1 은 ISO/IEC 23090-3에 정의되어 있다.
num_operating_points: 정보가 따르는 동작 포인트의 수를 제공한다.
output_layer_set_idx은 동작 포인트를 정의하는 출력 레이어 세트의 인덱스이다. output_layer_set_idx 및 layer_id 값 간의 매핑은 출력 레이어 세트에 대해 VPS에서 인덱스 output_layer_set_idx로 특정된 것과 동일해야 한다.
ptl_idx: 인덱스 output_layer_set_idx를 갖는 출력 레이어에 대해 나열된 프로필, 레벨, 티어 구조의 0부터 시작되는(제로 기반, zero-based) 인덱스를 시그널링한다.
max_temporal_id: 이 동작 포인트의 NAL 유닛들에 대한 최대 TemporalId를 제공한다.
주의: 레이어 정보 샘플 그룹에서 지시되는 최대 TemporalId 값은 여기서 지시되는 최대 TemporalId 와는 상이한 시멘틱스를 갖는다. 그러나, 이들은 동일한 리터럴(literal) 숫자 값을 가질 수 있다.
layer_count: 이 필드는 ISO/IEC 23090-3에 정의된 바와 같이 해당 동작 포인트에서 필수적인 레이어의 수를 지시할 수 있다.
layer_id: 동작 포인트의 레이어들에 대한 nuh_layer_id 값들을 제공한다.
is_outputlayer: 레이어가 출력 레이어인지 아닌지를 지시하는 플래그이다. 한 값은 출력 레이어임을 지시한다.
0인 frame_rate_info_flag은 동작 포인트에 대한 프레임률 정보가 존재하지 않음을 지시한다. 상기 값이 1이면 동작 포인트에 대한 프레임률 정보가 존재함을 지시한다.
0인 bit_rate_info_flag은 동작 포인트에 대한 비트율 정보가 존재하지 않음을 지시한다. 상기 값이 1이면 동작 포인트에 대한 비트율 정보가 존재함을 지시한다.
avgFrameRate는 동작 포인트에 대한 프레임/(256초) 유닛의 평균 프레임률을제공한다. 0이면 평균 프레임률이 특정되지 않음을 지시한다.
1인 constantFrameRate은 동작 포인트의 스트림이 일정한 프레임률임을 나타낸다. 2이면 동작 포인트의 스트림에서 각 시간적 레이어의 표현이 일정한 프레임률임을 지시한다. 0이면 동작 포인트의 비트스트림은 일정한 프레임률일 수도 있고 아닐 수도 있다.
maxBitRate 는 1초당 임의의 윈도우에 대한 동작 포인트의 비트스트림의 비트/초로 최대 비트율을 제공한다.
avgBitRate는 동작 포인트의 비트스트림의 비트/초로 평균 비트율을 제공한다.
max_layer_count: 베이스 트랙과 연관된 모든 동작 포인트의 모든 고유 레이어들의 카운트이다.
layerID: 모든 직접 참조 레이어들에 대한 레이어의 nuh_layer_id 는 direct_ref_layerID의 하기 루프에서 주어진다.
num_direct_ref_layers: layerID와 동일한 nuh_layer_id를 갖는 레이어의 직접 참조 레이어의 수이다.
direct_ref_layerID: 직접 참조 레이어의 nuh_layer_id 이다.
3.6.4. 레이어 정보 샘플 그룹
트랙이 운반하는 레이어들 및 서브레이어들의 리스트는 레이어 정보 샘플 그룹으로 시그널링된다. 복수의 VVC 트랙이 동일한 VVC 비트스트림에 존재하는 경우, 각각의 VVC 트랙은 'linf' 샘플 그룹을 운반해야 한다.
VVC 비트스트림에서 여러 VPS들이 참조되는 경우, grouping_type이 'linf'인 샘플 그룹 설명 박스에 여러 엔트리들을 포함해야 할 수 있다. 단일 VPS가 존재하는 보다 일반적인 경우에서는, ISO/IEC 14496-12에 정의된 기본 샘플 그룹 메커니즘을 사용하고, 레이어 정보 샘플 그룹을 각 트랙 분절에 포함시키는 대신, 샘플 테이블 박스에 포함시킬 것이 권장된다.
grouping_type_parameter은 그룹화 유형이 'linf'인 SampleToGroupBox에 대해 정의되지 않는다.
'linf' 샘플 그룹에 대한 신택스 및 시멘틱스는 각각 9.6.3.2절 및 9.6.3.3절에서 특정된다.
3.6.5. 동작 포인트 엔티티 그룹
3.6.5.1. 일반론
동작 포인트 엔티티 그룹은 동작 포인트에 대한 트랙 매핑 및 동작 포인트들의 프로필 레벨 정보를 제공하도록 정의된다.
엔트리 그룹에서 설명된 동작 포인트에 매핑된 트랙들의 샘플들을 집약할 때 암시적인 복원 프로세스는 적합한 VVC 비트스트림을 생성하기 위해 더 이상 NAL 유닛들을 제거할 필요가 없다. 동작 포인트 엔티티 그룹에 속하는 트랙들은 동작 포인트 엔티티 그룹에 지시되는 group_id에 대한 'oref' 유형의 트랙 참조를 가져야 한다.
동작 포인트 엔티티 그룹들에 포함된 모든 entity_id 값들은 동일한 VVC 비트스트림에 속해야 한다. 존재하는 경우, OperatingPointGroupBox은 무비 레벨 MetaBox의 GroupsListBox에 포함되어야 하며, 파일 레벨 혹은 트랙 레벨 MetaBox에는 포함되지 않아야 한다.
3.6.5.2. 신택스
aligned(8) class OperatingPointGroupBox extends EntityToGroupBox('opeg',0,0)
{
unsigned int(8) num_profile_tier_level_minus1;
for (i=0; i<=num_profile_tier_level_minus1; i++)
VvcPTLRecord(0) opeg_ptl[i];
unsigned int(16) num_operating_points;
for (i=0; i<num_operating_points) {
unsigned int(16) output_layer_set_idx;
unsigned int(8) ptl_idx;
unsigned int(8) max_temporal_id;
unsigned int(8) layer_count;
for (j=0; j<layer_count; j++) {
unsigned int(6) layer_id;
unsigned int(1) is_outputlayer;
bit(1) reserved = 0;
}
bit(6) reserved = 0;
unsigned int(1) frame_rate_info_flag
unsigned int(1) bit_rate_info_flag
if (frame_rate_info_flag) {
unsigned int(16) avgFrameRate;
bit(6) reserved = 0;
unsigned int(2) constantFrameRate;
}
if (bit_rate_info_flag) {
unsigned int(32) maxBitRate;
unsigned int(32) avgBitRate;
}
unsigned int(8) entity_count;
for (j=0; j<entity_count; j++) {
unsigned int(8) entity_idx;
}
}
}
3.6.5.3. 시멘틱스
num_profile_tier_level_minus1 더하기 1은 후속 프로필, 티어, 레벨 조합들의 수와 연관된 필드들을 제공한다.
opeg_ptl[i] 은 i번째 프로필, 티어 및 레벨 구조를 특정한다.
num_operating_points: 정보가 따르는 동작 포인트의 수를 제공한다.
output_layer_set_idx 동작 포인트를 정의하는 출력 레이어 세트의 인덱스이다.
output_layer_set_idx 및 layer_id 값들 간의 매핑은 인덱스
output_layer_set_idx를 갖는 출력 레이어 세트에 대해 VPS에서 특정되는 것과 동일하여야 한다.
ptl_idx: 인덱스 output_layer_set_idx를 갖는 출력 레이어 세트에 대한 나열된 프로필, 레벨, 티어 구조의 0부터 시작하는(zero-based) 인덱스를 시그널링한다.
max_temporal_id: 동작 포인트의 NAL 유닛들의 최대 TemporalId를 제공한다.
주의: 레이어 정보 샘플 그룹에서 지시되는 최대 TemporalId 값은 여기서 지시되는 최대 TemproralId와는 상이한 시멘틱스를 갖는다. 그러나, 동일한 리터럴(literal) 숫자 값을 가질 수 있다.
layer_count: 이 필드는 ISO/IEC 23090-3에 정의된 바와 같이 동작 포인트의 필수적인 레이어들의 수를 지시한다.
layer_id: 동작 포인트의 레이어들에 대한 nuh_layer_id 값들을 제공한다.
is_outputlayer: 레이어가 출력 레이어인지 아닌지를 지시하는 플래그이다. 한 값은 출력 레이어임을 지시한다.
0인 frame_rate_info_flag는 동작 포인트에 대해 프레임률 정보가 존재하지않음을 지시한다. 상기 값이 1이면 프레임률 정보가 동작 포인트에 대해 존재함을 지시한다.
0인 bit_rate_info_flag는 동작 포인트에 대한 비트율 정보가 존재하지 않음을 지시한다. 상기 값이 1이면 비트율 정보가 동작 포인트에 대해 존재함을 지시한다.
avgFrameRate는 동작 포인트에 대한 프레임/(256초) 유닛의 평균 프레임률을제공한다. 0이면 평균 프레임률이 특정되지 않음을 지시한다.
1인 constantFrameRate 은 동작 포인트의 스트림이 일정한 프레임률임을 지시한다. 상기 값이 2이면 동작 포인트의 스트림에서 각 시간적 레이어의 표현이 일정한 프레임률임을 지시한다. 상기 값이 0이면 동작 포인트의 스트림이 일정한 프레임률일 수도 있고 아닐 수도 있음을 지시한다.
maxBitRate 는 1초당 임의의 윈도우에 대한 동작 포인트의 비트스트림의 비트/초로 최대 비트율을 제공한다.
avgBitRate 는 동작 포인트의 비트스트림의 비트/초로 평균 비트율을 제공한다.
entity_count 는 동작 포인트에 존재하는 트랙들의 수를 특정한다.
entity_idx 는 동작 포인트에 속하는 엔티티 그룹의 entity_id 리스트에 대한 인덱스를 특정한다.
4. 개시된 기술적 솔루션들에 의해 해결되는 기술적인 문제들의 예
스케일러블 VVC 비트스트림의 저장에 관련된 VVC 비디오 파일 포맷의 최신 설계들은 다음과 같은 문제들을 갖는다.
1) VVC 비트스트림이 다중 VVC 트랙들로 표현되는 경우, 파일 파싱기는 먼저 VVC 샘플 엔트리가 있는 모든 트랙들을 찾아 선택한 동작 포인트에 필요한 트랙들을 식별한 다음, 'vopi' 샘플 그룹을 포함하는 모든 트랙들을 찾아 파일에 제공된 모든 동작 포인트의 정보를 파악할 수 있다. 그러나, 이러한 트랙들을 모두 찾는 것은 굉장히 복잡할 수 있다.
2) 'linf' 샘플 그룹이 트랙에 포함되는 레이어들 및/혹은 서브레이어들에 대한 정보를 시그널링한다. OP 선택에 'vopi' 샘플 그룹을 사용하는 경우, 'linf' 샘플 그룹을 포함하는 모든 트랙들이 탐색되어야 하며, 이러한 트랙들의 'linf' 샘플 그룹 엔트리들로 운반되는 정보는 필요한 트랙들을 파악하기 위해 OP의 레이어들 및/혹은 서브 레이어들에 대한 'vopi' 샘플 그룹 엔트리 정보와 함께 사용된다. 이러한 과정 또한 매우 복잡할 수 있다.
3) 'vopi' 샘플 그룹 엔트리에서, 레이어 종속성 정보는 all_independent_layers_flag의 값이 1인 경우에도 시그널링된다. 그러나, 레이어 종속성 정보는 all_independent_layers_flag가 1일 때 알려져 있으므로, 이 경우 시그널링을 위한 비트가 모두 낭비된다.
4) 다중 트랙들에서 VVC 비트스트림의 암시적인 복원 과정에서, 반복적인 EOS 및 EOB NAL 유닛들의 제거가 특정된다. 그러나, 이 과정에서의 AUD NAL 유닛들의 제거 및/혹은 재작성이 필요할 수 있으나, 대응 프로세스가 존재하지 않는다.
5) 'opeg' 엔티티 그룹이 존재하는 경우, NAL 유닛들의 제거 없이 필요한 트랙들의 모든 NAL 유닛들을 포함함으로써 다중 트랙들에서 비트스트림이 복원되도록 특정된다. 그러나, 이는 예를 들어, 특정 AU에 대한 AUD, EOS, 및 EOB NAL 유닛들과 같은 NAL 유닛들이 VVC 비트스트림을 운반하는 복수의 트랙에 포함되는 것을 허용하지 않는다.
6) 'opeg' 엔티티 그룹 박스의 컨테이너(container)는 무비 레벨 MetaBox로 특정된다. 그러나, 파일 레벨 MetaBox에 포함된 경우에만 엔티티 그룹의 entity_id 값들이 트랙 ID들을 참조할 수 있다.
7) 'opeg' 엔티티 그룹 박스에서, 필드 output_layer_set_idx는 각 OP에 대해 항상 시그널링된다. 그러나, OP가 오직 한 레이어만을 포함하는 경우에는, 종종 OLS인덱스의 값을 알 필요가 없으며, OLS 인덱스를 아는 것이 유용할지라도 한 레이어만을 포함하는 OLS의 OLS인덱스가 쉽게 유도될 수 있다.
8) 'opeg' 엔티티 그룹이 VVC 비트스트림에 대해 존재하는 경우, VVC 비트스트림을 표현하는 트랙들 중 하나는 'vopi' 샘플 그룹을 가질 수 있도록 허용된다. 그러나, 둘 모두를 허용하는 것은 불필요하며, 파일 크기를 불필요하게 증가시키고, 어느 파일 파싱기를 사용해야 할 지에 대한 혼동이 발생할 수 있다.
5. 솔루션 목록
상기 문제점들을 해결하기 위해, 하기에 요약된 방법들이 개시된다. 항목들은 일반적인 개념을 설명하기 위한 예시로 간주되어야 하며, 좁은 의미로 해석되어서는 안 된다. 또한, 이러한 항목들은 개별적으로 적용될 수 있고 어떤 방식으로든 결합될 수 있다.
1) 문제 1을 해결하기 위해, 하나 이상의 하기 항목들이 제안된다.
a. 각 OP에 필요한 트랙들을 포함하여 파일에 주어진 모든 OP들에 대한 파일 레벨 정보의 시그널링을 추가하는 한편, OP에 필요한 트랙들은 OP에 포함되지 않은 레이어들 및 서브레이어들을 운반할 수 있다.
b. 'vopi' 샘플 그룹들을 포함하는 트랙들에 대한 파일 레벨 정보의 시그널링을 추가한다.
i. 일 예에서, 파일 레벨 MetaBox를 컨테이너로 하여 'vopi' 샘플 그룹을 운반하는 트랙들의 시그널링을 위해 새로운 박스(예를 들어, 동작 포인트 정보 트랙 박스)를 특정한다.
파일 레벨 정보의 일부는 파일 레벨 박스, 무비 레벨 박스 혹은 트랙 레벨 박스에서 시그널링될 수 있되, 트랙 레벨 박스의 위치는 파일 레벨 박스 혹은 무비 레벨 박스에서 식별된다.
2) 문제 2를 해결하기 위해, 하나 이상의 하기 항목들이 제안된다.
a. 'vopi' 샘플 그룹 엔트리의 각 OP에 필요한 트랙들의 정보를 추가한다.
b. 'linf' 샘플 그룹의 사용을 중단한다.
3) 문제 3을 해결하기 위해, all_independent_layers_flag이 1인 경우 'vopi' 샘플 그룹 엔트리에서 레이어 종속성 정보의 시그널링을 생략한다.
4) 문제 4를 해결하기 위해, 다중 트랙에서 VVC 비트스트림의 암시적인 복원 프로세스에서, 반복적인 AUD NAL 유닛들의 제거를 위한 동작이 추가된다.
a. 또는, 필요한 경우 AUD NAL 유닛들의 재작성 동작을 더 추가한다.
i. 일 예에서, 다중 트랙의 다중 픽처 유닛들로부터 액세스 유닛을 복원할 때, 복원된 액세스 유닛에서 유지되는 AUD NAL 유닛이 1 인 aud_irap_or_gdr_flag를 가지며, 복원된 액세스 유닛이 IRAP 혹은 GDR 액세스 유닛이 아닌 경우, AUD NAL 유닛의 aud_irap_or_gdr_flag의 값은 0으로 설정된다.
ii. 제1 PU에서 AUD NAL 유닛이 1과 동일한 aud_irap_or_gdr_flag를 가질 수 있고, 다른 트랙에 있으나 동일한 액세스 유닛에 대한 다른 PU는 IRAP 혹은 GDR 픽처가 아닌 픽처를 가질 수 있다. 이 경우, 복원 액세스 유닛의 AUD NAL 유닛의 aud_irap_or_gdr_flag 값은 1에서 0으로 변경된다.
b. 일 예에서, 추가적으로 혹은 대안적으로, 액세스 유닛에 대한 서로 다른 트랙들로부터의 다중 픽처 유닛들 중 적어도 하나가 AUD NAL유닛을 가지는 경우, 제1 픽처 유닛(즉, 최소 nuh_layer_id 값을 갖는 픽처 유닛)이 AUD NAL 유닛을 가져야 한다.
c. 일 예에서, 액세스 유닛에 대한 서로 다른 트랙들의 다중 픽처 유닛들에 AUD NAL 유닛들이 존재하는 경우, 제1 픽처 유닛의 AUD NAL 유닛 만이 복원 액세스 유닛에서 유지되도록 특정된다.
5) 문제 5를 해결하기 위해, 하나 이상의 하기 항목들이 제안된다.
a. 'opeg' 엔티티 그룹이 존재하고 이용되는 경우, 필요한 트랙들은 각 OP에 필요한 VCL NAL 유닛들의 정확한 세트를 제공하나, 비-VCL NAL 유닛들의 일부는 복원 비트스트림에서 반복될 수 있으므로 제거가 필요할 수 있다.
i. 또는, 'opeg' 엔티티 그룹이 존재하고 이용되는 경우, 필요한 트랙들은 각 OP에 필요한 레이어들 및 서브레이어들의 정확한 세트를 제공하나, 비-VCL NAL 유닛들의 일부는 복원 비트스트림에서 반복될 수 있으므로 제거가 필요할 수 있다.
b. 다중 트랙의 VVC 비트스트림의 암시적인 복원 프로세스에서, 'opeg' 엔티티 그룹이 존재하고 이용되는 경우에도 반복적인 EOB 및 EOS NAL 유닛들의 제거 동작이 적용된다.
c. 다중 트랙의 VVC 비트스트림의 암시적인 복원 프로세스에서, 'opeg' 엔티티 그룹이 존재하고 이용되는 경우에도 반복적인 AUD 유닛들의 제거 동작 및 반복적인 AUD 유닛들의 재작성 동작이 적용된다.
6) 문제 6을 해결하기 위해, 'opeg' 엔티티 그룹 박스의 컨테이너는 파일 레벨 MetaBox에서 GroupsListBox로 하기와 같이 특정된다. 존재하는 경우, OperatingPointGroupBox는 파일 레벨 MetaBox의 GroupsListBox에 포함되어야 하며 다른 레벨의 MetaBox들에는 포함되어서는 안 된다.
7) 문제 7을 해결하기 위해, 'vopi' 샘플 그룹 엔트리에 존재하는 VvcOperatingPointsRecord및 'opeg' 엔티티 그룹 박스인 OperatingPointGroupBox에서 output_layer_set_idx 필드의 시그널링은 OP가 하나의 레이어만 포함하는 경우 OP에 대해 생략된다.
a. 일 예에서, VvcOperatingPointsRecord 및/혹은 OperatingPointGroupBox의 output_layer_set_idx 필드는 layer_id의 시그널링을 위한 루프 이후로 이동되고, "if(layer_count>1)"에 따라 조절된다.
b. 또한, 일 예로서, output_layer_set_idx이 OP에 대해 존재하지 않는 경우, 그 값은 OP의 레이어만 포함하는 OLS의 OLS 인덱스와 동일하게 추론되는 것으로 특정된다.
8) 문제 8을 해결하기 위해, 'opeg' 엔티티 그룹이 VVC 비트스트림에 대해 존재하는 경우, VVC 비트스트림을 나타내는 트랙 중 어떤 것도 'vopi' 샘플 그룹을 갖지 않도록 특정된다.
a. 또는, 둘 다 존재하는 것이 허용되되 둘 다 존재할 때 둘 중 하나를 선택하는 데 차이가 없도록 일관성이 있어야 한다.
b. 일 예에서, 엔티티 그룹에서 지시되는 group_id에 대한 유형 'oref'의 트랙 참조를 모두 갖는'opeg'엔티티 그룹에 속하는 트랙들은 'vopi'샘플 그룹을 운반해서는 안 된다고 특정된다.
9) VVC 비트스트림이 오직 하나의 트랙으로 표현되는 경우, VVC 비트스트림에 대한 'opeg' 엔티티 그룹 혹은 'vopi' 샘플 그룹을 갖는 것이 허용되지 않는다고 특정될 수 있다.
6. 실시예들
다음은 VVC 비디오 파일 포맷에 대한 표준 사양에 적용될 수 있는, 상기 섹션 5에 요약된 본 발명의 측면들 중 일부에 대한 몇 가지 예시적인 실시예들이다. 변경된 텍스트는 VVC의 최신 드래프트 사양에 기초한다. 추가되거나 수정된 대부분의 관련 부분은 굵은 밑줄 로 강조 표시되고 일부 지워진 부분들은 [[ 굵은 기울임 꼴 ]]로 강조 표시된다. 이는 본질적으로 사설이므로 강조 표시되지 않은 다른 변경 사항들이 존재할 수 있다.
6.1. 제1 실시예
이 실시예는 항목 2a, 3, 7, 7a, 7b에 대한 것이다.
6.1.1. 동작 포인트 정보 샘플 그룹
6.1.1.1. 정의
동작 포인트 정보 샘플 그룹('vopi')을 이용함으로써 응용 프로그램들은 주어진 VVCV 비트스트림과 그 구성에 의해 제공되는 다양한 동작 포인트들에 대한 정보를 획득한다. 각 동작 포인트는 출력 레이어 세트, 최대 TemporalId 값, 및 프로필, 레벨 및 티어 시그널링과 연관된다. 이러한 모든 정보들은 'vopi' 샘플 그룹에 의해 수집된다. 이러한 정보 외에, 샘플 그룹은 레이어들 간의 종속성에 대한 정보를 더 제공한다.
복수의 VVC 트랙이 VVC 비트스트림에 대해 존재하고, 동작 포인트 엔티티 그룹이 VVC 비트스트림에 대해 존재하지 않는 경우, 하기 사항 모두가 적용된다.
- VVC 비트스트림에 대한 VVC 트랙들 가운데, 오직 하나의 트랙만이 'vopi' 샘플 그룹을 운반해야 한다.
- VVC 비트스트림의 다른 모든 VVC 트랙들은 'vopi' 샘플 그룹을 운반하는 트렉에 대한 'oref' 유형의 트랙 참조를 가져야 한다.
주어진 트랙에서 어느 특정 샘플의 경우, 다른 트랙의 시간적 동일 위치(collocated) 샘플은 특정 샘플의 디코딩 시간과 동일한 디코딩 시간을 갖는 것으로 정의된다. 'vopi' 샘플 그룹을 운반하는 트랙
Figure pat00011
에 대한 트랙 참조 'oref'를 갖는 트랙
Figure pat00012
에서 각 샘플
Figure pat00013
의 경우, 다음이 적용된다.
- 트랙
Figure pat00014
에서 시간적 동일 위치 샘플
Figure pat00015
이 존재하는 경우, 샘플
Figure pat00016
은 샘플
Figure pat00017
와 같은 'vopi' 샘플 그룹 엔트리와 연관된다.
- 그 외의 경우, 샘플
Figure pat00018
은 디코딩 시간에서 샘플
Figure pat00019
에서 선행하는 트랙
Figure pat00020
의 마지막 샘플과 동일한 'vopi' 샘플 그룹 엔트리와 연관된다.
여러 VPS 들이 VVC 비트스트림에 의해 참조되는 경우, grouping_type 'vopi'을 갖는 샘플 그룹 설명 박스에 여러 엔트리들이 포함되어야할 수 있다. 단일 VPS가 존재하는 보다 일반적인 경우에는, ISO/IEC 14496-12에 정의된 기본 샘플 그룹 메커니즘을 이용하고 각 트랙 분절에 포함시키는 대신 샘플 테이블 박스에 동작 포인트 정보 샘플 그룹을 포함시킬 것이 권장된다.
grouping_type_parameter는 그룹화 유형이 'vopi'인 SampleToGroupBox에 대하여는 정의되지 않는다.
6.1.1.2. 신택스
class VvcOperatingPointsRecord {
unsigned int(8) num_profile_tier_level_minus1;
for (i=0; i<=num_profile_tier_level_minus1; i++) {
unsigned int(8) ptl_max_temporal_id[i];
VvcPTLRecord(ptl_max_temporal_id[i]+1) ptl[i];
}
unsigned int(1) all_independent_layers_flag;
bit(7) reserved = 0;
if (all_independent_layers_flag){
unsigned int(1) each_layer_is_an_ols_flag;
bit(7) reserved = 0;
} else
unsigned int(8) ols_mode_idc;
unsigned int(16) num_operating_points;
for (i=0; i<num_operating_points) {
[[unsigned int(16) output_layer_set_idx;]]
unsigned int(8) ptl_idx;
unsigned int(8) max_temporal_id;
unsigned int(8) layer_count;
for (j=0; j<layer_count; j++) {
unsigned int(6) layer_id;
unsigned int(1) is_outputlayer;
bit(1) reserved = 0;
}
if (layer_count>1)
unsigned int(16) output_layer_set_idx;
unsigned int(8) op_track_count;
for (j=0; j<op_track_count; j++) {
unsigned int(32) op_track_id[j];
}
bit(6) reserved = 0;
unsigned int(1) frame_rate_info_flag
unsigned int(1) bit_rate_info_flag
if (frame_rate_info_flag) {
unsigned int(16) avgFrameRate;
bit(6) reserved = 0;
unsigned int(2) constantFrameRate;
}
if (bit_rate_info_flag) {
unsigned int(32) maxBitRate;
unsigned int(32) avgBitRate;
}
}
if (!all_independent_layers_flag) {
unsigned int(8) max_layer_count;
for (i=0; i<max_layer_count; i++) {
unsigned int(8) layerID;
unsigned int(8) num_direct_ref_layers;
for (j=0; j<num_direct_ref_layers; j++)
unsigned int(8) direct_ref_layerID;
unsigned int(8) max_tid_il_ref_pics_plus1;
}
}
}
class VvcOperatingPointsInformation extends VisualSampleGroupEntry ('vopi') {
VvcOperatingPointsRecord oinf;
}
6.1.1.3. 시멘틱스
...
num_operating_points: 정보가 따르는 동작 포인트의 수를 제공한다.
[[output_layer_set_idx 는 동작 포인트를 정의하는 출력 레이어 세트의 인덱스이다. output_layer_set_idx 및 layer_id 값 간의 매핑은 출력 레이어 세트에 대해 VPS에서 인덱스 output_layer_set_idx 로 특정된 것과 동일해야 한다.]]
ptl_idx: 인덱스 output_layer_set_idx 를 갖는 출력 레이어에 대해 나열된
프로필, 레벨, 티어 구조의 0부터 시작되는(제로 기반, zero-based) 인덱스를 시그널링한다.
max_temporal_id: 이 동작 포인트의 NAL 유닛들에 대한 최대 TemporalId를 제공한다.
주의: 레이어 정보 샘플 그룹에서 지시되는 최대 TemporalId 값은 여기서 지시되는 최대 TemporalId 와는 상이한 시멘틱스를 갖는다. 그러나, 이들은 동일한 리터럴(literal) 숫자 값을 가질 수 있다.
layer_count: 이 필드는 ISO/IEC 23090-3에 정의된 바와 같이 해당 동작 포인트에서 필수적인 레이어의 수를 지시할 수 있다.
layer_id: 동작 포인트의 레이어들에 대한 nuh_layer_id 값들을 제공한다.
is_outputlayer: 레이어가 출력 레이어인지 아닌지를 지시하는 플래그 이다. 한 값은 출력 레이어임을 지시한다.
output_layer_set_idx는 동작 포인트를 정의하는 출력 레이어 세트의 인덱스이다. output_layer_set_idx 및 layer_id 값 간의 매핑은 출력 레이어 세트에 대해 VPS에서 인덱스 output_layer_set_idx로 특정된 것과 동일해야 한다.
output_layer_set_idx가 OP에 대해 존재하지 않는 경우, 그 값은 OP의 레이어만을 포함하는 OLS의 OLS 인덱스와 동일하다고 추론된다.
op_track_count는 이 동작 포인트에서 VCL NAL 유닛들을 운반하는 트랙의 수를 특정한다.
op_track_id[j]는 이 동작 포인트에서 VCL NAL 유닛들을 운반하는 트랙들의 j번째 트랙의 track_ID 값을 특정한다.
0인 frame_rate_info_flag 은 동작 포인트에 대한 프레임률 정보가 존재하지않음을 지시한다. 상기 값이 1이면 동작 포인트에 대한 프레임률 정보가 존재함을 지시한다.
0인 bit_rate_info_flag 는 동작 포인트에 대한 비트율 정보가 존재하지 않음을 지시한다. 상기 값이 1이면 동작 포인트에 대한 비트율 정보가 존재함을 지시한다.
avgFrameRate는 동작 포인트에 대한 프레임/(256초) 유닛의 평균 프레임률을 제공한다. 0이면 평균 프레임률이 특정되지 않음을 지시한다.
1인 constantFrameRate 은 동작 포인트의 스트림이 일정한 프레임률임을 나타낸다. 2이면 동작 포인트의 스트림에서 각 시간적 레이어의 표현이 일정한 프레임률임을 지시한다. 0이면 동작 포인트의 비트스트림은 일정한 프레임률일 수도 있고 아닐 수도 있다.
maxBitRate 는 1초당 임의의 윈도우에 대한 동작 포인트의 비트스트림의 비트/초로 최대 비트율을 제공한다.
avgBitRate 는 동작 포인트의 비트스트림의 비트/초로 평균 비트율을 제공한다.
max_layer_count: 베이스 트랙과 연관된 모든 동작 포인트의 모든 고유 레이어들의 카운트이다.
layerID: direct_ref_layerID의 하기 루프에서 모든 직접 참조 레이어들이 제공되는 레이어의 nuh_layer_id이다.
num_direct_ref_layers: layerID와 동일한 nuh_layer_id를 갖는 레이어의 직접 참조 레이어의 수이다.
direct_ref_layerID: 직접 참조 레이어의 nuh_layer_id이다.
6.2. 제2 실시예
이 실시예는 항목 1.b.i, 4, 4a, 4.a.i, 4b, 4c, 5a, 6, 8, 및 8b에 대한 것이다.
비트스트림의 암시적인 복원
동작 포인트 정보 샘플 그룹이 존재하는 경우, 동작 포인트 정보 및 레이어 정보 샘플 그룹들이 지시하는 바와 같이 그들이 운반하는 레이어들 및 그들의 참조 레이어들에 기초하여 필요한 트랙들이 선택된다.
동작 포인트 엔티티 그룹이 존재하는 경우, 필요한 트랙들은 OperatingPointGroupBox의 정보에 기초하여 선택된다.
0보다 큰 TemporalId를 갖는 VCL NAL 유닛들의 서브레이어를 포함하는 비트스트림을 복원하는 경우, 동일 레이어 내의 모든 하위 서브레이어들(즉, 보다 작은 TemporalId를 갖는 VC NAL 유닛들의 서브레이어)은 결과 비트스트림에 포함되고 이에 따라 필요한 트랙들이 선택된다.
액세스 유닛을 복원할 때, 동일한 디코딩 시간을 갖는 샘플들로부터의 픽처 유닛들(ISO/IEC 23090-3에 특정된 바와 같이)은 nuh_layer_id 값에 따른 오름차순으로 액세스 유닛에 배치된다. 액세스 유닛에 대한 다중 픽처 유닛들 중 적어도 하나가 AUD NAL 유닛인 경우, 제1 픽처 유닛(즉, 최소 nuh_layer_id 값을 갖는 픽처 유닛)은 AUD NAL 유닛을 가져야 하며, 제1 픽처 유닛의 AUD NAL 유닛만이 복원 액세스 유닛에서 유지되고, 다른 AUD NAL 유닛들이 존재하는 경우 폐기된다. 이러한 복원 액세스 유닛에서, AUD NAL 유닛이 1과 동일한 aud_irap_or_gdr_flag을 갖고 복원된 액세스 유닛이 IRAP 혹은 GDR 액세스 유닛이 아닌 경우, AUD NAL 유닛의 aud_irap_or_gdr_flag 값은 0과 동일하게 설정된다.
주의 1: 제1 PU의 AUD NAL 유닛은 1과 동일한 aud_irap_or_gdr_flag를 갖고, 동일한 액세스 유닛에 대한, 그러나 별도의 트랙에 있는 다른 PU는 IRAP 또는 GDR 픽처가 아닌 픽처를 가질 수 있다. 이 경우, 복원된 액세스 유닛에서 AUD NAL 유닛의 aud_irap_or_gdr_flag 값은 1에서 0으로 변경된다.
...
엔티티 그룹과 다른 파일 레벨 정보
서브픽처 엔티티 그룹
...
동작 포인트 엔티티 그룹
일반론
동작 포인트 엔티티 그룹은 동작 포인트에 대한 트랙 매핑 및 동작 포인트들의 프로필 레벨 정보를 제공하도록 정의된다.
이 엔티티 그룹에서 설명되는 동작 포인트에 매핑되는 트랙들의 샘플들을 집약할 때 암시적인 복원 프로세스는 적합한 VVC 비트스트림을 생성하기 위해 더 이상의 VCL NAL 유닛들을 제거할 필요가 없다. 동작 포인트 엔티티 그룹에 속한 트랙들은 동작 포인트 엔티티 그룹에서 지시되는 group_id에 대한 'oref' 유형의 트랙 참조 [[track reference]] 를 가져야 하며, 'vopi' 샘플 그룹을 운반하지 않아야 한다.
동작 엔티티 그룹들에 포함된 모든 entity_id 값들은 동일한 VVC 비트스트림에 속해야 한다. 존재하는 경우, OperatingPointGroupBox는 [[무비]] 파일 - 레벨 MetaBox의 GroupsListBox에 포함되어야 하며, 다른 레벨들의 [[파일-레벨 혹은 트랙-레벨]] MetaBox들에 포함되지 않아야 한다.
동작 포인트 정보 트랙 박스
정의
박스 유형: 'topi'
컨테이너(Container): 파일 레벨 MetaBox(file-level MetaBox)
필수 여부(Mandatory): N
수량: 0 혹은 1
동작 포인트 정보 트랙 박스는 'vopi' 샘플 그룹을 운반하는 트랙들의 세트의 트랙 ID들을 포함한다. 이 박스의 부재는 'vopi' 샘플 그룹을 운반하는 트랙이 파일에 없음을 지시한다.
신택스
aligned(8) class OperatingPointsInfoTracksBox extends FullBox('topi',0,0)
{
unsigned int(8) num_tracks_with_vopi;
for (i=0; i< num_tracks_with_vopi; i++)
unsigned int(32) track_ID[i];
}
시멘틱스
num_tracks_with_vopi 은 'vopi' 샘플 그룹을 운반하는 파일 내 트랙들의 수를 특정한다.
track_ID[i]은 'vopi' 샘플 그룹을 운반하는 i번째 트랙의 트랙 ID를 특정한다.
도 1은 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템 (1900)의 블록도이다. 다양한 구현예들은 시스템 (1900)의 일부 혹은 모든 컴포넌트들을 포함할 수 있다. 시스템 (1900)은 비디오 콘텐츠 수신을 위해 입력 (1902)을 포함할 수 있다. 비디오 콘텐츠는, 예를 들어, 8 혹은 10 비트 멀티 컴포넌트 픽셀 값들과 같은 원시(raw) 혹은 압축되지 않은 포맷으로 수신되거나, 압축된 혹은 인코딩된 포맷으로 수신될 수도 있다. 입력 (1902)은 네트워크 인터페이스, 주변 버스 인터페이스, 혹은 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광 통신망(passive optical network, PON) 등의 유선 인터페이스를 포함하며, 와이파이(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 수신기 등에서 구현될 수 있다. 장치(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) 표준, VVC(Versatile Video Coding) 표준 및 다른 현재 및/혹은 미래의 표준들과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 5는 도 4의 시스템(100)에서 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 일 예에 대한 블록도이다.
비디오 인코더(200)는 본 개시의 일부 혹은 모든 기술을 수행하도록 구성될 수 있다. 도 5에서, 비디오 인코더(200)는 복수의 기능적 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 인코더(200)의 다양한 컴포넌트들 사이에서 공유될 수 있다. 일부 실시예에서, 프로세서는 본 개시에서 설명된 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 컴포넌트들은 파티션 유닛(201), 모드 선택 유닛(203)을 포함할 수 있는 예측 유닛(202), 움직임 추정 유닛(204), 움직임 보상 유닛(205), 및 인트라 예측 유닛(206), 잔차 생성 유닛(207), 변환 유닛(208), 양자화 유닛(209), 역 양자화 유닛(210), 역변환 유닛(211), 복원 유닛(212), 버퍼(213), 및 엔트로피 인코딩 유닛(214)을 포함할 수 있다.
다른 실시예에서, 비디오 인코더(200)는 보다 많거나, 적거나, 혹은 다른 기능적 구성요소들을 포함할 수 있다. 일 예로서, 예측 유닛(202)은 인트라 블록 복사(IBC) 유닛을 포함할 수 있다. IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치한 픽처인 IBC 모드에서 예측을 수행할 수 있다.
또한, 움직임 추정 유닛(204) 및 움직임 보상 유닛(205) 과 같은 일부 컴포넌트들은 통합될 수 있으나, 도 5에서는 설명을 위해 분리하여 표현되었다.
파티션 유닛(201)은 픽처를 하나 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택 유닛(203)은 예를 들어, 오류 결과 등에 기반하여 인트라 혹은 인터 코딩 모드 중 하나를 선택할 수 있으며, 결과적인 인트라 혹은 인터 코딩된 블록을 잔차 블록 데이터를 생성하기 위해 잔차 생성 유닛(207)에 제공하거나 인코딩된 블록을 참조 픽처로 사용하기 위해 복원 유닛(212)에 제공할 수 있다. 일부 예에서, 모드 선택 유닛(203)은 인터 예측 신호 및 인트라 예측 신호에 기초한 예측을 수행하는 CIIP(combination of intra and inter prediction) 모드를 선택할 수 있다. 모드 선택 유닛(203)은 인터 예측의 경우 블록에 대한 움직임 벡터에 대한 해상도(예를 들어, 서브 픽셀 혹은 정수 픽셀 정밀도)도 선택할 수 있다.
현재 비디오 블록에 대한 인터 예측을 수행하기 위해, 움직임 추정 유닛(204)은 버퍼(213)의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교함으로써 현재 비디오 블록에 대한 움직임 정보를 생성할 수 있다. 움직임 보상 유닛(205)은 움직임 정보 및 현재 비디오 블록과 연관된 픽처 외에 버퍼(213)의 픽처들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수도 있다.
움직임 추정 유닛(204) 및 움직임 보상 유닛(205)은 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스 혹은 B 슬라이스 내인지 여부에 기초하여 현재 비디오 블록에 대해 상이한 동작을 수행할 수 있다.
일부 예들에서, 움직임 추정 유닛(204)은 현재 비디오 블록에 대해 단일 방향 예측을 수행할 수 있고, 움직임 추정 유닛(204)은 현재 비디오 블록의 참조 비디오 블록에 대해 리스트 0(list0) 혹은 리스트 1(list1)의 참조 픽처들을 탐색할 수 있다. 움직임 추정 유닛(204)은 현재 비디오 블록과 참조 비디오 블*의 공간적 변위를 지시하는 움직임 벡터를 포함하는 리스트 0 혹은 리스트 1에서의 참조 픽처를 지시하는 참조 인덱스를 생성할 수 있다. 움직임 추정 유닛(204)은 현재 비디오 블록의 움직임 정보로서 참조 인덱스, 예측 방향 지시자, 및 움직임 벡터를 출력할 수 있다. 움직임 보상 유닛(205)은 현재 비디오 블록의 움직임 정보에 의해 지시되는 참조 비디오 블록에 기초하여 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예에서, 움직임 추정 유닛(204)은 현재 비디오 블록에 대한 양 방향 예측을 수행할 수 있다. 움직임 추정 유닛(204)은 현재 비디오 블록의 참조 비디오 블록을 위해 리스트 0에서 참조 픽처들을 탐색할 수 있으며, 현재 비디오 블록의 다른 참조 비디오 블록을 위해 리스트 1에서 참조 픽처들을 탐색할 수 있다. 움직임 추정 유닛(204)은 참조 비디오 블록들과 현재 비디오 블록 간의 공간적 변위를 지시하는 움직임 벡터들과 참조 비디오 블록들을 포함하는 리스트 0 및 리스트 1의 참조 픽처들을 지시하는 참조 인덱스들을 생성할 수 있다. 움직임 추정 유닛(204)은 현재 비디오 블록의 움직임 정보로서 현재 비디오 블록의 참조 인덱스 및 움직임 벡터를 출력할 수도 있다. 움직임 보상 유닛(205)은 현재 비디오 블록의 움직임 정보에 의해 지시되는 참조 비디오 블록들을 기반으로 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 움직임 추정 유닛(204)은 디코더의 디코딩 프로세싱을 위한 움직임 정보의 전체 세트를 출력할 수 있다.
일부 예들에서, 움직임 추정 유닛(204)은 현재 비디오에 대한 움직임 정보의 전체 세트를 출력하지 않을 수 있다. 대신, 움직임 추정 유닛(204)은 다른 비디오 블록의 움직임 정보를 참조하여 현재 비디오 블록의 움직임 정보를 시그널링할 수 있다. 예를 들어, 움직임 추정 유닛(204)은 현재 비디오 블록의 움직임 정보가 인접 비디오 블록의 움직임 정보와 충분히 유사하다고 결정할 수 있다.
일 예로서, 움직임 추정 유닛(204)은 현재 비디오 블록과 연관된 신택스 구조에 현재 비디오 블록이 다른 비디오 블록과 동일한 움직임 정보를 갖는다는 것을 디코더(300)에 나타내는 값을 표시할 수도 있다.
다른 예에서, 움직임 추정 유닛(204)은 현재 비디오 블록과 연관된 신택스 구조에서 다른 비디오 블록 및 움직임 벡터 차이(motion vector difference, MVD)를 식별할 수 있다. 움직임 벡터 차이는 현재 비디오 블록의 움직임 벡터와 지시된 비디오 블록의 움직임 벡터 간의 차이를 지시한다. 비디오 디코더(300)는 현재 비디오 블록의 움직임 벡터를 결정하기 위해 지시된 비디오 블록의 움직임 벡터와 움직임 벡터 차이를 사용할 수 있다.
상기에서 논의된 바와 같이, 비디오 인코더(200)는 움직임 벡터를 예측적으로 시그널링할 수도 있다. 비디오 인코더(200)에서 구현될 수 있는 예측적 시그널링 기술의 두 가지 예는 AMVP(advanced motion vector prediction) 및 머지 모드 시그널링을 포함한다.
인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대한 인트라 에측을 수행할 때, 인트라 예측 유닛(206)은 동일 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록과 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성 유닛(207)은 현재 비디오 블록으로부터 현재 비디오 블록의 예측 비디오 블록(들)을 감산(예를 들어, 뺄셈 기호를 통해 지시됨)함으로써 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플들의 상이한 샘플 컴포넌트들에 대응되는 잔차 비디오 블록들을 포함할 수 있다.
다른 예에서, 예를 들어, 스킵 모드에서와 같이 현재 비디오 블록에 대한 잔차 데이터가 존재하지 않을 수 있으며, 잔차 생성 유닛(207)은 감산 연산을 수행하지 않을 수 있다.
변환 프로세싱 유닛(208)은 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용함으로써 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환 프로세싱 유닛(208)이 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 이후, 양자화 유닛(209)은 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP)에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역 양자화 유닛(210) 및 역 변환 유닛(211)은 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원하기 위해 변환 계수 비디오 블록에 각각 역양자화 및 역 변환을 적용할 수 있다. 복원 유닛(212)은 버퍼(213)에 저장하기 위해 현재 블록과 연관된 복원 비디오 블록을 생성하기 위해 예측 유닛(202)에 의해 생성된 하나 이상의 예측 비디오 블록으로부터의 대응 샘플들에 복원 잔차 비디오 블록을 추가할 수도 있다.
복원 유닛(212)이 비디오 블록을 복원한 이후, 루프 필터링 연산은 비디오 블록에서 비디오 블로킹 아티팩트(video blocking artifacts)를 감소시키기 위해 수행될 수 있다.
엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 기능적 컴포넌트들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신할 때, 엔트로피 인코딩 유닛(214)은 엔트로피 인코딩된 데이터를 생성하기 위해 하나 이상의 엔트로피 인코딩 연산을 수행할 수 있으며 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 6은 도 4에 도시된 시스템(100)의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예시를 도시한 블록도이다.
비디오 디코더(300)는 본 개시의 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다. 도 6의 예시에서, 비디오 디코더(300)는 복수의 기능적 컴포넌트들을 포함한다. 본 개시에 설명된 기술들은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에서 설명된 일부 혹은 모든 기술들을 수행하도록 구성될 수 있다.
도 6의 예에서, 비디오 디코더(300)는 엔트로피 인코딩 유닛(301), 움직임 보상 유닛(302), 인트라 예측 유닛(303), 역 양자화 유닛(304), 역 변환 유닛(305), 복원 유닛(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 일반적으로 비디오 인코더(도 5, 200)의 관점에서 설명된 인코딩 패스의 역에 해당하는 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 회수할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)를 포함할 수 있다. 엔트로피 디코딩 유닛(301)은 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 움직임 보상 유닛(302)은 움직임 벡터들, 움직임 벡터 정밀도, 참조 픽처 리스트 인덱스들, 및 다른 움직임 정보를 포함하는 움직임 정보를 결정할 수 있다. 움직임 보상 유닛(302)은, 예를 들어, AMVP 및 머지 모드를 수행함으로써 이러한 정보를 결정할 수 있다.
움직임 보상 유닛(302)은 움직임 보상된 블록들을 생성할 수 있으며, 보간 필터들에 기반하여 보간을 수행할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
움직임 보상 유닛(302)은 참조 블록의 서브 정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더에 의해 사용되는 보간 필터들을 사용할 수 있다. 움직임 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터들을 결정할 수 있고, 예측 블록들을 생성하기 위해 보간 필터들을 사용할 수 있다.
움직임 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임(들) 및/혹은 슬라이스(들)를 인코딩하는 데 사용되는 블록들의 크기들을 결정하기 위해 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로 블록이 어떻게 분할되는지를 설명하는 파티션 정보, 각 파티션들이 어떻게 인코딩되었는지를 지시하는 모드들, 각 인터 인코딩된 블록에 대해 하나 이상의 참조 프레임들(및 참조 프레임 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보 중 일부를 사용할 수 있다.
인트라 예측 유닛(303)은 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어, 비트스트림에서 수신된 인트라 예측 모드들을 사용할 수 있다. 역 양자화 유닛(303)은 비트스트림으로 제공되고 엔트로피 디코딩 유닛(301)에 의해 디코딩되는 양자화된 비디오 블록 계수들을 역양자화, 즉 양자화를 해제한다. 역 변환 유닛(303)은 역 변환을 적용한다.
복원 유닛(306)은 잔차 블록들을 디코딩된 블록들을 형성하기 위해 움직임 보상 유닛(202) 혹은 인트라 예측 유닛(303)에 의해 생성된 대응 예측 블록들과 합산할 수 있다. 필요한 경우, 디블록킹 필터가 블록성 아티팩트를 제거하기 위해 디코딩된 블록들을 필터링하도록 적용될 수도 있다. 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 움직임 보상/인트라 예측을 위한 참조 블록들을 제공하고, 디스플레이 장치 상의 표현을 위해 디코딩된 비디오를 생성한다.
일부 실시예들에서 선호하는 솔루션들의 목록은 하기에 제공된다.
하기 솔루션들은 이전 섹션(예를 들어, 항목 1, 2)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
1. 시각 미디어 프로세싱 방법(예를 들어, 도 3에서 도시된 방법(700))에 있어서, 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림 표현을 저장하는 파일 간의 변환을 수행(702)하는 단계를 포함하되, 여기서 파일은 파일에 포함된 모든 동작 포인트들의 파일 레벨 정보를 포함하고, 파일 레벨 정보는 각 동작 포인트에 필요한 트랙들의 정보를 포함하는, 시각 미디어 프로세싱 방법.
2. 솔루션 1의 방법에 있어서, 포맷 규칙은 트랙이 대응 동작 포인트에 필요하지 않은 레이어들과 서브레이어들을 포함하는 것을 허용한다.
3. 솔루션 1-2의 어느 한 방법에 있어서, 각 동작 포인트에 필요한 트랙들의 정보는 vopi 샘플 그룹 엔트리에 포함된다.
하기 솔루션들은 이전 섹션(예를 들어, 항목 3)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
4. 시각 미디어 프로세싱 방법은, 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림 표현을 저장하는 파일 간의 변환을 수행하는 단계를 포함하되, 여기서 포맷 규칙은 모든 레이어들이 독립적인 경우 레이어 종속성 정보가 vopi 샘플 그룹 엔트리들에서 생략되도록 특정하는, 시각 미디어 프로세싱 방법.
하기 솔루션들은 이전 섹션(예를 들어, 항목 5, 6)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
5. 시각 미디어 프로세싱 방법은, 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림 표현을 저장하는 파일 간의 변환을 수행하는 단계를 포함하되, 포맷 규칙은 비트스트림 표현에서 동작 포인트 엔티티 그룹(operation point entity group, opeg)의 처리와 연관된 규칙을 정의하는, 시각 미디어 프로세싱 방법.
6. 솔루션 5의 방법에 있어서, 포맷 규칙은, opeg가 존재하는 경우, 파일에서 각 필요한 트랙이 opeg의 각 동작 포인트에 대응하는 VCL NAL(video coding layer network abstraction layer)의 정확한 세트를 제공하도록 특정한다.
7. 솔루션 6의 방법에 있어서, 포맷 규칙은 트랙들에 비-VCL 유닛들을 포함하는 것을 허용한다.
하기 솔루션들은 이전 섹션(예를 들어, 항목 4)에서 논의된 기술들의 예시적인 실시예들을 보여준다.
8. 시각 미디어 프로세싱 방법은, 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림 표현을 저장하는 파일 간의 변환을 수행하는 단계를 포함하되, 여기서 변환은 반복적인 AUD NAL(access unit delimiter network access units)이 규칙에 따라 프로세싱되는 다중 트랙들로부터 비트스트림 표현의 암시적인 복원을 수행하는 것을 포함하는, 시각 미디어 프로세싱 방법.
9. 솔루션 8의 방법에 있어서, 규칙은 AUD NAL 유닛들이 제거되도록 특정한다.
10. 솔루션 8의 방법에 있어서, 규칙은 AUD NAL 유닛들이 재작성되도록 특정한다.
11. 솔루션 8-10 중 어느 한 방법에 있어서, 규칙은 액세스 유닛에 대한 상이한 트랙들로부터의 다중 픽처 유닛들 중 적어도 하나가 AUD NAL 유닛을 갖는 경우에, 제1 픽처 유닛이 다른 AUD NAL 유닛을 가지도록 특정한다.
12. 솔루션 8-10 중 어느 한 방법에 있어서, 규칙은 액세스 유닛에 대한 상이한 트랙들로부터의 다중 픽처 유닛들이 AUD NAL 유닛들이 존재하는 경우, 오직 제1 픽처 유닛의 AUD NAL 유닛만이 디코딩 동안 복원 액세스 유닛에 유지된다.
13. 솔루션 1-12 중 어느 한 방법에 있어서, 변환은 시각 미디어 데이터의 비트스트림 표현을 생성하고 포맷 규칙에 따라 비트스트림 표현을 파일에 저장하는 것을 포함한다.
14. 솔루션 1-12 중 어느 한 방법에 있어서, 변환은 시각 미디어 데이터의 복구하기 위해 포맷 규칙에 따라 파일을 파싱하는 것을 포함한다.
15. 솔루션 1 내지 14 중 하나 이상의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치.
16. 솔루션 1 내지 14 중 하나 이상의 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.
17. 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품에 있어서, 여기서 코드는 프로세서에 의해 실행될 때 프로세서가 솔루션 1 내지 14 중 어느 하나의 방법을 구현하도록 하는, 컴퓨터 프로그램 제품.
18. 솔루션 1 내지 14중 어느 하나에 따라 생성된 파일 포맷을 따르는 비트스트림 표현이 기록된 컴퓨터 판독 가능한 매체.
19. 본 문서에 개시된 방법, 장치 혹은 시스템.
상기에 나열된 솔루션의 일부 바람직한 실시예들은 다음을 포함할 수 있다(예를 들어, 항목 1, 2).
일부 실시예들에서, 시각 미디어 프로세싱 방법(예를 들어, 도 9a에서 방법 (910)으로 도시됨)은 파일 레벨 정보가 동작 포인트 정보를 포함하는 특정 유형의 샘플 그룹을 포함하는 다중 트랙 중 하나 이상의 트랙을 특정하는 신택스 요소를 포함한다는 포맷 규칙에 따라 시각 미디어 데이터와 다중 트랙에 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행(912)하는 단계를 포함한다.
상기 실시예들에서, 포맷 규칙은 시각 미디어 파일이 시각 미디어 파일에 의해 제공되는 모든 동작 포인트들의 파일 레벨 정보를 포함한다고 특정하되, 여기서 포맷 규칙은 파일 레벨 정보가 각 동작 포인트에 대해 시각 미디어 파일에서 대응 트랙들의 정보를 포함한다고 더 특정한다.
일부 실시예들에서, 포맷 규칙은 특정 동작 포인트에 필요한 트랙이 특정 동작 포인트에 필요하지 않은 레이어들 및 서브 레이어들을 포함하는 것을 허용한다.
일부 실시예들에서, 신택스 요소는 파일 레벨 컨테이너를 포함하는 박스를 포함한다.
일부 실시예들에서, 포맷 규칙은 파일 레벨 정보가 파일 레벨 박스에 포함되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 파일 레벨 정보는 무비 레벨 박스에 포함되도록 특정한다.
일부 실시예들, 포맷 규칙은 파일 레벨 정보가 다른 트랙 레벨 박스 혹은 다른 파일 레벨 박스에서 식별되는 트랙 레벨 박스에 포함되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 특정 유형의 샘플 그룹은 각 동작 포인트에 대해 필요한 트랙들에 대한 정보를 포함하도록 더 특정한다.
일부 실시예들에서, 포맷 규칙은 각 동작 포인트에 대해 필요한 트랙들에 대한 정보가 비트스트림에서 다수의 레이어에 관련된 레이어 정보를 포함하는 다른 특정 유형의 샘플 그룹에서 생략되도록 더 특정한다.
일부 실시예들에서, 시각 미디어 데이터는 VVC(Versatile video coding)에 의해 프로세싱되고, 다중 트랙들은 VVC 트랙들이다.
일부 바람직한 실시예는 다음을 포함할 수 있다(예를 들어, 항목 3).
일부 실시예들에서, 시각 미디어 프로세싱(예를 들어, 도 9b에 도시된 방법(920)) 방법은 포맷 규칙에 따라 시각 미디어 데이터 및 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행(922)하는 단계를 포함한다. 시각 미디어 파일은 하나 이상의 비디오 레이어를 포함하는 하나 이상의 트랙을 저장한다. 포맷 규칙은 레이어 종속성 정보를 지시하는 신택스 요소들의 제1 세트가 시각 미디어 파일에 저장되는지 여부는 시각 미디어 파일의 모든 레이어가 독립적임을 지시하는 제2 신택스 요소가 1을 갖는지 여부에 기초하도록 특정한다.
일부 실시예들에서, 신택스 요소들의 제1 세트는 시각 미디어 파일에 저장된 하나 이상의 동작 포인트들에 대한 정보를 지시하는 샘플 그룹에 저장된다.
일부 실시예들에서, 포맷 규칙은, 1이라는 값을 갖는 제2 신택스 요소에 응답하여, 신택스 요소들의 제1 세트는 시각 미디어 파일에서 생략되도록 특정한다.
상기에 나열된 솔루션의 일부 바람직한 실시예는 다음 측면(예를 들어, 항목 4)을 통합할 수 있다.
일부 실시예들에서, 시각 미디어 데이터 프로세싱 방법(예를 들어, 도 9c에 도시된 방법(930))은 다중 트랙에 저장된 반복적인 AUD NAL(access unit delimiter network access layer) 유닛들이 다중 트랙에서 비트스트림을 암시적으로 복원하는 동안 처리되는 방식을 특정하는 포맷 규칙에 따라 시각 미디어 데이터와 다중 트랙에 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행(932)하는 단계를 포함한다.
일부 실시예들에서, 포맷 규칙은 반복적인 AUD NAL 유닛들이 암시적인 복원 동안 제거되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 반복적인 AUD NAL 유닛들이 암시적인 복원 동안 재작성 되도록 특정한다.
일부 실시예들에서, 포맷 규칙은, 다중 트랙의 다중 픽처로부터 순시 랜덤 액세스 포인트 유형 혹은 점진적 디코딩 리프레시 유형과 다른 특정 유형을 갖는 특정 액세스 유닛을 생성하는 것을 포함하는 암시적인 복원시, 특정 액세스 유닛에 포함된 특정한 반복적인 AUD NAL의 신택스 필드는 특정한 반복적인 AUD NAL이 순시 랜덤 액세스 포인트 혹은 점진적인 디코딩 리프레시 유형을 나타내지 않음을 지시하는 0이라는 값으로 재작성된다.
일부 실시예들에서, 포맷 규칙은 상이한 트랙의 제2 PU가 인트라 랜덤 액세스 포인트 픽처 혹은 점진적인 디코딩 리프레시 픽처가 아닌 픽처를 포함하는 경우 제1 픽처 유닛(PU)의 AUD NAL에서 신택스 요소의 값이 특정 AUD NAL이 순시 랜덤 액세스 포인트 혹은 점진적인 디코딩 리프레시 유형을 나타내지 않음을 지시하는 0이라는 값으로 재작성되도록 추가로 특정한다.
일부 실시예들에서, 포맷 규칙은 제1 AUD NAL 유닛을 갖는 액세스 유닛에 대한 상이한 트랙들로부터의 다중 픽처 유닛들 중 적어도 하나에 응답하여, 암시적인 복원으로부터 생성된 액세스 유닛의 제1 픽처 유닛은 제2 AUD NAL 유닛을 포함하도록 특정한다.
일부 실시예들에서, 포맷 규칙은 AUD NAL 유닛들을 포함하는 액세스 유닛에 대한 상이한 트랙들 중 다중 픽처 유닛들에 응답하여, 제1 픽처 유닛의 그것에 대응되는 단일 AUD NAL 유닛이 암시적인 복원으로부터 생성된 액세스 유닛에 포함되도록 특정한다.
상기에 나열된 솔루션들의 일부 바람직한 실시예는 다음을 통합할 수 있다(예를 들어, 항목 7).
일부 실시예들에서, 시각 미디어 프로세싱 방법(예를 들어, 도 9d에 도시된 방법(940))은 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행(942)하는 단계를 포함한다. 시각 미디어 파일은 하나 이상의 비디오 레이어를 포함하는 하나 이상의 트랙을 저장한다. 시각 미디어 파일은 동작 포인트(operation point, OP)의 정보를 포함한다. 포맷 규칙은 OP 그룹 박스와 샘플 그룹 엔트리에 신택스 요소가 포함되는지 여부 혹은 어떻게 포함되는지에 응답하여 단일 비디오 레이어를 포함하는 OP에 응답하도록 특정한다. 여기서 신택스 요소는 OP의 출력 레이어 세트에 대한 인덱스를 지시하도록 구성된다.
일부 실시예들에서, 포맷 규칙은 단일 비디오 레이어를 포함하는 OP에 응답하여, 신택스 요소는 샘플 그룹 엔트리 및 그룹 박스로부터 생략되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 하나 이상의 비디오 레이어를 포함하는 OP에 응답하여, 하나 이상의 비디오 레이어를 식별하는 정보의 표시 이후 신택스 요소가 포함되도록 특정한다.
일부 실시예들에서, 샘플 그룹 엔트리 및 그룹 박스로부터 신택스 요소를 생략함에 응답하여, OP의 출력 레이어 세트에 대한 인덱스는 단일 비디오 레이어를 포함하는 출력 레이어 세트의 인덱스와 동일하다고 추론된다.
상기에서 나열된 솔루션들의 일부 바람직한 실시예들은 다음 측면들(예를 들어 항목 8)을 통합할 수 있다.
일부 실시예들에서, 시각 미디어 프로세싱 방법(예를 들어, 도 9e에 도시된 방법(950))은 포맷 규칙에 따라 시각 미디어 데이터와 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행(952)하는 단계를 포함한다. 여기서 시각 미디어 파일은 특정 유형의 엔티티 그룹에 속하는 다중 트랙을 저장하며, 포맷 규칙은 그룹 식별자에 대한 특정 유형의 트랙 참조를 갖는 다중 트랙에 응답하여 다중 트랙이 (A) 특정 유형의 샘플 그룹을 운반하는 것을 생략하거나 (B) 특정 유형의 엔티티 그룹의 정보와 특정 유형의 샘플 그룹의 정보가 일치하는 특정 유형의 샘플 그룹을 운반하도록 특정한다.
일부 실시예들에서, 다중 트랙은 비트스트림을 나타낸다.
일부 실시예들에서, 특정 유형의 엔티티 그룹은 다중 트랙이 정확히 동작 포인트에 대응된다고 지시한다.
일부 실시예들에서, 특정 유형의 샘플 그룹은 다중 트랙 중 어떤 트랙이 동작 포인트에 대응되는지에 대한 정보를 포함한다.
상기에서 나열된 솔루션들의 일부 바람직한 실시예들은 다음 측면들(예를 들어 항목 5, 6, 9)을 통합할 수 있다.
일부 실시예들에서, 시각 미디어 프로세싱 방법(예를 들어, 도 9f에 도시된 방법(960))은 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 및 시각 미디어 데이터 간의 변환을 수행(962)하는 단계를 포함하되, 시각 미디어 파일은 다중 트랙을 포함하고, 시각 미디어 파일은 시각 미디어 파일 내의 동작 포인트에 관한 정보를 담고 있는 엔티티 그룹과 각 동작 포인트를 운반하는 트랙을 저장하며, 포맷 규칙은 각 동작 포인트의 정보를 운반하는 엔티티 그룹 혹은 샘플 그룹을 저장하는 시각 미디어 파일에 응답하여 시각 미디어 파일의 속성을 특정한다.
일부 실시예들에서, 포맷 규칙은 엔티티 그룹이 각각의 동작 포인트에 대한 VCL(non-video coding layer) NAL(network abstraction layer) 유닛들의 정확한 세트를 운반하는 트랙 세트를 제공한다고 특정한다.
일부 실시예들에서, 포맷 규칙은 비트스트림 복원 동안 트랙 세트 내에 있고 반복적인 비-VCL NAL 유닛들이 제거되도록 더 특정한다.
일부 실시예들에서, 포맷 규칙은 엔티티 그룹이 각각의 동작 포인트에 대한 하나 이상의 레이어 및 하나 이상의 서브 레이어의 정확한 세트를 운반하는 트랙 세트를 제공한다고 특정한다.
일부 실시예들에서, 포맷 규칙은 비트스트림의 복원 동안 트랙 세트 내에 있고 반복적인 VCL(non-video coding layer) NAL(network abstraction layer) 유닛들이 제거되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 다중 트랙들로부터의 비트스트림 복원 프로세스에서, 반복적인 EOB(end of bitstream) 혹은 EOS(end of stream) NAL(network abstraction layer) 유닛들이 제거되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 다중 트랙들로부터의 비트스트림 복원 프로세스에서, AUD(access delimiter units)가 제거되거나 재작성되도록 특정한다.
일부 실시예들에서, 포맷 규칙은 엔티티 그룹과 연관된 엔티티 그룹 박스의 컨테이너(container)는 기 특정된 파일 레벨 박스를 제외한 임의의 레벨에서 시각 미디어 파일에 저장되는 것이 허용되지 않는다는 속성을 특정한다.
일부 실시예들에서, 기 특정된 파일 레벨 박스는 파일 레벨 메타데이터 박스에 포함된 그룹 리스트 박스이다.
일부 실시예들에서, 포맷 규칙은 비트스트림이 시각 미디어 파일의 단일 트랙에 저장되는 것에 응답하여 엔티티 그룹 및/혹은 샘플 그룹이 비트스트림에 대해 저장되는 것이 허용되지 않도록 특정한다.
상기에서 설명된 다양한 실시예들에서, 변환은 포맷 규칙에 따라 비트스트림을 시각 미디어 파일에 저장하는 것을 포함한다.
상기에서 설명된 다양한 실시예들에서, 변환은 포맷 규칙에 따라 비트스트림을 복원하기 위해 시각 미디어 파일을 파싱하는 것을 포함한다.
일부 실시예들에서, 시각 미디어 파일 파싱 장치는 상기에서 설명된 실시예들에서 개시된 방법을 구현하도록 구성되는 프로세서를 포함한다.
일부 실시예들에서, 시각 미디어 파일 작성 장치는 상기에서 설명된 실시예들에서 개시된 방법을 구현하도록 구성되는 프로세서를 포함한다.
일부 실시예들은 컴퓨터 코드가 저장된 컴퓨터 프로그램 제품을 포함한다. 코드는, 프로세서에 의해 실행될 때, 프로세서가 상기에서 설명된 실시예들 중 임의의 실시예에 의한 방법을 구현하게 한다.
일부 실시예들은 상기에서 설명된 방법들 중 임의의 방법에 따라 생성된 파일 포맷에 따르는 시각 미디어 파일을 저장하는 컴퓨터 판독 가능한 매체를 포함할 수 있다.
여기에 개시된 솔루션들에서, 인코더는 포맷 규칙에 따라 코딩된 표현을 생성함으로써 포맷 규칙에 순응할 수 있다. 여기에 개시된 솔루션들에서, 디코더는 디코딩된 비디오를 생성하기 위해 포맷 규칙에 따라 신택스 요소들의 존재 및 부재에 대한 지식으로 코딩된 표현의 신택스 요소들을 파싱하기 위해 포맷 규칙을 사용할 수 있다.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현으로부터 해당 비트스트림 표현으로의 변환 동안 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 정의된 바와 같이, 비트스트림 내의 상이한 장소에 확산되거나 함께 위치하는 비트에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 에러 잔여 값의 관점에서 또한 비트스트림 내의 헤더 및 다른 필드 내의 비트를 사용하여 인코딩될 수 있다. 또한, 변환 동안, 디코더는 상기 솔루션에서 설명된 바와 같이, 결정에 기반하여 일부 필드가 존재하거나 존재하지 않을 수 있다는 지식으로 비트스트림을 파싱할 수 있다. 마찬가지로, 인코더는 특정 신택스 필드가 포함되는지 여부를 결정할 수 있고, 이에 따라 코딩된 표현으로부터 신택스 필드를 포함하거나 제외함으로써 코딩된 표현을 생성할 수 있다. "시각 미디어"라는 용어는 비디오 또는 이미지들을 지칭할 수 있으며, 시각 미디어 프로세싱이라는 용어는 비디오 프로세싱 혹은 이미지 프로세싱을 지칭할 수 있다.
이 문서에 설명된 개시된 및 다른 솔루션, 예, 실시예, 모듈 및 기능적 동작은 디지털 전자 회로, 본 문서에 개시된 구조, 그들의 구조적 동등물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 실시예 및 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 언어 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치(deploy)될 수 있다. 컴퓨터 시스템은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램의 전용인 단일 파일 또는 다중 편성(coordinated) 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 로직 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기위한 프로세서와 명령과 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 수행하도록 동작 가능하게 결합된다. 그러나 컴퓨터가 이러한 장치를 가질 필요는 없다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 비일시적 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치, 내부 하드 디스크 또는 제거가능 디스크 등의 자기 디스크, 광자기 디스크 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 로직 회로에 의해 보완되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구 대상에 대한 제한으로 해석되어서는 안되며, 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 개별 실시예의 맥락에서 본 특허 문서에 설명된 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 맥락에서 설명된 다양한 특징은 또한 다중 실시 예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 청구될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징이 어떤 경우에는 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 변형일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 이 특허 문헌에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다.
단지 몇 가지 구현예 및 예가 설명되고, 다른 구현예, 향상 및 변형이 본 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (18)

  1. 시각 미디어 프로세싱 방법에 있어서,
    포맷 규칙에 따라 시각 미디어 데이터와 상기 시각 미디어 데이터의 비트스트림을 저장하는 시각 미디어 파일 간의 변환을 수행하는 단계;를 포함하되,
    상기 시각 미디어 파일은 특정 유형의 엔티티 그룹에 속하는 다중 트랙을 저장하고,
    상기 포맷 규칙은 그룹 식별자에 대한 특정 유형의 트랙 참조를 갖는 상기 다중 트랙에 응답하여, 상기 다중 트랙이 (A) 특정 유형의 샘플 그룹을 운반하는 것을 생략하거나 (B) 특정 유형의 엔티티 그룹의 정보와 상기 특정 유형의 상기 샘플 그룹의 정보가 일치하는 상기 특정 유형의 상기 샘플 그룹을 운반하도록 특정하는, 시각 미디어 프로세싱 방법.
  2. 제1 항에 있어서,
    상기 다중 트랙은 상기 비트스트림을 나타내는, 시각 미디어 프로세싱 방법.
  3. 제1 항 내지 제2 항 중 어느 한 항에 있어서,
    상기 특정 유형의 상기 엔티티 그룹은 상기 다중 트랙은 동작 포인트에 대응됨을 지시하는, 시각 미디어 프로세싱 방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 특정 유형의 상기 샘플 그룹은 상기 다중 트랙 중 어떤 트랙이 상기 동작 포인트에 대응되는지에 대한 정보를 포함하는, 시각 미디어 프로세싱 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 시각 미디어 파일은 상기 시각 미디어 데이터의 비트스트림을 저장하고,
    상기 시각 미디어 파일은 상기 시각 미디어 파일의 동작 포인트들에 대한 정보와 각 동작 포인트를 운반하는 트랙들을 운반하는 엔티티 그룹을 저장하며,
    상기 포맷 규칙은 각 동작 포인트의 정보를 운반하는 엔티티 그룹 혹은 샘플 그룹을 저장하는 상기 시각 미디어 파일에 응답하여 상기 시각 미디어 파일의 속성을 특정하는, 시각 미디어 프로세싱 방법.
  6. 제5 항에 있어서,
    상기 포맷 규칙은 상기 엔티티 그룹이 각 동작 포인트에 대한 VCL(Video Coding Layer) NAL(Network Abstraction Layer) 유닛들의 정확한 세트를 운반하는 트랙들의 세트를 제공하도록 특정하는, 시각 미디어 프로세싱 방법.
  7. 제6 항에 있어서,
    상기 포맷 규칙은 상기 비트스트림의 복원 동안 상기 트랙들의 세트에 포함되고 반복되는 비-VCL NAL 유닛들은 제거되도록 더 특정하는, 시각 미디어 프로세싱 방법.
  8. 제5 항에 있어서,
    상기 포맷 규칙은 상기 엔티티 그룹이 각 동작 포인트에 대한 하나 이상의 레이어 및 하나 이상의 서브레이어의 정확한 세트를 운반하는 트랙들의 세트를 제공하도록 특정하는, 시각 미디어 프로세싱 방법.
  9. 제8 항에 있어서,
    상기 포맷 규칙은 상기 비트스트림의 복원 동안 상기 트랙들의 세트에 포함되고 반복되는 비-VCL NAL 유닛들은 제거되도록 더 특정하는, 시각 미디어 프로세싱 방법.
  10. 제5 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 다중 트랙으로부터의 비트스트림의 복원 프로세스에서, 반복적인 EOB(end of bitstream) 혹은 EOS(end of stream) NAL(network abstraction layer) 유닛들이 제거되도록 특정하는, 시각 미디어 프로세싱 방법.
  11. 제5 항 내지 제10 항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 다중 트랙으로부터의 비트스트림의 복원 프로세스에서, AUD(access delimiter units)는 제거되거나 재작성되도록 특정하는, 시각 미디어 프로세싱 방법.
  12. 제5 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 엔티티 그룹과 연관된 엔티티 그룹 박스의 컨테이너가 기 특정된 파일 레벨 박스를 제외한 모든 레벨에서 상기 시각 미디어 파일에 저장되는 것을 허용하지 않는 속성을 특정하는, 시각 미디어 프로세싱 방법.
  13. 제5 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 기 특정된 파일 레벨 박스는 파일 레벨 메타데이터 박스에 포함되는 그룹 리스트 박스인, 시각 미디어 프로세싱 방법.
  14. 제5 항 내지 제13 항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 시각 미디어 파일의 단일 트랙에 저장되는 상기 비트스트림에 응답하여, 상기 엔티티 그룹 및/혹은 상기 샘플 그룹은 상기 비트스트림에 대해 저장되는 것을 허용하지 않도록 특정하는, 시각 미디어 프로세싱 방법.
  15. 제1 항 내지 제14 항 중 어느 한 항에 있어서, 상기 변환은 상기 포맷 규칙에 따라 상기 시각 미디어 파일을 생성하고 상기 시각 미디어 파일에 상기 비트스트림을 저장하는 것을 포함하는, 시각 미디어 프로세싱 방법.
  16. 제1 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 변환은 상기 비트스트림을 복원하기 위해 상기 포맷 규칙에 따라 상기 시각 미디어 파일을 파싱하는 것을 포함하는, 시각 미디어 프로세싱 방법.
  17. 제1 항 내지 제16 항 중 하나 이상의 항에 개시된 방법을 구현하는 프로세서를 포함하는 장치.
  18. 프로세서 실행 가능한 코드를 저장하는 비 일시적 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 코드는 제1 항 내지 제16 항 중 하나 이상의 항에 개시된 방법을 프로세서가 구현하게 하는, 비 일시적 컴퓨터 판독 가능한 저장 매체.
KR1020210125019A 2020-09-17 2021-09-17 코딩된 비디오에서 동작 포인트 엔티티 그룹 시그널링 KR20220037399A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063079946P 2020-09-17 2020-09-17
US63/079,946 2020-09-17
US202063088786P 2020-10-07 2020-10-07
US63/088,786 2020-10-07

Publications (1)

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

Family

ID=77801612

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020210125019A KR20220037399A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서 동작 포인트 엔티티 그룹 시그널링
KR1020210125018A KR20220037398A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서 종속성 정보 시그널링
KR1020210125017A KR20220037397A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서 동작 포인트 샘플 그룹

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020210125018A KR20220037398A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서 종속성 정보 시그널링
KR1020210125017A KR20220037397A (ko) 2020-09-17 2021-09-17 코딩된 비디오에서 동작 포인트 샘플 그룹

Country Status (5)

Country Link
US (3) US11758195B2 (ko)
EP (3) EP3972268A1 (ko)
JP (3) JP7376544B2 (ko)
KR (3) KR20220037399A (ko)
CN (3) CN114205604A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021060827A1 (ko) * 2019-09-23 2021-04-01 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
JP7431330B2 (ja) 2019-12-26 2024-02-14 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイル、層及びレイヤの指示
WO2021134055A1 (en) 2019-12-27 2021-07-01 Bytedance Inc. Subpicture signaling in parameter sets
CN114930830A (zh) 2020-01-09 2022-08-19 字节跳动有限公司 波前并行处理的信令通知
EP4107957A4 (en) * 2020-03-21 2023-08-23 Beijing Bytedance Network Technology Co., Ltd. RESAMPLING REFERENCE IMAGE
CN115699761A (zh) 2020-04-19 2023-02-03 抖音视界有限公司 变换跳过残差编解码
EP4154533A4 (en) 2020-06-20 2023-11-01 Beijing Bytedance Network Technology Co., Ltd. CROSS-LAYER PREDICTION WITH DIFFERENT CODING BLOCK SIZE
US11758195B2 (en) 2020-09-17 2023-09-12 Lemon Inc. Dependency information signaling in coded video
GB2599171A (en) * 2020-09-29 2022-03-30 Canon Kk Method and apparatus for encapsulating video data into a file
WO2024020050A1 (en) * 2022-07-18 2024-01-25 Bytedance Inc. Drap and edrap in the isobmff

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10178140B2 (en) 2012-07-10 2019-01-08 Vid Scale, Inc Quality-driven streaming
US9712843B2 (en) 2013-10-23 2017-07-18 Qualcomm Incorporated Multi-layer video file format designs
US9866608B2 (en) 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content
US10291561B2 (en) 2015-02-09 2019-05-14 Nokia Technologies Oy Apparatus, a method and a computer program for image coding and decoding
GB2539462B (en) 2015-06-16 2019-04-03 Canon Kk Obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US10034010B2 (en) 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US10419768B2 (en) 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
WO2018173498A1 (en) 2017-03-20 2018-09-27 Sharp Kabushiki Kaisha Systems and methods for signaling scalable video in a media application format
EP3821608A4 (en) 2018-07-11 2022-04-13 Nokia Technologies Oy METHOD AND DEVICE FOR STORAGE AND SIGNALING OF COMPRESSED POINT CLOUDS
TWI826533B (zh) 2018-09-19 2023-12-21 大陸商北京字節跳動網絡技術有限公司 一個幀內編解碼塊的多個預測塊
GB2579389B (en) 2018-11-29 2022-07-27 Canon Kk Method, device and computer program for encapsulating media data into a media file
WO2020156544A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer initialization for intra block copy in video coding
US11228776B1 (en) * 2020-03-27 2022-01-18 Tencent America LLC Method for output layer set mode in multilayered video stream
KR20220163474A (ko) 2020-04-03 2022-12-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 비디오 코딩을 위한 파일 포맷 개념
WO2022060113A1 (ko) 2020-09-16 2022-03-24 엘지전자 주식회사 미디어 파일 처리 방법 및 그 장치
US11758195B2 (en) 2020-09-17 2023-09-12 Lemon Inc. Dependency information signaling in coded video

Also Published As

Publication number Publication date
CN114205606A (zh) 2022-03-18
JP2022050378A (ja) 2022-03-30
US11683529B2 (en) 2023-06-20
JP7372293B2 (ja) 2023-10-31
US20220086494A1 (en) 2022-03-17
KR20220037398A (ko) 2022-03-24
US11758195B2 (en) 2023-09-12
JP2022050376A (ja) 2022-03-30
KR20220037397A (ko) 2022-03-24
EP3972266A1 (en) 2022-03-23
JP7319336B2 (ja) 2023-08-01
CN114205604A (zh) 2022-03-18
US20220086496A1 (en) 2022-03-17
US20220086495A1 (en) 2022-03-17
JP7376544B2 (ja) 2023-11-08
EP3972267A1 (en) 2022-03-23
CN114205605A (zh) 2022-03-18
US11671627B2 (en) 2023-06-06
JP2022050377A (ja) 2022-03-30
EP3972268A1 (en) 2022-03-23

Similar Documents

Publication Publication Date Title
US11671627B2 (en) Operating point entity group signaling in coded video
KR20220037387A (ko) 코딩된 비디오에서의 디코더 구성 레코드
US11831921B2 (en) Video operating points record syntax and semantics
US20230239502A1 (en) Signalling of multiview information