KR20220163474A - 비디오 코딩을 위한 파일 포맷 개념 - Google Patents

비디오 코딩을 위한 파일 포맷 개념 Download PDF

Info

Publication number
KR20220163474A
KR20220163474A KR1020227038701A KR20227038701A KR20220163474A KR 20220163474 A KR20220163474 A KR 20220163474A KR 1020227038701 A KR1020227038701 A KR 1020227038701A KR 20227038701 A KR20227038701 A KR 20227038701A KR 20220163474 A KR20220163474 A KR 20220163474A
Authority
KR
South Korea
Prior art keywords
track
file
tracks
samples
operation point
Prior art date
Application number
KR1020227038701A
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 KR20220163474A publication Critical patent/KR20220163474A/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/234327Processing 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 decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/23439Processing 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 for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/44029Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display for generating different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

비디오 코딩을 위한 파일 형식 개념을 제기한다. 실시예들은 비디오 파일로부터 서브스트림의 효율적인 추출을 허용한다. 추가적인 실시예들은 비디오 파일의 서브-스트림들 간의 유연한 스위칭을 허용한다. 추가적인 실시예들은 디코더 초기화의 유연한 처리를 허용한다.

Description

비디오 코딩을 위한 파일 포맷 개념
본 발명의 실시예들은 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 파일을 파싱하는 파일 포맷 파서에 관한 것이다. 추가적인 실시예들은 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 파일을 생성하기 위한 파일 생성기에 관한 것이다. 추가적인 실시예들은 비디오 디코더 및 비디오 인코더에 관한 것이다. 본 발명의 실시예들은 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 파일을 파싱하는 방법에 관한 것이다. 추가적인 실시예들은 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 파일을 생성하는 방법에 관한 것이다.
추가적인 실시예들은 서버로부터 미디어 데이터를 다운로드하는 클라이언트 장치에 관한 것이다. 본 발명의 추가적인 실시예들은 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 데이터 파일들과 같은 파일들에 관한 것이다. 본 발명의 추가적인 실시예들은 클라이언트에 의해 서버로부터 다운로드될 수 있는 미디어 데이터를 기술하는 매니페스트 파일에 관한 것이다.
본 개시의 예들은 멀티-트랙 VVC 파일 포맷 통합 양태들에 관한 것이다.
인코딩된 비디오 데이터는 하나 이상의 파일 형태로 저장되거나 전송될 수 있다. 이 파일들은, 코딩된 비디오 데이터 자체를 넘어, 코딩된 비디오 데이터의 구조에 대한 정보 및/또는 코딩된 비디오 데이터가 파일 내에서 어떻게 구조화되는지에 대한 정보를 포함할 수 있다. 비디오 파일의 파일 포맷에 대한 개념과 함께 비디오 파일의 생성 및 파싱에 대한 개념을 갖는 것이 바람직한데, 비디오 파일의 생성 및 파싱에 대한 개념은 파일에 저장된 비디오 데이터의 유연하고/또는 효율적인(즉, 연산 리소스 및/또는 메모리 리소스를 효율적으로 활용하는) 디코딩을 가능하게 해주기 때문이며, 특히, 예컨대 확장 가능한 또는 타일링된 비디오 비트스트림을 제공하는 경우와 같이 파일로부터 상이한 비디오 스트림을 추출하는 것이 허용하는 경우에 그러하다.
본 발명은 파일에 저장된 비디오 데이터의 유연하고/또는 효율적인 디코딩을 가능하게 해주는 파일 포맷 개념을 제공한다.
예시적 실시예들은 상기 파일 포맷 개념에 따라 인코딩된 비디오 파일을 파싱하는 파일 포맷 파서를 제공한다.
예시적인 실시예들은 상기 파일 포맷 개념에 따라 비디오 스트림의 하나 이상의 픽처에 대한 정보를 포함하는 파일을 생성하는 파일 생성기를 제공한다.
예시적인 실시예들은 상기 파일 포맷 개념에 따라 비디오 스트림이 인코딩된 파일을 파싱하는 방법을 제공한다.
예시적인 실시예들은 상기 파일 포맷 개념에 따라 비디오 스트림이 인코딩된 파일을 생성하는 방법을 제공한다.
본 발명의 제1 양태는 파일, 파일 파서, 파일 생성기는 물론, 서버로부터 미디어 데이터를 다운로드하기 위한 클라이언트와, 서버에 의해 제공되는 매니페스트 파일에 대한 개념을 제공한다. 제1 양태에 따른 실시예에서, 파일은 파일의 트랙들 세트에 걸쳐 분산된 코딩된 비디오 시퀀스를 시그널링하고, 트랙들 각각은 코딩된 비디오 시퀀스의 서브-스트림을 시그널링한다. 파일 파서는 파일의 서브-스트림 중 하나 또는 다수의 조합을 추출하여 디코딩할 수 있도록, 파일로부터 비디오 비트스트림을 생성할 수 있다. 추출된 서브-스트림에 따라 비디오 비트스트림은, 비트율, 픽처 크기, 프레임 레이트 등에 대한 제약조건 측면에서, 개별 속성을 가질 수 있고, 이러한 속성들은 예컨대 프로파일, 타이어, 레벨 파라미터로 표현될 수 있다. 파일은 동작 포인트(예컨대, 파일로부터 추출된 비디오 비트스트림의 디코딩을 위한 제약조건을 정의함)에 대하여, 트랙들의 서브세트, 상기 동작 포인트의 비디오 비트스트림에 필요한 서브스트림을 나타내는 설명 데이터를 더 포함한다. 그러므로 설명 데이터는 파일 파서가 전체 트랙을 추출함으로써 비디오 비트스트림을 추출하도록 할 수 있게 해주며, 따라서 코딩된 비디오 데이터의 개별 샘플에 대한 파싱이 비디오 비트스트림을 추출하는 데 불필요할 수 있다. 또한, 메커니즘이 개별 서브-스트림을 추출을 허용하기 때문에 다른 트랙에 속하면서 디코딩 시점이 동일한 샘플들이 비디오 비트스트림에서 서로 독립적으로 포워딩될 수 있다.
일 실시예에 따르면, 동작 포인트에 의해 요구되는 트랙들의 표시는 동작 포인트들을 트랙들 세트에 할당하는 엔티티 그룹 구문 구조에 의해 파일에 표시된다. 엔티티 그룹 구문 구조는 파일 레벨에서 저장될 수 있으므로, 파일 파서는 모든 트랙들을 파싱할 필요가 없을 뿐만 아니라, 현재 선택된 동작 포인트에 할당된 트랙들만 파싱할 수 있다. 따라서 파일 파싱이 특히 효율적일 수 있다.
본 발명의 제2 양태는 파일, 파일 파서, 파일 생성기뿐만 아니라, 서버로부터 미디어 데이터를 다운로드하기 위한 클라이언트와, 서버에 의해 제공되는 매니페스트 파일에 대한 개념을 제공한다. 제2 양태에 따른 실시예들은, 코딩된 비디오 시퀀스를 시그널링하는 파일의 트랙으로부터, 트랙의 샘플들의 일부를 추출하여, 선택된 동작 포인트에 따라 비디오 비트스트림을 생성하는 것을 허용한다. 따라서 제2 양태의 실시예들은 트랙을 부분적으로 포워딩하는 것을 허용하여, 비디오 비트스트림이 불필요하게 높은 비트율을 가져야 하는 것을 회피할 수 있게 해준다. 제2 양태의 실시예들은 기본 레이어 트랙이 코딩된 비디오 시퀀스의 기본 레이어를 시그널링하고, 추가적인 트랙 신호들이 기본 레이어에 대한 향상 레이어를 포함하는 시나리오에서 특히 유리할 수 있다. 기본 레이어의 모든 픽처가 아닌 일부가 향상 레이어를 디코딩하는 데 필요한 경우(예컨대, 비디오 스트림이 고해상도로 되어 있는 경우), 예를 들어 픽처들의 일부가 레이어간 예측 없이 인코딩된 경우, 실시예들은 기본 레이어의 일부의 추출을 허용하는데, 이것은 향상 레이어를 디코딩하는 데 실제로 필요하다. 제2 양태에 따르면, 파일의 실시예들은 동작 포인트에 의해 요구되는 트랙의 샘플들의 요구되는 부분을 표시하는 설명 데이터를 포함한다.
일 실시예에 따르면, 샘플의 요구되는 부분의 표시는 코딩된 비디오 시퀀스의 레이어에 대해 제약을 표시함으로써 코딩된 비디오 시퀀스의 시간적 서브-레이어에 대한 제약조건을 나타내는 샘플 그룹 구문 구조로 전달된다. 시간 서브레이어 식별자. 많은 경우에 샘플이 연관된 레이어와 결합하여 코딩된 비디오 시퀀스의 샘플이 연관된 시간적 서브레이어가 동작 포인트이든 아니든, 시간적 서브레이어에 대한 제약 표시는 시그널링 오버헤드 측면에서 트랙의 개별 샘플을 전달하기 위한 선택성을 제공하는 효율적인 방법이다.
세 번째 측면은 파일, 파일 파서, 파일 생성기뿐만 아니라, 서버로부터 미디어 데이터를 다운로드하기 위한 클라이언트와, 서버에 의해 제공되는 매니페스트 파일에 대한 개념을 제공한다. 제3 양태에 따른 실시예에서, 파일은 파일의 트랙 세트에 걸쳐 분포된 코딩된 비디오 시퀀스를 시그널링하고, 트랙들 각각은 코딩된 비디오 시퀀스의 서브-스트림을 시그널링한다. 파일은 제2 트랙의 하나 이상의 선행 샘플이 비디오 디코더에 이용가능하다면 제2 트랙으로부터의 스위칭이 허용되는 제1 트랙의 샘플을 나타내는 스위칭 정보를 포함한다. 제3 양태는 하나 이상의 선행 샘플을 사용할 수 있는 경우 참조 샘플에 의존하는 샘플(예: 비-RAP 샘플)에서 첫 번째 트랙으로 스위칭할 수 있다는 아이디어에 의존한다. 제1 트랙의 참조 샘플과 시간적으로 같은 위치에 있는 제2 트랙의 정보는 디코더에서 사용할 수 있다. 따라서 그러한 스위칭 포인트의 표시는 비-RAP 샘플 위치에서 스위칭을 허용할 수 있고, 코딩된 비디오 시퀀스의 디코딩 및 프리젠테이션에서 높은 유연성을 제공한다.
네 번째 측면은 파일, 파일 파서, 파일 생성기뿐만 아니라, 서버로부터 미디어 데이터를 다운로드하기 위한 클라이언트와, 서버에 의해 제공되는 매니페스트 파일에 대한 개념을 제공한다. 파일은, 파일의 트랙에서, 비디오 스트림의 코딩된 비디오 시퀀스를 시그널링한다. 파일은 코딩된 비디오 시퀀스에 대한 각각의 샘플 엔트리를 포함하고, 샘플 엔트리들은 코딩된 비디오 시퀀스에 대한 비디오 파라미터(예를 들어, 지시적이거나 필요한 디코더 능력임)를 시그널링한다. 제4 양태에 따르면, 파일은 트랙 또는 트랙 그룹에 대한 모든 샘플 엔트리들에 의해 시그널링된 비디오 파라미터가 소정의 디코더 능력을 충족하는지 여부를 파일 파서가 도출할 수 있는 설명 데이터를 포함한다. 따라서 파일 파싱은 트랙의 모든 코딩된 비디오 시퀀스가 디코더 능력을 따르는 경우에 비디오 비트스트림을 처리하는 비디오 디코더의 재초기화를 억제할 수 있고, 비디오 파라미터가 트랙 내에서 변경될 수 있다는 발견에 관계없이 디코더 기능을 준수한다. 다시 말해서, 디코더의 불필요한 재초기화를 피할 수 있다.
본 발명의 예시적 실시예들에 따르면, 파일에 저장된 비디오 데이터가 유연하고/또는 효율적으로 디코딩될 수 있다. 따라서 비디오 데이터의 인코딩 및/또는 디코딩 과정에서 연산 리소스 및/또는 메모리 리소스를 효율적으로 활용할 수 있게 되는 효과가 있다. 아울러, 디코더 초기화가 유연하게 처리될 수 있다.
첨부된 도면을 참조하여 본 발명의 실시예들을 보다 구체적으로 설명한다. 도면 중,
도 1은 파일 파서 및 파일의 일 예를 보여준다.
도 2는 파일 생성기의 일 예를 보여준다.
도 3은 파일의 일 예를 보여준다.
도 4는 다중 트랙 시나리오를 위한 파일 파서의 일 예를 보여준다.
도 5는 파일 파서와, 트랙 그룹을 사용하는 파일의 일 예를 보여준다.
도 6은 파일의 다른 예를 보여준다.
도 7은 그에 따른 레이어 식별자 세트가 엔티티 그룹 구문 구조에서 시그널링되는, 파일 및 파일 파서의 일 예를 보여준다.
도 8은 엔티티 그룹 구문 구조를 사용하는 파일 파서 및 파일의 일 예를 보여준다.
도 9는 엔티티 그룹 구문 구조를 갖는 파일의 일 예를 보여준다.
도 10은 엔티티 그룹 구문 구조를 사용하는 파일 파서 및 파일의 일 예를 보여준다.
도 11은 파일 파서와, 다중 트랙 그룹을 사용하는 파일의 일 예를 보여준다.
도 12는 다중-레이어 비디오 스트림의 일 예를 보여준다.
도 13은 파일 파서 및 파일의 다른 예를 보여준다.
도 14는 샘플 그룹 정보를 사용하는 파일 파서 및 파일의 다른 예를 도시한 도면.
도 15는 서브트랙 구문 구조를 사용하는 파일 파서 및 파일의 일 예를 보여준다.
도 16은 서브샘플 구문 구조를 사용하는 파일 파서 및 파일의 일 예를 보여준다.
도 17은 파일 파서와, 다중 트랙을 갖는 파일의 일 예를 보여준다.
도 18은 파일 파서와, 다중 트랙을 갖고 샘플 그룹 정보를 사용하는 파일의 일 예를 보여준다.
도 19는 파일 파서와, 다중 트랙을 갖고 동작 포인트 샘플 그룹 정보를 사용하는 파일의 일 예를 보여준다.
도 20은 다중 레이어 비디오 스트림의 샘플들의 그룹핑의 일 예를 보여준다.
도 21은 파일 파서와, 다중 트랙을 갖고 레이어 식별자 세트를 사용하는 파일의 일 예를 보여준다.
도 22는 파일 파서와, 다중 트랙을 갖고 레벨 인덱스를 사용하는 파일의 일 예를 보여준다.
도 23은 파일 파서와, 다중 트랙과 샘플 그룹 정보를 갖는 파일의 일 예를 보여준다.
도 24는 클라이언트와 매니페스트 파일의 일 예를 보여준다.
도 25는 다른 실시예에 따른 파일 파서 및 파일을 보여준다.
도 26a 내지 26c는 트랙들 간 스위칭의 예들을 보여준다.
도 27은 다른 실시예에 따른 파일 파서 및 파일을 보여준다.
아래에서 본 발명의 실시예들을 구체적으로 설명하지만, 이러한 실시예들은 매우 다양한 비디오 코딩 개념으로 구현될 수 있는 많은 적용 가능한 개념들을 제공한다는 것을 이해해야만 한다. 본 명세서에서 설명하는 특정 실시예들은 단지 본 발명의 개념을 구현하고 사용하는 특정 방식을 예시하는 것에 지나지 않으며, 실시예들의 범위를 한정하지 않는다. 다음 설명에서는, 본 발명의 실시예들을 매우 구체적으로 설명하기 위하여 복수의 세부사항들을 제시한다. 그렇지만 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에게는 이러한 특정 세부사항들이 없이도 다른 실시예들을 실시할 수 있다는 것이 자명할 것이다. 다른 예에서는, 본 명세서에 설명된 예들이 모호해지는 것을 피할 수 있도록, 주지된 구조 및 장치를 상세하기 묘사하기보다 블록도 형태로 제시한다. 또한, 본 명헤서에서 설명된 서로 다른 실시예들의 특징들은, 달리 구체적으로 언급되지 않는 한, 서로 결합될 수 있다.
실시예들에 대한 다음 설명에서, 동일하거나 유사한 요소 내지 동일한 기능을 갖는 요소들은 동일한 참조부호를 부여하거나 동일한 명칭으로 식별하고, 동일한 참조 번호를 부여하거나 동일한 명칭으로 식별되는 요소에 대해서는 중복된 설명을 가급적 생략한다. 따라서 동일하거나 유사한 참조번호를 가지거나 동일한 명칭으로 식별되는 요소들에 대한 설명은 서로 교환될 수 있으며 서로 다른 실시예들에서 서로 적용될 수 있다.
도 1 및 도 2와 관련하여 각각 제시된 비디오 디코더와 연계된 파일 파서와, 비디오 인코더와 연계된 파일 생성기에 대한 설명으로, 도면에 대한 다음 설명을 시작한다. 도 1의 파일 파서와 도 2의 파일 생성기는 본 발명의 실시예들이 구축되는 프레임웍의 일 예를 제공한다. 그 다음, 본 발명의 개념에 따른 실시예들의 설명이, 어떻게 그와 같은 개념들로부터 도 1의 파일 파서와 도 2의 파일 생성기가 구축될 수 있는지에 대한 설명과 함께 제공된다. 그렇지만 후속하는 도 3 및 뒤이은 도면들과 관련된 실시예들을 사용하여, 도 1 및 도 2와 관련하여 설명된 프레임웍에 따라 동작하는 것이 아닌 파일 파서 및 파일 생성기를 형성할 수도 있다.
0. 도 1에 따른 파일 파서(10) 및 도 2에 따른 파일 생성기(20)
도 1은 비디오 디코더(17)와 연계된 파일 파서(10)의 일 예를 보여준다. 파일 파서(10)는 파일(110)을 받아들이고, 파일(110)을 토대로 비디오 비트스트림(190)을 생성한다. 파일(110)은 비디오 파일, 파일 데이터, 비디오의 파일 등으로 지칭될 수도 있다. 비디오 비트스트림(190)은, 디코딩된 픽처 시퀀스(18)를 획득할 수 있도록, 비디오 비트스트림(190)을 디코딩하는 비디오 디코더(17)에 제공된다. 파일 파서(10)는 상기 파일을 수신하는 임의의 수단을 나타낼 수 있다. 예를 들어, 파일 파서(10), 디코더(17) 및 플레이어(19) 중 하나 이상 또는 모두는 하나의 공통된 디바이스의 일부일 수 있다. 즉, 비디오 비트스트림(190)을 수신하는 엔티티는 비디오 디코더(17)일 수도 있고, 비디오 디코더(17)를 포함하는 비디오 플레이어일 수도 있다. 마찬가지로, 파일 포맷 파서(10) 자체는 비디오 디코더(17) 및/또는 비디오 플레이어 및/또는 DASH 클라이언트 등과 같은 애플리케이션과 함께 하나의 엔티티를 형성할 수 있다. 파일 파서(10)에 의해 생성되는 비디오 비트스트림(190)은 파일(8)의 컨텐트 전체 또는 발췌된 일부를 포함할 수 있다.
상기 파일(110)은 코딩된 비디오 데이터의 샘플들(130)을 포함하며, 상기 코딩된 비디오 데이터는 예컨대 잔여 샘플들 및 예측 모드, 움직임 벡터 등이 실제로 코딩된 데이터이다. 예를 들어, 샘플(130)은 파일(110) 내에 코딩된 비디오 시퀀스의 코딩된 픽처를 포함하거나, 코딩된 픽처의 슬라이스나 타일과 같은 코딩된 픽처의 일부를 포함한다. 예를 들어, 샘플(130)은 하나 이상의 비디오 코딩 레이어(VCL) 네트워크 추상화 레이어(NAL) 유닛을 포함할 수 있고, 이들 각각은 코딩된 픽처의 슬라이스나 타일과 같은 코딩된 픽처의 일부를 포함할 수 있다. 다시 말해서, 샘플(130)은 코딩된 픽처 전체를 지칭할 수도 있고, 그 일부를 지칭할 수도 있다. 후자의 경우에는, 코딩된 픽처를 다수의 샘플들(130)이 함께 시그널링할 수 있다. 파일(110)은 코딩된 비디오 데이터가 분산되어 있을 수 있는 하나 이상의 트랙, 예컨대 도 1에 도시된 트랙(121)을 포함할 수 있다.
파일(110)은 설명 데이터(descriptive data)를 더 포함할 수 있다. 설명 데이터는 파일(110)에서 시그널링되는 코딩된 비디오 데이터의 구조, 코딩된 비디오 데이터 내의 의존성, 코딩된 비디오 데이터의 디코딩을 위한 정보, 및/또는 코딩된 비디오 데이터의 파싱을 위한 정보를 나타낼 수 있다. 설명 데이터는 샘플들(130)과 함께 대역내(in-band) 시그널링될 수 있다. 예를 들어, 샘플(130)은 설명 데이터(115), 예컨대 파라미터 세트를 포함할 수 있다. 대역내 설명 데이터는 그것이 속하는 샘플(130)의 코딩된 비디오 데이터를 참조할 수 있고, 선택적으로 그 샘플과 연관된 추가적인 샘플들을, 예컨대 참조를 통해, 참조할 수 있다. 예를 들어, 대역내 설명 데이터(115)는 비-VCL NAL 유닛, 예컨대 SEI NAL 유닛 또는 파라미터 세트(PS) NAL 유닛에서 시그널링될 수 있다. 추가적으로 또는 대안으로서, 설명 데이터는 대역외에서(out-of-band) 시그널링될 수 있다. 예를 들어, 설명 데이터는 선택적으로 트랙(121)의 일부일 수 있는 샘플 엔트리(117)에서 시그널링될 수 있다. 더욱이, 파일(110)은 파일 레벨에서, 즉 메타박스(meta box)와 같이 트랙(121)의 일부가 아니라 하나 이상의 트랙(121)에 추가하여 설명 데이터(116)를 포함할 수 있다.
파일 파서(10)는 파일(110)의 설명 데이터 또는 그 일부를 파싱하고, 코딩된 비디오 데이터 또는 그 일부를 설명 데이터 또는 그 일부와 함께 비디오 비트스트림(190)에 삽입함으로써 비디오 비트스트림(190)을 도출한다. 예를 들어, 파일 파서(10)는 샘플들(130)의 디코딩 순서에 따라 샘플(130)들을 비디오 비트스트림(190)에 삽입할 수 있다. 또한, 파일 파서(10)는 샘플들(130)을 디코딩하는 데 필요한 비디오 비트스트림(190) 상의 위치에 설명 데이터를 삽입할 수 있다.
파일(110)은 디코딩가능한 비디오 스트림을 추출하기 위한 여러 선택지를 제공할 수 있다. 즉, 파일(110)의 코딩된 비디오 데이터를 토대로 재생을 수행하는 방식에는 다수가 있다. 디코딩가능한 비디오 스트림들 각각은 샘플들(130) 세트를 포함할 수 있다. 스트림들 중 하나는 파일(110)의 전체 코딩된 비디오 데이터를 포함할 수 있는 반면에, 다른 스트림들은 샘플들(130)의 부분집합을 포함하는 서브-스트림들일 수 있다. 예를 들어, 파일(110)의 트랙은 다른 트랙들과 독립적으로 디코딩 즉 재생될 수 있는 서브-스트림을 포함할 수 있다. 즉, 상기 트랙은 디코딩가능한 비디오 스트림을 생성하는 데 필요한 모든 샘플들과 파라미터 세트들을 포함할 수 있다. 트랙의 다른 예는, 다른 트랙들과 독립적으로는 디코딩될 수 없는, 코딩된 비디오 데이터의 서브-스트림을 포함할 수 있다. 예를 들어, 트랙의 서브-스트림(예컨대 서브-스트림은, 예컨대 상기 서브-스트림에 속하거나 상기 서브-스트림이 필요로 하는 샘플들을 표시함으로써, 예컨대 하나 이상의 레이어 및/또는 하나 이상의 시간적 레이어를 참조함으로써, 트랙의 파라미터 세트에 의해 정의됨)은 추가적인 트랙의 샘플들을 필요로 할 수 있으므로 추가적인 트랙에 의존할 수 있다. 또한, 코딩된 비디오 데이터의 서브-스트림은 독립적인 또는 종속적인 서브-스트림들 자체를 포함하거나 정의할 수 있는 다수의 트랙들을 포함할 수 있다. 다수의 트랙들을 기초로 하는 비디오 비트스트림(190)의 생성은 각각의 트랙들 내지 서브-스트림들의 공동 디코딩(joint decoding)으로 지칭될 수 있다. 예를 들어, 파일(110)의 상이한 디코딩가능한 비디오 스트림들은 상이한 품질(예컨대, 프레임 레이트, 해상도)로 동일한 컨텐트를 시그널링할 수 있고/있거나, 예를 들어 상이한 시야각을 사용자에게 제공하기 위하여, 상이한 서브-픽처들을 시그널링할 수 있다. 다시 말해서, 파일(110)에서 디코딩 가능한 스트림을 선택함으로써, 비디오 스트림은 확장 가능하거나(scalable) 타일링될(tiled) 수 있다.
예를 들어, 파일(110) 내의 디코딩가능한 비디오 스트림은 특정 비디오 스트림에 속하는 샘플들을 표시함으로써 정의될 수 있다. 위에서 언급한 바와 같이, 파일(110)의 샘플들(130)은 파일(110)의 트랙(121)에 속할 수 있으며, 샘플들은 트랙별로 선택될 수 있다. 또한, 샘플들(130)은, 파일(110)에서 시그널링되는, 코딩된 비디오 데이터의 하나 이상의 레이어들 중 하나와 연관될 수 있다. 추가적으로 또는 대안으로서, 샘플들(130)은 하나 이상의 시간적 레이어들 중 하나와 연관될 수 있으며, 상기 시간적 레이어들은 시간적으로 상보적 시점에 대한 픽처를 포함할 수 있어서, 비디오 스트림의 프레임 레이트는 비디오 스트림에 대해 선택된 시간적 레이어의 개수에 따라 달라질 수 있다. 따라서 비디오 스트림은, 예컨대 하나 이상의 레이어 및/또는 하나 이상의 시간적 레이어 및/또는 하나 이상의 트랙을 선택함으로써, 정의될 수 있다.
코딩된 비디오 데이터(12)의 재생을 위한 선택지들 사이의 결정은 비디오 디코더(17) 또는 비디오 플레이어 또는 일부 애플리케이션과 같은 외부 수단으로부터 파일 파서(10)에 제공되거나, 파일 파서(10) 자체에 의해 이루어질 수도 있고, 파일 파서(10)는 적절하게 비디오 비트스트림(190)을 제공할 수 있다. 예를 들어, 파일 파서(10)는 비디오 디코더(17)의 성능을 나타내는 동작 포인트(operation point)에 기초하여 서브-스트림을 선택할 수 있다. 따라서 파일 파서(10)는, 선택된 비디오 비트스트림에 대한 코딩된 비디오 데이터(12)의 샘플들 세트(130)와 설명 데이터를 비디오 스트림(190) 내에 포함시킴으로써, 비디오 스트림(190)을 발생한다.
다시 말해서, 파일 파서라는 용어는 파일을 수신하고 처리하여 처리 결과를 디코더(여기서는 비디오 디코더)에 공급하는 임의의 수단을 지칭할 수 있으며; 파일의 발췌된 일부 즉, 파라미터 세트들을 대역내에 가지는 비디오 비트스트림 또는 파라미터 세트들을 대역외에 수반하는 비디오 비트스트림의 수신자는 비디오 디코더, 또는 비디오 디코더를 포함하는 비디오 플레이어일 수 있다. 마찬가지로, 파일 파서 자체는 비디오 디코더 및/또는 비디오 플레이어 및/또는 DASH 클라이언트 등과 같은 애플리케이션과 함께 하나의 엔티티를 형성할 수 있다.
선택적으로, 파일(110)은 클라이언트 장치(9)에 의해 파일 파서(10)에 제공될 수 있다. 클라이언트 장치(9)는 서버로부터 파일(110)을 다운로드할 수 있다. 예를 들어, 클라이언트 장치(9)는 DASH 클라이언트와 같은 애플리케이션일 수 있다. 클라이언트 장치(9)는 MPD 파일과 같은 매니페스트 파일을 서버로부터 수신할 수 있으며, 상기 매니페스트 파일은 서버로부터 다운로드 가능한 각각의 미디어 표현들에 대한 복수의 설명을 포함한다. 매니페스트 파일은 어떤 파일들(예컨대, 파일(110))이 미디어 표현에 필요하고 어디에서 이 파일들을 다운로드할지를 설명할 수 있다. 예를 들어 미디어 표현은, 위에서 설명한 바와 같이, 디코딩가능한 비디오 스트림 또는 코딩된 비디오 시퀀스의 서브-스트림을 지칭할 수 있다. 따라서 클라이언트(9)는 소정의 동작 포인트(102)에 따라 다운로드할 하나 이상의 파일을 선택할 수 있다. 매니페스트 파일은 미디어 표현의 비디오 비트스트림에 대한 제약조건 또는 타이어(tier), 프로파일, 레벨 정보를 선택적으로 기술할 수 있다.
도 2는 비디오 인코더(27)에 연계된 파일 생성기(20)의 일 예를 보여준다. 비디오 인코더(27)는 비디오 비트스트림(28)을 생성하며, 이에 기초하여 파일 생성기(20)는 파일(110)을 생성한다. 비디오 스트림(28)은 비디오 비트스트림과 유사할 수 있으며, 일부 예에서는 동일할 수도 있다. 비디오 스트림(28)과 대조적으로, 도 1의 비디오 스트림(110)은 예컨대 파일(8)의 컨텐트의 일부만을 포함할 수 있으며, 비디오 비트스트림(28)은 파일(8)의 코딩된 비디오 데이터 전체를 포함할 수 있다.
섹션 1 내지 섹션 4에 설명된 개별 실시예들의 맥락에서 파일 파서 및 파일에 대한 설명에 초점을 맞출 수 있지만, 이러한 설명은 각각의 파일 생성기들, 예컨대 도 2의 파일 생성기(20)의 프레임웍 내에 있는, 각각의 파일 생성기들에 대한 설명으로도 이해될 수 있음을 유의해야 한다. 파일 파서의 각 실시예에 대하여, 파일 파서에 의해 파싱되어야 하는 정보와 데이터를 파일 안에 삽입하는 파일 생성기에 대한 상응한 실시예가 있다. 예를 들어, 파일 파서에 의해 파일에서 도출되는 정보, 예컨대 파일 내에 있는 코딩된 비디오 데이터를 설명하는 정보가 파일 파서에 상응하는 파일 생성기에 의해 파일 내에 삽입되어야 한다는 것은 분명하다. 예를 들어, 파일 생성기는 비디오 인코더(27)로부터 각각의 정보를 획득하고, 비디오 인코더(27)가 제공한 코딩된 비디오 데이터를 검사함으로써 설명 데이터와 같은 정보를 도출할 수 있다.
다수의 트랙들에 또는 다수의 샘플 엔트리들을 사용하여 비디오 데이터를 저장할 필요가 있는 애플리케이션이 많이 있다.
다수의 트랙들이 요구되는 사례들의 예로는, 확장 가능한 비트스트림들 또는 타일링된 비트스트림들의 소비/전송을 들 수 있다. 이러한 경우에, 소비되는 비디오 데이터는 클라이언트 성능(예컨대, 허용가능한 해상도), 처리능력 특성(예컨대, 고비트율 또는 저비트율 비디오를 스트리밍할 수 있는지), 또는 사용자의 방향 내지 관심영역(RoI)에 맞출 수 있게 서브픽처라고도 하는 타일들 내지 사각형 영역들의 다른 세트가 재생되는 경우의 사용자의 RoI 또는 뷰포트와 같은 다양한 인자들에 의존한다.
다중 트랙 시나리오를 위해서는 해결되어야 할 이슈들이 여러 가지 있다. 먼저, 생각해볼 수 있는 두 가지 시나리오는 다음과 같다.
A. 여러 트랙들이 함께 공동 비트스트림을 제공함: 확장 가능하거나 타일링된 트랙들을 사용하는 경우. 이 경우 비디오 비트스트림은 여러 트랙에서 추출된다.
B. 여러 트랙들 중에서 단일 트랙이 비트스트림을 제공함: 트랙들이 예컨대, 상이한 해상도, 비트율 등을 가지는 경우. 이 경우 비트스트림은 하나 또는 다른 트랙의 샘플을 추출하여 생성된다.
케이스 A)의 경우, SVC 및 SHVC와 같은 이전의 확장 가능한 비디오 코딩 표준들에 대해 제공되었던 상이한 솔루션들이 존재한다. 한편, 이른바 추출기를 사용할 수 있다. 종속 트랙에 있는 샘플에 "추출기"라는 구성이 포함되어 있는 경우, 여기에는 "추출기" 구성을 추출하고 현재 트랙이 의존하는 트랙들로부터의 샘플들로 대체하는 방법에 대한 일종의 지침이 포함되어 있다. 한 가지 대안은, "추출기" 구성을 요함이 없이, 필요한 샘플들을 여러 트랙에서 추출하여 비디오의 액세스 단위를 생성하는 방법을 명시하는 암시적 재구성 메커니즘을 사용하는 것이다.
섹션 1과 2는 비트스트림에 대한 다중-트랙 솔루션들이 캡슐화되고 캡슐화 해제되는 방법을 설명하는 실시예들을 포함한다.
케이스 B)의 경우, 일반적으로 한 트랙에서 다른 트랙으로의 스위칭이 랜덤 액세스 포인트, 즉 AVC용 IDR, HEVC용 IDR, CRA 및 BLA에서 행해진다. 그렇지만 섹션 3에 설명하는 바와 같이, 더 높은 단위(granulity)로 스위칭할 수 있도록 하는 경우의 이점이 있다.
상이한 샘플 엔트리들이 요구되는 케이스들의 예로는 상이한 코덱들로 인코딩되거나, (예컨대 광고 삽입으로 인하여) 동일한 코덱으로 인코딩되지만 프로파일이 상이한 서브-스트림들을 포함하는 트랙을 들 수 있다. 심지어, 코덱과 프로파일이 동일하기는 하지만, 샘플들과 함께 트랙 레벨에서 대역내 저장이 허용되지 않지만 샘플 엔트리들에 저장되는 일부 하이 레벨 메타데이터(예컨대, 메시지)가 포함된 서브-스트림들을 포함하는 트랙도 있다. 후자의 경우, 스트림 내에서 해당 메타데이터를 동적으로 변경할 수 있으려면, 일부 시나리오에서는 바람직하지 않지만 다중-트랙으로 작업하거나, 트랙 재생 중에 메타데이터를 동적으로 변경하는 여러 샘플 엔트리들이 있어야 한다.
그렇지만 샘플 엔트리를 변경하려면 디코더를 리셋해야 하는데, 이는 일부 게이스에서는 바람직하지 않을 수 있다. 예를 들어 코덱이 변경되면 디코더를 리셋할 수 있겠지만, 해당 메타데이터만 변경하고 디코딩 프로세스는 계속 실행할 수 있으려면, 디코더를 리셋하지 않는 것이 좋다. 섹션 4는 이와 관련된 실시예들을 설명한다.
1. 도 3 내지 도 11에 따른 파일 파서(100) 및 파일(110)
섹션 1의 개념의 예들은 다중-트랙 접근 방식을 사용하는 계층화된 VVC 비트스트림을 참조할 수 있다. 섹션 1의 실시예들은 제1 측면에 따를 수 있다.
VVC는 단일 계층 디코딩과 동일한 수단으로 확장성(SNR, 공간적, 멀티-뷰, …)을 지원한다. 이는, 프로파일 타이어 레벨로 표시된 요구 성능이 특정 값을 초과하지 않는 한 어떤 VVC 디코더든지 다중-레이어 스트림을 디코딩할 수 있다는 것을 의미한다.
ISO-BMFF에서의 계층화된 다기능 비디오 코딩(Versatile Video Coding)의 구현은 SVC 및 SHVC와 같은 이전의 확장 가능한 표준의 설계 원칙에 따라 행해질 수 있다.
이를 위해서는 새로운 샘플 엔트리 타입, 예컨대 'vvc2' 및 'vvi2'를 정의해야 한다. 'tref' 박스로 샘플 종속성을 나타내는 트랙에서의 이러한 타입의 샘플 엔트리는 확장 가능한 VVC 비트스트림 생성을 위하여 이 트랙이 의존하는 트랙들의 추가 처리를 필요로 한다. 이는 SVC 및 VVC와 같은 이전 표준들과 유사한다.
앞에서 이미 언급했듯이, 이것은 종속 샘플들을 나타내는 "추출기"를 사용해서, 또는 "추출기"가 필요하지 않은 암시적 재구성(implicit reconstruction) 프로세스에 의해 행해질 수 있다.
도 3은 암시적 재구성을 위한 파일 구조의 일 예를 보여준다. 도 3의 파일 구조는 파일(110)의 예를 나타낼 수 있으며, 이 파일(110)은 섹션 0에 설명한 바와 같은 파일(110)에 선택적으로 대응할 수 있다. 도 3의 예에 따르면, 파일(110)은 3개의 트랙(121), 즉 참조부호 1210으로 참조되는 트랙 0, 트랙 1(참조부호 1211), 및 트랙 2(참조부호 1212)을 포함한다. 도 3은 3개의 트랙들, 즉 Track0(기본 레이어), Track1(향상 레이어 1) 및 Track2(향상 레이어 2)에 대하여 어떻게 암시적 재구성이 작동하는지를 보여준다. 암시적 재구성 프로세스는, SHVC에서 동작 포인트 정보 'oinf' 샘플 그룹으로 행해지는 것과 유사하게, 트랙과 동작 포인트의 연관을 필요로 한다. 이 샘플 그룹은 모든 동작 포인트들에 존재하는 레이어(즉, 기본 레이어)를 포함하는 하나의 트랙에만 저장된다. 아래 예에서는 두 개의 샘플 그룹들이 표시된다. 샘플 그룹들은 샘플 그룹 박스 내에 두 그룹을 열거하는 'spgd'(sample group description box: 샘플 그룹 설명 박스) 박스로 표현된다. 'sbgp'(sample to group box: 샘플 대 그룹 박스) 박스는 기본 레이어 트랙 내의 샘플들을 이 예에서 이들 두 그룹 중 하나에 속하는 것으로 마킹한다. 그러면, 이 레이어에 의존하는 레이어들이 있는 나머지 트랙들은 종속 트랙임을 나타내는 트랙 참조를 포함하고, 'oref'이라는 참조 타입을 표시하여 해당 트랙들이 암시적 재구성 프로세스를 사용하여 재구성되거나 재구성될 수 있다는 것과 하위 레이어 트랙들에 의존한다는 것을 나타낸다.
그 다음, 암시적 재구성 프로세스에는 어떤 레이어들 그리고 어떤 트랙들이 동작 포인트에 속하는지 파악하고 관련 트랙들 각각에서 샘플들을 가져오는 것이 포함된다. 이 모든 정보는 현재 'oinf' 샘플 그룹 설명 박스에서 수행된다. 이 박스는 언제 샘플이 샘플 그룹(동작 포인트)에 속하는지와, 해당 동작 포인트 어떤 레이어들이 필요한지를 알려준다. 동작 포인트에 필요한 일부 트랙들은 동작 포인트에 필요하지 않은 추가 레이어들을 가질 수 있으며, 따라서 일부 NAL 단위는 추출된 비트스트림에서 제거될 필요가 있다. 또한 'oinf' 샘플 그룹은 하나의 트랙에만 존재하고, 해당 트랙 내의 샘플들은 해당 샘플 그룹에 동적으로 매핑될 수 있으며, 따라서 다른 트랙에서의 동일한 디코딩 시간을 가진 샘플들을 다른 동작 포인트로 매핑시킬 수는 없다.
샘플을 샘플 그룹에 매핑시키는 트랙 내의 역동성은 다음:
Figure pct00001
샘플 그룹 매핑(sbgp 박스)을 위한 테이블들이 파싱되어야 하므로, 불필요하고 복잡함
Figure pct00002
동일한 디코딩 시간의 샘플들이 동일한 동작 포인트에 속하므로, 충분히 유연하지 않음
중 하나에 해당할 수 있기 때문에, 다른 접근 방식이 바람직하다.
도 4는 파일 파서(100)의 예를 보여주는데, 이 도면에서의 파일 파서(100)는 섹션 0에서 설명한 파일 파서(10)에 선택적으로 상응할 수 있다. 즉, 섹션 1의 파일 파서(100)의 개념은 섹션 0에서 설명한 프레임웍 내에서 선택적으로 구현될 수 있다. 도 4의 예에 따르면, 도 1의 파일(110)에 선택적으로 상응할 수 있는 파일(110)은 예컨대 도 1과 관련하여 설명한 바와 같은 트랙들(121) 세트(120)를 포함한다. 트랙들 세트(121)는 코딩 비디오 시퀀스를 시그널링한다. 트랙들(121) 각각은 비디오 시퀀스의 서브-스트림을 나타내며, 상기 서브-스트림은 선택적으로 그렇지만 비필수적으로 다른 트랙들과 독립적으로 디코딩될 수 있다. 파일 파서(100)는 소정의 동작 포인트(102)를 충족시키는 트랙들 세트(120)의 트랙들 부분집합(180)을 파일(110) 내의 설명 데이터로부터 도출할 수 있다. 트랙들(121) 부분집합(180)은 파일(110) 내에 있는 트랙들(121) 중 하나 이상 또는 전부를 포함할 수 있다. 상기 소정의 동작 포인트(102)는 버퍼 크기, 비트율, 타이밍에 대한 요건과 같은 하나 이상의 비트스트림 요건, 또는 일반적으로, 파일 파서(100)에 의해 제공되는 비디오 비트스트림(190)에 대한 요건과 연관되어 있을 수 있으며, 상기 요건들은 비디오 비트스트림(190)을 디코딩하거나 재생하는 비디오 디코더(17) 또는 비디오 플레이어(19)에 의해 설정된다. 파일 파서(100)는 트랙들(121) 부분집합의 서브-스트림들(122)과 비디오 비트스트림(190)을 포워딩한다.
비디오 비트스트림(190)으로 포워딩되는 트랙(121)의 서브-스트림(122)은 트랙(121)에 표시된 모든 정보를 반드시 포함할 필요는 없지만, 예컨대 트랙(121)의 일부 파라미터 세트 또는 설명 데이터가 결여되어 있을 수 있다. 다른 예에서, 서브-스트림(122)으로 칭해지고 파일 파서(100)에 의해 비디오 비트스트림(190)으로 포워딩되는 정보는 선택적으로 그렇지만 비필수적으로 각각의 트랙(121)에 상응할 수 있다.
다시 말해서, 도 4의 파일 파서(100)에 따르면, 비디오 비트스트림(190)에 의해 표현되는 비디오 스트림은, 소정의 동작 포인트에 연관된 트랙들(121) 부분집합(180)의 각각의 서브-스트림들을 비디오 비트스트림(190)에 포함시킴으로써, 파일(110)로부터 추출될 수 있다. 도 1과 관련하여 설명한 바와 같이, 파일 파서(100)는 소정의 동작 포인트를 그 자체로서 선택하거나, 비디오 플레이어(19)의 비디오 디코더(17)에 의해 제공될 수 있는 동작 포인트에 대한 정보에 기초하여 동작 포인트를 선택할 수 있다. 아래에서는, 소정의 동작 포인트가 트랙들 세트(180)와 어떻게 연관되는지에 대한 몇 가지 예를 설명한다.
예를 들어, 동작 포인트에 속하는 트랙들은 트랙 그룹으로 함께 그룹핑된다. 이를 위한 다양한 옵션이 있다.
1) 확장 가능한 비트스트림의 모든 트랙이 동일한 트랙 그룹에 속함.
a. 트랙 그룹 정보에는 어떤 동작 포인트에 속하는지에 대한 설명이 포함됨.
(i) 트랙 자체가 그 내부에 있는 내용을 설명함: layer_id, sub_layer_id 등.
(ii) 'oinf'와 유사한 방식으로, 트랙 그룹 설명이 동작 포인트를 정의함. 포함시킬 layer_ids 등과 함께 동작 포인트 정의. 다른 실시예에서, 이 정보는 일반적으로 행해지는 바와 같이 트랙 그룹에 속하는 모든 트랙과 함께 전달되는 것은 아니지만, (예컨대, 엔티티 그룹들을 사용하여) 이 정보를 전달하기 위해 사용되는 중앙 그룹핑 정보가 있으며, 따라서 오버헤드를 감소시킨다.
예를 들어, 파일 파서(100)는 파일(110)의 설명 데이터로부터 하나 이상의 레이어 식별자, 예컨대 layer_id를 표시하는 레이어 식별자들 집합을 도출할 수 있다. 설명 데이터는 레이어 식별자들 집합을 소정의 동작 포인트와 연관시킬 수 있다. 예를 들어, 설명 데이터는 복수의 동작 포인트들 각각에 대하여 각각의 레이어 식별자들 집합을 표시할 수 있다. 파일 파서(100)는 파일(110)의 트랙들(121)의 설명 정보를 파싱하여, 트랙들(121) 각각에 대하여 해당 트랙과 연관된 하나 이상의 레이어를 도출할 수 있다. 파일 파서(100)는, 트랙이 연관되어 있는 하나 이상의 레이어들 중 하나가 소정의 동작 포인트와 관련된 것으로 레이어 식별자들 세트에 의해 확인되는 경우, 해당 트랙(121)을 비디오 비트스트림(190)으로 포워딩할 수 있다. 예를 들어, 그와 같은 시그널링은 도 5와 관련하여 설명하는 트랙 그룹 구문 구조에 의해 실현될 수 있다.
도 5는 도 4의 파일 파서(100)의 일 예를 보여주는데, 여기서 파일 파서(100)는 파일(210)을 수신할 수 있다. 파일(210)은 선택적으로 도 4의 파일(110)에 상응할 수 있다. 파일(210)은, 그 설명 데이터 내에, 트랙 그룹 구문 구조(230)를 포함한다. 파일(210)의 트랙들(121) 세트(120)는 트랙 그룹 구문 구조(230)와 연관된다. 예를 들어, 트랙들 세트(120)의 각 트랙(121)은 트랙 그룹 구문 구조(230)를 가리키는 참조를 포함할 수 있다. 트랙 그룹 구문 구조(230)는, 소정의 동작 포인트(102)를 포함하는 동작 포인트들 세트(240) 각각에 대하여, 각각의 레이어 식별자들(264) 세트(262)를 나타낼 수 있다. 다시 말해서, 트랙 그룹 구문 구조(230)는 레이어 식별자들(264) 세트(262)의 세트(260)를 포함할 수 있다. 도 5의 예에서, 레이어 식별자들 세트의 세트(260)는 레이어 식별자들의 제1 세트(2621), 제2 세트(2622), 및 제3 세트(2623)를 포함한다. 도 5에서는, 예시적인 목적상, 소정의 동작 포인트가 레이어 식별자들의 제1 세트(2621)와 연관된 것으로 표시되며, 상기 제1 세트(2621)는 제2 레이어(1211)의 샘플들과 연관된 레이어 식별자(264)를 나타낸다. 파일 파서(100)는 트랙들(121)의 설명 데이터로부터 각각의 트랙들에 포함된 레이어들을 식별하는 레이어 식별자들을 도출할 수 있어서, 하나 이상의 트랙(121)을 소정의 동작 포인트와 연관시킬 수 있다.
선택적으로, 트랙 그룹 구문 구조(230)는 각 동작 포인트에 대한 타이어(tier), 레벨, 프로파일, 및 제약조건 집합에 대한 정보를 더 포함한다. 예를 들어, 동작 지점을 설명하는 정보는 타이어, 레벨, 프로파일, 및 제약조건 집합의 조합들의 집합을 가리키는 인덱스를 통해 표시될 수 있다.
도 6은 암시적 재구성을 위한 트랙 그룹들을 갖는 파일 구조(210)의 예를 보여준다. 도 6의 파일 구조(210)는 도 5의 파일 구조(210)에 선택적으로 상응할 수 있다. 도 6은 도 5와 관련하여 설명한 바와 같이 트랙들(1210, 1211, 1212) 각각을 트랙 그룹 구문 구조에 연관시키는 트랙 그룹 참조에 대한 예를 보여준다.
예를 들어, 트랙들에 대해 표시된 트랙 참조는 예컨대 'oref'(즉, 새로운 하나의 'gref'(one gref) 트랙 그룹 참조) 트랙 참조 타입일 수 있는데, 이 타입은 암시적 재구성을 위한 트랙 그룹의 존재를 의미한다. 예를 들어, 파일 파서(100)는 트랙들(121)과 연관된 설명 데이터를 파싱할 수 있다. 파일 파서가 트랙 그룹의 존재를 표시하는 트랙 참조 타입의 트랙 참조를 검출하면, 파일 파서(100)는 비디오 비트스트림(190)의 재구성을 위하여 표시된 트랙 그룹을 파싱할 수 있다.
트랙 그룹, 예컨대 다음 구문에 의해 기술되는 트랙 그룹이 'trgr' 박스에 의해 'oinf' 타입의 트랙 그룹에 매핑되고 group_id에 매핑될 수 있다. 도 5의 예에서는, 모든 트랙이 동일한 트랙 그룹에 속한다. 그렇지만 'oinf' 박스는 다수의 동작 포인트들, 예컨대 OP0=레이어0, OP1=레이어0+레이어1, OP2=레이어0+레이어1+레이어2의 동작 포인트들을 포함할 수 있다. 그러므로, 아래에 나타낸 이 트랙 그룹핑은 트랙에서 동작 포인트로의 매핑이 이루어질 수 있도록 트랙들이 트랙 내 레이어에 대한 정보를 포함하게 할 필요가 있다.
Figure pct00003
이 경우, 파서는 각 트랙에 대한 트랙 그룹핑 정보를 파싱할 필요가 있다. 그런 다음, 파서가 어느 트랙들이 동일한 트랙 그룹핑에 속하는지 식별한 후에는, 위에서 설명한 트랙 그룹핑에 설명된 동작 포인트들 중 하나를 선택하고 어느 트랙들이 해당 동작 포인트에 대하여 필요한 레이어들을 포함하는지를 식별할 필요가 있다. 각 트랙은 레이어 정보, 즉 어떤 레이어들이 포함되어 있는지를 설명하는 추가 박스를 포함한다. 따라서 파서는 선택된 동작 포인트에 필요한 트랙들을 식별하게 되고, 이 트랙들 내에 있는 샘플들이 추출되어 디코더로 함께 전송된다.
도 7은 파일 파서(100)가 비디오 비트스트림(119)을 추출하는 파일(410)과 관련하여 파일 파서(100)의 다른 예를 보여준다. 파일(410)은, 적어도 소정의 동작 포인트(102)를 레이어 식별자들 세트(262) 예컨대 도 7의 세트(2621)에 연관시키는 정보가 파일(210)의 트랙 그룹 구문 구조(230) 대신에 파일(410)의 엔티티 그룹 구문 구조(436)에 표시된다는 점에서, 도 5와 관련하여 설명한 파일(210)과 상이하다. 따라서 도 7의 파일 파서(100)는 엔티티 그룹 구문 구조(436)를 파싱하여, 소정의 동작 포인트(102)와 연관된 레이어 식별자들 세트(2621)을 도출할 수 있다. 파일 파서(100)는 트랙들(121)의 설명 데이터를 파싱하여, 어느 트랙들(121)에서 표시 레이어들이 시그널링되는지를 도출할 수 있다. 파일 포맷 파서(100)는 트랙들, 또는 트랙들의 비디오 스트림(122)을 (예컨대, 적어도 트랙의 설명 데이터의 전부 또는 일부와 함께 코딩된 비디오 데이터를 포함하는 샘플들(130)을) 포워딩할 수 있으며, 이때 전달되는 데이터는 소정의 동작 포인트(102)와 연관된 레이어 식별자들 세트에 의해 식별되는 레이어들을 포함한다.
도 8은 도 4의 파일(110)에 상응할 수 있는 파일(510)의 일 예와 연계된 파일 파서(100)의 다른 예를 보여준다. 파일(510)은 각각이 각각의 트랙 식별자(123)와 연관된 복수의 트랙들(121)을 포함한다. 도 8에서, 복수의 트랙들은 트랙 식별자(1230)와 연관된 트랙(1210), 트랙 식별자(1231)와 연관된 트랙(1211), 및 트랙 식별자(1232)와 연관된 트랙(1212)의 세트(120)로 표현된다. 트랙들(121) 각각은 파일(510)에 의해 시그널링되는 비디오 시퀀스의 서브-스트림을 나타낸다. 파일(510)의 설명 데이터는 동작 포인트 엔티티 그룹 구문 구조(538), 예컨대 엔티티-투-그룹 박스를 포함한다. 동작 포인트 엔티티 그룹 구문 구조(538)는 소정의 동작 포인트(102)를 기술한다. 예를 들어, 동작 포인트는 group_id 파라미터를 통해 식별될 수 있다. 동작 포인트 엔티티 그룹 구문 구조(538)는 소정의 동작 포인트(102)와 연관된 하나 이상의 트랙을 나타낸다. 다시 말해서, 동작 포인트 엔티티 그룹 구문 구조(538)는 소정의 동작 포인트(102)를 식별자들(543) 세트(542)와 연관시킬 수 있으며, 식별자들(543) 각각은 트랙 식별자들(123) 중 하나와 연관되거나 이를 가리킬 수 있다.
동작 포인트 엔티티 그룹 구문 구조(538)는 파일 레벨에서 파일(510) 내에 선택적으로 저장될 수 있다. 즉, 동작 포인트 엔티티 그룹 구문 구조(538)는 트랙들(123) 중 어느 하나의 일부이어야만 하는 것은 아니며, 도 8에 도시된 바와 같이 트랙들(123)의 외부에 저장될 수 있다. 이는 도 7의 엔티티 그룹 구문 구조(436)에도 동일하게 적용되며, 일반적으로 엔티티 그룹 구문 구조들에 적용될 수 있다.
선택적으로, 동작 포인트 엔티티 그룹 구문 구조(538)는 소정의 동작 포인트(102)를 기술하는 동작 포인트 정보(550)를 포함한다. 예를 들어, 동작 포인트 정보(550)는 도 1과 관련하여 설명한 바와 같이 소정의 동작 포인트(102)에 대해 정의된 비트스트림의 프로파일, 타이어, 레벨, 및 선택적인 제약조건 집합을 표시한다. 이는 도 7의 엔티티 그룹 구문 구조(436)에도 동일하게 적용되며, 엔티티 그룹 구문 구조(436)는 동작 포인트들 세트(240)의 각 동작 포인트에 대한 동작 포인트 정보(550)를 선택적으로 포함할 수 있다.
도 8에 따른 파일 파서(100)는 동작 포인트 엔티티 그룹 구문 구조(538)를 파싱하여, 식별자들 세트(542)가 표시하는 바에 따른 소정의 동작 포인트(102)와 연관된 트랙들(121) 세트(180)를 도출할 수 있다. 파일 파서(100)는 트랙들(121) 부분집합(180)의, 예컨대 도 8에 도시된 예에서 트랙(1222)의, 서브-스트림(122)을 비디오 비트스트림(190)으로 포워딩할 수 있다.
다시 말해서, 도 5의 예에 대한 대안으로서, 도 7, 도 8과 뒤이은 도 9 및 도 10에 따르면, 비디오 비트스트림(190)으로 포워딩되어야 할 트랙들 부분집합(180)을 기술하는 정보는 동작 포인트에 속하는 트랙들과 연관된 엔티티 그룹 내에서 운반될 수 있다. 도 7의 실시예에 따르면, 엔티티 그룹과 트랙들 사이의 연관이 레이어 식별자들에 의해 표시되는 반면, 도 8 내지 도 10의 실시예들에 따르면 엔티티 그룹이 연관된 트랙들을 직접 가리킬 수 있다.
파일(510)의 예에 따르면, 동작 포인트 엔티티 그룹 구문 구조(538)는 동작 포인트 엔티티 그룹 구문 구조들의 세트 중 하나이고, 동작 포인트 엔티티 그룹 구문 구조들 각각은 각각의 동작 포인트와 연관되고 각각의 동작 포인트를 기술한다. 다시 말해서, 복수의 동작 포인트들 각각은 개개의 동작 포인트 엔티티 그룹 구문 구조에 의해 기술될 수 있다. 이 예에 따르면, 각 동작 포인트 엔티티 그룹 구문 구조는 각각의 그룹 식별자에 의해 식별될 수 있다.
파일(510)의 대안적인 예들에 따르면, 아래에서 도 10과 관련하여 설명하는 바와 같이, 동작 포인트 엔티티 그룹 구문 구조(538)는 복수의 동작 포인트들과 이들 각각과 연관된 트랙들 세트를 기술한다.
도 9는 파일(510)의 예를 도시하며, 이 파일에 따라 동작 포인트 엔티티 그룹 구문 구조(538)가 파일(510) 내에 트랙들(121) 외부의 박스 구조로, 예컨대 메타박스에, 저장된다. 도 9에 도시된 바와 같이, 엔티티 그룹을 사용하는 경우 'xxxx' 박스(예: 'oief' 오퍼레이션 포인트 정보 엔티티 그룹)가 동작 포인트들이 어떻게 보이는지를 정의하는 entityGroup으로서 정의되어, 예컨대 메타박스에, 포함된다.
예를 들어, 동작 포인트 엔티티 그룹 구문 구조(538)는 소정의 동작 포인트(102)의 속성들을 기술하는 동작 포인트 정보(550)를 포함한다. 도 10의 예와 같은 예들에서, 동작 포인트 엔티티 그룹 구문 구조(538)는 동작 포인트 엔티티 그룹 구문 구조(538)에 의해 기술되는 복수의 동작 포인트들 각각에 대한 동작 포인트 정보(550)를 포함한다. 이 경우, 동작 포인트 엔티티 그룹 구문 구조(538)는 복수의 동작 포인트들 각각과 연관된 타이어, 레벨, 프로파일, 및/또는 제약조건들 집합에 대한 정보를 포함한다. 선택적으로, 예를 들어 도 8과 관련하여 설명된 실시예들에 대하여 그러나 도 10과 관련하여 설명되는 실시예들에 대해서는 반드시 그런 것은 아니지만, 동작 포인트 엔티티 그룹 구문 구조(538)는 동작 포인트 엔티티 그룹 구문 구조(538)를 식별하는 그룹 식별자를 포함한다.
도 9에 도시된 바와 같이, 소정의 동작 포인트를 트랙들 집합과 연관시키는 정보가 동작 포인트 엔티티 그룹 구문 구조(538)에 표시되는 경우, 트랙(121)은 예컨대 'oref'(즉, 새로운 하나의 'eref'(one eref) 엔티티 그룹 참조)와 같은 트랙 참조 타입과 연관될 수 있다. 트랙 참조 타입의 존재는 동작 포인트 엔티티 그룹 구문 구조(538)와 같은 암시적 재구성을 위한 엔티티 그룹의 존재를 의미할 수 있다.
예를 들어, 파일 파서(100)는 트랙들을 파싱할 수 있고, 트랙(121)이 타입의 트랙 참조와 연관되어 있다는 발견에 기초하여, 동작 포인트 엔티티 그룹 구문 구조(538)가 존재한다는 것을 도출하고, 그에 따라 동작 포인트 엔티티 그룹 구문 구조(538)를 파싱할 수 있다.
구문 내지 동작 포인트 엔티티 그룹 구문 구조(538)의 예는 다음과 같이 주어진다.
Figure pct00004
여기서 entity_id는 track_ids를 가리킨다. 정의된/확장된 엔티티 그룹에 대한 새로운 그룹핑 타입(grouping_type)은 다음과 같을 수 있는데, 이는 동작 포인트 설명(550)의 예이다.
Figure pct00005
따라서 동작 포인트 설명(550)은 참조에 의해 엔티티 그룹 구문 구조(538)에 포함될 수 있다. 다른 예들에서, 동작 포인트 설명(550)은 엔티티 그룹 구문 구조(538)에 명시적으로 포함될 수 있다.
상기 구문은 동작 포인트마다 엔티티 그룹이 있는 경우(예컨대 도면에서 엔티티 그룹 박스 내에 있는 group_id로 식별되는 경우), 즉 트랙들이 동작 포인트에 직접 매핑되는 경우의 예일 수 있다. 예를 들어, OP0=레이어0, OP1=레이어0+레이어1, OP2=레이어0+레이어1+레이어2와 같이 각 엔티티 그룹에 대하여 하나의 동작 포인트가 존재하며, 여기서 각 동작 포인트에 대하여 각 그룹에 있는 트랙들 개수와 어떤 트랙들이 있는지와 아울러, 'oieg'에 표시된 타이어, 프로파필, 레벨 등의 동작 포인트 속성들이 명시된다.
이 경우 파서는 파일에서, 예컨대 메타박스 내에 있는, 정의된 엔티티 그룹 박스들을 파싱할 필요가 있다. 정의된 모든 엔티티 그룹 박스들 중에서, 원하는 동작 포인트에 해당하는 어느 하나가 선택된다. 엔티티 박스가 선택된 동작 포인트에 속하는 트랙들을 직접 가리키고 있기 때문에, 이 트랙들이 파싱되고 그 안에 있는 샘플들이 디코더에 함께(jointly) 전송된다.
도 10은 도 4의 파일 포맷 파서(100) 및/또는 도 8의 파일 포맷 파서(100)에 선택적으로 상응할 수 있는 파일 포맷 파서(100)의 다른 예를 보여준다. 도 10에 따른 파일 포맷 파서(100)는 도 1의 파일(110) 및/또는 도 8과 관련하여 설명한 파일(510)의 예들에 선택적으로 상응할 수 있는 파일(510)을 받아들인다. 도 10의 예에 따르면, 파일(510)은 도 8 및 도 9와 관련하여 설명한 바와 같은 동작 포인트 엔티티 그룹 구문 구조(538)의 예들에 선택적으로 상응할 수 있는 엔티티 그룹 구문 구조(538)를 포함한다. 도 10의 엔티티 그룹 구문 구조(538)는 트랙 식별자들(543) 세트(542)의 세트(540) 중 하나를 동작 포인트들 세트(240) 각각에 할당하는 정보를 포함한다. 동작 포인트들 세트(240)는 소정의 동작 포인트(102)를 포함한다. 파일 포맷 파서(100)는 파일(510) 내에 있는 설명 데이터로부터 엔티티 그룹 구문 구조(538)를 도출할 수 있다. 또한, 파일 포맷 파서(100)는 엔티티 그룹 구조(538)에 의해 소정의 동작 포인트(102)에 할당된 트랙 식별자들(543) 세트(542)로부터 소정의 동작 포인트(102)에 대한 트랙들(121) 부분집합(180)을 도출할 수 있다.
예를 들어, 트랙 식별자들 세트의 세트(540)는, 도 10에서 제1 식별자들 세트(5421), 제2 식별자들 세트(5422), 및 제3 식별자들 세트(5423)로 나타낸, 하나 이상의 트랙 식별자들 세트(542)를 포함할 수 있다. 트랙 식별자들(543) 각각은 트랙들(121)의 트랙 식별자들(123) 중 하나와 연관될 수 있다. 예를 들어, 엔티티 그룹 구문 구조(538)에 표시된 식별자들(543)은 엔티티 id(entity_id)로 지칭될 수 있다. 트랙들(121)의 트랙 식별자들(123) 트랙 id(track_id)로 지칭될 수 있다. 선택적으로, 엔티티 그룹 구문 구조(538)는 도 8 및 도 9와 관련하여 설명한 바와 같이, 동작 포인트들 세트(240)의 동작 포인트들 각각에 대하여, 각각의 동작 포인트를 기술하는 동작 포인트 정보(550)를 포함할 수 있다. 파일 파서(100)는 식별자들(543) 세트(5421)에 의해 소정의 동작 포인트(102)와 연관되도록 표시된 트랙(1212)의 비디오 서브-스트림(1222)을 포워딩할 수 있다.
또한, 엔티티 그룹 구문 구조(538)의 식별자(543)에 의해 식별되는 각 트랙(121)은 트랙의 하나 이상의 레이어들에 대한 정보를 선택적으로 포함할 수 있다. 예를 들어, 파일 파서(100)는, 소정의 동작 포인트(102)와 연관된 식별자들 세트(5421)에 의해 표시되는 트랙들 부분집합(180) 각각에 대하여, 트랙 내의 박스로부터, 트랙에 포함된 하나 이상의 레이어들을 식별하는 레이어 정보를 도출할 수 있다. 즉, 엔티티 그룹 박스 구문 구조(538)의 트랙 식별자들에 의해 식별되는 트랙들 각각은 트랙의 하나 이상의 레이어들에 대한 정보를 포함할 수 있다.
다시 말해서, 모든 동작 포인트들에 대하여 단일 엔티티 그룹과 트랙 id(엔티티 id)에 대한 매핑이 있을 수 있으며, 이에 따라 각 동작 포인트에 대한 각 레이어/트랙의 추가적인 매핑이 필요할 수 있다.
Figure pct00006
앞에서 언급한 바와 같이, 위에 표시된 것처럼 동일한 그룹 내의 모든 동작 포인트 설명들을 포함하는 이 그룹핑의 경우, 트랙에서 동작 포인트로의 매핑이 이루어질 수 있도록 트랙들이 트랙들 내의 레이어들에 대한 정보를 포함하도록 할 필요가 있다. 이 경우, 각 트랙에 포함된 것을 기술하는 또 다른 박스가 각 트랙 내에 필요하다.
이 경우 파서는, 모든 동작 포인트들을 기술하고 모든 동작 포인트를 달성할 수 있게 해주는 전체 확장 가능한 비트스트림의 트랙들을 가리키는, 단일 엔터티 그룹을 파싱할 필요가 있다. 그 다음, 파서는 위에서 설명한 엔티티 그룹 박스에 기술된 동작 포인트들 중 하나의 동작 포인트를 선택하고 해당 동작 포인트에 대하여 필요한 레이어들을 포함하는 트랙들을 식별한다. 각 트랙에는 레이어 정보, 즉 어떤 레이어들이 포함되어 있는지를 설명한 추가적인 박스가 있다. 따라서 파서는 선택된 동작 포인트에 필요한 트랙들을 식별하고, 이 트랙 내의 샘플들이 추출되어 디코더로 함께 전송된다.
도 11은 도 4의 파일 파서(100)에 상응할 수 있는 파일 파서(100)의 다른 예를 보여준다. 도 11에 따른 파서(100)는 도 4의 파일(110)에 선택적으로 상응할 수 있는 파일(310)을 받아들인다. 파일(310)은, 예컨대 트랙 그룹 타입 박스의 타입이 "oinf"이고 각각이 개별 트랙 그룹 id(track_group_id)로 식별되는, 동작 포인트 트랙 그룹들(334) 세트(332)를 포함한다. 파일(310)의 설명 데이터에 포함될 수 있는 동작 포인트 트랙 그룹들 각각은 동작 포인트들 세트 중 하나를 기술할 수 있다. 파일 파서(100)는, 트랙들(121) 각각에 대하여, 각각의 트랙(121)이 소정의 동작 포인트(302)를 기술하는 동작 포인트 트랙 그룹들 세트(332)의 동작 포인트 트랙 그룹(334)과 연관되어 있는지 여부를 파일(310) 내의 설명 데이터로부터 도출할 수 있다. 만약 그렇다면, 파일 파서(100)는 각각의 트랙을 트랙들 부분집합(180)에 선택적으로 할당할 수 있다. 즉, 각각의 트랙이 소정의 동작 포인트를 기술하는 동작 포인트 트랙 그룹과 연관되지 않은 경우와 달리, 파일 파서(100)는 이 경우에 각각의 트랙을 포워딩할 수 있다.
예를 들어, 동작 포인트 트랙 그룹들(334) 각각은 트랙 그룹 식별자, 예컨대 그룹 id로 식별될 수 있고, 파일 파서(100)는 각각의 트랙(121)에 대해, 각각의 동작 포인트 트랙 그룹(334)의 트랙 그룹 식별자의 표시로부터, 트랙들 중 하나와 동작 포인트 트랙 그룹들(334) 중 하나 사이의 연관관계를 도출할 수 있다.
예들에서, 동작 포인트 트랙 그룹들(334) 각각은 각각의 동작 포인트 트랙 그룹에 의해 기술되는 동작 포인트에 대한 타이어, 레벨, 프로파일 및/또는 제약조건 집합에 관한 정보를 포함한다.
다시 말해서 이것은, 각각이 각 동작 포인트에 상응하는 여러 트랙 그룹들과 동작 포인트에 속하는 트랙들이 자신들이 트랙 그룹에 속함을 나타내는 경우에 있어서의, 또 하나의 옵션이다. 이는 위에서 보인 첫 번째 엔티티 그룹의 경우와 유사하다. 그 경우와의 차이점은 정보가, 모든 트랙을 기술하는 별도의 박스에서가 아니라, 박스내의 각 트랙과 함께 제공된다는 것이다.
Figure pct00007
이 경우, 파서는 트랙 내에 있는 모든 트랙 그룹 박스들을 파싱할 필요가 있다. 가능한 모든 동작 포인트들 중에서 하나가 선택된다. 이 경우 트랙 그룹들과 동작 포인트들이 일대일로 직접 매핑되기 때문에, 선택된 트랙 그룹에 속하는 트랙들은 파싱되어 디코더에 함께 전송된다.
이 경우, 사용자가 상이한 동작 포인트들 중에서 공간 해상도, ROI 정보을 선택할 수 있게 하려면, 몇 가지 추가적인 메타데이터가 필요하다.
섹션 1에서 설명한 그룹핑 메커니즘은 추출된 비트스트림에 불필요한(예컨대 추가적인 레이어 id(layer_id))가 없어서 어떠한 NAL 단위도 제거할 필요가 없다는 가정 하에 구축될 수 있다. 다시 말해서, 어떤 동작 포인트에 대한 layer_id들을 포함하는 트랙들이 식별되면, 암시적 재구성을 위해 선택된 트랙들의 모든 NAL 유닛들이 유지되고 디코딩할 비트스트림을 출력하는데 사용된다. 즉, 위에서 언급된 바와 같이, 파일 파서(100)는 비디오 비트스트림(190)에서 소정의 동작 포인트(102)와 연관된 전체 트랙들(121)을 포워딩할 수 있다.
섹션 1의 실시예들은 기본 레이어가 다수의 트랙들에 걸쳐 분산되어 있는 시나리오들에도 유리하게 적용될 수 있다는 점을 유의해야 한다. 기본 레이어는 모든 동작 포인트들에 대한 조건을 충족하는 코딩된 비디오 시퀀스의 레이어를 참조할 수 있다. 다중 트랙의 경우에도 기본 레이어에 대해 섹션 1의 솔루션이 적용될 수 있는데, 동작 포인트에서 제외되거나 동작 포인트 내에 완전히 포함된 트랙들이 있기 때문이다. 즉, "하위 트랙 동작들(subtrack operations)"은 필요하지 않다.
2. 도 12 내지 도 23에 따른 파일 생성기 및 파일과, 도 24에 따른 클라이언트 및 매니페스트 파일
앞 섹션에서는 트랙들이 동작 포인트에 완전히 필요하거나 그렇지 않은 전형적인 시나리오들에 초점이 맞추어질 수 있었다.
그렇지만 이에 해당하지 않는 경우들이 있을 수 있다. 그에 대한 유효한 사용예는 디코딩되어야 할 초당 픽처 수가 비트스트림 레벨과 밀접하게 관련되어 있다는 사실에 기반한다. 예를 들어, 단일 레이어를 가지는 1920x1080 @ 32fps 비트스트림은 레벨 4에 해당하지만. 두 개의 레이어가 있는 경우에는 1920x1080 @ 16fps 비트스트림은 레벨 4를 갖고 1920x1080 @ 32fps 비트스트림은 레벨 4.1을 가진다.
비트스트림의 일부 픽처들에 대해서 레이어간 예측을 사용하는 것만으로, 훨씬 더 높은 레벨을 요하지 않고서 다중-레이어 비트스트림으로 더 높은 프레임 속도를 갖는 것이 가능하다.
예를 들어, 한 가지 가능성은 다음 도 12에 도시된 바와 같이 비트스트림에서 매 두 프레임에서 레이어간 종속성만 갖도록 하는 것이다.
도 12는 그의 종속 레이어(L1)를 디코딩하는데 완전히 필요한 것은 아닌 레이어(L0)의 일 예를 보여준다. 도 12에서, L0 및 L1은 비디오 스트림의 두 레이어들을 식별할 수 있다. 예를 들어, 레이어(L1)은 레이어(L0)의 향상 레이어(enhancement layer)일 수 있다. 즉, 레이어(L1)의 코딩된 픽처는 더 높은 해상도를 가지는 레이어(L0)의 코딩된 픽처를 시그널링할 수 있다. 더욱이, 도 4의 예에 따르면, 두 레이어들(L0, L1) 모두의 각각은 각각의 시간적 서브레이어 식별자들(Tid0, Tid1)을 사용하여 표시되는 시간적 서브레이어들을 갖는다. 예를 들어, 레이어(L0) 및 Tid0의 픽처들은 레이어(L1)의 시간적으로 병치된 픽처들을 디코딩하는데(예컨대 레어어간 예측을 위하여) 필요할 수 있다. 즉. 레이어(L1)의 픽처들은 각각의 레이어L0)의 병치된 픽처들에 의존할 수 있다. 이에 반하여, Tid1을 갖는 레이어(L1)의 픽처들은 Tid1을 갖는 레이어(L0)의 시간적으로 병치된 픽처들과는 독립적으로 디코딩될 수 있다.
위에서 설명한 비트스트림을 파일 포맷으로 캡슐화 하는데 사용할 수 있는 몇 가지 옵션이 있는데, 예를 들면 다음과 같다.
1) 단일 트랙: 샘플들이 다음을 사용하여 어떤 레벨에 할당될 수 있는 동일한 트랙 내의 모든 NAL 유닛들:
a. 샘플 그룹핑: 동작 포인트에 속하거나 속하지 않는 샘플들의 마킹
b. 하위 트랙들: 비디오의 설명 구문 요소들을 박스에 넣어서, 해당 구문의 값들을 동작 포인트에 매핑시킴
2) 다중 트랙들: 레이어당 1개의 트랙
3) 다중 트랙들(섹션 1의 솔루션으로 커버됨):
a. 레이어 0 Tid 0에 대한 1 트랙 1개
b. 레이어 0 Tid 1에 대한 1 트랙 1개
c. 레이어 1에 대한 트랙 1개
도 13은 일 예에 따른 파일 파서(600)를 보여준다. 파일 파서(600)는 도 1의 파일 파서(10)에 선택적으로 상응할 수 있다. 파일 파서(600)는 도 1의 파일(110)에 선택적으로 상응할 수 있는 파일(610)을 받아들이도록 구성된다. 파일(610)은 트랙(121)을 포함하고, 트랙(121)은 비디오 시퀀스의 샘플들 시퀀스(650)을 포함한다. 샘플들(650) 각각은 파일(610)의 복수의 비트스트림 부분들(654), 예컨대 VCL NAL 유닛들을 포함한다. 다시 말해서, 샘플들(650) 각각은 도 1의 복수의 샘플들(130)을 포함할 수 있다. 즉, 각 비트스트림 부분(654)은 하나 이상의 샘플(130)에 대응할 수 있다. 파일 파서(600) 및 파일(610)은 제2 양태에 따를 수 있다.
파일 파서(600)는 샘플들(650) 각각에서 소정의 동작 포인트(102)에 의해 요구되는 비트스트림 부분(654)의 일부(658)(예컨대, 선택 부분)을 파일(610) 내에 있는 설명 데이터로부터 도출한다. 파일 파서(600)는 트랙(121)의 샘플들(650) 각각의 비트스트림 부분들의 부분들(658)을 비디오 비트스트림(190)으로 포워딩할 수 있다. 즉, 부분들(658) 각각은 하나 이상의 샘플(130)을 포함할 수 있다. 다시 말해서 파일 파서(600)는, 파일(610)의 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는 비트스트림 부분들(654)의 부분들(또는 부분집합, 선택 부분)을 도출할 수 있다.
예를 들어, 일부 시나리오에서 전체 비트스트림은 디바이스들이 관심을 갖는 동작 포인트와 관계없이 최종 디바이스로 전송된다. 이것은 일반적으로 클라이언트가 적절한 디코딩가능한 부분집합만 다운로딩하는 점대점 스트리밍 시나리오에 일반적으로 적합하다고 할 수는 없지만, 멀티캐스트와 같은 다른 시나리오에는 유용할 수 있다. 그러므로 그와 같은 사용예에 대한 한 가지 옵션은 단일 트랙을 사용하여 전체 비트스트림을 최종 디바이스로 전송하되 그와 같은 트랙의 부분 처리를 허용하는 것이다.
첫 번째 옵션은 트랙의 파싱이 때 NAL 유닛들을 일종의 "동작 포인트"로 식별하는 것을 필요로 하고, 더 많은 NAL 유닛들을 디코더로 포워딩하는 것은 디코더 기능에 위배될 수 있으므로 디코더 기능에 따라 NAL 유닛들의 부분집합만을 추출해야 한다는 문제를 수반한다.
트랙 내에서 상이한 하위 비트스트림 액세스를 허용하는 파일 포맷 도구가 이미 있는데, 이를 여기에서는 최신기술로서 기술한다.
- FF는 레벨(하위 비트스트림의 종류)을 기술하는 레벨 할당 박스(LevelAssignmentBox: 'leva')를 이미 정의하고 있다. 이 박스에는 레벨들 각각에 대한 할당 유형을 정의하는 할당 타입('assignment_type') 플래그가 있다. 이러한 상이한 레벨들이 단일 트랙 내에 있는 경우, 상기 'assignment_type' 플래그는 다음 값들을 갖는다.
·assignment_type=0(또는 1)은 샘플 그룹핑이 사용됨을 명시함.
·assignment_type=4: 서브트랙 박스(SubTrackBox)가 있는 서브트랙들
- 트랙으로부터의 샘플들 부분을 특정 그룹으로 할당할 수 있게 해주는 샘플 그룹핑 메커니즘.
샘플 그룹 메커니즘은 샘플별로 작동하기 때문에 그다지 유연하지 않다. 즉, 이 메커니즘은 예시된 예와 상기 도 12에서 이상적으로 원하는 바대로 샘플들 부분(즉, 서브-샘플들)을 제거하지 못한다.
도 14는 도 13의 파일(610) 또는 도 1의 파일(110)에 선택적으로 상응할 수 있는 파일(710)과 연계된 파일 파서(600)의 다른 예를 보여준다. 도 14의 예에 따르면, 파일(710) 내에 있는 설명 데이터는 트랙(121)의 샘플들(650) 세트(764)를 나타내는 샘플 그룹에 관한 정보(762)를 포함한다. 도 14의 예에 따르면, 파일 파서(600)는 파일(710)로부터 샘플 그룹(762)을 도출하며, 샘플 그룹에 의해 표시된 샘플들(650) 각각의 비트스트림 부분들(654)(예컨대 샘플들(130)) 중 어느 부분(766)(즉, 부분집합)이 소정의 동작 포인트(102)에 의해 요구되는지를 검출한다. 파일 파서(600)는 샘플 그룹의 샘플들(764) 각각의 비트스트림 부분(654)의 일부(766)와, 샘플 그룹 및 비디오 비트스트림에 의해 표시되지 않은 샘플들(768) 각각의 각 비트스트림 부분(654)을 포워딩할 수 있다. 이에 반하여, 파일 파서(600)는 샘플 그룹(764)에 의해 표시된 샘플들(650)의 비트스트림 부분(654) 중에서 설명 데이터에 따르면 소정의 동작 포인트(102)에 의해 요구되지 않는 비트스트림 부분(654)의 포워딩을 생략할 수 있다. 일부 예들에서, 요구되는 비트스트림 부분이 설명 데이터에 의해 표시될 수 있는 반면, 다른 예들에서는 요구되지 않는 비트스트림 부분이 표시될 수 있다.
다시 말해서, 예를 들어 도 14의 예에 따르면, 샘플 그룹들은 서브-샘플 제거가 필요한 샘플과 그렇지 않은 샘플을 식별하는 데 사용될 수 있다. 이를 위하여, 샘플 그룹들은 파라미터화될 필요가 있으며, 부분적으로 추출될 필요가 있는 샘플들 그룹에 속하는 일부 샘플들을 어떻게 처리할지를 명시하는 추가적인 정보를 포함한다.
Figure pct00008
이 샘플 그룹핑은 그룹을 재생할 때 샘플들의 일부를 제거/무시해야 하는지를 결정한다. 예를 들어 도 12에 도시된 바와 같은 샘플의 베이스 레이어 부분을 프로파일/동작 포인트에 일치시키기 위하여 제거/무시해야 하는지를 결정할 수 있다.
위에서 설명한 샘플 그룹핑 메커니즘은 파서가 샘플의 일부를 삭제해야 하는 샘플들을 식별할 수 있게 해준다. 그렇지만 파서가 유지해야 하는 부분과 삭제해야 하는 부분이 여전히 명확하지 않을 수 있다.
도 15는 파일 파서(600)의 다른 예를 보여주는데, 이 파일 파서의 설명은 도 13의 파일 파서(600)의 설명과 도 14의 파일 파서(600)의 설명을 기초로 한다. 도 15에 따르면, 파일(710)은 서브트랙 구문 구조(870), 예컨대 "strk"를 포함한다. 서브트랙 구문 구조(870)는 비트스트림 부분 구문 요소(872)의 소정의 타입, 예컨대 레이어 식별자, 레이어 id(layer_id), 또는 시간적 서브레이어 식별자(temporal sublayer identifier)를 표시하며, 여기서 시간적 서브레이어 식별자는 시간 id(temporal_id), tid, 또는 Tid로 지칭될 수도 있다. 서브트랙 구문 구조(870)는, 소정의 타입의 비트스트림 부분 구문 요소(872)에 대하여, 샘플 그룹(762)의 샘플(764)의 비트스트림 부분이 소정의 동작 포인트(102)에 의해 요구되는지 여부를 표시하기 위한 기준으로 사용될 관련 소정의 값을 추가로 표시한다. 파일 파서(600)는 파일(710) 내의 설명 데이터로부터 서브트랙 구문 구조(870)를 도출할 수 있다. 파일 파서(600)는, 샘플 그룹(762)의 샘플들(650) 각각의 비트스트림 부분(654) 각각에 대하여, 설명 데이터로부터 각각의 비트스트림 부분(654)의 소정의 타입의 비트스트림 부분 구문 요소의 값을 도출할 수 있다. 파일 파서(600)는, 소정의 타입의 비트스트림 부분 구문 요소의 값이 소정의 값에 해당하는 경우, 소정의 동작 포인트(102)에 의해 요구되는 바에 따라 각각의 비트스트림 부분(654)을 선택적으로 처리할 수 있다.
다시 말해서, 파일 파서(600)는 레이어 식별자 또는 시간적 서브레이어 식별자에 의해 트랙(121)의 샘플들(130)의 일부를 결정할 수 있다.
다시 말해서, 어떤 NAL 유닛을 유지하고 버릴 것인지에 대한 정보는 서브트랙들을 사용하여 운반될 수 있다.
서브트랙들은 'strk' 박스로 정의된다. 파일 구조는 다음과 같을 수 있다.
- SubTrackBoxes('strk')는 서브트랙당 하나이며, 샘플 그룹핑과 함께 사용됨
○ 서브트랙 정보 박스 'stri'를 포함함
● 예를 들어 서브트랙 id를 포함함
○ 서브트랙 샘플 그룹 박스 'stsg'를 보유하는 필수적인 서브트랙 정의 박스('strd')와 함께 사용됨
● 명시된 서브트랙의 샘플 그룹에 대한 관계를 정의함
서브트랙들은, 일정 정도는, 순응하는 하위 비트스트림으로 이어지는 NAL 유닛들 그룹에 대한 설명이다. 어떤 NAL 유닛들이 서브트랙에 속하는지를 식별하기 위해서는 매핑이 필요하다. 일반적으로 이것은 비디오 자체의 구문 요소들에 의해 행해진다. 예를 들어, SVC의 경우, 서브트랙 정의 박스 'strd' 박스 내에서 어떤 구문 요소들이 어떤 값을 갖는지에 대한 정보(예컨대 dependency_id, quality_id 등)를 운반하는 SVC 서브트랙 레이어 박스 'stl'이 정의된다. 그와 같은 박스의 확장에 대한 정보를 고려하는 경우, layer_id와 temporalID가 포함될 수 있다.
이는, 앞에서 설명한 샘플 그룹핑으로 먼저 부분적으로 제거될 필요가 있는 샘플(부분적으로 처분할 수 있는 샘플)이나 삭제할 필요가 있거나 디코더로 보내어지지 않을 일부 NAL 유닛을 식별하는 파서가 서브프택에 있는 정보를 파싱하고, 서브트랙 정의 박스에 있는 정보에 따라 NAL 유닛들의 구문 값들(예컨대 layer_id 및 temporalID)을 파싱하고, 그들 값에 따라 이를 유지하거나 디코더로 보내기에 앞서 삭제한다는 것을, 의미한다.
서브트랙들을 사용하려면, 파서가 아래에 포함된 미디어의 일부 구문 구조를 이해해야만 한다. 상기 구문 구조들은 컴팩트하지만 파서가 더 복잡해지는 것을 수반한다. 대안으로서, 서브샘플 정보 박스에 더 자세한 방식으로 유사한 정보가 포함될 수 있다. 서브트랙에 구문 값들의 할당을 기술하는 대신에, 서브샘플 정보 박스는 각 샘플에 대하여 바이트 범위를 색인화하고 샘플보다 작은 부분을 식별하는 테이블이다.
도 16은 파일 파서(600)의 다른 예를 보여준다. 도 16의 파일 파서(600)는 예컨대 도 15의 구현예에 대한 대안으로서 도 14의 파일 파서(600)를 구현하는 것일 수 있다. 도 16의 예에 따르면, 파일(710)은 서브샘플 구문 구조(974), 예컨대 "subs"를 포함한다. 서브샘플 구문 구조(974)는 소정의 동작 포인트(102)와 소정의 동작 포인트(102)에 의해 요구되는 샘플들에 대한 트랙의 부분들 내에 있는 각각의 바이트 범위들 사이의 매핑 규칙을 표시한다. 다시 말해서, 매핑 규칙은 샘플 그룹(752)의 샘플들 각각을 샘플 그룹(762)에 의해 표시된 각각의 샘플을 포함하는 트랙의 부분 내에 있는 바이트 범위와 연관시킬 수 있다. 파일 파서(600)는 파일(710)로부터 서브샘플 구문 구조(974)를 도출할 수 있고, 각각의 비트스트림 부분이 매핑 그룹에 의해 표시된 각각의 샘플의 바이트 범위의 일부인 경우, 샘플 그룹의 각 샘플에 대하여, 각각의 샘플의 각 비스트트림 부분에 대하여, 소정의 동작 포인트에 의해 요구되는 바에 따라 각각의 비트스트림 부분을 선택적으로 처리할 수 있다.
다시 말해서, 서브샘플 정보 박스를 사용하여 이 정보를 운반할 수 있고 subSampleInformationBox로 서브트랙을 매핑시킬 수 있다. 이러한 솔루션의 이점은 매핑이 비트스트림 내에 있는 일부 특정 구문 값을 기반으로 하는 것이 아니고 매핑이 단순하게 명시적으로 시그널링되어 플레이어 측에서 비디오 비트스트림을 더 깊게 파싱할 필요가 없다는 것이다.
이 경우 파서는, 위에서 설명한 샘플 그룹핑를 사용하여, 부분적으로 처분가능한 샘플들을 먼저 식별한다. 그 다음, 파서는 서브샘플 정보 박스들을 파싱하고, 주어진 동작 포인트에 속하는 샘플들 부분(바이트 범위를 기준으로)을 식별한다. 그 다음, 파서는 "부분적으로 처분할 수 있는" 샘플들의 관련 부분들만 디코더에 보낸다.
이 경우 SubSampleInformationBox의 codec_specific_parameters 필드는 다음과 같다.
Figure pct00009
도 1에 표시된 바와 같이, 파일(110) 또는 파일(610, 710)은 각각 클라이언트 장치(9)에 의해 파일 파서(10)에 선택적으로 제공될 수 있다. 클라이언트 장치(9)는 파일(110)을 서버로부터 다운로드할 수 있다. 예를 들어, 클라이언트 장치(9)는 DASH 클라이언트와 같은 애플리케이션일 수 있다. 클라이언트 장치(9)는 MPD와 같은 매니페스트 파일을 서버로부터 수신할 수 있으며, 여기서 매니페스트 파일은 서버로부터 다운로드 가능한 각각의 미디어 표현에 대한 복수의 설명을 포함한다.
앞에서 본 바와 같이 트랙의 일부를 스트리밍하는 것이 바람직할 수 있다. 일반적으로 예컨대 DASH와 같은 스트리밍 시나리오에서, 하나의 트랙은 예를 들어 지정된 URL이 할당된 하나의 표현에 매핑된다.
당연히 DASH 클라이언트는 관련없는 데이터를 다운로드하지 않는 것을 선호하며, 다시 말해서 상기 예에서 레이어 1을 다운로드할 때 L0-Tid를 다운로드하지 않는다.
이것은 'leva' 박스에 정의된 레벨들에 대한 바이트 범위를 포함하는 박스('ssix')를 사용하여 관심 동작 포인트를 리소스(트랙)의 바이트 범위에 매핑함으로써 행해진다. 'leva' 박스는 일반적으로 점진적으로 구축되는 레벨들을 명세한다. 즉, 예를 들어 DASH 및 하위 표현을 사용할 때, 목표 레벨 이하의 모든 바이트 범위가 HTTP 요청에 포함된다. DASH 클라이언트가 일부 레벨들이 이러한 방식으로, 즉 점진적으로, 포함되지 않음을 인식하려면, 어떤 시그널링이 필요하다. 일 실시예에서는, 더 높은 목표 레벨에 포함되지 않아야 할 레벨들의 표시는 파일 포맷 박스와 또한 미디어 프리젠테이션 설명(MPD)에 표출되어, 일부 불필요한 바이트 범위가 클라이언트의 HTTP 요청에 포함될 필요가 없게 된다.
앞서 섹션 2에서 설명한 실시예들이, 모든 레이어들이 파일의 하나의 트랙 내에서 그룹핑되는 경우에, 특히 유용할 수 있다. 아래에서, 소정의 동작 포인트(102)에 필요한 샘플들(130)(또는 비트스트림 부분들(654))과 연관된 레이어들이 2개 이상의 트랙들(121)에 걸쳐 분산될 수 있는 실시예들을 설명한다.
도 17은 파일 파서(1000)의 일 예를 보여주는데, 이 파일 파서는 도 1의 파일 파서(100)에 선택적으로 상응할 수 있다. 파일 파서(1000)는 도 1의 파일(110)에 선택적으로 상응할 수 있는 파일(1010)을 받아들이도록 구성된다. 파일(1010)은 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)를 포함한다. 트랙들(121) 각각은 비디오 시퀀스의 샘플들(130) 시퀀스를 포함하는 서브-스트림을 나타낸다. 예를 들어, 도 1과 관련하여 설명된 바와 같이, 샘플들(130) 각각은 파일(1010)의 VCL NAL 유닛들과 같은 하나 또는 복수의 비트스트림 부분을 나타낸다. 파일 파서(1000)는 파일(1010) 내의 설명 데이터로부터 트랙들(121) 세트(120)의 트랙들(121) 부분집합(1080)을 도출하도록 구성된다. 트랙들 부분집합(1080)이 반드시 진부분집합일 필요는 없으며, 다시 말해서 부분집합은 파일(1010)의 모든 트랙들(121) 중에서 하나 이상 또는 모두를 포함할 수 있다. 트랙들 부분집합(1080)의 트랙들은 소정의 동작 포인트(102)에 의해 요구되는 샘플들을 포함한다. 파일 파서(1000)는 설명 데이터로부터 소정의 동작 포인트(102)에 의해 요구되는 트랙들(121) 부분집합(1080) 각각의 샘플들(130)의 일부를 도출할 수 있다. 도 17의 예시적인 예에서, 트랙들 세트(120)는 제1 트랙(1210) 및 제2 트랙(1211)으로 표현되며, 둘 다 소정의 동작 포인트(102)에 대한 샘플들을 포함하는 트랙들 부분집합(1080)의 일부이다. 파일 파서(1000)는, 파일 내의 설명 데이터에 기초해서, 제1 트랙(1210)에 대하여 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)의 부분(10740)을 결정할 수 있고, 제2 트랙(1211)에 대하여 소정의 동작 포인트에 의해 요구되는 샘플들(130)의 부분(10741)을 결정할 수 있다. 파일 파서(1000)는 비디오 비트스트림(190)에서 트랙들 부분집합(1080)의 트랙들(121)의 샘플들(130)의 각각의 부분(1074)을 선택적으로 포워딩할 수 있다. 즉, 파일 파서(1000)는, 비트스트림을 구성할 때, 비디오 비트스트림(190)에서 소정의 동작 포인트에 의해 요구되는 부분들(1074)(즉, 부분(10740, 10741))의 샘플들(130)을 포함시킬 수 있고, 부분들(1074)의 일부가 아닌 파일(1010)의 샘플들은 무시할 수 있다.
예를 들어, 파일(1010)의 트랙들 중 하나, 예컨대 제1 트랙(1210)은 파일(1010)의 추가적인 트랙들과는 독립적으로 디코딩될 수 있는 기본 레이어 트랙일 수 있다. 기본 레이어 트랙은 개별적으로 추출될 때 소정의 동작 포인트를 따를 수 있다. 이 예에 따르면, 제2 트랙(1211)은 향상 레이어를 포함할 수 있다.
다시 말해서, 일부 실시예들, 예컨대 도 17의 실시예에 한정되는 것은 아니지만 도 17에 따른 실시예는, 프로파일, 타이어, 레벨이 트랙 내의 모든 NAL 유닛들과 일치하기 때문에, 어떤 "특별한" 처리를 필요로 하지 않는 기본 레이어 트랙을 제공하는 것을 허용한다.
그렇지만 향상 레이어만을 파싱할 때, 일부의 또는 전부가 아닌 기본 레이어 NAL 유닛들이 필요하다. 추출기가 사용된다면 추출기는 필요한 NAL 유닛들만을 가리킨다. 그렇지만 데이터 속도와 처리 오버헤드가 수반되므로, 추출기를 사용하지 않는 것이 더 바람직할 수 있다. 이 경우 필요한 NAL 유닛들의 식별을 허용하는 것이 요구된다.
예를 들어, 식별은 샘플 그룹핑에 기반한 메커니즘을 통해 달성될 수 있다. 즉, 파일 파서(1010)가 트랙들(121) 부분집합(1080)을 도출하는 설명 데이터와, 부분집합(1080)의 트랙들(121)에 대한 각각의 샘플들 부분(1074)은 샘플 그룹을 사용하여 파일(1000)에 표시될 수 있다.
도 18은 도 17의 파일 파서(1000) 및 파일(1010)의 예를 보여주는데, 이 예에 따르면 파일(1010)은 파일(1010)의 트랙들(121)의 트랙에 대한 샘플 그룹(1182)을 표시한다. 예를 들어, 샘플 그룹(1182)은 향상 레이어를 포함하는 트랙에 대해 표시될 수 있다. 도 18에서, 샘플 그룹(1182)은 예컨대 제2 트랙(1211)과 연관된 샘플 그룹을 예시적으로 보여주기 위한 것이다. 예를 들어, 파일 파서(1000)는, 소정의 동작 포인트(102)에 기초하여, 소정의 동작 포인트에 의해 표시된 바에 따르면 재생되어야 하는 서브-스트림을 포함하는 트랙을 도출할 수 있다. 소정의 동작 포인트에 의해 표시된 서브-스트림을 포함하는 트랙은 표시된 트랙으로 지칭될 수 있다. 파일 파서(1000)는 표시된 트랙과 연관된 샘플 그룹(1182)을 파일(1010)이 포함하는지 여부를 검출한다. 샘플 그룹(1182)은 표시된 트랙, 예컨대 트랙(1211)의 샘플들 세트(1184)를 추가 트랙들로부터 독립적인 것으로 표시할 수 있다. 파일 파서(1000)는 표시된 트랙(1211)의 샘플들(130)을 비디오 비트스트림(190)으로 포워딩할 수 있다. 또한 파일 파서(1000)는, 표시된 트랙(1211)의 각 샘플(1151)에 대하여, 어느 것이 추가적인 트랙들(1182)이나, 추가적인 트랙들의 샘플들(1152)로부터 독립적인 것으로 샘플 그룹(1182)에 의해 표시된 세트(1184)의 일부가 아닌지를 검출할 수 있는데, 여기서, 추가적인 트랙들은 예컨대 트랙들(121)의 부분집합(180)의 트랙(1210)을 말하며, 추가적인 트랙들의 샘플들(1152)은 표시된 트랙(1211)의 샘플들(1151)과 동일한 타임스탬프들(1186)을 갖는 샘플들을 말한다. 만약 추가적인 트랙의 샘플들이 추가적인 트랙들과 독립적인 것으로 표시되지 않은 표시된 트랙(1211) 내의 샘플과 시간적으로 정렬되거나 시간적으로 함께 배치되어 있다면, 파일 파서(1000)는 트랙들 부분집합의 추가적인 트랙들(즉, 표시된 트랙(1211) 이외의 트랙들)의 샘플들을 비디오 비트스트림(190)으로 포워딩할 수 있다. 예를 들어, 표시된 트랙(1211)은 하나 이상의 추가적인 레이어들에 의존할 수 있으며, 상기 추가적인 레이어들의 샘플들은 표시된 트랙(1211)으로 시그널링되는 레이어를 디코딩하는 데 필요할 수 있다. 샘플들이 추가적인 트랙들과 독립적인 것으로 표시되어 있지 않은, 표시된 트랙(1211)의 샘플들에 대하여, 파일 파서(1000)는 표시된 트랙(1211)의 레이어가 의존하고 독립적인 것으로 표시되지 않은 샘플들과 시간적으로 정렬된 추가적인 레이어들의 샘플들을 검출하고, 추가적인 레이어의 검출된 샘플들을 포워딩할 수 있다.
다시 말해서, 샘플 그룹핑 메커니즘은 NAL 유닛들이 주어진 동작 포인트에 필요한지 아닌지를 나타낸다. 예를 들어, 트랙 그룹핑을 사용하여 일부 트랙들이 동작 포인트에 속한다는 것을 나타내는 섹션 1에서 언급한 솔루션을 기반으로 한다. 트랙 내의 추가적인 샘플 그룹핑은 일부 샘플들을 특정 동작 포인트에 속하지 않거나 속하지 않는 것으로 마킹하게 된다. 그와 같은 경우에, 어떤 샘플이 특정 동작 포인트에 속하는지 여부를 샘플별로 결정하기 위하여 추가적인 샘플 핸들링이 필요하다는 것을 트랙 그룹핑 내에서 표시하는 것은 본 발명의 일부이다.
Figure pct00010
이 샘플 그룹에 속하는 것으로 마킹된 샘플은 동일한 동작 포인트 그룹에 속하는 참조 트랙들의 샘플이 필요하지 않다. 따라서 각 샘플을 주어진 그룹에 매핑시키는 샘플-그룹 매핑 테이블들은 샘플에 사용될 때 해당 샘플이 독립적이고 주어진 동작 포인트에 대하여 종속 트랙들의 샘플들이 필요하지 않음을 나타내게 된다. 따라서 파서는 이 표시를 발견하면 종속 트랙에서 샘플들을 탐색하지 않는다.
도 19는 도 17의 파일 파서(1000) 및 파일(1010)의 다른 예를 보여주는데, 이 예에 따르면 파일(1010)은 트랙들 부분집합(1080)의 트랙, 예컨대 트랙(1210)과 연관된 동작 포인트 샘플 그룹(1183)을 포함할 수 있다. 이러한 예들에서, 파일(1010)은 트랙들 부분집합(1080)의 트랙들 각각에 대한 동작 포인트 샘플 그룹을 포함할 수 있다. 따라서 파일 파서(1000)는 소정의 동작 포인트(102)와 연관된 각각의 트랙에 대하여, 즉 트랙들 부분집합(1080)의 트랙들 각각에 대하여, 파일(1010)의 설명 데이터가 소정의 동작 포인트(102)와 연관된 동작 포인트 샘플 그룹(1183)을 포함하는지 여부를 검출할 수 있다.
동작 포인트 샘플 그룹(1183)은 동작 포인트 샘플 그룹(1183)이 연관되어 있는 트랙의 샘플들을 표시하는데, 이 샘플들은 소정의 동작 포인트에 의해 요구되는 것들이다.
다시 말해서, 어떤 동작 포인트에 속하거나 속하지 않는지를 나타내는 샘플들 자체가 또 다른 옵션이 될 것이다. 이를 위해서는 모든 트랙들이 동작 포인트 샘플 그룹들을 포함해야 하고, 파서는 관심 있는 모든 트랙으로부터, 이 다른 유형의 샘플 그룹핑에 의해 표시되는 바에 따라, 주어진 동작 포인트에 속하는 샘플들만을 가져온다.
Figure pct00011
도 20은 도 12의 예시적인 비트스트림에 대하여 레이어들 및 시간적 서브레이어들에 의해 샘플들을 그룹핑하는 예를 보여준다. 예를 들어, 도 20에 도시된 트랙 그룹핑 메커니즘은 섹션 1에서 기술한 트랙 그룹핑 메커니즘을 기초로 하여 파일(1010)에 표시될 수 있으며, 어떤 서브레이어(또는 어떤 NAL 유닛)가 동작 포인트에 속하지 않는지에 대한 정보와, NAL 유닛의 파싱을 수행하기 위한 정보(예컨대 NAL 유닛이 속한 서브레이어를 결정하기 위한 TID)를 추가로 포함한다. 이는 트랙 그룹핑이, 동작 포인트에 대해서, 어떤 시간적 ID 값(서브레이어 대응)이 동작 포인트에 속하는 NAL 유닛들을 갖는지를 표시하는 것을 필요로 할 것임을 의미한다. 트랙들 자체는 그 안에 모든 서브레이어들(시간적 ID의 가능한 값들)을 가질 것이고, NAL 유닛 헤더 값들의 추가적인 파싱은 디코더에 전송된 비트스트림에 포함시키지 않기 위해서 필요할 것이다. 구문은 다음과 같은 형식이 될 수 있으며, 섹션 1에 설명된 트랙 그룹과 비교할 때 추가된 부분은 굵은 글씨로 강조 표시되어 있다.
Figure pct00012
도 21은 일 실시예에 따른 파일 파서(1000) 및 파일(1010)의 다른 실시예를 보여준다. 도 21의 실시예에 따른 예들은 도 20과 관련하여 설명한 실시예를 구현할 수 있다. 도 21의 실시예에 따르면, 파일(1010)은 레이어 식별자들 세트(1362)를 표시한다. 레이어 식별자들 세트(1362)는 소정의 동작 포인트(102)와 연관된 하나 이상의 레이어 식별자들(264)을 포함한다. 예들에서, 파일(1010)은 레이어 식별자들 세트들(1362)의 세트(1360)를 포함한다. 도 21에서, 세트(1360)는 예시적으로 제1 레이어 식별자 세트(13621), 제2 레이어 식별자 세트(13622) 및 제3 레이어 식별자 세트(13623)를 포함한다. 세트들(1362) 중의 어느 하나, 예컨대 세트(13622)는 소정의 동작 포인트(102)와 연관될 수 있다. 파일 파서(1000)는 파일 내의 설명 데이터로부터 트랙들 부분집합의 트랙(121)이 소정의 동작 포인트와 연관된 레이어 식별자들 세트(13622)의 식별자들(264) 중 어느 하나와 연관되는지 여부를 도출할 수 있다. 트랙이 연관된 레이어 식별자들 세트(13622)의 레이어 식별자들(264) 중 하나와 연관되어 있다면, 파일 파서(1000)는 트랙을 트랙들 부분집합(1080)에 선택적으로 할당하고, 설명 데이터로부터 트랙에서 소정의 동작 포인트(102)에 의해 요구되는 샘플들의 일부가 서브레이어와 연관되어 있는지를 도출할 수 있다. 파일 파서는 소정의 동작 포인트(102)에 의해 요구되는 것으로 표시된 서브레이어와 연관되어 있는 샘플들 부분을 비디오 선택적으로 비트스트림(190)으로 포워딩할 수 있다. 즉, 파일 파서(1000)는, 비트스트림(190)을 구성할 때, 소정의 동작 포인트(102)에 의해 요구되는 것으로 표시된 서브레이어와 연관되어 있지 않은 각각의 트랙의 샘플들의 포워딩을 생략할 수 있다.
예를 들어, 파일(1010)의 설명 데이터는, 소정의 동작 포인트에 대한 레이어 식별자들 세트(13622)의 레이어 식별자들(264) 각각에 대하여, 각각의 레이어 식별자로 식별된 레이어와 연관된 샘플들 부분집합을 나타내는 연관된 서브레이어 식별자를 표시할 수 있다. 예를 들어, 서브레이어 식별자는 각각의 레이어 식별자로 식별된 레이어의 샘플들에 대한 시간 식별자에 대한 최대값을 표시할 수 있다. 파일 파서(1000)는, 소정의 동작 포인트와 연관된 트랙들 각각에 대하여, 설명 데이터로부터 소정의 동작 포인트와 연관된 레이어 식별자들 세트와 소정의 동작 포인트에 대한 레이어 식별자들 세트와 연관된 서브레이어 식별자들 세트를 도출할 수 있다. 파서(1000)는, 소정의 동작 포인트와 연관된 트랙들의 각 샘플에 대하여, 샘플이 레이어 식별자들 세트와 연관되고 소정의 동작 포인트에 대하여 표시하는 서브레이어 식별자들의 세트와 연관되어 있다면 각각의 샘플을 비디오 비트스트림(190)으로 포워딩할 수 있고, 그렇지 않으면 샘플을 포워딩하지 않을 수 있다.
예를 들어, 파일(1010)은 소정의 동작 포인트(102)를 포함하는 동작 포인트들 세트(240)의 각각에 대하여 연관된 레이어 식별자들(264) 세트(162)를 포함하는 구문 구조, 예컨대 트랙 그룹 구문 구조 또는 샘플 그룹 구문 구조를 포함할 수 있다. 레이어 식별자들(264) 각각은 레이어 식별자(264)와 연관된 레이어의 하나 이상의 서브레이어를 표시하는 연관된 서브레이어 식별자와 연관되어 있을 수 있다. 예를 들어, 레이어는 계층적으로 정렬된 하나 이상의 시간적 서브레이어를 포함할 수 있다. 서브레이어 식별자(1365)는, 레이어 식별자(264)로 식별되는 레이어에 대하여, 소정의 동작 포인트(102)에 의해 요구되는 식별된 레이어의 최대 시간적 서브레이어를 나타낼 수 있다. 파일 파서(1000)는, 소정의 동작 포인트(102)와 연관된 레이어 식별자들 세트(13622)에 의해 식별되는 레이어들 각각에 대하여, 각각의 레이어 식별자(264)와 연관된 서브레이어 식별자(1364)에 의해 표시되는 최대 시간 식별자 이하의 시간 레이어 식별자와 연관된 샘플들(130)을 비디오 비트스트림(190)에 포함시킬 수 있다.
도 22는 파일 파서(1000) 및 파일(1010)의 다른 예를 보여주는데, 이 예에 따르면 비디오 비트스트림(190)에 포함될 부분(1074)이 레벨 인덱스에 의해 표시된다. 도 22의 예에 따르면, 파일 파서(1000)는 설명 데이터로부터 트랙들 세트의 샘플들(130)에 레벨 인덱스(1491)를 할당하는 레벨 할당 구문 구조(level assigned syntax structure, 1489)를 도출하도록 구성된다. 이 예에 따르면, 소정의 동작 포인트(102)는 소정의 동작 포인트(102)에 의해 요구되는 샘플들의 레벨 인덱스들을 나타내는 레벨 인덱스들 세트와 연관된다. 예를 들어, 레벨 인덱스들 세트는 하나 이상의 레벨 인덱스들을 포함할 수 있고, 레벨 인덱스들 세트는 예를 들어 레벨 인덱스들의 단계가 더 작은 레벨 인덱스들을 포함함을 암시하는 최대 레벨 인덱스로 표시될 수 있다. 예를 들어, 레벨 할당 구문 구조는 표시된 트랙의 제1 샘플에 대한 제1 레벨 및 표시된 트랙의 제2 샘플에 대한 제2 레벨을 표시할 수 있으며, 여기서 제1 샘플은 제1 시간 식별자를 갖고 제2 샘플은 제2 시간 식별자를 갖는다. 도 22의 예에 따르면, 파일 파서(1000)는, 트랙들(121) 각각에 대하여, 트랙이 소정의 동작 포인트와 연관된 레벨 인덱스들 세트의 레벨 인덱스와 연관된 샘플들을 포함하는지 여부를 검출할 수 있다. 만약 트랙이 이러한 샘플들을 포함하면, 파일 파서(1000)는 비디오 비트스트림(190)으로 포워딩되어야 할 트랙들 부분집합(180)에 트랙을 선택적으로 추가할 수 있다. 만약 트랙이 위와 같은 샘플들을 포함하지 않으면, 파일 파서(1000)는 비디오 비트스트림(190)에 대한 트랙을 무시할 수 있다. 또한, 파일 파서(1000)는 설명 데이터로부터 소정의 동작 포인트(102)와 연관된 샘플 그룹을 도출할 수 있는데, 여기서 상기 샘플 그룹은 레벨 인덱스들 세트의 하나 이상의 레벨 인덱스를 소정의 동작 포인트에 의해 요구되지 않는 것으로 표시함으로써, 소정의 동작 포인트에 의해 요구되지 않는 트랙들 부분집합의 샘플들 세트(1494)를 나타낸다. 트랙들 부분집합의 샘플들 각각에 대하여, 만약 각각의 샘플의 레벨이 소정의 동작 포인트에 의해 요구되지 않는 것으로 표시된다면, 파일 파서(1000)는 각각의 샘플을 비디오 비트스트림(190)으로 포워딩하는 것을 생략할 수 있다. 그렇지 않으면, 파일 파서(1000)는 각각의 샘플을 포워딩할 수 있다.
추가적인 실시예에서는, 이러한 독립성 또는 의존성이 샘플 그룹을 사용하여 다른 방식으로 표시된다. 즉, 샘플 그룹은 'leva' 박스에 의해 식별되는 일부 레벨들이 동작 포인트에 의해 요구되지 않을 것임을 표시하게 된다.
동작 포인트는 VisualSampleGroupEntries를 사용하여 샘플 그룹 설명 박스에서 정의될 수 있다.
Figure pct00013
Figure pct00014
그렇지만 이를 위해서는 암시적 재구성을 위해 'leva'(레벨 할당: Level Assignment) 박스 매핑을 사용해야 한다. 'leva'는 m <= n < p와 같은 레벨 의존성만을 요구한다. 여기서 레벨 n의 샘플은 레벨 m의 샘플에 의존할 수 있지만 레벨 p의 샘플에는 의존하지 않아야 한다. 그러므로, G3은 G1에 의존할 수 있지만 반드시 G2에 의존해야 하는 것은 아니다. 상기 구조(OperationPointRecord)는 데이터를 보다 효율적으로 처리할 수 있기 위해서 G2에 대한 G3의 독립성 표시가 어떻게 필요하고 행해질 수 있는지에 대한 예를 보여준다. 새 샘플 그룹에 이 메커니즘을 사용하면, leva 박스의 일부 레벨들이 더 높은 레벨에서는 (샘플 그룹 "level_to_exclude_from_dependency"에 있는 표시에 의해서) 제외된다는 것이 명시적으로 분명할 것이다.
도 23은 일 실시예에 따른 파일 파서(1000) 및 파일(1010)의 다른 예를 보여준다. 도 23의 예에 따르면, 파일(1010)은, 소정의 동작 포인트(102)에 대하여, 소정의 동작 포인트에 의해 요구되는 트랙들(121)의 샘플들(130)의 부분(1074)을 표시하는 샘플 그룹(1595)에 대한 정보를 포함한다. 도 23의 예시적인 예에서, 소정의 동작 포인트(102)는 제1 트랙(1200) 및 제2 트랙(1211)과 연관되어 있다. 샘플 그룹(1595)은, 제1 트랙(1210)에 대하여, 소정의 동작 포인트과 연관된 제1 트랙(1210)의 샘플들의 부분(10740)을 나타낼 수 있다. 따라서 샘플 그룹(1595)은, 제2 트랙(1211)에 대하여, 소정의 동작 포인트와 연관된 제1 트랙(1211)의 샘플들의 부분(10741)을 나타낼 수 있다. 예를 들어, 트랙들(121)의 샘플들(130) 각각은 파일(1010)에서 시그널링되는 비디오 스트림의 레이어와 연관될 수 있다. 샘플들(130) 각각은 레이어 식별자(1591)와 연관되어, 각각의 샘플이 연관된 레이어를 표시할 수 있다. 예에서, 동일한 레이어와 연관된 샘플들은 동일한 트랙의 일부일 수 있다. 일부 예들에서는 동일한 트랙의 샘플들이 동일한 레이어와 연관될 수 있지만, 추가적인 예들에서는 트랙이 여러 레이어들의 샘플들을 포함할 수 있다. 다시 말해서, 일부 예들에서는 레이어당 하나의 트랙이 있을 수 있고, 다른 예들에서는 하나의 트랙이 다수의 레이어들의 샘플들을 포함할 수 있다.
샘플 그룹(1595)은 소정의 동작 포인트와 연관될 수 있다. 다른 예들에서는 샘플 그룹(1595)이, 소정의 동작 포인트를 포함하는 다수의 동작 포인트들 세트(예컨대, 동작 포인트들 세트(240))의 각각에 대하여, 각각의 샘플들 세트를 표시한다. 샘플 그룹(1595)은, 소정의 동작 포인트와 같은 각각의 동작 포인트들과 연관된 레이어 식별자들(1591) 세트를 표시함으로써, 소정의 동작 포인트 및 선택적으로 추가적인 동작 포인트들에 대한 샘플들 세트를 나타낼 수 있다.
샘플들(130) 각각은, 시간 식별자(1597)를 각각의 샘플과 연관시킴으로써, 시간 서브레이어와 추가적으로 연관될 수 있다. 시간 식별자(1597)는 코딩된 비디오 시퀀스의 샘플들(130)의 시간 부분집합들(temporal subsets)의 세트 중에서 어느 것에 샘플이 속하는지를 표시한다. 시간 식별자(1597)는 예컨대 도 15 및 도 21과 관련하여 설명한 바와 같이 시간 id(temporal_id)에 대응할 수 있다. 샘플 그룹(1595)은, 소정의 동작 포인트와 연관된 레이어 식별자들(1591) 각각에 대하여, 시간 식별자(1597)에 대한 제약조건(1596)을 나타낸다. 예를 들어 제약조건(1596)은, 각 레이어의 모든 시간 서브레이어들이 소정의 동작 포인트에 대해 요구되는지 여부를 표시함으로써, 샘플 그룹(1595) 내에 표시될 수 있다. 각 레이어의 모든 시간 서브레이어들이 소정의 동작 포인트에 대해 요구되는 것은 아닌 경우, 제약조건(1596)의 표시는 최대 시간 서브레이어에 대한 표시를 포함할 수 있다. 도 1과 관련하여 설명한 바와 같이, 시간 서브레이어들은 계층적으로 정렬될 수 있다. 파일 파서(1000)는, 소정의 동작 포인트와 연관된 레이어 식별자들(1591)에 의해 식별되는 레이어들 각각에 대하여, 계층적 순서에 있어 시간 식별자에 대한 표시된 제약조건 이하인 시간 서브레이어와 연관된 모든 샘플들(130)을 비디오 비트스트림(190)에 포함시킬 수 있다. 예를 들어, 최대 시간 서브레이어는 시간 식별자에 대한 최대값으로서 제약조건(1596)에 의해 표시될 수 있다.
예들에서, 샘플 그룹(1595)은, 소정의 동작 포인트에 대하여, 소정의 동작 포인트의 프로파일, 타이어, 레벨, 및/또는 하나 이상의 제약조건의 집합을 표시한다. 예를 들어 샘플 그룹(1595)은, 복수의 동작 포인트들 각각에 대하여, 각각의 프로파일, 타이어, 레벨, 및 각각의 레이어 식별자들 세트를 표시할 수 있다. 또한 샘플 그룹(1595)은, 복수의 동작 포인트들에 대한 레이어 식별자들의 세트들 각각에 대하여, 시간 식별자(1591)에 대한 각각의 제약조건(1596)을 포함할 수 있다.
다시 말해서, 도 23에 도시된 실시예의 일 예에 따르면, 소정의 동작 포인트에 의해 요구되는 샘플들의 부분들(1074)의 표시가 샘플들 각각에 대해 의존성이 어느 레벨까지 발생하는지를 명시적으로 표시함으로써 행해진다.
그렇지만 이 경우 서브레이어 값(max_tid_in_dep_layer)이 표시되며, 파일 포맷 파서는 TID 값을 검사하여 상기 서브레이어 값을 디코딩할 출력 비트스트림에 포함시킬지 여부를 결정할 것으로 예상된다.
Figure pct00015
도 17의 파일 파서(1000)의 다른 실시예에 따르면, 파일 파서(1000)는 트랙들 부분집합 중에서 소정의 트랙이 소정의 동작 포인트에 대해 요구된다는 것을 파일(1000)의 설명 데이터로부터 도출할 수 있고, 소정의 트랙의 샘플들을 비디오 비트스트림(190)으로 포워딩할 수 있다. 파일 파서(1000)는, 트랙들 부분집합(180)의 추가적인 트랙들 즉 소정의 트랙 이외의 트랙들 각각에 대하여, 각각의 트랙의 각 샘플에 대해서 해당 샘플이 샘플 그룹(1595)과 같이 소정의 동작 포인트에 의해 요구되는 것으로 샘플들을 표시한 샘플 그룹의 일부인지를 검사한다. 만약 그렇다면, 파일 파서(1000)는 각각의 샘플들을 비디오 비트스트림(190)으로 포워딩할 수 있고, 그렇지 않다면, 파일 파서(1000)는 비디오 비트스트림(190)을 구성할 때 해당 샘플들을 생략할 수 있다. 일 예에서 샘플 그룹은, 코딩된 비디오 시퀀스의 샘플들의 시간 부분집합의 세트 중 어느 것에 각각의 샘플이 속하는지를 표시하는 시간 식별자들의 명시된 세트 중에서 하나를 갖는 샘플들을 포함하도록, 정의된다.
후자의 실시예는 파일의 효율적인 파싱을 위해 제공될 수 있다. 앞서 설명한 바와 같이, 샘플 그룹 메커니즘은 파서로 하여금 샘플이 어느 샘플 그룹에 속하는지를 식별하기 위하여 각 트랙에 대한 테이블들을 파싱하도록 요구할 수 있다. 이 테이블들은, 각 샘플이 속하는 샘플 그룹이 있는 경우, 어떤 샘플 그룹에 속해 있다는 것을 표시한다. 그러면 파서는 적절하게 반응할 필요가 있다. 예를 들어 디코더에 전송된 비트스트림에서 해당 레벨에 속하는 샘플을 포함시키지 않음으로써 필요하지 않은 레벨을 제외할 수 있다.
그렇지만 일반적으로 요구되는 최대 시간 id는 샘플마다 바뀌지 않으며, 레이어의 특성이라고 할 수 있다. 예를 들어, 예에서 L1은 L0에서의 0과 동일한 시간 ID에만 의존한다. 그러므로 이 정보는 트랙을 위해 전달될 수 있다.
추가적인 실시예에서는, 주어진 참조 타입을 사용할 때(예컨대, ref_type이 'sref' 샘플 그룹 참조인 'tref'에서) 트랙 그룹이 출력 비트스트림에 포함될 종속 레이어 내 샘플 그룹들의 인덱스를 표시하게 하는 트랙 그룹 메커니즘 또는 다른 트랙 속성 설명이 사용된다.
상기 그룹핑은 네 가지 상이한 동작 포인트을 허용하게 된다.
- G1만 있음 (G1의 샘플 그룹 설명)
- G1+G2 (G2의 샘플 그룹 설명)
- G1+G3 (G1의 샘플 그룹 설명이 G3 참조에서 사용되며, G2 샘플은 트랙(그룹/속성) 설명에 포함되지 않아 제외됨)
이 경우 파서는 트랙 내의 모든 샘플들에 대해 일반적인 트랙 그룹 또는 트랙 참조 박스 'tref'를 파싱할 필요가 있다. 해당 참조는 "비-전체(non-full)" 참조임을 나타내며, 예컨대 참조된 레이어에는 0과 같은 temporalID만 필요하거나, 참조된 레이어의 샘플 그룹에 속하는 일부 샘플들만이 필요함을 나타내는 'sref' 참조가 사용될 수 있다.
이 정보를 토대로 파서는 참조 레이어를 파싱하여, temporalID가 0인 샘플들만 탐색하거나 참조 트랙에 있는 샘플 그룹 테이블을 파싱하여 필요한 샘플 그룹들에 속하는 샘플들을 탐색한다. 디코더로 송신되는 비트스트림에는 관련 NAL 유닛들만 포함된다.
도 24는 도 1의 클라이언트(9)에 선택적으로 상응할 수 있는 클라이언트(9)의 일 예를 서버(7)와 연계하여 보여준다. 클라이언트(9)는 클라이언트에 의해 다운로드 가능한 미디어 표현(Rep#) 세트를 기술하는 매니페스트 파일(14)을 다운로드할 수 있다. 클라이언트(9)는 매니페스트 파일(14)로부터 제1 미디어 표현(Rep0)에 대하여 제1 미디어 표현에 임베딩된 하위-표현들(sub-rep0, sub-rep1)의 정보를 도출할 수 있다. 또한, 클라이언트(9)는 제2 미디어 표현(Rep1)에 대한 매니페스트 파일(14)로부터 제2 미디어 표현(Rep1)이 의존하는 하나 이상의 미디어 표현들의 제1 세트의 제1 표시(16)와, 제1 미디어 표현(Rep0)을 포함하는 하나 이상의 표현들 세트를 도출할 수 있다. 또한, 클라이언트(9)는 제2 미디어 표현(Rep1)에 대한 매니페스트 파일(14)로부터 제1 미디어 표현에 임베딩된 하위-표현들(sub-rep0, sub-rep1)로부터의 하나 이상의 하위-표현들의 제2 세트의 제2 표시(18)를 도출할 수 있는데, 이 정보는 제2 미디어 표현(Rep1)의 재생에 필요하다. 클라이언트(9)는 제2 미디어 표현(Rep0)을 하나 이상의 하위-표현들의 제2 세트로 다운로드하는 것을 제한하면서 하나 이상의 미디어 표현들의 제1 세트와 함께 제2 표현(Rep1)을 다운로드할 수 있다. 예를 들어, 클라이언트는 서버(12)에 매니페스트 파일(14)을 요청하고, 매니페스트 파일(12)를 검사한 다음, 예컨대 HTTP 요청에 의해 도면에서 참조부호 16과 18로 표시된 바와 같은 Rep1과 Rep0의 하위-표현(sub-rep0)를 획득한다.
예들에서, 클라이언트(9)는 제1 미디어 표현(Rep0)의 세그먼트들로부터 샘플들 내지 서브샘플들의 정보를 도출함으로써(예컨대, 이 정보는 NAL 유닛들을 포함하는 미디어 세그먼트들, 또는 해당 Rep0에 대해 클라이언트에 의해 최초에 다운로드되는 일부 초기 세그먼트 또는 Rep0에 포함되어 있을 수 있음), 제1 미디어 표현(Rep0)에 포함되고 하나 이상의 하위-표현들의 제2 세트에 속하는 트랙(예컨대, 도시된 바와 같이 각 표현은 그 안으로 엠베딩되는 하나의 트랙(20)을 가질 수 있음)의 샘플들 내지 서브샘플들(예컨대, 레이어 ID와 같은 특정 NAL 유닛 값 또는 시간 레이어에 의해 정의되는 NAL 유닛들이며, 따라서 서브-스트림(22)을 형성함)을 접근할 수 있다.
다시 말해서, 앞서 설명한 것과 유사하게 이 경우에도, 필요한 NAL 유닛들만 스트리밍하는 것이 유리할 수 있으므로, 트랙의 일부만 다운로드하는 것을 허용할 수 있도록 하기 위해 'ssix' 및 'leva' 박스가 필요하다. 'ssix' 박스와 'leva' 박스에는 샘플들이 어느 레벨에 속하는지에 대한 파일 설명 정보와, 어느 한 레벨에 속하는 관련 샘플들에만 접근하기 위해 고려해야 하는 바이트 범위가 포함된다.
이 경우 필요한 부분만 다운로드하기 위해서는, DASH 레벨에서, 즉 매니페스트 MPD에서, 표현이 다른 표현의 일부에만 의존함을 표시해야 한다. 설명하는 예에는 2개의 트랙이 있고, 따라서 DASH MPD에 2개의 표현 즉 레이어 0에 대해서 1개, 레이어 1에 대해서 1개가 있음을 주목해야 한다. 즉, 추가적인 실시예는, 의존성이 표현 레벨이 아니라 하위-표현 레벨에서 생기는, DASH 표시로 구성되어 있다. 예시적인 비트스트림에서 레이어 1을 포함하는 표현은 레이어 0을 포함하는 표현의 일부만을 필요로 한다. 이것은 표현의 @dependencyId에 표시된 Id가 하위-표현을 가리킬 수 있도록 @dependencyId "확장"을 추가하거나, 종속 표현 시 필요하거나 필요하지 않은 하위-표현 레벨에서 일종의 표시를 추가하는 것이다. 예를 들어, 이것은 어떤 하위-표현이 필요한지를 표시하는 기술자일 수 있다. 이 경우 DASH의 하위-표현은 시간 ID(temporalID)가 0인 NAL 유닛들만 포함하는 레이어 0을 포함하는 표현의 부분들이다.
요소 또는 속성 명칭 사용 설명
표현
(Representation)
이 요소는 표현에 대한 설명을 포함함.
@id M 이 표현에 대한 식별자를 명시함. 표현이 동일 기간의 다른 표현과 기능적으로 동일하지 않는 한, 식별자는 기간 내에서 고유해야 함.

식별자는 공백 문자를 포함할 수 없음.

5.3.9.4.4에 정의된 템플릿 기반 URL 구성에 사용되는 경우, 문자열은 RFC 1738에 따은 HTTP-URL 내에서 허용되는 문자만 포함해야 함.
@bandwidth M 이 속성 값이 초당 비트수(bps)인 대역폭을 갖는 가상의 고정 비트율 채널을 고려함. 그러면, @startWithSAP 또는 세그먼트 인덱스 상자로 표시되는 어떤 SAP에서 시작하여 표현이 이 비트율로 계속 전달되는 경우, 클라이언트는 @minBufferTime * @bandwidth 개의 비트들이 수신된 후에(즉, 첫 번째 비트가 수신된 후 @minBufferTime의 시간이 경과되었을 때) 재생이 시작되는 연속 재생을 위한 충분한 데이터를 가지고 있음을 확신할 수 있음.

종속 표현의 경우 이 값은, 이 표현과 모든 보완적 표현에 대해, 위에서 정의한 바와 같은 최소 대역폭을 명시하게 됨.
@qualityRanking O 동일한 적응 세트 내에 있는 다른 표현들에 대비힌 표현의 품질 순위를 명시함.

값이 낮을수록 더 높은 품질의 컨텐트를 나타냄.

존재하지 않는 경우, 순위가 정의되지 않음.
@dependencyId O 표현이 디코딩 및/또는 표현 프로세스에서 의존하는 모든 보완적 표현을 공백으로 구분된 @id 속성들의 값의 목록으로 명시함.

존재하지 않는 경우, 표현은 다른 표현과 독립적으로 디코딩되어 표시될 수 있음.

이 속성은 종속성이 없는 경우에는 존재하지 않음.
@maxLevelInDepRep O 해당 표현의 하위 표현의 @level 속성들의 값이 공백으로 구분된 목록으로서, 표현이 디코딩 및/또는 표현 프로세스에서 의존하는 @dependencyId에 의해 명시된 표현의 하위 표현을 명시함.
범례:
속성의 경우: M=필수, O=선택, OD=기본값 있는 선택, CM=조건부 필수.
요소의 경우: <minOccurs>...<maxOccurs>(N=무제한)

요소들은 굵은 글씨체로 표시됨. 속성들은 굵은 글씨체로 표시되지 않고 @가 앞에 붙음.
요소 및 속성 목록은 이 타입에 의해 확장된 기본 타입에서 가져온 것들을 참조하는 굵은 이탤릭체로 표시됨.
3. 도 25 및 도 26에 따른 파일 파서, 파일 생성기, 및 파일
도 25는 일 실시예에 따른 비디오 디코더(44)와 연계하여 파일 파서(30)를 보여준다. 파일 파서(30)는 선택적으로 도 1의 파일 파서(10)에 따를 수 있다. 파일 파서(30)는 파일(110)에 상응할 수 있는 파일(32)을 받아들일 수 있다. 파일(32)은 예컨대 트랙 0 및 트랙 1을 포함하는 트랙들 세트(36)을 포함할 수 있고, 각 트랙은 예컨대 도 1의 샘플들(130)과 같은 샘플들을 포함할 수 있다. 파일(32)은 트랙들 세트(36)에 대한 스위칭 정보(34)를 포함하고, 스위칭 정보(34)는 제2 트랙(예컨대 track 0)에 있는 하나 이상의 선행 샘플들이 파일 파서에 의해 파일로부터의 데이터가 공급되는 비디오 디코더(44)에서 이용가능한 경우 트랙들 세트(36)의 제2 트랙(예컨대 track 0)으로부터의 스위칭이 허용되는 트랙들 세트(36)의 제1 트랙(예컨대 track 1)의 샘플들(38)을 표시한다. 하나 이상의 선행 샘플들은 예컨대 코딩 순서(40)에 있어 직전 RAP 샘플(42)까지의 선행 샘플(38)을 참조할 수 있는데, 이와 같은 경우 샘플(38)의 모든 참조 샘플(여기서 예시적으로 샘플(44))이 디코더에 이용 가능한 제2 트랙의 일부에서 동시간 샘플(여기서는 샘플(42))을 갖는 것이 보장되기 때문이다. 트랙들에는 예컨대 상호 독립적으로 인코딩된 방식으로 생성된 동일한 비디오 컨텐트의 상이한 다른 버전이 임베딩되어 있다. 파일 파서(30)는 파일(32)로부터 스위칭 정보(34)를 도출할 수 있다. 섹션 3의 실시예들은 제3 양태와 관련된 것일 수 있다.
예를 들어, 파일 파서(30)는 스위칭 정보(34)를 스위칭을 결정하도록 구성된 외부 디바이스, 예컨대 비디오 디코더를 포함하거나 비디오 디코더와 협력하는 비디오 플레이어에 제공할 수 있다.
선택적으로, 스위칭 정보(34)는 제1 트랙(track 1)의 드리프트-영향받는 샘플들(46)(예컨대, 샘플(38)에 의해 참조되는 샘플(44)에 함께 정렬된/동시간인 샘플(42))에 의해 (도시된 바와 같이 직접 또는 하나 이상의 드리프트-영향받는 다른 샘플들을 경유하여 간접적으로) 참조되는 제1 트랙(track 1)의 참조 샘플들에 시간적으로 정렬된 제2 트랙(track 0)의 이전 샘플들을 토대로(예컨대, 참조 픽처 리샘플링에 의해) 제1 트랙(track 1)의 드리프트-영향받는 샘플들(46)을 디코딩하는 비디오 디코더에 의한 디코딩 드리프트의 영향을 받는 제1 트랙(track 1)의 드리프트-영향받는 샘플들(46)의 정보(48)를 포함할 수 있다. 예를 들어, 파일 파서(30)는 해당 정보(48)를 파일(32)로부터 도출할 수 있다.
예를 들어, 드리프트-영향받는 샘플들(46)의 정보(48)는 드리프트-영향받는 샘플들의 개수의 상한 또는 시간적 지속 기간의 상한을 나타낸다.
예를 들어, 드리프트-영향받는 샘플들(46)의 정보(48)는 소정의 기준을 충족하는 드리프트-영향받는 샘플들의 품질을 나타낸다.
예를 들어, 드리프트-영향받는 샘플들의 정보(48)는 시간적 구문 예측 없이 코딩되는 드리프트-영향받는 샘플들을 나타낸다.
예를 들어, 드리프트-영향받는 샘플들의 정보(48)는 드리프트-영향받는 샘플들을 식별한다.
선택적으로, 파일(32)은 제1 트랙(track 1)의 RAP 샘플들(44)(이러한 RAP 샘플들은 동기화 샘플들 내지 동기 샘플들, SAP(스트림 액세스 포인트) 샘플들, 및/또는 IRAP들일 수 있음)을 나타내는 RAP 정보(50)를 포함한다. RAP 정보(50)는 스위칭 정보(34)와 별개일 수 있다(예를 들어, 2개의 상이한 종류의 정보일 수 있다; 실제로 샘플들(38)은 RAP 샘플들이 아님). 파일 파서(30)는 제1 트랙(track 1)에 대하여 파일(30)로부터 RAP 정보(50)를 도출할 수 있다.
선택적으로, 파일(32)은 제2 트랙(track 0)의 RAP 샘플들(42)(이러한 RAP 샘플들은 동기화 샘플 내지 동기 샘플들, SAP(스트림 액세스 포인트) 샘플들, 및/또는 IRAP들일 수 있음)을 나타내는 추가적인 RAP 정보(52)를 포함하며, 스위칭 정보(34)는, 제2 트랙(track 0)의 선행 RAP 샘플(42)에 (코딩 순서상) 업스트림 쪽으로 가장 근접한 제1 트랙의 샘플들을 선행하는 제2 트랙(예컨대 track 0)의 샘플들이 비디오 디코더(44)에서 이용 가능한 경우, 트랙들 세트(36)의 제2 트랙(track 0)으로부터의 스위칭이 허용되는 트랙들 세트의 제1 트랙(track 1)의 샘플들(38)을 표시한다. 파일 파서(30)는 제2 트랙(track 0)에 대하여 파일(30)로부터 추가 RAP 정보(52)를 도출할 수 있다.
스위칭 정보(34)와 파일 파서(32)는 비디오 비트스트림의 디코딩에서 트랙 간에 보다 유연한 스위칭을 제공할 수 있다. 오랫동안 비디오 코덱은 비디오의 해상도(즉, 픽처당 코딩된 샘플들 행렬의 크기)를 변경하고 진행 중인 픽처의 예측 종속성을 깨는 것을 독립적으로 코딩된 특정 픽처(IRAP)에서만 허용해왔다. 그와 같은 독립 랜덤 액세스 포인트(IRAP)에서 디코딩 프로세스가 시작될 수 있고, IRAP가 다음에 발생할 때까지 단일 해상도의 화상이 출력될 수 있다. 개방형 GOP 구조에서의 리딩 픽처의 개념은 다음 도 26a에 도시된 바와 같이 연관된 IRAP 및 선행 IRAP와의 상호 의존성을 갖는 픽처들를 도입한다.
도 26a는 개방형 GOP CRA 스위칭에서 드리프트 영향을 받는 픽처를 예시한다. 즉, 도 26a는 소위 CRA 픽처들에서의 오픈 GOP 스위칭을 보여준다. 관련된 리딩 픽처들은 IRAP, TRAIL, DRAP, GDR 등과 같은 비-리딩(non-leading) 픽처가 발생할 때까지 드리프트의 영향을 받는다. 그렇지만 코덱 관점에서 이 방식은 동일한 해상도의 스트림들 사이에서만 가능하곤 했다. 또한 파일 포맷에서 이러한 사용 사례의 지원은 CRA는 차치하고 후행 픽처들(trailing pictures)(POC 5 이상)만 디코딩 가능성을 보장하고 선행 픽처들에 대해서는 디코딩 가능성을 보장하지 않도록 제한된다.
새롭게 부상하는 VVC와 같은 최신 세대 코덱을 사용하면 비-IRAP 픽처들인 픽처들에서도 해상도를 변경할 수 있다. 이는 인터-예측 체인에 추가적인 리샘플링 단계를 통합함으로써 달성되며, 이에 따라 현재 픽처들과 해상도가 다른 참조 픽처들이 참조용으로 사용될 수 있으므로 IRAP들 간의 픽처들에서도 해상도 변경이 발생할 수 있다.
이 특징은 저지연 대화 시나리오에서 특히 유용할 수 있는데, 이 시나리오에서 전송자는 비트율당 비용이 높은 IRAP를 보낼 필요가 없이 비디오 해상도를 조정할 수 있다(예컨대, 대역폭 문제의 경우). 그렇지만 주문형비디오 세그먼트 기반 스트리밍 시나리오에서는, 이 기능을 사용하여 해상도 스위칭(이것이 통상의 경우임)에 의한 비트율 적합화를 허용함으로써, 클라이언트가 IRAP로 시작되는 세그먼트들을 기다리지 않고서 상이한 컨텐트 버전들(예컨대, 720p 및 1080p) 간에 스위칭을 할 수 있게 하는 것을 생각해볼 수 있다. 그렇지만 중요한 차이점은 이러한 스위칭은 단일 인코더에 의해서는 계획하기 어렵고 디코딩된 픽처들 중 일부에서 상당량의 아티팩트 또는 드리프트가 발생할 가능성이 있다는 것이다. 도 26b은 설명된 시나리오를 도시하는 것으로서, 어떤 픽처들이 드리프트에 의해 영향을 받는지를 보여준다. 즉, 도 26b는 스위칭이 발생할 때 후행 픽처들에서 드리프트 영향을 받는다는 것을 보여준다.
VVC와 같은 새롭게 부상하는 코덱의 맥락에서 추가적인 응용예가 있는데, 예를 들어 도 26c에 도시된 바와 같은 GDR 기반 스트림에서 리프레시되지 않은 영역들은 이와 같은 GDR 사이클로 스위칭될 때 드리프트의 영향을 받을 수 있다.
그와 같은 코딩된 비디오 데이터에 대한 파일 포맷의 관점에서, 스위칭할 상이한 버전들은 일반적으로 별도의 트랙들에 저장되며 스위칭 이벤트에는 첫 번째의 스위칭-전 트랙(switching-from track)과 두 번째의 스위칭-후 트랙(switching-to track)을 관여된다. 제어가능한/선험적으로-결정가능한 양만큼의 아티팩트/드리프트로 그와 같은 스위칭이 발생할 수 있는 (스위칭-후 트랙의) 샘플들을 식별하기 위한 정보와, 그와 같은 아티팩트/드리프트의 특성에 대한 추가적인 정보를 파일 포맷 컨테이너에 제공하는 것이 중요한다. 위에서 설명한 바와 같이, 그러한 비-IRAP 픽처들은 예를 들어 일반 후행 픽처들 또는 GDR 픽처들 또는 STSA 픽처들 등일 수 있다.
그러므로, 본 발명의 일부로서 제1 실시예에서는, 스위칭-전 트랙의 이전 샘플들이 참조에 이용될 수 있을 때 스위칭-후 트랙(스위칭-후 트랙의 스위칭 포인트 픽처를 포함하거나 제외하고)의 특정 샘플들이 디코딩될 수 있다는 표시가 FF에 제공된다(예컨대, SAP 타입, 동기 샘플 타입, 구성 레코드 정보, 또는 트랙당, 트랙당-그룹당, 샘플당, 샘플당-그룹당 단위로 이 정보를 제공하는 별도의 박스를 통해서). 트랙 그룹의 예시적인 실시예와 관련하여, 그와 같은 트랙 그룹들은 예를 들어 트랙들 세트를 포함하며, 트랙 그룹에 포함된 트랙들 사이에서 드리프트-유발 스위칭이 가능함을 표시한다. 샘플 그룹의 예시적인 실시예와 관련하여, 그와 같은 샘플 그룹들은 트랙 그룹 사이에서 스위칭이 될 때 스위칭 포인트 픽처 및 드리프트 영향 픽처들을 포함하게 된다.
추가적인 실시예에서는, 위와 비슷하게(예컨대, SAP 타입, 동기 샘플 타입, 구성 레코드 정보, 또는 트랙당, 트랙당-그룹당, 샘플당, 샘플당-그룹당 단위로 이 정보를 제공하는 별도의 박스를 통해서), 그와 같은 드리프트-영향받는 픽처들이 디코딩될 때, 트랙 그룹에 있는 어떤 트랙에 대한 참조 샘플들이 이용될 수 있을 때 샘플들이 받아들일만한 품질로 되어 있다는 표시가 파일 포맷으로 주어질 수 있다. 다시 말해서, 실시예들은 TMVP, ATMVP, DMVR, BIO, 즉 추가 모션 벡터 예측 관련 도구 또는 구문 예측 기반 도구와 같은 드리프트 영향을 받는 화상에서 드리프트-영향받는 픽처들에서 심각한 드리프트를 유발하는 임의의 인터-예측 툴들(예컨대, TMVP, ATMVP, DMVR, BIO), 즉 추가적인 움직임벡터 예측 관련 툴들 또는 구문-예측 기반 툴들이 없으며, 그 대신에 픽셀 값 기반 예측만이 드리프트-영향받는 픽처들에 의해 사용된다는 것을 표시하는 것이다.
추가적인 실시예에서는, 위와 비슷하게(예컨대, SAP 타입, 동기 샘플 타입, 구성 레코드 정보, 또는 트랙당, 트랙당-그룹당, 샘플당, 샘플당-그룹당 단위로 이 정보를 제공하는 별도의 박스를 통해서), 드리프트 지속시간, 즉 스위칭 포인트부터 스위칭-후 트랙의 마지막 드리프트-영향받는 픽처까지의 지속시간에 대한 표시가 초 단위로 또는 픽처들 개수로서 파일 포맷으로 주어질 수 있다. 이 정보는 애플리케이션들이 주관적으로 가장 영향이 적을 때, 예컨대 영역이 뷰포트 밖으로 이동했을 때, 스위칭 이벤트를 계획할 수 있도록 도움이 될 수 있다.
4. 도 27에 따른 파일 파서, 파일 생성기, 및 파일
도 27은 제4 양태의 실시예에 따른 파일 파서(60)를 보여준다. 파일 파서는 선택적으로 도 1의 파일 파서(10)에 따를 수 있다. 도 27에는 파일 파서(60)과 연계된 비디오 디코더(78), 예컨대 비디오 디코더(17)이 함께 도시되어 있다. 파일 파서(60)는 파일(62)을 수신할 수 있는데, 파일(62)는 선택적으로 파일(110)에 상응할 수 있다. 파일(62)은 트랙(64)에 대한 샘플 엔트리(68)(예컨대, 섹션 0에 설명한 샘플 엔트리)를 포함할 수 있고, 상기 샘플 엔트리(68)는 트랙(64)에 삽입되거나 트랙이 속하는 파일(62)의 트랙 그룹의 비디오 비트스트림(76)의 각각의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링한다. 예를 들어, 비디오 파라미터는 참조 픽처 인덱스, 픽처 크기, 및/또는 특정 보간 툴의 활성화에 대해 허용되는 최고값과 관련될 수 있다. 파일(62)은 트랙(64) 또는 트랙 그룹에 대한 모든 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 소정의 디코더 능력, 예컨대 필요한 메모리 할당 마운트, 픽처 출력 크기, CPB 크기 등 중에서 하나 이상의 관점에서의 성능을 충족하는지 여부를 나타내는 표시(66)를 더 포함할 수 있다. 비디오 파라미터들이 참조하는 비디오 비트스트림(76)은 예컨대 파서(60)에 의해 파일(62)로부터 디코더(78)로 포워딩되는 비디오 비트스트림, 예컨대 도 1의 비디오 비트스트림(190)일 수 있다. 각각의 코딩된 비디오 시퀀스(70)는, 예컨대 코딩/스트림 순서(74) 상으로, 비디오 비트스트림(76)의 RAP(72), 예컨대 IRAP에서 시작하여 비디오 비트스트림의 후속 RAP(72) 앞에서 비디오 비트스트림(76)의 후속 RAP(72) 앞에서 끝난다.
파일 파서(60)는 파일(62)로부터 표시(66)를 도출할 수 있다. 비디오 비트스트림(76)의 각각의 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리(68)가 표시(66)에 의해 소정의 디코더 능력을 충족하도록 표시되면, 파일 파서(60)는 코딩된 비디오 시퀀스(76)를 받아들이는 비디오 디코더(78)를 코딩된 비디오 시퀀스(70)이 시작하는 RAP(72)(도 27에서 단순 해칭된 것으로 가정함)에서 현재 초기화된 것과 같이 떠날 수 있다. 즉, 이 경우에 파일 파서(60)는 비디오 디코더(78)의 재초기화를 생략할 수 있다. 파일 파서(60)는 RAP(즉, 단순 해칭된 것)에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 선행하는 코딩된 비디오 시퀀스(즉, 크로스-해칭된 것)에 대한 파일에 존재하는 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들에서 벗어나는지 여부에 관계없이 재초기화를 생략할 수 있다. 대안으로서 또는 추가적으로, 파일 파서(60)는 비디오 디코더(78)의 현재 초기화와 충돌하는(예컨대 필요한 메모리 할당 마운트, 픽처 출력 크기, CPB 크기 중에서 하나 이상의 관점에서 충돌하는) RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들에 관계없이 재초기화를 생략할 수 있다.
예를 들어, 표시(66)는 비디오 비트스트림(76)의 각각의 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리들(68)이 소정의 디코더 능력을 충족하는지 여부를 표시하는 구문 요소 또는 구문 구조일 수 있다. 예들에서, 파일 파서(60)는 비디오 비트스트림(76)의 각각의 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리들(68)이 소정의 디코더 능력을 충족하는지 여부를 파일(62)의 구문 요소 또는 구문 구조의 존재 또는 부재로부터 도출할 수 있다.
예를 들어, 표시가 트랙(64)에 대하여 파일에 존재하는 모든 샘플 엔트리들이 소정의 디코더 능력을 충족하는 코딩된 비디오 시퀀스에 신호 비디오 파라미터들을 시그널링하는 것을 표시하지 않는다면, 파일 파서(60)는 제1 기준 및/또는 제2 기준에 따라서 코딩된 비디오 시퀀스가 시작하는 RAP에서 비디오 디코더의 재초기화를 개시할 수 있다. 충족되는 제1 기준은 IRAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 선행하는 코딩된 비디오 시퀀스에 대하여 파일에 존재하는 샘플 엔트리에 의해 시그널링되는 비디오 파라미터들로부터 벗어나는지 여부에 의존할 수 있다. 다시 말해서, 샘플 엔트리가 변경되고, 트랙(64)에 대하여 파일에 존재하는 모든 샘플 엔트리들이 소정의 디코더 기능을 충족하는 코딩된 비디오 시퀀스에 대한 비디오 파라미터들을 시그널링한다는 것을 표시(66)가 표시하지 않으면, 파일 파서는 비디오 디코더(78)를 재초기화할 수 있다. 충족되는 제2 기준은 비디오 디코더의 현재 초기화와 충돌하는 IRAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들에 의존할 수 있다.
예를 들어, 파일 파서(60)는 디코더 능력 관련 비디오 파라미터들, 예컨대 DCI NAL 유닛들을 트랙과 관련있는 파일의 섹션으로부터 도출하고, 트랙 또는 트랙 그룹으로부터의 비디오 비트스트림(76)을 비디오 디코더로 포워딩하고, 디코더 기능 관련 비디오 파라미터들을 코딩된 비디오 시퀀스가 시작되고 그에 대한 샘플 엔트리들이 트랙에 존재하는 RAP들에서 비디오 디코더(76)에 제공할 수 있다.
예를 들어, 비디오 디코더의 초기화(및 재초기화)는 코딩된 픽처 버퍼 크기, 할당된 메모리의 양, 및/또는 할당된 프로세서 디코더 커널의 수 중 하나 이상에 영향을 미친다.
표시(66)는 불필요한 디코더 재초기화를 피할 수 있게 해준다. 예를 들어, VVC는 디코더 기능 정보(Decoder Capability Information: DCI)라고 하는 새로운 구문 구조를 가지며, 이 구문 구조는 예컨대 HEVC와 같은 이전 코덱의 Parameter Sets와 같은 대비 가능한 구문 구조와는 상이한 범위를 가진다. DCI는 Parameter Sets가 각각의 범위에 대해 그와 같은 정보를 포함하는 방식과 유사하게 비트스트림의 프로파일 타이어 레벨에 대한 제한 정보를 수반한다. 그렇지만 이전의 비디오 코딩 표준에서는 이러한 파라미터 세트의 범위가 단일의 코딩된 비디오 시퀀스(CVS), 즉 IRAP에서 IRAP까지를 넘어서서 지속될 수가 없다. 이제 VVC를 사용하면 프로파일 타이어 레벨 제한 보장은 다수의 IRAP 기간을 연결시킨 것에 걸친 범위로, 즉 비트스트림의 첫 번째 CVS 시작부터 비트스트림의 끝까지의(예컨대, 비트스트림 끝 NAL 유닛을 통해 시그널링됨) 모든 데이터를 수반하는 비트스트림으로서 정의되는 것으로 표현될 수 있다.
예를 들어, HEVC 코딩된 비디오의 세 개의 CVS가 비트스트림으로 연결되는 경우를 상상해본다. 이 예가 파일 포맷 컨테이너로 패킷화될 때, 각각의 트랙에는 세 개의 샘플 엔트리가 수반되며, 각 샘플 엔트리는 각각 새롭고 잠재적으로 상이한 파라미터 세트들을 포함한다. ISO/IEC 14496-15의 섹션 4.10은 참고정보 섹션(informative section)에서 "파일 파서에서 출력되는 비트스트림을 디코딩하는 비디오 디코더는 샘플 엔트리가 변경되는 첫 번째 샘플에서 리셋될 것으로 예상된다"고 기술하고 있으며, 이는 설명된 시나리오에 있어서 파일을 파싱하는 애플리케이션은 디코더를 초기화할 필요가 있다는 것을 의미한다. VVC 이전에는 프로파일 타이어 레벨과 같은 디코더 초기화와 관련된 파라미터 세트 섹션을 비트스트림에서 일정하게 유지되도록 표시할 수단이 없었다.
그렇지만 VVC 코딩된 비디오 CVS에 기초한 위의 예를 생각해보면, 비트스트림이 전체 비트스트림(즉, 위에서 언급한 3개의 연결된 비디오 시퀀스)을 디코딩하는 데 필요한 최대 능력을 기술하는 각 IRAP에서 DCI들을 포함할 수 있다. 따라서 HEVC에서와 같이 각 샘플 엔트리의 configuartionRecords가 VPS/SPS/PPS 쌍들을 전달하는 3개의 샘플 엔트리들이 존재하게 된다. 그렇지만 요구되는 개별 샘플 엔트리들이 존재하는 각 CVS에 대한 단일 DCI가 있다면(예컨대, 디코더 재초기화를 필요로 하지 않거나 변경이 전혀 없는 파라미터 변경의 경우), 모든 샘플 엔트리가 단일 DCI를 가지는 것과 디코더 리셋이 필요하지 않다는 것을 표시하는 것이 여전히 유익할 것이다.
첫 번째 실시예에서는, 트랙의 모든 샘플 엔트리들이 동일한 DCI 내용을 갖고 있다는 표시가 파일 포맷 컨테이너에 추가되어, DCI에 의해 기술된 동작 포인트에서의 단일 디코더 초기화가 각각의 디코더의 초기화(또는 리셋) 없이 전체 비트스트림을 디코딩하기에 충분한다.
예를 들어, 본 발명은 샘플 설명 박스 'stsd'의 플래그들을 사용하여 동일한 DCI가 트랙 내의 모든 샘플 엔트리들에 적용됨을 표시할 수 있다. 현재의 'stsd' 박스는 플래그를 사용하지 않는다(플래그=0). 보다 구체적으로, 샘플 설명 박스(즉, 트랙)의 샘플 엔트리들 간에 변경을 위해 디코더 재초기화를 생략할 수 있다면 플래그가 시그널링을 하게 된다. 그러므로 플래그가 1로 설정되면 구성 레코드 변경(즉, 샘플 엔트리들의 변경)이 디코더 재초기화를 필요로 하지 않는다.
Figure pct00016
의미론:
플래그가 1로 설정되면, stsd 박스의 모든 샘플 엔트리들은 전체 트랙(예: VVC의 DCI) 디코딩에 필요한 최대 기능을 기술하는 동일한 파라미터들을 포함하며, 따라서 디코더의 전체적인 재초기화 없이 스위칭될 수 있다.
본 발명의 다른 실시예에서는, 각 트랙이 트랙에 있는 미디어의 특성 정보를 기술하는 필수 미디어 정보 박스 'minf'를 갖는다. 이 새로운 박스에는 해당 트랙의 모든 샘플 엔트리들에 사용되는 DCI NAL 유잇이 포함된다.
그와 같은 디코더 구성 박스의 예는 다음과 같다.
정의
박스 타입: 'dcfg'
컨테이너: MediaInformationBox
필수: 아니오
수량: 정확히 1개
DecoderConfigurationBox에는 트랙의 모든 샘플 엔트리들에 유효한 디코더 구성 정보가 포함되어 있다. 이 박스가 있으면 플레이어는 디코더를 다시 초기화하지 않고도 샘플 엔트리들을 스위칭할 수 있다. 이 박스의 NAL 유닛들은 DCI NAL 유닛들을 제외하고 선택된 샘플 엔트리로부터의 NAL 유닛들로 덮어쓸 수 있다.
구문
Figure pct00017
의미론
numOfArrays는 표시된 타입(들)의 NAL 유닛들의 배열들의 개수를 표시한다.
array_completeness는 1일 때에는 주어진 타입의 모든 NAL 유닛들이 다음 배열에 있고 스트림이나 샘플 엔트리에는 없음을 표시하며; 0일 때에는 표시된 타입의 추가적인 NAL 유닛들이 스트림 또는 샘플 엔트리에 있을 수 있음을 표시한다.
NAL_unit_type은 다음 배열에서의 NAL 유닛의 타입을 표시한다(모두 그 타입이어야 함). ISO/IEC 23009-3에서 정의된 값을 취한다. DCI, VPS, SPS, PPS, 접두사 SEI 또는 접미사 SEI NAL 유닛를 표시하는 값들 중 하나를 취하도록 제한된다.
numNalus는 디코더 구성 박스에 포함되는 표시된 타입의 NAL 유닛들의 개수를 표시한다. SEI 배열은 '선언적' 성격의 SEI 메시지, 즉 스트림 전체에 대한 정보를 제공하는 메시지만 포함해야 한다.
nalUnitLength는 NAL 유닛의 바이트 길이를 표시한다.
nalUnit은 ISO/IEC 23009-3에 명시된 바와 같이 DCI, SPS, PPS, VPS 또는 선언적 SEI NAL 유닛을 포함한다.
다른 실시예에서는, 트랙 그룹에 속하는 개별 트랙의 개별 샘플 엔트리들에 있는 제2 DCI에 관계없이, 재생될 때 단일 제1 DCI에 의해 구성되는 제한을 따르도록 트랙 그룹이 표시된다. 제1 DCI는 위에서 설명한 바와 같이 명시적 시그널링을 통해 전달되거나, 위와 같이 더 넓은 지속성/범위를 갖도록 플래그를 통해 표시될 수 있다.
비록 일부 양태가 장치의 맥락에서 설명되었지만, 그와 같은 양태는 상응하는 방법에 대한 설명을 나타낼 수도 있으며, 이때 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 마찬가지로, 방법 단계의 맥락에서 설명한 양태는 또한 상응하는 장치의 대응 블록 또는 항목 또는 특징의 설명을 나타낼 수 있다.
방법 단계들의 일부 또는 전부는 예를 들어 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 사용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계들 중 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
본 발명의 인코딩된 영상 신호 또는 파일은 디지털 저장 매체에 저장되거나 무선 전송 매체 또는 인터넷과 같은 유선 전송 매체와 같은 전송 매체를 통해 전송될 수 있다.
어떤 구현 요건들에 따라서는, 본 발명의 실시예들이 하드웨어로 또는 소프트웨어로 또는 적어도 부분적으로 하드웨어로 또는 적어도 부분적으로 소프트웨어로 구현될 수 있다. 구현은 전자적으로 판독가능한 제어신호들이 저장되어 있고 각각의 방법이 수행될 수 있도록 프로그래밍 가능한 컴퓨터 시스템과 협력하는(또는 협력할 수 있는) 디지털 저장 매체, 예컨대 플로피 디스크, 디지털 비디오 디스크(DVD), 블루레이(Blu-Ray), 컴팩트 디스크(CD), 롬(ROM), 프로그래머블 롬(PROM), 삭제기록 가능형 롬(EPROM), 전기적 삭제기록 가능형 롬(EEPROM) 또는 플래시 메모리를 사용하여 이루어질 수 있다. 그러므로, 디지털 저장 매체는 컴퓨터 판독 가능할 수 있다.
본 발명에 따른 일부 실시예들은 전자적으로 판독가능한 제어신호를 갖는 데이터 캐리어를 포함하고, 이 데이터 캐리어는 본 명세서에서 설명한 방법들 중 하나가 수행될 수 있도록 프로그램 가능한 컴퓨터 시스템과 협력할 수 있다.
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 상기 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법들 중 하나를 수행하기 위하여 동작할 수 있다. 상기 프로그램 코드는 예컨대 기계 판독 가능한 캐리어에 저장될 수 있다.
다른 실시예들은 기계 판독 가능 캐리어에 저장되어 있고 본 명세서에서 설명한 방법들 중 하나를 수행하는 컴퓨터 프로그램을 포함한다.
다시 말해서, 본 발명에 의한 방법의 실시예는 컴퓨터 프로그램이 컴퓨터에서 실행될 때 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
그러므로, 본 발명에 의한 방법들의 추가적인 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 기록되어 있는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터로 판독가능한 매체)이다. 상기 데이터 캐리어, 디지털 저장 매체, 또는 기록 매체는 일반적으로 유형의 매체 그리고/또는 비일시적 매체이다.
그러므로, 본 발명에 의한 방법의 추가적인 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 내지 신호 시퀀스이다. 데이터 스트림 내지 신호 시퀀스는 예컨대 인터넷을 통한 데이터 통신 연결을 통해 전송되도록 구성될 수 있다.
추가적인 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하도록 구성되거나 적합화된 처리 수단, 예컨대 컴퓨터 또는 프로그래밍 가능한 논리 장치를 포함한다.
추가적인 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가적인 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기에 (예컨대, 전자적으로 또는 광학적으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예컨대 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 상기 장치 또는 시스템은 예컨대 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예들에서는, 프로그래밍 가능한 논리 장치(예컨대, 필드 프로그래머블 게이트 어레이)를 사용하여 본 명세서에서 설명한 방법들의 기능 중 일부 또는 전부를 수행할 수 있다. 일부 실시예들에서, 필드 프로그래머블 게이트 어레이는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위하여 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 바람직하기로는 어떤 하드웨어 장치에 의해 수행된다.
본 명세서에서 설명한 장치는 하드웨어 장치를 사용하여 또는 컴퓨터를 사용하여, 또는 하드웨어 장치와 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에서 설명한 방법들은 하드웨어 장치를 사용하여 또는 컴퓨터를 사용하여, 또는 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
전술한 상세한 설명에서는, 개시를 간소화할 목적으로 다양한 특징들이 예시에서 함께 그룹핑된 것을 볼 수 있다. 이 개시 방법은 특허청구한 예들이 각 청구항에서 명시적으로 인용한 것보다 더 많은 특징들을 필요로 한다는 의도를 반영한 것이라고 해석되어서는 안된다. 오히려, 다음 청구항들이 반영하는 바와 같이, 발명의 주제는 개시된 단일 예의 모든 특징들보다 적은 수의 특징들로 구성될 수 있다.
따라서 다음 청구항들은 상세한 설명에 통합되며, 여기서 각 청구항은 그 자체로서 별도의 예일 수 있다. 각 청구항이 그 자체로서 별도의 예로 성립될 수 있지만, 비록 종속항이 청구항에서 하나 이상의 다른 청구항의 특정 조합을 언급할지라도, 다른 예들은 종속항과 각 다른 종속항의 주제의 조합, 또는 각 특징과 다른 종속항 또는 독립항의 조합을 포함할 수 있다. 특정 조합은 의도하지 않는다고 명시되지 않는 한, 그와 같은 조합들은 여기에서 제시된다. 더욱이, 어느 한 청구항의 특징들을 다른 임의의 독립항에 포함시킬 수도 있는데, 비록 이와 같은 청구항이 해당 독립항에 직접적으로 종속하도록 되어 있지 않더라도 이러한 구성이 가능하다.
위에서 설명한 실시예들은 본 발명의 원리를 단지 예시하기 위한 것일 뿐이다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람은 본 명세서에 설명한 배치들과 세부사항들을 수정하거나 변형할 수 있음이 자명함을 이해할 것이다. 그러므로, 본 발명의 범위는 후술하는 청구항들에 의해서 정해져야 하고, 본 명세서의 실시예들에 대한 기술과 설명을 통해 제공된 특정 세부사항에 한정되어서는 안된다.

Claims (146)

  1. 코딩된 비디오 시퀀스를 시그널링하는 파일(110;210;310;410;510)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내고, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)를 따르는 상기 트랙들 세트의 트랙들 부분집합(180)을 도출하고,
    상기 트랙들 세트의 서브-스트림들을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  2. 청구항 1에 있어서,
    상기 파일의 상기 설명 데이터로부터, 상기 소정의 동작 포인트(102)와 연관된 레이어 식별자들 세트(2621)를 도출하고,
    상기 트랙들(121) 세트(120) 각각에 대하여,
    상기 파일 내에 있는 상기 설명 데이터로부터, 각각의 트랙(121)이 상기 레이어 식별자들 세트(2621)의 레이어 식별자들(264) 중 하나와 연관되는지 여부를 도출하고,
    상기 각각의 트랙이 상기 레이어 식별자들 세트(2621)의 상기 레이어 식별자들 중 하나와 연관되어 있는 경우, 상기 각각의 트랙을 상기 트랙들 부분집합에 선택적으로 할당하도록
    구성되는, 파일 파서.
  3. 청구항 2에 있어서,
    상기 트랙들 세트 각각에 대하여,
    상기 설명 데이터 내에 있고 각각의 트랙에 연관되어 있는 트랙 그룹 구문 구조(230)로부터, 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트와, 레이어 식별자들(264) 세트들(262)의 세트의 레이어 식별자들 한 세트를 상기 동작 포인트들 각각에 할당하는 맵핑 규칙을 도출하고,
    상기 트랙 그룹 구문 구조로부터, 상기 소정의 동작 포인트(102)에 연관된 상기 레이어 식별자들 세트(2621)를 도출하도록
    구성되는, 파일 파서.
  4. 청구항 3에 있어서,
    상기 트랙 그룹 구문 구조가 상기 트랙 그룹 구문 구조에 의해 기술되는 상기 동작 포인트들 각각에 대한 타이어, 레벨, 프로파일, 및 제약조건 세트에 대한 정보를 포함하는, 파일 파서.
  5. 청구항 1에 있어서,
    상기 설명 데이터 내에 있고 각각이 동작 포인트들 세트 중 하나를 기술하는 동작 포인트 트랙 그룹들(334) 세트(332)를 검출하고,
    상기 트랙들 세트(120) 각각에 대하여,
    상기 파일의 상기 설명 데이터로부터, 각각의 트랙이 상기 소정의 동작 포인트(102)를 기술하는 상기 동작 포인트 트랙 그룹들(334) 세트(332)의 동작 포인트 트랙 그룹(334B)와 연관되어 있는지 여부를 도출하고, 만약 그렇다면
    상기 각각의 트랙을 상기 트랙들 부분집합(180)에 선택적으로 할당하도록
    구성되는, 파일 파서.
  6. 청구항 5에 있어서,
    상기 각각의 트랙 그룹은 트랙 그룹 식별자로 식별되고,
    상기 파일 파서가
    상기 동작 포인트 트랙 그룹의 트랙 그룹 식별자들의 표시로부터, 상기 각각의 트랙에 의해 상기 트랙들 중 하나와 상기 동작 포인트 트랙 그룹들 중 하나 사이의 연관을 도출하도록
    구성되는, 파일 파서.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서,
    상기 동작 포인트 트랙 그룹들 각각은 각각의 동작 포인트 트랙 그룹에 의해 기술되는 상기 동작 포인트에 대한 타이어, 레벨, 프로파일, 및 제약조건 세트에 대한 정보를 포함하는, 파일 파서.
  8. 청구항 2에 있어서,
    상기 파일의 상기 설명 데이터로부터, 레이어 식별자들(264) 세트들(262)의 세트(260) 중 하나를 상기 소정의 동작 포인트(102)를 포함하는 동작 포인트들 세트(240)의 각각에 할당하는 엔티티 그룹 구문 구조(436)를 도출하고,
    상기 엔티티 그룹 구조로부터 상기 소정의 동작 포인트(102)에 대한 레이어 식별자들 세트(2621)를 도출하도록
    구성되는, 파일 파서.
  9. 코딩된 비디오 시퀀스를 시그널링하는 파일(510)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내고, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 도출하고,
    상기 트랙들 세트의 서브-스트림들을 상기 비디오 비트스트림으로 포워딩하도록
    구성되고,
    상기 파일의 상기 설명 데이터로부터, 트랙 식별자들(543) 세트들(542)의 세트(540) 중 하나를 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트(240)의 각각에 할당하는 엔티티 그룹 구문 구조(538)를 도출하고,
    상기 소정의 동작 포인트(102)에 대한 상기 트랙들 부분집합(180)을 상기 엔티티 그룹 구문 구조에 의해 상기 소정의 동작 포인트에 할당된 트랙 식별자들 세트(5421)로부터 도출하도록
    구성되는, 파일 파서.
  10. 코딩된 비디오 시퀀스를 시그널링하는 파일(110;210;310;410;510)의 트랙들 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내고, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 도출하고,
    상기 트랙들 세트의 서브-스트림들을 상기 비디오 비트스트림으로 포워딩하도록
    구성되고,
    상기 파일의 상기 설명 데이터로부터, 상기 소정의 동작 포인트(102)를 기술하고 상기 소정의 동작 포인트(102)와 연관된 상기 트랙들 부분집합(180)의 트랙들을 식별하는 동작 포인트 엔티티 그룹 구문 구조(538)를 도출하고,
    상기 동작 포인트 엔티티 그룹 구문 구조로부터, 상기 트랙들 부분집합(180)을 도출하도록
    구성되는, 파일 파서.
  11. 청구항 10에 있어서,
    상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트를 포함하는 동작 포인트들의 세트(240)를 기술하고, 상기 동작 포인트 엔티티 그룹 구문 구조는, 상기 동작 포인트들 각각에 대해, 상기 동작 포인트와 연관된 트랙들 세트를 표시하는,
    파일 파서.
  12. 청구항 9 또는 10 내지 11 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조의 상기 트랙 식별자들에 의해 식별되는 각 트랙은 상기 트랙의 하나 이상의 레이어들에 대한 정보를 포함하는,
    파일 파서.
  13. 청구항 9 또는 10 내지 12 중 어느 한 항에 있어서,
    상기 트랙들 부분집합의 각각에 대하여, 상기 트랙의 박스로부터, 상기 트랙에 포함된 하나 이상의 레이어들을 식별하는 레이어 정보를 도출하도록
    구성되는, 파일 파서.
  14. 청구항 9 또는 10 내지 13 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조는 상기 동작 포인트들의 각각의 설명들을 포함하는,
    파일 파서.
  15. 청구항 9 또는 10 내지 14 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조가, 상기 동작 포인트들 각각에 대하여, 상기 동작 포인트에 대한 타이어, 레벨, 프로파일, 및 제약조건 세트에 대한 정보를 포함하는, 파일 파서.
  16. 코딩된 비디오 시퀀스를 시그널링하는 파일(610,710)의 트랙(121)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙(121)은 상기 비디오 시퀀스의 샘플들(650)의 시퀀스를 포함하고, 상기 샘플들(650) 각각은 상기 파일의 복수의 비트스트림 부분들(654)을 포함하며, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 상기 트랙의 상기 샘플들의 각각의 상기 비트스트림 부분들의 부분(658)을 도출하되, 여기서 상기 비트스트림 부분들의 상기 부분(658)은 소정의 동작 포인트(102)에 의해 요구되는 것이며,
    상기 샘플들의 각각의 상기 비트스트림 부분들의 상기 부분을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  17. 청구항 16에 있어서,
    상기 파일 내에 있는 설명 데이터로부터,
    트랙(121)의 샘플(650)의 세트(764)가 상기 소정의 동작 포인트(102)에 의해 부분적으로 요구되는 상기 트랙(121)의 상기 샘플들(650)의 세트(764)를 표시하는 샘플 그룹(762)를 도출하고,
    상기 설명 데이터로부터, 상기 샘플 그룹의 상기 샘플들 각각의 상기 비트스트림 부분들의 어느 부분이 상기 소정의 동작 포인트에 의해 요구되는지를 도출하고,
    상기 샘플 그룹의 상기 샘플들(764) 각각의 상기 비트스트림 부분들(654)의 상기 부분(766)과, 상기 샘플 그룹에 의해 표시되지 않은 상기 샘플들(764) 각각의 모든 비트스트림 부분들(654)을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  18. 청구항 17에 있어서,
    상기 설명 데이터 내에 있는 서브트랙 구문 구조(870)로부터, 소정의 타입의 비트스트림 부분 구문 요소(872)와, 상기 샘플 그룹(762)의 샘플(764)의 비트스트림 부분이 상기 소정의 동작 포인트에 의해 요구되는지를 표시하기 위한 기준으로서 사용될 관련된 소정 값을 도출하고,
    상기 샘플 그룹의 상기 샘플들 각각의 각 비트스트림 부분에 대하여,
    상기 설명 데이터로부터, 각각의 비트스트림 부분의 상기 소정의 타입의 비트스트림 부분 구문 요소의 값을 도출하고,
    상기 소정의 타입의 비트스트림 부분 구문 요소의 상기 값이 소정의 값에 해당하는 경우, 상기 소정의 동작 포인트에 의해 요구되는 대로 상기 각각의 비트스트림 부분을 선택적으로 처리하도록
    구성되는, 파일 파서.
  19. 청구항 17에 있어서,
    상기 샘플 그룹의 상기 샘플들 각각에 대하여,
    상기 설명 데이터 내에 있는 서브샘플 구문 구조(974)로부터, 상기 소정의 동작 포인트와, 각각의 샘플을 포함하는 상기 트랙의 부분 내의 바이트 범위 사이의 매핑 규칙을 도출하고,
    각각의 비트스트림 부분이 상기 매핑 규칙에 의해 표시되는 상기 각각의 샘플의 상기 바이트 범위의 부분인 경우, 상기 소정의 동작 포인트에 의해 요구되는 대로 상기 각각의 비트스트림 부분을 선택적으로 처리하도록
    구성되는, 파일 파서.
  20. 코딩된 비디오 시퀀스를 시그널링하는 파일(1010)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙들의 각각은 상기 비디오 시퀀스의 샘플들(130) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는 샘플들을 포함하는 트랙들(121)의 세트(120)의 트랙들(121) 부분집합(1080)을 도출하고,
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 도출하고,
    트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 각각의 부분(1074)을 선택적으로 포워딩하도록
    구성되는, 파일 파서.
  21. 청구항 20에 있어서,
    상기 설명 데이터로부터, 상기 트랙들 부분집합(1080)의 표시된 트랙(1211)에 대하여, 상기 표시된 트랙(1211)의 샘플들의 세트(1184)를 추가적인 트랙들로부터 독립적인 것으로 표시한 샘플 그룹(1182)을 도출하고,
    상기 표시된 트랙의 상기 샘플들(10741)을 상기 비디오 비트스트림(190)으로 포워딩하고,
    상기 샘플 그룹에 의해 표시되지 않은 상기 표시된 트랙(1211)의 각 샘플(1151)에 대하여, 상기 트랙들 부분집합(180)의 추가적인 트랙들(121B)의 각각에 대해 상기 표시된 트랙의 각각의 샘플과 동일한 타임스탬프(1186)를 갖는 상기 각각의 트랙의 상기 샘플들의 샘플(1152)을 검출하고, 검출된 샘플을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  22. 청구항 20에 있어서,
    상기 트랙들 부분집합(1080)의 트랙들 각각에 대하여
    상기 설명 데이터가 상기 각각의 트랙에 대하여 상기 소정의 동작 포인트(102)와 연관된 동작 포인트 샘플 그룹(1182)을 표시하는지를 검출하되, 여기서 상기 동작 포인트 샘플 그룹은 상기 소정의 동작 포인트에 의해 요구되는 상기 각각의 트랙의 상기 샘플들을 나타내고,
    그렇다면, 상기 각각의 트랙(121)의 상기 표시된 샘플들(1074B)을 상기 비디오 비트스트림으로 선택적으로 포워딩하고,
    그렇지 않다면, 상기 각각의 트랙의 모든 샘플들(10741)을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  23. 청구항 20에 있어서,
    상기 파일의 상기 설명 데이터로부터, 상기 소정의 동작 포인트와 연관된 레이어 식별자들(1362) 세트를 도출하고,
    상기 트랙들 세트의 각각에 대하여
    상기 파일 내에 있는 상기 설명 데이터로부터, 트랙이 상기 레이어 식별자들 세트의 레이어 식별자들(264) 중 하나와 연관되어 있는지 여부를 도출하고,
    상기 각각의 트랙이 상기 레이어 식별자들 세트 중 하나와 연관되어 있으면,
    상기 각각의 트랙을 상기 트랙들 부분집합(1080)에 선택적으로 할당하고,
    상기 설명 데이터로부터, 상기 각각의 트랙의 상기 샘플들의 부분이 상기 소정의 동작 포인트에 의해 요구되는 샘플들을 나타내는 서브레이어와 연관되어 있는지 여부를 도출하고, 만약 그렇다면
    상기 샘플들의 상기 부분을 상기 비디오 비트스트림으로 포워딩하도록
    구성되는, 파일 파서.
  24. 청구항 20 또는 청구항 23에 있어서,
    상기 설명 데이터로부터, 소정의 동작 포인트(102)를 포함하는 동작 포인트들 세트(240)를 기술하고 레이어 식별자들(1364)의 세트들(1362)의 세트(1360)의 레이어 식별자들(264)의 한 세트(1362)를 상기 동작 포인트들 세트(240)의 각각에 할당하는 매핑 규칙을 포함하는 트랙 그룹 구문 구조(1387)를 도출하되, 여기서 상기 레이어 식별자들 각각은 상기 트랙들 세트의 샘플들 세트와 연관되어 있고, 상기 트랙 그룹 구문 구조는 상기 레이어 식별자들 세트 각각의 레이어 식별자들 각각에 대해 각각의 레이어 식별자와 연관된 샘플들의 부분집합을 나타내는 연관된 서브레이어 식별자를 더 포함하고,
    상기 트랙 그룹 구문 구조(1387)와 연관된 상기 트랙들 각각에 대하여
    상기 트랙 그룹 구문 구조로부터, 상기 소정의 동작 포인트(102)와 연관된 레이어 식별자들 및 서브레이어 식별자들의 소정의 세트(13121)를 도출하고,
    상기 각각의 트랙의 각 샘플에 대하여, 상기 각각의 샘플이 상기 소정의 레이어 식별자들(264) 세트(13121) 및 서브레이어 식별자들(1365)과 연관되어 있으면 상기 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하고, 그렇지 않으면 포워딩하지 않도록
    구성되는, 파일 파서.
  25. 청구항 24에 있어서,
    상기 서브레이어 식별자들 각각은 소정의 샘플 파라미터의 최대값을 나타내고, 각각의 샘플은, 상기 각각의 샘플의 상기 소정의 샘플 파라미터의 값이 상기 레이어 식별자들 및 서브레이어 식별자들의 소정의 세트에 의해 표시되는 상기 최대값의 이하인 경우, 레이어 식별자들 및 서브레이어 식별자들의 소정의 세트에 연관되어 있는 것으로 정의되는,
    파일 파서.
  26. 청구항 20에 있어서,
    상기 설명 데이터로부터, 상기 트랙들 세트의 샘플들(130)에 레벨 인덱스(1491)를 할당하는 레벨 할당 구문 구조(1489)를 도출하되, 여기서 상기 소정의 동작 포인트는 상기 소정의 동작 포인트에 의해 요구되는 상기 샘플들의 상기 레벨 인덱스들을 표시하는 레벨 인덱스들 세트와 연관되어 있고,
    상기 트랙들 각각에 대하여, 상기 트랙이 상기 소정의 동작 포인트와 연관된 상기 레벨 인덱스들 세트의 한 레벨 인덱스와 연관된 샘플들을 포함하는지 여부를 검출하고, 만약 그렇다면 상기 트랙을 트랙들 부분집합에 선택적으로 추가하고,
    상기 설명 데이터로부터, 상기 소정의 동작 포인트와 연관된 샘플 그룹을 도출하되, 여기서 상기 샘플 그룹은, 상기 레벨 인덱스들 세트의 하나 이상의 레벨 인덱스를 상기 소정의 동작 포인트에 의해 요구되지 않는 것으로 표시함으로써, 상기 소정의 동작 포인트에 의해 요구되지 않는 상기 트랙들 부분집합의 상기 샘플들의 세트(1494)를 표시하며
    상기 트랙들 부분집합의 상기 샘플들 각각에 대하여, 각각의 샘플의 상기 레벨이 상기 소정의 동작 포인트에 의해 요구되지 않는 것으로 표시되어 있으면 상기 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하지 않고, 그렇지 않으면 포워딩하도록
    구성되는, 파일 파서.
  27. 청구항 20에 있어서,
    상기 설명 데이터로부터,
    상기 트랙들 부분집합의 소정의 트랙이 상기 소정의 동작 포인트에 의해 요구된다는 것을 도출하고,
    상기 소정의 트랙의 상기 샘플들을 상기 비디오 비트스트림으로 포워딩하고,
    상기 트랙들 부분집합의 추가적인 트랙들 각각에 대하여, 상기 각각의 트랙의 상기 샘플들 각각에 대해 상기 샘플이 상기 동작 포인트에 의해 요구되는 것으로 표시된 샘플들의 샘플 그룹의 부분인지 여부를 검사하여,
    그렇다면, 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하고,
    그렇지 않다면, 상기 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하지 않도록
    구성되는, 파일 파서.
  28. 청구항 27에 있어서,
    상기 각각의 샘플이 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합들 세트 중 어느 것에 속하는지를 나타내는 시간 식별자들의 명시된 세트 중 하나를 갖는 샘플들을 포함하도록 정의되는,
    파일 파서.
  29. 코딩된 비디오 시퀀스를 시그널링하는 파일(1010)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하는 파일 파서(100)로서, 상기 트랙들의 각각은 상기 비디오 시퀀스의 샘플들(130) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 파일 파서가
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는 샘플들을 포함하는 트랙들(121)의 세트(120)의 트랙들(121) 부분집합(1080)을 도출하고,
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 도출하고,
    트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 각각의 부분(1074)을 선택적으로 포워딩하도록
    구성되며,
    상기 트랙들 부분집합(1080) 각각에 대하여
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플들 세트의 샘플 그룹(1595)을 도출하되, 여기서 상기 샘플 그룹은 상기 고려 대상 샘플의 레이어 식별자(1591)에 의존하여 상기 고려 대상 샘플의 시간 식별자(1597)에 대한 제약조건(1596)을 표시하며, 상기 시간 식별자(1596)는 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합의 세트에서 어느 것에 상기 고려 대상 샘플이 속하는지를 표시하고,
    상기 각각의 트랙의 상기 샘플들 각각에 대하여, 상기 각각의 샘플의 상기 시간 식별자(1597) 및 상기 레이어 식별자(1591)를 상기 설명 데이터로부터 도출하고,
    상기 각각의 샘플의 상기 레이어 식별자의 값에 대하여 정의된 바와 같이 상기 각각의 샘플의 상기 시간 식별자가 상기 제한조건 내에 있으면 상기 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하고, 그렇지 않으면 포워딩하지 않도록
    구성되는, 파일 파서.
  30. 청구항 29에 있어서,
    상기 샘플 그룹이 상기 소정의 동작 포인트와 연관된 프로파일 및 레벨에 대한 표시를 포함하는, 파일 파서.
  31. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(110;210;310;410;510)을 생성하는 파일 생성기(20)로서, 상기 트랙들 세트 각각은 비디오 시퀀스의 서브-스트림을 나타내고, 파일 생성기가
    소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 상기 파일 내에 있는 설명 데이터에 표시하도록
    구성되는, 파일 생성기.
  32. 청구항 31에 있어서,
    상기 소정의 동작 포인트(102)와 연관된 레이어 식별자들 세트(2621)를 상기 파일의 상기 설명 데이터에 표시하고,
    상기 트랙들(121) 세트(120)의 각각에 대하여
    각각의 트랙(121)이 상기 레이어 식별자들 세트(2621)의 레이어 식별자들(264) 중 하나와 연관되어 있는지 여부를 상기 파일의 상기 설명 데이터에 표시하도록
    구성되는, 파일 생성기.
  33. 청구항 32에 있어서,
    상기 트랙들 세트의 각각에 대하여
    상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트와, 레이어 식별자들(264) 세트들(262)의 세트의 레이어 식별자들 한 세트를 상기 동작 포인트들 각각에 할당하는 맵핑 규칙을 상기 설명 데이터 내에 있는 트랙 그룹 구문 구조(230)에 표시하되, 상기 트랙 그룹 구문 구조(230)가 상기 각각의 트랙에 연관되어 있는,
    파일 생성기.
  34. 청구항 33에 있어서,
    상기 트랙 그룹 구문 구조가 상기 트랙 그룹 구문 구조에 의해 기술되는 상기 동작 포인트들 각각에 대한 타이어, 레벨, 프로파일, 및 제약조건 세트에 대한 정보를 포함하는,
    파일 생성기.
  35. 청구항 31에 있어서,
    각각의 동작 포인트 세트 중 하나를 기술하는 설명 데이터 내의 동작 포인트 트랙 그룹(334)의 세트(332)를 표시하고,
    트랙 세트(120) 각각에 대하여
    각각의 트랙이 소정의 동작 포인트(102)를 기술하는 동작 포인트 트랙 그룹들의 세트(332)의 동작 포인트 트랙 그룹(334B)과 연관되는지 여부를 파일 내의 설명 데이터에서 표시하도록
    구성되는, 파일 생성기.
  36. 청구항 35에 있어서,
    각각의 트랙 그룹은 트랙 그룹 식별자로 식별되며, 상기 파일 생성기는 각각의 트랙에 의한 각각의 동작 포인트 트랙 그룹의 트랙 그룹 식별자에 의해 식별되는, 파일 생성기.
  37. 청구항 35 또는 청구항 36에 있어서,
    각각의 동작 포인트 트랙 그룹은 티어, 레벨, 프로파일 및 각각의 동작 포인트 트랙 그룹에 의해 기술된 동작 포인트에 대한 제약 세트에 대한 정보를 포함하는, 파일 생성기.
  38. 청구항 32에 있어서,
    파일 내의 설명 데이터에서 엔티티 그룹 구문 구조(436)를 나타내며, 엔티티 그룹 구문 구조는 레이어 식별자(264)의 세트(262)의 세트(260) 중 하나를 소정의 동작 포인트(102)를 포함하는 동작 포인트를 식별하도록
    구성되는, 파일 생성기.
  39. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(510)을 생성하는 파일 생성기(20)로서, 상기 트랙들 세트의 각각이 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일 생성기는
    소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 상기 파일 내에 있는 설명 데이터에 표시하고,
    상기 파일 생성기는
    상기 파일 내에 있는 상기 설명 데이터에, 엔티티 그룹 구문 구조를 표시하되, 상기 엔티티 그룹 구문 구조는 트랙 식별자들 세트들의 세트 중 하나를 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트의 각각에 할당하도록
    구성되는, 파일 생성기.
  40. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(110;210;310;410;510)을 생성하는 파일 생성기(20)로서, 상기 트랙들 세트의 각각이 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일 생성기는
    소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 상기 파일 내에 있는 설명 데이터에 표시하고,
    상기 파일 생성기는
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트(102)를 기술하는 동작 포인트 엔티티 그룹 구문 구조(538)를 표시하되, 상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트(102)와 연관된 상기 트랙들 부분집합(180)의 트랙들(121)을 식별할 수 있도록
    구성되는, 파일 생성기.
  41. 청구항 40에 있어서,
    상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트를 포함하는 동작 포인트들의 세트(240)를 기술하고, 상기 동작 포인트 엔티티 그룹 구문 구조는, 상기 동작 포인트들 각각에 대해 연관되어 있는,
    파일 생성기.
  42. 청구항 39 또는 청구항 40 내지 41 중 어느 한 항에 있어서,
    엔티티 그룹 구문 구조의 트랙 식별자에 의해 식별된 트랙의 각각은 트랙의 하나 이상의 레이어에 대한 정보를 포함하는, 파일 생성기.
  43. 청구항 39 또는 청구항 40 내지 42 중 어느 한 항에 있어서,
    트랙의 부분집합 각각에 대해 트랙의 상자로부터 트랙에 포함된 하나 이상의 레이어를 식별하는 레이어 정보를 도출하는, 파일 생성기.
  44. 청구항 39 또는 청구항 40 내지 43 중 어느 한 항에 있어서,
    여기서 엔티티 그룹 구문 구조는 동작 포인트의 각각의 설명을 포함하는, 파일 생성기.
  45. 청구항 39 또는 청구항 40 내지 44 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조는, 각각의 동작 포인트에 대해, 티어, 레벨, 프로파일 및 상기 동작 포인트에 대한 제약 세트에 대한 정보를 포함하는, 파일 생성기.
  46. 코딩된 비디오 시퀀스를 시그널링하는 트랙(121)을 포함하는 파일(610;710)을 제공하는 파일 생성기(20)로서, 상기 트랙(121)은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하고, 상기 샘플들(650) 각각은 상기 파일의 복수의 비트스트림 부분들(654)를 포함하며, 상기 파일 생성기는
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는, 상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 한 부분(658)을 표시하도록
    구성되는, 파일 생성기.
  47. 청구항 46에 있어서,
    파일(710) 내의 설명 데이터에서 트랙(121)의 샘플(650)의 세트(664)가 소정의 동작 포인트(102)에 의해 부분적으로 요구되는 것으로 표시하는 샘플 그룹(762)을 표시하고,
    샘플 그룹의 샘플들 각각의 비트스트림 부분들 중 어느 부분(766)이 소정의 동작 포인트에 의해 요구되는지를 설명 데이터에서 표시하도록
    구성되는, 파일 생성기.
  48. 청구항 47에 있어서,
    설명 데이터 내의 서브트랙 구문 구조(870)에서 비트스트림 부분 구문 요소(872)의 소정의 유형 및 관련 소정의 값을 표시하기 위한 기준으로 사용하도록 표시합니다. 샘플 그룹(762)은 미리 정해진 동작 포인트에 의해 요구하고,
    샘플 그룹의 각 샘플의 각 비트스트림 부분에 대하여
    각각의 비트스트림 부분의 소정의 유형의 비트스트림 부분 구문 요소의 값을 설명 데이터에 표시하도록
    구성되는, 파일 생성기.
  49. 청구항 47에 있어서,
    샘플 그룹의 샘플 각각에 대하여
    설명 데이터 내의 서브샘플 구문 구조(974)에서 소정의 동작 포인트와 각각의 샘플을 포함하는 트랙의 부분 내의 바이트 범위 사이의 매핑 규칙을 표시하도록
    구성되는, 파일 생성기.
  50. 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)을 포함하는 파일(1010)을 제공하는 파일 생성기로서, 상기 트랙들(121) 각각은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 파일 생성기는
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)을 포함하는 상기 트랙들(121) 세트의 트랙들 부분집합(1080)을 표시하고,
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 표시하도록
    구성되는, 파일 생성기.
  51. 청구항 50에 있어서,
    트랙들의 부분집합(1080)의 표시된 트랙(1211)에 대해, 추가 트랙들로부터 독립적인 것으로서 표시된 트랙(1211)의 샘플들의 세트(1184)를 표시하는 샘플 그룹(1182)을 기술적 데이터에서 표시하고,
    트랙 부분집합의 각 샘플(130)에 대해 타임 스탬프(1186)를 표시하도록
    구성되는, 파일 생성기.
  52. 청구항 50에 있어서,
    트랙들 부분집합의 트랙 각각에 대하여
    각각의 트랙에 대해, 소정의 동작 포인트(102)와 연관된 동작 포인트 샘플 그룹(1183)을 표시하고, 소정의 동작이 만약 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플을 나타내는 동작 포인트 샘플 그룹 포인트는 각 트랙의 모든 샘플을 요구하지 않는, 파일 생성기.
  53. 청구항 50에 있어서,
    소정의 동작 포인트와 관련된 레이어 식별자 세트를 파일의 설명 데이터에 표시하고,
    각 트랙 세트에 대하여
    파일 내의 설명 데이터에서 트랙이 레이어 식별자 세트의 레이어 식별자 중 하나와 연관되는지 여부를 표시하고,
    각각의 트랙이 레이어 식별자 세트 중 하나와 연관되면, 각 트랙의 샘플의 부분이 소정의 동작 포인트에 의해 요구되는 샘플을 나타내는 서브레이어와 연관되는지 여부를 설명 데이터에 표시하도록,
    구성되는, 파일 생성기.
  54. 청구항 50 내지 53 중 어느 한 항에 있어서,
    설명 데이터에서 소정의 동작 포인트(102)를 포함하고 하나의 레이어 식별자(264) 세트(1362)를 할당하는 매핑 규칙을 포함하는 동작 포인트의 세트(240)를 기술하는 트랙 그룹 구문 구조(1387)를 표시한다. 동작 포인트의 세트(240) 각각에 대한 레이어 식별자(1364)의 세트(1362)의 세트(1360), 여기서 레이어 식별자 각각은 트랙의 세트의 샘플의 세트와 연관되고, 트랙은 그룹 구문 구조는, 레이어 식별자들의 세트 각각의 레이어 식별자들 각각에 대해, 각각의 레이어 식별자와 연관된 샘플들의 부분집합을 나타내는 연관된 서브레이어 식별자를 더 포함하고,
    트랙 그룹 구문 구조(1387)와 연관된 트랙 각각에 대하여
    트랙 그룹 구문 구조에서 소정의 동작 포인트(102)와 연관된 레이어 식별자 및 서브레이어 식별자의 소정의 세트(1362B)를 표시하도록
    구성되는, 파일 생성기.
  55. 청구항 54에 있어서,
    상기 서브레이어 식별자 각각은 소정의 샘플 파라미터의 최대값을 나타내고, 각각의 샘플은 값이 각 샘플의 소정의 샘플 파라미터의 는 소정의 레이어 식별자 및 서브레이어 식별자 세트에 의해 표시된 최대값보다 작거나 같은, 파일 생성기.
  56. 청구항 50에 있어서,
    설명 데이터에 레벨 인덱스(1491)를 트랙 세트의 샘플(130)에 할당하는 레벨 할당 구문 구조(1489)를 표시하고, 소정의 동작 포인트는 샘플의 레벨 인덱스를 나타내는 레벨 인덱스 세트와 연관됨 소정의 동작 포인트에서 요구하고,
    트랙 각각에 대해, 트랙이 소정의 동작 포인트와 연관된 레벨 인덱스 세트의 레벨 인덱스와 연관된 샘플을 포함하는지 여부를 표시하고,
    레벨 중 하나 이상을 표시함으로써 설명 데이터에 소정의 동작 포인트와 연관된 샘플 그룹을 표시하고, 샘플 그룹은 소정의 동작 포인트에 의해 요구되지 않는 트랙 부분집합의 샘플 세트(1494)를 표시하도록.
    구성되는, 파일 생성기.
  57. 청구항 50에 있어서,
    트랙의 부분집합 중 소정의 트랙이 소정의 동작 포인트에 의해 요구된다는 것을 설명 데이터에 표시하고,
    트랙 부분집합의 추가 트랙 각각에 대해, 개별 트랙의 샘플 각각에 대해, 샘플이 동작 포인트에 의해 요구되는 것으로 표시된 샘플의 샘플 그룹의 부분인지 여부를 나타내도록
    구성되는, 파일 생성기.
  58. 청구항 57에 있어서,
    상기 샘플 그룹은 상기 코딩된 비디오 시퀀스의 샘플들의 시간 부분집합들의 세트 중 어느 것에 각각의 샘플이 속하는지를 나타내는 시간 식별자들의 지정된 세트 중 하나를 갖는 샘플들을 포함하도록 정의되는, 파일 생성기.
  59. 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)을 포함하는 파일(1010)을 제공하는 파일 생성기로서, 상기 트랙들(121) 각각은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 파일 생성기는
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)을 포함하는 상기 트랙들(121) 세트의 트랙들 부분집합(1080)을 표시하고,
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 표시하고,
    상기 트랙들 부분집합(1080)의 각각에 대하여
    상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플들 세트의 샘플 그룹(1595)을 표시하되, 여기서 상기 샘플 그룹은 상기 고려 대상 샘플의 레이어 식별자(1591)에 의존하여 상기 고려 대상 샘플의 시간 식별자(1597)에 대한 제약조건(1596)을 표시하며, 상기 시간 식별자(1596)는 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합의 세트에서 어느 것에 상기 고려 대상 샘플이 속하는지를 표시하도록
    구성되는, 파일 생성기.
  60. 청구항 59에 있어서,
    상기 샘플 그룹은 프로파일에 대한 표시 및 소정의 동작 포인트와 연관된 레벨을 포함하는, 파일 생성기.
  61. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(110;210;310;410;510)로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하도록
    하는 데이터를 포함하는 파일.
  62. 청구항 61에 있어서,
    소정의 동작 포인트(102)와 연관된 레이어 식별자들의 세트(2621)를 파일의 설명 데이터에 표시하고,
    트랙들(121) 세트(120) 각각에 대해,
    각각의 트랙(121)이 레이어 식별자 세트(2621)의 레이어 식별자(264) 중 하나와 연관되는지 여부를 파일 내의 설명 데이터에 표시하도록
    하는 데이터를 포함하는 파일.
  63. 청구항 62에 있어서,
    상기 트랙들 세트 각각에 대하여
    설명 데이터 내의 트랙 그룹 구문 구조(230)에 표시하고, 트랙 그룹 구문 구조는 각각의 트랙, 소정의 동작 포인트를 포함하는 동작 포인트 세트, 및 세트의 레이어 식별자의 한 세트를 할당하는 매핑 규칙 각각의 동작 포인트에 대한 레이어 식별자(264)의 세트들(262)의 세트(260)를 포함하는, 파일.
  64. 청구항 63에 있어서,
    상기 트랙 그룹 구문 구조는 레이어, 레벨, 프로파일 및 트랙 그룹 구문 구조에 의해 기술된 동작 포인트 각각에 대한 제약 세트에 대한 정보를 포함하는, 파일.
  65. 청구항 61에 있어서,
    각각의 동작 포인트 세트 중 하나를 기술하는 설명 데이터 내의 동작 포인트 트랙 그룹(334)의 세트(332)를 표시하고,
    트랙 세트(120) 각각에 대하여
    각각의 트랙이 소정의 동작 포인트(102)를 기술하는 동작 포인트 트랙 그룹들의 세트(332)의 동작 포인트 트랙 그룹(334B)과 연관되는지 여부를 파일 내의 설명 데이터에서 표시하도록
    하는 데이터를 포함하는 파일.
  66. 청구항 65에 있어서,
    각각의 트랙 그룹은 트랙 그룹 식별자로 식별되고, 상기 파일은 트랙 그룹의 표시에서 트랙 중 하나와 동작 포인트 트랙 그룹 중 하나 사이의 연관을 표시하기 위한 데이터를 포함하는 파일 각각의 트랙에 의한 각각의 동작 포인트 트랙 그룹의 식별자를 포함하는, 파일.
  67. 청구항 65 또는 청구항 66에 있어서,
    각각의 동작 포인트 트랙 그룹은 티어, 레벨, 프로파일 및 각각의 동작 포인트 트랙 그룹에 의해 기술된 동작 포인트에 대한 제약 세트에 대한 정보를 포함하는, 파일.
  68. 청구항 62에 있어서,
    파일 내의 설명 데이터에서 엔티티 그룹 구문 구조(436)를 나타내며, 엔티티 그룹 구문 구조는 레이어 식별자(264)의 세트(262)의 세트(260) 중 하나를 소정의 동작 포인트(102)를 포함하는 동작 포인트를 포함하는, 파일.
  69. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(510)로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하고,
    상기 파일 내에 있는 상기 설명 데이터에, 엔티티 그룹 구문 구조를 표시하되, 상기 엔티티 그룹 구문 구조는 트랙 식별자들(543) 세트들의 세트 중 하나를 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트의 각각에 할당되도록
    하는 데이터를 포함하는 파일.
  70. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(510)로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하고,
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트(102)를 기술하는 동작 포인트 엔티티 그룹 구문 구조(538)를 표시하되, 상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트(102)와 연관된 상기 트랙들 부분집합(180)을 식별하도록
    하는 데이터를 포함하는 파일.
  71. 청구항 70에 있어서,
    상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트를 포함하는 동작 포인트들의 세트(240)를 기술하고, 상기 동작 포인트 엔티티 그룹 구문 구조는, 상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는, 상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 한 부분(658)을 표시하도록
    구성되는, 파일 생성기.
  72. 청구항 69 또는 청구항 70 내지 71 중 어느 한 항에 있어서,
    엔티티 그룹 구문 구조의 트랙 식별자에 의해 식별된 트랙의 각각은 트랙의 하나 이상의 레이어에 대한 정보를 포함하는, 파일 생성기.
  73. 청구항 69 또는 청구항 70 내지 72 중 어느 한 항에 있어서,
    트랙의 부분집합 각각에 대해 트랙의 상자로부터 트랙에 포함된 하나 이상의 레이어를 식별하는 레이어 정보를 도출하도록
    구성되는, 파일 생성기.
  74. 청구항 69 또는 청구항 70 내지 73 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조는 동작 포인트의 각각의 설명을 포함하는, 파일 생성기.
  75. 청구항 69 또는 청구항 70 내지 74 중 어느 한 항에 있어서,
    상기 엔티티 그룹 구문 구조는, 각각의 동작 포인트에 대해, 티어, 레벨, 프로파일 및 상기 동작 포인트에 대한 제약 세트에 대한 정보를 포함하도록
    구성되는, 파일 생성기.
  76. 코딩된 비디오 시퀀스를 시그널링하는 트랙(121)을 포함하는 파일(610;710)로서, 상기 트랙(121)은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하고, 상기 샘플들(650) 각각은 상기 파일의 복수의 비트스트림 부분들(654)를 포함하며, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는, 상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 한 부분(658)을 표시하도록
    하는 데이터를 포함하는 파일.
  77. 청구항 76에 있어서,
    파일(710) 내의 설명 데이터에서 트랙(121)의 샘플(650)의 세트(664)가 소정의 동작 포인트(102)에 의해 부분적으로 요구되는 것으로 표시하는 샘플 그룹(762)을 표시하고,
    샘플 그룹의 샘플들 각각의 비트스트림 부분들 중 어느 부분(766)이 소정의 동작 포인트에 의해 요구되는지를 설명 데이터에서 표시하도록
    하는 데이터를 포함하는 파일.
  78. 청구항 77에 있어서,
    설명 데이터 내의 서브트랙 구문 구조(870)에서 비트스트림 부분 구문 요소(872)의 소정의 유형 및 관련 소정의 값을 표시하기 위한 기준으로 사용하도록 표시합니다. 샘플 그룹(762)은 미리 정해진 동작 포인트에 의해 요구되며,
    샘플 그룹의 각 샘플의 각 비트스트림 부분에 대하여
    각각의 비트스트림 부분의 소정의 유형의 비트스트림 부분 구문 요소의 값을 설명 데이터에 표시하도록
    하는 데이터를 포함하는 파일.
  79. 청구항 77에 있어서,
    파일은 샘플 그룹의 샘플 각각에 대하여,
    설명 데이터 내의 서브샘플 구문 구조(974)에서 소정의 동작 포인트와 각각의 샘플을 포함하는 트랙의 부분 내의 바이트 범위 사이의 매핑 규칙을 표시하도록
    하는 데이터를 포함하는 파일.
  80. 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)을 포함하는 파일(1010)로서, 상기 트랙들(121) 각각은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)을 포함하는 상기 트랙들(121) 세트의 트랙들 부분집합(1080)을 표시하고,
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 표시하도록
    하는 데이터를 포함하는 파일.
  81. 청구항 80에 있어서,
    트랙들의 부분집합(1080)의 표시된 트랙(1211)에 대해, 추가 트랙들로부터 독립적인 것으로서 표시된 트랙(1211)의 샘플들의 세트(1184)를 표시하는 샘플 그룹(1182)을 기술적 데이터에서 표시하고,
    트랙 부분집합의 각 샘플(130)에 대해 타임 스탬프(1186)를 표시하도록
    하는 데이터를 포함하는 파일.
  82. 청구항 80에 있어서,
    트랙 부분집합의 트랙 각각에 대하여
    각각의 트랙에 대해, 소정의 동작 포인트(102)와 연관된 동작 포인트 샘플 그룹(1183)을 표시하고, 소정의 동작이 만약 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플을 나타내는 동작 포인트 샘플 그룹 포인트는 각 트랙의 모든 샘플을 요구하지 않는, 파일.
  83. 청구항 80에 있어서,
    소정의 동작 포인트와 관련된 레이어 식별자 세트를 파일의 설명 데이터에 표시하고,
    각 트랙 세트에 대하여
    파일 내의 설명 데이터에서 트랙이 레이어 식별자 세트의 레이어 식별자 중 하나와 연관되는지 여부를 표시하고,
    각각의 트랙이 레이어 식별자 세트 중 하나와 연관되면,
    각각의 트랙의 샘플의 부분이 소정의 동작 포인트에 의해 요구되는 샘플을 나타내는 서브레이어와 연관되는지 여부를 설명 데이터에서 표시하도록
    하는 데이터를 포함하는 파일.
  84. 청구항 80 또는 청구항 83에 있어서,
    설명 데이터에서 소정의 동작 포인트(102)를 포함하고 하나의 레이어 식별자(264) 세트(1362)를 할당하는 매핑 규칙을 포함하는 동작 포인트의 세트(240)를 기술하는 트랙 그룹 구문 구조(1387)를 표시한다. 동작 포인트의 세트(240) 각각에 대한 레이어 식별자(1364)의 세트(1362)의 세트(1360), 여기서 레이어 식별자 각각은 트랙의 세트의 샘플의 세트와 연관되고, 트랙은 그룹 구문 구조는, 레이어 식별자들의 세트 각각의 레이어 식별자들 각각에 대해, 각각의 레이어 식별자와 연관된 샘플들의 부분집합을 나타내는 연관된 서브레이어 식별자를 더 포함하고,
    트랙 그룹 구문 구조(1387)와 연관된 트랙 각각에 대해,
    트랙 그룹 구문 구조에서 소정의 동작 포인트(102)와 연관된 레이어 식별자 및 서브레이어 식별자의 소정의 세트(1362B)를 표시하도록
    하는 데이터를 포함하는 파일.
  85. 청구항 84에 있어서,
    상기 서브레이어 식별자 각각은 소정의 샘플 파라미터의 최대값을 나타내고, 각각의 샘플은 각 샘플의 소정의 샘플 파라미터의 값은 레이어 식별자 및 서브레이어 식별자의 소정의 세트에 의해 표시되는 최대값보다 작거나 같은, 파일.
  86. 청구항 80에 있어서,
    설명 데이터에 레벨 인덱스(1491)를 트랙 세트의 샘플(130)에 할당하는 레벨 할당 구문 구조(1489)를 표시하고, 소정의 동작 포인트는 샘플의 레벨 인덱스를 나타내는 레벨 인덱스 세트와 연관됨 소정의 동작 포인트에서 요구하는
    트랙 각각에 대해, 트랙이 소정의 동작 포인트와 연관된 레벨 인덱스 세트의 레벨 인덱스와 연관된 샘플을 포함하는지 여부를 표시하고,
    레벨 중 하나 이상을 표시함으로써 설명 데이터에 소정의 동작 포인트와 연관된 샘플 그룹을 표시하고, 샘플 그룹은 소정의 동작 포인트에 의해 요구되지 않는 트랙 부분집합의 샘플 세트(1494)를 표시합니다. 소정의 동작 포인트에 의해 요구되지 않는 것으로 레벨 인덱스 세트의 인덱스를 포함하는,.
    파일.
  87. 청구항 80에 있어서,
    트랙의 부분집합 중 소정의 트랙이 소정의 동작 포인트에 의해 요구된다는 것을 설명 데이터에 표시하고,
    트랙 부분집합의 추가 트랙 각각에 대해, 개별 트랙의 샘플 각각에 대해, 샘플이 동작 포인트에 의해 요구되는 것으로 표시된 샘플의 샘플 그룹의 부분인지 여부를 나타내도록
    하는 데이터를 포함하는 파일.
  88. 청구항 87에 있어서,
    상기 샘플 그룹은 상기 코딩된 비디오 시퀀스의 샘플의 시간 부분집합의 세트 중 어느 것에 각각의 샘플이 속하는지를 나타내는 시간 식별자의 지정된 세트 중 하나를 갖는 샘플을 포함하도록 정의되는, 파일.
  89. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(110;210;310;410;510)로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 파일은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는, 상기 트랙들 세트의 트랙들 부분집합을 표시하기 위한 데이터를 포함하며,
    상기 파일은 상기 트랙들 부분집합(1080) 각각에 대하여,
    상기 설명 데이터에 상기 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플들 세트의 샘플 그룹(1595)을 표시하고, 상기 샘플 그룹은 고려 대상 샘플의 레이어 식별자(1591)에 의존하여 상기 고려 대상 샘플의 시간 식별자(1597)에 대한 제한조건(1596)을 표시하고, 상기 시간 식별자(1596)는 상기 고려 대상 샘플이 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합의 세트 중 어느 것에 속하는지를 표시하도록
    하기 위한 데이터를 포함하는,
    파일.
  90. 청구항 89에 있어서,
    상기 샘플 그룹이 프로파일에 대한 표시와, 소정의 동작 포인트와 연관된 레벨을 포함하는,
    파일.
  91. 코딩된 비디오 시퀀스를 시그널링하는 파일(110;210;310;410;510)을 처리하는 방법으로서,
    상기 파일의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)를 따르는 상기 트랙들 세트의 트랙들 부분집합(180)를 도출하는 단계; 및
    상기 트랙들 부분집합의 서브-스트림을 비디오 비트스트림으로 포워딩하는 단계;를 포함하는,
    파일 처리 방법.
  92. 코딩된 비디오 시퀀스를 시그널링하는 파일(110;210;310;410;510)을 처리하는 방법으로서,
    상기 파일의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)를 따르는 상기 트랙들 세트의 트랙들 부분집합(180)를 도출하는 단계;
    상기 트랙들 부분집합의 서브-스트림을 비디오 비트스트림으로 포워딩하는 단계;
    상기 파일 내에 있는 상기 설명 데이터로부터, 엔티티 그룹 구문 구조(538)를 도출하되, 상기 엔티티 그룹 구문 구조는 트랙 식별자들(543) 세트들(542)의 세트(540) 중 하나를 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트의 각각에 할당하는 단계; 및
    엔티티 그룹 구조에 의해 상기 소정의 동작 포인트에 할당된 트랙 식별자들 세트(5421)로부터 상기 소정의 동작 포인트(102)에 대한 트랙들 부분집합(180)를 도출하는 단계;를 포함하는,
    파일 처리 방법.
  93. 코딩된 비디오 시퀀스를 시그널링하는 파일(110;210;310;410;510)을 처리하는 방법으로서,
    상기 파일의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙들 세트의 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)를 따르는 상기 트랙들 세트의 트랙들 부분집합(180)를 도출하는 단계;
    상기 트랙들 부분집합의 서브-스트림을 비디오 비트스트림으로 포워딩하는 단계;
    상기 파일 내에 있는 상기 설명 데이터로부터, 상기 소정의 동작 포인트(102)를 기술하는 동작 포인트 엔티티 그룹 구문 구조(538)를 도출하되, 상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트(102)와 연관된 상기 트랙들 부분집합(180)을 식별할 수 있게 하는 단계; 및
    상기 동작 포인트 엔티티 그룹 구문 구조로부터 상기 트랙들 부분집합(180)을 도출하는 단계;를 포함하는,
    파일 처리 방법.
  94. 코딩된 비디오 시퀀스를 시그널링하는 파일(610)을 처리하는 방법으로서,
    상기 파일(610)의 트랙(121)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙(121)은 샘플들(650) 시퀀스를 포함하고, 상기 샘플들(650) 각각은 상기 파일의 복수의 비트스트림 부분들(654)를 포함하도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는, 상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 한 부분(658)을 도출하는 단계; 및
    상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 상기 부분을 상기 비디오 비트스트림으로 포워딩하는 단계;를 포함하는,
    파일 처리 방법.
  95. 코딩된 비디오 시퀀스를 시그널링하는 파일(1010)을 처리하는 방법으로서,
    상기 파일(1010)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙들(121)의 각각은 상기 비디오 시퀀스의 샘플들(130) 시퀀스의 서브-스트림을 나타내도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는 샘플들을 포함하는 상기 트랙들(121) 세트(120)의 트랙들 부분집합(180)를 도출하는 단계;
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 도출하는 단계; 및
    상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 각각의 부분(1074)을 선택적으로 포워딩하는 단계;를 포함하는,
    파일 처리 방법.
  96. 코딩된 비디오 시퀀스를 시그널링하는 파일(1010)을 처리하는 방법으로서,
    상기 파일(1010)의 트랙들(121) 세트(120)에 기초하여 비디오 비트스트림(190)을 제공하되, 상기 트랙들(121)의 각각은 상기 비디오 시퀀스의 샘플들(130) 시퀀스의 서브-스트림을 나타내도록 하는 단계;
    상기 파일 내에 있는 설명 데이터로부터, 소정의 동작 포인트(102)에 의해 요구되는 샘플들을 포함하는 상기 트랙들(121) 세트(120)의 트랙들 부분집합(180)를 도출하는 단계;
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 도출하는 단계; 및
    상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 각각의 부분(1074)을 선택적으로 포워딩하는 단계;를 포함하며,
    상기 트랙들(121) 부분집합의 각각에 대하여
    상기 설명 데이터로부터, 상기 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플들 세트의 샘플 그룹(1595)을 도출하되, 여기서 상기 샘플 그룹은 상기 고려 대상 샘플의 레이어 식별자(1591)에 의존하여 상기 고려 대상 샘플의 시간 식별자(1597)에 대한 제약조건(1596)을 표시하며, 상기 시간 식별자(1596)는 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합의 세트에서 어느 것에 상기 고려 대상 샘플이 속하는지를 표시하고,
    상기 각각의 트랙의 상기 샘플들 각각에 대하여, 상기 각각의 샘플의 상기 시간 식별자(1597) 및 상기 레이어 식별자(1591)를 상기 설명 데이터로부터 도출하고,
    상기 각각의 샘플의 상기 레이어 식별자의 값에 대하여 정의된 바와 같이 상기 각각의 샘플의 상기 시간 식별자가 상기 제한조건 내에 있으면 상기 각각의 샘플을 상기 비디오 비트스트림으로 포워딩하고, 그렇지 않으면 포워딩하지 않는,
    파일 처리 방법.
  97. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(110;210;310;410;510)을 생성하는 방법으로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하는 단계;를 포함하는,
    파일 생성 방법.
  98. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(510)을 생성하는 방법으로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하는 단계; 및
    상기 파일 내에 있는 상기 설명 데이터에, 엔티티 그룹 구문 구조를 표시하되, 상기 엔티티 그룹 구문 구조는 트랙 식별자들(543) 세트들의 세트 중 하나를 상기 소정의 동작 포인트를 포함하는 동작 포인트들 세트의 각각에 할당하는 단계;를 포함하는,
    파일 생성 방법.
  99. 코딩된 비디오 시퀀스를 시그널링하는 트랙들 세트(120)를 포함하는 파일(510)을 생성하는 방법으로서, 상기 트랙들 세트 각각은 상기 비디오 시퀀스의 서브-스트림을 나타내며, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트를 따르는 상기 트랙들 세트의 트랙들 부분집합을 표시하는 단계; 및
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트(102)를 기술하는 동작 포인트 엔티티 그룹 구문 구조(538)를 표시하되, 상기 동작 포인트 엔티티 그룹 구문 구조는 상기 소정의 동작 포인트(102)와 연관된 상기 트랙들 부분집합(180)을 식별할 수 있게 하는 단계;를 포함하는,
    파일 생성 방법.
  100. 코딩된 비디오 시퀀스를 시그널링하는 트랙(121)을 포함하는 파일(610;710)을 생성하는 방법으로서, 상기 트랙(121)은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하고, 상기 샘플들(650) 각각은 상기 파일의 복수의 비트스트림 부분들(654)를 포함하며, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는, 상기 트랙의 상기 샘플들 각각의 상기 비트스트림 부분들의 한 부분(658)을 표시하는 단계;를 포함하는,
    파일 생성 방법.
  101. 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)을 포함하는 파일(1010)을 생성하는 방법으로서, 상기 트랙들(121) 각각은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)을 포함하는 상기 트랙들(121) 세트의 트랙들 부분집합(1080)을 표시하는 단계; 및
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 표시하는 단계;를 포함하는,
    파일 생성 방법.
  102. 코딩된 비디오 시퀀스를 시그널링하는 트랙들(121) 세트(120)을 포함하는 파일(1010)을 생성하는 방법으로서, 상기 트랙들(121) 각각은 상기 비디오 시퀀스의 샘플들(650) 시퀀스를 포함하는 서브-스트림을 나타내고, 상기 방법은
    상기 파일 내에 있는 설명 데이터에, 소정의 동작 포인트(102)에 의해 요구되는 샘플들(130)을 포함하는 상기 트랙들(121) 세트의 트랙들 부분집합(1080)을 표시하는 단계;
    상기 파일 내에 있는 상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 상기 트랙들(121) 부분집합의 각각의 상기 샘플(130)들의 부분(1074)을 표시하는 단계;
    상기 트랙들 부분집합(1080)의 각각에 대하여
    상기 설명 데이터에, 상기 소정의 동작 포인트에 의해 요구되는 각각의 트랙의 샘플들 세트의 샘플 그룹(1595)을 표시하되, 여기서 상기 샘플 그룹은 상기 고려 대상 샘플의 레이어 식별자(1591)에 의존하여 상기 고려 대상 샘플의 시간 식별자(1597)에 대한 제약조건(1596)을 표시하며, 상기 시간 식별자(1596)는 상기 코딩된 비디오 시퀀스의 상기 샘플들의 시간 부분집합의 세트에서 어느 것에 상기 고려 대상 샘플이 속하는지를 표시하도록 하는 단계;를 포함하는,
    파일 생성 방법.
  103. 서버(12)로부터 미디어를 다운로드하기 위한 클라이언트(9)로서,
    상기 서버(12)로부터, 상기 클라이언트에 의해 다운로드 가능한 미디어 표현들(Rep #) 세트를 설명하는 매니페스트 파일(14)을 다운로드하고,
    제1 미디어 표현(Rep 0)에 대한 상기 매니페스트 파일(14)로부터, 상기 제1 미디어 표현에 임베딩된 하위-표현들(sub-rep 0, 1)에 대한 정보를 도출하고,
    제2 미디어 표현(Rep 1)에 대한 상기 매니페스트 파일(14)로부터,
    상기 제2 미디어 표현(Rep 1)이 의존하며 상기 제1 미디어 표현(Rep 0)을 포함하는 하나 이상의 미디어 표현들의 제1 세트의 제1 표시(16)와,
    상기 제2 미디어 표현(Rep 1)의 재생을 위해 필요하고, 상기 제1 미디어 표현에 임베딩되어 있는 상기 하위-표현들(sub-rep 0, 1)로부터의 하나 이상의 하위-표현들의 제2 세트의 제1 표시(16).
    를 도출하고,
    상기 제2 표현(Rep 1)을, 상기 하나 이상의 미디어 표현들의 상기 제1 세트와 함께, 상기 제1 미디어 표현(Rep 0)을 하나 이상의 서브-표현들의 제2 세트로 다운로드하는 것을 제한하면서, 다운로드하도록
    구성되는, 클라이언트.
  104. 청구항 103에 있어서,
    상기 제1 미디어 표현(Rep 0)의 세그먼트들로부터 샘플들 또는 서브 샘플들에 대한 정보를 도출함으로써, 상기 제1 미디어 표현(Rep 0)에 포함된 트랙의 샘플들 또는 서브 샘플들에 접근하도록
    구성되는, 클라이언트.
  105. 서버(12)로부터 미디어를 다운로드하기 위한 클라이언트의 안내를 위한 매니페스트 파일(14)로서,
    클라이언트가 다운로드할 수 있는 미디어 표현들(Rep #) 세트를 기술하고,
    제1 미디어 표현(Rep 0)에 대하여, 상기 제1 미디어 표현에 임베딩된 하위-표현들(sub-rep 0, 1)에 대한 정보를 구성하고,
    제2 미디어 표현(Rep 1)에 대하여
    상기 제2 미디어 표현(Rep 1)이 의존하며 상기 제1 미디어 표현(Rep 0)을 포함하는 하나 이상의 미디어 표현들의 제1 세트의 제1 표시(16)와,
    상기 제2 미디어 표현(Rep 1)의 재생을 위해 필요하고, 상기 제1 미디어 표현에 임베딩되어 있는 상기 하위-표현들(sub-rep 0, 1)로부터의 하나 이상의 하위-표현들의 제2 세트의 제1 표시(16).
    를 포함하는,
    매니페스트 파일.
  106. 서버(12)로부터 미디어를 다운로드하는 방법으로서,
    상기 서버(12)로부터, 상기 클라이언트에 의해 다운로드 가능한 미디어 표현들(Rep #) 세트를 설명하는 매니페스트 파일(14)을 다운로드하는 단계;
    제1 미디어 표현(Rep 0)에 대한 상기 매니페스트 파일(14)로부터, 상기 제1 미디어 표현에 임베딩된 하위-표현들(sub-rep 0, 1)에 대한 정보를 도출하는 단계;
    제2 미디어 표현(Rep 1)에 대한 상기 매니페스트 파일(14)로부터,
    상기 제2 미디어 표현(Rep 1)이 의존하며 상기 제1 미디어 표현(Rep 0)을 포함하는 하나 이상의 미디어 표현들의 제1 세트의 제1 표시(16)와,
    상기 제2 미디어 표현(Rep 1)의 재생을 위해 필요하고, 상기 제1 미디어 표현에 임베딩되어 있는 상기 하위-표현들(sub-rep 0, 1)로부터의 하나 이상의 하위-표현들의 제2 세트의 제1 표시(16).
    를 도출하는 단계; 및
    상기 제2 표현(Rep 1)을, 상기 하나 이상의 미디어 표현들의 상기 제1 세트와 함께, 상기 제1 미디어 표현(Rep 0)을 하나 이상의 서브-표현들의 제2 세트로 다운로드하는 것을 제한하면서, 다운로드하는 단계;를 포함하는,
    서버로부터의 미디어 다운로드 방법.
  107. 파일(32)로부터, 트랙들(트랙 0 및 트랙 1) 세트(36)에 대한 스위칭 정보(34)를 도출하되, 상기 스위칭 정보(34)는, 상기 트랙들 세트의 제2 트랙(트랙 0)에서의 하나 이상의 선행 샘플들이 상기 파일을 토대로 생성된 데이터가 공급되는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하도록,
    구성되는, 파일 파서.
  108. 청구항 107에 있어서,
    스위칭을 결정하도록 구성된 외부 디바이스에 상기 스위칭 정보(34)를 제공하도록
    구성되는, 파일 파서.
  109. 청구항 107 또는 청구항 108에 있어서,
    상기 스위칭 정보(34)로부터, 드리프트-영향받는 샘플들에 의해 참조되는 상기 제1 트랙(트랙 1)의 참조 샘플들에 시간적으로 정렬되어 있는 상기 제2 트랙(트랙 0)의 이전 샘플들을 토대로, 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들을 디코딩하는 비디오 디코더에 의해 디코딩 드리프트의 영향을 받게 되는 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들에 대한 정보를 도출하도록
    구성되는, 파일 파서.
  110. 청구항 109에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 상기 드리프트-영향받는 샘플들의 개수의 또는 시간적 지속시간의 상한을 표시하는,
    파일 파서.
  111. 청구항 109 내지 110 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 소정의 기준을 충족하는 상기 드리프트-영향받는 샘플들(46)의 품질을 표시하는,
    파일 파서.
  112. 청구항 109 내지 110 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 시간 구문 예측이 없이 코딩되는 상기 드리프트-영향받는 샘플들을 표시하는,
    파일 파서.
  113. 청구항 109 내지 111 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 상기 드리프트-영향받는 샘플들(46)을 식별하는,
    파일 파서.
  114. 청구항 109 내지 113 중 어느 한 항에 있어서,
    상기 제1 트랙(트랙 1)에 대하여, 상기 제1 트랙(트랙 1)의 RAP 샘플들(44)을 표시하는 상기 파일로부터, 상기 스위칭 정보(34)와 별개인 RAP 정보(50)를 도출하도록
    구성되는, 파일 파서.
  115. 청구항 109 내지 114 중 어느 한 항에 있어서,
    상기 제2 트랙(트랙 1)에 대하여, 상기 제2 트랙(트랙 0)의 RAP 샘플들(42)을 표시하는 상기 파일로부터, 추가적인 RAP 정보(52)를 도출하되,
    상기 스위칭 정보(34)는, 상기 트랙들 세트의 상기 제2 트랙(트랙 0)의 샘플들이 상기 제2 트랙(트랙 0)의 가장 가까운 선행 RAP 샘플(42) 업스트림에 있는 상기 제1 트랙의 샘플들을 선행하는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하도록
    구성되는, 파일 파서.
  116. 트랙들(트랙 0 및 트랙 1) 세트(36); 및
    상기 트랙들 세트의 제2 트랙(트랙 0)에서의 하나 이상의 선행 샘플들이 상기 파일로부터 생성되는 데이터가 제공되는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하는 스위칭 정보(34);를 포함하는,
    비디오 파일.
  117. 청구항 116에 있어서,
    상기 스위칭 정보(34)가 드리프트-영향받는 샘플들에 의해 참조되는 상기 제1 트랙(트랙 1)의 참조 샘플들에 시간적으로 정렬되어 있는 상기 제2 트랙(트랙 0)의 이전 샘플들을 토대로, 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들을 디코딩하는 비디오 디코더에 의해 디코딩 드리프트의 영향을 받게 되는 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들애 대한 정보를 제공하는,
    비디오 파일.
  118. 청구항 117에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 상기 드리프트-영향받는 샘플들의 개수의 또는 시간적 지속시간의 상한을 표시하는,
    비디오 파일.
  119. 청구항 117 내지 118 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 소정의 기준을 충족하는 상기 드리프트-영향받는 샘플들(46)의 품질을 표시하는,
    파일 파서.
  120. 청구항 117 내지 118 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 소정의 기준을 충족하는 상기 드리프트-영향받는 샘플들(46)의 품질을 표시하는,
    파일 파서.
  121. 청구항 117 내지 120 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)가 상기 드리프트-영향받는 샘플들을 식별하는,
    파일 파서.
  122. 청구항 116 내지 121 중 어느 한 항에 있어서,
    상기 제1 트랙(트랙 1)에 대하여, 상기 제1 트랙(트랙 1)의 RAP 샘플들(44)을 표시하는 RAP 정보(50)를 상기 스위칭 정보(34)와는 별도로 추가적으로 포함하는,
    파일 파서.
  123. 청구항 116 내지 122 중 어느 한 항에 있어서,
    상기 제2 트랙(트랙 1)에 대하여, 상기 제2 트랙(트랙 0)의 RAP 샘플들(42)을 표시하는 상기 파일로부터의 추가적인 RAP 정보(52)를 포함하고, 트랙의 샘플(38)을 나타내는 스위칭 정보(34) 두 번째 트랙(트랙 0)의 샘플이 비디오 디코더(44)에서 사용 가능하다면 트랙 세트의 두 번째 트랙(트랙 0)으로부터의 전환이 허용되는 트랙 세트의 첫 번째 트랙(트랙 1) 이것은 두 번째 트랙(트랙 0)의 가장 가까운 선행 RAP 샘플(42)에 업스트림의 첫 번째 트랙의 샘플을 선행하는, 비디오 파일.
  124. 파일(32)에 트랙들(트랙 0 및 트랙 1) 세트(36)에 대한 정보(34)를 제공하되, 상기 스위칭 정보(34)가, 상기 트랙들 세트의 제2 트랙(트랙 0)에서의 하나 이상의 선행 샘플들이 상기 파일로부터 공급되는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하도록
    구성되는, 파일 생성기.
  125. 청구항 124에 있어서,
    상기 스위칭 정보(34)가 드리프트-영향받는 샘플들에 의해 참조되는 상기 제1 트랙(트랙 1)의 참조 샘플들에 시간적으로 정렬되어 있는 상기 제2 트랙(트랙 0)의 이전 샘플들을 토대로, 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들을 디코딩하는 비디오 디코더에 의해 디코딩 드리프트의 영향을 받게 되는 상기 제1 트랙(트랙 1)의 상기 드리프트-영향받는 샘플들애 대한 정보를 제공하는,
    파일 생성기.
  126. 청구항 125에 있어서,
    상기 드리프트-영향받는 샘플(46)에 대한 정보(48)는 상기 드리프트-영향받는 샘플의 수 또는 시간 지속 기간의 상한을 표시하는,
    파일 생성기.
  127. 청구항 125 내지 126 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플(46)에 대한 정보(48)는 소정의 기준을 충족하는 상기 드리프트-영향받는 샘플들의 품질을 표시하는,
    파일 생성기.
  128. 청구항 125 내지 126 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)는 시간 구문 예측 없이 코딩되는 드리프트 영향을 받는 샘플을 표시하는,
    파일 생성기.
  129. 청구항 125 내지 127 중 어느 한 항에 있어서,
    상기 드리프트-영향받는 샘플들에 대한 정보(48)는 상기 드리프트-영향받는 샘플들을 식별하는,
    파일 생성기.
  130. 청구항 124 내지 129 중 어느 한 항에 있어서,
    상기 제1 트랙(트랙 1)에 대하여, 상기 파일에 상기 제1 트랙(트랙 1)의 RAP 샘플들(44)을 나타내는 RAP 정보(50)를 제공하고, 상기 RAP 정보(50)는 상기 스위칭 정보(34)와 별개인,
    파일 생성기.
  131. 청구항 124 내지 130 중 어느 한 항에 있어서,
    상기 제2 트랙(트랙 1)에 대하여, 상기 파일에 상기 제2 트랙(트랙 0)의 RAP 샘플들(42)을 나타내는 상기 파일로부터의 추가적인 RAP 정보(52)를 제공하되, 샘플을 나타내는 스위칭 정보(34)를 파일에 제공 (38) 두 번째 트랙(트랙 0)의 샘플이 제2 트랙(트랙 0)의 가장 가까운 선행 RAP 샘플(42)에 업스트림의 제1 트랙의 샘플을 선행하는,
    파일 파서.
  132. 파일(32)을 처리하는 방법으로서,
    상기 파일(32)로부터, 트랙들(트랙 0 및 트랙 1) 세트(36)에 대한 스위칭 정보(34)를 도출하는 단계;
    를 포함하되, 상기 스위칭 정보(34)는, 상기 트랙들 세트의 제2 트랙(트랙 0)에서의 하나 이상의 선행 샘플들이 상기 파일이 제공되는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하는,
    파일 처리 방법.
  133. 파일(32)을 생성하는 방법으로서,
    파일(32)에 트랙들(트랙 0 및 트랙 1) 세트(36)에 대한 정보(34)를 제공하는 단계;
    를 포함하되, 상기 스위칭 정보(34)는, 상기 트랙들 세트의 제2 트랙(트랙 0)에서의 하나 이상의 선행 샘플들이 상기 파일로부터 공급되는 비디오 디코더(44)에서 이용 가능하다면, 상기 제2 트랙(트랙 0)로부터의 스위칭이 허용되는 위치에 있는 상기 트랙들 세트의 제1 트랙(트랙 1)의 샘플들을 표시하는,
    파일 생성 방법.
  134. 파일(62)로부터, 상기 파일의 트랙(64)에 대하여,
    상기 파일에 존재하는 모든 샘플 엔트리들(68)이 상기 트랙(68)에 대하여 비디오 비트스트림(76)의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링하는지를 나타내고, 상기 트랙(64)이 속하는 파일의 상기 트랙(68) 또는 트랙 그룹에 삽입되며, 소정의 디코더 능력을 충족하고, 각각의 코딩된 비디오 시퀀스(70)는 상기 비디오 비트스트림의 RAP(72)에서 시작하여 상기 비디오 비트스트림의 후속 RAP(72) 앞에서 끝나는 표시(66)
    를 도출하고,
    상기 비디오 비트스트림의 각 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리들(68)이 상기 소정의 디코더 기능을 충족하는 것으로 표시되면,
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 선행하는 코딩된 비디오 시퀀스에 대한 파일에 존재하는 샘플 엔트리에 의해 시그널링되는 비디오 파라미터들로부터 벗어나는지 여부에 관계없이, 및/또는
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 상기 비디오 디코더(78)의 현재 초기화와 충돌하는지 여부에 관계없이
    상기 코딩된 비디오 시퀀스(70)를 수신하는 비디오 디코더(78)를 코딩된 비디오 시퀀스(70)가 시작되는 RAP(72)에서 현재 초기화된 것으로서 떠나도록
    구성되는, 파일 파서(60).
  135. 청구항 134에 있어서,
    상기 표시가, 상기 비디오 비트스트림의 각 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리들(68)이 상기 소정의 디코더 기능을 충족하는 것으로 표시하지 않으면,
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 선행하는 코딩된 비디오 시퀀스에 대한 파일에 존재하는 샘플 엔트리에 의해 시그널링되는 비디오 파라미터들로부터 벗어나는지 여부, 및/또는
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 상기 비디오 디코더(78)의 현재 초기화와 충돌하는지 여부
    에 따라서 코딩된 비디오 시퀀스가 시작하는 RAP에서 상기 비디오 디코더의 재-초기화를 진행하도록
    구성되는, 파일 파서.
  136. 청구항 134 내지 135 중 어느 한 항에 있어서,
    상기 트랙에 관련된 상기 파일의 섹션으로부터, 디코더 능력 관련 비디오 파라미터를 도출하고, 상기 트랙 또는 상기 트랙 그룹으로부터 비디오 비트스트림(76)을 상기 비디오 디코더로 포워딩하면서, 상기 디코더 등력 관련 비디오 파라미터들을 상기 코딩된 비디오 시퀀스들이 시작되고 상기 샘플 엔트리들이 상기 트랙에 존재하는 RAP에서 상기 비디오 디코더(76)에 제공하도록
    구성되는, 파일 파서.
  137. 청구항 134 내지 136 중 어느 한 항에 있어서,
    상기 비디오 디코더의 초기화가 코딩된 픽처 버퍼 크기, 할당된 메모리의 양, 및/또는 할당된 프로세서 디코더 커널의 수 중 하나 이상에 영향을 미치는,
    파일 파서.
  138. 비디오 파일(62)로서,
    상기 파일의 트랙(64)에 대하여,
    상기 파일에 존재하는 모든 샘플 엔트리들(68)이 상기 트랙(68)에 대하여 비디오 비트스트림(76)의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링하는지를 나타내고, 상기 트랙(64)이 속하는 파일의 상기 트랙(68) 또는 트랙 그룹에 삽입되며, 소정의 디코더 능력을 충족하고, 각각의 코딩된 비디오 시퀀스(70)는 상기 비디오 비트스트림의 RAP(72)에서 시작하여 상기 비디오 비트스트림의 후속 RAP(72) 앞에서 끝나는 표시(66)
    를 포함하는,
    비디오 파일.
  139. 청구항 138에 있어서,
    상기 트랙과 관련된 파일의 섹션 내의 디코더 능력 관련 비디오 파라미터들을 포함하는,
    비디오 파일.
  140. 청구항 138 내지 139 중 어느 한 항에 있어서,
    상기 비디오 디코더의 초기화가 코딩된 픽처 버퍼 크기, 할당된 메모리의 양, 및/또는 할당된 프로세서 디코더 커널의 수 중 하나 이상에 영향을 미치는,
    비디오 파일.
  141. 파일(62)의 트랙(64)에 대하여,
    상기 파일에 존재하는 모든 샘플 엔트리들(68)이 상기 트랙(68)에 대하여 비디오 비트스트림(76)의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링하는지를 나타내고, 상기 트랙(64)이 속하는 파일의 상기 트랙(68) 또는 트랙 그룹에 삽입되며, 소정의 디코더 능력을 충족하고, 각각의 코딩된 비디오 시퀀스(70)는 상기 비디오 비트스트림의 RAP(72)에서 시작하여 상기 비디오 비트스트림의 후속 RAP(72) 앞에서 끝나는 표시(66)
    를 상기 파일에 제공하도록
    구성되는, 파일 생성기.
  142. 청구항 141에 있어서,
    상기 트랙과 관련된 파일의 섹션 내의 디코더 능력 관련 비디오 파라미터들을 파일에 제공하도록
    구성되는, 파일 생성기.
    파일 생성기.
  143. 청구항 141 내지 142 중 어느 한 항에 있어서,
    상기 비디오 디코더의 초기화가 코딩된 픽처 버퍼 크기, 할당된 메모리의 양, 및/또는 할당된 프로세서 디코더 커널의 수 중 하나 이상에 영향을 미치는,
    파일 생성기.
  144. 파일(62)을 처리하는 방법으로서,
    파일(62)로부터, 상기 파일의 트랙(64)에 대하여,
    상기 파일에 존재하는 모든 샘플 엔트리들(68)이 상기 트랙(68)에 대하여 비디오 비트스트림(76)의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링하는지를 나타내고, 상기 트랙(64)이 속하는 파일의 상기 트랙(68) 또는 트랙 그룹에 삽입되며, 소정의 디코더 능력을 충족하고, 각각의 코딩된 비디오 시퀀스(70)는 상기 비디오 비트스트림의 RAP(72)에서 시작하여 상기 비디오 비트스트림의 후속 RAP(72) 앞에서 끝나는 표시(66)
    를 도출하는 단계; 및
    상기 비디오 비트스트림의 각 코딩된 비디오 시퀀스(70)에 대하여 파일(62)에 존재하는 모든 샘플 엔트리들(68)이 상기 소정의 디코더 기능을 충족하는 것으로 표시되면,
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 선행하는 코딩된 비디오 시퀀스에 대한 파일에 존재하는 샘플 엔트리에 의해 시그널링되는 비디오 파라미터들로부터 벗어나는지 여부에 관계없이, 및/또는
    RAP에 대한 샘플 엔트리(68)에 의해 시그널링되는 비디오 파라미터들이 상기 비디오 디코더(78)의 현재 초기화와 충돌하는지 여부에 관계없이
    상기 코딩된 비디오 시퀀스(70)를 수신하는 비디오 디코더(78)를 코딩된 비디오 시퀀스(70)가 시작되는 RAP(72)에서 현재 초기화된 것으로서 떠나는 단계;
    를 포함하는,
    파일 처리 방법.
  145. 파일(62)를 생성하는 방법으로서,
    파일(62)의 트랙(64)에 대하여,
    상기 파일에 존재하는 모든 샘플 엔트리들(68)이 상기 트랙(68)에 대하여 비디오 비트스트림(76)의 코딩된 비디오 시퀀스(70)에 대한 비디오 파라미터들을 시그널링하는지를 나타내고, 상기 트랙(64)이 속하는 파일의 상기 트랙(68) 또는 트랙 그룹에 삽입되며, 소정의 디코더 능력을 충족하고, 각각의 코딩된 비디오 시퀀스(70)는 상기 비디오 비트스트림의 RAP(72)에서 시작하여 상기 비디오 비트스트림의 후속 RAP(72) 앞에서 끝나는 표시(66)
    를 상기 파일에 제공하는,
    파일 생성 방법.
  146. 컴퓨터 또는 신호 프로세서 상에서 실행될 때 청구항 91 내지 102, 132, 133, 144, 및 145 중 어느 한 항의 방법을 구현하기 위한 컴퓨터 프로그램.
KR1020227038701A 2020-04-03 2021-04-01 비디오 코딩을 위한 파일 포맷 개념 KR20220163474A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20168113.7 2020-04-03
EP20168113 2020-04-03
PCT/EP2021/058758 WO2021198488A1 (en) 2020-04-03 2021-04-01 File format concepts for video coding

Publications (1)

Publication Number Publication Date
KR20220163474A true KR20220163474A (ko) 2022-12-09

Family

ID=70289254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227038701A KR20220163474A (ko) 2020-04-03 2021-04-01 비디오 코딩을 위한 파일 포맷 개념

Country Status (4)

Country Link
US (1) US20230089495A1 (ko)
EP (1) EP4128810A1 (ko)
KR (1) KR20220163474A (ko)
WO (1) WO2021198488A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11683529B2 (en) 2020-09-17 2023-06-20 Lemon Inc. Operational point sample group in coded video

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2546027B (en) * 2013-04-09 2017-12-20 Canon Kk Method, device, and computer program for encapsulating partioned timed media data
GB2535453A (en) * 2015-02-10 2016-08-24 Canon Kk Method, device, and computer program for encapsulating hevc layered media data
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format

Also Published As

Publication number Publication date
WO2021198488A1 (en) 2021-10-07
US20230089495A1 (en) 2023-03-23
EP4128810A1 (en) 2023-02-08

Similar Documents

Publication Publication Date Title
US9900363B2 (en) Network streaming of coded video data
US9992555B2 (en) Signaling random access points for streaming video data
EP3311574B1 (en) Method, device, and computer program for obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set
KR102168596B1 (ko) 저 레이턴시 비디오 스트리밍
KR101242472B1 (ko) 트랙 및 트랙 서브세트의 그룹화를 위한 방법 및 장치
Amon et al. File format for scalable video coding
EP3123731B1 (en) Processing continuous multi-period content
KR101620151B1 (ko) 클라이언트와, 콘텐트 생성기 엔티티 및 미디어 스트리밍을 위한 이들의 방법
US20160165321A1 (en) Method, device, and computer program for encapsulating partitioned timed media data using sub-track feature
KR20220164549A (ko) 효율적인 관심영역, 스트림 액세스 및 파라미터 세트 처리를 허용하는 파일 포맷 체계
KR20200024207A (ko) 파일 포맷 박스들에 대한 제네릭 디스크립터를 사용한 미디어 데이터의 프로세싱
CN114270868A (zh) 用于在视频编码中处理随机访问图片的装置、方法和计算机程序
KR102434299B1 (ko) 샘플 엔트리들 및 랜덤 액세스
KR20130050958A (ko) 트릭 모드 비디오 표현물에 대한 비디오 샘플의 시그널링
TW202127889A (zh) 用以在視頻流中混合不同網路抽象層單元類型的網路抽象層單元的解碼器、編碼器和方法
US11184665B2 (en) Initialization set for network streaming of media data
US20230089495A1 (en) File format concepts for video coding
US20220337846A1 (en) Method and apparatus for encapsulating encoded media data in a media file
US20230336798A1 (en) File parser, file generator, encoder, decoder, client, server, and methods using parameter sets for coded video sequences
OA18391A (en) Low latency video streaming.