JP7444872B2 - Methods, apparatus, and computer programs for encapsulating media data into media files - Google Patents
Methods, apparatus, and computer programs for encapsulating media data into media files Download PDFInfo
- Publication number
- JP7444872B2 JP7444872B2 JP2021522002A JP2021522002A JP7444872B2 JP 7444872 B2 JP7444872 B2 JP 7444872B2 JP 2021522002 A JP2021522002 A JP 2021522002A JP 2021522002 A JP2021522002 A JP 2021522002A JP 7444872 B2 JP7444872 B2 JP 7444872B2
- Authority
- JP
- Japan
- Prior art keywords
- track
- sample
- mode
- media
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/23439—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2353—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2355—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
- H04N21/2358—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages for generating different versions, e.g. for different recipient devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
本発明は、メディアデータをカプセル化して送信するための方法および装置に関するものである。 The present invention relates to a method and apparatus for encapsulating and transmitting media data.
国際標準化機構のベースメディアファイルフォーマット(ISOBMFF、ISO/IEC14496-12)は、ローカルストレージまたはネットワーク経由または別のビットストリーム配信メカニズムを介した送信のいずれかのための、符号化された時間指定メディアデータビットストリームを記述する、周知の柔軟かつ拡張可能なフォーマットである。拡張の例としては、様々なNAL(ネットワーク抽象層)ユニットベースのビデオ符号化フォーマットのためのカプセル化ツールを記述したISO/IEC14496-15がある。そのような符号化フォーマットの例は、AVC(アドバンスドビデオコーディング)、SVC(スケーラブルビデオコーディング)、HEVC(高効率ビデオコーディング)、およびL-HEVC(レイヤードHEVC)である。また、ファイルフォーマット拡張の他の例には、HEVCスチル画像などの静止画や静止画シーケンスのカプセル化ツールを記述したISO/IEC23008-12がある。また、また、ファイルフォーマット拡張の他の例には、全方向メディアアプリケーションフォーマット(OMAF)を定義したISO/IEC23090-2がある。ISOベースメディアファイルフォーマットはオブジェクト指向である。タイミングや構造パラメータなど、符号化された時間指定メディアデータビットストリームのパラメータを定義するボックス(または4文字コードで特徴づけられるデータ構造)と呼ばれるビルディングブロックで構成されている。 The International Organization for Standardization Base Media File Format (ISOBMFF, ISO/IEC 14496-12) is an encoded, timed media data format for either local storage or transmission over a network or another bitstream delivery mechanism. A well-known, flexible and extensible format for describing bitstreams. An example of an extension is ISO/IEC 14496-15, which describes encapsulation tools for various NAL (Network Abstraction Layer) unit-based video encoding formats. Examples of such encoding formats are AVC (Advanced Video Coding), SVC (Scalable Video Coding), HEVC (High Efficiency Video Coding), and L-HEVC (Layered HEVC). Another example of file format extension is ISO/IEC23008-12, which describes a tool for encapsulating still images and still image sequences, such as HEVC still images. Also, another example of file format extension is ISO/IEC 23090-2, which defines the Omnidirectional Media Application Format (OMAF). The ISO base media file format is object oriented. It consists of building blocks called boxes (or data structures characterized by four-letter codes) that define the parameters of an encoded timed media data bitstream, such as timing and structure parameters.
ファイルフォーマットでは、全体のプレゼンテーションをムービーと呼ぶ。ムービーは、メディアやプレゼンテーションファイルのトップレベルにあるムービーボックス(4文字コード「moov」)によって記述される。このムービーボックスは、プレゼンテーションを記述する様々なボックスのセットを含む初期化情報コンテナを表す。これは、複数のトラックボックス(4文字コード「trak」)で表される複数のトラックに論理的に分割されている。各トラック(トラック識別子(track_ID)によって一意に識別される)は、プレゼンテーションに属するメディアデータの時間指定シーケンス(例えば、ビデオのフレーム)を表す。各トラックの中で、時間指定されたデータの各ユニットはサンプルと呼ばれ、これはビデオ、オーディオ、または時間指定されたメタデータのフレームである。サンプルには暗黙のうちに連続した番号が付けられている。実際のサンプルデータは、ムービーボックスと同じ階層にあるメディアデータボックス(4文字コード「mdat」)と呼ばれるボックスに格納される。サンプルの説明は、ファイルのメタデータ部分のサンプルテーブルボックスに格納されている。ムービーは、プレゼンテーション全体の情報を格納したムービーボックスの後に、カップルムービーフラグメントとメディアデータボックスのリストが続くように、時間的に組織化することができる。1つのムービーフラグメント(4文字コード「moof」のボックス)の中には、1つのムービーフラグメントにつき0個以上のトラックフラグメント(4文字コード「traf」のボックス)のセットがある。トラックフラグメントには、0個以上のトラックランボックス(「trun」)が含まれており、それぞれがそのトラックフラグメントの連続したサンプルを記録している。 In file formats, the entire presentation is called a movie. Movies are described by a movie box (four-letter code "moov") at the top level of a media or presentation file. This movie box represents an initialization information container that includes a set of various boxes that describe the presentation. It is logically divided into tracks represented by track boxes (four letter code "trak"). Each track (uniquely identified by a track identifier (track_ID)) represents a timed sequence of media data (eg, frames of video) belonging to a presentation. Within each track, each unit of timed data is called a sample, which is a frame of video, audio, or timed metadata. Samples are implicitly numbered sequentially. Actual sample data is stored in a box called a media data box (four-letter code "mdat") located at the same level as the movie box. The sample description is stored in the sample table box in the metadata portion of the file. Movies can be organized temporally such that a movie box containing information for the entire presentation is followed by a list of couple movie fragments and media data boxes. Within one movie fragment (box with four-letter code "moof"), there is a set of zero or more track fragments (box with four-letter code "traf") for one movie fragment. A track fragment includes zero or more track run boxes ("truns"), each recording consecutive samples of the track fragment.
ISOBMFFファイルは、複数の符号化された時間指定メディアデータのビットストリームや、複数のトラックを形成する符号化された時間指定メディアデータのビットストリームのサブパートを含み得る。サブパートが、時間をかけて撮影ビデオソースの1つまたは連続した空間的な部分に対応している場合(例えば、時間をかけて撮影された少なくとも1つの長方形の領域(「タイル」と呼ばれることもある)、対応する複数のトラックはサブピクチャートラックと呼ばれ得る。ISOBMFFとその拡張機能は、トラック、スタティックアイテム、またはサンプルをグループ化するためのいくつかのグループ化メカニズムを備えている。グループは、通常、共通のセマンティックおよび/または特性を共有する。 An ISOBMFF file may include a plurality of bitstreams of encoded timed media data and subparts of a bitstream of encoded timed media data forming multiple tracks. If the subpart corresponds to one or a contiguous spatial portion of the video source taken over time (e.g. at least one rectangular region (also called a "tile") taken over time) ), the corresponding multiple tracks may be called subpicture tracks.ISOBMFF and its extensions provide several grouping mechanisms for grouping tracks, static items, or samples.Groups are , typically share common semantics and/or properties.
発明者らは、送信されるメディアデータに関する情報を記述およびシグナリングする際に、特に、あるトラックが別のトラックを参照しているときの複数のトラックについて、いくつかの問題に気づいた。 The inventors have noticed several problems in describing and signaling information about the media data being transmitted, particularly for multiple tracks when one track references another.
一例は、特定のパース処理を要求する別のトラックで参照されるデータエンティティのクライアントからのシグナリングであり、これはオーバーヘッドを発生させ、複雑である。 An example is signaling from a client of a data entity referenced in another track requesting specific parsing, which incurs overhead and is complex.
別の例は、合成トラックを形成するためにトラックのグループからコピーされるデータエンティティのシグナリングがあり、特に、合成トラックがこれらのトラックのグループ間の関係のタイプに依存する場合である。 Another example is the signaling of data entities that are copied from a group of tracks to form a composite track, especially when the composite track depends on the type of relationship between these groups of tracks.
既存のソリューションは、複雑であるか定義が不十分であり、トラックのグループからトラックを合成するための既存のメカニズムに完全には準拠していない。 Existing solutions are complex or poorly defined, and do not fully comply with existing mechanisms for synthesizing tracks from groups of tracks.
本発明は、上述の懸念の1つまたは複数に対処するために考え出された。 The present invention was conceived to address one or more of the concerns mentioned above.
この文脈において、例えばhttpプロトコルを使用してインターネットなどのIPネットワーク上でメディアコンテンツ(例えば全方向性メディアコンテンツ)をストリーミングするためのソリューションが提供される。 In this context, a solution is provided for streaming media content (eg omnidirectional media content) over an IP network, such as the Internet, using eg the http protocol.
本発明の第1の側面によれば、メディアデータをメディアファイルにカプセル化する方法が提供され、該方法は、
複数のメディアサンプルを含む第1のトラックを前記メディアファイルに含めることであって、各メディアサンプルは1つまたは複数のNALユニットのセットを含む、前記含めることと、
抽出器を含む第2のトラックを前記メディアファイルに含めることであって、前記抽出器は前記第1のトラックに含まれる1つのメディアサンプル内のデータエンティティを参照する構造である、前記含めることと、
前記1つのメディアサンプル内に含まれる1つまたは複数のNALユニットに対して前記参照されたデータエンティティを前記1つのメディアサンプル内で識別するコピーモード属性を前記抽出器に含めることと、
を含む。
According to a first aspect of the invention, a method is provided for encapsulating media data into a media file, the method comprising:
including in the media file a first track that includes a plurality of media samples, each media sample including a set of one or more NAL units;
including a second track in the media file that includes an extractor, the extractor being a structure that references a data entity within a media sample included in the first track; ,
including in the extractor a copy mode attribute that identifies the referenced data entity within the one media sample for one or more NAL units contained within the one media sample;
including.
特に、前記コピーモード属性は、1つまたは複数のモードのリストのうちの1つに設定される。 In particular, said copy mode attribute is set to one of a list of one or more modes.
一実施形態では、前記モードのリストは、
前記データエンティティが前記サンプルに含まれる全てのNALユニットのセットを含む第1のモード、
前記データエンティティが前記NALユニットのセットの1つのNALユニットを含む第2のモード、
前記データエンティティが前記NALユニットのセットの1つのNALユニットのペイロードを含む第3のモード、
前記データエンティティが前記NALユニットのセット内の指定された位置にある1つのNALユニットを含む第4のモード、
前記データエンティティが前記NALユニットのセット内の指定された位置にある1つのNALユニットのペイロードを含む第5のモード、
の1つまたは複数を含む。
In one embodiment, the list of modes is:
a first mode in which the data entity includes a set of all NAL units included in the sample;
a second mode in which the data entity includes one NAL unit of the set of NAL units;
a third mode in which the data entity comprises a payload of one NAL unit of the set of NAL units;
a fourth mode in which the data entity includes one NAL unit at a specified position within the set of NAL units;
a fifth mode in which the data entity includes a payload of one NAL unit at a specified position within the set of NAL units;
including one or more of.
一実施態様では、前記第2または前記第3のモードにおいて、前記1つのNALユニットは前記サンプル内の最初のNALユニットである。 In one embodiment, in the second or third mode, the one NAL unit is the first NAL unit in the sample.
一実施態様では、前記第2または前記第3のモードにおいて、前記1つのNALユニットは前記サンプル内の最後のNALユニットである。 In one embodiment, in the second or third mode, the one NAL unit is the last NAL unit in the sample.
本発明の第2の側面によれば、メディアファイルを生成する方法が提供され、該方法は、
メディアコンテンツをメディアデータに符号化することと、
上述のカプセル化する方法に従って、前記メディアデータを複数のトラックにカプセル化することと、
前記カプセル化されたメディアデータを含む少なくとも1つのメディアファイルを生成することと、
を含む。
According to a second aspect of the invention, a method of generating a media file is provided, the method comprising:
encoding media content into media data;
encapsulating the media data into a plurality of tracks according to the encapsulating method described above;
generating at least one media file including the encapsulated media data;
including.
本発明の第3の側面によれば、メディアファイルを送信する方法が提供され、該方法は、
上述の方法に従ってサーバ機器によってメディアファイルを生成することと、
前記生成されたメディアファイルをクライアント機器に送信することと、
を含む。
According to a third aspect of the invention, a method of transmitting a media file is provided, the method comprising:
generating a media file by a server device according to the method described above;
transmitting the generated media file to a client device;
including.
本発明の第4の側面によれば、メディアデータを生成するためにメディアファイルをパースする方法が提供され、該方法は、
抽出器を含む第1のトラックを前記メディアファイルから取得することであって、前記抽出器は第2のトラックに含まれる1つのメディアサンプル内のデータエンティティを参照する構造である、前記取得することと、
複数のメディアサンプルを含む前記第2のトラックを前記メディアファイルから取得することであって、各メディアサンプルは1つまたは複数のNALユニットのセットを含む、前記取得することと、
前記抽出器に含まれるコピーモード属性によって識別される1つのデータエンティティを前記第2のトラックの1つのメディアサンプルから取得することと、
を含み、
前記コピーモード属性は、前記1つのメディアサンプル内に含まれる1つまたは複数のNALユニットに対して前記参照されたデータエンティティを前記1つのメディアサンプル内で識別する。
According to a fourth aspect of the invention, there is provided a method of parsing a media file to generate media data, the method comprising:
retrieving a first track from the media file that includes an extractor, the extractor being a structure that references a data entity within a media sample included in a second track; and,
retrieving the second track from the media file that includes a plurality of media samples, each media sample including a set of one or more NAL units;
retrieving one data entity identified by a copy mode attribute included in the extractor from one media sample of the second track;
including;
The copy mode attribute identifies the referenced data entity within the one media sample for one or more NAL units included within the one media sample.
本発明の他の側面は、メディアデータをカプセル化しメディアファイルをパースするコンピュータデバイス、および対応するコンピュータプログラムに関する。 Other aspects of the invention relate to computer devices and corresponding computer programs for encapsulating media data and parsing media files.
本発明のさらなる利点は、図面および詳細な説明を検討することにより、当業者に明らかになるであろう。あらゆる追加の利点が本明細書に組み込まれることが意図されている。 Further advantages of the invention will become apparent to those skilled in the art from consideration of the drawings and detailed description. It is intended that any additional advantages be incorporated herein.
本発明の実施形態は、以下の図面を参照して、例示として以下に説明される。 Embodiments of the invention are described below by way of example with reference to the following drawings.
図1は、本発明の実施形態を具現化するために適応された例示的なシステム191および195を示している。システム191は、通信ネットワーク199に接続されたカプセル化モジュール150を備える。システム195は、通信ネットワーク199に接続されたデカプセル化モジュール100を備える。
FIG. 1 depicts
一実施形態によれば、システム191は、コンテンツ(例えば、ビデオおよび/またはオーディオコンテンツ)を、ストリーミングまたはストレージのために処理するためのものである。システム191は、オリジナルのシーケンス画像151を含むコンテンツを取得/受信し、メディア符号化器(例えばビデオ符号化器)を用いてシーケンス画像をメディアデータ(すなわちビットストリーム)に符号化し、カプセル化モジュール150を用いてメディアデータをメディアファイル101にカプセル化する。カプセル化モジュール150は、メディアデータをカプセル化するライタまたはパッケージャの少なくとも一方を含む。メディア符号化器は、受信したコンテンツを符号化するために、カプセル化モジュール150内に実装されていてもよいし、カプセル化モジュール150とは別に設けられていてもよい。したがって、カプセル化モジュール150は、すでに符号化されたコンテンツ(メディアデータ)をカプセル化するためだけに専用化することができる。
According to one embodiment,
一実施形態によれば、システム195は、ユーザに表示/出力するためのメディアデータを処理するためのものである。システム195は、通信ネットワーク199を介してメディアファイル101を取得/受信し、デカプセル化モジュール100を用いてメディアファイル101をデカプセル化してメディアデータを取得し、メディア復号化器を用いてメディアデータをオーディオおよび/またはビデオコンテンツ(信号)に復号する。デカプセル化モジュール100は、パーサまたはプレーヤの少なくとも一方を含む。メディア復号化器は、メディアデータ(ビットストリーム)を復号化するために、デカプセル化モジュール100内に実装されていてもよいし、デカプセル化モジュール100とは別個に設けられていてもよい。
According to one embodiment,
メディアファイル101は、いくつかの方法でモジュール100のパーサまたはプレーヤに伝達されるが、例えば、カプセル化モジュール150のライタまたはパッケージャによって事前に生成され、通信ネットワーク199内の記憶装置(例えば、サーバまたはクラウドストレージ)にデータとして格納され、ユーザが記憶装置からその中に符号化されたコンテンツを要求するまでの間、格納されていてもよい。コンテンツが要求されると、データは記憶装置からデカプセル化モジュール100に通信/ストリームされる。
また、システム191は、記憶装置に記憶されたコンテンツのコンテンツ情報(例えば、コンテンツのタイトルや、コンテンツを識別、選択、要求するための他のメタ/記憶場所データ)をユーザに提供/ストリーミングするためのコンテンツ提供装置を含んでもよい。また、コンテンツ提供装置は、記憶装置からユーザ端末に配信/ストリーミングされることになるコンテンツに対するユーザ要求を受信し、処理するように適応されてもよい。
The
あるいは、カプセル化モジュール150は、メディアファイル101を生成し、ユーザがコンテンツを要求したときに、それを直接、デカプセル化モジュール100に通信/ストリーミングしてもよい。その後、デカプセル化モジュール100は、メディアファイル101を受信し、本発明の実施形態によるメディアデータのデカプセル化および復号化を実行して、ビデオ信号109および/またはオーディオ信号を取得/生成し、これをユーザ端末が使用して、要求されたコンテンツをユーザに提供する。
Alternatively,
ユーザは、モジュール100を構成するユーザ端末、またはモジュール100と通信する手段を有するユーザ端末のユーザインタフェースを介して、オーディオ/ビデオコンテンツ(信号)にアクセスする。このようなユーザ端末は、コンピュータ、携帯電話、タブレット、またはユーザにコンテンツを提供/表示することができる他のタイプのデバイスであってもよい。
A user accesses audio/video content (signals) via a user interface of a user terminal that makes up the
一実施態様によれば、メディアファイル101は、ISOベースメディアファイルフォーマット(ISOBMFF、ISO/IEC14496-12およびISO/IEC14496-15規格)に従って、メディアデータ(例えば、符号化されたオーディオまたはビデオ)をボックスにカプセル化する。メディアファイル101は、1つのメディアファイル(ファイルタイプボックス「ftyp」で示される)、または1つ以上のセグメントファイル(セグメントタイプボックス「styp」で示される)に対応することができる。ISOBMFFによると、メディアファイル101は、メディアデータを含む「メディアデータボックス(mdat)」と、メディアデータの配置やタイミングを定義するメタデータを含む「メタデータボックス」と、の2種類のボックスを含んでいてもよいとされている。
According to one implementation, media file 101 boxes media data (e.g., encoded audio or video) according to the ISO Base Media File Format (ISOBMFF, ISO/IEC 14496-12 and ISO/IEC 14496-15 standards). encapsulate in.
ビデオ符号化器は、ビデオ規格を用いてビデオコンテンツを符号化し、符号化されたビデオビットストリーム(メディアデータ)を生成する。ビデオの符号化/復号化(コーデック)規格は、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)、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張機能を含むITU-T H.264(ISO/IEC MPEG-4 AVC)、スケーラブル(SHVC)およびマルチビュー(MV-HEVC)拡張機能を含むITU-T H.265(HEVC)を含む。 A video encoder encodes video content using a video standard and produces an encoded video bitstream (media data). The video encoding/decoding (codec) standard is ITU-T H. 261 (ISO/IEC MPEG-1 Visual), ITU-T H. 262 (ISO/IEC MPEG-2 Visual), ITU-T H. ITU-T H.263 (ISO/IEC MPEG-4 Visual), including Scalable Video Coding (SVC) and Multi-View Video Coding (MVC) extensions. ITU-T H.264 (ISO/IEC MPEG-4 AVC), including scalable (SHVC) and multi-view (MV-HEVC) extensions. 265 (HEVC).
本明細書で説明する多くの実施形態は、HEVC規格またはその拡張機能を使用する例を説明している。しかし、本明細書で説明する技術とシステムは、AVCのような既に利用可能な他の符号化規格や、仕様策定中のITU-T H.266(VVC)のようなまだ利用可能でないまたは開発されていない符号化規格にも適用可能である。 Many embodiments described herein describe examples that use the HEVC standard or its extensions. However, the techniques and systems described herein are compatible with other already available encoding standards such as AVC and the ITU-T H. It is also applicable to encoding standards that are not yet available or developed, such as H.266 (VVC).
図2aは、H.264/AVCやHEVC/H.265などのビデオコーデックで使用されるNAL(ネットワーク抽象層)ユニット200の構造例を示している。
Figure 2a shows H. 264/AVC and HEVC/H. 2 shows an example structure of a NAL (Network Abstraction Layer)
NALユニットは、NALユニットヘッダ201とNALユニットペイロード202を含む。NALユニットヘッダ201は、固定長であり、NALユニットの一般的な情報を提供する。例えば、HEVCでは、NALユニットヘッダ201は、各NALユニットのタイプ、レイヤの識別子、および時間的なサブレイヤの識別子を示す。NALユニット200には、主にビデオ符号化レイヤNALユニット(VCLNAL)と非VCLNALユニットの2種類がある。VCLNALユニットは、典型的には、そのペイロードに、符号化されたスライスセグメント205を含む。非VCLNALユニットは、典型的には、パラメータセット(すなわち、構成情報)または補足的強化情報メッセージを含む。
A NAL unit includes a
符号化されたスライスセグメント205は、HEVCビットストリームにおいて、slice_segment_headerまたは「スライスヘッダ」206の後にslice_segment_dataまたは「スライスデータ」207が続くように符号化される。スライスセグメントは、整数個の連続した(ラスタースキャン順の)符号化ツリーユニット(すなわちピクチャ内のブロック)を含む。スライスの形状は必ずしも矩形ではない(そのため、空間的なサブパートの表現としてはタイルよりも適切ではない)。ビデオ圧縮フォーマットは、アクセスユニットを、符号化されたピクチャに対応する、復号化順に連続したNALユニットの集合と定義している。
The encoded
図2bは、ISOベースメディアファイルフォーマットに基づくメディア(ビデオ)サンプル210の構造例を示している。
FIG. 2b shows an example structure of a media (video)
メディアサンプルとは、1つの時間を持つオーディオ/ビデオデータユニット(例えば、オーディオフレームまたはビデオフレーム)のことである。ISO/IEC14496-15によれば、サンプルは、アクセスユニットまたはアクセスユニットの一部に対応する1つまたは複数のNALユニット212のセットである。各NALユニット212の前には、NALユニット長フィールド211がある。例えば、単一レイヤービデオの場合、サンプルは、符号化されたピクチャに対応する。レイヤードビデオの場合、サンプルはアクセスユニットの一部、例えばベースレイヤ用のNALユニットに対応し得る。
A media sample is an audio/video data unit (eg, an audio frame or a video frame) that has one time. According to ISO/IEC 14496-15, a sample is a set of one or
サンプルサイズ(バイト単位)は、サンプルサイズボックス「stsz」または「stsz2」に記載されている。サンプルサイズとNALユニットの長さが与えられると、ISOBMFFパーサ(例えば、モジュール100)は、サンプル内のNALユニットの数を決定することができる。ISO/IEC14496-15では、メディアデータ(「mdat」ボックス)内に埋め込まれたISOBMFF構造体である特定のNALユニット、抽出器、および集約器を定義している。これらは、「インストリーム構造」とも呼ばれる。 The sample size (in bytes) is listed in the sample size box "stsz" or "stsz2". Given the sample size and the length of the NAL units, the ISOBMFF parser (eg, module 100) can determine the number of NAL units in the sample. ISO/IEC 14496-15 defines certain NAL units, extractors, and aggregators that are ISOBMFF structures embedded within the media data ("mdat" box). These are also called "in-stream structures."
図3は、ISO/IEC14496-15に準拠した抽出器および集約器の構造の例を示す。 FIG. 3 shows an example of an extractor and aggregator structure according to ISO/IEC 14496-15.
メディアストリーム(例えば、圧縮されたビデオビットストリーム)に対応する第1の(メディア)トラック300は、メディア(例えば、ビデオ)サンプル301から構成され、各メディアサンプルは、図2bに例示されるように、1つ以上のNALユニットのセットを含む。サンプル内のNALユニットの数は、1つ1つ異なっていてもよい。例えば再構成、合成、参照または抽出トラックと呼ばれる第2のトラック320は、矢印310で図示されるように、別のトラック、ここでは第1のトラック300からのデータを参照するために、NALユニット323および抽出器NALユニット322を混合するサンプル321を含む。現在のトラック320からのサンプル321は、次に、トラック300からデータを抽出し、現在のトラック320からのデータ323と連結することによって再構成され得る。
A first (media)
再構成トラック320のいくつかのサンプル321は、抽出器のみまたはデータのみを含むことがあることに留意されたい。また、抽出器またはNALユニットの数は、サンプル321ごとに異なっていてもよい。抽出器322は、抽出器を含むトラック以外のトラックからNALユニットを効率的に抽出するための構造である。抽出器NALユニットは、特定のNALユニットタイプ値によって識別される(特定の値は、VLCおよび非VLCのNALユニットに割り当てられたタイプ値と衝突しないように、使用中のコーデックに依存してもよい)。
Note that some
ISO/IEC14496-15では、SVC、MVC、HEVCなどのさまざまな圧縮形式に対応する抽出器が定義されている。HEVCでは、抽出器は、参照されるトラック内のデータ(サンプル構築器)または構築器内で直接提供されるデータ(インライン構築器)からサンプルを再構築するための特定の構築器を導入する。既存の抽出器および構築器は、データの抽出またはコピーを、所定のバイト位置から何バイトかのコピーとして指定する。 ISO/IEC14496-15 defines extractors that support various compression formats such as SVC, MVC, and HEVC. In HEVC, the extractor introduces a specific constructor to reconstruct samples from data in the referenced track (sample constructor) or data provided directly within the constructor (inline constructor). Existing extractors and constructors specify the extraction or copying of data as a copy of a number of bytes from a given byte position.
本発明は、抽出器や構築器におけるデータ抽出やコピーを、バイト範囲ではなく、むしろシンタックス構造で指定することを提案するものである。一つの利点は、シンタックス構造をコピーすることで、ビットストリームのバイトアラインメントを確保できることである。もう1つの利点は、抽出器の記述サイズを小さくできることである。抽出器はサンプルレベルで定義され、時間の経過とともに繰り返されるので、これは貴重である。もう一つの利点は、代替またはグループのトラックから抽出できることである。後者は、抽出操作をバイト範囲で表現する場合には不可能である。なぜなら、あるトラックから別のトラックへのバイト位置は、同じ構文構造に対応しない可能性があるからである。さらに別の利点は、ライタまたはパッケージャが、抽出器またはサンプル構築器のデータオフセットおよびデータ長フィールドのビット数を計算して提供するために、NALユニットのNALユニット長フィールドのバイト単位の長さを気にする必要がないことである。既存の抽出器またはサンプル構築器では、ライタまたはパッケージャが、抽出されたデータをデスティネーショントラックの長さフィールドサイズに合わせて再フォーマットする必要がある場合がある。 The present invention proposes to specify data extraction and copying in extractors and constructors not by byte ranges, but rather by syntactic structures. One advantage is that by copying syntax structures, byte alignment of the bitstream can be ensured. Another advantage is that the extractor description size can be reduced. This is valuable because extractors are defined at the sample level and repeated over time. Another advantage is the ability to extract from alternate or group tracks. The latter is not possible if the extraction operation is expressed in byte ranges. This is because byte positions from one track to another may not correspond to the same syntactic structure. Yet another advantage is that the writer or packager can calculate the length in bytes of the NAL unit length field of the NAL unit in order to calculate and provide the number of bits in the data offset and data length fields of the extractor or sample constructor. It's something you don't need to worry about. Existing extractors or sample constructors may require the writer or packager to reformat the extracted data to fit the length field size of the destination track.
図4aは、本発明の一実施形態によるカプセル化処理を示している。実施形態では、この処理は、メディアデータをカプセル化するために図1に示されたカプセル化モジュール150のライタまたはパッケージャによって実行される。
Figure 4a illustrates an encapsulation process according to an embodiment of the invention. In embodiments, this processing is performed by the writer or packager of
ステップ400では、メディアデータ(ビットストリーム)を適切に読み取ることができるように、カプセル化モジュールを初期化する。この初期化は、ユーザインタフェースを介してユーザが行うことも、アプリケーションが行うこともできる。初期化には、ビットストリームのシンタックス構造(一般性を考慮してデータエンティティと呼ばれる)の識別と、カプセル化パラメータの設定が含まれる。カプセル化の設定は、例えば、メディアファイル101を1つのメディアファイルとして生成するのかあるいは複数のメディアセグメントとして生成するのか;メディアファイルにビデオストリームの1つのトラックを含めるのかあるいは複数のトラックを含めるのか;ビデオトラックをパート、ビュー、またはレイヤに分割する設定などを決定すること、を含み得る。
Step 400 initializes the encapsulation module so that the media data (bitstream) can be properly read. This initialization can be performed by the user via the user interface or by the application. Initialization includes identifying the syntactic structure of the bitstream (referred to for generality as data entities) and setting encapsulation parameters. Encapsulation settings include, for example, whether the
複数のトラックが含まれる場合、カプセル化モジュールは、ステップ400の間に、トラック間の参照を設定したり、トラックのグループを定義したりすることができる。したがって、1つまたは複数の他のトラックを参照して構築されたトラックは、これらの1つまたは複数のトラックへのトラック参照を含む。トラック参照は、参照するトラックと参照されるトラックとの間の関係または依存関係の種類を記述するために、異なるタイプのものであってもよい。トラック参照のタイプは、4文字のコードを使用して符号化することができる。例えば、ISO/IEC14496-15によると、タイプコード「scal」は、データが抽出される別のトラックを参照する抽出器を含むトラックを指定する。
If multiple tracks are included, the encapsulation module may set references between tracks or define groups of tracks during
カプセル化モジュールが初期化されると、ステップ401でビットストリームがNALユニットごとに読み込まれる。パラメータセットに対応する最初のNALユニットは、ステップ400での初期化(インバンドパラメータセットまたはアウトオブバンドパラメータセット)に応じて、復号器構成レコード構造に埋め込まれてもよい。これらのパラメータセットは、ライタまたはパッケージャによって検査され、ビットストリーム分割についての詳細を知ることができる。例えば、時間的動き制約タイルセットのSEI(補足拡張情報)メッセージや、ピクチャパラメータセットにおけるタイルの存在を確認することで、タイリングされたHEVCビットストリームであるかどうかを判断することができる。ステップ401でNALユニットが読み込まれると、ライタはステップ402でそれが新しいサンプルに対応しているかどうかをチェックする。これは、例えば、ピクチャオーダーカウントを復号化することにより、あるいは、NALユニットに対応するスライスがピクチャの最初のスライスであるかどうかをチェックすることにより行うことができる。イエスの場合、ステップ403において、サンプル記述のパラメータ(サイズ、メディアデータ内の位置、いくつかのサンプルグループ内のプロパティ...)を設定することにより、前のサンプルが確定される。次に、ステップ404で、現在のNALユニットが、トラックのメディア部分に含まれるべきか、他のトラックから参照されるべきか、あるいは、部分的に変更されて参照されるべきかをチェックする。これは、初期化ステップ400で設定されたトラックの依存関係または関係性から判断される。NALユニットが参照されていない場合は、まずメディアデータ「mdat」ボックスにNALユニットの長さが挿入され、続いてNALユニットのヘッダとペイロードが挿入される(ステップ405)。その後、現在のサンプルのサイズが、これら3つの構造体のバイト数でインクリメントされ、ライタまたはパッケージャは、ステップ406でビデオビットストリームから次のNALユニットをチェックする。これが最後のNALユニットでない場合、すべてのNALユニットが処理されるまで、処理はステップ401に反復される。
Once the encapsulation module is initialized, the bitstream is read NAL unit by NAL unit in
NALユニットが参照によりメディアファイルに含まれる場合(テスト404で真)、ライタまたはパッケージャは、ステップ407で、抽出器を含め、本発明の実施形態に従って抽出器の属性を設定する。特に、このプロセスは、「mdat」ボックス内のバイト単位の抽出器構造体のサイズを有するNALユニット長フィールドを付加し、抽出器のNALユニットを作成する。抽出器は、メディアサンプルにおいて、メディアサンプルに含まれる1つ以上のNALユニットに対して、参照されるデータエンティティを識別するコピーモード属性「copy_mode」を含む。コピーモード属性は、ライタまたはパッケージャがステップ400でどのように初期化されたかに応じて、異なる値を取る可能性がある。
If the NAL unit is included by reference in the media file (
一実施形態では、ステップ400で実行された初期化の結果、再構成トラックが異なるトラックからのビデオサンプルを合成するために使用される場合、コピーモード属性が「サンプル」モードに設定される。このモードでは、データエンティティは、サンプルに含まれるすべてのNALユニットのセットを含む。
In one embodiment, the initialization performed in
一実施形態では、ステップ400で実行された初期化またはビットストリーム検査が、ビデオビットストリームがタイル化されており(例えば、動き制約タイルセットを有するHEVC)、ユーザまたはアプリケーションがタイルの再配置を指示したことを示している場合、コピーモード属性は「NALU」モードに設定される。このモードでは、データエンティティは、サンプルに含まれる1つの所与のNALユニットを含む。
In one embodiment, the initialization or bitstream inspection performed in
一実装形態では、ステップ400で実行された初期化の結果、タイル再配置がビットストリーム内のタイル位置の修正を必要とする場合、ライタは、タイル位置がスライスヘッダ内に符号化されているか、NALユニットヘッダ内に符号化されているかに応じて、コピーモード属性を「slice_data」モードまたは「NALU_payload」モードに設定したインライン構築器+抽出器を用いて、書き換え命令を提供することができる。これらのモードでは、データエンティティは、サンプルに含まれる1つの所与のNALユニットのペイロードまたはスライスデータを含む。これらのモードでは、インライン構築器の命令で上書きされてしまうような無用なデータをコピーしないで済むという利点がある。
In one implementation, if as a result of the initialization performed in
メディアデータパート(「mdat」ボックス)に抽出器が書き込まれると、サンプルの説明が更新される(サンプルサイズ、サンプル内の現在のNALUインデックスなど)。その後、ライタまたはパッケージャは、ステップ406で次のNALユニットをチェックする。最後のNALユニットに到達すると、ライタは、ステップ408で、例えば、最後のサンプルのサイズ、インデックステーブル、ユーザデータ、またはメディア上の任意のメタデータを書き込むことによって、メディアファイルを確定する。
When an extractor is written to the media data part ("mdat" box), the sample description is updated (sample size, current NALU index within the sample, etc.). The writer or packager then checks the next NAL unit at
初期化ステップ400がセグメントへのカプセル化を示している場合、新しいサンプルを開始する前に、セグメント持続時間に達しているかどうかをチェックするために、追加のテストが実行される(不図示)ことに留意されたい。セグメントの持続時間に達した場合、セグメントは確定され、プレーヤによって使用されるか、または配信ネットワークを介して送信される準備が整う。セグメントの継続時間に達していない場合、ライタやパッケージャは、サンプルとNALユニットを繰り返す。
If the
図4bは、本発明の一実施形態によるデカプセル化処理を示す。一実施形態では、この処理は、メディアデータをデカプセル化するために、図1に図示されたデカプセル化モジュール100のパーサまたはプレーヤによって実行される。
FIG. 4b illustrates a decapsulation process according to an embodiment of the invention. In one embodiment, this processing is performed by a parser or player of the
ステップ410において、プレーヤはまず、メディアファイル101(1つのファイルとして、または連続したセグメントとして)を受け取る。このファイルは、パーサまたはプレーヤのメモリに格納されていてもよいし、ネットワークソケットから読み込まれてもよい。
In
まず、ステップ411で初期化データ、典型的には「moov」ボックスとそのサブボックスがパースされ、メディアファイルのパラメータ/設定(トラック数、トラックの関係と依存関係、サンプルの種類、持続時間、位置とサイズなど)を知る。
First, in
ステップ411で決定されたトラックのセットから、プレーヤまたはパーサは、ステップ412で、レンダリングする1つまたは複数のトラックを選択する。そして、メディアデータボックスをサンプルごとにパースすることで再構築を開始する。相互依存のトラックの場合、メディアデータのパースは、サンプル位置情報を用いて、参照されるトラックから参照するトラックへのトラック参照に従って行われ、例えば、サンプルテーブルボックスで利用可能なサンプルからチャンクボックス「stsc」およびチャンクオフセットボックス「stco」への参照が行われる。
From the set of tracks determined in
パーサやプレーヤは、ファイルの最後に到達するまで、サンプルを繰り返します(テスト413で否)。セグメントの場合、1つのセグメントが完全に読み込まれると、パーサはサンプルごとに次のセグメントを読み込んでいく。 The parser or player repeats the sample until it reaches the end of the file (test 413 - Fail). In the case of segments, once one segment is completely read, the parser reads the next segment sample by sample.
あるサンプルでは、チャンクオフセットボックスで指定された位置からデータを読み込み、そのチャンクでパースされた以前のサンプルの累積サイズを加える。この位置から、パーサはNALユニット長フィールドを見つける。その後、パーサはNALユニット長フィールドで指定されたバイト数を読み取り、NALユニットのペイロードを得る。NALユニットが抽出器に対応する場合(テスト415)、パーサは、ステップ416で、抽出器のコピーモード属性を読み取る。NALユニットが抽出器ではない場合、パーサは、ステップ417で、NALユニットペイロードに対応するバイトを、復号化のためにメディア復号化器に提供される再構築されたビットストリーム(メディアデータ)に付加する。ステップ417の後、処理は、現在のサンプルのサイズに達するまで、次のNALユニットを反復する(ステップ414に進む)。
For a given sample, it reads data from the position specified in the chunk offset box and adds the cumulative size of previous samples parsed in that chunk. From this position, the parser finds the NAL unit length field. The parser then reads the number of bytes specified in the NAL unit length field to obtain the payload of the NAL unit. If the NAL unit corresponds to an extractor (test 415), the parser reads the copy mode attribute of the extractor in
コピーモード属性の値に応じて、パーサは、参照されるトラックからサンプル、NALユニット、NALユニットペイロードまたはスライスデータを抽出する。実際、本発明の実施形態によれば、コピーモード属性は、(バイトレンジの代わりに)コピーするシンタックス構造またはデータエンティティを示す。例えば、コピーモードは、サンプルまたはアクセスユニット、NALユニット、NALユニットペイロードまたはスライスデータをコピーすることを示すことができる。 Depending on the value of the copy mode attribute, the parser extracts samples, NAL units, NAL unit payloads or slice data from the referenced track. Indeed, according to embodiments of the invention, the copy mode attribute indicates the syntax structure or data entity to copy (instead of a byte range). For example, the copy mode may indicate copying samples or access units, NAL units, NAL unit payloads, or slice data.
以下では、本発明の実施形態に従って提案された新しい抽出器を説明するための例を提供する。新しい抽出器は、図4aおよび図4bのカプセル化/デカプセル化処理のステップ407および415で上述したように、コピーモード属性を実装する。
In the following, an example is provided to explain the proposed new extractor according to an embodiment of the invention. The new extractor implements the copy mode attribute as described above in
コピーモード属性の実装は、SVC、MVC抽出器のような構築器を持たない抽出器と、HEVCまたはL-HEVC抽出器のような構築器を持つ抽出器の両方に適用可能である。構築器のある抽出器では、以下のように新しい種類の構築器を定義することができる(「constructor_type」で識別される)。 The implementation of the copy mode attribute is applicable both to extractors without constructors, such as SVC, MVC extractors, and to extractors with constructors, such as HEVC or L-HEVC extractors. For extractors with constructors, a new type of constructor can be defined (identified by "constructor_type") as follows:
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 )
SampleConstructorFromStructure();
} while( !EndOfNALUnit() )
}
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 )
SampleConstructorFromStructure();
} while( !EndOfNALUnit() )
}
新しい構築器の名前「SampleConstructorFromStructure」は、例として提供されている。また、予約済みの「constructor_type」の値「3」も例として挙げられている。新しい構築器は、バイトレンジを示す(「SampleConstructor」)または提供する(「InlineConstructor」)のではなく、構文構造に依存するコピーモードを示す。「constructor_type」の予約名や予約値を使用することができる。新しい構築器は、以下のように定義される。好ましい実施形態では、新しい構築器は、参照されるトラックの時間的に並んだサンプルから抽出を行う。これにより、抽出器のNALユニットを使用して、各サンプルで”sample_offset”のための8ビットを繰り返す必要がなくなる。 The name of the new constructor "SampleConstructorFromStructure" is provided as an example. Furthermore, the reserved value "3" of "constructor_type" is also given as an example. Rather than indicating ("SampleConstructor") or providing ("InlineConstructor") a byte range, the new constructor indicates a copy mode that depends on syntactic structure. Reserved names and reserved values for "constructor_type" can be used. A new constructor is defined as follows. In a preferred embodiment, the new constructor draws from temporally aligned samples of the referenced track. This eliminates the need to use the extractor's NAL unit to repeat the 8 bits for "sample_offset" with each sample.
class aligned(8) SampleConstructorFromStructure () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(5) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(6) reserved;
}
}
class aligned(8) SampleConstructorFromStructure () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(5) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(6) reserved;
}
}
新しい構築器のパラメータ、フィールド、属性は、以下のような意味を持つ:
-”ref_index”は、データを抽出するTrack_IDを見つけるために使用するタイプ「scal」のトラック参照のインデックスを指定する。ISOBMFFの修正により、トラック参照がトラックやトラックグループを参照することができるようになったことに注意する。ref_indexがtrack_group_idに解決された場合、パーサやプレーヤは、track grouping_typeに応じて、対応するトラックグループ内の最も適切なトラックを選択する。デフォルトの動作は、指定されたtrack_group_idを持つファイルの最初のトラックを選択することである。
-”copy_mode”は、抽出器を解決する際に実行されるコピー操作(すなわち、コピーモード)を指定する。例えば、以下の値の1つ以上が選択される。
-”0”は、「サンプル」モード、すなわち、サンプルの最初のバイトからサンプルの最後までを含めてコピーすることを示す。サンプルの最初のバイトは、Sample to Chunk BoxおよびChunk Offset Boxから決定することができます。
-”1”は、「NALU」モード、すなわちi番目のNALユニットの最初のバイトから同じNALユニットの最後のバイトまでのコピー(iはnalu_idcフィールドに対応する)を示す。NALユニットに対応するコピーするバイトの長さは、メディアデータボックス「mdat」のNALユニット212の前にある長さフィールド211から決定される。
-”2”は、「NALU_payload」モード、すなわち、i番目のNALユニットのペイロードの最初のバイトから、同じNALユニットの最後のバイトまでのコピーを示す。
-”3”は、「slice_data」モード、すなわち、i番目のslice_dataの最初のバイトからこの同じsliceの最後のバイトまでのコピー(iはnalu_idcフィールドに対応する)を示す。パーサやリーダは、例えば、スライスヘッダ長の記述専用のISOBMFF構造体を読み取ることで、コピーする最初のバイトの位置を決定する。これは、サンプルに対してスライスヘッダの長さを提供する専用のサンプルグループや、各NALユニットに対してスライスヘッダの長さを提供するインストリーム構造によって示されることがある。
-「nalu_idc_field_size」:このフィールドは、nalu_idcパラメータの符号化に使われる1バイトを引いたバイト数を示す。
-「nalu_idc」:copy_modeがNALUベースの場合(copy_mode !=0)、このフィールドは抽出元となるNALUのインデックス(1ベースのインデックス)を示す。値0は予約済みである。
The new constructor parameters, fields, and attributes have the following meanings:
- "ref_index" specifies the index of the track reference of type "scal" used to find the Track_ID to extract data from. Note that modifications to ISOBMFF allow track references to refer to tracks or track groups. If the ref_index resolves to a track_group_id, the parser or player selects the most appropriate track within the corresponding track group according to the track grouping_type. The default behavior is to select the first track of the file with the specified track_group_id.
- "copy_mode" specifies the copy operation (ie copy mode) to be performed when resolving the extractor. For example, one or more of the following values are selected:
- "0" indicates "sample" mode, ie, copies from the first byte of the sample to the end of the sample. The first byte of the sample can be determined from the Sample to Chunk Box and Chunk Offset Box.
- "1" indicates "NALU" mode, ie copying from the first byte of the i-th NAL unit to the last byte of the same NAL unit (i corresponds to the nalu_idc field); The length of the bytes to copy corresponding to the NAL unit is determined from the
- "2" indicates "NALU_payload" mode, ie copying from the first byte of the payload of the i-th NAL unit to the last byte of the same NAL unit.
- "3" indicates "slice_data" mode, ie copying from the first byte of the i-th slice_data to the last byte of this same slice (i corresponds to the nalu_idc field). The parser or reader determines the position of the first byte to be copied, for example, by reading the ISOBMFF structure dedicated to describing the slice header length. This may be indicated by a dedicated sample group that provides the slice header length for each sample, or an in-stream structure that provides the slice header length for each NAL unit.
- "nalu_idc_field_size": This field indicates the number of bytes minus 1 byte used for encoding the nalu_idc parameter.
- "nalu_idc": When copy_mode is NALU-based (copy_mode !=0), this field indicates the index (1-based index) of the NALU from which to extract. The value 0 is reserved.
最後の2つのコピーモード(「NALU_payload」および「slice_data」モード)は、何らかのヘッダの書き換え(NALユニットヘッダまたはスライスヘッダ)が行われた場合に有効であることに留意されたい。このような場合には、ペイロードのみを抽出し、書き換えられたヘッダと結合する必要がある。ヘッダの書き換えは、インライン構築器で処理することができる。 Note that the last two copy modes ("NALU_payload" and "slice_data" modes) are valid if any header rewriting (NAL unit header or slice header) is done. In such cases, it is necessary to extract only the payload and combine it with the rewritten header. Header rewriting can be handled by an inline constructor.
抽出器が集約器を参照する場合、コピーする最初のバイトのオフセットは、NALユニット長フィールド値に、NALユニット長フィールドサイズと、nalu_idc-1個のNALユニットの集約器の場合はadditional_bytesフィールドを加算して計算される。集約器はコピーモードのサンプルとしては興味があるが、NALユニットやスライスレベルで抽出する際には集約器を避けることを推奨する。copy_modeがNALユニットまたはスライスベースのコピーに設定された状態で存在する場合、集約器は無視され、nalu_idcパラメータで示されるi番目のNALユニットが処理されるものとする。 If the extractor references an aggregator, the offset of the first byte to copy is the NAL unit length field value plus the NAL unit length field size plus the additional_bytes field for an aggregator of nalu_idc - 1 NAL units. It is calculated as follows. Aggregators are interesting as a copy mode sample, but we recommend avoiding them when extracting at the NAL unit or slice level. If copy_mode is present with set to NAL unit or slice-based copy, the aggregator shall be ignored and the i-th NAL unit indicated by the nalu_idc parameter shall be processed.
上記全てのコピーモードにおいて、NALユニット全体をコピーする場合も、NALユニットの一部(ペイロード/スライス)をコピーする場合も、サンプルに含まれる1つ以上のNALユニットに対して、コピーされるデータエンティティは容易に決定される。 In all of the above copy modes, the data to be copied for one or more NAL units included in the sample, whether the entire NAL unit or a portion of the NAL unit (payload/slice) is being copied. Entities are easily determined.
上記の定義から、既存の”サンプル構築器”がNALユニットの長さ(復号化器構成情報の”lengthSizeMinusOne”フィールド)に応じて4~10バイト要するのに対し、新しい構築器はコピーモードに応じて2~4バイト要することがわかる。コピーモードを”sample”モードに設定すると、構築器のサイズが少なくとも2分の1になる。 From the above definition, the existing "sample constructor" requires 4 to 10 bytes depending on the length of the NAL unit ("lengthSizeMinusOne" field in the decoder configuration information), whereas the new constructor requires It turns out that it takes 2 to 4 bytes. Setting the copy mode to "sample" mode reduces the size of the constructor by at least half.
上記のコピーモードは網羅的なものではなく、より多くのバイトを節約できる他のコピーモードも想定される。例えば、ある実装方法によれば、コピーモード属性を「First_NALU」モードに設定し、パーサに現在のサンプルの最初のNALユニットをコピーするようにシグナリングすることができる。このモードでは、nalu_idcパラメータは必要ない。このモードでは、1バイトまたは2バイトのメモリを節約することができる。別の実装によれば、コピーモードはNALユニットの範囲を対象とすることができる。例えば、copy_modeを「NALU_range」モードに設定し、開始NALユニットインデックスと終了NALユニットインデックスをパラメータとして指定する。 The above copy modes are not exhaustive, and other copy modes that save more bytes are also envisioned. For example, one implementation may set the copy mode attribute to "First_NALU" mode, signaling the parser to copy the first NAL unit of the current sample. In this mode, the nalu_idc parameter is not required. This mode can save 1 or 2 bytes of memory. According to another implementation, the copy mode may be targeted to a range of NAL units. For example, copy_mode is set to "NALU_range" mode, and the start NAL unit index and end NAL unit index are specified as parameters.
予約ビットを考慮すると、最大128のコピーモードが定義できる。パーサがメディアファイルのライタやパッケージャが設定したコピーモードを明確に識別するために、各コピーモードに1つの予約値を用意する。抽出に柔軟性が必要な場合、特に時間的にずれたサンプルからの抽出の場合、新しい構築器はcopy_modeパラメータまたは属性に加えてsample_offsetパラメータを埋め込むことができる。 Considering reserved bits, a maximum of 128 copy modes can be defined. In order for the parser to clearly identify the copy mode set by the media file writer or packager, one reserved value is prepared for each copy mode. If flexibility is needed in the extraction, especially for extraction from time-displaced samples, the new constructor can embed a sample_offset parameter in addition to the copy_mode parameter or attribute.
別の実施形態では、シンタックス構造ベースのコピーモードで動作する新しい抽出器を、既存のバイトベースの抽出器と区別するために、予約されたNALユニットタイプを持つ新しい抽出器が定義される。例えば、「StructureExtractor」と呼ばれる新しい抽出器は、以下のように定義される。 In another embodiment, a new extractor with a reserved NAL unit type is defined to distinguish new extractors operating in syntax structure-based copy mode from existing byte-based extractors. For example, a new extractor called "StructureExtractor" is defined as follows.
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(2) copy_mode;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(1) nalu_idc_field_size;
unsigned int(5) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(6) reserved;
}
}
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(2) copy_mode;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(1) nalu_idc_field_size;
unsigned int(5) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(6) reserved;
}
}
上で開示した新しい構築器と同じセマンティクスがある。主な違いは、ここでは特定の「NALUnitHeader」があることである。「NALUnitHeader」は、使用中のビデオ符号化フォーマットに対応するNALユニットヘッダであるが、使用中のビデオコーディングフォーマットのVCL、非VCLのNALユニット、または既存の抽出器や集約器に対して既に予約されていない予約値を持つ。 It has the same semantics as the new constructor disclosed above. The main difference is that here we have a specific "NALUnitHeader". "NALUnitHeader" is a NAL unit header corresponding to the video coding format in use, but is already reserved for a VCL of the video coding format in use, a NAL unit for a non-VCL, or an existing extractor or aggregator. has a reserved value that is not
別の実施形態では、新しい抽出器は、常に時間に沿ったサンプルで動作するので、「sample_offset」パラメータは、新しい抽出器構造に存在しない。2つの新しい抽出器(時間整列または非時間整列)は、(NALユニットヘッダ内の)nalu_typeの異なる特定の値によって区別することができる。 In another embodiment, the "sample_offset" parameter is not present in the new extractor structure because the new extractor always operates on samples in time. The two new extractors (time-aligned or non-time-aligned) can be distinguished by different specific values of nalu_type (in the NAL unit header).
別の実施形態では、予約されたビットの1つをサンプルオフセットの有無を示すフラグとして使用する。これにより、1つの抽出器または構築器で、時間に沿ったまたは時間に沿っていない抽出が可能になる。フラグが設定されている場合、sample_offsetが存在し、既存の抽出器または構築器と同じセマンティクスを持ち、時間に沿っていない抽出が可能になる。フラグが設定されていない場合は、sample_offsetは存在せず、時間に沿った抽出のみが可能である。以下にその例を示す。同様の実施形態は、copy_modeを提供する抽出器にも適用できる。 In another embodiment, one of the reserved bits is used as a flag to indicate the presence or absence of a sample offset. This allows for chronological or non-temporal extraction with one extractor or constructor. If the flag is set, sample_offset is present and has the same semantics as existing extractors or constructors, allowing non-time-aligned extraction. If the flag is not set, sample_offset does not exist and only extraction along time is possible. An example is shown below. Similar embodiments can also be applied to extractors that provide copy_mode.
class aligned(8) SampleConstructorFromTrackGroup () {
unsigned int(8) ref_index; // an identifier for a group of tracks
unsigned int(2) copy_mode; // sample, NALU, NALU payload, slice data
unsigned int(1) time_aligned_extraction;
if (time_aligned_extraction == 1) {
signed int(8) sample_offset;
}
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size + 1) * 8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
class aligned(8) SampleConstructorFromTrackGroup () {
unsigned int(8) ref_index; // an identifier for a group of tracks
unsigned int(2) copy_mode; // sample, NALU, NALU payload, slice data
unsigned int(1) time_aligned_extraction;
if (time_aligned_extraction == 1) {
signed int(8) sample_offset;
}
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size + 1) * 8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
好ましい実施形態によれば、新たに定義された抽出器または構築器は、以下に説明するように、グループ、代替物または同等物などの複数のトラックをカプセル化したメディアファイルに有利に使用することができる。 According to a preferred embodiment, the newly defined extractor or constructor may be advantageously used for media files that encapsulate multiple tracks, such as groups, alternatives or equivalents, as described below. I can do it.
ISOBMFFファイルは、複数のトラックをもたらす複数の符号化されたビットストリームまたはビットストリームのサブパートをカプセル化することができる。例えば、ISOBMFFファイルには複数のトラックが含まれ、それぞれが所定の品質、解像度、またはビットレートのビデオシーケンスを表し、プレーヤに選択肢を提供するために同じメディアファイルにカプセル化されている。ISOBMFFとその拡張機能は、トラック、スタティックアイテム、またはサンプルをグループ化するためのいくつかのグループ化メカニズムを備えている。グループは通常、共通のセマンティックや特性を持っている。ISOBMFFは、トラック間の関係を記述するツールも定義している。 An ISOBMFF file can encapsulate multiple encoded bitstreams or subparts of bitstreams resulting in multiple tracks. For example, an ISOBMFF file contains multiple tracks, each representing a video sequence of a given quality, resolution, or bitrate, encapsulated in the same media file to provide choices to the player. ISOBMFF and its extensions provide several grouping mechanisms for grouping tracks, static items, or samples. Groups usually have common semantics and characteristics. ISOBMFF also defines tools to describe relationships between tracks.
例えば、ISOBMFFは、エンティティグループメカニズムとトラックグループメカニズムで構成されている。エンティティグループメカニズムは、トラックおよび/またはスタティックアイテムが、示されたグループ化タイプまたはセマンティックに従ってグループ化されていることを示すために使用できる。トラックグループ化メカニズムは、トラックが指示されたグループ化タイプまたはセマンティックに従ってグループ化されることを示すために使用することができる。トラックグループについては、第1のツールとして、ISOBMFFは、トラックレベル(すなわち、ISOBMFFボックス階層の「trak」ボックス内)に位置する「trgr」と示されるボックスを提供し、各グループが特定の特性を共有する、またはグループ内のトラックが特定の関係を有するトラックのグループを記述する。トラックグループは少なくとも、識別子(”track_group_id”)とグルーピングタイプ(”track_group_type”)を含む。同じtrack_group_typeとtrack_group_idの値を持つ「TrackGroupTypeBox」を持つトラックはすべて同じトラックグループの一部である。全方向メディアアプリケーションフォーマット(OMAF、ISO/IEC23091-2)では、このタイプのトラックグループ内のトラックが、「scal」または「sabt」のトラック参照のソースとして使用される代替品であることを示すために、新しいグループタイプ「alte」を検討している。また、トラック参照タイプのセマンティクスを拡張して、「tref」ボックス内のトラックまたはトラックグループの両方を参照できるようにする。この最後の点は、メディアパーサまたはプレーヤによる抽出器の解決に影響を与える可能性がある。 For example, ISOBMFF consists of an entity group mechanism and a track group mechanism. The entity group mechanism can be used to indicate that tracks and/or static items are grouped according to an indicated grouping type or semantic. A track grouping mechanism may be used to indicate that tracks are grouped according to an indicated grouping type or semantics. For track groups, as a first tool, ISOBMFF provides a box labeled "trgr" located at the track level (i.e. within the "trak" box of the ISOBMFF box hierarchy), where each group has specific characteristics. Describes a group of tracks that share or have specific relationships between tracks within the group. A track group includes at least an identifier (“track_group_id”) and a grouping type (“track_group_type”). All tracks with a "TrackGroupTypeBox" with the same track_group_type and track_group_id values are part of the same track group. In the Omnidirectional Media Application Format (OMAF, ISO/IEC23091-2), to indicate that a track in this type of track group is an alternative to be used as a source for a "scal" or "sabt" track reference. We are currently considering a new group type, ``alte.'' It also extends the semantics of the track reference type to allow references to both tracks or track groups within a "tref" box. This last point can affect the resolution of extractors by media parsers or players.
トラックのグループ、特に代替トラックのグループを定義する2つ目のツールは、トラックヘッダの「alternate_group」パラメータである。このパラメータは、トラックのグループまたはコレクションを指定する識別子を整数で指定する。「alternate_group」パラメータに同じ値を持つトラックは、お互いに代替データを含む。「alternate_group」識別子に付随して、代替トラックグループ内のトラックを区別するために、メディアファイルには、区別基準として使用できる属性(例えば、ビットレート、フレームレート、コーデック、言語、パケットサイズなど)を含めることができる。 The second tool for defining groups of tracks, and in particular groups of alternate tracks, is the "alternate_group" parameter in the track header. This parameter specifies an integer identifier that specifies a group or collection of tracks. Tracks with the same value for the "alternate_group" parameter contain alternative data to each other. Along with the "alternate_group" identifier, to distinguish tracks within an alternate track group, media files have attributes (e.g. bitrate, frame rate, codec, language, packet size, etc.) that can be used as differentiation criteria. can be included.
3つ目のツールは、エンティティ、つまりアイテムやトラック(またはその両方)をグループ化する「EntityGrouping」である。トラックグループの場合、「EntityToGroup」には、識別子と「grouping_type」が含まれる。特に、ISO/IEC14496-12では、代替を互いにグループ化するためにgrouping_type「altr」を宣言している。 The third tool is EntityGrouping, which groups entities: items and/or tracks. In the case of a track group, "EntityToGroup" includes an identifier and "grouping_type". In particular, ISO/IEC 14496-12 declares grouping_type "altr" to group alternatives together.
トラック間の関係を記述するもう一つのツールが、トラック参照メカニズムである。これは、トラックレベルで宣言されたトラック参照ボックス「tref」に、参照のタイプと、参照される1つ以上のトラックの識別子(track_ID)をそれぞれ提供する1つ以上のトラック参照タイプボックスが含まれている。このメカニズムは、例えば、レイヤービデオやスケーラブルビデオ(「sbas」)、タイルビデオ(「tbas」)において、トラックのセットが同じ「ベーストラック」を共有していることを示すために使用される。代替または同等のトラックは、トラックグループメカニズムを使用する代わりに、特定のトラック参照タイプでトラック参照メカニズムを介してシグナリングすることができる。例えば、「eqiv」トラック参照タイプは、参照しているトラックと参照されているトラック(複数可)が抽出のために透過的に使用できること、すなわち、それらが同じビジュアルコンテンツを表し、対応するビットストリームを組み合わせることができる(それらが同じパラメータセットを有する)ことを示す。トラックのセットが等価であることを示す他のシグナリングがあってもよい。このようなシグナリングにより、トラックのセットまたはグループを一意に識別できるようになれば、トラックグループからの新しい抽出器または構築器が使用できるようになる。 Another tool for describing relationships between tracks is the track reference mechanism. This means that a track reference box "tref" declared at the track level contains one or more track reference type boxes, each providing the type of the reference and an identifier (track_ID) of the one or more tracks being referenced. ing. This mechanism is used, for example, in layered video, scalable video ("sbas"), and tiled video ("tbas") to indicate that a set of tracks share the same "base track." Alternate or equivalent tracks may be signaled via the track reference mechanism with a specific track reference type instead of using the track group mechanism. For example, the "eqiv" track reference type indicates that the referencing track and the referenced track(s) can be used transparently for extraction, i.e. they represent the same visual content and the corresponding bitstream can be combined (they have the same parameter set). There may be other signaling indicating that sets of tracks are equivalent. Such signaling allows new extractors or constructors from track groups to be used once a set or group of tracks can be uniquely identified.
図5は、本発明の実施形態による、トラックグループからのデータの抽出を伴うメディアデータのカプセル化の例を示す。 FIG. 5 illustrates an example of encapsulation of media data with extraction of data from track groups, according to an embodiment of the invention.
抽出器トラック500(track_id=100)は、2つのトラックグループ520および530(それぞれtrack_group_id=11および22を有する)へのタイプ「scal」のトラック参照501を有する。これらの2つのトラックグループは、track_group_typeが「alte」に設定されていて、それらのトラックが互いに代替物であることを示していてもよいし、あるいは、トラックグループから1つのトラックだけを選択するための決定を常に行うことが可能なセマンティックを有する他のグループ化タイプを有していてもよい。この例では、これらのトラックグループのそれぞれが、2つの代替トラック521、522および531、532(それぞれ、track_ID=111、112のトラックおよびtrack_ID=221、222のトラック)を宣言している。例えば、トラックグループ内のトラックは、同じビデオを記述しているが、異なる品質レベルで符号化されている。この例では、抽出器トラック500の時刻502tのサンプルは、第1のトラックグループ520の1つのトラックからの時刻tのサンプルと、第2のトラックグループ530の1つのトラックからの時刻tのサンプルとの連結で構成されている。各トラックグループ520または530について、ライタ150は、サンプル502の抽出器503がトラックグループ520の内部の代替トラックのいずれか1つからサンプルを抽出してもよく、サンプル502の抽出器504がトラックグループ530の内部の代替トラックのいずれか1つからサンプルを抽出してもよいことを示している。抽出器503及び504は、そのcopy_modeが「サンプル」のコピーモードに対応する値に設定されている。
The extractor track 500 (track_id=100) has a
トラックグループからのそのような抽出器の解決には、(550で表される)パーサまたはプレーヤライク100による追加のステップが必要である。ステップ415(図4b)で抽出器NALユニットを特定する際、パーサは、ref_indexがtrack_IDに対応するか、track_group_idに対応するかをチェックしなければならない。これは、構築器またはトラックグループからの抽出器がref_indexとしてtrack_group_idのみを取る場合には、ファイルのブランドによって、抽出器または構築器のタイプによって決定することができる。トラックグループからの構築器または抽出器がtrack_IDとtrack_group_idの両方を受け入れる場合、パーサは、トラックまたはトラックグループに関連することを示すIDのリストを維持する。このリストから、パーサは、トラックグループからの抽出器または構築器のref_indexがtrack_IDまたはtrack_group_idを直接解決するかどうかを判断する。ref_indexがtrack_group_idを解決した場合、track grouping_typeに応じて、対応するトラックグループ内の最も適切なトラックを選択するかどうかは、パーサまたはプレーヤ次第である。デフォルトの動作は、指定されたtrack_group_idを持つファイルの最初のトラックを選択することである。また、トラック選択ボックスやその他のトラック説明で、代替トラックを区別するパラメータを確認し、アプリケーションやコンテキスト(帯域幅、処理能力)に応じて、トラックグループ内の最も適切なトラックを選択するという動作もある。 Resolving such an extractor from a track group requires an additional step by the parser or player-like 100 (represented at 550). When identifying the extractor NAL unit in step 415 (FIG. 4b), the parser must check whether ref_index corresponds to track_ID or track_group_id. This can be determined by the type of extractor or constructor, by the brand of the file, if the constructor or extractor from track group takes only track_group_id as ref_index. If the constructor or extractor from track groups accepts both track_ID and track_group_id, the parser maintains a list of IDs indicating that they are associated with the track or track group. From this list, the parser determines whether the extractor or constructor's ref_index from track group directly resolves to track_ID or track_group_id. If the ref_index resolves the track_group_id, it is up to the parser or player to select the most appropriate track within the corresponding track group, depending on the track grouping_type. The default behavior is to select the first track of the file with the specified track_group_id. You can also see the parameters that distinguish between alternative tracks in the track selection box and other track descriptions, and select the most appropriate track within a track group depending on the application and context (bandwidth, processing power). be.
復号化アーチファクトを回避するために、パーサは、ランダムアクセスサンプル(例えば、ビデオの場合はイントラフレーム)でのみ、参照トラックグループのトラックの選択を再評価してもよい。パーサは、代替トラックの「rap」サンプルグループを検査することで、ランダムアクセスサンプルの位置を決定してもよい。好ましい実施形態では、代替トラックに対応するビットストリームは、そのランダムアクセスポイントが整列しているので、パーサは、1つのトラックサンプルグループを見るだけで、抽出のためのトラック選択を再評価するタイミングを知ることができる。 To avoid decoding artifacts, the parser may re-evaluate the selection of tracks of the reference track group only on random access samples (eg, intra-frames in the case of video). The parser may determine the location of the random access samples by examining the "rap" sample group of the alternate track. In the preferred embodiment, the bitstream corresponding to the alternate track has its random access points aligned so that the parser only needs to see one track sample group to determine when to re-evaluate track selection for extraction. You can know.
代替トラックのランダムアクセスポイントの整合性は、特定の「track_group_type」、トラック参照タイプ、またはトラックの等価性を記述する任意のシグナリングによって通知されることがある。トラックグループを参照する新しい構築器または抽出器には、トラックグループ内のトラックのランダムアクセスポイントが整列しているかどうかを示す1つのパラメータ(たとえば、予約ビットを再利用して1ビットで符号化されたフラグ)を埋め込むこともできる。整列していれば、パーサはトラックグループ内のトラックの選択を再評価できるサンプルを知ることができる。この新しいパラメータが偽に設定された場合、トラックグループ内のトラック間でランダムアクセスポイントが整列していないことを意味する。次に、トラックグループを参照している抽出器または構築器を解決するときに1つのトラックの選択を再評価する前に、パーサはまず、参照されているトラックグループ内の少なくとも1つのトラックが、現在のサンプル(抽出器を含むもの)のためのランダムアクセスポイントを有することをチェックしなければならない。 The consistency of random access points of alternate tracks may be signaled by a particular "track_group_type", track reference type, or any signaling that describes track equivalence. A new constructor or extractor that references a track group has one parameter that indicates whether the random access points of the tracks in the track group are aligned (e.g., encoded with 1 bit by reusing reserved bits). It is also possible to embed a flag). Once aligned, the parser knows the samples from which it can re-evaluate the selection of tracks within the track group. If this new parameter is set to false, it means that the random access points are not aligned between the tracks in the track group. Then, before reevaluating the selection of a single track when resolving an extractor or constructor referencing a track group, the parser first ensures that at least one track in the referenced track group You must check that you have a random access point for the current sample (the one containing the extractor).
別の実施形態では、上記のチェックを回避することができる。この代替実施形態では、トラックグループを参照する抽出器または構築器は、トラック間のランダムアクセスポイントの整列または非整列を示すフラグまたはパラメータと組み合わせたオプションのパラメータを有する。フラグが偽に設定されている場合、新しいオプションのパラメータが存在し、現在のサンプル(抽出器を含むもの)に対してランダムアクセスポイントを持つ、参照されたトラックグループ内のトラックのリストを提供する。トラックのリストは、track_IDのリストとして記述される。このリストから、パーサは、所定のサンプルについて、抽出すべきトラックグループ内の可能な候補トラックのリストを決定する。 In other embodiments, the above checks may be avoided. In this alternative embodiment, the extractor or constructor that references the track group has an optional parameter combined with a flag or parameter that indicates alignment or misalignment of random access points between tracks. If the flag is set to false, a new optional parameter is present, providing a list of tracks in the referenced track group with random access points for the current sample (the one containing the extractor) . The list of tracks is described as a list of track_IDs. From this list, the parser determines, for a given sample, a list of possible candidate tracks within the track group to be extracted.
代替実施形態によれば、抽出器は以下のように規定される: According to an alternative embodiment, the extractor is defined as follows:
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(1) aligned_RAPs
if (aligned_RAPs == 0) {
unsigned int (8) switchable_tracks;
}
unsigned int(2) copy_mode;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(1) aligned_RAPs
if (aligned_RAPs == 0) {
unsigned int (8) switchable_tracks;
}
unsigned int(2) copy_mode;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
前述の実施形態と同様に、「StructureExtractor」には、(上記の構造のように)「sample_offset」が存在しない時間調整されたバージョンと、「sample_offset」が存在する時間調整されていないバージョンの2つがある。各バージョンには、パーサが抽出器の種類を簡単に識別できるように、特定のNALユニットタイプがある。「aligned_RAPs」(名称は一例)と呼ばれるパラメータは、(ref_indexを介して)参照されるトラックグループ内のトラックが、整列したランダムアクセスポイントを有するか否かを示すフラグに対応する。「switchable_tracks」(名称は一例)と呼ばれるパラメータは、抽出器の解決のための切り替え可能なトラックのリストを提供するパラメータである。これは、与えられたサンプルのランダムアクセスポイントを提供するトラックグループ内のトラックのインデックスを含む。ライタまたはパッケージャ150は、例えば「trgr」ボックスに記載されているトラックをグループ化する方法に関する指示のような、ステップ400で得られた初期化情報に応じて、ステップ407でこのリストを設定する。
Similar to the previous embodiment, "StructureExtractor" has two versions: a time-aligned version in which "sample_offset" is not present (as in the structure above), and a non-time-aligned version in which "sample_offset" is present. be. Each version has a specific NAL unit type so that the parser can easily identify the type of extractor. A parameter called "aligned_RAPs" (the name is an example) corresponds to a flag indicating whether the tracks in the referenced track group (via ref_index) have aligned random access points. The parameter called "switchable_tracks" (the name is an example) is a parameter that provides a list of switchable tracks for the extractor solution. This contains the index of the track within the track group that provides a random access point for a given sample. The writer or
ここで注意したいのは、このパラメータはtrack_IDの配列にすることもできるが、説明の効率化のために、リストtrack_ID(各32ビット)の代わりに、トラックグループ内のトラックのインデックス(各8ビット)を宣言することである。これは1ベースのインデックスである。インデックスは次のように決定される(ライタ側とパーサ側の両方で):各トラックグループについて、track_IDの順序付きリストがメモリに格納される。順番はtrack_IDの値が大きい順である。例えば、track_IDが1、12、23のトラックが同じトラックグループの一部である場合、インデックス1はtrack_ID=1を、インデックス2はtrack_ID12を提供し...これは、トラックの同等性が特定のトラック参照タイプを介して通知される場合にも機能する。また、インデックスは、特定のトラック参照タイプによって参照されるtrack_IDの順序付きリストに基づいている。ランダムなアクセスポイント(イントラ復号化リフレッシュ(IDR)フレームなど)を代替トラックの異なる時間帯に配置することで、動的なコンテンツ適応のためのスイッチングポイントを増やし、スイッチングレイテンシーを削減できるシナリオがある。
Note that this parameter can also be an array of track_IDs, but for the sake of exposition, instead of a list track_ID (32 bits each), we use the index of the track within the track group (8 bits each). ). This is a 1-based index. The index is determined as follows (both on the writer side and on the parser side): For each track group, an ordered list of track_IDs is stored in memory. The order is in descending order of the track_ID value. For example, if tracks with
もちろん、トラックグループを参照する新しい構築器にも、同じパラメータを適用することができる(ここでは、時間に沿ったバージョンの構築器、つまりsample_offsetパラメータを含まないバージョンの構築器): Of course, the same parameters can be applied to a new constructor that references the track group (here, the chronological version of the constructor, i.e. the version that does not include the sample_offset parameter):
class aligned(8) SampleConstructorFromStructure () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
unsigned int(1) aligned_RAPs
if (aligned_RAPs == 0) {
unsigned int (8) switchable_tracks;
}
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
class aligned(8) SampleConstructorFromStructure () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
unsigned int(1) aligned_RAPs
if (aligned_RAPs == 0) {
unsigned int (8) switchable_tracks;
}
if (copy_mode != 0) {
unsigned int(1) nalu_idc_field_size;
unsigned int(4) reserved;
unsigned int((nalu_idc_field_size+1)*8) nalu_idc;
} else {
unsigned int(5) reserved;
}
}
新しいパラメータ「aligned_RAPs」とオプションの「switchable_tracks」は、上記のStructureExtractorで使用される場合と同じ意味を持つ。上記の名前「SampleConstructorFromStructure」は例として提供されているが、「SampleConstructorFromTrackGroup」または一意で予約された単一のconstructor_typeの値に対応する任意の名前とすることもできる。 The new parameters ``aligned_RAPs'' and optional ``switchable_tracks'' have the same meaning as used in StructureExtractor above. Although the name "SampleConstructorFromStructure" above is provided as an example, it could also be "SampleConstructorFromTrackGroup" or any name corresponding to a unique and reserved single constructor_type value.
コピーモード(汎用ケースまたはトラックグループを参照する)を有する抽出器または構築器の両方について、代替実施形態は、抽出するNALユニットのインデックスを示す別の方法を提供する(copy_modeが「サンプル」コピーモードとは異なるモードを示す場合)。この代替実施形態は、以下のような抽出器または構築器の新しい定義をもたらす。 For both extractors or constructors that have a copy mode (referring to a generic case or track group), alternative embodiments provide another way to indicate the index of the NAL unit to extract (if copy_mode is a "sample" copy mode) (indicates a different mode). This alternative embodiment results in a new definition of an extractor or constructor as follows.
HEVCまたはL-HEVC抽出器について、HEVCおよびL-HEVC抽出器(または抽出器内の構築器の概念を再利用する任意の圧縮フォーマット)を拡張し、以下のようにトラックのセットまたはグループから再構築する可能性を持つ、新しいタイプの構築器(ここでは例えばSampleConstructorFromTrackGroupと呼ぶ)を提案する。 For HEVC or L-HEVC extractors, extend the HEVC and L-HEVC extractors (or any compression format that reuses the concept of a constructor within the extractor) and regenerate from a set or group of tracks as follows: We propose a new type of constructor (here called, for example, SampleConstructorFromTrackGroup), which has the possibility to construct.
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() )
}
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() )
}
抽出器のconstructor_typeのセマンティクスが次のように更新されている:
「constructor_type」は、後続の構築器を指定する。SampleConstructor、InlineConstructorおよびSampleConstructorFromTrackGroupは、constructor_typeがそれぞれ0、2、および3に対応する。その他のconstructor_typeの値は予約されている。
The extractor constructor_type semantics have been updated as follows:
"constructor_type" specifies the subsequent constructor. SampleConstructor, InlineConstructor, and SampleConstructorFromTrackGroup correspond to constructor_types of 0, 2, and 3, respectively. Other constructor_type values are reserved.
以下にconstructor_typeが3の場合の例を示す(ただし、使用されていない他の値も使用できる)。: An example when constructor_type is 3 is shown below (however, other unused values can also be used). :
class aligned(8) SampleConstructorFromTrackGroup () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
unsigned int(6) reserved;
if (copy_mode != 0) {
unsigned int(8) nalu_idc; // 1-based index
if (nalu_idc == 0){
unsigned int(8) escape_nalu_idc; // To address from 255 to 511
}
}
}
class aligned(8) SampleConstructorFromTrackGroup () {
unsigned int(8) ref_index;
unsigned int(2) copy_mode;
unsigned int(6) reserved;
if (copy_mode != 0) {
unsigned int(8) nalu_idc; // 1-based index
if (nalu_idc == 0){
unsigned int(8) escape_nalu_idc; // To address from 255 to 511
}
}
}
次のようなセマンティクスを持つ:
-ref_indexは、データを抽出するためのtrack_group_idを探すのに使用するタイプ「scal」のトラック参照のインデックスを指定する。track grouping_typeに応じて、対応するトラックグループの中から最も適切なトラックを選択するのは、パーサやプレイヤーの役目である。デフォルトの動作は、指定されたtrack_group_idを持つファイルの最初のトラックを選択することであり得る。
-属性”copy_mode”は、抽出器を解決する際に実行されるコピー操作を指定し、特に(どのバイト範囲をコピーするかではなく)どのシンタックス構造またはデータエンティティをコピーするかを指定する。
・copy_modeを0に設定:サンプルベースのコピーモード、すなわち、サンプルの1バイト目からサンプルの最後までのバイトをコピーする。サンプルの最初のバイトは、サンプルからチャンクボックスとチャンクオフセットボックスから判断できる。
・copy_modeを1に設定:NALユニットベースのコピーモード、すなわち、i番目のNALユニットの最初のバイトから、同じNALユニットの最後のバイトまでをコピーする。コピーする最初のバイトのオフセットは、NALユニット長フィールドの値に、NALユニット長フィールドのサイズと、nalu_idc-1個のNALユニットの集約器の場合はadditional_bytesフィールドの値を加算して計算される。NALユニットに対応するコピーするバイトの長さは、メディアデータボックス「mdat」のNALユニット212の前にある長さフィールド211から決定される。
・copy_modeを2に設定:NALUペイロードベースのコピーモード、すなわち、i番目のNALUペイロードの最初のバイトからこの同じNALUの最後のバイトまでのコピーで、iはnalu_idcフィールドに対応する。
・copy_modeを3に設定:slice_dataベースのコピーモード、すなわち、i番目のslice_dataの最初のバイトからこの同じsliceの最後のバイトまでのコピー(iはnalu_idcフィールドに対応する)を行う。パーサやリーダは、スライスヘッダの長さを記述したISOBMFF構造を読むなどして、コピーする最初のバイトの位置を決定する。
-nalu_idc属性は、copy_modeがNALユニットベースまたはslice-basedの場合(copy_mode !=0)、NALユニットのインデックス(1ベースインデックス、つまり値1から始まる)を指定する。値0は、255番目のNALUを超えて抽出するためのエスケープnalu_idcが存在することを示すために予約されている(HEVCレベル6のように、ピクチャごとに最大600個のスライスセグメントが含まれる場合などの稀なケースのため)。
-escape_nalu_idc:255番目のNALUを超えて抽出を開始するためのオフセットを示す。存在しない場合は、0とみなされる。存在する場合、値0は予約されており、512番目のNALユニットからのアドレスへの8ビットの別のエスケープ値(不図示)として必要に応じて使用できる。NALユニットはnalu_idc+escape_nalu_idcで表される。
It has the following semantics:
- ref_index specifies the index of the track reference of type "scal" used to find the track_group_id for extracting data. It is the role of the parser or player to select the most appropriate track from the corresponding track group according to track grouping_type. The default behavior may be to select the first track of the file with the specified track_group_id.
- The attribute "copy_mode" specifies the copy operation to be performed when resolving the extractor, and in particular specifies which syntax structures or data entities to copy (rather than which byte ranges to copy).
- Set copy_mode to 0: Sample-based copy mode, ie, copy bytes from the first byte of the sample to the end of the sample. The first byte of the sample can be determined from the Chunk From Sample and Chunk Offset boxes.
- Set copy_mode to 1: NAL unit-based copy mode, ie, copy from the first byte of the i-th NAL unit to the last byte of the same NAL unit. The offset of the first byte to copy is calculated by adding the value of the NAL unit length field, the size of the NAL unit length field, and the value of the additional_bytes field for an aggregator of nalu_idc-1 NAL units. The length of the bytes to copy corresponding to the NAL unit is determined from the
- Set copy_mode to 2: NALU payload-based copy mode, ie copy from the first byte of the i-th NALU payload to the last byte of this same NALU, where i corresponds to the nalu_idc field.
- Set copy_mode to 3: Perform slice_data based copy mode, ie copy from the first byte of the i-th slice_data to the last byte of this same slice (i corresponds to the nalu_idc field). The parser or reader determines the location of the first byte to be copied by, for example, reading the ISOBMFF structure that describes the length of the slice header.
- The nalu_idc attribute specifies the index of the NAL unit (starting from 1-based index, ie value 1) when copy_mode is NAL unit-based or slice-based (copy_mode !=0). The value 0 is reserved to indicate the presence of an escape nalu_idc for extracting beyond the 255th NALU (if up to 600 slice segments are included per picture, such as in HEVC level 6). for rare cases such as).
-escape_nalu_idc: indicates the offset to start extraction beyond the 255th NALU. If it does not exist, it is assumed to be 0. If present, the value 0 is reserved and can be used as an optional 8-bit separate escape value (not shown) to the address from the 512th NAL unit. A NAL unit is represented by nalu_idc+escape_nalu_idc.
NALUのペイロードとスライスデータに基づくモードは、ヘッダの書き換えを行う場合に有効である。このような場合、ペイロードのみが抽出され、書き換えられたヘッダと結合される。書き換えにはインライン構築器を使用する。sample_offsetパラメータは、新しいSampleConstructorFromTrackGroupには表示されず、参照されるトラックグループ内の1つのトラックからの時間に沿ったサンプルから再構築が行われると仮定する。抽出においてより柔軟性を提供する代替の実施形態は、sample_offsetパラメータをこの新しいSampleConstructorFromTrackGroupに維持することを含む。存在する場合、sample_offsetは、ISO/IEC14496-15と同じ意味を有する。ライタまたはパッケージャ150は、特に、初期化ステップ400が、元のシーケンス151の代替的な符号化ビットストリームまたは表現が存在することを示している場合には、カプセル化ステップ407において、特定の構築器を有するこのような抽出器を使用することができる。この新しい構築器がファイル/セグメントのカプセル化手段150(例えば、mp4ライタ)とファイル/セグメントのデカプセル化手段100(例えば、mp4リーダ)との間で相互運用可能になるように、新しい抽出器を定義する新しいセクションをISO/IEC14496-15に含めることが提案されている。このSampleConstructorFromTrackGroupは、ランダムアクセスポイントがトラックグループ内のトラック全体で整列しているかどうかを示すパラメータまたはフラグのような追加のパラメータを埋め込むこともでき、このパラメータまたはフラグが偽に設定されている場合には、切り替え可能なトラックのリストを提供するオプションのパラメータを備える。
The mode based on the NALU payload and slice data is effective when rewriting the header. In such cases, only the payload is extracted and combined with the rewritten header. Use an inline constructor for rewriting. The sample_offset parameter does not appear in the new SampleConstructorFromTrackGroup, assuming that the reconstruction is done from samples in time from one track in the referenced track group. An alternative embodiment that provides more flexibility in extraction includes keeping the sample_offset parameter in this new SampleConstructorFromTrackGroup. If present, sample_offset has the same meaning as in ISO/IEC 14496-15. The writer or
SVC、3D-AVC、MVCの抽出器は、バイト範囲ではなく構文構造またはデータエンティティのコピーモードをサポートし、トラックグループから抽出するように拡張することもできる。特定のNALユニットタイプは、抽出器が構文構造抽出に基づいており(すなわち、copy_modeを示す属性またはパラメータを含む)、代替または同等のトラックのグループまたはセットを参照することができ、NALユニットインデックス表示のためにNALユニットエスケープモードを使用することを示すために予約される(ここでは、「sample_offset」パラメータの存在によって示されるように、時間に沿っていない抽出モードで説明する): SVC, 3D-AVC, MVC extractors support copy modes of syntactic structures or data entities rather than byte ranges, and can also be extended to extract from track groups. A particular NAL unit type indicates that the extractor is based on syntactic structure extraction (i.e. includes an attribute or parameter indicating copy_mode), can refer to a group or set of alternative or equivalent tracks, and has a NAL unit index representation of Reserved to indicate the use of NAL unit escape mode for (here described in non-time aligned extraction mode, as indicated by the presence of the "sample_offset" parameter):
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(2) copy_mode;
unsigned int(6) reserved;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(8) nalu_idc; // a 1-based index;
if (nalu_idc == 0)
unsigned int(8) escape_nalu_idc; // to address from 256 to 511
}
}
class aligned(8) StructureExtractor () {
NALUnitHeader();
unsigned int(8) ref_index;
signed int(8) sample_offset;
unsigned int(2) copy_mode;
unsigned int(6) reserved;
if (copy_mode !=0 ) { // 0: sample copy mode
unsigned int(8) nalu_idc; // a 1-based index;
if (nalu_idc == 0)
unsigned int(8) escape_nalu_idc; // to address from 256 to 511
}
}
セマンティクスは、SampleConstructorFromTrackGroupの説明と同じである。この新しい抽出器は、ランダムアクセスポイントがトラックグループ内のトラック全体で整列しているかどうかを示すパラメータまたはフラグのような追加のパラメータを埋め込むこともでき、このパラメータまたはフラグが偽に設定されている場合には、切り替え可能なトラックのリストを提供するオプションのパラメータを備える。 The semantics are the same as described for SampleConstructorFromTrackGroup. This new extractor can also embed additional parameters such as a parameter or flag indicating whether the random access points are aligned across tracks in a track group, and this parameter or flag is set to false. In some cases, it has an optional parameter that provides a list of tracks that can be switched.
図6は、カプセル化および送信方法を実施するシステム60の一例を示す。システム60は、メディアコンテンツ(例えば2D画像)をストリーミングすることができる。システム60は、サーバ機器601とクライアント機器670とを含み、メディアコンテンツは、サーバ機器601からクライアント機器670に送信される。図示するように、メディアコンテンツは、カメラシステム600によって撮影され、クライアント機器670に配信されて、例えばユーザによって2D画面675(TV、タブレット、スマートフォン、ヘッドマウントディスプレイ...)に表示されるビデオシーケンス6011とすることができる。
FIG. 6 illustrates an
ビデオシーケンスを形成する画像6011は、好ましい実施形態では、符号化手段640によって独立して符号化されるように、分割手段6012によって空間パート6013に分割される。独立して符号化されるとは、ある空間パートが、差分符号化または予測符号化のための参照として、別の空間パートからのデータを使用しないことを意味する。例えば、符号化手段640がHEVC(高効率ビデオ符号化)圧縮フォーマットに基づいている場合、空間パート6013は独立したタイルとして符号化することができる。代替的な実施形態では、空間パート6013は、動き拘束されたタイルとして符号化することができる。符号化手段は、空間パートと同数のビットストリーム、またはN個の独立したサブビットストリームを有する1つのビットストリームを提供する(例えば、独立したタイルを符号化するためにHEVCが使用される場合など)。次に、提供された各ビットストリームまたはサブビットストリームは、ファイル/セグメントカプセル化手段650(カプセル化モジュール150に対応)によって、複数のサブピクチャトラック6014にカプセル化される。サブピクチャトラックは、ピクチャまたは画像のサブ部分、典型的には空間パートまたは矩形領域のデータを埋め込むトラックである。サブピクチャトラックは、他のサブピクチャトラックや、サブピクチャが抽出されたフルピクチャを記述するトラックと関連していてもよい。
The
例えば、サブピクチャトラックは、タイルトラックとすることができる。また、AVCトラック、HEVCトラック、HEVCタイルトラック、またはサンプルのシーケンスとしてカプセル化された任意の圧縮ビデオビットストリームで表現することもできる。同じビデオソースからのサブピクチャートラックは、トラックグループメカニズムを使用してグループ化することができる。例えば、OMAFでは、ビデオトラック間の2次元的な関係を表現するために、「2dcc」というtrack_group_typeを検討している。 For example, a sub-picture track can be a tile track. It can also be represented as an AVC track, HEVC track, HEVC tile track, or any compressed video bitstream encapsulated as a sequence of samples. Subpicture tracks from the same video source can be grouped using a track group mechanism. For example, OMAF is considering a track_group_type of "2dcc" to express a two-dimensional relationship between video tracks.
650で使用されるパッケージまたはカプセル化フォーマットは、例えば、MPEG標準化団体によって定義されたISOベースメディアファイルフォーマットおよびISO/IEC14496-15に従うことができる。結果として得られるファイルまたはセグメントファイルは、単一のmp4ファイルまたはmp4セグメントとすることができる。カプセル化の際には、ビデオのビットストリームにオーディオストリームを追加することができる。また、ビデオシーケンスや追加されたオーディオストリームに関する説明的な情報(メタデータ)を提供するメタデータトラックも追加される。 The packaging or encapsulation format used in 650 can follow, for example, the ISO base media file format and ISO/IEC 14496-15 defined by the MPEG standards body. The resulting file or segment file may be a single mp4 file or mp4 segment. During encapsulation, an audio stream can be added to the video bitstream. A metadata track is also added that provides descriptive information (metadata) about the video sequence and added audio streams.
カプセル化されたファイルまたはセグメントファイルは、配信手段660を介して、例えばhttp(ハイパーテキスト転送プロトコル)プロトコルを用いてインターネットのようなIPネットワーク上で、または例えばディスクやUSBキーのような取り外し可能なデジタル媒体上で、クライアント機器670に配信される。例示のために、配信手段660は、MPEG標準化委員会のDASH(HTTPを介した動的適応ストリーミング)のようなHTTP上の適応型ストリーミングを実装している(「ISO/IEC23009-1,HTTPを介した動的適応ストリーミング(DASH),Part1:メディアプレゼンテーション記述およびセグメントフォーマット”)。配信手段は、ストリーミングサーバ661とストリーミングクライアント662とで構成されていてもよい。メディアプレゼンテーション記述は、フル画像を含むビデオシーケンスをカプセル化したトラックに対応するメディアセグメントの記述とURLを提供してもよいし、サブピクチャートラックのみに対応するメディアセグメントの記述とURLを提供してもよいし、両方に対応するメディアセグメントの記述とURLを提供してもよい。メディアプレゼンテーション記述は、サブピクチャートラックの代替グループを提供してもよく、各グループは、カメラ600によって撮影されたシーンの異なる再構築レベルを可能にする。代替とは、例えば、解像度、品質またはビットレートの観点から、異なる分割(分割手段6012に関連する粗いグリッドまたは細かいグリッド)であってもよい。
The encapsulated file or segment file is delivered via a distribution means 660, e.g. over an IP network such as the Internet using the http (hypertext transfer protocol) protocol, or via a removable device such as a disk or a USB key. It is delivered to
ストリーミングクライアント662による受信時に、カプセル化されたメディアファイルまたはメディアセグメントは、1つまたは複数のデータストリームを抽出するように、ファイル/セグメントデカプセル化手段671(デカプセル化モジュール100に対応)によってパースされる。抽出されたデータストリームは、復号化手段672によって復号化される。ファイル/セグメントデカプセル化手段671によって受信されたISOBMFFファイルまたはセグメントの場合、パースは通常、mp4リーダまたはmp4パーサによって処理される。パーサは、記述的なメタデータから、カプセル化されたビデオビットストリームおよび/またはビデオサブビットストリームを抽出することができる。
Upon receipt by streaming
次に、オプションとして、復号化手段672によって提供されたビデオシーケンスの復号化された画像またはサブ画像は、レンダリング手段674によって、ビデオレンダリングのための結果画像に合成される。レンダリングされたビデオは、スクリーン(ユーザデバイス)のような表示手段675に表示される。 Optionally, the decoded images or sub-images of the video sequence provided by the decoding means 672 are then combined by the rendering means 674 into a resultant image for video rendering. The rendered video is displayed on a display means 675, such as a screen (user device).
動画のレンダリングは、いくつかのパラメータに依存し、その中にはディスプレイサイズやクライアントの処理能力も含まれることに注意する。レンダリングは、パースおよび復号化されたサブピクチャートラックのサブセットのみを表示するように構成されていてもよい。これは、レンダリング手段674によって制御されてもよいし、ストリーミングクライアント662によるコンテンツ選択で直接制御されてもよい。
Note that video rendering depends on several parameters, including display size and client processing power. The rendering may be configured to display only a subset of the parsed and decoded sub-picture tracks. This may be controlled by the rendering means 674 or directly by content selection by the
VHD(超高解像度)ビデオストリームの複数の画像を伝送レンダリングすると、非常に高いビットレートと高解像度のメディアデータストリームになることが確認されています。そのため、システム全体を考慮すると、帯域幅の浪費を避け、クライアントプレーヤの処理能力に準拠するためには、メディアデータへのアクセスを最適化する必要がある。 Transmitting and rendering multiple images of a VHD (Very High Definition) video stream has been observed to result in a very high bit rate and high resolution media data stream. Therefore, considering the overall system, access to media data needs to be optimized in order to avoid wasting bandwidth and comply with the processing capabilities of the client player.
具体的には、メディアデータストリームは、プロジェクターのアレイのような専用のディスプレイで画像を表示するために使用することができる。また、キャプチャされたビデオ6011の中の特定の関心領域を表示するためにも使用することができる。
Specifically, the media data stream can be used to display images on a dedicated display, such as an array of projectors. It can also be used to display specific regions of interest within the captured
図7は、2Dビデオを(手段650によって)複数のトラックにカプセル化するプロセスを示している。ステップ700で、サーバは、符号化後の入力ビットストリーム(複数可)を、単一のトラックとしてカプセル化するか、複数のトラックとしてカプセル化するかを決定する。単一トラックのカプセル化がオンである場合(テスト700が「yes」)、ビデオは単一トラックとしてカプセル化され(ステップ710)、オプションで、どのNALユニットがどの領域に対応するかを示すNALユニットマッピングを伴う。複数のトラックを生成しなければならない場合(テスト700が「no」)、例えば、図6の手段6012によって分割が行われる場合、ステップ720において、ファイルのコンテンツ作成者は、合成トラックまたは再構成トラックを追加することができる。合成または再構成トラックは、パーサまたはプレーヤのために、エントリーポイントまたは「メイン」または「デフォルト」トラックを提供することを可能にする。例えば、合成トラックや再構成トラックには、有効であることを示すフラグの値がトラックヘッダに設定されており、ムービーで使用され、オプションでプレビューとしても使用される。合成トラックから参照されるトラックは、クライアントやプレーヤやユーザによる選択からこれらのトラックを隠すために、(track_enableフラグ値を除いて)これらのフラグ値が設定されていない場合がある。合成トラックまたは再構成トラックが存在しない場合、ステップ730において、符号化後のメディアファイルおよび各ビットストリームまたはサブビットストリームは、それ自身のトラックにカプセル化される。
FIG. 7 shows the process of encapsulating 2D video (by means 650) into multiple tracks. At
オプションのステップは、ビットストリームまたはサブビットストリームを集めて、元の分割されたものよりも大きな領域を形成することによって、トラックの数を減らすよう構成されてもよい。カプセル化が合成トラックまたは再構成トラックを提供する場合(テスト720が「yes」)、サンプル再構成規則として、メディアファイルにおける暗黙的または明示的な再構成表示という2つのオプションが可能である。
The optional step may be configured to reduce the number of tracks by aggregating bitstreams or sub-bitstreams to form a larger region than the original partitioned one. If the encapsulation provides a composite track or a reconstruction track (
暗黙的な再構成の場合(テスト740が「真」、分岐が「はい」)、ステップ741において、ISO/IEC14496-15で定義されているように、合成または再構成トラックがタイルベーストラック(例えば、「hvt1」サンプルエントリを有するトラック)として提供される。次に、各サブピクチャートラックは、ステップ743において、ISO/IEC14496-15で規定されているように、このタイルベーストラックに応じて、タイルトラックとしてカプセル化される。タイルトラックのための「trif」記述子に加えて、各タイルトラックは、2D空間関係記述のために同じトラックグループの一部として宣言することもできることに注意する。
In the case of implicit reconstruction (
合成または再構成トラックが、明示的な再構成のための抽出器を有するトラックとして提供される場合(テスト740が「偽」、分岐が「いいえ」)、ステップ742において、追加のトラックがメディアファイルに作成される。このトラックは、主に、本発明の実施形態による抽出器を含み、すなわち、サンプル、NALユニットまたはスライスのようなシンタックス構造(データエンティティ)のコピーを可能にする。このトラックはまた、前の実施形態による新しい抽出器または構築器のような代替または同等のトラックのセットまたはグループからの抽出を可能にしてもよい。作成されたトラックは、ステップ744で作成された各サブピクチャートラックを、例えば、「scal」トラック参照タイプで参照する。合成または再構成トラックが提供されない場合(テスト720が「偽」、分岐が「いいえ」)、ステップ730において、メディアのビデオ部分がサブピクチャートラックとしてカプセル化される。なお、合成トラックまたは再構成トラックが存在する場合でも、サブピクチャートラックは、トラックグループメカニズムを介してグループ化され得る。
If the composite or reconstruction track is provided as a track with an extractor for explicit reconstruction (
最後に、ステップ750で、空間的な構成とサブピクチャートラック間の関係のための記述が生成される。元のビデオソース内の各サブピクチャートラックの相対的な位置とサイズを記述するために、2D空間関係記述用のトラックグループボックスが各サブピクチャートラックに追加される。
Finally, at
図8は、2Dの空間関係を記述するために、いくつかのトラックグループを含むサブピクチャートラックのカプセル化の例を説明している。この例は、2Dビデオと全方位ビデオの両方に適用される。 FIG. 8 illustrates an example of encapsulation of sub-picture tracks including several track groups to describe 2D spatial relationships. This example applies to both 2D and omnidirectional videos.
この例では、トラック#1~#4は、track_group_idが10であり、source_id800が1である、タイプ「2dcc」のトラックグループ81に属している。トラック#5~#8は、track_group_idが20であり、source_id800が1である、タイプ「2dcc」の別のトラックグループ82に属している。また、track_group_idは30であり、source_id801が2である、タイプ「2dcc」の第3のトラックグループ83が存在する。さらに、いくつかの代替グループ84~87がある。同じ代替グループに属するすべてのトラック(すなわち、トラックヘッダボックス「tkhd」内に同じalternate_group識別子を有するか、または、すべてが同じtrack_group_typeおよびtrack_group_idを有する「trgr」ボックスを宣言している)は、代替データを含むトラックのグループまたはコレクションを指定する。代替データには、代替のビットレート、コーデック、言語、パケットサイズなどがある。これらの差別化された属性は、トラック選択ボックスに表示することができる。代替グループ内のトラックは、一度に1つだけ再生またはストリーミングする必要がある。この例では、トラック#1、#5、#9は、識別子が100である同じ代替グループ84に属している。例えば、トラック#1とトラック#5は、異なる品質を持つ代替トラックであり、トラック#9は、コーデックの観点からトラック#1とトラック#5の代替トラックである。トラック#2、#6、#10は、識別子が200である同一の代替グループ85に属しており、例えば、トラック#2とトラック#6は、解像度の異なる代替トラックであり、トラック#10は、フレームレートの観点からトラック#2とトラック#6の代替トラックである、等々である。
In this example, tracks #1 to #4 belong to a
トラックグループ81と82は同じsource_id800を持ち、トラックグループ83は異なるsource_id801を持つことは、トラックグループ81と82に属するサブピクチャートラックを(他の制約条件に関して、つまり代替グループごとにほぼ1つのサブピクチャートラックを)組み合わせることができることを意味する。逆に、トラックグループ83のサブピクチャートラックは、同じ代替グループに属していても、同じsource_idを持たないため、トラックグループ81および82のサブピクチャートラックと組み合わせることはできない。source_idパラメータは、同じ空間構成の一部となり得るサブピクチャートラックのプレーヤへの指示となる。与えられた空間的位置に対して、あるサブピクチャートラックは、同じ与えられた空間的位置にある別のサブピクチャートラックと視覚的に等価であると考えることができる。これは、メディアコンテンツが複数のトラックに分けて提供されている場合に、(サブピクチャ)トラックの選択に役立つ。さらに、選択されたサブピクチャートラックに応じて、同じ空間構成を表示するために、(品質/ビットレートや解像度を)動的に適合させることができる。図8の構成により、650(図6)または150(図1)のライタまたはパッケージャが、異なるトラックの空間的な部分を、レンダリングするためのより大きな画像にアレンジするための再構成または構成トラックを構築することができる。本発明の実施形態によれば、再構築または合成トラックは、異なるコピーモードを有する提案された抽出器を使用し、トラックグループを参照することができる。これは、例えば、トラック#1またはトラック#5に対応する空間パートが、これらの2つのトラックのいずれかによって再構成される可能性があることを示すのに有用である。これは、100(84)に等しい代替グループを参照する抽出器を有するライタまたはパッケージャによって示される。同様に、第2の空間パートのデータは、代替グループ85の1つのトラックから抽出することができる。この場合も、再構成トラックは、copy_modeが「sample」モードに設定され、トラックグループを参照する抽出器を含む。
図9aおよび図9bは、トラックのセットまたはグループからの明示的な再構成の例を示す。図示の例では、トラックのグループは、サブピクチャートラックの代替セットに対応する。 Figures 9a and 9b show an example of explicit reconstruction from a set or group of tracks. In the illustrated example, the groups of tracks correspond to alternative sets of sub-picture tracks.
本発明の実施形態によれば、新しい種類の抽出器は、図9aの900または図9bの950のような抽出器または再構成トラックで使用される。図9aおよび図9bには、「代替による明示的な空間再構成」を示すために、特定のトラック参照タイプ「esra」901または951が示されている。代わりにタイプ「scal」のトラック参照を使用してもよい。ステップ「トラック選択」902または952は、901または951によるトラックグループによって参照されるトラックグループ内のトラックを選択するためにパーサによって行われるステップに対応する。図9aは、図8上の構成と非常に類似しており、すなわち、代替トラックは、タイプ「alte」のトラックグループ(903および904)によって示されるが、図9bは、例えばサブセット(953および954)を使用するなど、代替トラックを記述する代替方法を考慮している。サブセットは、特定の代替を有するサンプル構築器(ID#100のトラック950)においてref_indexとしても使用され得る一意の識別子によって識別される。サブセットの識別子は、「2dsr」ボックスのパラメータとして宣言できる。subset_identifierの使用には、サブピクチャートラックごとに4バイトのコストがかかり、「alte」トラックの宣言にはサブピクチャートラックごとに24バイトのコストがかかる。 According to embodiments of the invention, a new type of extractor is used in the extractor or reconstruction track, such as 900 in Figure 9a or 950 in Figure 9b. In Figures 9a and 9b, a particular track reference type "esra" 901 or 951 is shown to indicate "explicit spatial reconstruction with substitution". A track reference of type "scal" may be used instead. The step "track selection" 902 or 952 corresponds to the step performed by the parser to select a track within the track group referenced by the track group according to 901 or 951. 9a is very similar to the configuration on FIG. 8, i.e. the alternative tracks are indicated by track groups of type "alte" (903 and 904), whereas FIG. 9b shows e.g. ) are considering alternative ways of writing alternative tracks. The subset is identified by a unique identifier that may also be used as a ref_index in the sample constructor (track 950 with ID #100) with a specific alternative. The subset identifier can be declared as a parameter of the "2dsr" box. Using a subset_identifier costs 4 bytes per subpicture track, and declaring an "alte" track costs 24 bytes per subpicture track.
図10は、本発明の1つまたは複数の実施形態を実施するためのコンピュータデバイス1000の概略ブロック図である。コンピュータデバイス1000は、マイクロコンピュータ、ワークステーション、または軽いポータブルデバイスなどのデバイスであってもよい。コンピュータデバイス1000は、
-マイクロプロセッサのような中央処理装置(CPU)1001;
-マニフェストの読み書きおよび/またはビデオの符号化および/または所定のファイルフォーマットの下でのデータの読み書きに必要な変数およびパラメータを記録するために適合されたレジスタと同様の、本発明の実施形態に係る方法の実行コードを格納するランダムアクセスメモリ(RAM)1002であって、そのメモリ容量は、例えば、拡張ポートに接続されたオプションのRAMによって拡張可能である;
-本発明の実施形態を実現するためのコンピュータプログラムを格納するROM(読み取り専用メモリ)1003;
-典型的には、処理されるべきデジタルデータが送受信される通信ネットワークに接続されるネットワークインタフェース1004。ネットワークインタフェース1004は、単一のネットワークインタフェースであってもよいし、異なるネットワークインタフェースのセット(例えば、有線および無線のインタフェース、または、異なる種類の有線または無線のインタフェース)で構成されていてもよい。データは、CPU1001で動作するソフトウェアアプリケーションの制御下で、送信のためにネットワークインタフェースに書き込まれたり、受信のためにネットワークインタフェースから読み込まれたりする;
-ユーザからの入力を受け付けたり、ユーザに情報を表示したりするためのユーザインタフェース(UI)1005;
-ハードディスク(HD)1006;
-ビデオソースやディスプレイなどの外部機器との間でデータを送受信するためのI/Oモジュール1007
に接続された通信バスを備える。
FIG. 10 is a schematic block diagram of a
- central processing unit (CPU) 1001, such as a microprocessor;
- in embodiments of the invention, similar to registers adapted to record variables and parameters necessary for reading and writing manifests and/or encoding video and/or reading and writing data under a given file format; a random access memory (RAM) 1002 for storing executable code for such a method, the memory capacity of which is expandable, for example, by an optional RAM connected to an expansion port;
- ROM (read-only memory) 1003 storing a computer program for implementing embodiments of the present invention;
- A
- User interface (UI) 1005 for accepting input from the user and displaying information to the user;
-Hard disk (HD) 1006;
- I/
A communication bus connected to the
実行コードは、読み取り専用メモリ1003、ハードディスク1006、または例えばディスクなどのリムーバブルなデジタル媒体のいずれかに格納され得る。変形例によれば、プログラムの実行可能コードは、実行される前に、ハードディスク1006などの通信装置1000の記憶手段の1つに記憶されるために、ネットワークインタフェース1004を介して、通信ネットワークによって受信することができる。
The executable code may be stored either in read-
中央処理装置1001は、本発明の実施形態によるプログラムまたはプログラムの命令またはソフトウェアコードの一部の実行を制御および指示するように適合されており、これらの命令は前述の記憶手段の1つに格納される。電源投入後、CPU1001は、ソフトウェアアプリケーションに関するメインRAMメモリ1002からの命令を、それらの命令が例えばプログラムROM1003またはハードディスク(HD)1006からロードされた後に実行することができる。このようなソフトウェアアプリケーションは、CPU1001によって実行されると、これまでの図に示したフローチャートのステップを実行させる。
The
本実施形態では、本装置は、ソフトウェアを使用して本発明を実施するプログラム可能な装置である。しかし、代わりに、本発明をハードウェア(例えば、特定用途向け集積回路(ASIC)の形態)で実施してもよい。 In this embodiment, the device is a programmable device that implements the invention using software. However, the invention may alternatively be implemented in hardware (eg, in the form of an application specific integrated circuit (ASIC)).
本明細書では、特定の実施形態を参照して本発明を説明してきたが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある変更が当業者には明らかになるであろう。 Although the invention has been described herein with reference to particular embodiments, it is not intended that the invention be limited to particular embodiments, and modifications that fall within the scope of this invention will be apparent to those skilled in the art. It will be.
例えば、本発明は、カメラ、スマートフォン、ヘッドマウントディスプレイ、タブレットのように、テレビやマルチメディアディスプレイのリモコンとして機能するデバイスに組み込まれ、例えば、特定の関心領域にズームインすることができる。また、同じデバイスを使って、特定の関心領域を選択することで、マルチメディアプレゼンテーションの閲覧をカスタマイズすることもできる。また、これらの機器や方法を使って、ユーザが好みのビデオの一部を選択して他の接続された機器と共有することもできる。また、監視カメラが本発明によるデータ提供方法に対応していれば、スマートフォンやタブレットを使って、監視下に置かれた建物の特定のエリアで起こっていることを監視することもできる。 For example, the present invention can be incorporated into devices such as cameras, smartphones, head-mounted displays, and tablets that function as remote controls for televisions and multimedia displays, for example to zoom in on a particular region of interest. You can also use the same device to customize your viewing of multimedia presentations by selecting specific areas of interest. These devices and methods also allow users to select and share their favorite video portions with other connected devices. Furthermore, if the surveillance camera is compatible with the data provision method according to the invention, it is also possible to use a smartphone or tablet to monitor what is happening in a particular area of the building under surveillance.
本発明の範囲を限定するものではなく、添付の特許請求の範囲によってのみ決定されるものである。特に、異なる実施形態からの異なる特徴は、適切な場合には、交換することができる。 It is not intended that the scope of the invention be limited, but rather determined solely by the scope of the claims appended hereto. In particular, different features from different embodiments can be interchanged where appropriate.
Claims (11)
それぞれ1つまたは複数のNALユニットのセットを含む複数のサンプルを含む第1のトラックを前記メディアファイルに含めることと、
前記第1のトラックに含まれるサンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットを参照する参照構造を有する抽出器を含む第2のトラックを前記メディアファイルに含めることと、
を含み、
前記抽出器は、前記サンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットに含まれるデータエンティティを識別してコピーするモードを、予め定められた複数のモードから指定する情報を含むコピーモード属性を含む
方法。 A method of encapsulating media data into a media file, the method comprising:
including in the media file a first track that includes a plurality of samples each including a set of one or more NAL units ;
including in the media file a second track that includes an extractor having a reference structure that references a sample included in the first track or one or more NAL units included within the sample;
including;
The extractor identifies and copies a data entity included in the sample or one or more NAL units included in the sample , including information that specifies a mode for copying from a plurality of predetermined modes. Contains mode attributes
Method.
前記データエンティティが前記サンプルに含まれる全てのNALユニットのセットを含む第1のモード、
前記データエンティティが前記NALユニットのセットの1つのNALユニットを含む第2のモード、
前記データエンティティが前記NALユニットのセットの1つのNALユニットのペイロードを含む第3のモード、
前記データエンティティが前記NALユニットのセット内の指定された位置にある1つのNALユニットを含む第4のモード、
前記データエンティティが前記NALユニットのセット内の指定された位置にある1つのNALユニットのペイロードを含む第5のモード、
の1つまたは複数を含む
請求項1に記載の方法。 The plurality of modes are :
a first mode in which the data entity includes a set of all NAL units included in the sample;
a second mode in which the data entity includes one NAL unit of the set of NAL units;
a third mode in which the data entity comprises a payload of one NAL unit of the set of NAL units;
a fourth mode in which the data entity includes one NAL unit at a specified position within the set of NAL units;
a fifth mode in which the data entity includes a payload of one NAL unit at a specified position within the set of NAL units;
2. The method of claim 1 , comprising one or more of:
請求項2に記載の方法。 3. The method of claim 2 , wherein in the second or third mode, the one NAL unit is the first NAL unit in the sample.
請求項2に記載の方法。 3. The method of claim 2 , wherein in the second or third mode, the one NAL unit is the last NAL unit in the sample.
メディアコンテンツをメディアデータに符号化することと、
請求項1に記載の方法に従って、前記メディアデータを複数のトラックにカプセル化することと、
前記カプセル化されたメディアデータを含む少なくとも1つのメディアファイルを生成することと、
を含む方法。 A method of generating a media file, the method comprising:
encoding media content into media data;
encapsulating the media data into a plurality of tracks according to the method of claim 1;
generating at least one media file including the encapsulated media data;
method including.
請求項5に記載の方法に従ってサーバ機器によってメディアファイルを生成することと、
前記生成されたメディアファイルをクライアント機器に送信することと、
を含む方法。 A method of transmitting a media file, the method comprising:
generating a media file by a server device according to the method of claim 5 ;
transmitting the generated media file to a client device;
method including.
第2のトラックに含まれるサンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットを参照する参照構造を有する抽出器を含む第1のトラックを前記メディアファイルから取得することと、
それぞれ1つまたは複数のNALユニットのセットを含む複数のサンプルを含む前記第2のトラックを前記メディアファイルから取得することと、
前記抽出器に含まれるコピーモード属性によって識別されるデータエンティティを前記第2のトラックのサンプルから取得することと、
を含み、
前記コピーモード属性は、前記サンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットに含まれるデータエンティティを識別してコピーするモードを、予め定められた複数のモードから指定する情報を含む
方法。 A method of parsing a media file to generate media data, the method comprising:
Obtaining a first track from the media file that includes an extractor having a reference structure that references a sample included in a second track or one or more NAL units included within the sample ;
obtaining the second track from the media file including a plurality of samples each including a set of one or more NAL units ;
retrieving data entities identified by a copy mode attribute included in the extractor from a sample of the second track;
including;
The copy mode attribute includes information that specifies, from a plurality of predetermined modes, a mode for identifying and copying a data entity included in the sample or one or more NAL units included in the sample.
Method.
それぞれ1つまたは複数のNALユニットのセットを含む複数のサンプルを含む第1のトラックを前記メディアファイルに含める手段と、
前記第1のトラックに含まれるサンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットを参照する参照構造を有する抽出器を含む第2のトラックを前記メディアファイルに含める手段と、
を備え、
前記抽出器は、前記サンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットに含まれるデータエンティティを識別してコピーするモードを、予め定められた複数のモードから指定する情報を含むコピーモード属性を含む
ように構成されているコンピュータデバイス。 A computing device that encapsulates media data into a media file, the computing device comprising:
means for including in said media file a first track including a plurality of samples each including a set of one or more NAL units ;
means for including in the media file a second track that includes an extractor having a reference structure that references a sample contained in the first track or one or more NAL units contained within the sample;
Equipped with
The extractor identifies and copies a data entity included in the sample or one or more NAL units included in the sample , including information that specifies a mode for copying from a plurality of predetermined modes. Contains mode attributes
A computer device configured to:
第2のトラックに含まれるサンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットを参照する参照構造を有する抽出器を含む第1のトラックを前記メディアファイルから取得する手段と、
それぞれ1つまたは複数のNALユニットのセットを含む複数のサンプルを含む前記第2のトラックを前記メディアファイルから取得する手段と、
前記抽出器に含まれるコピーモード属性によって識別されるデータエンティティを前記第2のトラックのサンプルから取得する手段と、
を備え、
前記コピーモード属性は、前記サンプルまたは当該サンプル内に含まれる1つまたは複数のNALユニットに含まれるデータエンティティを識別してコピーするモードを、予め定められた複数のモードから指定する情報を含む
ように構成されているコンピュータデバイス。 A computing device that parses a media file to generate media data, the computing device comprising:
means for obtaining a first track from the media file that includes an extractor having a reference structure that references a sample contained in a second track or one or more NAL units contained within the sample;
means for obtaining the second track from the media file, the second track including a plurality of samples each including a set of one or more NAL units ;
means for obtaining data entities identified by a copy mode attribute included in the extractor from a sample of the second track;
Equipped with
The copy mode attribute includes information that specifies, from a plurality of predetermined modes, a mode for identifying and copying a data entity included in the sample or one or more NAL units included in the sample.
A computer device configured to:
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1819501.6 | 2018-11-29 | ||
| GB1819501.6A GB2579389B (en) | 2018-11-29 | 2018-11-29 | Method, device and computer program for encapsulating media data into a media file |
| PCT/EP2019/082192 WO2020109154A1 (en) | 2018-11-29 | 2019-11-22 | Method, device, and computer program for encapsulating media data into a media file |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2022511639A JP2022511639A (en) | 2022-02-01 |
| JP2022511639A5 JP2022511639A5 (en) | 2022-11-22 |
| JP7444872B2 true JP7444872B2 (en) | 2024-03-06 |
Family
ID=65024955
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021522002A Active JP7444872B2 (en) | 2018-11-29 | 2019-11-22 | Methods, apparatus, and computer programs for encapsulating media data into media files |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US11638066B2 (en) |
| EP (1) | EP3888375A1 (en) |
| JP (1) | JP7444872B2 (en) |
| CN (1) | CN113170239B (en) |
| GB (1) | GB2579389B (en) |
| WO (1) | WO2020109154A1 (en) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020145668A1 (en) * | 2019-01-08 | 2020-07-16 | 삼성전자주식회사 | Method for processing and transmitting three-dimensional content |
| WO2021047820A1 (en) * | 2019-09-13 | 2021-03-18 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
| US11589032B2 (en) * | 2020-01-07 | 2023-02-21 | Mediatek Singapore Pte. Ltd. | Methods and apparatus for using track derivations to generate new tracks for network based media processing applications |
| EP3972269A1 (en) * | 2020-09-17 | 2022-03-23 | Lemon Inc. | Subpicture entity groups in video coding |
| US11671627B2 (en) * | 2020-09-17 | 2023-06-06 | Lemon Inc. | Operating point entity group signaling in coded video |
| EP3972278A1 (en) | 2020-09-17 | 2022-03-23 | Lemon Inc. | Subpicture tracks in coded video |
| WO2022131870A1 (en) * | 2020-12-17 | 2022-06-23 | 엘지전자 주식회사 | Method and device for generating/receiving media file including nal unit array information, and method for transmitting media file |
| US20220201308A1 (en) * | 2020-12-18 | 2022-06-23 | Lg Electronics Inc. | Media file processing method and device therefor |
| CN115243053B (en) * | 2021-04-22 | 2024-04-16 | 腾讯科技(深圳)有限公司 | Point cloud encoding and decoding method and related equipment |
| JP2024525266A (en) * | 2021-06-29 | 2024-07-12 | キヤノン株式会社 | Method, apparatus and computer program for dynamically encapsulating media content data - Patents.com |
| CN113905255B (en) * | 2021-09-28 | 2022-08-02 | 腾讯科技(深圳)有限公司 | Media data editing method, media data packaging method and related equipment |
| CN116456166A (en) * | 2022-01-10 | 2023-07-18 | 腾讯科技(深圳)有限公司 | Data processing method of media data and related equipment |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013505646A (en) | 2009-09-22 | 2013-02-14 | クゥアルコム・インコーポレイテッド | Media extractor track for file format track selection |
| WO2017029400A1 (en) | 2015-08-20 | 2017-02-23 | Koninklijke Kpn N.V. | Forming one or more tile streams on the basis of one or more video streams |
| WO2017140945A1 (en) | 2016-02-17 | 2017-08-24 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
| JP2018524877A (en) | 2015-06-16 | 2018-08-30 | キヤノン株式会社 | Method, device, and computer program capable of dynamically setting operation base point descriptor for acquiring media data and metadata from encapsulated bitstream |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8976871B2 (en) * | 2009-09-16 | 2015-03-10 | Qualcomm Incorporated | Media extractor tracks for file format track selection |
| CN103098484A (en) | 2010-06-14 | 2013-05-08 | 汤姆森许可贸易公司 | Method and apparatus for encapsulating coded multi-component video |
| EP2946566B1 (en) * | 2013-01-18 | 2021-09-01 | Canon Kabushiki Kaisha | Method, device, and computer program for encapsulating partitioned timed media data |
| US9621919B2 (en) * | 2013-10-23 | 2017-04-11 | Qualcomm Incorporated | Multi-layer video file format designs |
| GB2522014A (en) * | 2014-01-07 | 2015-07-15 | Canon Kk | Method, device, and computer program for encoding inter-layer dependencies in encapsulating multi-layer partitioned timed media data |
| GB2524531B (en) * | 2014-03-25 | 2018-02-07 | Canon Kk | Methods, devices, and computer programs for improving streaming of partitioned timed media data |
| EP3360330B1 (en) * | 2015-10-08 | 2021-03-24 | Koninklijke KPN N.V. | Enhancing a region of interest in video frames of a video stream |
-
2018
- 2018-11-29 GB GB1819501.6A patent/GB2579389B/en active Active
-
2019
- 2019-11-22 CN CN201980078791.0A patent/CN113170239B/en active Active
- 2019-11-22 WO PCT/EP2019/082192 patent/WO2020109154A1/en not_active Ceased
- 2019-11-22 US US17/291,863 patent/US11638066B2/en active Active
- 2019-11-22 EP EP19808782.7A patent/EP3888375A1/en active Pending
- 2019-11-22 JP JP2021522002A patent/JP7444872B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013505646A (en) | 2009-09-22 | 2013-02-14 | クゥアルコム・インコーポレイテッド | Media extractor track for file format track selection |
| JP2018524877A (en) | 2015-06-16 | 2018-08-30 | キヤノン株式会社 | Method, device, and computer program capable of dynamically setting operation base point descriptor for acquiring media data and metadata from encapsulated bitstream |
| WO2017029400A1 (en) | 2015-08-20 | 2017-02-23 | Koninklijke Kpn N.V. | Forming one or more tile streams on the basis of one or more video streams |
| WO2017140945A1 (en) | 2016-02-17 | 2017-08-24 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022511639A (en) | 2022-02-01 |
| US11638066B2 (en) | 2023-04-25 |
| WO2020109154A1 (en) | 2020-06-04 |
| US20220014827A1 (en) | 2022-01-13 |
| GB2579389A (en) | 2020-06-24 |
| GB2579389B (en) | 2022-07-27 |
| GB201819501D0 (en) | 2019-01-16 |
| EP3888375A1 (en) | 2021-10-06 |
| CN113170239B (en) | 2024-03-22 |
| CN113170239A (en) | 2021-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7444872B2 (en) | Methods, apparatus, and computer programs for encapsulating media data into media files | |
| JP7472220B2 (en) | Method, program, and device | |
| CN110870321B (en) | Region-wise packaging, content coverage, and signaling frame packaging for media content | |
| JP6572222B2 (en) | Media file generation method, generation device, and program | |
| JP6743059B2 (en) | Method, device, and computer program capable of dynamically setting a motion origin descriptor for obtaining media data and metadata from an encapsulated bitstream | |
| CN103069828B (en) | Provides a sequence dataset for streaming video data | |
| CN113574903B (en) | Method and apparatus for late binding in media content | |
| CN111034203A (en) | Processing omnidirectional media with dynamic zone-by-zone encapsulation | |
| US12587719B2 (en) | Method, device, and computer program for dynamically encapsulating media content data | |
| US12439105B2 (en) | Method, device, and computer program for encapsulating media data into a media file | |
| WO2025152050A1 (en) | Data encapsulation method and electronic device | |
| HK40064165B (en) | Method and apparatus for late binding in media content | |
| HK40068430B (en) | Apparatus and method for video encoding and decoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221114 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221114 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231018 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231027 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231226 |
|
| 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: 20240126 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240222 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 7444872 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |