JP7348962B2 - メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム - Google Patents

メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム Download PDF

Info

Publication number
JP7348962B2
JP7348962B2 JP2021568664A JP2021568664A JP7348962B2 JP 7348962 B2 JP7348962 B2 JP 7348962B2 JP 2021568664 A JP2021568664 A JP 2021568664A JP 2021568664 A JP2021568664 A JP 2021568664A JP 7348962 B2 JP7348962 B2 JP 7348962B2
Authority
JP
Japan
Prior art keywords
track
extractor
media
constructor
data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2021568664A
Other languages
English (en)
Other versions
JP2022546894A (ja
Inventor
フレデリック マゼ,
フランク ドゥヌアル,
ナエル ウエドラオゴ,
フェーブル, ジャン ル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2022546894A publication Critical patent/JP2022546894A/ja
Application granted granted Critical
Publication of JP7348962B2 publication Critical patent/JP7348962B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はメディアデータをカプセル化し、伝送するための方法および装置に関する。
国際標準化機構ベースメディアファイルフォーマット(ISO BMFF、ISO/IEC 14496-12)は、ローカル記憶のため、またはネットワークを介するか、または別のビットストリーム配信機構を介する送信のために、符号化されたタイムド(timed)またはノンタイムド(non-timed)メディアデータをカプセル化、及び、記述する周知の柔軟かつ拡張可能なファイルフォーマットである。拡張の一例は、様々なNAL(Network Abstraction Layer:ネットワーク抽象化レイヤ)ユニットベースのビデオ符号化フォーマットのためのカプセル化ツールを記述するISO/IEC 14496-15である。このような符号化フォーマットの例は、AVC(Advanced Video Coding)、SVC(Scalable Video Coding)、HEVC(High Efficiency Video Coding)、およびL-HEVC(Layered HEVC)である。ファイルフォーマット拡張の別の例は、HEVC Still Imageのような静止画像または静止画像のシーケンスのためのカプセル化ツールを記述するISO/IEC 23008-12である。ファイルフォーマット拡張の別の例は、全方向メディアアプリケーションフォーマット(OMAF)を定義するISO/IEC 23090-2である。ISO Base Mediaファイルフォーマットはオブジェクト指向である。これは、ボックスと呼ばれる構成要素(または固有のタイプ識別子(通常は4文字のコードで、FourCCまたは4CCと記されている)によって特徴付けられるデータ構造)で構成される。フルボックス(Full boxes)は、version 属性とフラグ値属性に加えて構成されるボックスに似たデータ構造である。以下では、ボックスという用語がフルボックスまたはボックスの両方を指定することができる。これらのボックスまたはフルボックスは、ISOBMFFファイルの中で階層的にまたは順番に編成され、符号化されたタイミングまたは非タイミングのメディアデータ、その構造およびタイミング(もしあれば)を記述するパラメータを定義する。カプセル化されたメディアファイル内のすべてのデータ(メディアデータと、メディアデータを記述するメタデータ)は、ボックスに含まれている。ファイル内に他のデータがない。ファイルレベルのボックスは、他のボックスに含まれていないボックスである。
ファイルフォーマットでは、メディア全体のプレゼンテーションはムービーと呼ばれる。ムービーは、ファイルの最上位にムービーボックス(4文字のコード“moov”)で記述される。このムービーボックスは、メディアプレゼンテーションを記述する様々なボックスの集合を含む初期化情報コンテナを表す。論理的には、それはトラックボックスで表されるトラックに分割される(4文字のコード“trak”)。各トラック(トラック識別子(track_ID)によって一意に識別される)は、プレゼンテーションに属するメディアデータのタイムドシーケンス(timed sequence)(ビデオサンプルまたはオーディオサンプルのフレームなど)を表す。各トラック内で、データのタイムド単位はサンプルと呼ばれる。これは、ビデオ、オーディオ、またはタイムドメタデータのフレームの場合がある。サンプルは、復号順序シーケンスにおいて暗黙的に番号付けされる。各トラックボックスは、トラックのサンプルを記述するボックスの階層を含む。たとえば、サンプルテーブルボックス(“stbl”)は、トラック内のメディアサンプルのすべての時間とデータのインデックスを含む。実際のサンプルデータは、ムービーボックスと同じレベルで、メディアデータボックス(Media Data Boxes)(4文字コード“mdat”)または識別メディアデータボックス(Identfied Media Data Boxes)(メディアデータボックスと同様であるが、追加の識別子を含む4文字コード“imda”)と呼ばれるボックスに保存される。ムービーは全体のプレゼンテーションのための情報を含むムービーボックスとして結合編成することができ、その後にメディアフラグメントのリスト、すなわち、いくつかのムービーフラグメントおよびメディアデータボックス(「mdat」または「imda」)のリストが続く。ムービーフラグメント(4 文字コード“moof”のボックス) 内には、メディアフラグメント内のトラック(ムービーフラグメントあたり0 個以上) を記述する一連のトラックフラグメント(4 文字コード“traf” のボックス) がある。トラック・フラグメントは次に、0個以上のトラックランボックス(track run boxes)(“trun”)を含み、各トラックランボックスは、そのトラックフラグメントに対するサンプルの連続したランを文書化する。
ISOBMFFファイルは、複数のトラックを形成する符号化タイムドメディアデータまたは符号化タイムドメディアデータのサブパートを含むことがある。サブパートが、或る時間にわたって撮られたビデオソースの1つまたは連続する空間パートに対応する場合(例えば、ある時間にわたって撮られた「タイル」または「サブピクチャ」と呼ばれることもある少なくとも1つの矩形領域)、対応する複数のトラックは、タイルトラックまたはサブピクチャトラックと呼ばれることがある。ISOBMFFおよびその拡張は、トラック、静的アイテム、またはサンプルを一緒にグループ化するためのいくつかのグループ化機構を含む。グループは、通常、共通の意味および/または特性を共有する。
本発明者らは特に1つのトラックが別のトラックを参照しているときの複数のトラックについて、送信すべきメディアデータに関する情報を記述し、シグナリングするときの、いくつかの問題に気付いた。
一例は、特に、シグナリングがトラック全体にわたってほとんど反復された値を含む場合に、別のトラックで参照されるデータエンティティのシグナリングのコストを低減することを含む。
別の例は、抽出器(extractor)を介して取得されるデータエンティティのNALユニット長のシグナリングを最適化することに関する。
既存のソリューションは、複雑であるか、または明確に定義されていない。
本発明は、前述の問題のうちの1以上に対処するように考案されている。
この文脈では、例えば、httpプロトコルを使用するインターネットのようなIPネットワーク上で、メディアコンテンツ(例えば、全方向メディアコンテンツ)をストリーミングするための解決策が提供されている。
本発明の第1の態様によれば、メディアデータをメディアファイルにカプセル化する方法が提案される。そして、この方法は、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
前記メディアファイルに、エクストラクタを有する第2のトラックを含めることと、
ここで前記エクストラクタは、前記第1のトラックに含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも第1のコンストラクタを有する、
前記方法は、更に、
デフォルトコンストラクタを前記第2のトラックに含めることを有し、
前記コンストラクタは、前記デフォルトコンストラクタを参照する参照コンストラクタである。
実施形態においては、前記デフォルトコンストラクタは前記第2のトラックのメタデータ部に含まれる。
実施形態においては、前記第2のトラック内の前記デフォルトコンストラクタは、デフォルトコンストラクタのリストとして含まれており、前記参照コンストラクタは前記リストのインデックスを有する。
実施形態においては、前記デフォルトコンストラクタは、前記第2のトラックの前記メタデータ部のサンプルエントリに含まれる。
実施形態においては、前記デフォルトコンストラクタは、前記第2のトラックのサンプルグループを記述するサンプルグループエントリ内に含まれ、前記エクストラクタは前記サンプルグループのサンプル内に含まれる。
本発明の他の態様によれば、メディアデータをメディアファイルにカプセル化する方法が提案される。そして、この方法は、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
前記メディアファイルに、エクストラクタを有する第2のトラックを含めることと、
ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、
前記方法は、更に、
デフォルトエクストラクタを前記第2のトラックに含めることを有し、
前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタを参照する参照エクストラクタである。
本発明の他の態様によれば、メディアデータをメディアファイルにカプセル化する方法が提案される。そして、この方法は、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
前記メディアファイルに、エクストラクタを有する第2のトラックを含めること、
ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも1つのコンストラクタを有する;
前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドも有さないことを示す情報とを有する。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析する方法が提案される。そして、この方法は、
前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
前記メディアファイル内の、エクストラクタを有する第2のトラックを得ることと、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくも1つのコンストラクタを有する、
前記方法は、更に、
前記第2のトラック内のデフォルトコンストラクタを得ること、
前記コンストラクタは、前記デフォルトコンストラクタを参照する参照コンストラクタであり、
前記デフォルトコンストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得ることを有する。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析する方法が提案される。そして、この方法は、
前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
前記メディアファイル内の、エクストラクタを有する第2のトラックを得ることと、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、
前記方法は、更に、
前記第2のトラック内のデフォルトエクストラクタを得ること、
前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタコを参照する参照エクストラクタであり、
前記デフォルトエクストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得ることを有する。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析する方法が提案される。そして、この方法は、
前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
ここで各メディアサンプルは、1以上のNALユニットのセットを含む;
前記メディアファイル内の、エクストラクタを有する第2のトラックを得ることと、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくとも1つのコンストラクタを有する;
前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドをも有さないことを示す情報とを有する。
本発明の他の態様によれば、プログラマブル装置用のコンピュータプログラム製品が提案される。このコンピュータプログラム製品は、
前記プログラマブル装置によってロードされ実行されたときに、本発明に従った方法を実行するための命令シーケンスを有する。
本発明の他の態様によれば、本発明に従った方法を実行させるためのコンピュータプログラムの命令を記憶する、コンピュータ可読記憶媒体が提案される。
本発明の他の態様によれば、本発明に従った方法を実行させるためのコンピュータプログラムが提案される。
本発明の他の態様によれば、メディアデータをメディアファイルにカプセル化するデバイスが提案される。そして、前記デバイスはプロセッサを有し、当該プロセッサは、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
ここで前記エクストラクタは、前記第1のトラックに含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも第1のコンストラクタを有する、
前記方法は、更に、
デフォルトコンストラクタを前記第2のトラックに含め、
前記デフォルトコンストラクタを参照する参照コンストラクタを、前記エクストラクタに含める。
本発明の他の態様によれば、メディアデータをメディアファイルにカプセル化するデバイスが提案される。そして、前記デバイスはプロセッサを有し、当該プロセッサは、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、
前記方法は、更に、
デフォルトエクストラクタを前記第2のトラックに含め、
前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタを参照する参照エクストラクタである。
本発明の他の態様によれば、メディアデータをメディアファイルにカプセル化するデバイスが提案される。そして、前記デバイスはプロセッサを有し、当該プロセッサは、
前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも1つのコンストラクタを有する;
前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドも有さないことを示す情報とを有する。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析するデバイスが提供される。そして、このデバイスは、プロセッサを有し、当該プロセッサは、
前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくも1つのコンストラクタを有する、
前記方法は、更に、
前記第2のトラック内のデフォルトコンストラクタを得て、
前記エクストラクタ内の、前記デフォルトコンストラクタを参照する参照コンストラクタを得て、
前記デフォルトコンストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得る。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析するデバイスが提供される。そして、このデバイスは、プロセッサを有し、当該プロセッサは、 前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体である;
前記方法は、更に、
前記第2のトラック内のメタデータ部内のデフォルトエクストラクタを得て、
前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタコを参照する参照エクストラクタであり、
前記デフォルトエクストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得る。
本発明の他の態様によれば、メディアファイル内へのメディアデータを構文解析するデバイスが提供される。そして、このデバイスは、プロセッサを有し、当該プロセッサは、
前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
ここで各メディアサンプルは、1以上のNALユニットのセットを含む;
前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくとも1つのコンストラクタを有する;
前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドをも有さないことを示す情報とを有する。
本発明の他の対応は、メディアデータをカプセル化する、及び、メディアファイルを構文解析するコンピューティングデバイス、及び、対応するコンピュータプログラムに関する。
本発明のさらなる利点は図面および詳細な説明を検討することにより、当業者に明らかになるのであろう。任意の追加の利点が本明細書に組み込まれることが意図される。
本発明の実施形態は、単なる例として、以下の図面を参照して以下に記載される。
図1は、本発明の実施形態を具体化するように適合されたカプセル化/カプセル化解除モジュールを含む例示的なシステムを示す; 図2は、NAL(Network Abstraction Layer)ユニットの構成例を示す図である; 図3aは、ISOベースメディアファイルフォーマットに従ったビデオメディアサンプルの構造例を示す; 図3bは、ISOベースメディアファイルフォーマットに従ったビデオメディアサンプルの別の構造例を示す; 図4は、ISO/IEC 14496-15に準拠したExtractorおよびAggregator構造の例を示している; 図5aは、本発明の実施形態によるカプセル化およびカプセル化解除プロセスを示す; 図5bは、本発明の実施形態によるカプセル化およびカプセル化解除プロセスを示す; 図6は、本発明の実施形態によるカプセル化ファイルフォーマットを示す。 図7は、本発明の1つまたは複数の実施形態を実施するためのコンピューティングデバイスの概略ブロック図である。
図1は、本発明の実施形態を具体化するように適合された例示的なシステム191および195を示す。システム191は、通信ネットワーク199に接続されたカプセル化モジュール(encapsulation module)150を備える。システム195は、通信ネットワーク199に接続されたカプセル化解除モジュール(de-encapsulation module)100を備える。
一実施形態によれば、システム191は、ストリーミングまたは記憶のために、コンテンツ、例えば、ビデオ、静止画像、および/またはオーディオコンテンツを処理するためのものである。システム191は、オリジナルのノンタイムドセットまたはタイムドシーケンスの画像151を含むコンテンツを取得/受信し、メディアエンコーダ(例えば、画像またはビデオのエンコーダ)を使用して、ノンタイムドセットの画像またはタイムドシーケンスの画像を符号化メディアデータに符号化し、カプセル化モジュール150を使用して、符号化メディアデータをメディアファイル101にカプセル化する。カプセル化モジュール150は、符号化されたメディアデータをカプセル化するためのライタまたはパッケージャのうちの少なくとも1つを備える。メディアエンコーダは、受信されたコンテンツを符号化するためにカプセル化モジュール150内に実装されてもよく、またはカプセル化モジュール150とは別個であってもよい。したがって、カプセル化モジュール150は、既に符号化されたコンテンツ(符号化されたメディアデータ)をカプセル化するためだけに専用にすることができる。符号化ステップは任意であり、符号化されたメディアデータは生のメディアデータに対応しても良い。
一実施形態によれば、システム195は、ユーザに表示/出力するためのカプセル化符号化メディアデータを処理するためのものである。システム195は通信ネットワーク199を介して、または記憶手段を読み取ることによって、メディアファイル101を取得/受信し、カプセル化解除モジュール100を使用して、メディアファイル101のカプセル化解除し、メディアデコーダを使用して、エンコードされたメディアデータをオーディオおよび/またはビデオコンテンツ(信号)にデコードする。カプセル化解除モジュール100は、パーサ(parser)またはプレイヤー(player)のうちの少なくとも1つを備える。メディアデコーダは、カプセル化解除モジュール100内に実装して符号化メディアデータを復号してもよいし、カプセル化解除モジュール100とは別となっても良い。
メディアファイル101は、多数の方法で、モジュール100のパーサまたはプレイヤーに通信される。例えば、カプセル化モジュール150のライタまたはパッケージャによって事前に生成され、ユーザが記憶装置からエンコードされたコンテンツを要求するまで、通信ネットワーク199内の記憶装置(例えば、サーバまたはクラウドストレージ上)にデータとして記憶される。コンテンツを要求すると、データは、ストレージ装置からカプセル化解除モジュール100に通信/ストリーミングされる。
システム191はまた、記憶装置に記憶されたコンテンツのためのコンテンツ情報をユーザに提供/ストリーミングするためのコンテンツ提供装置を備えてもよい(例えば、コンテンツ情報は、コンテンツのタイトルと、コンテンツを識別、選択および要求するための他の記述的メタデータおよび記憶位置データを含むマニフェストファイルを介して記述されてもよい)。また、コンテンツ提供装置は、ストレージ装置からユーザ端末に配信/ストリーミングされるコンテンツに対するユーザ要求を受信し、処理するように構成されてもよい。
あるいは、カプセル化モジュール150は、メディアファイル101を生成し、ユーザがコンテンツを要求したときと同様に、それをカプセル化解除モジュール100に直接通信/ストリーミングすることができる。次いで、カプセル化解除モジュール100は、メディアファイル101を受信し、ビデオ信号109および/またはオーディオ信号を取得/生成するために、本発明の実施形態によるメディアデータのカプセル化解除および復号化を実行し、次いで、ユーザ端末によって要求されたコンテンツをユーザに提供するために使用される。
ユーザは、モジュール100を含むユーザ端末、またはモジュール100と通信する手段を有するユーザ端末のユーザインターフェースを介して、オーディオ/ビデオコンテンツ(シグナル)にアクセスすることができる。このようなユーザ端末は、コンピュータ、携帯電話、タブレット、またはユーザにコンテンツを提供/表示することができる他の任意のタイプの装置であってもよい。
一実施形態によれば、メディアファイル101は、ISOベースメディアファイルフォーマット(ISOBMFF、ISO/IEC 14496-12およびISO/IEC 14496-15規格)に従って、符号化されたメディアデータ(例えば、符号化されたオーディオまたはビデオ)をボックスにカプセル化する。メディアファイル101は、一つのメディアファイル(先頭にFileTypeBox“ftyp”が付く)、又は一つのメディアファイル(先頭にFileTypeBox“ftyp”が付く)に続く一つ以上のセグメントファイル(先頭にSegmentTypeBox“ftyp”が付く)に対応することができる。ISOBMFFによれば、メディアファイル101は、メディアデータを含む“メディアデータ”ボックス(“mdat”または“imda”)と、メディアデータの配置およびタイミングを定義するメタデータを含む“メタデータボックス”(“moov”または“moof”または“meta”ボックス階層)の2種類のボックスを含むことができる。
画像またはビデオのエンコーダは、画像またはビデオ規格を使用して、画像またはビデオコンテンツを符号化し、符号化されたメディアデータを生成する。例えば、画像又はビデオ符号化/復号(コーデック)規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262(ISO/IEC MPEG-2 Visual)、ITU-T H.263(ISO/IEC MPEG-4 Visual)、ITU-T H.264(ISO/IEC MPEG-4 AVC)、そのスケーラブルビデオ符号化(SVC)及びマルチビュービデオ符号化(MVC)拡張を含む、ITU-T H.265(HEVC)、そのスケーラブル(SHVC)及びマルチビュー(MV-HEVC)拡張を含む)を含む。
本明細書で説明される多くの実施形態は、HEVC規格またはその拡張を使用する例を説明する。しかしながら、本明細書に記載される技術およびシステムは、AVCのような既に利用可能な他の符号化標準にも適用可能であり、または、仕様の下にあるITU-T H.VVC(ISO/IEC MPEG-I VVC)(Versatile Video Coding)のような、まだ利用可能または開発されていない他の符号化標準にも適用可能であり得る。
図2は、H.264/AVC、HEVC/H.265、もしくは、VVCなどのビデオコーデックで使用されるNAL(Network Abstraction Layer)ユニット200の構造例(structure example)を示す。
NALユニットは、NALユニットヘッダ201およびNALユニットペイロード202を含む。NALユニットヘッダ201は固定長であり、NALユニットに関する一般的な情報を提供する。例えば、HEVCの場合、NALユニットヘッダ201は、NALユニットごとに、タイプ、レイヤの識別子、およびテンポラルサブレイヤの識別子を示す。NALユニット200には、ビデオ符号化レイヤ(Video Coding Layer)NALユニット(VCL-NAL)と、非VCL NALユニットの2つの主要なタイプがある。VCL NALユニットは、典型的にはそのペイロード内に符号化スライスセグメント205を含む。非VCL NALユニットには、通常、パラメータセット(設定情報など)または補足拡張情報メッセージ(Supplemental information message)が含まれる。
符号化されたスライスセグメント205は、slice_segment_header又は“slice header”206に続くslice_segment_data又は“slice data”207としてHEVCビットストリーム(符号化されたメディアデータ)内に符号化され、バイトアライメントを確実にするためにrbsp_slice_segment_trailing_bits又は“slice trailing bits”(スライス後端ビット)208が続く。スライスセグメントは、整数個の連続する(ラスタ走査順序での)符号化ツリーユニット(Coding Tree Units)(すなわち、ピクチャ内のブロック)を含む。スライスは、必ずしも長方形である必要はない(したがって、空間サブパート表現のためのタイルよりも適切ではない)。ビデオ圧縮フォーマットは、符号化されたピクチャに対応する、復号順序が連続するNALユニットのセットとしてアクセスユニットを定義する。
図3aは、ISOベース・メディア・ファイル・フォーマットに従ったメディア(ビデオ)サンプル300の構造例を示す。
メディアサンプルは、単一の時間(オーディオサンプルやビデオフレームなど)を持つオーディオ/ビデオデータユニットである。ISO/IEC 14496-15によれば、サンプルは、アクセスユニットまたはアクセスユニットの一部に対応する1以上のNALユニット302(図2に示されるNALユニット200に類似)のセットである。各NALユニット302には、NALユニット302のバイト単位の長さを提供するNALユニット長フィールド301が先行する。例えば、単一レイヤビデオの場合、サンプルは符号化ピクチャに対応する。階層化ビデオの場合、サンプルはアクセスユニットの一部、例えば、ベースレイヤのNALユニットに対応することができる。
サンプルサイズは、バイト単位で、サンプル・サイズ・ボックス“stsz” または“stsz2” に記述されている。サンプルサイズおよびNALユニット長が与えられると、ISOBMFFパーサ(例えば、モジュール100)は、サンプル中のNALユニットの個数を決定することができる。ISO/IEC 14496-15は、メディアデータ(“mdat”ボックス)内に埋め込まれた特定のISOBMFF構造である特定のNALユニット、エクストラクタ(Extractors)、およびアグリゲータ(Aggregators)を定義する。これらは“インストリーム構造体(in-stream structure)”とも呼ばれる。エクストラクタは、他のトラックからデータを抽出するためにNALユニットヘッダを使用するインストリーム構造体である。エクストラクタは、他のトラックからデータをどのように抽出するかに関する命令を含む。論理的には、エクストラクタは、データへのポインタと見なすことができる。エクストラクタを含むトラックを読み込んでいるときに、エクストラクタはそれが指しているデータに置き換えられる。また、エクストラクタは、エクストラクタを置き換える際に使用されるデータ(インラインデータ)を直接含んでもよい。アグリゲータは、同じサンプルに属するNALユニットをグループ化するためにNALユニットヘッダを使用するインストリーム構造体である。
図3bは、ISOベースメディアファイルフォーマットに従ったメディア(ビデオ)サンプル310の別の構造体例を示す。
ISO/IEC 14496-15によれば、タイプ“hvt2”のトラックのサンプルフォーマットは、独立したスライスセグメントのHEVCシンタックス要素slice_segment_data()311及びrbsp_slice_segment_trailing_bits()312のうちの1つのみのインスタンスから成ることができる。他のデータはサンプル中に存在しない。通常、この特定の種類のサンプル形式には、NAL ユニットヘッダやslice_segment_header() など、これらの構文要素を書き換える必要があるアプリケーション用のHEVC 構文要素が意図的に含まれていない。これは、異なるトラックのサンプルにNAL ユニットが含まれていて、これを合成してマージして、デコードするエンコードされたメディアデータの単一ビットストリームを取得できる場合に発生する。例えば、異なるトラックが、ビデオコンテンツの異なる空間サブパートに対応するNALユニットを含む場合である。このような場合、NAL ユニットヘッダーとslice_segment_header() は、マージ操作中に再書き込みを行って、エンコードされたメディアデータの適合ビットストリームを取得する必要がある。たとえば、スライスアドレスを再計算し、結果のビットストリームで変更する必要がある。このような書き換えを避けるために、これらのヘッダは通常通りslice_segment_data() を含むトラック内にカプセル化されないが、むしろ1つの別々のトラック(マージされるすべてのトラックに共通)にカプセル化される。このトラックは、エクストラクタおよびスライスセグメントヘッダをネイティブに含む。エクストラクタは、別の参照されたトラックのサンプルからデータを参照および抽出することを可能にする特定の構造体である。復号対象のビットストリームのサンプル(NALユニット長フィールド、NALユニットヘッダ、スライスヘッダ、スライスデータ、およびスライストレーリングビットを含む)は、図4に示すようにエクストラクタを分解することによって得られる
図4は、ISO/IEC 14496-15に準拠したExtractorの構造体例を示している。
符号化されたメディアデータ(例えば、符号化されたビデオビットストリーム)に対応する第1(メディア)トラック400は、メディア(例えば、ビデオ)サンプル401を含み、各メディアサンプルは図3aに示されるように、1つ以上のNALユニットのセット(それらの各々にNALユニット長フィールドが先行する)を含む。サンプル中のNALユニットの個数は、互いに異なっていてもよい。例えば、再構成、合成、基準または抽出トラックと呼ばれる第2のトラック420は、別のトラック、ここでは矢印410で示す第1のトラック400からのデータを参照するために、NALユニット423および抽出NALユニット422を混合するサンプル421を備える。次に、トラック400からデータを抽出し、それを現在のトラック420からのデータ423と連結することによって、現在のトラック420からのサンプル421を再構成することができる。
再構成トラック420のいくつかのサンプル421はエクストラクタのみ、またはデータのみを含むことができることに留意されたい。エクストラクタまたはNALユニットの個数は、サンプル421ごとに異なってもよい。エクストラクタはNALユニットであり、他のNALユニットとしてNALユニット長フィールドが先行する。エクストラクタ422は、エクストラクタを含むトラック以外のトラックからのNALユニットの効率的な抽出を可能にする構造体である。エクストラクタNALユニットは特定のNALユニットタイプ値によって識別される(特定の値がVLCおよび非VLC NALユニットに割り当てられたコーデック固有のタイプ値と競合しないように、使用中のコーデックに依存し得る)。
ISO/IEC 14496-15 は、SVC、MVC、HEVC...HEVC の異なる圧縮形式のエクストラクタを定義する。HEVCの場合、エクストラクタは次のようなコンストラクタ(constructors)のセットとして定義される:
--------------------------------------------------------------------------
class aligned(8) Extractor () {
NALUnitHeader();
do {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
} while( !EndOfNALUnit() )
--------------------------------------------------------------------------
エクストラクタはまず1つのNALUnitHeader() と、それに続く1つ以上のコンストラクタで構成される。これらのコンストラクタは、このカレントトラック、またはエクストラクタが存在するトラックにリンクされている別のトラックから、“scal”タイプのトラックリファレンスの手段によってデータを抽出する。
複数タイプのコンストラクタが特定される:
- サンプルコンストラクタ(constructor_type = 0)は、基準により、別のトラックのサンプルからNALユニットデータを抽出する。
- インラインコンストラクタ(constructor_type = 1) は、NALユニットデータを含む。
- トラックグループからのサンプルコンストラクタ(constructor_type = 2)は、基準により、トラックグループ内の別のトラックまたはトラックのサンプルからNALユニットデータ(コピーモードに従って、NALユニット全体またはNALユニットペイロードのいずれか)を抽出する。
HEVCの場合、NALUnitHeader()は、ISO/IEC 23008-2 NALユニットの最初の2バイトに対応し、特定のNALユニットタイプ値(nal_unit_type)は、エクストラクタ(=49)の予約値に等しい。
EndOfNALUnit() は、このエクストラクタの後にさらにデータが続く場合は0 (false) を、それ以外の場合は1 (true) を返す関数である。
各コンストラクタは、抽出対象のデータを特徴付けるために複数の属性を含むことができる。
エクストラクタは、別のトラック又はトラックグループのサンプルからのNALユニットデータ又はNALユニットデータの一部を参照するエクストラクタトラックの各サンプルにおいて宣言される。サブピクチャ/スライス/タイル抽出での典型的な使用では、エクストラクタがほとんど繰り返される構造体であり、それらのコンストラクタの属性の大部分は単に、1つのエクストラクタから別のエクストラクタへ繰り返される。例えば、サンプルコンストラクタ及びトラックグループからのサンプルコンストラクタは、データを抽出するトラックの検索に使用するscal タイプのトラック参照のインデックスを特定するためのtrack_ref_index 属性を有する。典型的には、この属性の値が、あるサンプルから別のサンプルに非常に頻繁に変化することはない。別の例として、データの抽出が他のトラックの時間整列サンプルのみを参照する場合、属性sample_offsetは、通常、すべてのエクストラクタにおいて0である。
本発明の一態様によれば、デフォルトコンストラクタを宣言し、これらのデフォルトコンストラクタを参照する新しいコンストラクタを定義することによって、エクストラクタのシグナリングコストを最適化する機構が提案される。1つの利点は、デフォルトコンストラクタを参照するエクストラクタを宣言することにより、コンストラクタの属性がトラック全体にわたってほとんど繰り返される値である場合に、エクストラクタトラックの各サンプル内の各エクストラクタの記述サイズを低減することができることである。デフォルトコンストラクタのリストは、エクストラクタトラックのメタデータ部分で定義できる。メディアデータ部におけるサンプルでは、デフォルトコンストラクタのリストでデフォルトコンストラクタを参照する新しいタイプのコンストラクタ、参照コンストラクタが提案されている。例えば、参照コンストラクタは、デフォルトコンストラクタのリストにインデックスを含む場合がある。したがって、エクストラクタトラックで数回使用されるコンストラクタは、デフォルトコンストラクタのリストで一度送信されてもよい。
エクストラクタがコンストラクタに基づいていない場合、同じメカニズムがエクストラクタレベルで適用することができる。デフォルトのエクストラクタのリストは、エクストラクタトラックのメタデータ分で定義できる。新しいタイプのエクストラクタ、すなわち、参照エクストラクタ(reference extractor)は、デフォルトエクストラクタを参照するために定義されてもよい。参照エクストラクタは、エクストラクタトラックのメディア部分において、サンプルにおいて、デフォルトエクストラクタのリストにおけるデフォルトエクストラクタを参照するために使用されてもよい。
本発明の別の態様によれば、新しいタイプのインラインコンストラクタ(inline constructor)が提案される。インラインコンストラクタを使用して、新しいNALユニットヘッダを提供することができる。インラインコンストラクタがNALユニット長フィールドを含み、このフィールドがNALユニットのペイロードを提供するために使用される他のコンストラクタに従って書き換えられ得ることが起こる。NALユニット長フィールドがインラインコンストラクタによって提供されていて、書き換えが必要な場合、インラインコンストラクタでの送信は役に立たない。提案された新しいタイプのインラインコンストラクタは、いかなるNALユニット長フィールドも明示的に含まず、したがって、エクストラクタトラックの構文解析中(parsing)に生成され得るときに、その伝送を節約する。
図5aは、本発明の一実施形態によるカプセル化プロセスを示す。一実施形態では、このプロセスは、メディアデータをカプセル化するために、図1に示すカプセル化モジュール150のライタ(writer)またはパッケージャによって実行される。
ステップ500にて、カプセル化モジュールは、エンコードされたメディアデータのビットストリームを適切に読み出せるように初期化される。初期化は、ユーザインタフェースを介したユーザにより、またはアプリケーションによって、ユーザによって実行されてもよい。初期化は、汎用性のためにデータエンティティと呼ばれるビットストリームの構文構造の識別、およびカプセル化パラメータの設定に関係する場合がある。カプセル化の構成は例えば、メディアファイル101を1つのメディアファイルとして生成するか、または1つ以上のメディアフラグメントから構成されるメディアセグメントを構成する複数のメディアファイルを生成するか、ビデオストリームのためにメディアファイルに1つのトラックまたは複数のトラックを含めるか、ビデオトラックをパーツ、ビュー、またはレイヤに分割するかなどを決定することで構成してもよい。
複数のトラックが含まれる場合、カプセル化モジュールは、ステップ500中に、トラック間の参照を設定するか、またはトラックのグループを定義することができる。したがって、1つまたは複数の他のトラックを参照することによって構築されるトラックは、これらの1つまたは複数のトラックに対するトラック参照を含む。トラック参照は参照元トラックと参照先トラックとの間の関係や依存関係の種類を記述するために、異なるタイプにすることができる。トラック参照タイプは、4 文字のコードを使用してエンコードできる。例えば、ISO/IEC 14496-15によれば、タイプコード“scal”は、データが抽出される別のトラックを参照する少なくとも1つのエクストラクタを含むトラックを指定する。
H.264/AVCとHEVCに対するISO/IEC 14496‐15に規定されているエクストラクタは、参照によりNALユニットデータを抽出するトラックのコンパクトな形成を可能にする。エクストラクタは、NALユニット似(NAL-unit-Like)の構造体である。NALユニット似の構造体は、任意のNALユニットのようなNALユニットヘッダおよびNALユニットペイロードを備えるように特定されてもよいが、開始コードエミュレーション防止(NALユニットに必要とされる)は、NALユニット似の構造体では追従されなくてもよい。HEVCの場合、エクストラクタは、1以上のコンストラクタを含む。サンプルコンストラクタは、参照により、別のトラックのサンプルからNALユニットデータを抽出する。インラインコンストラクタは、NALユニットデータを含む。それを必要とするファイルリーダによってエクストラクタが処理されるとき、エクストラクタは、それらの出現順序で含まれるコンストラクタを分解するときに得られるバイトに論理的に置き換えられる。入れ子抽出は許可されないことがあり、例えば、サンプルコンストラクタによって参照されるバイトはエクストラクタを含まない;エクストラクタが直接的または間接的に、別のエクストラクタを参照しない。エクストラクタは、現トラックから、もしくは、タイプ“scal”のトラック参照の手段によって、エクストラクタが存在するトラックにリンクされた別のトラックから、データを抽出するための1以上のコンストラクタを含むことができる。分解済みのエクストラクタのバイトは、1以上のNALユニット全体を表すことができる。分解済みのエクストラクタは、有効な長さフィールドとNALヘッダーから始まる。サンプルコンストラクタのバイトは、“scal”を示したトラックリファレンスを介して、参照されるトラック内の識別された単一のサンプルからのみコピーされる。アラインメントは復号時間、すなわち、時間-サンプルテーブルのみを使用し、その後にサンプル数のカウントされたオフセットが続く時間-サンプルテーブルのみを使用する。エクストラクタトラックは、1以上のエクストラクタを含むトラックとして定義することができる。
カプセル化モジュールが初期化されると、ビットストリームは、ステップ501で、NALユニットごとに読み出される。パラメータセットに対応する第1のNALユニットは、ステップ500における初期化(帯域内または帯域外パラメータセット)に応じて、DecoderConfigurationRecord構造体に埋め込まれてもよい。これらのパラメータセットは、ライター(writer)またはパッケージャーによって検査され、ビットストリームパーティションの詳細を把握し、作成する個別のトラックの個数を決定することができる。パーティションごとに1つのトラックに加えて、1つ以上の抽出トラックが、パーティションを含む1つ以上のトラックタイプ“scal”のトラック参照で参照される。したがって、各エクストラクタトラックは、区分されたトラックのすべてまたはサブセットの可能な組合せを表す。たとえば、タイル化されたHEVC ビットストリームであるかどうかの判定を、たとえば、時間モーション制約付きタイルセット(Temporal Motion-Constrained Tile Set)またはピクチャパラメータセット(Picture Parameter Set)内に存在するタイルのSEI(Supplemental Enhancement Information)メッセージをチェックすることでできる。それは、各HEVCタイルに対するトラックと、全てのHEVCタイルの構成を記述する1つのエクストラクタトラックとを定義することができる。ステップ501にて、NALユニットが読み出されると、ライタは、ステップ502にて、それが新しいサンプルに対応するかどうかをチェックする。これは、例えば、ピクチャ順序カウントを復号することによって、またはNALユニットに対応するスライスがピクチャ内の最初のスライスであるかどうかをチェックすることによって行うことができる。「はい」の場合、前のサンプルは、ステップ503で、サンプル記述のパラメータ(サイズ、メディアデータ内の位置、一部のサンプルグループ内のプロパティ)を設定することによって、最終決定される。具体的には、サンプルサイズを0にリセットし、NALユニットカウントを0にリセットする。次に、ステップ504にて、現在のNALユニットがエクストラクタトラックのメディア部分に含まれるべきかどうか、またはそれが区分されたトラックのメディア部分に含まれ、エクストラクタトラックから参照されるべきかどうか、または部分的に区分されたトラックのメディア部分に含まれ、エクストラクタトラックによって部分的に修正され、参照されるべきかどうかをチェックする。これは、初期化ステップ500の間にセットアップされたトラック依存性または関係から決定される。NALユニットが参照されない場合、NALユニットの長さは、最初にエクストラクタトラックのメディアデータボックスに挿入され、続いてNALユニットヘッダおよびNALユニットペイロードが挿入される(ステップ505)。次に、現在のサンプルのサイズは、これら3つの構造体のバイト数でインクリメントされ、ライタまたはパッケージャは、ステップ506で、符号化されたメディアデータのビットストリームから次のNALユニットをチェックする。これが最後のNALユニットでない場合、プロセスは、すべてのNALユニットが処理されるまで、ステップ501に繰り返される。
NALユニットが、参照によって、エクストラクタトラックに部分的にまたは完全に含まれる場合(テスト504が真の場合)、ライタまたはパッケージャは、ステップ507にて、(NALユニットデータが完全なNALユニットである場合、先行するNALユニット長フィールドを有する)区分トラックのメディアデータボックス内で参照されるNALユニットデータと、本発明の実施形態によるエクストラクタトラック内の1以上のコンストラクタおよび関連する属性を有するエクストラクタとを含める。具体的には、プロセスは、エクストラクタトラックのメディアデータボックス内に、エクストラクタ構造体のサイズをバイト単位で有するNALユニット長フィールドを追加し、エクストラクタNALユニットを作成する。エクストラクタがサンプルに沿って繰り返される構造体に対応するコンストラクタを含むとき、デフォルトコンストラクタは既に存在していなければ、エクストラクタトラックのサンプルエントリ内のデフォルトコンストラクタのリストに挿入されてもよい。作成されたエクストラクタNALユニットは、デフォルトコンストラクタのリストから使用されるデフォルトコンストラクタのインデックスを提供する参照コンストラクタを含む。
エクストラクタがメディアデータボックスに書き込まれると、サンプル記述が更新される(サンプルサイズ、サンプル内の現在のNALUインデックスなど)。次に、ライタまたはパッケージャは、ステップ506において、次のNALユニットをチェックする。最後のNALユニットに達すると、ライタは、例えば、メディア上の最後のサンプル、インデックステーブル、ユーザデータ、または任意のメタデータのサイズを書き込むことによって、ステップ508でメディアファイルを終了する。
初期化ステップ500が、セグメントへのカプセル化を示すとき、セグメント持続時間に到達したか否かをチェックするために新しいサンプルを開始する前に、追加のテストが実行される(図示せず)ことに留意されたい。セグメント持続時間に達すると、セグメントは確定され、プレイヤーによって使用されるか、または配信ネットワークを介して送信される準備が整う。セグメント持続時間に達しない場合、ライタまたはパッケージャは、サンプルおよびNAL単位で反復する。
図5bは、本発明の一実施形態によるカプセル化解除処理を示す。一実施形態では、このプロセスがメディアデータをカプセル化解除するために、図1に示すカプセル化解除モジュール100のパーサまたはプレイヤーによって実装される。
ステップ510にて、プレイヤーは、まずメディアファイル101を(1つのファイルとして、または連続したセグメントとして)受信する。ファイルは、パーサまたはプレイヤーのメモリに格納されてもよく、ネットワークソケットから読み取られてもよい。
最初に、初期化データ、典型的には“moov”ボックスおよびそのサブボックスは、ステップ511で解析されて、メディアファイルのパラメータ/設定、すなわちトラック数、トラック関係および依存性、サンプルのタイプ、持続時間、位置およびサイズなどを知る。
ステップ511で決定されたトラックのセットから、プレイヤーまたはパーサは、ステップ512にて、レンダリング対象の1つのエクストラクタトラックを選択する。次に、再構成は、サンプルごとに、メディアデータボックスサンプルを解析することによって開始される。
パーサまたはプレイヤーは、ファイルの終わりに達する(テスト513で否定され)まで、サンプルを繰り返す。セグメントの場合、1つのセグメントが完全に読み取られると、パーサは次のセグメントを、サンプルごとに読み取る。
所与のサンプルについて、プロセスは、チャンクオフセットボックスに、このチャンクについて構文解析された以前のサンプルの累積サイズを加えた位置からデータを読み取る。この位置から、パーサはNALユニット長フィールドを見つける。次に、パーサはNAL ユニット長フィールドによって指定されたバイト数を読み取り、完了NALユニットを取得する。NALユニットがエクストラクタ(テスト515)に対応する場合、パーサは、ステップ516において、エクストラクタ内の次のコンストラクタのコンストラクタタイプ属性を読み出す。コンストラクタが本発明の一態様による参照コンストラクタである場合、パーサは、ステップ517で、参照コンストラクタから、ステップ518でコンストラクタを分解(resolve)するために使用されるデフォルトコンストラクタのインデックスを取り出す。デフォルトコンストラクタは、サンプルエントリで定義されているか、サンプルグループ化機構を介して現在のサンプルに関連付けられているサンプルグループ記述のいずれかで、デフォルトコンストラクタのリスト(リスト内の位置を表すインデックス値) から取得される。デフォルトコンストラクタは、別の参照コンストラクタを除き、任意の種類のコンストラクタ(例: インライン、サンプル…) にすることができる。コンストラクタ(エクストラクタNALUで直接検索されるか、参照コンストラクタを介して参照されるかのいずれか)は、ステップ518にて、それらのタイプに関連するセマンティックに従って分解される。エクストラクタNALユニットのすべてのコンストラクタを分解することによって得られたデータ(テスト519)は、ステップ520において、符号化されたメディアデータの再構成されたビットストリームに付加される。
ステップ515において、NALユニットがエクストラクタでない場合、パーサは、ステップ520において、NALユニットヘッダおよびNALユニットペイロード(NALユニット長は除外)に対応するバイトを、復号化のためにメディアデコーダに提供されることになる符号化メディアデータの再構成ビットストリームに付加する。ステップ520の後、プロセスは、現在のサンプルのサイズに達するまで、次のNALユニットのために反復する(ステップ514に進む)。
以下では、本発明の実施形態に従って提案されるエクストラクタ用のコンストラクタおよびエクストラクタコンストラクタ用のデフォルト値を示すための例を提供する。新しいコンストラクタは、図5aおよび5bのカプセル化/カプセル化解除プロセスのステップ507および516で上述したように、参照インデックス属性を実施する。
デフォルトコンストラクタまたはデフォルトエクストラクタを指定するための参照インデックスの実装は、SVC、MVCエクストラクタなどのコンストラクタを持たないエクストラクタ、およびHEVCまたはL-HEVCエクストラクタなどのコンストラクタを持つエクストラクタの両方に適用可能である。コンストラクタを持つエクストラクタの場合、新しい種類のコンストラクタが以下のように定義できる(“Constructor_type”で識別):
--------------------------------------------------------------------------
class aligned(8) Extractor () {
NALUnitHeader();
do {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if ( constructor_type == 3 )
SampleConstructorFromTrackGroup();
else if ( constructor_type == 4 )
ReferenceConstructor()
} while( !EndOfNALUnit() )
}
--------------------------------------------------------------------------
ここで、constructor_type は、後続のコンストラクタを特定する。SampleConstructor、InlineConstructor、SampleConstructorFromTrackGroup、及び、ReferenceConstructor は、それぞれ0、2、3、4 に等しいconstructor_type に対応する。constructor_type の他の値は予約済みである。
新しいコンストラクタ“参照コンストラクタ(ReferenceConstructor)”の名前は、例として提供される。さらに、予約済みの“constructor_type”値“4”が例として提供されている。(“SampleConstructor”) を指定したり(“InlineConstructor”)バイト範囲を指定したりする代わりに、新しいコンストラクタは、エクストラクタトラックのメタデータ部分で宣言されたデフォルトコンストラクタを参照でき、通常、サンプルエントリのリストやサンプルグループの説明ボックスにある。“constructor_type” には予約された名前や予約された値を使用することができる。通常、この新しいconstructor_type値は、タイプ「hvc3」または「hev3」のサンプルエントリを有するHEVCまたはL-HEVCトラック、または後に定義される任意の他のタイプのトラックのサンプル中に存在し、使用され得る。新しいコンストラクタは、例えば、以下に示すように定義することができる:
--------------------------------------------------------------------------
class aligned(8) ReferenceConstructor () {
unsigned int(8) ref_index;
}
--------------------------------------------------------------------------
ここで、新しいコンストラクタのパラメータ、フィールド、または属性は、以下のセマンティクスを持つ:
- ref_index は、データを抽出するトラックのサンプルエントリのDefaultHevcExtractorConstructorBox のコンストラクタのリストで使用するコンストラクタのインデックスを特定する。0の値は、最初のエントリを示す。
図6のエクストラクタトラックのカプセル化ファイルの例に示すように、エクストラクタコンストラクタのデフォルト値は、エクストラクタ・トラック600のサンプルエントリ602に宣言される。エクストラクタトラックは、トラックの識別子track_ID(例えば603および604)またはトラックグループのtrack_group_id(不図示)を参照する“scal”に等しいreference_typeをもつTrackReferenceTypeBoxを含むトラック参照ボックス(“tref”)601をもつトラックであり、そこからデータを抽出することができる。サンプルエントリーでエクストラクタコンストラクターのデフォルト値を宣言すると、エクストラクタトラック内のすべてのサンプルで宣言を共有できるようになる。
HEVCまたはL-HEVCエクストラクタの一実施形態では、新しいボックスDefaultHevcExtractorConstructorBox605がサンプルエントリ602内で以下のように定義される(AVC、SVC、MVC、VVCなど、HEVC以外の他のビデオフォーマットのエクストラクタについても同様の実施形態を容易に導出することができる):
--------------------------------------------------------------------------
Box Type: 'dhec'
Container: HEVCSampleEntry
Mandatory: No
Quantity: Zero or one for sample entry types 'hvc3' and 'hev3'.
Zero for other sample entry types specified in ISO/IEC 14496-15.

aligned(8) class DefaultHevcExtractorConstructorBox extends Box('dhec'){
unsigned int(32) num_entries;
for (i=1; i<= num_entries; i++) {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
}
}
--------------------------------------------------------------------------
num_entries は、このボックスで定義されたデフォルトコンストラクタの個数を示す。
constructor_type は、このエントリのコンストラクタのタイプを指定する。値4(すなわち、ReferenceConstructor)は存在しないものとする。
DefaultHevcExtractorConstructorBoxは、サンプル中に存在するReferenceConstructorの代わりに使用されるコンストラクタのリストを提供する。このボックスに示されるコンストラクタは、サンプル中のReferenceConstructorコンストラクタの置き換えとしてのみ分解されるものとする。DefaultHevcExtractorConstructorBox には、同じconstructor_type を持つ複数のコンストラクタを含めることができる。同じconstructor_type で複数のコンストラクタを宣言できる利点の1つは、Extractor の定義をわずかに変更する必要があるピクチャパラメータセット(PPS) のバリエーションなどにより、Extractor トラックで時間とともに適用するデフォルト値を変更できることである。そのような場合、エクストラクタは、DefaultHevcExtractorConstructorBox内の異なるデフォルトコンストラクタを参照するために、異なるref_index値を持つReferenceConstructorを単に含むことができ、したがって、図6に示すように、同じタイプのコンストラクタに対して異なるデフォルト属性値を使用する。エクストラクタトラック600の2つのサンプル606および607は、エクストラクタ608および609を含み、それらの各々は、デフォルトコンストラクタの異なる代替を参照するref_index属性を持つReferenceConstructor610および611をそれぞれ含む。
明細書のより良好な維持のために、エクストラクタおよびDefaultHevcExtractorConstructorBoxは、また、上記と同じ意味で、以下のように再定義され得る:
--------------------------------------------------------------------------
class aligned(8) ExtractorConstructor () {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
else if( constructor_type == 4 )
ReferenceConstructor ();
}

class aligned(8) Extractor () {
NALUnitHeader();
do {
ExtractorConstructor constructor;
} while( !EndOfNALUnit() )
}

aligned(8) class DefaultHevcExtractorConstructorBox extends Box('dhec'){
unsigned int(32) num_entries;
for (i=1; i<= num_entries; i++) {
ExtractorConstructor constructor;
}
}
--------------------------------------------------------------------------
上記の実施形態において、SampleCobstructor InlineConstructorおよびSampleConstructorFromTrackGroupは、ISO/IEC 14496-15 5th版およびその修正に指定されているように定義される。
上記の実施形態では、サンプルエントリ内に配置されたDefaultHevcExtractorConstructorBox内のデフォルトコンストラクタを定義するデザインは、moovが一旦生成されるとデフォルトコンストラクタのリストを更新することを可能にせず、品質を切り替えるときにmoovを強制的に再ロードする可能性がある。しかしながら、例えば品質を切り替えた後にもはや適用されない場合、もはやデフォルトコンストラクタを使用しないことによって、上記の実施形態に準拠する符号化されたメディアデータのビットストリームを構築することが依然として可能である。
moovが生成されると、デフォルトコンストラクタのリストを更新できることが望ましい場合、代替実施形態は、サンプルエントリ内のDefaultHevcExtractorConstructorBoxの宣言を、サンプルグループ化機構および新しいサンプルグループ定義の使用で置き換えることである。この代替実施例は、二重参照を必要とするのであろう。第1に、エクストラクトトラックの各サンプルを、サンプルグループ記述ボックス(“sgpd”)で定義された視覚的なサンプルグループエントリと、与えられたgrouping_type(同じgrouping_typeを持つSampleToGroupBoxのgroup_description_indexを介して行われる関連)と関連付ける。第2には、ReferenceConstructorからのref_indexが、サンプルに関連する視覚的なサンプルグループエントリ内のコンストラクタのリスト内のエントリを参照する必要がある。
この実施形態によれば、新しいgrouping_type、例えば“dhec”が定義され、新しいVisualSampleGroupEntryが次のように定義される:
--------------------------------------------------------------------------
aligned(8) class DefaultHevcExtractorConstructorSampleGroupEntry()
extend VisualSampleGroupEntry ('dhec') {
unsigned int(32) num_entries;
for (i=1; i<= num_entries; i++) {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
}
}
--------------------------------------------------------------------------
新しいビジュアルサンプルグループエントリ“DefaultHevcExtractorConstructorSampleGroupEntry”の名前は、例として提供される。さらに、予約された4CC値“dhec”が例として提供される。この新しいクラスのすべての属性は、DefaultHevcExtractorConstructorBoxと同じセマンティクスを持つ。
ReferenceConstructor のref_index のセマンティックは、次のように定義される:
ref_index は、grouping_type が“dhec” のSampleToGroupBox(“sbgp”) のgroup_description_index を介してサンプルに関連付けられたDefaultHevcExtractorConstructorSampleGroupEntry のコンストラクタのリストで使用するためコンストラクタのインデックスを指定する。0の値は、最初のエントリを示す。
このような実施形態では、同じgrouping_typeを有するSampleToGroupBoxを定義することなく、ISO/IEC 14496-12で定義されたデフォルトのサンプルグループ機構を使用して、デフォルトのビジュアルサンプルグループエントリ“DefaultHevcExtractorConstructorSampleGroupEntry”をサンプルに関連付けることが可能である。これにより、デフォルトコンストラクタのリストが時間の経過とともに変化しない場合に、いくつかのバイト(SampleToGroupBox の定義に対応)を保存できる。
このような実施形態では、新しいDefaultHevcExtractorConstructorSampleGroupEntryが新しいSampleGroupDescriptionBox(“sgpd”)内に定義され、ムービーフラグメントボックス(“moof”)内のエクストラクトトラックに対応するトラックフラグメント(“traf”)内のgrouping_type“dhec”を持つ、新しいISOBMFFムービーフラグメント(“moof”と“mdat”の一対のボックス)を作成することによって、デフォルトコンストラクタのリストを更新することも可能である。さらに、同じgrouping_type“dhec”を有する新たなSampleToGroupBoxも、新たなDefaultHevcExtractorConstructorSampleGroupEntryをムービーフラグメントのExtractorトラックのサンプルに関連付けるために、ムービーフラグメント内で定義され得る。
変形例では、新しいビジュアルサンプルグループエントリDefaultExtractorConstructorSampleGroupEntry()は、以下のように一意の識別子groupID を含めることもできる:
--------------------------------------------------------------------------
aligned(8) class DefaultExtractorConstructorSampleGroupEntry() extend
VisualSampleGroupEntry ('dhec') {
unsigned int(32) groupID;
unsigned int(32) num_entries;
for (i=1; i<= num_entries; i++) {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
}
}
--------------------------------------------------------------------------
ここで、groupID は、このサンプル・グループ項目によって記述されるデフォルトの抽出コンストラクター・グループの固有IDである。デフォルトの抽出コンストラクタグループエントリのgroupID の値は0より大きい必要がある。値0は、特別な使用のために予約される。
タイプ“nalm”のSampleToGroupBoxと“dhec”に等しいgrouping_type_parameterがあるとき、タイプ“dhec”のSampleGroupDescriptionBoxが存在し、以下が適用される:
- デフォルトエクストラクタコンストラクタグループエントリのgroupIDの値は、NALUMapEntryのエントリの1つのgroupIDと等しい。
- NALUMapEntryによってグループID0にマッピングされるNALユニットは、NALユニットがエクストラクタではないこと、またはNALユニットがデフォルトコンストラクタを参照しないことを意味する。
この新しいクラスの他のすべての属性は、DefaultHevcExtractorConstructorBoxと同じセマンティクスを持つ。
このような変形例では、ISO/IEC 14496-15で定義されたNALユニットマッピングメカニズムを使用して、(サンプル内のすべてのNALユニットについてデフォルトコンストラクタの1つの単一リストを関連付けるのではなく)サンプル内の各NALユニットについてデフォルトコンストラクタの異なるリストを関連付けることが可能である。このような場合、NALUMapEntryを使用して、サンプル内の各NALユニットにgroupIDと呼ばれる識別子を割り当てることができる。NALUMapEntry は、grouping_type が“nalm” に等しく、以下のように定義されたビジュアルサンプルグループエントリである:
--------------------------------------------------------------------------
class NALUMapEntry() extends VisualSampleGroupEntry ('nalm') {
bit(6) reserved = 0;
unsigned int(1) large_size;
unsigned int(1) rle;
if (large_size) {
unsigned int(16) entry_count;
} else {
unsigned int(8) entry_count;
}
for (i=1; i<= entry_count; i++) {
if (rle) {
if (large_size) {
unsigned int(16) NALU_start_number;
} else {
unsigned int(8) NALU_start_number;
}
}
unsigned int(16) groupID;
}
}
--------------------------------------------------------------------------
ここで、large_size は、トラックサンプル内のNAL ユニットエントリの個数が8または16 ビットで表されるかどうかを示す。
rleは、グループIDをNALユニットに割り当てるためにランレングス符号化が使用される(1)、もしくは、私用されていない(0)を示す。
entry_countは、マップ内のエントリ数を特定する。rle が1の場合、entry_count は、連続するNALユニットが同じグループに関連付けられているrunの数に対応することに注意されたい。rle が0 の場合、entry_countはNAL ユニットの合計数を表す。
NALU_start_number は、groupID に関連付けられた現在のランの最初のNALユニットのサンプルの1から始まるNALユニットインデックス(1-based NAL Uniy index)である。
groupID グループの一意の識別子を特定する。グループの詳細は、groupID とgrouping_type がタイプ“nalm” のSampleToGroupBox のgrouping_type_parameter と等しいgrouping_typeと共に、サンプル・グループ記述項目によって提供される。
NALUMapEntryは、存在する場合、そのグループIDの意味を提供するサンプルグループ記述にリンクされる。このリンクは、タイプ“nalm” のSampleToGroupBox のgrouping_type_parameter を、関連するサンプルグループ化タイプの4 文字コードに設定することによって提供される。
この変形によれば、grouping_typeが“nalm”に等しく、grouping_type_parameterが“dhec”に等しいSampleToGroupBoxは、エクストラクトトラックの各サンプルをNALUMapEntryに関連付けるように定義され、各NALUMapEntryはgrouping_typeが“nalm”に等しいSampleGroupDescriptionBox(“sgpd”)で定義され、グループIDとサンプル内の各NALユニットとの関連付けを記述する。grouping_type が“dhec” の別のSampleGroupDescriptionBox(“sgpd”) は、DefaultExtractorConstructorSampleGroupEntry のセットで定義され、各エントリは、NALユニットに関連付けられたgroupID に対応するデフォルトコンストラクタのリストを提供する。最後に、NALユニットに含まれるReferenceConstructorのref_indexは、デフォルトコンストラクタのリストで使用するコンストラクタのインデックスを提供する。
サンプルの各NALユニットに(コンストラクタではなく)デフォルトエクストラクタの異なるリストを関連付けるために、同様の実施形態を容易に導出することができる。
代替実施形態では、コンストラクタと共にExtractorを使用せず、単純なExtractorのみを使用するビデオフォーマットの場合、サンプルエントリまたはサンプルグループ記述ボックスで定義されたデフォルトのExtractorを参照する新しいExtractorを既存のバイトベースのExtractorと区別するために、予約されたNALユニットタイプを用いて新しいExtractorを定義することができる。“ReferenceExtractor” などと呼ばれる新しいエクストラクタ は、次のように定義される:
--------------------------------------------------------------------------
class aligned(8) ReferenceExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
}
--------------------------------------------------------------------------
ここで、ref_index は、データを抽出するトラックのサンプルエントリのDefaultHevcExtractorBox のエクストラクタのリストで使用するエクストラクタのインデックスを特定する。0の値は、最初のエントリを示す。
主な違いは、ここに特定の“NALUnitHeader”があることである。“NALUnitHeader”は、使用中のビデオコーディング形式に対応するNAL Unitヘッダーであるが、使用中のビデオコーディング形式のVCL、非VCL NALユニット、または既存のエクストラクタまたはAggregator 用にまだ予約されていない予約値がある。
この実施形態では、デフォルトエクストラクタは、以下のように、DefaultHevcExtractorBox内のサンプルエントリにおいて定義される:
--------------------------------------------------------------------------
Box Type: 'dhec'
Container: HEVCSampleEntry
Mandatory: No
Quantity: Zero or one for sample entry types 'hvc3' and 'hev3'.
Zero for other sample entry types specified in ISO/IEC 14496-15.

aligned(8) class DefaultHevcExtractorBox extends Box('dhec'){
unsigned int(32) num_entries;
for (i=1; i<= num_entries; i++) {
unsigned int(16) nalUnitLength;
bit(8*nalUnitLength) nalUnitExtractor;
}
}
--------------------------------------------------------------------------
ここで、num_entries は、このボックスで定義されているデフォルトエクストラクタの個数を示す。
nalUnitLength は、nalUnitExtractor のバイト単位の長さを特定する。
nalUnitExtractorは、このエントリに対して定義されたデフォルトのエクストラクタである。nalUnitExtractorのnal_unit_typeは、有効なエクストラクタとし、ReferenceExtractorは存在しないものとする。
本発明の別の態様によれば、エクストラクタは元々、AVC/SVC/MVCにおいて、NALユニットの完全なセット(1つ以上)を抽出するように設計されており、各データ参照(抽出されたバイト範囲)は1~4バイトを使用してNALユニット長フィールドで始まり、(関連するデコーダ構成レコード内のLengthSizeMinusOne属性の値に応じて)以下のNALユニットの長さを提供する。hvt1 またはhvt2 サンプルデータと組み合わせたHEVCでのインラインコンストラクタの導入(スライスヘッダの書き換えなど) により、コンストラクタ(SampleConstructor又はSampleConstructorFromTrackGroupなど)は、非NALユニットの長さフィールドオフセットから開始するサンプルデータを抽出するために使用でき、非インラインコンストラクタは、NALユニットの先頭を書き換えるために使用される。実際、たとえば、hvt2サンプルデータは、NALユニットのサブセットのみが含まれ、通常、NALユニットヘッダーがなく、スライスヘッダーがないスライスデータとスライス末尾ビットのみが含まれる。このような場合、特に、エクストラクタ(複数のコンストラクタから構成される)が複数のNALユニットに分解されたときに、サンプルデータの範囲の抽出後に、NALユニット長がどこでどのように定義されるかは明らかではない。さらに、サンプルコンストラクタを処理するとき、レーダ(reader)は、抽出されたサンプル内のデータオフセットがNALユニット長フィールドの最初のバイトに対応するか否かを容易に知ることができず、これを見つけるために、抽出されたサンプルから以前のすべてのNALユニットを解析しなければならない。インラインコンストラクタがNALユニット長フィールドを含むかどうかも明確ではないが、NALユニット長フィールドを含む場合、このものは次のコンストラクタから抽出されたバイトと一致するように書き換える必要があるかもしれない。インラインコンストラクタでNALU長フィールドを定義すると、特に書き換えが必要な場合に、インラインコンストラクタで最大4バイトが浪費される可能性があることがわかった。
リーダのサイズと複雑さの両方を最適化するために、新しい明示的NAL開始インラインコンストラクタは、ファイルリーダが“これらの抽出されたバイトはNALU長フィールドの書き換えを必要とするか、このフィールドを書き換える場所がない/必要がある”という状態を維持しないように定義される。
明示的にNALUを開始するが、NALU長フィールドが埋め込まれていないインラインコンストラクタを有するエクストラクタは以下のように定義される:
--------------------------------------------------------------------------
class aligned(8) Extractor () {
NALUnitHeader();
do {
unsigned int(8) constructor_type;
if( constructor_type == 0 )
SampleConstructor();
else if( constructor_type == 2 )
InlineConstructor();
else if( constructor_type == 3 )
SampleConstructorFromTrackGroup();
else if( constructor_type == 4 )
ReferenceConstructor ();
else if( constructor_type == 5 )
NALUStartInlineConstructor ()
} while( !EndOfNALUnit() )
}
--------------------------------------------------------------------------
新しいコンストラクタ“NALUStartInlineConstructor”の名前が例として提供されている。さらに、予約済みの“constructor_type”値の“5”が例として提供されている。
NALUStartInlineConstructorは、NAL ユニットがこのコンストラクタで開始し、直後のコンストラクタ(存在する場合) に展開されることを示すために使用される。inline_data には、NALユニットの先頭(NALユニットヘッダ、NALユニットヘッダーの一部、NALユニットペイロード、またはNALユニットペイロードの一部など) が含まれるが、NALユニット長フィールドは含まれない。このフィールドは、LenghthSizeMinusOneフィールドに従ってファイルリーダによって挿入され、このコンストラクタと直後のコンストラクタ(もしあれば)を処理した後、完全なNALユニットサイズに設定される。
NALUStartInlineConstructorは次のように定義される:
--------------------------------------------------------------------------
class aligned(8) NALUStartInlineConstructor () {
unsigned int(8) length;
unsigned int(8) inline_data[length];
}
--------------------------------------------------------------------------
ここで、length(長さ): は、このフィールドの後に続くNALUStartInlineConstructor に属するバイト数である。lenghthの値は、0よりも大きくなければならない。0に等しい長さの値が予約される。
inline_data:は、インラインコンストラクターを分解(resolving)するときに返されるデータバイトである。これらのバイトは、エクストラクタ内の最後のコンストラクタである場合が正確に1つの完了NALユニット、またはNALユニットの先頭のいずれかを含むものとする
さらに、既存のインラインコンストラクタ(constructor_type=2の場合)は以下のように変更される:
--------------------------------------------------------------------------
class aligned(8) InlineConstructor () {
unsigned int(8) length;
unsigned int(8) inline_data[length];
}
--------------------------------------------------------------------------
ここで、length: は、このフィールドの後に続くInlineConstructor に属するバイト数である。lengthの値は、0よりも大きくなければならない。0に等しい長さの値が予約される。
inline_data:は、インラインコンストラクターを分解するときに返されるデータバイトである。エクストラクタの再構成されたNALユニットのNALユニット長フィールドに対応するバイトは、これらのバイトには存在しない。
図7は、本発明の1つまたは複数の実施形態を実施するためのコンピューティングデバイス700の概略ブロック図である。コンピューティングデバイス700は、マイクロコンピュータ、ワークステーション、またはライトポータブルデバイスなどのデバイスとすることができる。コンピューティングデバイス700は、以下の物に接続された通信バスを備える:
- マイクロプロセッサのような中央処理装置(CPU)701;
- 本発明の実施形態の方法の実行可能コードを記憶するためのランダムアクセスメモリ(RAM)702、ならびにマニフェストの読取りおよび書込み、ならびに/またはビデオの符号化、および/または所与のファイルフォーマットの下でのデータの読取りまたは生成のための方法を実施するために必要な変数およびパラメータを記録するように適合された登録はたとえば、拡張ポートに接続された任意選択のRAMによって、そのメモリ容量を拡張することができる;
- 本発明の実施形態を実現するためのコンピュータプログラムを記憶するための読み出し専用メモリ(ROM)703;
- ネットワークインターフェース704、すなわち、典型的には、処理されるデジタルデータが送受信される通信ネットワークに接続される。ネットワークインターフェース704は単一のネットワークインターフェースであってもよいし、異なるネットワークインターフェースのセット(例えば、有線および無線インターフェース、または異なる種類の有線または無線インターフェース)から構成されてもよい。データは、送信のためにネットワークインターフェースに書き込まれるか、またはCPU 701内で実行されているソフトウェアアプリケーションの制御の下で受信のためにネットワークインターフェースから読み出される;
- ユーザからの入力を受け取るため、またはユーザに情報を表示するためのユーザインターフェース(UI)705;
- ハードディスク(HD)706;
- ビデオソースやディスプレイなどの外部デバイスとの間でデータを送受信するためのI/Oモジュール707
実行可能コードは、読み出し専用メモリ703、ハードディスク706、または例えばディスクのようなリムーバブルデジタルメディアのいずれかに格納することができる。変形例によれば、プログラムの実行可能コードはハードディスク706などの通信装置700の記憶手段の1つに記憶されてから実行されるように、ネットワークインターフェース704を介して、通信ネットワークの手段によって受信することができる。
中央演算処理装置701は、本発明の実施形態によるプログラムの命令またはソフトウェアコードの一部の実行を制御し、指示するように適合され、命令は、前述の記憶手段のうちの1つに記憶される。電源投入後、CPU 701は例えば、プログラムROM 703またはハードディスク(HD)706からそれらの命令がロードされた後に、ソフトウェアアプリケーションに関するメインRAMメモリ702からの命令を実行することができる。このようなソフトウェアアプリケーションは、CPU 701によって実行されると、前の図に示したフローチャートのステップが実行される。
この実施形態では、装置が本発明を実施するためにソフトウェアを使用するプログラマブル装置である。しかしながら、代替的に、本発明はハードウェア(例えば、特定用途向け集積回路(ASIC)の形態)で実施されてもよい。
以上、特定の実施形態を参照して本発明を説明したが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある修正は当業者には明らかであろう。
例えば、本発明はカメラ、スマートフォン、ヘッドマウントディスプレイ、または例えば関心のある特定の領域にズームインするためのTVまたはマルチメディアディスプレイのためのリモートコントローラとして機能するタブレットのようなデバイスに組み込まれてもよい。また、同じデバイスから使用して、特定の関心領域を選択することによって、マルチメディアプレゼンテーションのパーソナライズされたブラウジングエクスペリエンスを持つこともできる。ユーザによるこれらの装置および方法からの別の使用は、他の接続された装置と、ユーザの好ましいビデオのいくつかの選択されたサブパートを共有することである。また、監視カメラが本発明によるデータを提供する方法をサポートする場合には、監視下に置かれた建物の特定の領域で何が起こるかを監視するために、スマートフォンまたはタブレットと共に使用することもできる。
多くのさらなる修正および変形は単に例として与えられ、本発明の範囲を限定することを意図されておらず、その範囲は添付の特許請求の範囲によってのみ決定される、前述の例示的な実施形態を参照することにより、当業者に示唆されるのであろう。特に、様々な実施形態からの異なる特徴は、適宜、交換されてもよい。

Claims (17)

  1. メディアデータをメディアファイルにカプセル化する方法であって、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
    前記メディアファイルに、エクストラクタを有する第2のトラックを含めることと、
    ここで前記エクストラクタは、前記第1のトラックに含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも第1のコンストラクタを有する、
    前記方法は、更に、
    デフォルトコンストラクタを前記第2のトラックに含めることを有し、
    前記第1のコンストラクタは、前記デフォルトコンストラクタを参照する参照コンストラクタであり、
    前記デフォルトコンストラクタは前記第2のトラックのメタデータ部に含まれ、
    前記第2のトラック内の前記デフォルトコンストラクタは、デフォルトコンストラクタのリストとして含まれており、前記参照コンストラクタは前記リストのインデックスを有する
    ことを特徴とする方法
  2. 前記デフォルトコンストラクタは、前記第2のトラックの前記メタデータ部のサンプルエントリに含まれる、ことを特徴とする請求項1に記載の方法。
  3. 前記デフォルトコンストラクタは、前記第2のトラックのサンプルグループを記述するサンプルグループエントリ内に含まれ、前記エクストラクタは前記サンプルグループのサンプル内に含まれる、ことを特徴とする請求項1に記載の方法。
  4. メディアデータをメディアファイルにカプセル化する方法であって、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
    前記メディアファイルに、エクストラクタを有する第2のトラックを含めることと、
    ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、
    前記方法は、更に、
    デフォルトエクストラクタを前記第2のトラックに含めることを有し、
    前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタを参照する参照エクストラクタである
    ことを特徴とする方法。
  5. メディアデータをメディアファイルにカプセル化する方法であって、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含めることと、
    ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
    前記メディアファイルに、エクストラクタを有する第2のトラックを含めることと、
    ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも1つのコンストラクタを有する;
    前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドも有さないことを示す情報とを有する
    ことを特徴とする方法。
  6. メディアファイル内へのメディアデータを構文解析する方法であって、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得ることと、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくも1つのコンストラクタを有する、
    前記方法は、更に、
    前記第2のトラック内のデフォルトコンストラクタを得ること、
    前記コンストラクタは、前記デフォルトコンストラクタを参照する参照コンストラクタであり、
    前記デフォルトコンストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得ることを有する
    ことを特徴とする方法。
  7. メディアファイル内へのメディアデータを構文解析する方法であって、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得ることと、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、
    前記方法は、更に、
    前記第2のトラック内のデフォルトエクストラクタを得ること、
    前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタ参照する参照エクストラクタであり、
    前記デフォルトエクストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得ることを有する
    ことを特徴とする方法。
  8. メディアファイル内へのメディアデータを構文解析する方法であって、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得ることと、
    ここで各メディアサンプルは、1以上のNALユニットのセットを含む;
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得ること、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくとも1つのコンストラクタを有する;
    前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールド有さないことを示す情報とを有する
    ことを特徴とする方法。
  9. 求項1乃至8のいずれか1つの方法を実行するためのンピュータプログラムが読み込まれたシステム
  10. 請求項1乃至8のいずれか1項に記載の方法を実行させるためのコンピュータプログラムの命令を記憶する、コンピュータ可読記憶媒体。
  11. 請求項1乃至8のいずれか1項に記載の方法を実行させるためのコンピュータプログラム。
  12. メディアデータをメディアファイルにカプセル化するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
    前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
    ここで前記エクストラクタは、前記第1のトラックに含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも第1のコンストラクタを有する、
    前記デバイスは、更に、
    デフォルトコンストラクタを前記第2のトラックに含め、
    前記デフォルトコンストラクタを参照する参照コンストラクタを、前記エクストラクタに含め、
    前記デフォルトコンストラクタは前記第2のトラックのメタデータ部に含まれ、
    前記第2のトラック内の前記デフォルトコンストラクタは、デフォルトコンストラクタのリストとして含まれており、前記参照コンストラクタは前記リストのインデックスを有する
    ことを特徴とするデバイス。
  13. メディアデータをメディアファイルにカプセル化するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
    前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
    ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、
    前記デバイスは、更に、
    デフォルトエクストラクタを前記第2のトラックに含め、
    前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタを参照する参照エクストラクタである
    ことを特徴とするデバイス。
  14. メディアデータをメディアファイルにカプセル化するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイルに、メディアサンプルを有する第1のトラックを含め、
    ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
    前記メディアファイルに、エクストラクタを有する第2のトラックを含め、
    ここで、前記エクストラクタは、前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であり、前記エクストラクタは少なくとも1つのコンストラクタを有する;
    前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールドも有さないことを示す情報とを有する
    ことを特徴とするデバイス。
  15. メディアファイル内へのメディアデータを構文解析するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくも1つのコンストラクタを有する、
    前記デバイスは、更に、
    前記第2のトラック内のデフォルトコンストラクタを得て、
    前記コンストラクタ内の、前記デフォルトコンストラクタを参照する参照コンストラクタを得て、
    前記デフォルトコンストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得る
    ことを特徴とするデバイス。
  16. メディアファイル内へのメディアデータを構文解析するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
    ここで、各メディアサンプルは1以上のNALユニットのセットを含む;
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体である;
    前記デバイスは、更に、
    前記第2のトラック内のメタデータ部内のデフォルトエクストラクタを得て、
    前記第2のトラックに含まれる前記エクストラクタは、前記デフォルトエクストラクタ参照する参照エクストラクタであり、
    前記デフォルトエクストラクタに基づき前記エクストラクタで参照されるデータを、前記第1のトラックから得る
    ことを特徴とするデバイス。
  17. メディアファイル内へのメディアデータを構文解析するデバイスであって、
    前記デバイスはプロセッサを有し、当該プロセッサは、
    前記メディアファイル内の、メディアサンプルを有する第1のトラックを得て、
    ここで各メディアサンプルは、1以上のNALユニットのセットを含む;
    前記メディアファイル内の、エクストラクタを有する第2のトラックを得て、
    ここで、前記エクストラクタは前記第1のトラック内に含まれるメディアサンプル内のデータを参照する構造体であって、前記エクストラクタは少なくとも1つのコンストラクタを有する;
    前記コンストラクタは、インラインデータと、当該インラインデータが如何なるNALユニット長さフィールド有さないことを示す情報とを有する
    ことを特徴とするデバイス。
JP2021568664A 2019-09-24 2020-09-22 メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム Active JP7348962B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1913766.0 2019-09-24
GB1913766.0A GB2587364B (en) 2019-09-24 2019-09-24 Method, device, and computer program for encapsulating media data into a media file
PCT/EP2020/076443 WO2021058488A1 (en) 2019-09-24 2020-09-22 Method, device, and computer program for encapsulating media data into a media file

Publications (2)

Publication Number Publication Date
JP2022546894A JP2022546894A (ja) 2022-11-10
JP7348962B2 true JP7348962B2 (ja) 2023-09-21

Family

ID=68425434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021568664A Active JP7348962B2 (ja) 2019-09-24 2020-09-22 メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム

Country Status (7)

Country Link
US (1) US20220360831A1 (ja)
EP (1) EP4035412A1 (ja)
JP (1) JP7348962B2 (ja)
KR (1) KR20220069970A (ja)
CN (1) CN114503601A (ja)
GB (1) GB2587364B (ja)
WO (1) WO2021058488A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013505646A (ja) 2009-09-22 2013-02-14 クゥアルコム・インコーポレイテッド ファイルフォーマットトラック選択のためのメディアエクストラクタトラック
JP2019507980A (ja) 2016-02-02 2019-03-22 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビデオストリーミングにおけるシーンセクションと関心領域の処理
WO2020008115A1 (en) 2018-07-06 2020-01-09 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
CA2730543C (en) * 2008-07-16 2014-04-22 Nokia Corporation Method and apparatus for track and track subset grouping
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
RU2616185C2 (ru) * 2013-01-18 2017-04-13 Кэнон Кабусики Кайся Способ, устройство и компьютерная программа для инкапсуляции сегментированных синхронизированных мультимедийных данных
GB2516825B (en) * 2013-07-23 2015-11-25 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
EP3646593A4 (en) * 2017-06-26 2021-03-31 Nokia Technologies Oy APPARATUS, PROCESS AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO
GB2575074B (en) * 2018-06-27 2022-09-28 Canon Kk Encapsulating video content with an indication of whether a group of tracks collectively represents a full frame or a part of a frame
EP3850863A4 (en) * 2018-09-12 2022-06-08 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013505646A (ja) 2009-09-22 2013-02-14 クゥアルコム・インコーポレイテッド ファイルフォーマットトラック選択のためのメディアエクストラクタトラック
JP2019507980A (ja) 2016-02-02 2019-03-22 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビデオストリーミングにおけるシーンセクションと関心領域の処理
WO2020008115A1 (en) 2018-07-06 2020-01-09 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Also Published As

Publication number Publication date
GB2587364A (en) 2021-03-31
GB2587364B (en) 2023-11-15
KR20220069970A (ko) 2022-05-27
GB201913766D0 (en) 2019-11-06
WO2021058488A1 (en) 2021-04-01
CN114503601A (zh) 2022-05-13
EP4035412A1 (en) 2022-08-03
US20220360831A1 (en) 2022-11-10
JP2022546894A (ja) 2022-11-10

Similar Documents

Publication Publication Date Title
JP7444872B2 (ja) メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム
JP7154314B2 (ja) メディアコンテンツを送信する方法、装置及びコンピュータプログラム
KR102037009B1 (ko) 동작 포인트 디스크립터가 동적으로 설정될 수 있는 캡슐화된 비트-스트림으로부터 미디어 데이터 및 메타데이터를 획득하는 방법, 디바이스, 및 컴퓨터 프로그램
JP6572222B2 (ja) メディアファイルの生成方法、生成装置、及びプログラム
US20230025332A1 (en) Method, device, and computer program for improving encapsulation of media content
JP7249413B2 (ja) カプセル化メディアコンテンツの部分の送信を最適化する方法、装置及びコンピュータプログラム
US11985339B2 (en) Method and apparatus for encapsulating images or sequences of images with proprietary information in a file
JP2022017182A (ja) メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム
US20220337846A1 (en) Method and apparatus for encapsulating encoded media data in a media file
JP7348962B2 (ja) メディアデータをメディアファイルにカプセル化するための方法、装置、およびコンピュータプログラム
US20220166997A1 (en) Method and apparatus for encapsulating video data into a file
GB2575288A (en) Method and apparatus for encapsulating images or sequences of images with proprietary information in a file
GB2608399A (en) Method, device, and computer program for dynamically encapsulating media content data
US20240314408A1 (en) Method, device, and computer program for dynamically encapsulating media content data
WO2024012915A1 (en) Method, device, and computer program for optimizing dynamic encapsulation and parsing of content data
CN117581551A (zh) 动态封装媒体内容数据的方法、装置及计算机程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230908

R151 Written notification of patent or utility model registration

Ref document number: 7348962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151