Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7444872B2 - Methods, apparatus, and computer programs for encapsulating media data into media files - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2021522002A
Other languages
Japanese (ja)
Other versions
JP2022511639A (en
JP2022511639A5 (en
Inventor
フランク ドゥヌアル,
ナエル ウエドラオゴ,
フレデリック マゼ,
フェーブル, ジャン ル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2022511639A publication Critical patent/JP2022511639A/en
Publication of JP2022511639A5 publication Critical patent/JP2022511639A5/ja
Application granted granted Critical
Publication of JP7444872B2 publication Critical patent/JP7444872B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • H04N21/2358Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

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 illustrates an example system including an encapsulation/decapsulation module adapted to implement embodiments of the present invention. FIG. NAL(ネットワーク抽象層)ユニットの構造例を示す図である。FIG. 2 is a diagram illustrating an example structure of a NAL (Network Abstraction Layer) unit. ISOベースメディアファイルフォーマットに基づくビデオメディアサンプルの構造例を示す図である。1 is a diagram illustrating an example structure of a video media sample based on the ISO base media file format; FIG. ISO/IEC14496-15に準拠した抽出器および集約器の構造例を示す図である。FIG. 2 is a diagram showing an example of the structure of an extractor and aggregator based on ISO/IEC14496-15. 本発明の実施形態によるカプセル化処理を示す図である。FIG. 3 is a diagram illustrating encapsulation processing according to an embodiment of the invention. 本発明の実施形態によるデカプセル化処理を示す図である。FIG. 3 is a diagram illustrating decapsulation processing according to an embodiment of the present invention. 本発明の実施形態に基づく、トラックグループからのデータ抽出を伴うメディアデータのカプセル化の例を示す図である。FIG. 3 illustrates an example of encapsulation of media data with data extraction from track groups in accordance with an embodiment of the present invention. サーバからクライアントへ、独立して符号化されたビットストリームを取り込み、処理し、カプセル化し、送信し、レンダリングするシステム例を示す図である。FIG. 1 is an illustration of an example system that captures, processes, encapsulates, transmits, and renders independently encoded bitstreams from a server to a client. 2Dビデオを複数のトラックに符号化する処理を説明する図である。FIG. 2 is a diagram illustrating a process of encoding 2D video into multiple tracks. 2Dの空間的な関係を記述するために、複数のトラックグループを含むサブピクチャートラックカプセル化の例を説明する図である。FIG. 3 is a diagram illustrating an example of sub-picture track encapsulation including multiple track groups to describe 2D spatial relationships. トラックのセットまたはグループからの明示的な再構成の例を示す図である。FIG. 3 illustrates an example of explicit reconstruction from a set or group of tracks. トラックのセットまたはグループからの明示的な再構成の例を示す図である。FIG. 3 illustrates an example of explicit reconstruction from a set or group of tracks. 本発明の1つまたは複数の実施形態を実現するためのコンピュータデバイスの概略ブロック図である。1 is a schematic block diagram of a computing device for implementing one or more embodiments of the invention; FIG.

図1は、本発明の実施形態を具現化するために適応された例示的なシステム191および195を示している。システム191は、通信ネットワーク199に接続されたカプセル化モジュール150を備える。システム195は、通信ネットワーク199に接続されたデカプセル化モジュール100を備える。 FIG. 1 depicts exemplary systems 191 and 195 adapted to implement embodiments of the present invention. System 191 includes an encapsulation module 150 connected to communication network 199. System 195 includes a decapsulation module 100 connected to communication network 199.

一実施形態によれば、システム191は、コンテンツ(例えば、ビデオおよび/またはオーディオコンテンツ)を、ストリーミングまたはストレージのために処理するためのものである。システム191は、オリジナルのシーケンス画像151を含むコンテンツを取得/受信し、メディア符号化器(例えばビデオ符号化器)を用いてシーケンス画像をメディアデータ(すなわちビットストリーム)に符号化し、カプセル化モジュール150を用いてメディアデータをメディアファイル101にカプセル化する。カプセル化モジュール150は、メディアデータをカプセル化するライタまたはパッケージャの少なくとも一方を含む。メディア符号化器は、受信したコンテンツを符号化するために、カプセル化モジュール150内に実装されていてもよいし、カプセル化モジュール150とは別に設けられていてもよい。したがって、カプセル化モジュール150は、すでに符号化されたコンテンツ(メディアデータ)をカプセル化するためだけに専用化することができる。 According to one embodiment, system 191 is for processing content (eg, video and/or audio content) for streaming or storage. System 191 obtains/receives content including original sequence images 151 and encodes the sequence images into media data (i.e., bitstream) using a media encoder (e.g., a video encoder) and encapsulation module 150. encapsulates media data into a media file 101 using Encapsulation module 150 includes at least one of a writer and a packager that encapsulates media data. A media encoder may be implemented within or separate from encapsulation module 150 to encode received content. Therefore, the encapsulation module 150 can be dedicated only to encapsulating already encoded content (media data).

一実施形態によれば、システム195は、ユーザに表示/出力するためのメディアデータを処理するためのものである。システム195は、通信ネットワーク199を介してメディアファイル101を取得/受信し、デカプセル化モジュール100を用いてメディアファイル101をデカプセル化してメディアデータを取得し、メディア復号化器を用いてメディアデータをオーディオおよび/またはビデオコンテンツ(信号)に復号する。デカプセル化モジュール100は、パーサまたはプレーヤの少なくとも一方を含む。メディア復号化器は、メディアデータ(ビットストリーム)を復号化するために、デカプセル化モジュール100内に実装されていてもよいし、デカプセル化モジュール100とは別個に設けられていてもよい。 According to one embodiment, system 195 is for processing media data for display/output to a user. The system 195 obtains/receives a media file 101 via a communication network 199, decapsulates the media file 101 using a decapsulation module 100 to obtain media data, and uses a media decoder to convert the media data into audio. and/or decoding into video content (signal). Decapsulation module 100 includes at least one of a parser and a player. The media decoder may be implemented within the decapsulation module 100 or may be provided separately from the decapsulation module 100 to decode media data (bitstream).

メディアファイル101は、いくつかの方法でモジュール100のパーサまたはプレーヤに伝達されるが、例えば、カプセル化モジュール150のライタまたはパッケージャによって事前に生成され、通信ネットワーク199内の記憶装置(例えば、サーバまたはクラウドストレージ)にデータとして格納され、ユーザが記憶装置からその中に符号化されたコンテンツを要求するまでの間、格納されていてもよい。コンテンツが要求されると、データは記憶装置からデカプセル化モジュール100に通信/ストリームされる。 Media file 101 may be communicated to a parser or player of module 100 in several ways, but may be, for example, previously generated by a writer or packager of encapsulation module 150 and stored on a storage device within communications network 199 (e.g., on a server or The content may be stored as data in a cloud storage until a user requests the content encoded therein from the storage device. When content is requested, data is communicated/streamed from the storage device to the decapsulation module 100.

また、システム191は、記憶装置に記憶されたコンテンツのコンテンツ情報(例えば、コンテンツのタイトルや、コンテンツを識別、選択、要求するための他のメタ/記憶場所データ)をユーザに提供/ストリーミングするためのコンテンツ提供装置を含んでもよい。また、コンテンツ提供装置は、記憶装置からユーザ端末に配信/ストリーミングされることになるコンテンツに対するユーザ要求を受信し、処理するように適応されてもよい。 The system 191 also provides/streams content information for content stored on the storage device (e.g., content title and other meta/storage location data for identifying, selecting, and requesting content) to the user. The content providing device may also be included. The content providing device may also be adapted to receive and process user requests for content to be delivered/streamed from the storage device to the user terminal.

あるいは、カプセル化モジュール150は、メディアファイル101を生成し、ユーザがコンテンツを要求したときに、それを直接、デカプセル化モジュール100に通信/ストリーミングしてもよい。その後、デカプセル化モジュール100は、メディアファイル101を受信し、本発明の実施形態によるメディアデータのデカプセル化および復号化を実行して、ビデオ信号109および/またはオーディオ信号を取得/生成し、これをユーザ端末が使用して、要求されたコンテンツをユーザに提供する。 Alternatively, encapsulation module 150 may generate media file 101 and communicate/stream it directly to decapsulation module 100 when a user requests content. Thereafter, the decapsulation module 100 receives the media file 101 and performs decapsulation and decoding of the media data according to embodiments of the present invention to obtain/generate a video signal 109 and/or an audio signal, which is Used by the user terminal to provide the requested content to the user.

ユーザは、モジュール100を構成するユーザ端末、またはモジュール100と通信する手段を有するユーザ端末のユーザインタフェースを介して、オーディオ/ビデオコンテンツ(信号)にアクセスする。このようなユーザ端末は、コンピュータ、携帯電話、タブレット、またはユーザにコンテンツを提供/表示することができる他のタイプのデバイスであってもよい。 A user accesses audio/video content (signals) via a user interface of a user terminal that makes up the module 100 or has means for communicating with the module 100. Such user terminal may be a computer, mobile phone, tablet, or other type of device capable of providing/displaying content to a user.

一実施態様によれば、メディアファイル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. Media file 101 may correspond to one media file (indicated by the file type box "ftyp") or one or more segment files (indicated by the segment type box "styp"). According to ISOBMFF, a media file 101 includes two types of boxes: a "media data box (mdat)" that contains media data, and a "metadata box" that contains metadata that defines the placement and timing of media data. It is said that it is okay to stay.

ビデオ符号化器は、ビデオ規格を用いてビデオコンテンツを符号化し、符号化されたビデオビットストリーム(メディアデータ)を生成する。ビデオの符号化/復号化(コーデック)規格は、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) unit 200 used in a video codec such as H.265.

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 NAL unit header 201 and a NAL unit payload 202. The NAL unit header 201 is of fixed length and provides general information of the NAL unit. For example, in HEVC, the NAL unit header 201 indicates each NAL unit's type, layer identifier, and temporal sublayer identifier. There are mainly two types of NAL units 200: video coding layer NAL units (VCLNAL) and non-VCLNAL units. A VCLNAL unit typically includes encoded slice segments 205 in its payload. Non-VCLNAL units typically include parameter sets (ie, configuration information) or supplemental enhancement information messages.

符号化されたスライスセグメント205は、HEVCビットストリームにおいて、slice_segment_headerまたは「スライスヘッダ」206の後にslice_segment_dataまたは「スライスデータ」207が続くように符号化される。スライスセグメントは、整数個の連続した(ラスタースキャン順の)符号化ツリーユニット(すなわちピクチャ内のブロック)を含む。スライスの形状は必ずしも矩形ではない(そのため、空間的なサブパートの表現としてはタイルよりも適切ではない)。ビデオ圧縮フォーマットは、アクセスユニットを、符号化されたピクチャに対応する、復号化順に連続したNALユニットの集合と定義している。 The encoded slice segment 205 is encoded such that a slice_segment_header or "slice header" 206 is followed by a slice_segment_data or "slice data" 207 in the HEVC bitstream. A slice segment includes an integer number of consecutive (in raster scan order) encoding tree units (ie, blocks within a picture). Slices are not necessarily rectangular in shape (and are therefore less suitable than tiles for representing spatial subparts). Video compression formats define an access unit as a set of consecutive NAL units in decoding order that correspond to an encoded picture.

図2bは、ISOベースメディアファイルフォーマットに基づくメディア(ビデオ)サンプル210の構造例を示している。 FIG. 2b shows an example structure of a media (video) sample 210 based on the ISO base media file format.

メディアサンプルとは、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 more NAL units 212 that correspond to an access unit or a part of an access unit. Each NAL unit 212 is preceded by a NAL unit length field 211. For example, for a single layer video, the samples correspond to encoded pictures. In the case of layered video, the samples may correspond to part of an access unit, for example a NAL unit for the base layer.

サンプルサイズ(バイト単位)は、サンプルサイズボックス「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) track 300, corresponding to a media stream (e.g. a compressed video bitstream), is composed of media (e.g. video) samples 301, each media sample as illustrated in FIG. 2b. , including a set of one or more NAL units. The number of NAL units within a sample may vary from one to another. A second track 320, e.g. referred to as a reconstruction, synthesis, reference or extraction track, uses a NAL unit to reference data from another track, here the first track 300, as illustrated by arrow 310. 323 and an extractor NAL unit 322 . Samples 321 from current track 320 may then be reconstructed by extracting data from track 300 and concatenating with data 323 from current track 320.

再構成トラック320のいくつかのサンプル321は、抽出器のみまたはデータのみを含むことがあることに留意されたい。また、抽出器またはNALユニットの数は、サンプル321ごとに異なっていてもよい。抽出器322は、抽出器を含むトラック以外のトラックからNALユニットを効率的に抽出するための構造である。抽出器NALユニットは、特定のNALユニットタイプ値によって識別される(特定の値は、VLCおよび非VLCのNALユニットに割り当てられたタイプ値と衝突しないように、使用中のコーデックに依存してもよい)。 Note that some samples 321 of the reconstruction track 320 may contain only extractors or only data. Also, the number of extractors or NAL units may be different for each sample 321. The extractor 322 is a structure for efficiently extracting NAL units from tracks other than the track containing the extractor. The extractor NAL unit is identified by a specific NAL unit type value (the specific value may depend on the codec in use so as not to conflict with type values assigned to VLC and non-VLC NAL units). ).

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 encapsulation module 150 shown in FIG. 1 to encapsulate media data.

ステップ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 media file 101 is generated as one media file or multiple media segments; whether the media file includes one track or multiple tracks of a video stream; This may include determining settings for dividing the video track into parts, views, or layers, etc.

複数のトラックが含まれる場合、カプセル化モジュールは、ステップ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 step 400. Thus, a track that is constructed with reference to one or more other tracks contains track references to those one or more tracks. Track references may be of different types to describe the type of relationship or dependency between the referencing track and the referenced track. The type of track reference can be encoded using a four letter code. For example, according to ISO/IEC 14496-15, the type code "scal" specifies a track that contains an extractor that references another track from which data is extracted.

カプセル化モジュールが初期化されると、ステップ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 step 401. The first NAL unit corresponding to the parameter set may be embedded in the decoder configuration record structure depending on the initialization (in-band parameter set or out-of-band parameter set) at step 400. These parameter sets can be inspected by the writer or packager to learn details about the bitstream splitting. For example, it can be determined whether the HEVC bitstream is a tiled HEVC bitstream by checking the SEI (Supplementary Enhancement Information) message of the temporal motion constraint tile set or the presence of the tile in the picture parameter set. Once a NAL unit is read in step 401, the writer checks in step 402 whether it corresponds to a new sample. This can be done, for example, by decoding the picture order count or by checking whether the slice corresponding to the NAL unit is the first slice of the picture. If yes, the previous sample is determined in step 403 by setting the parameters of the sample description (size, position within the media data, properties within some sample groups...). Next, in step 404, it is checked whether the current NAL unit should be included in the media portion of the track, referenced from another track, or partially modified. This is determined from the track dependencies or relationships set in the initialization step 400. If the NAL unit is not referenced, the length of the NAL unit is first inserted into the media data "mdat" box, followed by the header and payload of the NAL unit (step 405). The size of the current sample is then incremented by the number of bytes in these three structures, and the writer or packager checks the next NAL unit from the video bitstream in step 406. If this is not the last NAL unit, processing repeats to step 401 until all NAL units have been processed.

NALユニットが参照によりメディアファイルに含まれる場合(テスト404で真)、ライタまたはパッケージャは、ステップ407で、抽出器を含め、本発明の実施形態に従って抽出器の属性を設定する。特に、このプロセスは、「mdat」ボックス内のバイト単位の抽出器構造体のサイズを有するNALユニット長フィールドを付加し、抽出器のNALユニットを作成する。抽出器は、メディアサンプルにおいて、メディアサンプルに含まれる1つ以上のNALユニットに対して、参照されるデータエンティティを識別するコピーモード属性「copy_mode」を含む。コピーモード属性は、ライタまたはパッケージャがステップ400でどのように初期化されたかに応じて、異なる値を取る可能性がある。 If the NAL unit is included by reference in the media file (test 404 is true), the writer or packager includes an extractor and sets the attributes of the extractor in accordance with an embodiment of the invention in step 407. In particular, this process adds a NAL unit length field with the size of the extractor structure in bytes in the "mdat" box and creates the extractor's NAL unit. The extractor includes a copy mode attribute "copy_mode" in the media sample that identifies a referenced data entity for one or more NAL units included in the media sample. The copy mode attribute may take on different values depending on how the writer or packager was initialized at step 400.

一実施形態では、ステップ400で実行された初期化の結果、再構成トラックが異なるトラックからのビデオサンプルを合成するために使用される場合、コピーモード属性が「サンプル」モードに設定される。このモードでは、データエンティティは、サンプルに含まれるすべてのNALユニットのセットを含む。 In one embodiment, the initialization performed in step 400 results in the copy mode attribute being set to "sample" mode if the reconstruction track is used to composite video samples from different tracks. In this mode, the data entity contains the set of all NAL units included in the sample.

一実施形態では、ステップ400で実行された初期化またはビットストリーム検査が、ビデオビットストリームがタイル化されており(例えば、動き制約タイルセットを有するHEVC)、ユーザまたはアプリケーションがタイルの再配置を指示したことを示している場合、コピーモード属性は「NALU」モードに設定される。このモードでは、データエンティティは、サンプルに含まれる1つの所与のNALユニットを含む。 In one embodiment, the initialization or bitstream inspection performed in step 400 is performed when the video bitstream is tiled (e.g., HEVC with a motion constrained tileset) and the user or application directs the repositioning of the tiles. If so, the copy mode attribute is set to "NALU" mode. In this mode, the data entity contains one given NAL unit included in the sample.

一実装形態では、ステップ400で実行された初期化の結果、タイル再配置がビットストリーム内のタイル位置の修正を必要とする場合、ライタは、タイル位置がスライスヘッダ内に符号化されているか、NALユニットヘッダ内に符号化されているかに応じて、コピーモード属性を「slice_data」モードまたは「NALU_payload」モードに設定したインライン構築器+抽出器を用いて、書き換え命令を提供することができる。これらのモードでは、データエンティティは、サンプルに含まれる1つの所与のNALユニットのペイロードまたはスライスデータを含む。これらのモードでは、インライン構築器の命令で上書きされてしまうような無用なデータをコピーしないで済むという利点がある。 In one implementation, if as a result of the initialization performed in step 400, the tile relocation requires modification of the tile position in the bitstream, the writer determines whether the tile position is encoded in the slice header or not. The rewrite instructions can be provided using an inline constructor+extractor with the copy mode attribute set to "slice_data" mode or "NALU_payload" mode, depending on whether it is encoded in the NAL unit header. In these modes, the data entity includes the payload or slice data of one given NAL unit included in the sample. The advantage of these modes is that they avoid copying unnecessary data that would otherwise be overwritten by inline constructor instructions.

メディアデータパート(「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 step 406. Upon reaching the last NAL unit, the writer finalizes the media file at step 408, for example by writing the size of the last sample, index table, user data, or any metadata on the media.

初期化ステップ400がセグメントへのカプセル化を示している場合、新しいサンプルを開始する前に、セグメント持続時間に達しているかどうかをチェックするために、追加のテストが実行される(不図示)ことに留意されたい。セグメントの持続時間に達した場合、セグメントは確定され、プレーヤによって使用されるか、または配信ネットワークを介して送信される準備が整う。セグメントの継続時間に達していない場合、ライタやパッケージャは、サンプルとNALユニットを繰り返す。 If the initialization step 400 indicates encapsulation into a segment, an additional test is performed (not shown) to check whether the segment duration has been reached before starting a new sample. Please note that. When the segment's duration is reached, the segment is finalized and ready for use by the player or transmitted via the distribution network. If the segment duration has not been reached, the writer or packager repeats the samples and NAL units.

図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 decapsulation module 100 illustrated in FIG. 1 to decapsulate the media data.

ステップ410において、プレーヤはまず、メディアファイル101(1つのファイルとして、または連続したセグメントとして)を受け取る。このファイルは、パーサまたはプレーヤのメモリに格納されていてもよいし、ネットワークソケットから読み込まれてもよい。 In step 410, the player first receives a media file 101 (either as a single file or as a continuous segment). This file may be stored in the parser or player's memory, or read from a network socket.

まず、ステップ411で初期化データ、典型的には「moov」ボックスとそのサブボックスがパースされ、メディアファイルのパラメータ/設定(トラック数、トラックの関係と依存関係、サンプルの種類、持続時間、位置とサイズなど)を知る。 First, in step 411 initialization data, typically a "moov" box and its subboxes, are parsed and the parameters/settings of the media file (number of tracks, track relationships and dependencies, sample type, duration, position) are parsed. and size).

ステップ411で決定されたトラックのセットから、プレーヤまたはパーサは、ステップ412で、レンダリングする1つまたは複数のトラックを選択する。そして、メディアデータボックスをサンプルごとにパースすることで再構築を開始する。相互依存のトラックの場合、メディアデータのパースは、サンプル位置情報を用いて、参照されるトラックから参照するトラックへのトラック参照に従って行われ、例えば、サンプルテーブルボックスで利用可能なサンプルからチャンクボックス「stsc」およびチャンクオフセットボックス「stco」への参照が行われる。 From the set of tracks determined in step 411, the player or parser selects one or more tracks to render in step 412. Then, reconstruction begins by parsing the media data box sample by sample. In the case of interdependent tracks, parsing of media data is done according to the track references from the referenced track to the referencing track using the sample position information, e.g. from the samples available in the sample table box to the chunk box " Reference is made to the chunk offset box "stsc" and the chunk offset box "stco".

パーサやプレーヤは、ファイルの最後に到達するまで、サンプルを繰り返します(テスト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 step 416. If the NAL unit is not an extractor, the parser appends bytes corresponding to the NAL unit payload to the reconstructed bitstream (media data) provided to the media decoder for decoding in step 417. do. After step 417, the process iterates through the next NAL unit (proceeding to step 414) until the current sample size is reached.

コピーモード属性の値に応じて、パーサは、参照されるトラックからサンプル、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 steps 407 and 415 of the encapsulation/decapsulation process of Figures 4a and 4b.

コピーモード属性の実装は、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 length field 211 preceding the NAL unit 212 of the media data box "mdat".
- "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 track reference 501 of type "scal" to two track groups 520 and 530 (with track_group_id=11 and 22, respectively). These two track groups may have track_group_type set to "alte" to indicate that the tracks are substitutes for each other, or to select only one track from the track group. may have other grouping types with semantics that allow the decision to always be made. In this example, each of these track groups declares two alternative tracks 521, 522 and 531, 532 (tracks with track_ID=111, 112 and tracks with track_ID=221, 222, respectively). For example, tracks within a track group describe the same video but are encoded at different quality levels. In this example, a sample at time 502t of extractor track 500 is a sample at time t from one track of first track group 520 and a sample at time t from one track of second track group 530. It consists of a concatenation of. For each track group 520 or 530, writer 150 may cause sample 502 extractor 503 to extract a sample from any one of the alternative tracks within track group 520, and sample 502 extractor 504 may extract a sample from any one of the alternative tracks within track group 520. 530 indicates that samples may be extracted from any one of the alternative tracks within 530. The copy_mode of extractors 503 and 504 is set to a value corresponding to the "sample" copy mode.

トラックグループからのそのような抽出器の解決には、(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 packager 150 populates this list in step 407 in response to the initialization information obtained in step 400, such as instructions on how to group the tracks listed in the "trgr" box.

ここで注意したいのは、このパラメータは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 track_ID 1, 12, 23 are part of the same track group, index 1 would provide track_ID=1, index 2 would provide track_ID=12, and so on. .. .. This also works if track equivalence is signaled via a specific track reference type. The index is also based on an ordered list of track_IDs referenced by a particular track reference type. There are scenarios where placing random access points (such as intra-decoding refresh (IDR) frames) at different times on alternate tracks can increase switching points for dynamic content adaptation and reduce switching latency.

もちろん、トラックグループを参照する新しい構築器にも、同じパラメータを適用することができる(ここでは、時間に沿ったバージョンの構築器、つまり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 length field 211 preceding the NAL unit 212 of the media data box "mdat".
- 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 packager 150 may use a particular constructor in the encapsulation step 407, particularly if the initialization step 400 indicates that an alternative encoded bitstream or representation of the original sequence 151 exists. Such an extractor can be used. A new extractor is created so that this new constructor is interoperable between the file/segment encapsulation means 150 (e.g. an mp4 writer) and the file/segment decapsulation means 100 (e.g. an mp4 reader). It is proposed to include a new section in ISO/IEC 14496-15 that defines: This SampleConstructorFromTrackGroup can also embed additional parameters, such as a parameter or flag indicating whether the random access points are aligned across tracks in the track group, and if this parameter or flag is set to false. has an optional parameter that provides a list of tracks that can be switched.

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 example system 60 implementing the encapsulation and transmission method. System 60 can stream media content (eg, 2D images). System 60 includes a server device 601 and a client device 670, and media content is transmitted from server device 601 to client device 670. As shown, media content is a video sequence captured by a camera system 600 and delivered to a client device 670 for display on a 2D screen 675 (TV, tablet, smartphone, head-mounted display...), for example by a user. 6011.

ビデオシーケンスを形成する画像6011は、好ましい実施形態では、符号化手段640によって独立して符号化されるように、分割手段6012によって空間パート6013に分割される。独立して符号化されるとは、ある空間パートが、差分符号化または予測符号化のための参照として、別の空間パートからのデータを使用しないことを意味する。例えば、符号化手段640がHEVC(高効率ビデオ符号化)圧縮フォーマットに基づいている場合、空間パート6013は独立したタイルとして符号化することができる。代替的な実施形態では、空間パート6013は、動き拘束されたタイルとして符号化することができる。符号化手段は、空間パートと同数のビットストリーム、またはN個の独立したサブビットストリームを有する1つのビットストリームを提供する(例えば、独立したタイルを符号化するためにHEVCが使用される場合など)。次に、提供された各ビットストリームまたはサブビットストリームは、ファイル/セグメントカプセル化手段650(カプセル化モジュール150に対応)によって、複数のサブピクチャトラック6014にカプセル化される。サブピクチャトラックは、ピクチャまたは画像のサブ部分、典型的には空間パートまたは矩形領域のデータを埋め込むトラックである。サブピクチャトラックは、他のサブピクチャトラックや、サブピクチャが抽出されたフルピクチャを記述するトラックと関連していてもよい。 The images 6011 forming the video sequence are in a preferred embodiment divided into spatial parts 6013 by the dividing means 6012 so as to be independently encoded by the encoding means 640. Independently encoded means that one spatial part does not use data from another spatial part as a reference for differential or predictive encoding. For example, if the encoding means 640 is based on the HEVC (High Efficiency Video Coding) compression format, the spatial part 6013 can be encoded as an independent tile. In an alternative embodiment, spatial part 6013 may be encoded as a motion-constrained tile. The encoding means provides as many bitstreams as spatial parts, or one bitstream with N independent sub-bitstreams (e.g. when HEVC is used to encode independent tiles). ). Each provided bitstream or sub-bitstream is then encapsulated into a plurality of sub-picture tracks 6014 by a file/segment encapsulation means 650 (corresponding to encapsulation module 150). A sub-picture track is a track that embeds data for a sub-portion of a picture or image, typically a spatial part or a rectangular region. A subpicture track may be associated with other subpicture tracks or tracks that describe the full picture from which the subpicture was extracted.

例えば、サブピクチャトラックは、タイルトラックとすることができる。また、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 client device 670 on digital media. By way of example, the distribution means 660 implements adaptive streaming over HTTP, such as the MPEG standards committee's DASH (Dynamic Adaptive Streaming over HTTP) ("ISO/IEC 23009-1, HTTP Dynamic Adaptive Streaming (DASH), Part 1: Media Presentation Description and Segment Format”). The distribution means may include a streaming server 661 and a streaming client 662. The media presentation description may provide a description and URL of a media segment that corresponds to a track that encapsulates a video sequence containing full images, or may provide a description and URL of a media segment that corresponds only to a subpicture track. Alternatively, a description and URL of the media segment that corresponds to both may be provided. The media presentation description may provide alternative groups of sub-picture tracks, each group allowing a different level of reconstruction of the scene captured by camera 600. The alternative may be a different division (coarse grid or fine grid associated with the division means 6012), for example in terms of resolution, quality or bit rate.

ストリーミングクライアント662による受信時に、カプセル化されたメディアファイルまたはメディアセグメントは、1つまたは複数のデータストリームを抽出するように、ファイル/セグメントデカプセル化手段671(デカプセル化モジュール100に対応)によってパースされる。抽出されたデータストリームは、復号化手段672によって復号化される。ファイル/セグメントデカプセル化手段671によって受信されたISOBMFFファイルまたはセグメントの場合、パースは通常、mp4リーダまたはmp4パーサによって処理される。パーサは、記述的なメタデータから、カプセル化されたビデオビットストリームおよび/またはビデオサブビットストリームを抽出することができる。 Upon receipt by streaming client 662, the encapsulated media file or media segment is parsed by file/segment decapsulation means 671 (corresponding to decapsulation module 100) to extract one or more data streams. Ru. The extracted data stream is decoded by decoding means 672. For ISOBMFF files or segments received by the file/segment decapsulator 671, parsing is typically handled by an mp4 reader or mp4 parser. A parser may extract the encapsulated video bitstream and/or video sub-bitstream from the descriptive metadata.

次に、オプションとして、復号化手段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 streaming client 662.

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 video 6011.

図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 step 700, the server determines whether to encapsulate the encoded input bitstream(s) as a single track or multiple tracks. If single track encapsulation is on (test 700 is "yes"), the video is encapsulated as a single track (step 710), optionally including a NAL that indicates which NAL unit corresponds to which region. With unit mapping. If multiple tracks are to be generated (test 700 is "no"), e.g. if the splitting is performed by means 6012 of FIG. can be added. A composite or reconstructed track makes it possible to provide an entry point or "main" or "default" track for a parser or player. For example, a composite track or a reconstructed track has a valid flag value set in the track header, which is used in the movie and optionally as a preview. Tracks referenced from a composite track may not have these flag values set (other than the track_enable flag value) to hide these tracks from selection by the client, player, or user. If no composite or reconstruction track exists, then in step 730 the encoded media file and each bitstream or sub-bitstream is encapsulated into its own track.

オプションのステップは、ビットストリームまたはサブビットストリームを集めて、元の分割されたものよりも大きな領域を形成することによって、トラックの数を減らすよう構成されてもよい。カプセル化が合成トラックまたは再構成トラックを提供する場合(テスト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 (test 720 is "yes"), two options are possible for the sample reconstruction rule: implicit or explicit reconstruction representation in the media file.

暗黙的な再構成の場合(テスト740が「真」、分岐が「はい」)、ステップ741において、ISO/IEC14496-15で定義されているように、合成または再構成トラックがタイルベーストラック(例えば、「hvt1」サンプルエントリを有するトラック)として提供される。次に、各サブピクチャートラックは、ステップ743において、ISO/IEC14496-15で規定されているように、このタイルベーストラックに応じて、タイルトラックとしてカプセル化される。タイルトラックのための「trif」記述子に加えて、各タイルトラックは、2D空間関係記述のために同じトラックグループの一部として宣言することもできることに注意する。 In the case of implicit reconstruction (test 740 is "true", branch is "yes"), in step 741 the synthesis or reconstruction track is a tile-based track (e.g. , track with "hvt1" sample entry). Each sub-picture track is then encapsulated as a tile track in step 743 according to this tile base track as specified in ISO/IEC 14496-15. Note that in addition to the "trif" descriptor for tile tracks, each tile track can also be declared as part of the same track group for 2D spatial relationship description.

合成または再構成トラックが、明示的な再構成のための抽出器を有するトラックとして提供される場合(テスト740が「偽」、分岐が「いいえ」)、ステップ742において、追加のトラックがメディアファイルに作成される。このトラックは、主に、本発明の実施形態による抽出器を含み、すなわち、サンプル、NALユニットまたはスライスのようなシンタックス構造(データエンティティ)のコピーを可能にする。このトラックはまた、前の実施形態による新しい抽出器または構築器のような代替または同等のトラックのセットまたはグループからの抽出を可能にしてもよい。作成されたトラックは、ステップ744で作成された各サブピクチャートラックを、例えば、「scal」トラック参照タイプで参照する。合成または再構成トラックが提供されない場合(テスト720が「偽」、分岐が「いいえ」)、ステップ730において、メディアのビデオ部分がサブピクチャートラックとしてカプセル化される。なお、合成トラックまたは再構成トラックが存在する場合でも、サブピクチャートラックは、トラックグループメカニズムを介してグループ化され得る。 If the composite or reconstruction track is provided as a track with an extractor for explicit reconstruction (test 740 "false", branch "no"), then in step 742 additional tracks are added to the media file. Created in This track primarily contains an extractor according to an embodiment of the invention, ie allowing copying of syntax structures (data entities) like samples, NAL units or slices. This track may also allow extraction from a set or group of alternative or equivalent tracks, such as a new extractor or constructor according to the previous embodiment. The created tracks reference each sub-picture track created in step 744, for example with a "scal" track reference type. If no composite or reconstruction track is provided (test 720 is "false", branch is "no"), then in step 730 the video portion of the media is encapsulated as a sub-picture track. Note that even if there are composite tracks or reconstruction tracks, sub-picture tracks may be grouped via a track group mechanism.

最後に、ステップ750で、空間的な構成とサブピクチャートラック間の関係のための記述が生成される。元のビデオソース内の各サブピクチャートラックの相対的な位置とサイズを記述するために、2D空間関係記述用のトラックグループボックスが各サブピクチャートラックに追加される。 Finally, at step 750, a description for the spatial organization and relationships between subpicture tracks is generated. A 2D spatial relationship description track group box is added to each sub-picture track to describe the relative position and size of each sub-picture track within the original video source.

図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 track group 81 of type “2dcc” where track_group_id is 10 and source_id 800 is 1. Tracks #5 to #8 belong to another track group 82 of type "2dcc" whose track_group_id is 20 and source_id 800 is 1. Further, there is a third track group 83 of type “2dcc” in which track_group_id is 30 and source_id 801 is 2. Additionally, there are several alternative groups 84-87. All tracks that belong to the same alternate group (i.e. have the same alternate_group identifier in the track header box 'tkhd' or all declare 'trgr' boxes with the same track_group_type and track_group_id) have alternate data Specify a group or collection of tracks containing. Alternative data includes alternative bitrates, codecs, languages, packet sizes, etc. These differentiated attributes can be displayed in the track selection box. Tracks within an alternate group only need to be played or streamed one at a time. In this example, tracks #1, #5, and #9 belong to the same alternate group 84 whose identifier is 100. For example, track #1 and track #5 are alternate tracks with different qualities, and track #9 is an alternate track for track #1 and track #5 from a codec perspective. Tracks #2, #6, and #10 belong to the same alternative group 85 whose identifier is 200. For example, track #2 and track #6 are alternative tracks with different resolutions, and track #10 is It is an alternative track to track #2 and track #6 in terms of frame rate, and so on.

トラックグループ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」モードに設定され、トラックグループを参照する抽出器を含む。 Track groups 81 and 82 have the same source_id 800 and track group 83 has a different source_id 801, which means that the sub-picture tracks belonging to track groups 81 and 82 (with respect to other constraints, i.e. approximately one sub-picture track per alternative group) tracks) can be combined. Conversely, the sub-picture tracks of track group 83 cannot be combined with the sub-picture tracks of track groups 81 and 82 because they do not have the same source_id even if they belong to the same alternative group. The source_id parameter indicates to the player which sub-picture tracks can be part of the same spatial configuration. For a given spatial location, one sub-picture track can be considered visually equivalent to another sub-picture track at the same given spatial location. This is useful for (sub-picture) track selection when media content is provided in multiple tracks. Furthermore, depending on the selected sub-picture track, it can be dynamically adapted (quality/bitrate and resolution) to display the same spatial configuration. The configuration of FIG. 8 allows a writer or packager at 650 (FIG. 6) or 150 (FIG. 1) to create a reconstruction or composition track for arranging spatial portions of different tracks into a larger image for rendering. Can be built. According to embodiments of the invention, reconstructed or composite tracks can reference track groups using the proposed extractor with different copy modes. This is useful, for example, to indicate that the spatial part corresponding to track #1 or track #5 may be reconstructed by either of these two tracks. This is indicated by a writer or packager having an extractor that references alternative groups equal to 100 (84). Similarly, the data of the second spatial part can be extracted from one track of the alternative group 85. Again, the reconstructed track includes an extractor with copy_mode set to "sample" mode and references the track group.

図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 computing device 1000 for implementing one or more embodiments of the invention. Computing device 1000 may be a device such as a microcomputer, a workstation, or a light portable device. The computer device 1000 is
- 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 network interface 1004, typically connected to a communication network through which the digital data to be processed is transmitted and received. Network interface 1004 may be a single network interface or may be comprised of a set of different network interfaces (eg, wired and wireless interfaces or different types of wired or wireless interfaces). Data is written to the network interface for transmission and read from the network interface for reception under the control of a software application running on CPU 1001;
- User interface (UI) 1005 for accepting input from the user and displaying information to the user;
-Hard disk (HD) 1006;
- I/O module 1007 for transmitting and receiving data to and from external devices such as video sources and displays
A communication bus connected to the

実行コードは、読み取り専用メモリ1003、ハードディスク1006、または例えばディスクなどのリムーバブルなデジタル媒体のいずれかに格納され得る。変形例によれば、プログラムの実行可能コードは、実行される前に、ハードディスク1006などの通信装置1000の記憶手段の1つに記憶されるために、ネットワークインタフェース1004を介して、通信ネットワークによって受信することができる。 The executable code may be stored either in read-only memory 1003, on hard disk 1006, or on a removable digital medium, such as a disk. According to a variant, the executable code of the program is received by the communication network via the network interface 1004 in order to be stored in one of the storage means of the communication device 1000, such as a hard disk 1006, before being executed. can do.

中央処理装置1001は、本発明の実施形態によるプログラムまたはプログラムの命令またはソフトウェアコードの一部の実行を制御および指示するように適合されており、これらの命令は前述の記憶手段の1つに格納される。電源投入後、CPU1001は、ソフトウェアアプリケーションに関するメインRAMメモリ1002からの命令を、それらの命令が例えばプログラムROM1003またはハードディスク(HD)1006からロードされた後に実行することができる。このようなソフトウェアアプリケーションは、CPU1001によって実行されると、これまでの図に示したフローチャートのステップを実行させる。 The central processing unit 1001 is adapted to control and direct the execution of a program or instructions of a program or portions of software code according to embodiments of the invention, these instructions being stored in one of the aforementioned storage means. be done. After power-up, CPU 1001 may execute instructions from main RAM memory 1002 for software applications after those instructions are loaded from, for example, program ROM 1003 or hard disk (HD) 1006. Such a software application, when executed by CPU 1001, causes the steps of the flowcharts shown in the previous figures to be executed.

本実施形態では、本装置は、ソフトウェアを使用して本発明を実施するプログラム可能な装置である。しかし、代わりに、本発明をハードウェア(例えば、特定用途向け集積回路(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つまたは複数を含む
請求項に記載の方法。
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のモードにおいて、前記1つのNALユニットは前記サンプル内の最初のNALユニットである
請求項に記載の方法。
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のモードにおいて、前記1つのNALユニットは前記サンプル内の最後のNALユニットである
請求項に記載の方法。
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.
メディアファイルを送信する方法であって、該方法は、
請求項に記載の方法に従ってサーバ機器によってメディアファイルを生成することと、
前記生成されたメディアファイルをクライアント機器に送信することと、
を含む方法。
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:
請求項1乃至の何れか1項に記載の方法を実施するためのコンピュータプログラムの命令を格納したコンピュータ可読記憶媒体。 A computer readable storage medium storing computer program instructions for implementing the method according to any one of claims 1 to 7 . 実行すると請求項1乃至の何れか1項に記載の方法を実行させるコンピュータプログラム。 8. A computer program, which when executed causes the method of any one of claims 1 to 7 to be carried out.
JP2021522002A 2018-11-29 2019-11-22 Methods, apparatus, and computer programs for encapsulating media data into media files Active JP7444872B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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