KR20230159499A - 미디어 파일 처리 방법 및 그 장치 - Google Patents

미디어 파일 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR20230159499A
KR20230159499A KR1020237035548A KR20237035548A KR20230159499A KR 20230159499 A KR20230159499 A KR 20230159499A KR 1020237035548 A KR1020237035548 A KR 1020237035548A KR 20237035548 A KR20237035548 A KR 20237035548A KR 20230159499 A KR20230159499 A KR 20230159499A
Authority
KR
South Korea
Prior art keywords
unit
ols
media file
units
sequence
Prior art date
Application number
KR1020237035548A
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 KR20230159499A publication Critical patent/KR20230159499A/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/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • 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/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/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

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

본 문서(present document)의 일 실시예에 따르면, 미디어 파일 처리 장치에 의하여 수행되는 미디어 파일 처리 방법이 제공된다. 상기 방법은 제1 OLS에 대한 액세스 유닛들의 시퀀스를 복원하는 단계, 제1 조건 및 제2 조건이 참인지 판단하는 단계, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS NAL 유닛들을 삽입하는 단계를 포함하고, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 한다.

Description

미디어 파일 처리 방법 및 그 장치
본 문서는 비디오/영상 코딩 기술에 관한 것으로, 보다 상세하게는 비디오/영상 코딩 시스템에서 코딩된 영상 정보에 대한 미디어 파일을 처리하는 방법 및 그 장치에 관한 것이다.
최근 4K 또는 8K 이상의 UHD(Ultra High Definition) 비디오/영상과 같은 고해상도, 고품질의 비디오/영상에 대한 수요가 다양한 분야에서 증가하고 있다. 비디오/영상 데이터가 고해상도, 고품질이 될수록 기존의 비디오/영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 비디오/영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
또한, 최근 VR(Virtual Reality), AR(Artificial Realtiy) 컨텐츠나 홀로그램 등의 실감 미디어(Immersive Media)에 대한 관심 및 수요가 증가하고 있으며, 게임 영상과 같이 현실 영상과 다른 영상 특성을 갖는 비디오/영상에 대한 방송이 증가하고 있다.
이에 따라, 상기와 같은 다양한 특성을 갖는 고해상도 고품질의 비디오/영상의 정보를 효과적으로 압축하여 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 문서의 기술적 과제는 비디오/영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 문서의 다른 기술적 과제는 코딩된 영상 정보에 대한 미디어 파일을 생성하는 방법 및 장치를 제공함에 있다.
본 문서의 다른 기술적 과제는 코딩된 영상 정보에 대한 미디어 파일을 처리하는 방법 및 장치를 제공함에 있다.
본 문서의 일 실시예에 따르면, 미디어 파일 생성 장치에 의하여 수행되는 미디어 파일 생성 방법이 제공된다. 상기 방법은 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 생성하는 단계, 제1 조건 및 제2 조건이 참(true)인지 판단하는 단계, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 단계, 및 상기 제1 OLS를 포함하는 상기 미디어 파일을 생성하는 단계를 포함하고, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 한다.
본 문서의 다른 일 실시예에 따르면, 미디어 파일 생성 장치가 제공된다. 상기 미디어 파일 생성 장치는 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 생성하고, 제1 조건 및 제2 조건이 참(true)인지 판단하고, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하고, 및 상기 제1 OLS를 포함하는 상기 미디어 파일을 생성하는 미디어 파일 생성부를 포함하고, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 한다.
본 문서의 또 다른 일 실시예에 따르면, 미디어 파일 처리 장치에 의하여 수행되는 미디어 파일 처리 방법을 제공한다. 상기 방법은 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 복원하는 단계, 제1 조건 및 제2 조건이 참(true)인지 판단하는 단계, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 단계를 포함하고, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 한다.
본 문서의 또 다른 일 실시예에 따르면, 미디어 파일 처리 장치를 제공한다. 상기 미디어 파일 처리 장치는 미디어 파일을 획득하는 수신부 및 상기 미디어 파일의 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 복원하고, 제1 조건 및 제2 조건이 참(true)인지 판단하고, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 미디어 파일 처리부를 포함하고, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 한다.
본 문서의 또 다른 일 실시예에 따르면, 미디어 파일 생성 방법에 의하여 생성된 미디어 파일이 저장된 컴퓨터 판독가능 디지털 저장 매체를 제공한다. 컴퓨터 판독가능 디지털 저장 매체에 있어서, 상기 방법은 서브픽처 이미지 데이터를 각각 포함하는 서브픽처 트랙들을 구성하는 단계, 상기 서브픽처 트랙들을 참조하는 베이스 트랙을 구성하는 단계, 및 상기 서브픽처 트랙들과 상기 베이스 트랙을 포함하는 상기 미디어 파일을 생성하는 단계를 포함하되, 상기 베이스 트랙의 샘플은 구멍과 오버랩이 없는 직사각형 영역을 형성하고, 상기 구멍은 참조된 서브픽처 트랙들의 샘플들 중 적어도 하나에 의해 커버되지 않는 영역을 나타내고, 상기 오버랩은 참조된 서브픽처 트랙들의 샘플들에 의해 두 번 이상 커버되는 영역을 나타내는 것을 특징으로 한다.
본 문서에 따르면 최대 시간적 ID만 변경되어도 EOS NAL 유닛들을 삽입하는 불필요한 동작을 방지할 수 있고, 이를 통하여 전반적인 코딩 효율을 향상시킬 수 있다.
본 문서에 따르면 EOS NAL 유닛을 액세스 유닛 내의 적절한 위치에 삽입하기 위하여 발생되는 버든을 방지할 수 있고, 이를 통하여 전반적인 코딩 효율을 향상시킬 수 있다.
도 1은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 4는 코딩된 비디오/영상에 대한 계층 구조를 예시적으로 나타낸다.
도 5 및 도 6은 미디어 파일 구조의 예를 개략적으로 나타낸다.
도 7은 DASH 기반 적응형 스트리밍 모델의 전반적인 동작의 예를 나타낸다.
도 8은 본 문서에서 제안한 실시예가 적용되는 미디어 파일 생성 방법을 예시적으로 나타낸다.
도 9는 본 문서에서 제안한 실시예가 적용되어 생성된 미디어 파일을 디코딩하는 방법을 예시적으로 나타낸다.
도 10은 본 문서에 따른 미디어 파일 생성 장치에 의한 미디어 파일 생성 방법을 개략적으로 나타낸다.
도 11은 본 문서에 따른 미디어 파일 생성 방법 수행하는 미디어 파일 생성 장치를 개략적으로 나타낸다.
도 12는 본 문서에 따른 미디어 파일 처리 장치에 의한 미디어 파일 처리 방법을 개략적으로 나타낸다.
도 13은 본 문서에 따른 미디어 파일 처리 방법을 수행하는 미디어 파일 처리 장치를 개략적으로 나타낸다.
도 14는 본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다.
본 문서는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 문서의 실시예들을 특정 실시예에 한정하려고 하는 것이 아니다. 본 문서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 문서의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명문서에서 "포함하다" 또는 "가지다" 등의 용어는 문서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 문서에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 문서의 본질에서 벗어나지 않는 한 본 문서의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 문서의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용할 수 있고 동일한 구성 요소에 대해서 중복된 설명은 생략될 수 있다.
도 1은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 1을 참조하면, 비디오/영상 코딩 시스템은 제1 장치(소스 디바이스) 및 제2 장치(수신 디바이스)를 포함할 수 있다. 소스 디바이스는 인코딩된 비디오(video)/영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다.
상기 소스 디바이스는 비디오 소스, 인코딩 장치, 전송부를 포함할 수 있다. 상기 수신 디바이스는 수신부, 디코딩 장치 및 렌더러를 포함할 수 있다. 상기 인코딩 장치는 비디오/영상 인코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기는 인코딩 장치에 포함될 수 있다. 수신기는 디코딩 장치에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부는 상기 비트스트림을 수신/추출하여 디코딩 장치로 전달할 수 있다.
디코딩 장치는 인코딩 장치의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
이 문서는 비디오/영상 코딩에 관한 것이다. 예를 들어 이 문서에서 개시된 방법/실시예는 VVC (versatile video coding) 표준, EVC (essential video coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/영상 코딩 표준(ex. H.267 or H.268 등)에 개시되는 방법에 적용될 수 있다.
이 문서에서는 비디오/영상 코딩에 관한 다양한 실시예들을 제시하며, 다른 언급이 없는 한 상기 실시예들은 서로 조합되어 수행될 수도 있다.
이 문서에서 비디오(video)는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 서브픽처(subpicture)/슬라이스(slice)/타일(tile)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 서브픽처/슬라이스/타일은 하나 이상의 CTU(coding tree unit)을 포함할 수 있다. 하나의 픽처는 하나 이상의 서브픽처/슬라이스/타일로 구성될 수 있다. 하나의 픽처는 하나 이상의 타일 그룹으로 구성될 수 있다. 하나의 타일 그룹은 하나 이상의 타일들을 포함할 수 있다. 브릭은 픽처 내 타일 이내의 CTU 행(row)들의 사각 영역을 나타낼 수 있다. 타일은 다수의 브릭들로 파티셔닝될 수 있고, 각 브릭은 상기 타일 내 하나 이상의 CTU 행들로 구성될 수 있다. 다수의 브릭들로 파티셔닝되지 않은 타일은 또한 브릭으로 불릴 수 있다. 브릭 스캔은 픽처를 파티셔닝하는 CTU들의 특정한 순차적 오더링을 나타낼 수 있으며, 상기 CTU들은 브릭 내에서 CTU 래스터 스캔으로 정렬될 수 있고, 타일 내 브릭들은 상기 타일의 상기 브릭들의 래스터 스캔으로 연속적으로 정렬될 수 있고, 그리고 픽처 내 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 정렬될 수 있다. 또한, 서브 픽처는 픽처 내 하나 이상의 슬라이스의 사각 영역을 나타낼 수 있다. 즉, 서브 픽처는 픽처의 직사각형 영역을 총괄적으로 커버하는 하나 이상의 슬라이스를 포함할 수 있다. 타일은 특정 타일 열 및 특정 타일 열 이내의 CTU들의 사각 영역이다. 상기 타일 열은 CTU들의 사각 영역이고, 상기 사각 영역은 상기 픽처의 높이와 동일한 높이를 갖고, 너비는 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시될 수 있다. 상기 타일 행은 CTU들의 사각 영역이고, 상기 사각 영역은 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시되는 너비를 갖고, 높이는 상기 픽처의 높이와 동일할 수 있다. 타일 스캔은 픽처를 파티셔닝하는 CTU들의 특정 순차적 오더링을 나타낼 수 있고, 상기 CTU들은 타일 내 CTU 래스터 스캔으로 연속적으로 정렬될 수 있고, 픽처 내 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 정렬될 수 있다. 슬라이스는 픽처의 정수개의 브릭들을 포함할 수 있고, 상기 정수개의 브릭들은 하나의 NAL 유닛에 포함될 수 있다. 슬라이스는 다수의 완전한 타일들로 구성될 수 있고, 또는 하나의 타일의 완전한 브릭들의 연속적인 시퀀스일 수도 있다. 이 문서에서 타일 그룹과 슬라이스는 혼용될 수 있다. 예를 들어 본 문서에서 tile group/tile group header는 slice/slice header로 불릴 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 하나의 유닛은 하나의 루마 블록 및 두개의 크로마(ex. cb, cr) 블록을 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
본 문서에서 "A 또는 B(A or B)"는 "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 달리 표현하면, 본 문서에서 "A 또는 B(A or B)"는 "A 및/또는 B(A and/or B)"으로 해석될 수 있다. 예를 들어, 본 문서에서 "A, B 또는 C(A, B or C)"는 "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다.
본 문서에서 사용되는 슬래쉬(/)나 쉼표(comma)는 "및/또는(and/or)"을 의미할 수 있다. 예를 들어, "A/B"는 "A 및/또는 B"를 의미할 수 있다. 이에 따라 "A/B"는 "오직 A", "오직 B", 또는 "A와 B 모두"를 의미할 수 있다. 예를 들어, "A, B, C"는 "A, B 또는 C"를 의미할 수 있다.
본 문서에서 "적어도 하나의 A 및 B(at least one of A and B)"는, "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 또한, 본 문서에서 "적어도 하나의 A 또는 B(at least one of A or B)"나 "적어도 하나의 A 및/또는 B(at least one of A and/or B)"라는 표현은 "적어도 하나의 A 및 B(at least one of A and B)"와 동일하게 해석될 수 있다.
또한, 본 문서에서 "적어도 하나의 A, B 및 C(at least one of A, B and C)"는, "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"을 의미할 수 있다. 또한, "적어도 하나의 A, B 또는 C(at least one of A, B or C)"나 "적어도 하나의 A, B 및/또는 C(at least one of A, B and/or C)"는 "적어도 하나의 A, B 및 C(at least one of A, B and C)"를 의미할 수 있다.
또한, 본 문서에서 사용되는 괄호는 "예를 들어(for example)"를 의미할 수 있다. 구체적으로, "예측(인트라 예측)"로 표시된 경우, "예측"의 일례로 "인트라 예측"이 제안된 것일 수 있다. 달리 표현하면 본 문서의 "예측"은 "인트라 예측"으로 제한(limit)되지 않고, "인트라 예측"이 "예측"의 일례로 제안될 것일 수 있다. 또한, "예측(즉, 인트라 예측)"으로 표시된 경우에도, "예측"의 일례로 "인트라 예측"이 제안된 것일 수 있다.
본 문서에서 하나의 도면 내에서 개별적으로 설명되는 기술적 특징은, 개별적으로 구현될 수도 있고, 동시에 구현될 수도 있다.
이하의 도면은 본 문서의 구체적인 일례를 설명하기 위해 작성되었다. 도면에 기재된 구체적인 장치의 명칭이나 구체적인 신호/메시지/필드의 명칭은 예시적으로 제시된 것이므로, 본 문서의 기술적 특징이 이하의 도면에 사용된 구체적인 명칭에 제한되지 않는다.
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다. 이하 비디오 인코딩 장치라 함은 영상 인코딩 장치를 포함할 수 있다.
도 2를 참조하면, 인코딩 장치(200)는 영상 분할부(image partitioner, 210), 예측부(predictor, 220), 레지듀얼 처리부(residual processor, 230), 엔트로피 인코딩부(entropy encoder, 240), 가산부(adder, 250), 필터링부(filter, 260) 및 메모리(memory, 270)를 포함하여 구성될 수 있다. 예측부(220)는 인터 예측부(221) 및 인트라 예측부(222)를 포함할 수 있다. 레지듀얼 처리부(230)는 변환부(transformer, 232), 양자화부(quantizer 233), 역양자화부(dequantizer 234), 역변환부(inverse transformer, 235)를 포함할 수 있다. 레지듀얼 처리부(230)은 감산부(subtractor, 231)를 더 포함할 수 있다. 가산부(250)는 복원부(reconstructor) 또는 복원 블록 생성부(recontructged block generator)로 불릴 수 있다. 상술한 영상 분할부(210), 예측부(220), 레지듀얼 처리부(230), 엔트로피 인코딩부(240), 가산부(250) 및 필터링부(260)는 실시예에 따라 하나 이상의 하드웨어 컴포넌트(예를 들어 인코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(270)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(270)을 내/외부 컴포넌트로 더 포함할 수도 있다.
영상 분할부(210)는 인코딩 장치(200)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBTTT (Quad-tree binary-tree ternary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조, 및/또는 터너리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 문서에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우 상기 예측 유닛 및 상기 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(200)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(232)로 전송된다. 이 경우 도시된 바와 같이 인코더(200) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(231)라고 불릴 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 각 예측모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(222)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(222)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(221)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(221)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(221)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
예측부(220)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보를 기반으로 픽처 내 샘플 값을 시그널링할 수 있다.
상기 예측부 (인터 예측부(221) 및/또는 상기 인트라 예측부(222) 포함)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 변환부(232)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(233)는 변환 계수들을 양자화하여 엔트로피 인코딩부(240)로 전송되고, 엔트로피 인코딩부(240)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(233)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(240)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(240)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 본 문서에서 인코딩 장치에서 디코딩 장치로 전달/시그널링되는 정보 및/또는 신택스 요소들은 비디오/영상 정보에 포함될 수 있다. 상기 비디오/영상 정보는 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(240)로부터 출력된 신호는 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(200)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(240)에 포함될 수도 있다.
양자화부(233)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(234) 및 역변환부(235)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(250)는 복원된 레지듀얼 신호를 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(250)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편 픽처 인코딩 및/또는 복원 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(260)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(260)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(270), 구체적으로 메모리(270)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(260)은 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(270)에 전송된 수정된 복원 픽처는 인터 예측부(221)에서 참조 픽처로 사용될 수 있다. 인코딩 장치는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(200)와 디코딩 장치(300)에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(270) DPB는 수정된 복원 픽처를 인터 예측부(221)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(270)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(221)에 전달할 수 있다. 메모리(270)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(222)에 전달할 수 있다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3을 참조하면, 디코딩 장치(300)는 엔트로피 디코딩부(entropy decoder, 310), 레지듀얼 처리부(residual processor, 320), 예측부(predictor, 330), 가산부(adder, 340), 필터링부(filter, 350) 및 메모리(memory, 360)를 포함하여 구성될 수 있다. 예측부(330)는 인트라 예측부(331) 및 인터 예측부(332)를 포함할 수 있다. 레지듀얼 처리부(320)는 역양자화부(dequantizer, 321) 및 역변환부(inverse transformer, 321)를 포함할 수 있다. 상술한 엔트로피 디코딩부(310), 레지듀얼 처리부(320), 예측부(330), 가산부(340) 및 필터링부(350)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(360)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(360)을 내/외부 컴포넌트로 더 포함할 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(300)는 도 2의 인코딩 장치에서 비디오/영상 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(300)는 상기 비트스트림으로부터 획득한 블록 분할 관련 정보를 기반으로 유닛들/블록들을 도출할 수 있다. 디코딩 장치(300)는 인코딩 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 따라서 분할될 수 있다. 코딩 유닛으로부터 하나 이상의 변환 유닛이 도출될 수 있다. 그리고, 디코딩 장치(300)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(300)는 도 2의 인코딩 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(310)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(310)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 디코딩 장치는 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 더 기반으로 픽처를 디코딩할 수 있다. 본 문서에서 후술되는 시그널링/수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩되어 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(310)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(332) 및 인트라 예측부(331))로 제공되고, 엔트로피 디코딩부(310)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 레지듀얼 처리부(320)로 입력될 수 있다. 레지듀얼 처리부(320)는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플들, 레지듀얼 샘플 어레이)를 도출할 수 있다. 또한, 엔트로피 디코딩부(310)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(350)으로 제공될 수 있다. 한편, 인코딩 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(300)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(310)의 구성요소일 수도 있다. 한편, 본 문서에 따른 디코딩 장치는 비디오/영상/픽처 디코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및 샘플 디코더(비디오/영상/픽처 샘플 디코더)로 구분할 수도 있다. 상기 정보 디코더는 상기 엔트로피 디코딩부(310)를 포함할 수 있고, 상기 샘플 디코더는 상기 역양자화부(321), 역변환부(322), 가산부(340), 필터링부(350), 메모리(360), 인터 예측부(332) 및 인트라 예측부(331) 중 적어도 하나를 포함할 수 있다.
역양자화부(321)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(321)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 인코딩 장치에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(321)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)를 획득할 수 있다.
역변환부(322)에서는 변환 계수들을 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(310)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
예측부(320)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보가 상기 비디오/영상 정보에 포함되어 시그널링될 수 있다.
인트라 예측부(331)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(331)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(332)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(332)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(340)는 획득된 레지듀얼 신호를 예측부(인터 예측부(332) 및/또는 인트라 예측부(331) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(340)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 출력될 수도 있고 또는 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편, 픽처 디코딩 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(350)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(350)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(360), 구체적으로 메모리(360)의 DPB에 전송할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(360)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(332)에서 참조 픽쳐로 사용될 수 있다. 메모리(360)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(260)에 전달할 수 있다. 메모리(360)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(331)에 전달할 수 있다.
본 문서에서, 인코딩 장치(200)의 필터링부(260), 인터 예측부(221) 및 인트라 예측부(222)에서 설명된 실시예들은 각각 디코딩 장치(300)의 필터링부(350), 인터 예측부(332) 및 인트라 예측부(331)에도 동일 또는 대응되도록 적용될 수 있다.
도 4는 코딩된 비디오/영상에 대한 계층 구조를 예시적으로 나타낸다.
도 4를 참조하면, 코딩된 비디오/영상은 비디오/영상의 디코딩 처리 및 그 자체를 다루는 VCL(video coding layer, 비디오 코딩 계층), 부호화된 정보를 전송하고 저장하는 하위 시스템, 그리고 VCL과 하위 시스템 사이에 존재하며 네트워크 적응 기능을 담당하는 NAL(network abstraction layer, 네트워크 추상 계층)로 구분될 수 있다.
예를 들어, VCL에서는, 압축된 이미지 데이터(슬라이스 데이터)를 포함하는 VCL 데이터가 생성되거나 또는 픽처 파라미터 세트(Picture Parameter Set, PPS), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 비디오 파라미터 세트(Video Parameter Set, VPS) 또는 영상 디코딩 과정에 추가로 필요한 SEI(Supplemental Enhancement Information, SEI) 메시지를 포함하는 파라미터 세트가 생성될 수 있다.
예를 들어, NAL에서는 VCL에서 생성된 RBSP(Raw Byte Sequence Payload)에 헤더(header) 정보(NAL 유닛 헤더)를 추가하여 NAL 유닛이 생성될 수 있다. 이 경우, RBSP는 VCL에서 생성된 슬라이스 데이터(slice data), 파라미터 세트(parameter set), SEI 메시지(SEI message) 등을 참조할 수 있다. NAL 유닛 헤더는 해당 NAL 유닛에 포함된 RBSP 데이터에 따라 지정된 NAL 유닛 타입 정보를 포함할 수 있다.
예를 들어, 도 4에 도시된 바와 같이 NAL 유닛은 VCL에서 생성된 RBSP에 따라 VCL NAL 유닛과 Non-VCL NAL 유닛으로 분류될(classified) 수 있다. VCL NAL 유닛은 영상(image)에 대한 정보(슬라이스 데이터)를 포함하는 NAL 유닛을 의미할 수 있고, Non-VCL NAL 유닛은 영상 디코딩에 필요한 정보(파라미터 세트 또는 SEI 메시지)를 포함하는 NAL 유닛을 의미할 수 있다.
상술한 VCL NAL 유닛과 Non-VCL NAL 유닛은 서브시스템의 데이터 규격(data standard)에 따라 헤더 정보를 첨부하여 네트워크를 통해 전송될 수 있다. 예를 들어, NAL 유닛은 H.266/VVC 파일 포맷(VVC file format), 실시간 전송 프로토콜(real-time transport protocol, RTP), 전송 스트림(Transport Stream, TS) 등과 같은 미리 정해진 표준의 데이터 포맷(data format)으로 변환될 수 있고, 다양한 네트워크를 통해 전송될 수 있다.
또한, 상술한 바와 같이 NAL 유닛은 해당 NAL 유닛에 포함된 RBSP 데이터 구조에 따라서 NAL 유닛 타입이 지정될 수 있으며, NAL 유닛 타입에 대한 정보는 NAL 유닛 헤더에 저장되고 시그널링될 수 있다.
예를 들어, NAL 유닛은 영상에 대한 정보(슬라이스 데이터)를 포함하는지 여부에 따라 VCL NAL 유닛 타입과 Non-VCL NAL 유닛 타입으로 분류될 수 있다. 또한, VCL NAL 유닛 타입은 VCL NAL 유닛에 포함된 픽처의 특성과 타입에 따라 분류될 수 있고, Non-VCL NAL 유닛 타입은 파라미터 세트의 타입에 따라 분류될 수 있다.
다음은 Non-VCL NAL 유닛 타입에 포함된 파라미터 세트의 타입에 따라 지정된 NAL 유닛 타입의 예일 수 있다.
- APS(Adaptation Parameter Set) NAL 유닛: APS를 포함한 NAL 유닛에 대한 타입
- DPS(Decoding Parameter Set) NAL 유닛: DPS를 포함한 NAL 유닛에 대한 타입
- VPS(Video Parameter Set) NAL 유닛: VPS를 포함한 NAL 유닛에 대한 타입
- SPS(Sequence Parameter Set) NAL 유닛: SPS를 포함한 NAL 유닛에 대한 타입
- PPS(Picture Parameter Set) NAL 유닛: PPS를 포함한 NAL 유닛에 대한 타입
- PH (Picture header) NAL 유닛: PH를 포함한 NAL 유닛에 대한 타입
상술한 NAL 유닛 타입들은 NAL 유닛 타입에 대한 신택스 정보를 가질 수 있고, 신택스 정보는 NAL 유닛 헤더에 저장 및 시그널링될 수 있다. 예를 들어, 상기 신택스 정보는 nal_unit_type 일 수 있고, NAL 단위 타입은 nal_unit_type 값으로 지정될 수 있다.
한편, 하나의 픽처는 복수의 슬라이스를 포함할 수 있고, 슬라이스는 슬라이스 헤더 및 슬라이스 데이터를 포함할 수 있다. 이 경우, 복수의 슬라이스(슬라이스 헤더 및 슬라이스 데이터의 세트)에 대해 하나의 픽처 헤더가 추가될 수 있다. 픽처 헤더(픽처 헤더 신택스)는 픽처에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. 슬라이스 헤더(슬라이스 헤더 신택스)는 슬라이스에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. APS(APS 신택스) 또는 PPS(PPS 신택스)는 하나 이상의 슬라이스 또는 픽처에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. SPS(SPS 신택스)는 하나 이상의 시퀀스(sequence)에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. VPS(VPS 신택스)는 복수의 레이어들에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. DPS(DPS 신택스)는 전체 영상에 공통적으로 적용될 수 있는 정보/파라미터를 포함할 수 있다. DPS는 코딩된 비디오 시퀀스(Coded Video Sequence, CVS)의 연결(concatenation)과 관련된 정보/파라미터를 포함할 수 있다.
본 문서에서 인코딩 장치에서 디코딩 장치로 인코딩되어 비트스트림 형태로 시그널링되는 영상/비디오 정보는 픽처 내 파티셔닝 관련 정보, 인트라/인터 예측 정보, 인터 레이어 예측 관련 정보, 레지듀얼 정보, 인루프 필터링 정보 등을 포함할 뿐 아니라, 상기 슬라이스 헤더에 포함된 정보, 상기 픽처 헤더에 포함된 정보, 상기 APS에 포함된 정보, 상기 PPS에 포함된 정보, SPS에 포함된 정보, VPS에 포함된 정보 및/또는 DPS에 포함된 정보를 포함할 수 있다. 또한 상기 영상/비디오 정보는 NAL 유닛 헤더의 정보를 더 포함할 수 있다.
한편, 상술한 인코딩된 이미지(image)/비디오(video) 정보는 미디어 파일(media file)을 생성하기 위해 미디어 파일 포멧(media file format)을 기반으로 구성될 수 있다. 예를 들어, 인코딩된 이미지/비디오 정보는 상기 인코딩된 이미지/비디오 정보에 대한 하나 이상의 NAL 유닛/샘플 엔트리(entry)를 기반으로 미디어 파일 (세그먼트)을 형성(form)할 수 있다. 상기 미디어 파일은 샘플 엔트리와 트랙(track)을 포함할 수 있다. 예를 들어, 미디어 파일 (세그먼트)은 다양한 레코드(record)를 포함할 수 있으며, 각각의 레코드는 이미지/비디오와 관련된 정보 또는 미디어 파일 포멧과 관련된 정보를 포함할 수 있다. 또한, 예를 들어, 하나 이상의 NAL 유닛은 미디어 파일의 구성(configuration) 레코드(또는 디코더 구성 레코드, 또는 VVC 디코더 구성 레코드) 필드(field)에 저장될 수 있다. 여기서, 필드는 신택스 엘리먼트(syntax element)라고 불릴 수도 있다.
예를 들어, 이 문서에서 개시된 방법/실시예가 적용될 수 있는 미디어 파일 포멧으로 ISO Base Media File Format (ISOBMFF) 이 사용될 수 있다. ISOBMFF는 AVC 파일 포멧, HEVC 파일 포멧 및/또는 VVC 파일 포멧 등과 같은 많은 코덱 인캡슐레이션 포멧들(codec encapsulation formats)과 MPEG-4 파일 포멧, 3GPP 파일 포멧(3GP) 및/또는 DVB 파일 포멧 등과 같은 많은 멀티미디어 컨테이너 포멧들의 기초로 사용될 수 있다. 또한, 오디오 및 비디오와 같은 연속 미디어(continuous media) 외에도 이미지(image)와 같은 정적 미디어(static media) 및 메타데이터가 ISOBMFF에 따른 파일에 저장될 수 있다. ISOBMFF에 따라 구조화된 파일은 로컬 미디어 파일 플레이백(local media file playback), 원격 파일의 점진적 다운로드(progressive downloading of a remote file), DASH(Dynamic Adaptive Streaming over HTTP, DASH)에 대한 세그먼트(segments), 스트리밍할 콘텐츠의 컨테이너(containers) 및 패킷화 인스트럭션(packetization instructions), 수신된 실시간 미디어 스트림의 리코딩(recording of received real-time media streams) 등 다양한 용도로 사용될 수 있다.
후술하는 '박스(box)'는 ISOBMFF 의 기본 신택스 엘리먼트(elementary syntax element)일 수 있다. ISOBMFF 파일은 일련의 박스(a sequence of boxes)로 구성될 수 있으며, 박스에는 다른 박스가 포함될 수 있다. 예를 들어, 무비 박스 (그룹화 타입(grouping type)이 'moov'인 박스)는 미디어 파일에 있는 연속 미디어 스트림들(continuous media streams)에 대한 메타데이터를 포함할 수 있고 각 스트림은 파일에 트랙으로 표시될 수 있다. 트랙에 대한 메타데이터는 트랙 박스(그룹화 타입(grouping type)이 'trak'인 박스)에 포함될 수 있고, 트랙의 미디어 콘텐츠(media content)는 미디어 데이터 박스(그룹화 타입(grouping type)이 'mdat'인 박스)에 포함되거나 또는 별도의 파일에 직접 포함될 수 있다. 트랙의 미디어 콘텐츠는 오디오 또는 비디오 액세스 유닛들과 같은 샘플 시퀀스(a sequence of samples)로 구성될 수 있다. 예를 들어, ISOBMFF는 기본 미디어 스트림(elementary media stream)을 포함하는 미디어 트랙(media track), 미디어 전송 인스트럭션들(media transmission instructions)을 포함하거나 수신된 패킷 스트림을 나타내는 힌트 트랙(hint track), 시간 동기화된 메타데이터(timesynchronized metadata)를 포함하는 타임드 메타데이터 트랙(timed metadata track) 와 같은 타입들의 트랙들을 지정할 수 있다.
또한, ISOBMFF는 저장용으로 설계되었지만 예를 들어 점진적 다운로드(progressive download) 또는 DASH와 같은 스트리밍에도 매우 유용하다. 스트리밍 목적으로, ISOBMFF에서 정의된 무비 프레그먼트들(movie fragments)이 사용될 수 있다. 단편화된 ISOBMFF 파일(fragmented ISOBMFF file)은 예를 들어 비디오 및 오디오와 관련된 두 개의 트랙들로 나타낼 수 있다. 예를 들어, 'moov' 박스를 수신한 후에 임의 액세스(random access)가 포함된 경우, 관련 미디어 데이터와 함께 모든 무비 프레그먼트 'moof'가 디코딩될 수 있다.
또한, 각 트랙의 메타데이터는 상기 트랙에 사용된 코딩 또는 인캡슐레이션 포멧과 해당 포멧을 처리하는데 필요한 초기화 데이터(initialization data)를 제공하는 샘플 디스크립션 엔트리들(sample description entries)의 리스트를 포함할 수 있다. 또한, 각 샘플은 상기 트랙의 상기 샘플 디스크립션 엔트리들 중 하나와 연결될 수 있다.
ISOBMFF를 사용하면 다양한 메커니즘으로 샘플별 메타데이터(sample-specific metadata)를 지정할 수 있다. 샘플 테이블 박스(그룹화 타입이 'stbl'인 박스) 내의 특정 박스들은 일반적인 요구 사항에 대응하기 위해 표준화될 수 있다. 예를 들어, 싱크(Sync) 샘플 박스(그룹화 타입이 'stss'인 박스)는 트랙의 랜덤 액세스 샘플들(random access samples)을 나열하는데 사용될 수 있다. 샘플 그룹화 메커니즘을 사용하면 파일 내 샘플 그룹 디스크립션 엔트리(sample group description entry)로 지정된 동일한 속성(property)을 공유하는 샘플 그룹으로 4자 그룹화 타입(a four-character grouping type)에 따라 샘플들을 매핑할 수 있다. ISOBMFF에는 여러 그룹화 타입들이 지정되어 있을 수 있다.
도 5 및 도 6은 미디어 파일의 구조의 일 예를 도시한 도면이다.
미디어 파일은 적어도 하나 이상의 박스를 포함할 수 있다. 여기서 박스(box)는 미디어 데이터 또는 미디어 데이터에 관련된 메타데이터 등을 포함하는 데이터 블록 내지 오브젝트일 수 있다. 박스들은 서로 계층적 구조를 이룰 수 있으며, 이에 따라 데이터들이 분류되어 미디어 파일이 대용량 미디어 데이터의 저장 및/또는 전송에 적합한 형태를 띄게 될 수 있다. 또한 미디어 파일은, 사용자가 미디어 컨텐츠의 특정지점으로 이동하는 등, 미디어 정보에 접근하는데 있어 용이한 구조를 가질 수 있다.
미디어 파일은 ftyp 박스, moov 박스 및/또는 mdat 박스를 포함할 수 있다.
ftyp 박스(파일 타입 박스)는 해당 미디어 파일에 대한 파일 타입 또는 호환성 관련 정보를 제공할 수 있다. ftyp 박스는 해당 미디어 파일의 미디어 데이터에 대한 구성 버전 정보를 포함할 수 있다. 디코딩 장치는 ftyp 박스를 참조하여 해당 미디어 파일을 구분할 수 있다.
moov 박스(무비 박스)는 해당 미디어 파일의 미디어 데이터에 대한 메타 데이터를 포함하는 박스일 수 있다. moov 박스는 모든 메타 데이터들을 위한 컨테이너 역할을 할 수 있다. moov 박스는 메타 데이터 관련 박스들 중 최상위 계층의 박스일 수 있다. 실시예에 따라 moov 박스는 미디어 파일 내에 하나만 존재할 수 있다.
mdat 박스(미디어 데이터 박스)는 해당 미디어 파일의 실제 미디어 데이터들을 담는 박스일 수 있다. 미디어 데이터들은 오디오 샘플 및/또는 비디오 샘플들을 포함할 수 있는데, mdat 박스는 이러한 미디어 샘플들을 담는 컨테이너 역할을 할 수 있다.
실시예에 따라 전술한 moov 박스는 mvhd 박스, trak 박스 및/또는 mvex 박스 등을 하위 박스로서 더 포함할 수 있다.
mvhd 박스(무비 헤더 박스)는 해당 미디어 파일에 포함되는 미디어 데이터의 미디어 프리젠테이션 관련 정보를 포함할 수 있다. 즉, mvhd 박스는 해당 미디어 프리젠테이션의 미디어 생성시간, 변경시간, 시간규격, 기간 등의 정보를 포함할 수 있다.
trak 박스(트랙 박스)는 해당 미디어 데이터의 트랙에 관련된 정보를 제공할 수 있다. trak 박스는 오디오 트랙 또는 비디오 트랙에 대한 스트림 관련 정보, 프리젠테이션 관련 정보, 액세스 관련 정보 등의 정보를 포함할 수 있다. Trak 박스는 트랙의 개수에 따라 복수개 존재할 수 있다.
trak 박스는 실시예에 따라 tkhd 박스(트랙 헤더 박스)를 하위 박스로서 더 포함할 수 있다. tkhd 박스는 trak 박스가 나타내는 해당 트랙에 대한 정보를 포함할 수 있다. tkhd 박스는 해당 트랙의 생성시간, 변경시간, 트랙 식별자 등의 정보를 포함할 수 있다.
mvex 박스(무비 익스텐드 박스)는 해당 미디어 파일에 후술할 moof 박스가 있을 수 있음을 지시할 수 있다. 특정 트랙의 모든 미디어 샘플들을 알기 위해서, moof 박스들이 스캔되어야할 수 있다.
미디어 파일은, 실시예에 따라, 복수개의 프래그먼트로 나뉘어질 수 있다(500). 이를 통해 미디어 파일이 분할되어 저장되거나 전송될 수 있다. 미디어 파일의 미디어 데이터들(mdat 박스)은 복수개의 프래그먼트로 나뉘어지고, 각각의 프래그먼트는 moof 박스와 나뉘어진 mdat 박스를 포함할 수 있다. 실시예에 따라 프래그먼트들을 활용하기 위해서는 ftyp 박스 및/또는 moov 박스의 정보가 필요할 수 있다.
moof 박스(무비 프래그먼트 박스)는 해당 프래그먼트의 미디어 데이터에 대한 메타 데이터를 제공할 수 있다. moof 박스는 해당 프래그먼트의 메타데이터 관련 박스들 중 최상위 계층의 박스일 수 있다.
mdat 박스(미디어 데이터 박스)는 전술한 바와 같이 실제 미디어 데이터를 포함할 수 있다. 이 mdat 박스는 각각의 해당 프래그먼트에 해당하는 미디어 데이터들의 미디어 샘플들을 포함할 수 있다.
실시예에 따라 전술한 moof 박스는 mfhd 박스 및/또는 traf 박스 등을 하위 박스로서 더 포함할 수 있다.
mfhd 박스(무비 프래그먼트 헤더 박스)는 분할된 복수개의 프래그먼트들 간의 연관성과 관련한 정보들을 포함할 수 있다. mfhd 박스는 시퀀스 넘버(sequence number) 를 포함하여, 해당 프래그먼트의 미디어 데이터가 분할된 몇 번째 데이터인지를 나타낼 수 있다. 또한, mfhd 박스를 이용하여 분할된 데이터 중 누락된 것은 없는지 여부가 확인될 수 있다.
traf 박스(트랙 프래그먼트 박스)는 해당 트랙 프래그먼트에 대한 정보를 포함할 수 있다. traf 박스는 해당 프래그먼트에 포함되는 분할된 트랙 프래그먼트에 대한 메타데이터를 제공할 수 있다. traf 박스는 해당 트랙 프래그먼트 내의 미디어 샘플들이 복호화/재생될 수 있도록 메타데이터를 제공할 수 있다. traf 박스는 트랙 프래그먼트의 개수에 따라 복수개 존재할 수 있다.
실시예에 따라 전술한 traf 박스는 tfhd 박스 및/또는 trun 박스 등을 하위 박스로서 더 포함할 수 있다.
tfhd 박스(트랙 프래그먼트 헤더 박스)는 해당 트랙 프래그먼트의 헤더 정보를 포함할 수 있다. tfhd 박스는 전술한 traf 박스가 나타내는 트랙 프래그먼트의 미디어 샘플들에 대하여, 기본적인 샘플크기, 기간, 오프셋, 식별자 등의 정보를 제공할 수 있다.
trun 박스(트랙 프래그먼트 런 박스)는 해당 트랙 프래그먼트 관련 정보를 포함할 수 있다. trun 박스는 미디어 샘플별 기간, 크기, 재생시점 등과 같은 정보를 포함할 수 있다.
전술한 미디어 파일 내지 미디어 파일의 프래그먼트들은 세그먼트들로 처리되어 전송될 수 있다. 세그먼트에는 초기화 세그먼트(initialization segment) 및/또는 미디어 세그먼트(media segment) 가 있을 수 있다.
도시된 실시예(510)의 파일은, 미디어 데이터는 제외하고 미디어 디코더의 초기화와 관련된 정보 등을 포함하는 파일일 수 있다. 이 파일은 예를 들어 전술한 초기화 세그먼트에 해당할 수 있다. 초기화 세그먼트는 전술한 ftyp 박스 및/또는 moov 박스를 포함할 수 있다.
도시된 실시예(520)의 파일은, 전술한 프래그먼트를 포함하는 파일일 수 있다. 이 파일은 예를 들어 전술한 미디어 세그먼트에 해당할 수 있다. 미디어 세그먼트는 전술한 moof 박스 및/또는 mdat 박스를 포함할 수 있다. 또한, 미디어 세그먼트는 styp 박스 및/또는 sidx 박스를 더 포함할 수 있다.
styp 박스(세그먼트 타입 박스)는 분할된 프래그먼트의 미디어 데이터를 식별하기 위한 정보를 제공할 수 있다. styp 박스는 분할된 프래그먼트에 대해, 전술한 ftyp 박스와 같은 역할을 수행할 수 있다. 실시예에 따라 styp 박스는 ftyp 박스와 동일한 포멧을 가질 수 있다.
sidx 박스(세그먼트 인덱스 박스)는 분할된 프래그먼트에 대한 인덱스를 나타내는 정보를 제공할 수 있다. 이를 통해 해당 분할된 프래그먼트가 몇번째 프래그먼트인지가 지시될 수 있다.
실시예(530)에 따라 ssix 박스가 더 포함될 수 있는데, ssix 박스(서브 세그먼트 인덱스 박스)는 세그먼트가 서브 세그먼트로 더 나뉘어지는 경우에 있어, 그 서브 세그먼트의 인덱스를 나타내는 정보를 제공할 수 있다.
미디어 파일 내의 박스들은, 도시된 실시예(550)와 같은 박스 내지 풀 박스(FullBox) 형태를 기반으로, 더 확장된 정보들을 포함할 수 있다. 이 실시예에서 size 필드, largesize 필드는 해당 박스의 길이를 바이트 단위 등으로 나타낼 수 있다. version 필드는 해당 박스 포멧의 버전을 나타낼 수 있다. Type 필드는 해당 박스의 타입 내지 식별자를 나타낼 수 있다. flags 필드는 해당 박스와 관련된 플래그 등을 나타낼 수 있다.
한편, 본 문서의 비디오/영상에 관한 필드(속성)들은 DASH 기반 적응형(adaptive) 스트리밍 모델에 포함되어 전달될 수 있다.
도 7은 DASH 기반 적응형 스트리밍 모델의 전반적인 동작의 일 예를 나타낸다. 도시된 실시예(700)에 따른 DASH 기반 적응형 스트리밍 모델은, HTTP 서버와 DASH 클라이언트 간의 동작을 기술하고 있다. 여기서 DASH(Dynamic Adaptive Streaming over HTTP)는, HTTP 기반 적응형 스트리밍을 지원하기 위한 프로토콜로서, 네트워크 상황에 따라 동적으로 스트리밍을 지원할 수 있다. 이에 따라 AV 컨텐츠 재생이 끊김없이 제공될 수 있다.
먼저 DASH 클라이언트는 MPD를 획득할 수 있다. MPD는 HTTP 서버 등의 서비스 프로바이더로부터 전달될 수 있다. DASH 클라이언트는 MPD에 기술된 세그먼트에의 접근 정보를 이용하여 서버로 해당 세그먼트들을 요청할 수 있다. 여기서 이 요청은 네트워크 상태를 반영하여 수행될 수 있다.
DASH 클라이언트는 해당 세그먼트를 획득한 후, 이를 미디어 엔진에서 처리하여 화면에 디스플레이할 수 있다. DASH 클라이언트는 재생 시간 및/또는 네트워크 상황 등을 실시간으로 반영하여, 필요한 세그먼트를 요청, 획득할 수 있다(Adaptive Streaming). 이를 통해 컨텐츠가 끊김없이 재생될 수 있다.
MPD (Media Presentation Description)는 DASH 클라이언트로 하여금 세그먼트를 동적으로 획득할 수 있도록 하기 위한 상세 정보를 포함하는 파일로서 XML 형태로 표현될 수 있다.
DASH 클라이언트 컨트롤러(DASH Client Controller)는 네트워크 상황을 반영하여 MPD 및/또는 세그먼트를 요청하는 커맨드를 생성할 수 있다. 또한, 이 컨트롤러는 획득된 정보를 미디어 엔진 등등의 내부 블록에서 사용할 수 있도록 제어할 수 있다.
MPD 파서(Parser)는 획득한 MPD 를 실시간으로 파싱할 수 있다. 이를 통해, DASH 클라이언트 컨트롤러는 필요한 세그먼트를 획득할 수 있는 커맨드를 생성할 수 있게 될 수 있다.
세그먼트 파서(Parser)는 획득한 세그먼트를 실시간으로 파싱할 수 있다. 세그먼트에 포함된 정보들에 따라 미디어 엔진 등의 내부 블록들은 특정 동작을 수행할 수 있다.
HTTP 클라이언트는 필요한 MPD 및/또는 세그먼트 등을 HTTP 서버에 요청할 수 있다. 또한 HTTP 클라이언트는 서버로부터 획득한 MPD 및/또는 세그먼트들을 MPD 파서 또는 세그먼트 파서로 전달할 수 있다.
미디어 엔진(Media Engine)은 세그먼트에 포함된 미디어 데이터를 이용하여 컨텐츠를 화면상에 표시할 수 있다. 이때, MPD의 정보들이 활용될 수 있다.
DASH 데이터 모델은 계층적 구조(710)를 가질 수 있다. 미디어 프리젠테이션은 MPD에 의해 기술될 수 있다. MPD는 미디어 프리젠테이션을 만드는 복수개의 피리오드(period)들의 시간적인 시퀀스를 기술할 수 있다. 피리오드(period)은 미디어 컨텐츠의 한 구간을 나타낼 수 있다.
한 구간에서, 데이터들은 어댑테이션 셋들에 포함될 수 있다. 어댑테이션 셋은 서로 교환될 수 있는 복수개의 미디어 컨텐츠 컴포넌트들의 집합일 수 있다. 어댑테이션은 레프리젠테이션들의 집합을 포함할 수 있다. 레프리젠테이션은 미디어 컨텐츠 컴포넌트에 해당할 수 있다. 한 레프리젠테이션 내에서, 컨텐츠는 복수개의 세그먼트들로 시간적으로 나뉘어질 수 있다. 이는 적절한 접근성과 전달(delivery)를 위함일 수 있다. 각각의 세그먼트에 접근하기 위해서 각 세그먼트의 URL 이 제공될 수 있다.
MPD는 미디어 프리젠테이션에 관련된 정보들을 제공할 수 있고, 피리오드(period) 엘리먼트, 어댑테이션 셋 엘리먼트, 레프리젠테이션 엘리먼트는 각각 해당 피리오드, 어댑테이션 셋, 레프리젠테이션에 대해서 기술할 수 있다. 레프리젠테이션은 서브 레프리젠테이션들로 나뉘어질 수 있는데, 서브 레프리젠테이션 엘리먼트는 해당 서브 레프리젠테이션에 대해서 기술할 수 있다.
여기서 공통(Common) 속성/엘리먼트들이 정의될 수 있는데, 이 들은 어댑테이션 셋, 레프리젠테이션, 서브 레프리젠테이션 등에 적용될 수 (포함될 수) 있다. 공통 속성/엘리먼트 중에는 에센셜 프로퍼티(EssentialProperty) 및/또는 서플멘탈 프로퍼티(SupplementalProperty)가 있을 수 있다.
에센셜 프로퍼티는 해당 미디어 프리젠테이션 관련 데이터를 처리함에 있어서 필수적이라고 여겨지는 엘리먼트들을 포함하는 정보일 수 있다. 서플멘탈 프로퍼티는 해당 미디어 프리젠테이션 관련 데이터를 처리함에 있어서 사용될 수도 있는 엘리먼트들을 포함하는 정보일 수 있다. 실시예에 따라 후술할 디스크립터들은, MPD 를 통해 전달되는 경우, 에센셜 프로퍼티 및/또는 서플멘탈 프로퍼티 내에 정의되어 전달될 수 있다.
한편, 후술하는 '샘플(sample)'은 픽처를 나타내는 3개의 샘플 어레이들(Y, Cb, Cr) 중 하나의 단일 시간(single time) 또는 단일 요소(single element)와 관련된 모든 데이터일 수 있다. 예를 들어, '샘플(sample)'이라는 용어가 (미디어 파일 포멧의) 트랙의 컨텍스트(context)에서 사용되는 경우, 해당 트랙의 단일 시간과 관련된 모든 데이터를 의미할 수 있다. 여기서 시간은 디코딩 시간(decoding time) 또는 컴포지션 시간(composition)일 수 있다. 또한, 예를 들어, '샘플(sample)'이라는 용어가 픽처의 컨텍스트(context)에서 사용되는 경우, 즉, '루마 샘플(luma sample)'과 같이 픽처의 용어로 사용되는 경우에는 픽처를 나타내는 3개의 샘플 어레이들 중 하나에 있는 단일 요소를 나타낼 수 있다.
한편, VVC 콘텐츠(content)를 저장하기 위하여 아래와 같이 세 가지 타입의 기본 스트림들(elementary streams)이 정의될 수 있다.
- VCL NAL 유닛들을 포함하고, 파라미터 세트(parameter set), DCI 또는 OPI NAL 유닛들을 포함하지 않은 비디오 기본 스트림(video elementary stream), 여기서 모든 파라미터 세트들, DCI 및 OPI NAL 유닛들은 샘플 엔트리 또는 샘플 엔트리들에 저장될 수 있다.
- VCL NAL 유닛들을 포함하고, 파라미터 세트, DCI 또는 OPI NAL 유닛들을 포함할 수 있고, 상기 파라미터 세트들, DCI 또는 OPI NAL 유닛들이 저장된 샘플 엔트리 또는 샘플 엔트리들을 가지는 비디오 및 파라미터 세트 기본 스트림(parameter set elementary stream).
- 비디오 트랙에 포함된 기본 스트림과 동기화된 non-VCL NAL 유닛들을 포함하는 non-VCL 기본 스트림(non-VCL elementary stream). 여기서, VVC non-VCL 트랙은 샘플 엔트리들 내 파라미터 세트, DCI 또는 OPI NAL 유닛들을 포함하지 않는다.
한편, VVC 비디오 스트림은 아래와 같이 정의될 수 있다.
예를 들어, VVC 샘플 엔트리는 샘플 엔트리 타입(sample entry type)이 'vvc1'또는'vvi1'인 샘플 엔트리로 정의될 수 있다. VVC 트랙의 각 샘플 엔트리는 VVC 샘플 엔트리일 수 있다. VVC 샘플 엔트리는 아래 정의된 VVC 구성 박스(VVC Configuration Box)를 포함할 수 있다. 상기 VVC 구성 박스는 디코더 구성 정보를 포함하는 VVC 디코더 구성 레코드(VVC decoder configuration record)를 포함할 수 있다.
또한, VVC 비디오 스트림의 비트 전송률 정보(bit rate information)를 시그널링하기 위해 VVC 샘플 엔트리에 선택적(optional) BitRateBox가 존재할 수 있다. 또한, MPEG-4에서 사용되는 경우, 기본 스트림 디스크립터(Elementary Stream Descriptor)에 삽입되어야 하는 확장 디스크립터(Extension descriptor)도 존재할 수 있다.
또한, ISO 기반 미디어 파일 형식 사양(ISO Base Media File Format specification)에서 허용하는 대로, 복수의 샘플 엔트리들을 사용하여 다른 구성 또는 파라미터 세트를 사용하는 비디오 섹션이 표시될 수 있다.
VVC 서브픽처 트랙(VVC subpicture track)이 다른 VVC 서브픽처 트랙없이 소비될 수 있고 일치하는(conforming) VVC 비트스트림을 포함하는 경우, VVC 서브픽처 트랙에 대하여 레귤러(regular) VVC 샘플 엔트리('vvc1' 또는 'vvi1')이 사용될 수 있다. 그렇지 않은 경우, 'vvs1' 샘플 엔트리가 VVC 서브픽처 트랙에 사용되며 다음 제약 조건이 트랙에 적용될 수 있다.
- track_in_movie 플래그는 0과 같음.
- 트랙은 하나의 샘플 엔트리만을 포함함.
- 트랙은 'subp' 트랙 레퍼런스(track reference)를 통하여 하나 이상의 VVC 베이스 트랙에 의해 참조됨.
- DCI, OPI, VPS, SPS, PPS, AUD, PH, EOS, EOB 및 기타 AU 또는 픽처 레벨 non-VCL NAL 유닛들은 샘플 엔트리와 'vvs1' 트랙의 샘플 모두에 없어야 함.
- 달리 명시되지 않는 한, 비디오 샘플 엔트리의 하위 박스(child box) (예: CleanApertureBox 및 PixelAspectRatioBox)는 샘플 엔트리에 없어야 하며 존재하는 경우 무시됨.
- 샘플에 포함된 모든 VCL NAL 유닛이 동기화 샘플 요구 사항(sync sample requirements)을 준수하지 않는 한 샘플은 동기화 샘플(sync sample)로 표시되지(marked) 않음.
- 'vvs1' 트랙의 샘플에 대한 구성 시간 오프셋 정보(composition time offset information)가 존재하지 않음.
- 'vvs1' 트랙의 샘플에 대한 서브샘플 정보(subsample information)가 존재할 수 있음. 서브샘플 정보가 존재하는 경우, 서브샘플 정보는 VVC에 대한 서브샘플의 정의를 따라야 한다.
또한, VVC 트랙은 VVC 서브픽처 트랙(VVC subpicture track)의 track_ID 값 또는 VVC 서브픽처 트랙의 'alte' 트랙 그룹의 track_group_id 값 중 하나를 포함하는 엔트리와 함께 'subp' 트랙 레퍼런스를 포함할 수 있다. 'spor' 타입의 샘플 그룹은 각 VVC 베이스 트랙에 있을 수 있다. VVC 베이스 트랙에 대한 전용 샘플 엔트리 타입(dedicated sample entry type)은 트랙 타입의 코덱 MIME 파라미터(codecs MIME parameter)를 통해 VVC 베이스 트랙을 나타낼 수 있다.
또한, 'vvs1' 타입의 샘플 엔트리에는 VvcNALUConfigBox가 포함될 수 있다. VVC 서브픽처 트랙이 subpic_id_info_flag가 1인 'spor' 샘플 그룹 디스크립션 엔트리(sample group description entry)를 포함하는 VVC 베이스 트랙에 의하여 참조되는 경우, 상기 VVC 서브픽처 트랙은 잠재적으로 기본 샘플 그룹화 메커니즘(default sample grouping mechanism)을 사용하는 서브픽처 ID 샘플 그룹 디스크립션(subpicture ID sample group description)을 포함할 수 있다.
또한, 샘플 엔트리 이름(sample entry name)이 'vvc1' 또는 'vvi1'인 경우, 이 샘플 항목이 적용되는 스트림은 VVCConfigurationBox에 제공된 구성(프로파일(profile), 계층(tier) 및 레벨(level) 포함)에서 작동하는 VVC 디코더가 볼 때 호환되는 VVC 스트림(compliant VVC stream)일 수 있다.
또한, 샘플 엔트리 이름이 'vvc1'인 경우, array_completeness의 값은 DCI, VPS, SPS 및 PPS NAL 유닛의 어레이에 대해서는 1과 같을 수 있고, 다른 모든 어레이에 대해서는 0과 같을 수 있다. 또한, 샘플 엔트리 이름이 'vvi1'인 경우, array_completeness의 값은 모든 어레이에 대해 0과 같을 수 있다.
또한, 트랙이 기본적으로 VVC 비트스트림을 포함하지 않고 'subp' 및 'vvcN' 트랙 레퍼런스를 확인한 후 VVC 비트스트림을 나타내지 않는 경우(존재하는 경우), 상기 트랙은 'vopi' 샘플 그룹을 나르는 트랙 또는 동작 포인트 엔티티 그룹(Operating Points Entity Group)에 대한 'oref' 트랙 레퍼런스를 포함할 수 있다. 예를 들어, 싱글 레이어 VVC 비트스트림(single-layer VVC bitstream)에 서로 다른 트랙에 저장된 두 개의 시간적 서브레이어들(temporal sublayers)이 포함된 경우, TemporalId가 1인 서브레이어가 포함된 트랙에는 TemporalId가 0인 서브레이어가 포함된 트랙에 대한 'oref' 트랙 레퍼런스가 포함될 수 있다.
한편, VVC를 위한 ISO 기반 미디어 파일 형식(ISO based media file format, ISOBMF)의 동작 포인트 정보(operating points information)는 그룹화 타입(grouping type)이 'vopi' 인 그룹 박스(group box) 또는 그룹화 타입이 'opeg'인 엔티티 그룹(entity group)에서 샘플로 시그널링될 수 있다. 상기 동작 포인트 정보는 샘플과 각 동작 포인트에 대한 샘플 엔트리를 식별하는데 필요할 수 있다.
한편, 동작 포인트(operating points)는 OLS(output layer set) 인덱스(index)와 TemporalId의 가장 높은 값(highest value)으로 식별될 수 있는 OSL의 시간적 서브셋(temporal subset)일 수 있다. 각 동작 포인트는 상기 동작 포인트의 적합성 포인트(conformance point)를 정의하는 프로파일(profile), 티어(tier), 레벨(level) (즉, PTL)과 관련될 수 있다.
또한, 예를 들어, 동작 포인트 엔티티 그룹(operating point entity group)은 동작 포인트에 대한 트랙 매핑 및 동작 포인트의 프로파일 레벨 정보(profile level information)를 제공하도록 정의될 수 있다. 'opeg' 엔티티 그룹이 존재하는 경우, 파일에는 ISO/IEC 14496-12에 지정된 'unif' 브랜드를 포함하는 브랜드 조합(brand combination)이 있는 파일-레벨 ExtendedTypeBox(file-level ExtendedTypeBox)가 포함될 수 있다.
상기 동작 포인트 엔티티 그룹에 설명된 동작 포인트에 매핑된 트랙의 샘플을 집계하는(aggregating) 경우에 암시적 복원 프로세스(implicit reconstruction process)는 일치하는(conforming) VVC 비트스트림을 얻기 위해 더 이상의 VCL NAL 유닛을 제거할 필요가 없다. 상기 동작 포인트 엔티티 그룹에 속하는 트랙은 상기 동작 포인트 엔티티 그룹에 표시된 group_id에 대한 타입 'oref'의 트랙 레퍼런스를 가지고, 'vopi' 샘플 그룹을 포함하지 않을 수 있다.
또한, 상기 동작 포인트 엔티티 그룹에 포함된 모든 entity_id 값들은 동일한 VVC 비트스트림에 속하는 트랙의 트랙 ID를 나타내야 한다. 존재하는 경우, OperatingPointGroupBox는 파일-레벨(file-level) MetaBox의 GroupsListBox에 포함되며 파일-레벨(file-level) 다른 레벨의 MetaBox에는 포함되지 않을 수 있다. 여기서, OperatingPointGroupBox는 상기 동작 포인트 엔티티 그룹을 나타낼 수 있다.
상술한 상기 동작 포인트 엔티티 그룹의 신택스는 아래의 표와 같을 수 있다.
Figure pct00001
Figure pct00002
또한, 상기 동작 포인트 엔티티 그룹의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00003
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
또한, 예를 들어, 미디어 파일은 VVC 비트스트림 엔티티 그룹(VVC bitstream entity group)을 포함할 수 있다. VVC 비트스트림 엔티티 그룹은 싱글 VVC 기본 스트림(single VVC elementary stream)의 VVC 트랙을 제공하도록 정의될 수 있다.
예를 들어, grouping_type이 'vvcb'인 EntityToGroupBox가 존재하는 경우, 다음의 제약 조건이 적용될 수 있다.
1) EntityToGroupBox는 파일-레벨 MetaBox의 GroupsListBox에 포함되어야 하며 다른 수준의 MetaBox에는 포함되지 않음.
2) EntityToGroupBox에 포함된 entity_id 값은 하나의 VVC 기본 스트림을 나르는 모든 VVC 트랙의 트랙 ID를 나타냄.
3) EntityToGroupBox에 포함된 첫 번째 entity_id 값은 'vopi' 샘플 그룹을 나르는 VVC 트랙의 트랙 ID를 나타냄.
4) EntityToGroupBox에 포함된 두 번째 이후의 entity_id 값으로 표시되는 트랙 ID 값을 가진 VVC 트랙은 'vopi' 샘플 그룹을 전달하지 않음.
또한, 예를 들어, 미디어 파일은 영상/비디오 컨텐츠에 대한 디코더 구성 정보(decoder configuration information)를 포함할 수 있다. 즉, 미디어 파일은 디코더 구성 정보를 포함하는 VVC 디코더 구성 레코드(VVC decoder configuration record)를 포함할 수 있다.
상기 VVC 디코더 구성 레코드가 샘플 엔트리에 저장된 경우, 상기 VVC 디코더 구성 레코드는 파라미터 세트, DCI, OPI 및 SEI NAL 유닛들뿐만 아니라 상기 VVC 디코더 구성 레코드에 포함된 NAL 유닛의 길이(length)를 나타내기 위해 각 샘플에 사용된 길이 필드(length field)의 사이즈를 포함할 수 있다. 상기 VVC 디코더 구성 레코드는 외부에서 구성(frame)될 수 있다(상기 VVC 디코더 구성 레코드의 사이즈는 상기 VVC 디코더 구성 레코드를 포함하는 구조에서 제공된다).
또한, 상기 VVC 디코더 구성 레코드는 버전 필드(version field)를 포함할 수 있다. 본 문서에서의 버전은 상기 VVC 디코더 구성 레코드의 버전 1을 정의할 수 있다. 상기 VVC 디코더 구성 레코드에 대한 호환되지 않는 변경 사항(incompatible changes)은 버전 번호 변경으로 표시될 수 있다. 버전 번호가 인식되지 않는 경우, 리더(readers)는 상기 VVC 디코더 구성 레코드 또는 해당 레코드가 적용되는 스트림을 디코딩하지 않아야 한다.
상기 VVC 디코더 구성 레코드에 대한 호환 가능한 확장(Compatible extensions)은 구성 버전 코드를 변경하지 않을 수 있다. 리더는 상기 리더가 이해하는 데이터의 정의를 넘어서는 인식되지 않는 데이터를 무시할 준비가 되어 있어야 한다.
트랙이 기본적으로 VVC 비트스트림을 포함하는 경우 또는 'subp' 트랙 레퍼런스들을 통하여 해결하는(resolving) 경우, VvcPtlRecord는 상기 디코더 구성 레코드에 존재해야 하고, 이 경우, VVC 비트스트림에 대해 설정된 특정 출력 레이어(output layer)는 output_layer_set_idx 필드로 표시될 수 있다. 또한, 트랙의 디코더 구성 레코드 내 ptl_present_flag가 0인 경우, 상기 트랙은 VVC 트랙 또는 'opeg' 엔티티 그룹을 참조할 수 있는 ID에 대한 'oref' 트랙 레퍼런스를 가져야 한다.
상기 VVC 디코더 구성 레코드에서 설명하는 스트림이 디코딩되는 경우, VvcPTLRecord, chroma_format_idc 및 bit_depth_minus8의 신택스 엘리먼트들의 값들은 참조되는(referenced) 모든 파라미터 세트들에 대하여 유효(valid)할 수 있다. 특히 다음과 같은 제한이 적용될 수 있다.
- 프로파일 표시(profile indication) general_profile_idc는 구성 레코드에서 output_layer_set_idx에 의해 식별된(identified) OLS가 준수하는 프로파일을 나타낸다.
- 티어 표시(tier indication) general_tier_flag는 구성 레코드에서 output_layer_set_idx에 의해 식별된(identified) OLS가 준수하는 profile_tier_level() 신텍스 구조(모든 파라미터 세트들)에 표시된 가장 높은 티어보다 크거나 같은 티어를 나타낼 수 있다.
- general_constraint_info의 각 비트는 구성 레코드에서 output_layer_set_idx에 의해 식별된(identified) OLS가 준수하는 profile_tier_level() 신텍스 구조(모든 파라미터 세트들)의 모든 general_constraints_info() 신텍스 구조에서 상기 비트가 설정된 경우에만 설정될 수 있다.
- 레벨 표시(level indication) general_level_idc는 구성 레코드에서 output_layer_set_idx에 의해 식별된(identified) OLS가 준수하는 profile_tier_level() 신텍스 구조(모든 파라미터 세트들)의 가장 높은 레벨과 같거나 더 큰 능력의 레벨(a level of capability)을 나타낼 수 있다.
또한, chroma_format_idc에는 다음 제약 조건이 적용될 수 있다.
- 구성 레코드가 적용되는 VVC 스트림이 싱글 레이어 비트스트림인 경우, ISO/IEC 23090-3에 정의된 sps_chroma_format_idc의 값은 현재 샘플 엔트리 디스크립션(current sample entry description)이 적용되는 샘플의 VCL NAL 유닛에 의해 참조되는 모든 SPS에서 동일해야 하고, chroma_format_idc는 sps_chroma_format_idc와 동일해야 한다.
- 그렇지 않은 경우(구성 레코드가 적용되는 VVC 스트림이 멀티 레이어 비트스트림(multi-layer bitstream)인 경우), ISO/IEC 23090-3에 정의된 vps_ols_dpb_chroma_format[MultiLayerOlsIdx[output_layer_set_idx]]의 값은 현재 샘플 엔트리 디스크립션이 적용되는 모든 CVS에 대해 동일해야 하고, chroma_format_idc는 vps_ols_dpb_chroma_format[MultiLayerOlsIdx[output_layer_set_idx]]의 값과 동일해야 한다.
또한, bit_depth_minus8에는 다음 제약 조건이 적용될 수 있다.
- 구성 레코드가 적용되는 VVC 스트림이 싱글 레이어 비트스트림인 경우, ISO/IEC 23090-3에 정의된 sps_bitdepth_minus8의 값은 현재 샘플 엔트리 디스크립션이 적용되는 샘플의 VCL NAL 유닛에 의해 참조되는 모든 SPS에서 동일해야 하고, bit_depth_minus8 의 값은 sps_bitdepth_minus8 의 값과 동일해야 한다.
- 그렇지 않은 경우(구성 레코드가 적용되는 VVC 스트림이 멀티 레이어 비트스트림인 경우), ISO/IEC 23090-3에 정의된 vps_ols_dpb_bitdepth_minus8[MultiLayerOlsIdx[output_layer_set_idx]]의 값은 현재 샘플 엔트리 디스크립션이 적용되는 모든 CVS에 대해 동일해야 하고, bit_depth_minus8의 값은 vps_ols_dpb_bitdepth_minus8[MultiLayerOlsIdx[output_layer_set_idx]]의 값과 동일해야 한다.
또한, picture_width에는 다음 제약 조건이 적용될 수 있다.
- 구성 레코드가 적용되는 VVC 스트림이 싱글 레이어 비트스트림인 경우, ISO/IEC 23090-3에 정의된 sps_pic_width_max_in_luma_samples의 값은 현재 샘플 엔트리 디스크립션이 적용되는 샘플의 VCL NAL 유닛에 의해 참조되는 모든 SPS에서 동일해야 하고, picture_width의 값은 sps_pic_width_max_in_luma_samples의 값과 동일해야 한다.
- 그렇지 않은 경우(구성 레코드가 적용되는 VVC 스트림이 멀티 레이어 비트스트림인 경우), ISO/IEC 23090-3에 정의된 vps_ols_dpb_pic_width[MultiLayerOlsIdx[output_layer_set_idx]]의 값은 현재 샘플 엔트리 디스크립션이 적용되는 모든 CVS에 대해 동일해야 하고, picture_width의 값은 vps_ols_dpb_pic_width[MultiLayerOlsIdx[output_layer_set_idx]]의 값과 동일해야 한다.
또한, picture_height에는 다음 제약 조건이 적용될 수 있다.
- 구성 레코드가 적용되는 VVC 스트림이 싱글 레이어 비트스트림인 경우, ISO/IEC 23090-3에 정의된 sps_pic_height_max_in_luma_samples의 값은 현재 샘플 엔트리 디스크립션이 적용되는 샘플의 VCL NAL 유닛에 의해 참조되는 모든 SPS에서 동일해야 하고, picture_height의 값은 sps_pic_height_max_in_luma_samples의 값과 동일해야 한다.
- 그렇지 않은 경우(구성 레코드가 적용되는 VVC 스트림이 멀티 레이어 비트스트림인 경우), ISO/IEC 23090-3에 정의된 vps_ols_dpb_pic_height[MultiLayerOlsIdx[output_layer_set_idx]]의 값은 현재 샘플 엔트리 디스크립션이 적용되는 모든 CVS에 대해 동일해야 하고, picture_height의 값은 vps_ols_dpb_pic_height[MultiLayerOlsIdx[output_layer_set_idx]]의 값과 동일해야 한다.
VVC 비디오 기본 스트림에서 사용되는 다른 중요한 포멧 정보뿐만 아니라 크로마 포멧(chroma format) 및 비트 뎁스(bit depth)에 대한 명시적 표시(explicit indication)가 VVC 디코더 구성 레코드에서 제공될 수 있다. 두 시퀀스들의 VUI 정보에서 색상 스페이스 또는 비트 뎁스 표시(color space or bit depth indications)가 다른 경우, 두 개의 다른 VVC 샘플 엔트리들이 필요할 수 있다.
또한, 상기 VVC 디코더 구성 레코드에는 초기화 NAL 유닛(initialization NAL units)을 전달하는 어레이들(arrays)의 세트가 있을 수 있다. 상기 NAL 유닛 타입들은 DCI, OPI, VPS, SPS, PPS, 프리픽스(prefix) APS 및 프리픽스 SEI NAL 유닛만을 나타내도록 제한될 수 있다. ISO/IEC 23090-3 및 본 문서에서 예약된(reserved) NAL 유닛 타입은 미래에 정의될 수 있으며, 리더(reader)는 NAL 유닛 타입의 예약 또는 허용되지 않은(unpermitted) 값이 있는 어레이들은 무시해야 할 수 있다.
한편, 어레이들은 DCI, OPI, VPS, SPS, PPS, 프리픽스(prefix) APS, 프리픽스 SEI의 순서로 있을 수 있다.
상술한 상기 VVC 디코더 구성 레코드의 신택스는 아래의 표와 같을 수 있다.
Figure pct00008
Figure pct00009
또한, 상기 VVC 디코더 구성 레코드의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00010
Figure pct00011
Figure pct00012
한편, 본 문서에 따른 VVC 파일 포멧(VVC file format)은 다음과 같은 타입의 트랙을 정의한다.
a) VVC 트랙: VVC 트랙(VVC track)은 샘플 및 샘플 엔트리에 NAL 유닛을 포함하고, 가능하면 VVC 비트스트림의 다른 서브레이어를 포함하는 다른 VVC 트랙을 참조하고, 가능하면 VVC 서브픽처 트랙들(subpicture tracks)을 참조하여 VVC 비트스트림을 나타낸다. VVC 트랙이 VVC 서브픽처 트랙들을 참조하는 경우, VVC 트랙은 VVC 베이스 트랙(base track)으로 불릴 수 있다.
b) VVC non-VCL 트랙: ALF, LMCS 또는 스케일링 리스트 파라미터들(scaling list parameters), 및 다른 non-VCL NAL 유닛을 운반하는 APS들(APSs)은 VVC non-VCL 트랙에 저장될 수 있고, VCL NAL 유닛을 포함하는 트랙과 별도로 상기 트랙을 통해 전송될 수 있다.
c) VVC 서브픽처 트랙(VVC subpicture track): VVC 서브픽처 트랙은 다음 중 하나를 포함할 수 있다.
예를 들어, VVC 서브픽처 트랙은 하나 이상의 VVC 서브픽처들의 시퀀스(sequence)를 포함할 수 있다.
또한, 예를 들어, VVC 서브픽처 트랙은 직사각형 영역(rectangular area)을 형성하는(forming) 하나 이상의 완전한 슬라이스들(complete slices)을 포함할 수 있다.
한편, VVC 서브픽처 트랙의 샘플은 다음 중 하나를 포함할 수 있다.
예를 들어 VVC 서브픽처 트랙의 샘플은 디코딩 순서(decoding order)에서 연속적인(contiguous) ISO/IEC 23090-3에 지정된 하나 이상의 완전한 서브픽처들(complete subpictures)을 포함할 수 있다.
또한, 예를 들어, VVC 서브픽처 트랙의 샘플은 직사각형 영역을 형성하고 디코딩 순서에서 연속적인 ISO/IEC 23090-3에서 지정된 하나 이상의 완전한 슬라이스들(complete slices)을 포함할 수 있다.
한편, VVC 서브픽처 트랙의 임의의 샘플에 포함되는 VVC 서브픽처들 또는 슬라이스들은 디코딩 순서에서 연속적일 수 있다.
VVC non-VCL 트랙 및 VVC 서브픽처 트랙은 다음과 같이 스트리밍 어플리케이션(streaming application)에서 VVC 비디오의 최적의 전달(optimal delivery)을 가능하게 한다.
예를 들어, 상기 트랙들은 각각 그 자체의 DASH 표현들(representations)로 운반될 수 있고, 트랙들의 서브세트(subset)의 디코딩 및 렌더링(rendering)을 위하여, VVC 서브픽처 트랙들의 서브세트를 포함하는 DASH 표현과 non-VCL 트랙들을 포함하는 DASH 표현이 요구될 수 있다. 이러한 방법은, APSs 및 다른 non-VCL NAL 유닛의 중복 전송(redundant transmission)을 제거할 수 있다.
한편, 데이터 공유(Data sharing) 및 VVC 비트스트림 복원(reconstruction VVC bitstream) 프로세스는 다음과 같이 수행될 수 있다. 여기서, 상기 프로세스의 출력은 출력 비트스트림이라고 불릴 수 있는 VVC 비트스트림일 수 있다.
예를 들어, 파일 리더(file reader)는 다음 조건 중 하나 이상이 참(true)인 경우, 상기 프로세스를 호출해야 할 수 있다.
i) VVC 비트스트림('vvcb') 엔티티 그룹이 파일에 존재하고, 파일 리더가 상기 엔티티 그룹이 나타내는 VVC 비트스트림을 처리하여 출력 비트스트림을 생성함.
ii) 동작 포인트('opeg') 엔티티 그룹이 파일에 존재하고, 파일 리더가 상기 엔티티 그룹에 의해 설명된(described) 임의의 동작 포인트를 사용하여 출력 비트스트림을 생성함.
iii) 파일 리더가 출력 비트스트림을 생성하기 위해 ptl_present_flag가 1인 VVC 트랙의 레이어 또는 서브레이어의 서브셋(subset)을 추출함.
iv) 파일 리더가 VVC 기본 트랙을 처리함.
v) 파일 리더가 연관된 VVC non-VCL 트랙이 있는 VVC 트랙을 처리함.
예를 들어, 상기 프로세스는 아래와 같은 순서의 단계들로 구성될 수 있다.
1) 상술한 i, ii 또는 iii 조건이 참인 경우, VVC 비트스트림의 시작 부분에서 동작 포인트가 결정되고 임의의 IRAP 또는 GDR 액세스 유닛(access unit)에 대해 다시 결정될 수 있다.
파일 리더가 처음으로 작동 포인트를 선택하거나 이전에 선택한 것과 다른 작동 포인트를 선택하는 경우, 파일 리더는 출력 비트스트림에 삽입된 OPI NAL 유닛(있는 경우 동작 포인트가 사용되는 첫번째 액세스 유닛에서 AU 딜리미터 NAL 유닛(AU delimiter NAL unit) 다음에 오는 첫번째 NAL 유닛으로)에 포함시키거나 다른 수단을 통해 VVC 디코더에 출력 레이어 세트 인덱스(output layer set index)와 선택된 동작 포인트의 가장 높은 TemporalId 값을 표시해야 할 수 있다.
다음 순서 단계는 동작 포인트가 결정되는 액세스 유닛에서 시작하여 비트스트림 또는 액세스 유닛의 끝까지 디코딩 순서로 액세스 유닛의 시퀀스에 적용될 수 있다. 여기서, 동작 포인트는 다음번 배타적으로 결정될 수 있으며, 디코딩 순서에서 더 빠를 수 있다.
2) VVC 비트스트림이 여러 VVC 트랙으로 표시되는 경우, 파일 파서는 다음과 같이 선택된 동작 포인트에 필요한 트랙을 식별할 수 있다.
i) 'opeg' 엔티티 그룹의 동작 포인트가 선택된 동작 포인트를 포함하는 경우, 상기 파일 파서는 'opeg' 엔티티 그룹에 표시된 대로 동작 포인트에 속하는 트랙을 선택할 수 있다.
ii) 'opeg' 엔티티 그룹이 존재하지 않는 경우(즉, 'vopi' 샘플 그룹이 존재하는 경우), 상기 파일 파서는 'vvcb' 엔티티 그룹에서 VVC 트랙이 VVC 비트스트림을 나타내는지 결정할 수 있다. 'vvcb' 엔티티 그룹의 첫번째 entity_id는 'vopi' 샘플 그룹을 포함하는 트랙을 식별할 수 있다. 레이어 및 서브레이어에 대한 동작 포인트 매핑은 'vopi' 샘플 그룹으로부터 결론지어질 수 있다. 선택된 동작 포인트의 레이어 및 서브레이어를 포함하고, 따라서 선택된 동작 포인트를 디코딩하는데 필요한 트랙 세트는 VVC 비트스트림의 VVC 트랙에 존재하는 'linf' 샘플 그룹으로부터 결론지어질 수 있다. 특정 레이어 또는 서브레이어가 하나 이상의 트랙으로 표현될 수 있기 때문에, 동작 포인트에 필요한 트랙을 파악하는 경우, 특정 레이어 또는 서브레이어를 모두 포함하는 트랙 세트 중에서 선택될 수도 있다.
3) 출력 비트스트림에 대한 액세스 유닛은 선택된 동작 포인트(상술한 i, ii 또는 iii 조건이 참인 경우) 또는 VVC 기본 트랙 (상술한 iv 조건이 참인 경우) 또는 VVC 트랙(상술한 v 조건이 참인 경우)에 필요한 VVC 트랙 중 샘플의 디코딩 시간 순서로 복원될 수 있다.
여러 트랙이 액세스 유닛에 대한 데이터를 포함하는 경우, 트랙의 각 샘플의 정렬(alignment)은 샘플 디코딩 시간(sample decoding times)을 기반으로 수행될 수 있다.
액세스 유닛의 시퀀스는 후술하는 암시적 복원 프로세스(implicit reconstruction process)를 반복적으로 호출하여 필요한 트랙의 각 샘플에서 복원될 수 있다.
복원된 액세스 유닛은 디코딩 시간이 증가하는 순서로 출력 비트스트림에 배치될 수 있다.
4) 또한, 다음 두 조건들이 모두 참인 경우, 파일 리더는 출력 비트스트림에 적용된 동작 포인트의 각 레이어에 EOS NAL 유닛을 포함해야 할 수 있다.
- 액세스 유닛의 시퀀스가 이전에 선택된 것과 다른 작동 포인트를 선택함.
- 액세스 유닛의 시퀀스가 적용된 동작 포인트의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않음.
VVC 비트스트림이 복수의 VVC 트랙으로 표시되는 경우, 샘플의 디코딩 시간은 트랙이 디코딩 시간을 증가시켜 정렬된 싱글 비트스트림으로 결합되면 액세스 유닛 순서가 ISO/IEC 23090-3에 지정된 대로 수정되도록 해야 할 수 있다.
또한, VVC 비트스트림의 암시적 복원(Implicit reconstruction of a VVC bitstream) 프로세스는 다음과 같이 수행될 수 있다. 상기 프로세스는 다음 중에서 현재 디코딩 시간을 갖는 시간 정렬 샘플(time-aligned samples)로부터 액세스 유닛의 복원을 나타낼 수 있다.
- 필요한 VVC 트랙(들),
- 관련 VVC non-VCL 트랙(있는 경우) 및
- 참조된(referenced) VVC 서브픽처 트랙(있는 경우).
VCL NAL 유닛이 0보다 큰 TemporalId를 갖는 서브레이어를 포함하는 비트스트림을 재구성하는 경우, 동일한 레이어 내의 모든 하위 서브레이어(즉, VCL NAL 유닛이 더 작은 TemporalId를 갖는 서브레이어)도 결과 비트스트림(resulting bitstream)에 포함될 수 있다.
또한, 현재 디코딩 시간(current decoding time)을 갖는 샘플(들)이 선택된 동작 포인트에 포함된 가장 큰 TemporalId보다 큰 TemporalId를 갖는 VCL NAL 유닛을 포함하는 경우, 액세스 유닛은 현재 디코딩 시간으로부터 복원되지 않을 수 있다.
또한, 액세스 유닛을 복원하는 경우, 동일한 디코딩 시간을 갖는 샘플의 픽처 유닛(ISO/IEC 23090-3에 지정됨)은 nuh_layer_id 값의 오름차순으로 액세스 유닛에 배치될 수 있다. 예를 들어, 조건이 적용되면 다음의 단계들이 수행될 수 있다.
- 샘플의 첫 번째 픽처 유닛을 포함하는 트랙의 샘플이 AUD NAL 유닛 내의 대상 동작 포인트에 해당하는 ols_idx 및 lower_ols_idx 를 포함하는 샘플 그룹 'aud'에 속하는 것으로 표시된 경우. 여기서, 'aud' 샘플 그룹 내의 상기 AUD NAL 유닛은 첫 번째 NAL 유닛으로 AU에 배치될 수 있다.
- 트랙의 샘플이 ols_idx, max_tid 및 lower_ols_idx 를 포함하는 샘플 그룹 'eos'에 속하는 것으로 표시되는 경우, 대상 동작 포인트에 해당하는 'eos' 샘플 그룹 내 EOS NAL 유닛은 표시된 위치의 AU 에 배치될 수 있다. 즉, 샘플 그룹 'aud'에 의해 삽입된 경우, AUD NAL 유닛을 제외한 재구성된 AU의 eos_position-번째 NAL 유닛 뒤에 배치될 수 있다.
- 트랙의 샘플이 ols_idx, max_tid 및 lower_ols_idx 를 포함하는 샘플 그룹 'eos'에 속하는 것으로 표시되는 경우, 대상 동작 포인트에 해당하는 'eob' 샘플 그룹 내 EOB NAL 유닛은 AU의 모든 NAL 유닛(EOS NAL 유닛 포함) 다음에 AU에 배치될 수 있다.
대상 동작 포인트에 있는 레이어와 서브레이어의 픽처 유닛만 출력 비트스트림에 포함될 수 있다.
또한, ('vopi' 샘플 그룹의 num_olss에 대한 for 루프에서) 출력 레이어 세트 인덱스(output layer set index) i와 관련된 동작 포인트를 기반으로 액세스 유닛을 복원하는 경우, 다음이 적용될 수 있다.
- 액세스 유닛을 복원하는 경우, 0에서 layer_count[i]-1까지의 범위에 있는 인덱스 j로 설정된 출력 레이어의 각 레이어에 대해, num_ref_sublayers_in_layer_in_ols[i][j]가 0보다 크면, VCL NAL 유닛은 VCL NAL 유닛이 Min(num_ref_sublayers_in_layer_in_ols[i][j]-1, max_temporal_id) 보다 작거나 같은 TemporalId를 갖는 레이어의 서브레이어에 속할 수 있다. 여기서 max_temporal_id는 동작 포인트에 대한 대응하는 신택스 엘리먼트의 값이며, 결과 비트스트림에 포함되고 이에 따라 필요한 트랙이 선택될 수 있다.
- 액세스 유닛을 복원하는 경우, 0에서 layer_count[i]-1까지의 범위에 있는 인덱스 j로 설정된 출력 레이어의 각 레이어에 대해, num_ref_sublayers_in_layer_in_ols[i][j]가 0과 같으면, 참조 레이어의 모든 픽처 유닛으로부터 0과 동일한 ph_recovery_poc_cnt를 갖는 IRAP 픽처 유닛 및 GDR 픽처 유닛만이 결과 비트스트림에 포함되고 필요한 트랙이 그에 따라 선택될 수 있다.
또한, VVC 트랙의 액세스 유닛이 지정되지 않은 NAL 유닛 타입을 포함하는 경우(UNSPEC_28..UNSPEC_31(포함) 범위의 nal_unit_type을 갖는 NAL 유닛, 즉 ISO/IEC 23090-3에 정의된 28~31 범위의 nal_unit_type 값을 갖는 유닛), 지정되지 않은 NAL 유닛 타입은 최종 복원된 비트스트림에서 삭제될(discarded) 수 있다.
또한, VVC 트랙이 'subp' 트랙 레퍼런스를 포함하는 경우, 각 픽처 유닛은 ISO/IEC 23090-3의 11.6.3절에 지정된 대로 복원될 수 있다. 또한, VVC 트랙이 'recr' 트랙 참조를 포함하는 경우, 각 픽처 유닛은 ISO/IEC 23090-3의 11.6.6절에 지정된 대로 복원될 수 있다. ISO/IEC 23090-3의 11.6.3절 또는 11.6.6절의 프로세스는 nuh_layer_id 순서의 오름차순으로 대상 동작 포인트의 각 레이어에 대해 반복될 수 있다.
복원된 액세스 유닛은 디코딩 시간이 증가하는 순서로 VVC 비트스트림에 배치될 수 있다.
특정 레이어 또는 서브레이어가 하나 이상의 트랙으로 표현될 수 있기 때문에, 동작 포인트에 필요한 트랙을 파악하는 경우, 특정 레이어 또는 서브레이어를 모두 포함하는 트랙 세트 중에서 선택될 수도 있다.
또한, VVC 서브픽처 트랙을 참조하는 VVC 트랙의 샘플에서 픽처 유닛 복원 프로세스는 다음과 같이 수행될 수 있다. VVC 트랙의 샘플은 다음과 같은 순서로 픽처 유닛으로 해결될(resolved) 수 있다.
- 샘플 또는 연관된 VVC non-VCL 트랙의 시간 정렬 샘플에 있는 경우, AUD NAL 유닛은 픽처 유닛에 포함될 수 있다. 예를 들어, AUD NAL 유닛이 샘플에 존재하는 경우, 샘플의 첫 번째 NAL 유닛일 수 있다.
- 샘플이 동일한 샘플 엔트리와 관련된 샘플 시퀀스의 첫 번째 샘플인 경우, 샘플 엔트리에 포함된 DCI, OPI, 파라미터 세트 및 SEI NAL 유닛(있는 경우)는 픽처 유닛에 포함될 수 있다.
- 연관된 VVC non-VCL 트랙이 있고 픽처 유닛이 샘플로부터 복원된 액세스 유닛의 첫번째 픽처 유닛인 경우, 다음의 NAL 유닛이 픽처 유닛에 포함됩니다. EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT 또는 RSV_NVCL_27과 동일한 nal_unit_type을 갖는 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플에 적어도 하나의 NAL 유닛이 있는 경우(상술한 NAL 유닛 타입을 갖는 NAL 유닛은 픽처 유닛에서 첫 번째 VCL NAL 유닛보다 선행할 수 없음), 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플에서 첫 번째 유닛을 제외한 상술한 NAL 유닛(AUD NAL 유닛 제외)이 포함될 수 있다. 이외의 경우에는 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플의 모든 NAL 유닛이 포함될 수 있다.
- 샘플에 nal_unit_type 이 EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT 또는 RSV_NVCL_27과 동일한 NAL 유닛이 하나 이상 있는 경우(상술한 NAL 유닛 타입을 갖는 NAL 유닛은 픽처 유닛에서 첫번째 VCL NAL 유닛보다 선행할 수 없음), 샘플의 상기 NAL 유닛 중 첫번째 유닛을 제외한 NAL 유닛은 픽처 유닛에 포함될 수 있고, 그렇지 않은 경우, 샘플의 모든 NAL 유닛은 픽처 유닛에 포함될 수 있다.
- 리더(reader)가 동작 포인트를 선택한 경우, 리더는 위의 모든 단계에서 복원된 액세스 유닛에서 샘플 엔트리 및 샘플에 저장된 모든 OPI NAL 유닛를 제외해야 할 수 있다.
- VVC 트랙이 VVC 서브픽처 트랙을 참조하지 않는 경우, VVC 트랙에서 샘플의 NAL 유닛은 픽처 유닛에 포함될 수 있다.
또한, 그렇지 않은 경우, 아래와 같이 적용될 수 있다.
- 트랙 레퍼런스는 ISO/IEC 23090-3의 11.6.4절에 명시된 대로 해결될(resolved) 수 있다.
- 파라미터 세트는 ISO/IEC 23090-3의 11.6.5절에 명시된 대로 필요한 경우에 업데이트될 수 있다.
- 픽처 유닛은 'subp' 트랙 레퍼런스에서 참조되는 VVC 서브픽처 트랙의 순서로 (샘플에 매핑된 'spor' 샘플 그룹 엔트리의 동일한 그룹 엔트리의 num_subpic_ref_idx가 0인 경우) 또는 샘플에 매핑된 'spor' 샘플 그룹 엔트리에 지정된 순서로 (샘플에 매핑된 'spor' 샘플 그룹 엔트리의 동일한 그룹 엔트리의 num_subpic_ref_idx가 0보다 큰 경우) 모든 DCI, OPI, VPS, SPS, PPS, AUD, PH, EOS, EOB NAL 유닛 뿐만 아니라 sn_subpic_flag가 1인 확장 가능한(scalable) 중첩(nesting) SEI NAL 메시지를 제외한 참조된 각 VVC 서브픽처 트랙에서 시간 정렬된(디코딩 시간에) 해결된(resolved) 샘플의 콘텐츠에 의해 추가될 수 있다.
또한, 참조된 VVC 서브픽처 트랙이 VVC non-VCL 트랙과 연관되는 경우, VVC 서브픽처 트랙의 해결된(resolved) 샘플은 다음 NAL 유닛을 포함할 수 있다.
- EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT 또는 RSV_NVCL_27과 동일한 nal_unit_type을 갖는 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플에 적어도 하나의 NAL 유닛이 있는 경우(상술한 NAL 유닛 타입을 갖는 NAL 유닛은 픽처 유닛에서 첫 번째 VCL NAL 유닛보다 선행할 수 없음), 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플에서 첫 번째 유닛을 제외한 상술한 NAL 유닛(AUD NAL 유닛 제외).
- 이외의 경우에는 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플의 모든 NAL 유닛.
- 참조된 VVC 서브픽처 트랙의 샘플로부터의 NAL 유닛.
- 관련 VVC non-VCL 트랙의 시간 정렬 샘플에서 나머지(remaining) NAL 유닛(있는 경우).
- nal_unit_type이 EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT 또는 RSV_NVCL_27인 샘플의 모든 NAL 유닛.
- 연관된 VVC non-VCL 트랙이 있고 픽처 유닛이 샘플로부터 복원된 액세스 유닛의 마지막 픽처 유닛인 경우, nal_unit_type이 EOS_NUT, EOB_NUT, SUFFIX_APS_NUT, SUFFIX_SEI_NUT, FD_NUT, or RSV_NVCL_27인 연관된 VVC non-VCL 트랙의 시간 정렬된 샘플의 모든 NAL 유닛.
- nal_unit_type이 UNSPEC_28..UNSPEC_31(포함) 범위에 있는 샘플의 모든 NAL 유닛 또는 NAL 유닛 유사 구조는 삭제될 수 있다.
한편, 본 문서에 개시된 샘플 그룹(sample group) 은 다음과 같은 샘플 그룹을 포함할 수 있다.
예를 들어, 스트림 액세스 포인트 샘플 그룹(Stream access point sample group)이 정의될 수 있다. ISO/IEC 14496-12에 명시된 스트림 액세스 포인트(Stream Access Point, SAP) 샘플 그룹 'sap'은 모든 SAP에 대한 정보를 제공하는데 사용될 수 있다.
예를 들어, layer_id_method_idc가 0이면 SAP는 다음과 같이 해석될 수 있다.
- 샘플 엔트리 타입이 'vvc1' 또는 'vvi1'이고 트랙에 TemporalId가 0인 서브레이어가 포함되어 있지 않은 경우, SAP는 트랙에 있는 모든 서브레이어에 대한 액세스(access)를 지정할 수 있다.
- 그렇지 않은 경우, SAP는 트랙에 있는 모든 레이어에 대한 액세스를 지정할 수 있다.
또한, 예를 들어, VVC 비트스트림의 GDR 픽처(GDR picture)는 일반적으로 'sap' 샘플 그룹에서 SAP 타입 4로 표시될 수 있다.
또한, 예를 들어, VVC 트랙의 샘플이 pps_mixed_nalu_types_in_pic_flag가 1인 PPS를 참조하고, 0에서 sps_num_subpics_minus1 범위의 각 서브픽처 인덱스 i에 대해, sps_subpic_treated_as_pic_flag[i]는 1이고, 동일한 CLVS에서 또는 현재 샘플에 후행하는 동일한 서브픽처 인덱스 i를 갖는 적어도 하나의 IRAP 서브픽처가 있으면, 다음이 적용될 수 있다.
- 샘플은 타입 4의 SAP 샘플로 표시될 수 있다.
- 샘플은 IRAP 서브픽처가 존재하기 전에 특정 서브픽처 인덱스를 갖는 서브픽처의 디코딩을 생략하는 디코딩 프로세스에 대해 수정한 roll_distance 값을 갖는 'roll' 샘플 그룹 디스크립션 엔트리에 매핑될 수 있다.
SAP 샘플 그룹이 사용되는 경우, 동일한 VVC 비트스트림을 전달하는 모든 트랙에서 사용되어야 할 수 있다.
또한, 예를 들어, 랜덤 액세스 복구 포인트 샘플 그룹(Random access recovery point sample group)이 정의될 수 있다. ISO/IEC 14496-12에 명시된 랜덤 액세스 복구 포인트 샘플 그룹 'roll'은 점진적 디코딩 리프레쉬(gradual decoding refresh)를 위한 복구 포인트에 대한 정보를 제공하는데 사용될 수 있다. 'roll' 샘플 그룹이 VVC 트랙과 함께 사용되는 경우, grouping_type_parameter의 신텍스 및 시멘틱(semantics)는 ISO/IEC 14496-12의 'sap' 샘플 그룹에 대한 것과 동일하게 지정될 수 있다. 또한, 0 및 1과 동일한 layer_id_method_idc는 'roll' 샘플 그룹에 매핑되는 샘플의 대상 레이어의 픽처가 GDR 픽처인 경우에 사용될 수 있다. 예를 들어, layer_id_method_idc가 0과 같은 경우, 'roll' 샘플 그룹은 트랙에 있는 모든 레이어에 대한 동작(behaviour)을 지정할 수 있다. 또한, 예를 들어, 1과 동일한 layer_id_method_idc의 시멘틱(semantics)는 ISO/IEC 14496-12의 9.5.7절에 개시되어 있을 수 있다. 예를 들어, 2 및 3과 동일한 layer_id_method_idc는 'roll' 샘플 그룹에 매핑되는 샘플의 대상 레이어의 모든 픽처가 GDR 픽처가 아닌 경우에 사용될 수 있고, GDR 픽처가 아닌 대상 레이어의 픽처에 대하여 다음이 적용될 수 있다.
- 참조된 PPS는 1과 동일한 pps_mixed_nalu_types_in_pic_flag를 가짐.
- 0에서 sps_num_subpics_minus1 범위의 각 서브픽처 인덱스 i(subpicture index i)에 대해 다음 두 가지가 모두 참(true)일 수 있음: sps_subpic_treated_as_pic_flag[i]는 1이고, 동일한 CLVS에서 현재 샘플에 후속하는 또는 동일한 서브픽처 인덱스 i를 갖는 적어도 하나의 IRAP 서브픽처가 있음.
또한, 예를 들어, layer_id_method_idc가 2와 같은 경우, 'roll' 샘플 그룹은 트랙에 있는 모든 레이어에 대한 동작(behaviour)을 지정할 수 있다. 또한, 예를 들어, 3과 동일한 layer_id_method_idc의 시멘틱(semantics)는 ISO/IEC 14496-12의 9.5.7절에 개시되어 있을 수 있다.
리더(reader)가 디코딩을 시작하기 위해 2 또는 3과 동일한 layer_id_method_idc로 표시된 샘플을 사용하는 경우, 리더는 layer_id_method_idc가 2 및 3인 샘플 그룹에 속하는 것으로 표시된 샘플로 시작하는 비트스트림이 일치하는 비트스트림이 되도록 복원된 비트스트림의 SPS, PPS 및 PH NAL 유닛을 다음과 같이 추가로 수정해야 할 수 있다.
- 샘플에서 참조하는 모든 SPS는 1과 동일한 sps_gdr_enabled_flag 를 가질 수 있다.
- 샘플에서 참조하는 모든 PPS는 0과 동일한 pps_mixed_nalu_types_in_pic_flag를 가질 수 있다.
- 샘플로부터 복원된 AU의 모든 VCL NAL 유닛은 GDR_NUT와 동일한 nal_unit_type을 가질 수 있다.
- 샘플로부터 복원된 AU의 모든 픽처 헤더(picture header)는 1과 동일한 ph_gdr_pic_flag 및 샘플이 매핑되는 'roll' 샘플 그룹 디스크립션 엔트리의 roll_distance에 대응하는 ph_recovery_poc_cnt 값을 가질 수 있다.
또한, 예를 들어,'roll' 샘플 그룹이 종속 레이어와 관련이 있지만 참조 레이어가 아닌 경우, 샘플 그룹은 종속 레이어의 모든 참조 레이어가 가용하고(available) 디코딩되는 경우에 적용되는 특성을 나타낼 수 있다. 상기 샘플 그룹은 예측된 레이어(predicted layer)의 디코딩을 시작하는데 사용될 수 있다.
또한, 예를 들어, 레이어 정보 샘플 그룹(Layer information sample group)이 정의될 수 있다. 트랙이 운반하는 레이어 및 서브레이어의 리스트는 레이어 정보('linf') 샘플 그룹으로 시그널링될 수 있다. 현재 트랙이 둘 이상의 레이어, 둘 이상의 서브레이어 또는 하나의 서브레이어를 포함하지만 상기 서브레이어가 TemporalId가 0인 서브레이어가 아닌 경우, 레이어 및 서브레이어 정보는 'sap', 'rap', 'sync', 'tele' 및 'vopi' 샘플 그룹과 같은 다른 샘플 그룹에서 시그널링된 정보를 해석하는데 필요할 수 있다. 또한, 'linf' 샘플 그룹이 VVC 트랙에 존재하는 경우, sub_layer_presence_flags는 0과 같을 수 있다.
또한, 예를 들어, 동작 포인트 정보 샘플 그룹(Operating points information sample group)이 정의될 수 있다. 어플리케이션(Applications)은 동작 포인트 정보 샘플 그룹('vopi')을 사용하여 VVC 기본 스트림(VVC elementary stream)과 구성에 대해 제공되는 다양한 동작 포인트에 대해 알릴(informed) 수 있다. 동작 포인트는 출력 레이어 세트(output layer set), 최대 TemporalId 값(max TemporalId value), 프로파일(profile), 티어(tier) 및 레벨(level) 시그널링과 관련이 있을 수 있다. 상술한 모든 정보는 'vopi' 샘플 그룹에 의해 캡처될(captured) 수 있다. 상기 정보 외에도 동작 포인트 정보 샘플 그룹은 레이어들 간의 디펜던시 정보(dependency information)도 제공될 수 있다.
또한, 예를 들어, VVC 기본 스트림에 대해 둘 이상의 VVC 트랙이 존재하고 VVC 기본 스트림에 대해 동작 포인트 엔티티 그룹(Operating Point entity group)이 존재하지 않는 경우, 다음 두 가지가 모두 적용될 수 있다.
- VVC 기본 스트림에 대한 VVC 트랙 중에는 'vopi' 샘플 그룹을 운반하는 하나의 트랙만이 있을 수 있다.
- VVC 기본 스트림의 다른 모든 VVC 트랙은 'vopi' 샘플 그룹을 운반하는 트랙에 대한 'vref' 타입의 트랙 레퍼런스를 가져야 할 수 있다.
주어진 트랙의 특정 샘플에 대하여, 다른 트랙의 시간적 콜로케이티드 샘플(temporally collocated sample)은 상기 특정 샘플의 디코딩 시간과 동일한 디코딩 시간을 갖는 것으로 정의될 수 있다. 'vopi' 샘플 그룹을 전달하는 트랙 Tk에 대한 'vref' 트랙 레퍼런스가 있는 트랙 TN의 각 샘플 SN에 대하여 다음이 적용될 수 있다.
- 트랙 Tk의 시간적 콜로케이티드 샘플 Sk가 있는 경우, 샘플 SN은 샘플 Sk와 동일한 'vopi' 샘플 그룹 엔트리와 연관될 수 있다.
- 그렇지 않은 경우, 샘플 SN은 디코딩 시간에서 샘플 SN에 선행하는 트랙 Tk의 마지막 샘플과 동일한 'vopi' 샘플 그룹 엔트리와 연관될 수 있다.
또한, VVC 기본 스트림이 여러 VPS를 참조하는 경우, grouping_type이 'vopi'인 샘플 그룹 디스크립션 박스에 여러 엔트리들을 포함해야 할 수 있다. 또한, VPS가 하나만 있는 경우, 디폴트 샘플 그룹 디스크립션 인덱스(default sample group description index)를 사용하고 각 트랙 프래그먼트(track fragment)에 포함하는 것보다 샘플 테이블 박스(sample table box)에 동작 포인트 정보 샘플 그룹(operating points information sample group)을 포함하는 것이 좋을 수 있다. 또한, grouping_type_parameter는 그룹핑 타입(grouping type)이 'vopi'인 SampleToGroupBox에 대해 정의되지 않을 수 있다.
상기 'vopi' 샘플 그룹 엔트리는 VVC 동작 포인트 레코드를 포함할 수 있다. 상기 VVC 동작 포인트 레코드의 신택스는 아래의 표와 같을 수 있다.
Figure pct00013
Figure pct00014
Figure pct00015
또한, 상기 VVC 동작 포인트 레코드의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00016
Figure pct00017
Figure pct00018
Figure pct00019
Figure pct00020
Figure pct00021
또한, 예를 들어, 액세스 유닛 딜리미터 샘플 그룹(Access unit delimiter sample group)이 정의될 수 있다. 상기 샘플 그룹의 샘플 그룹 디스크립션 엔트리는 AUD NAL 유닛을 포함할 수 있다.
샘플이 액세스 유닛 딜리미터 샘플 그룹('aud')에 매핑되는 경우, 대상 동작 포인트가 'aud' 샘플 그룹 내에 표시된 출력 레이어 세트 중 하나에 대응하면 샘플 그룹 내에 포함된 AUD NAL 유닛이 복원된 AU에 삽입되어야 함을 나타낼 수 있다.
상기 액세스 유닛 딜리미터 샘플 그룹의 AUD 샘플 엔트리의 신택스는 아래의 표와 같을 수 있다.
Figure pct00022
또한, 상기 AUD 샘플 엔트리의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00023
또한, 예를 들어, 시퀀스 종료 샘플 그룹(End of sequence sample group)이 정의될 수 있다. 상기 샘플 그룹의 샘플 그룹 디스크립션 엔트리는 EOS NAL 유닛을 포함할 수 있다.
샘플이 시퀀스 종료 샘플 그룹('eos')에 매핑되는 경우, 대상 동작 포인트가 'eos' 샘플 그룹 내에 표시된 출력 레이어 세트 및 최대 시간적 ID(maximum temporal ID) 중 하나에 대응하면 샘플 그룹 내에 포함된 EOS NAL 유닛이 복원된 AU의 표시된 위치(indicated position)에 삽입되어야 함을 나타낼 수 있다.
상기 시퀀스 종료 샘플 그룹의 시퀀스 종료 샘플 엔트리의 신택스는 아래의 표와 같을 수 있다.
Figure pct00024
또한, 상기 시퀀스 종료 샘플 엔트리의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00025
또한, 예를 들어, 비트스트림 종료 샘플 그룹(End of bitstream sample group)이 정의될 수 있다. 상기 샘플 그룹의 샘플 그룹 디스크립션 엔트리는 EOB NAL 유닛을 포함할 수 있다.
샘플이 비트스트림 종료 샘플 그룹('eob')에 매핑되는 경우, 대상 동작 포인트가 'eob' 샘플 그룹 내에 표시된 출력 레이어 세트 및 최대 시간적 ID(maximum temporal ID) 중 하나에 대응하면 샘플 그룹 내에 포함된 EOB NAL 유닛이 복원된 AU에 삽입되어야 함을 나타낼 수 있다.
상기 비트스트림 종료 샘플 그룹의 비트스트림 종료 샘플 엔트리의 신택스는 아래의 표와 같을 수 있다.
Figure pct00026
또한, 상기 비트스트림 종료 샘플 엔트리의 신택스에 대한 시멘틱(semantics)은 다음의 표와 같을 수 있다.
Figure pct00027
한편, 상술한 내용과 같이 대상 동작 포인트가 변경되는 경우, 현재 VVC 파일 포맷(VVC file format)은 다음을 지정하고 있다.
Figure pct00028
상술한 표 13에 도시된 바와 같이, 아래의 2가지 조건들이 모두 참인 경우, 파일 리더는 EOS NAL 유닛을 출력 비트스트림으로 적용된 동작 포인트의 각 레이어에 포함해야 할 수 있다.
- 액세스 유닛의 시퀀스 다음에 이전 동작 포인트와 다른 동작 포인트가 선택됨.
- 액세스 유닛의 시퀀스는 적용된 동작 포인트의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않음.
하지만, 상기 프로세스는 최소 다음과 같은 문제가 발생될 수 있다.
첫째로, 대상 동작 포인트는 목표 OLS와 최대 시간적 ID 를 포함하는 두 가지 구성 요소들을 가지고, 상기 최대 시간적 ID만 변경되어도 대상 동작 포인트가 변경된 것으로 간주되지만, 상술한 프로세스를 호출할 필요는 없을 수 있다. 상기 최대 시간적 ID의 변경은 네트워크 상태 변경에 대한 반응으로 원활히 발생할 수 있다. 따라서, 변경이 상기 대상 OLS와 관련된 경우에만 상기 프로세스가 호출되도록 하는 방안이 제안될 수 있다.
둘째로, 상기 프로세스는 파일 리더가 EOS NAL 유닛을 출력 비트스트림으로 적용된 동작 포인트의 각 레이어에 포함함을 요구하는 바, 이는 파일 리더가 EOS NAL 유닛을 액세스 유닛 내의 적절한 위치에 배치할 수 있어야 함을 의미할 수 있다. 이는 버든(burden)일 수 있다. VVC 는 EOS NAL 유닛이 관련된 픽처 유닛(associated picture unit)보다 앞서지 않는 한 액세스 유닛 내의 모든 위치에 존재할 수 있도록 허용하기 때문에, 파일 파서(file parser)가 EOS를 올바른 레이어(correct layer)에 넣을 필요가 없다.
이에, 본 문서는 상술한 문제에 대한 해결 방안을 제안한다. 제안되는 실시예들은 개별적으로 또는 조합하여 적용될 수 있다.
첫번째 예로, 본 문서는 대상 동작 포인트가 변경되는 경우에 상기 EOS NAL 유닛을 삽입하는 프로세스를 호출하는 대신, 대상 OLS 가 변경되는 경우에만 상기 상기 EOS NAL 유닛을 삽입하는 프로세스를 호출하는 방안을 제안한다. 따라서, 최대 시간적 ID만 변경되는 경우에는 상기 프로세스가 스킵될 수 있다.
두번째 예로, 본 문서는 상기 프로세스에서 EOS NAL 유닛을 삽입하는 경우에, 파일 파서(file parser)가 대상 OLS의 레이어 수만큼 대응 레이어 내에 배치할 필요없이 EOS NAL 유닛을 포함하도록 하는 방안을 제안한다.
세번째 예로, 본 문서는 액세스 유닛 끝(end of the access unit)에 필요한 모든 EOS NAL 유닛을 넣을 수 있도록 하는 방안을 제안한다.
네번째 예로, 본 문서는 상기 프로세스를 선택사항(opitional)로 하는 방안을 제안한다.
일 예로, 본 문서에서 제안한 상기 첫번째 예 내지 상기 세번째 예를 반영한 실시예는 다음과 같을 수 있다. 상기 실시예는 아래의 표와 같이 VVC 파일 포멧 사양(VVC file format specification)으로 표현될 수 있다.
Figure pct00029
예를 들어, 상기 표 14에 따르면, 다음과 같은 2가지 조건들이 참인지 판단될 수 있다. 예를 들어, 제1 조건은 액세스 유닛의 시퀀스 다음에 이전 OLS(output layer set)와 다른 OLS가 선택되는지 여부일 수 있다. 또한, 예를 들어, 제2 조건은 액세스 유닛의 시퀀스가 적용된 OLS의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않는지 여부일 수 있다.
상기 2가지 조건들이 참인 경우, 즉, 액세스 유닛의 시퀀스 다음에 이전 OLS와 다른 OLS가 선택되고, 액세스 유닛의 시퀀스가 적용된 OLS의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않는 경우, 파일 리더는 출력 비트스트림으로 적용된 대상 출력 레이어에 적용된 레이어 수만큼 마지막 액세스 유닛에 EOS NAL 유닛을 포함할 수 있다. 상기 포함된 EOS NAL 유닛은 NAL 유닛의 레이어 ID의 오름차순으로 액세스 유닛의 끝(the end of the access unit)에 배치될(placed) 수 있다.
다른 일 예로, 본 문서에서 제안한 상기 첫번째 예 내지 상기 네번째 예를 반영한 실시예는 다음과 같을 수 있다. 상기 실시예는 아래의 표와 같이 VVC 파일 포멧 사양(VVC file format specification)으로 표현될 수 있다.
Figure pct00030
예를 들어, 상기 표 15에 따르면, 다음과 같은 2가지 조건들이 참인지 판단될 수 있다. 예를 들어, 제1 조건은 액세스 유닛의 시퀀스 다음에 이전 OLS(output layer set)와 다른 OLS가 선택되는지 여부일 수 있다. 또한, 예를 들어, 제2 조건은 액세스 유닛의 시퀀스가 적용된 OLS의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않는지 여부일 수 있다.
상기 2가지 조건들이 참인 경우, 즉, 액세스 유닛의 시퀀스 다음에 이전 OLS와 다른 OLS가 선택되고, 액세스 유닛의 시퀀스가 적용된 OLS의 각 레이어에서 EOS NAL 유닛 또는 EOB NAL 유닛으로 끝나지 않는 경우, 파일 리더는 출력 비트스트림으로 적용된 대상 출력 레이어에 적용된 레이어 수만큼 마지막 액세스 유닛에 EOS NAL 유닛을 포함할 수 있다. 상기 EOS NAL 유닛을 포함하는 과정은 선택사항일 수 있다. 상기 포함된 EOS NAL 유닛은 NAL 유닛의 레이어 ID의 오름차순으로 액세스 유닛의 끝(the end of the access unit)에 배치될(placed) 수 있다.
도 8은 본 문서에서 제안한 실시예가 적용되는 미디어 파일 생성 방법을 예시적으로 나타낸다.
도 8을 참조하면 제1 장치(first device)는 트랙(track)을 구성(configuration)할 수 있다(S800). 예를 들어, 상기 제1 장치는 상술한 실시예에 따라서 트랙을 구성할 수 있다. 예를 들어, 상기 제1 장치는 전송 단(transmission end), 인코딩 단(encoding end) 또는 미디어 파일 생성 단(media file generating end)을 나타낼 수 있다. 또한, 예를 들어, 상기 제1 장치를 서브픽처 트랙들과 베이스 트랙을 구성할 수 있다. 또한, 상기 제1 장치는 인코더를 포함할 수 있다.
제1 장치는 트랙을 기반으로 미디어 파일을 생성할 수 있다(S810). 예를 들어, 상기 제1 장치는 상술한 실시예에 따라서 트랙을 기반으로 미디어 파일을 생성할 수 있다.
도 9는 본 문서에서 제안한 실시예가 적용되어 생성된 미디어 파일을 디코딩하는 방법을 예시적으로 나타낸다.
도 9를 참조하면 제2 장치(second device)는 트랙을 포함하는 미디어 파일을 획득(obtain)/수신(receive)할 수 있다(S900). 예를 들어, 상기 제2 장치는 상술한 실시예에 따라서 트랙을 포함하는 미디어 파일을 획득/수신할 수 있다. 또한, 예를 들어, 상기 제2 장치는 수신 단(reception end), 디코딩 단(decoding end) 또는 렌더링 단(rendering end)을 나타낼 수 있다.
예를 들어, 미디어 파일은 표 1, 표 3, 표 5, 표 7, 표 9 및/또는 표 11에서 설명된 정보를 포함할 수 있다.
제2 장치는 상기 트랙을 파싱(parse)/획득(obtain)할 수 있다(S910). 제2 장치는 상기 미디어 파일에 포함된 트랙을 파싱/획득할 수 있다. 예를 들어, 상기 트랙은 서브픽처 트랙 또는 베이스 트랙 등을 포함할 수 있다. 예를 들어, 상기 제2 장치는 서브픽처 트랙 및 베이스 트랙을 파싱할 수 있다.
제2 장치는 상기 트랙을 기반으로 하나 이상의 서브픽처의 슬라이스를 생성할 수 있다. 또한, 제2 장치는 상기 트랙을 기반으로 복원 샘플들(reconstructed samples)을 생성할 수 있다. 또한, 제2 장치는 상기 트랙을 기반으로 이미지/비디오 디코딩에 필요한 정보를 획득할 수 있다.
도 10은 본 문서에 따른 미디어 파일 생성 장치에 의한 미디어 파일 생성 방법을 개략적으로 나타낸다. 도 10에서 개시된 방법은 도 11에서 개시된 미디어 파일 생성 장치에 의하여 수행될 수 있다. 상기 미디어 파일 생성 장치는 상술한 제1 장치를 나타낼 수 있다. 구체적으로 예를 들어, 도 10의 S1000 내지 S1030은 상기 미디어 파일 생성 장치의 미디어 파일 생성부에 의하여 수행될 수 있다. 또한, 비록 도시되지는 않았으나 영상 정보를 포함하는 비트스트림을 인코딩하는 과정은 인코더에 의하여 수행될 수 있다. 상기 인코더는 상기 미디어 파일 생성 장치에 포함되거나 또는 외부 컴포넌트로 구성될 수 있다.
미디어 파일 생성 장치는 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 생성한다(S1000). 예를 들어, 미디어 파일 생성 장치는 인코딩된 영상 정보를 포함하는 비트스트림을 도출할 수 있고, 상기 비트스트림에 대한 미디어 파일을 생성할 수 있다. 예를 들어, 미디어 파일 생성 장치는 네트워크 또는 (디지털) 저장매체를 통하여 상기 인코딩된 영상 정보를 획득할 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 또는, 예를 들어, 상기 미디어 파일 생성 장치는 인코더를 포함할 수 있고, 상기 인코딩된 영상 정보를 도출할 수 있다. 예를 들어, 미디어 파일 생성 장치는 상기 인코딩된 영상 정보를 포함하는 비트스트림에 대한 상기 제1 OLS를 생성할 수 있다. 예를 들어, 미디어 파일 생성 장치는 상기 제1 OLS에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 생성할 수 있다.
미디어 파일 생성 장치는 제1 조건 및 제2 조건이 참(true)인지 판단한다(S1010). 미디어 파일 생성 장치는 상기 제1 조건 및 상기 제2 조건이 참(true)인지 판단할 수 있다.
예를 들어, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부일 수 있다. 즉, 예를 들어, 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택된 경우, 상기 제1 조건이 참인 것으로 판단될 수 있다. 한편, 예를 들어, 상기 제1 OLS 와 다른 OLS 는 제2 OLS 라고 나타낼 수 있다.
또한, 예를 들어, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부일 수 있다. 즉, 예를 들어, 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는 경우, 상기 제2 조건이 참인 것으로 판단될 수 있다.
미디어 파일 생성 장치는 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입한다(S1020). 예를 들어, 상기 제1 조건 및 상기 제2 조건이 참인 경우, 미디어 파일 생성 장치는 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 상기 제1 OLS에 삽입할 수 있다.
또한, 예를 들어, 상기 EOS NAL 유닛들은 대응하는 레이어에 배치되지(placed) 않을 수 있다.
또한, 예를 들어, 미디어 파일 생성 장치는 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 마지막 액세스 유닛(last access unit)의 끝에 상기 삽입되는 EOS NAL 유닛들을 삽입할 수 있다. 또한, 예를 들어, 상기 삽입되는 EOS NAL 유닛들은 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 액세스 유닛(access unit)의 끝에 배치될 수 있다.
또한, 예를 들어, 상기 생성된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 대상 동작 포인트만 변경된 경우에는 상기 EOS NAL 유닛들은 삽입되지 않을 수 있다. 예를 들어, 상기 생성된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 최대 시간적 ID(max temporal ID)만 변경된 경우에는 상기 EOS NAL 유닛들은 삽입되지 않을 수 있다.
미디어 파일 생성 장치는 상기 제1 OLS를 포함하는 미디어 파일을 생성한다(S1030). 미디어 파일 생성 장치는 상기 제1 OLS 및/또는 상기 제2 OLS를 포함하는 미디어 파일을 생성할 수 있다.
한편, 비록 도시되지는 않았으나 미디어 파일 생성 장치는 상기 제2 OLS 를 생성할 수 있다. 예를 들어, 미디어 파일 생성 장치는 상기 제2 OLS에 대한 액세스 유닛의 시퀀스를 생성할 수 있다. 또한, 비록 도시되지는 않았으나 미디어 파일 생성 장치는 상기 생성된 미디어 파일을 (디지털) 저장매체에 저장하거나 또는 네트워크 또는 (디지털) 저장매체를 통하여 미디어 파일 처리 장치로 전달할 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다.
도 11은 본 문서에 따른 미디어 파일 생성 방법을 수행하는 미디어 파일 생성 장치를 개략적으로 나타낸다. 도 10에서 개시된 방법은 도 11에서 개시된 미디어 파일 생성 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 11의 상기 미디어 파일 생성 장치의 미디어 파일 생성부는 S1000 내지 S1030을 수행할 수 있다. 또한, 비록 도시되지는 않았으나 영상 정보를 포함하는 비트스트림을 인코딩하는 과정은 상기 미디어 파일 생성 장치의 인코더에 의하여 수행될 수 있다.
도 12는 본 문서에 따른 미디어 파일 처리 장치에 의한 미디어 파일 처리 방법을 개략적으로 나타낸다. 도 12에서 개시된 방법은 도 13에서 개시된 미디어 파일 처리 장치에 의하여 수행될 수 있다. 상기 미디어 파일 처리 장치는 상술한 제2 장치를 나타낼 수 있다. 구체적 예를 들어, 도 12의 S1200 내지 S1220은 상기 미디어 파일 처리 장치의 미디어 파일 처리부에 의하여 수행될 수 있다. 상기 미디어 파일 처리부는 파일 파서(file parser) 및/또는 파일 리더(file reader)를 포함할 수 있다. 또한, 비록 도시되지는 않았으나 미디어 파일을 획득하는 과정은 수신부에 의하여 수행될 수 있고, 제1 OLS에 대한 액세스 유닛들의 시퀀스 및 제1 OLS와 다른 OLS에 대한 액세스 유닛들의 시퀀스를 포함하는 비트스트림을 도출하는 과정은 미디어 파일 처리부에 의하여 의하여 수행될 수 있고, 상기 비트스트림을 디코딩하는 과정은 디코더에 의하여 수행될 수 있다. 상기 디코더는 상기 미디어 파일 처리 장치에 포함되거나 또는 외부 컴포넌트로 구성될 수 있다.
미디어 파일 처리 장치는 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 복원한다(S1200). 예를 들어, 상기 미디어 파일 처리 장치는 네트워크 또는 (디지털) 저장매체를 통하여 미디어 파일을 획득할 수 있다. 상기 미디어 파일은 상기 제1 OLS에 대한 상기 액세스 유닛들(access units)의 상기 시퀀스를 포함할 수 있다. 미디어 파일 처리 장치는 상기 제1 OLS에 대한 상기 액세스 유닛들의 상기 시퀀스를 복원(reconstruct)할 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다.
미디어 파일 처리 장치는 제1 조건 및 제2 조건이 참(true)인지 판단한다(S1210). 미디어 파일 처리 장치는 상기 제1 조건 및 상기 제2 조건이 참(true)인지 판단할 수 있다.
예를 들어, 상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부일 수 있다. 즉, 예를 들어, 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택된 경우, 상기 제1 조건이 참인 것으로 판단될 수 있다. 한편, 예를 들어, 상기 제1 OLS 와 다른 OLS 는 제2 OLS 라고 나타낼 수 있다.
또한, 예를 들어, 상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부일 수 있다. 즉, 예를 들어, 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는 경우, 상기 제2 조건이 참인 것으로 판단될 수 있다.
미디어 파일 처리 장치는 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입한다(S1220). 예를 들어, 상기 제1 조건 및 상기 제2 조건이 참인 경우, 미디어 파일 처리 장치는 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 상기 제1 OLS에 삽입할 수 있다.
또한, 예를 들어, 상기 EOS NAL 유닛들은 대응하는 레이어에 배치되지(placed) 않을 수 있다.
또한, 예를 들어, 미디어 파일 처리 장치는 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 마지막 액세스 유닛(last access unit)의 끝에 상기 삽입되는 EOS NAL 유닛들을 삽입할 수 있다. 또한, 예를 들어, 상기 삽입되는 EOS NAL 유닛들은 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 액세스 유닛(access unit)의 끝에 배치될 수 있다.
또한, 예를 들어, 상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 대상 동작 포인트만 변경된 경우에는 상기 EOS NAL 유닛들은 삽입되지 않을 수 있다. 예를 들어, 상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 최대 시간적 ID(max temporal ID)만 변경된 경우에는 상기 EOS NAL 유닛들은 삽입되지 않을 수 있다.
한편, 비록 도시되지는 않았으나 미디어 파일 처리 장치는 상기 제2 OLS에 대한 액세스 유닛의 시퀀스를 복원할 수 있다. 또한, 미디어 파일 처리 장치는 상기 제1 OLS에 대한 액세스 유닛의 시퀀스 및 상기 제2 OLS에 대한 액세스 유닛의 시퀀스를 포함하는 비트스트림을 도출할 수 있고, 상기 비트스트림을 디코딩할 수 있다. 상기 비트스트림은 VVC 비트스트림(VVC bitstream) 또는 출력 비트스트림(output bitstream)이라고 불릴 수 있다. 예를 들어, 미디어 파일 처리 장치는 상기 비트스트림 내 영상 정보를 디코딩할 수 있고, 상기 영상 정보를 기반으로 복원 픽처를 생성할 수 있다.
도 13은 본 문서에 따른 미디어 파일 처리 방법을 수행하는 미디어 파일 처리 장치를 개략적으로 나타낸다. 도 12에서 개시된 방법은 도 13에서 개시된 미디어 파일 처리 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 12의 상기 미디어 파일 처리 장치의 미디어 파일 처리부는 도 12의 S1200 내지 S1220을 수행할 수 있다. 한편, 비록 도시되지는 않았으나 미디어 파일 처리 장치는 디코더를 포함할 수 있고, 미디어 파일을 획득하는 과정은 수신부에 의하여 수행될 수 있고, 제1 OLS에 대한 액세스 유닛들의 시퀀스 및 제1 OLS와 다른 OLS에 대한 액세스 유닛들의 시퀀스를 포함하는 비트스트림을 도출하는 과정은 미디어 파일 처리부에 의하여 의하여 수행될 수 있고, 상기 비트스트림을 디코딩하는 과정은 디코더에 의하여 수행될 수 있다.
상술한 본 문서에 따르면 최대 시간적 ID만 변경되어도 EOS NAL 유닛들을 삽입하는 불필요한 동작을 방지할 수 있고, 이를 통하여 전반적인 코딩 효율을 향상시킬 수 있다.
또한, 본 문서에 따르면 EOS NAL 유닛을 액세스 유닛 내의 적절한 위치에 삽입하기 위하여 발생되는 버든을 방지할 수 있고, 이를 통하여 전반적인 코딩 효율을 향상시킬 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 문서는 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 문서의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
본 문서에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(ex. information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다.
또한, 본 문서의 실시예들이 적용되는 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VOD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, VR(virtual reality) 장치, AR(augmented reality) 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등이 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recorder) 등을 포함할 수 있다.
또한, 본 문서의 실시예들이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 문서에 따른 데이터 구조를 가지는 멀티미디어 데이터 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 문서의 실시예들은 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 반송파 있고, 상기 프로그램 코드는 본 문서의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
도 14는 본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다.
본 문서의 실시예들이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 문서의 실시예들이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다. 상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 문서에 기재된 청구항들은 다양한 방식으로 조합될 수 있다. 예를 들어, 본 문서의 방법 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 문서의 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다. 또한, 본 문서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 문서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다.

Claims (15)

  1. 미디어 파일 처리 방법에 있어서,
    제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 복원하는 단계;
    제1 조건 및 제2 조건이 참(true)인지 판단하는 단계;
    상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 단계를 포함하고,
    상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고,
    상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 하는 미디어 파일 처리 방법.
  2. 제1항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 액세스 유닛(access unit)의 끝에 배치되는 것을 특징으로 하는 미디어 파일 처리 방법.
  3. 제1항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 대응하는 레이어(corresponding layer)에 배치되지(placed) 않는 것을 특징으로 하는 미디어 파일 처리 방법.
  4. 제1항에 있어서,
    상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 대상 동작 포인트(target operating point)만 변경된 경우, 상기 EOS NAL 유닛들은 삽입되지 않는 것을 특징으로 하는 미디어 파일 처리 방법.
  5. 제1항에 있어서,
    상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 최대 시간적 ID(max temporal ID)만 변경된 경우, 상기 EOS NAL 유닛들은 삽입되지 않는 것을 특징으로 하는 미디어 파일 처리 방법.
  6. 제1항에 있어서,
    상기 EOS NAL 유닛들을 삽입하는 과정은 선택사항(optional)인 것을 특징으로 하는 미디어 파일 처리 방법.
  7. 미디어 파일 처리 방법을 수행하는 미디어 파일 처리 장치에 있어서,
    미디어 파일을 획득하는 수신부; 및
    상기 미디어 파일의 제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 복원하고, 제1 조건 및 제2 조건이 참(true)인지 판단하고, 상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 미디어 파일 처리부를 포함하고,
    상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고,
    상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 하는 미디어 파일 처리 장치.
  8. 제7항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 액세스 유닛(access unit)의 끝에 배치되는 것을 특징으로 하는 미디어 파일 처리 장치.
  9. 제7항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 대응하는 레이어(corresponding layer)에 배치되지(placed) 않는 것을 특징으로 하는 미디어 파일 처리 장치.
  10. 제7항에 있어서,
    상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 대상 동작 포인트(target operating point)만 변경된 경우, 상기 EOS NAL 유닛들은 삽입되지 않는 것을 특징으로 하는 미디어 파일 처리 장치.
  11. 제7항에 있어서,
    상기 복원된 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되지 않고, 최대 시간적 ID(max temporal ID)만 변경된 경우, 상기 EOS NAL 유닛들은 삽입되지 않는 것을 특징으로 하는 미디어 파일 처리 장치.
  12. 제7항에 있어서,
    상기 EOS NAL 유닛들을 삽입하는 과정은 선택사항(optional)인 것을 특징으로 하는 미디어 파일 처리 장치.
  13. 미디어 파일 생성 방법에 있어서,
    제1 OLS(Output Layer Set, OLS)에 대한 액세스 유닛들(access units)의 시퀀스(sequence)를 생성하는 단계;
    제1 조건 및 제2 조건이 참(true)인지 판단하는 단계;
    상기 제1 조건 및 상기 제2 조건이 참임을 기반으로, 상기 제1 OLS에 적용된 레이어의 수만큼 EOS(End Of Sequence, EOS) NAL(Network Abstraction Layer, NAL) 유닛들을 삽입하는 단계; 및
    상기 제1 OLS를 포함하는 상기 미디어 파일을 생성하는 단계를 포함하고,
    상기 제1 조건은 상기 액세스 유닛들의 상기 시퀀스 다음에 상기 제1 OLS와 다른 OLS가 선택되는지 여부이고,
    상기 제2 조건은 상기 액세스 유닛들의 상기 시퀀스가 상기 제1 OLS의 각 레이어에서 EOS NAL 유닛으로 끝나지 않거나 EOB(End Of Bitstream) NAL 유닛으로 끝나지 않는지 여부인 것을 특징으로 하는 미디어 파일 생성 방법.
  14. 제13항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 상기 EOS NAL 유닛들의 레이어 ID의 오름차순으로 상기 시퀀스의 액세스 유닛(access unit)의 끝에 배치되는 것을 특징으로 하는 미디어 파일 생성 방법.
  15. 제13항에 있어서,
    상기 삽입되는 EOS NAL 유닛들은 대응하는 레이어(corresponding layer)에 배치되지(placed) 않는 것을 특징으로 하는 미디어 파일 생성 방법.
KR1020237035548A 2021-04-19 2022-04-14 미디어 파일 처리 방법 및 그 장치 KR20230159499A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163176834P 2021-04-19 2021-04-19
US63/176,834 2021-04-19
PCT/KR2022/005393 WO2022225256A1 (ko) 2021-04-19 2022-04-14 미디어 파일 처리 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20230159499A true KR20230159499A (ko) 2023-11-21

Family

ID=83722432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237035548A KR20230159499A (ko) 2021-04-19 2022-04-14 미디어 파일 처리 방법 및 그 장치

Country Status (5)

Country Link
EP (1) EP4329303A1 (ko)
JP (1) JP2024515091A (ko)
KR (1) KR20230159499A (ko)
CN (1) CN117296317A (ko)
WO (1) WO2022225256A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866852B2 (en) * 2014-06-20 2018-01-09 Qualcomm Incorporated Video coding using end of sequence network abstraction layer units
US10623755B2 (en) * 2016-05-23 2020-04-14 Qualcomm Incorporated End of sequence and end of bitstream NAL units in separate file tracks
CA3143885A1 (en) * 2019-06-20 2020-12-24 Nokia Technologies Oy An apparatus, a method and a computer program for video encoding and decoding
CN114467262A (zh) * 2019-09-24 2022-05-10 华为技术有限公司 视频译码中的sei消息依赖简化

Also Published As

Publication number Publication date
CN117296317A (zh) 2023-12-26
EP4329303A1 (en) 2024-02-28
WO2022225256A1 (ko) 2022-10-27
JP2024515091A (ja) 2024-04-04

Similar Documents

Publication Publication Date Title
JP6874169B2 (ja) コンテナファイルおよびビデオビットストリームにおける関心領域の発展型シグナリング
US20220201308A1 (en) Media file processing method and device therefor
US20240089506A1 (en) Method and apparatus for processing high level syntax in image/video coding system
US20230336761A1 (en) Method for processing media file and device therefor
EP4329303A1 (en) Media file processing method, and device therefor
EP4287624A1 (en) Media file processing method and device
US20240048768A1 (en) Method and apparatus for generating and processing media file
US20230328261A1 (en) Media file processing method and device therefor
US20230362456A1 (en) Media file processing method and device
US20240040169A1 (en) Media file processing method and device therefor
US20230388508A1 (en) Method and device for generating media file
EP4270968A1 (en) Media file generation/reception method and device for signaling subpicture id information, and computer-readable recording medium in which media file is stored
US20240056578A1 (en) Media file generation/reception method and apparatus supporting random access in units of samples, and method for transmitting media file
US20240031622A1 (en) Media file processing method and device
EP4329315A1 (en) Method and device for generating/receiving media file on basis of eos sample group, and method for transmitting media file
EP4266689A1 (en) Method and device for generating/receiving media file including nal unit information, and method for transmitting media file
US20230319374A1 (en) Method and device for creating/receiving media file containing layer information, and media file transfer method
US20230345028A1 (en) Media file processing method and apparatus therefor
US20240056618A1 (en) Method and device for generating/receiving media file including nal unit array information, and method for transmitting media file
US11805264B2 (en) NAL unit type-based image or video coding
US20230336751A1 (en) Method and apparatus for generating/receiving media file which signals output layer set information, and computer-readable recording medium storing media file
US20230379481A1 (en) Media file generation/reception method and device for signaling operating point information and output layer set information, and computer-readable recording medium in which media file is stored
US20230336783A1 (en) Method and device for generating/receiving media file including output layer set information, and method for transmitting media file
CN117223290A (zh) 用于基于eos样本组生成/接收媒体文件的方法和设备以及用于发送媒体文件的方法