JP4383721B2 - 多重化分離装置 - Google Patents
多重化分離装置 Download PDFInfo
- Publication number
- JP4383721B2 JP4383721B2 JP2002192487A JP2002192487A JP4383721B2 JP 4383721 B2 JP4383721 B2 JP 4383721B2 JP 2002192487 A JP2002192487 A JP 2002192487A JP 2002192487 A JP2002192487 A JP 2002192487A JP 4383721 B2 JP4383721 B2 JP 4383721B2
- Authority
- JP
- Japan
- Prior art keywords
- atom
- data
- file
- information
- media
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Television Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
【発明の属する技術分野】
この発明は、多重化分離装置及びその方法並びに多重化装置及びその方法に係り、特に、複数の情報が多重化されたデータストリームから各情報を分離する多重化分離装置及びその方法並びに複数のデータストリームを多重化する多重化装置及びその方法に関するものである。
【0002】
【従来の技術】
ISO/IEC14496−l MPEG−4システムパートは、ビデオ、或いは、オーディオなどのストリームの多重化、シーン記述に関して規定をしている(ISO/IEC14496-1, "Information technology-Coding of audio-visual objects-Part l: Systems", 2000)。ここで、MPEG−4ファイル・フォーマット(以下単に、MP4、或いは、MP4ファイル・フォーマットと称する。)は、この規格中で規定されたマルチメディア・コンテンツ用ファイル・フォーマットであり、このフォーマットに従えば、ビデオ或いはオーディオなどの複数のメディア情報を多重化して一つのファイルとして保存することができる。
【0003】
【発明が解決しようとする課題】
しかしながら、上記した従来技術においては、ビデオ或いはオーディオデータストリームのような複数のメディア・データを格納する際に、インターリーブするかどうかについては規定されていない。
【0004】
これに対して、MP4ファイルをサーバーからダウンロードしながら、並行してこのファイルに含まれるビデオ或いはオーディオデータストリームを同時に再生するような場合、複数のメディア・データがデコーダのバッファモデルを満たす範囲でインターリーブされている必要がある。
このため、MP4ファイルをサーバーからダウンロードしながら同時にこのファイルに含まれるビデオ或いはオーディオデータストリームを再生する場合、MP4ファイルの途中まで再生処理が可能であったとしても、最後までメディア・データがインターリーブされている保証がないため、最悪の場合、途中で再生処理が一時停止常態になる等の問題がある。
【0005】
そこで、本発明は、上記の問題を解決するためになされたものであり、その目的は、所定のファイルフォーマットのファイルをダウンロードしながら再生することが可能か否かを容易に判定して多重化分離する多重化分離装置及び方法を提供することにある。
【0006】
また、この発明の目的は、所定のファイルフォーマットのファイルをダウンロードしながら再生することが可能か否かを容易に判定するに適するファイルにメディア・データを多重化する多重化装置及び方法を提供することにある。
【0007】
更に、この発明の目的は、メディア・データをデコードするのに必要なバッファサイズ及びインターリーブされているかどうかを示す情報を格納する多重化装置及びその方法並びにその情報を用いてメディア・データがインターリーブされているか否か並びにデコード処理が可能か否かを容易に判定して多重化分離する多重化分離装置及び方法を提供することにある。
【0008】
【課題を解決するための手段】
この発明によれば、
複数の多重化されたメディア・データを各メディアに分離して再生する多重化分離装置において、
前記複数の多重化されたメディア・データ及び各メディア・データの属性情報を含むファイルを受信する受信手段と、
前記受信したファイルに含まれる各メディア・データを、該ファイルを受信しながら再生する場合、前記受信したファイルに含まれる属性情報に基づいて前記各メディア・データがインターリーブされてファイルに格納されているか否か及び前記ファイルを受信しながら再生する場合に必要となるバッファサイズを抽出する抽出手段と、
前記抽出手段が、各メディア・データがインターリーブされ、かつ抽出したバッファサイズが自己のバッファのサイズ内のときのみファイルを受信しながら再生することが可能と判断し、各メディア・データがインターリーブされていない場合、又は前記抽出手段が抽出したバッファサイズが自己のバッファのサイズに納まらないときはファイルを受信しながら再生することが不可能と判断する判定手段とを備え、
該抽出手段は、受信しながら再生することが可能であると判断した後、前記ファイルに格納されインターリーブによって分割されたメディア・データ毎にバッファサイズが自己のバッファのサイズ内であるかの判断を継続し、メディア・データの再生中に抽出したバッファサイズが自己のバッファのサイズに納まらないと判断すると、前記受信手段に対して受信中止を指示することを
特徴とする多重化分離装置が提供される。
【0009】
また、上述した多重化分離装置において、前記複数の多重化されたメディア・データは、オーディオデータとビデオデータを含む多重化分離装置が提供される。
【0014】
【発明の実施の形態】
以下、図面を参照しながら、この発明の一実施の形態に係る多重化分離装置及び多重化分離方法ついて説明する。
【0015】
図1は、この発明の一実施の形態に係る多重化分離装置の機能構成例を示すブロック図である。図1に示される多重化分離装置では、MP4のフォーマット形式で多重化された入力データ101がダウンロード処理部102にて受け取られ、このダウンロード処理部102内のメモリ、例えば、ローカルメモリ上にMP4形式のファイル110として保存される。ダウンロード処理部102では、MP4ファイルをダウンロードして保存すると同時にダウンロードしながらそのMP4ファイル内のデータを再生処理するために受け取った入力データ101を逐次分離部103に転送している。
【0016】
分離部103においては、受け取ったMP4ファイルのデータが順次解析され、ヘッダ情報及びデータ情報とに分離される。ヘッダ情報は、ヘッダ情報を解析するヘッダ解析部104に転送され、データ情報は、MP4データを解析するデータ解析部106に転送される。ヘッダ解析部104においては、受け取ったヘッダ情報が解析されて再生処理に必要な各種パラメータが抽出される。この各種パラメータには、多重化されているメディアの数、そのメディアのコーデック種別、各メディア・データに含まれるサンプルの数、サンプル間の時間間隔、各サンプルのサイズ並びにサンプルが実際に格納されている位置のような情報及びインターリーブ情報がある。
【0017】
ヘッダ解析部104は、各種パラメータの内のデータ情報を解析するに必要なパラメータ、例えば、コーデック種別或いはサンプルの数、サンプル間の時間間隔、サンプルサイズ、サンプル格納位置情報をデータ解析部106に転送している。また、インタリーブの判定に必要なパラメータ、例えば、インターリーブ情報等は、ヘッダ解析部104からインターリーブ判定部105に転送される。インターリーブ判定部105は、受け取ったインターリーブ情報を解析してデータの再生処理が可能かどうかを判定する。判定結果が再生不可の場合、その旨をダウンロード処理部102に通知する。ダウンロード処理部102は、インターリーブ判定部105から再生不可通知を受け取ると、入力データ101を分離部103に転送する処理を中止し、再生対象とされるデータの再生処理を停止する。判定結果が再生可能の場合、その旨を分離部103へ通知する。分離部103は、インターリーブ判定部から再生可能通知を受け取ると初めてデータ情報をデータ解析部106に転送する処理を開始する。データ解析部106は、ヘッダ解析部104から受け取ったデータ情報を解析するのに必要なパラメータ、例えば、コーデック種別、サンプルの数、サンプル間の時間間隔、サンプルサイズ、サンプル格納位置情報を基に、分離部103から受け取るデータ情報を逐次解析し、各メディア単位のデータストリームを取り出す。各メディアがインターリーブされている場合には、この段階で、各メディア単位に、例えば、後に説明するオーディオチャンク及びビデオチャンクの単位でデータが分離される。分離された各メディア・データは、再生処理部107へ逐次転送される。
【0018】
再生処理部107は、データ解析部106より受け取ったメディア・データを、メディア単位にデコード処理し、その出力データ108,109を各メディア単位にあらかじめ決められている再生デバイスへ出力する。例えば、MPEG−4ビデオ・データは、MPEG−4ビデオデコード処理された上、フレーム単位の画像データとして出力データ108に出力され、フレームバッファへ転送される。例えば、AAC(Advanced Audio Coding)データは、AACデコード処理された上、フレーム単位のオーディオデータとして出力データ109に出力され、D/A変換器等のオーディオ出力デバイスへ転送される。デコードされるメディアの種別としては、ビデオやオーディオの他に、文字や静止画、MIDI情報、制御データ等があり、この発明の実施の形態に係る多重化分離装置では、その種類を限定するものではない。
【0019】
図2は、図1に示される多重化分離装置において処理されるMP4多重化ファイルフォーマットの構造を示している。MP4は、MPEG−4ファイルフォーマットを省略した称呼であって、このMP4は、MPEG−4ビデオまたはMPEG−4オーディオコーデックに従って符号化されたビデオストリーム及び/又はオーディオストリームを格納するためのファイル・フォーマットである。このファイル・フォーマットには、定義により、MPEG−4ビデオまたはMPEG−4オーディオ以外のコーデックデータも格納することが可能である。尚、このMP4データは、ファイルとしてディスク上に格納されている場合、或いは、バイナリイメージとしてメモリ上に格納されている場合等が想定される。
【0020】
図2に示すように、MP4は、オブジェクト構造を有し、幾つかのアトム(atom)より構成されている。このアトムは、文献によりボックスと称せられる場合があることに注意されたい。MP4では、アトム中に、さらにアトムを入れた入れ子状態で格納することができるとされている。ここで、入れ子状態、即ち、階層構造になっているアトムの最初のアトム、即ち、最上位のアトムは、トップ・レベル・アトムと称せられる。図2には、トップ・レベル・アトムのみが示されている。ここでは、通常のオーディオ及びビデオ・データが多重化されているMP4形式のファイルを想定している。
【0021】
通常の場合、MP4ファイルは、ムービー・アトム(moov: Movie Atom)12及びメディア・データ・アトム(mdat: Media Data Atom)13から構成される。これらムービー・アトム(moov: Movie Atom)12及びメディア・データ・アトム(mdat: Media Data Atom)13に加えて図2に示すようにトップ・レベル・アトム、即ち、第1層には、ファイル・タイプ・アトム(fty: File Type Atom)11、ムービー・フラグメント・アトム(moof: Movie Fragment Atom)14、フリー・スペース・アトム(free: Free Space Atom)15、スキップ・アトム(skip: Skip Atom)16及びユーザデータ・アトム(udat: User Data Atom)17がある。これらのアトムは、MP4ファイル中に必須のもの、或いは、オプションで記述されれば良いものがある。
【0022】
図2に示されるMP4ファイルには、インターリーブ情報を格納するために、ユーザ拡張モバイル・アトム(Mobile Atom)としてユニバーサル・ユニークIDアトム(uuid: Universal Unique ID Atom)18がトップレベル、即ち、第1階層に付加されている。このユニバーサル・ユニークIDアトムの詳細については、後に詳述する。
【0023】
ここで、各トップ・レベル・アトムの機能について説明する。ファイル・タイプ・アトム11は、ファイルのブランド或いはバージョン等のファイルのタイプを格納するアトムであり、MP4で定まったファイルであることが記述される。ムービー・アトム12は、MP4データ全体のメタデータ、つまり符号化されたメディアのコーデック・ストリームをデコードするために必要な情報等、例えば、データのデコードに必要とされる属性及びアドレス等が記述されている情報を格納している。メディア・データ・アトム13は、実際の符号化されたメディアのコーデック・ストリーム、即ち、ビデオ・ストリーム、或いは、オーディオ・ストリーム等のコンテンツ・データを格納している。ムービー・フラグメント・アトム14は、ムービー・アトム12の情報を分割して格納するためのアトムである。フリー・スペース・アトム15、スキップ・アトム16及びユーザ・データ・アトム(udat: User Data Atom)17は、ユーザー・データや、パディングのためにパディング・データを格納するためのアトムである。
【0024】
次に、アトムの構造について説明する。アトムは、全てのアトムにおいて共通の構造を有している。図3には、共通の構造を有するアトム20が示されている。このアトム20においては、先頭の4バイトがアトムのサイズをバイトで示すためのサイズ・フィールド21に定められている。次の、4バイトは、アトムの種別を識別するタイプ・フィールド22に定められている。アトムの種別は、4つのキャラクターにより識別され、例えば、ムービー・アトム12の場合は、”moov”となり、メディアデータ・アトムの場合は”mdat”となる。この4文字のキャラクターをマッチングさせることによりアトムの種別を識別することが可能となる。次に、タイプ・フィールド22に続いてアトム・データ部23が格納されている。このアトム・データの構造は、各アトムにおいて用途によりシンタックスが定義されている。
【0025】
図4に示されるように、ムービー・アトム(moov: Movie Atom)は、ヘッダとして第2階層にあるMP4ファイルの作成時刻及びMP4ファイルのコンテンツ長等のヘッダ情報が記述されているムービー・ヘッダ・アトム(mvhd: Movie Header Atom)を含んでいる。また、ムービー・アトム(moov)は、オブジェクト、即ち、再生対象に関する情報が記述されているオブジェクト・ディスクリプタ・アトム(iods: Object descriptor Atom)及び多重化されているメディア情報に関する各種パラメータ、例えば、オーディオ及びビデオが多重化されている場合には、オーディオメディアのパラメータ、ビデオメディアのパラメータが記述されているトラック・アトム(trak: Track Atom)を含んでいる。このトラック・アトム(trak)は、多重化されているメディアが多数あれば、そのメディアの数だけ用意される。例えば、オーディオとビデオとが多重化されたコンテンツにあっては、オーディオメディアトラック及びビデオメディアのトラックが用意され、そのオーディオ用のトラックにオーディオメディアのパラメータが格納され、ビデオ用のトラックにビデオメディアのパラメータが格納される。
【0026】
また、図4に示されるようにトラック・アトム(trak)は、第3階層にあるトラックの作成時刻及びトラックID(識別子)と称されるトラックを識別するための一連の番号が格納されているトラック・ヘッダ・アトム(tkhd: Track Header Atom)、トラックに関して記述されたトラック・リファレンス・アトム(tref: Track Reference Atom)、編集情報に関してのエディット・アトム(edts: Edit Atom)及びメディアの情報に関して記述されたメディア・アトム(mdia: Media Atom)を含んでいる。エディット・アトム(edts)は、第4階層に編集リスト情報が記述されたエディト・リスト・アトム(elst: Edit List Atom)を含み、メディア・アトム(mdia: Media Atom)は、第4階層にこのメディアトラックのタイムスケール等の情報が格納されるメディア・ヘッダ・アトム(mdhd: Media Header Atom)、ヘッダを参照する情報が記述されたハンドラー・レファレンス・アトム(hdlr: Handler Reference Atom)及びメディアに関する情報が格納されているメディア・インフォメーション・アトム(minf: Media information Atom)を含んでいる。メディア・インフォメーション・アトム(minf)は、更に第5階層にトラックに格納されているメディアがビデオであることを示すビデオ・メディア・ヘッダ・アトム(vmhd: Video Media Header Atom)、或いは、トラックに格納されているメディアがオーディオであることを示すサウンド・メディア・ヘッダ・アトム(smhd: Sound Media Header Atom)、ヒント・メディアのヘッダ情報が記述されたヒント・メディア・ヘッダ・アトム(hmhd: Hint Media Header Atom)、メディアがビデオ或いはオーディオ以外のMPEG−4ストリームである場合に、MPEG−4のヘッダ情報が記述されたエムペグ・アトム(<mpeg>: MPEG-4 Media Atoms) 、メディア情報が記述されたデータ・インフォーメーション・アトム(dinf: Data Information Atom)及びサンプルに関しての情報が記述されたサンプル・テーブル・アトム(stbl: Sample Table Atom)を含んでいる。ビデオ・メディア・ヘッダ・アトム(vmhd: Video Media Header Atom)及びサウンド・メディア・ヘッダ・アトム(smhd: Sound Media Header Atom)は、トラックに格納されているメディア、即ち、オーディオかビデオ化の種別に応じて択一的に記載される。更にまた、データ・インフォーメーション・アトム(dinf)は、データを参照する情報が記述されたデータ・リファレンス・アトム(dref: Data Reference Atom)を含み、また、サンプル・テーブル・アトム(stbl)は、各サンプルの時間間隔が設定されているでデコーディング・タイム・トウ・サンプル・アトム(stts: Decoding time to Sample Atom) 、サンプルに対するデコード時間が記述されたコンポジション・タイム・トウ・サンプル・アトム(ctts: Composition Time to Sample Atom)、サンプルの同期情報が記述されたシンク・サンプル・アトム(stss: Sync Sample Atom)、コーデックの種別やデコードに必要となる各種情報が設定されているサンプル・ディスクリプタ・アトム(stsd: Sample Description Atom) 、トラック中のサンプルの総数(sample_count)及び各サンプルのデータ・サイズ(entry_size)が設定されているサンプル・サイズ・アトム(stsz: Sample Size Atom)、チャンク内のサンプル数(sample_per_chunk)及びサンプルのインデックス(sample_description_index)が記述されたサンプル・トウ・チャンク・アトム(stsc: Sample to Chunk Atom)、チャンクに関するファイルの先頭からのオフセット位置情報(chunk_offset)が記述されるチャンク・オフセット・アトム(stco: Chunk Offset Atom)、同期情報が記述されたシャドウ・シンク・アトム(stsh: Shadow Sync Sample Atom)及びディグレーション・プライオリティ・アトム(stdp: Degradation Priority Atom)を含んでいる。サンプル・ディスクリプタ・アトム(stsd: Sample Description Atom)は、そのコーデック種別情報等に依存して複数個設定することができる。
【0027】
図2及び図4に示すようにインターリーブ情報を格納するためにユニバーサル・ユニークIDアトム(uuid: Universal Unique ID Atom)18がトップレベルに付加されている。このユニバーサル・ユニークIDアトム(uuid)18は、例えば、下記に示されるような定義(数1)に従ったデータ構造を有している。
【0028】
【数1】
【0029】
ここで、上記定義において、変数インターリーブ(unsigned int(32) interleave)には、インターリーブの有無を示す情報が格納される。この変数インターリーブ(unsigned int(32) interleave)には、例えば、インターリーブなしの場合に、値”0”が設定され、インターリーブありの場合に、値”1”が設定される。また、変数トラックカウント(unsigned int(32) track_count)には、ファイルに含まれるトラックの数が設定される。この変数トラックカウント(unsigned int(32) track_count)には、例えば、オーディオ及びビデオのトラックから構成されるMP4ファイルの場合、値“2”が設定される。変数トラックID(unsigned int (32) track_id)には、トラックヘッダ・アトム(tkhd)に設定されるトラックIDと同一のIDが設定され、トラック・アトム(trak)と関連付けられる。変数エントリーカウント(unsigned int(32) entry_count)には、サンプル・ディスクリプタ・アトム(stsd)に設定されるコーデック種別情報の個数が設定され、サンプル・ディスクリプタ・アトム(stsd)内の特定のコーデック種別と関連付けられる。変数デコードバッファサイズ(bit24 decoderBufferSize)には、サンプル・ディスクリプタ・アトム(stsd)で指定される特定のコーデックに対するデコード処理に必要となるバッファのサイズが設定される。このように、ユニバーサル・ユニークIDアトム(uuid)には、デコーダの有無や、デコード処理に必要となるバッファのサイズなどのインターリーブ情報が格納されている。
【0030】
尚、MP4では、上述したアトムは、図2及び図4に示すような順序で配列されることは要求されず、前述したような規定項目の範囲内で構成を変更することが可能である。しかし、ここでは、特に具体的な規定内容については説明を省略する。ただし、アトムによって出現個数、位置、有無が規定され、データによりトップ・レベル・アトムの構成が異なることがMP4の特徴であるとされている。
【0031】
尚、サンプル(即ち、sample)とは、ビデオやオーディオの実際のメディア・データをある大きさに区切った単位を称し、メディア・データは、このサンプル(sample)を基に管理されている。図5に示されるように、チャンク(即ち、chunk)は、1又は複数のサンプル(sample)が連接されているものを称し、ファイル先頭からのチャンク(chunk)の位置や当該チャンク(chunk)にいくつのサンプル(sample)が含まれているかと言った、データ領域の内部構造に関する情報は、上述したようにムーブ・コンテナ・アトム(atom)の下位階層に記述される。また、既に説明したように実際のメディア・データは、メディア・データ・アトム(mdat)に配置され、オーディオやビデオといったメディア毎の情報管理にトラック(trak)というアトム(atom)が割り当てられている。このようにMP4ファイルは、ムービーコンテナアトム(moov)を取得すれば、構成されるメディア数、それぞれの種別、データ・サイズ等が判明する。
【0032】
メディア・データ・アトム(mdat)13は、一例として図5に示されるようにオーディオチャンク(A chunk 0)、ビデオチャンク(V chunk 0)、オーディオチャンク(A chunk 1)、ビデオチャンク(V chunk 1)〜オーディオチャンク(A chunk k)として示されるようにチャンク単位でオーディオ・データ及びビデオ・データがインターリーブされている。この図5の例では、オーディオチャンクは、2つのオーディオサンプルから構成されている。
【0033】
図6は、インターリーブ判定部105における処理手順を示すフローチャートを示している。インターリーブ判定部105において、処理が開始されると、インターリーブ情報が格納されたモバイル・アトム(Mobile Atom)のデータが獲得される(ステップS11)。次に、MP4ヘッダ情報が格納されたムービーアトム(moov: Movie Atom)のデータが獲得される(ステップS12)。また、ユニバーサル・ユニークIDアトム(uuid: Universal Unique ID Atom)18が検索されてその内の変数インターリーブ(unsigned int(32) interleave)の値が調べられる(ステップS13)。ここで、インターリーブなしの場合には、再生処理を中止するためにダウンロード処理部102に再生不可が通知されて処理が終了される(ステップS14)。また、インターリーブありの場合には、内部変数i(int i)の値が0に初期化され(ステップS15)、変数トラックカウント(unsigned int(32) track_count)の個数分だけ以下に説明するバッファサイズ判定処理が繰り返えされる。次に、変数iの値が変数トラックカウントの数を超えているかが判定される(ステップS16)。ここで、変数iの値が変数トラックカウントの数を超えている場合には、バッファサイズの判定処理が全て合格されていることとし、分離部103に対して再生可能が通知されて処理が終了される(ステップS28)。変数iの値が変数トラックカウントより小さい場合には、ムービー・アトム内から変数トラックID(track_id[i])と一致するトラックIDを有するトラック・アトムが検索される(ステップS17)。この検索によって、目的のトラック・アトムが検出されたかが判定され(ステップS18)、検出されない場合にはエラーとして、再生不可判定がダウンロード処理部102に通知されて処理が終了される(ステップS14)。目的のトラック・アトムが検出された場合には、次の処理へ進む。
【0034】
目的のトラック・アトムが検出された場合には、内部変数jの値が0に初期化され(ステップS20)、変数エントリーカウント(unsigned int(32) entry_count)の個数分だけ以下のバッファサイズの判定処理が繰り返される。変数jの値が変数エントリーカウントの数を超えているかが判定される(ステップS21)。変数jの値が変数エントリーカウントの数を超えている場合には、次のバッファ判定処理のために内部変数iがインクリメントされてステップS19及びステップS16〜ステップS21の処理が繰り返えされる。ここで、変数jの値が変数エントリーカウントより小さい場合には、ステップS17の処理で検出されたトラック・アトム(trak)からサンプルディスクリプションアトム(stsd)が検出される(ステップS22)。この検出されたサンプルディスクリプションアトム(stsd)内のj番目に格納されているデコーダ情報が獲得される(ステップS23)。獲得されたデコーダ情報からデコーダ種別、例えば、MPEG-4ビデオ或いはAACなどのデコーダ種別が獲得され(ステップS24)、また、獲得されたデコーダ種別に対して多重化分離装置で使用可能な固有のバッファサイズが獲得される(ステップS25)。
【0035】
通常の場合、各デコーダで使用可能な固有のバッファサイズは、予め固定的に決められている。この使用可能な固有のバッファサイズと、実際の多重化データをデコードするのに必要となるバッファサイズ情報であるユニバーサル・ユニークIDアトム(uuid)に記述されたデコードバッファサイズ(decoderBufferSize[i][j])とが比較される。(ステップS26)装置に固有のデコードバッファサイズ(decoderBufferSize[i][j])よりも使用可能なバッファサイズが小さい場合には、デコード処理途中でバッファオーバフローが発生することが予想される。このような場合には、再生不可の判定がダウンロード処理部102に通知されて処理が終了される(ステップS14)。使用可能なバッファサイズが十分に確保できる場合には、内部変数jがインクリメントされた後(ステップS27)、ステップS21の処理が繰り返えされる。
【0036】
以上のように、この発明の実施例によれば、MP4形式のファイル・フォーマットにユニバーサル・ユニークIDアトム(uuid: Universal Unique ID Atom)18が追加され、この拡張されたアトムにインターリーブの有無や、各コーデック種別毎に必要となるデコーダバッファサイズ情報等インターリーブ情報が格納される。従って、多重化分離装置にインターリーブ判定部105が設けられ、MP4ファイル内のインターリーブ情報を解析することで、ダウンロードしながら再生処理を安定して実行できるかどうかを再生処理開始前に、容易に判定することが可能となる。
【0037】
上述した実施の形態においては、図3に示すようにトップレベルにユーザ拡張モバイル・アトム(Mobile Atom)としてのユニバーサル・ユニークIDアトム(uuid: universal unique ID Atom)18が追加されているが、図5に示されるトラック・アトム(trak)或いはムービー・ヘッダ・アトム(mvhd)が設けられている第2階層にユニバーサル・ユニークIDアトム(uuid: universal unique ID Atom)18が追加されても良い。
【0038】
また、ムービー・ヘッダ・アトム(mvhd)内に下記に示されるような項目を設ける場合には、ユニバーサル・ユニークIDアトム(uuid)18を設けなくとも良く、ユニバーサル・ユニークIDアトム(uuid)18がユーザ拡張モバイル・アトム(Mobile Atom)として設けられる旨の記述も不要となる。
【0039】
【数2】
【0040】
更に、ユニバーサル・ユニークIDアトム(uuid)18に代えて、モバイル・アトム(MobileAtom)が新たに定義されても良い。このモバイル・アトム(mobl: MobileAtom)は、ユニバーサル・ユニークIDアトム(uuid)18に代えてムーブアトム等と並設して図3に示すようにトップレベルに設けられても良い。このモバイル・アトム(mobl: MobileAtom)は、数1と同様に下記定義(数3)に従ったデータ構造を有している。
【0041】
【数3】
【0042】
次に図7及び図8を参照して図4に示すMP4ファイルを出力データとして出力する多重化装置について説明する。
【0043】
図7は、この発明の一実施の形態に係る多重化装置の機能構成例を示すブロック図である。図7に示される多重化装置においては、各メディア単位にエンコードされた入力データ501,502を各コーデックに対応したデータ解析部503,504にて受け取る。例えば、AAAエンコードされたオーディオ並びにMPEG−4ビデオエンコードされたビデオが入力される場合、AAA形式でエンコードされた入力データ501がデータ解析部503にて受け取られる。また、MPEG−4ビデオ形式でエンコードされた入力データ502がデータ解析部504にて受け取られる。データ解析部503,504では、入力データ501,502をそれぞれ解析し、フレームなどの分割可能な区切り位置情報等のMP4ヘッダ情報を作成する上で必要となる情報が検出される。
【0044】
次に、ヘッダ生成部505では、データ解析部503,504からの各コーデックの解析結果からMP4ヘッダ情報が生成される。この時、あらかじめ指定されたインターリーブ間隔に従い、各入力データがインターリーブされるようにMP4ヘッダ情報が設定される。例えば、1秒間隔にインターリーブする際には、各入力データのフレーム区分が更に1秒間隔に分割され、その分割されたデータの塊が同一チャンクに格納される。更には、全ての入力データに対して、各チャンク毎の再生時間が順に並ぶように、各チャンクのオフセット位置が設定される。また、インターリーブ情報設定部506では、MP4ヘッダ情報及びインターリーブ有無の情報をヘッダ生成部505から受け取り、インターリーブ情報を格納するためのアトム(uuid)18が生成され、そのパラメータが設定される。次にデータ生成部507では、ヘッダ生成部505にて設定されたインターリーブを考慮したチャンクオフセット値に従い、データ解析部503、504にて受け取った各コーデックデータのデータ位置が並べ替えられ、MP4データ情報が生成される。次に多重化部508では、ヘッダ生成部505及びインターリーブ情報設定部506、データ生成部507にて生成した情報がMP4形式に多重化され、出力データ508として出力される。ここで入力されるメディアの種別としては、ビデオやオーディオの他に、文字や静止画、MIDI情報、制御データ等があり、この実施例では、メディアの種類及び数が限定されるものではない。
【0045】
図8は、インターリーブ情報設定部506における処理手順を示すフローチャートである。インターリーブ情報設定部506において処理が開始されると、始めに生成したMP4ヘッダ情報及びインターリーブ有無を示す情報が獲得される(ステップS31)。また、インターリーブ情報を格納するためのデータ構造である空のモバイル・アトム(uuid)18が生成される(ステップS32)。次に、入手したインターリーブ有無の情報に従い、変数インターリーブの値(unsigned int(32) interleave)が設定される(ステップS33)。例えば、変数インターリーブの値として、インターリーブなしの場合には値“0”が、有りの場合には値“1”が設定される。次に変数トラックカウント(track_count)が0に初期化される(ステップS34)。入手したMP4ヘッダ情報が順次検索されトラック・アトムが見つけ出される(ステップS35)。トラック・アトム(trak)が見つからなければ(ステップS36)、処理が終了される。トラック・アトム(trak)が見つかった場合には、トラック・アトム(trak)に含まれるトラックヘッダ・アトム(trhd)が見付け出される(ステップS37)。次にトラックヘッダ・アトム(trhd)内の変数からトラックIDが獲得される(ステップS39)。次にモバイル・アトム(uuid)18にトラックID(track_id)及びデコーダバッファサイズ(decoderBufferSize)が追加され、変数トラックIDにトラックIDが設定される(ステップS39)。次にトラック・アトム(trak)に含まれるサンプルサイズアトム(stsz)が獲得される(ステップS40)。サンプルサイズアトム(stsz)には、トラックに含まれるサンプルの数(sample_count)と各サンプルのサイズ情報(sample_size)が含まれる。同様にトラック・アトム(trak)に含まれるチャンクオフセットアトム(stco)が獲得される(ステップS41)。チャンクオフセットアトム(stco)には、チャンクの数(entry_count)とファイルの先頭からのオフセット値(chunk_offset)が含まれる。同様にトラック・アトム(trak)に含まれるサンプルトウチャンクアトム(stsc)が獲得される(ステップS42)。サンプルトウチャンクアトム(stsc)には、各チャンク毎のサンプル数(sample_per_chunk)が含まれる。次に、サンプルサイズアトム(stsz)、チャンクオフセットアトム(stco)及びサンプルトウチャンクアトム(stsc)の情報を元に、オフセットの値が連続しているサンプルを一つのまとまりとし、各まとまり毎のサンプルの合計サイズがすべて算出される(ステップS43)。算出された合計サイズの中で最大値が求められ、モバイル・アトムの変数デコーダバッファサイズ(decoderBufferSize)に設定される(ステップS44)。次に変数トラックカウント(unsigned int(32) track_count)がインクリメントされた後(ステップS45)、次のトラック・アトムを検索する処理(ステップS35)が繰り返えされる。
【0046】
以上の処理手順により、各トラックのデータをデコードするのに必要なバッファ情報がモバイル・アトムに設定される。
【0047】
【発明の効果】
以上のように、この発明の多重化分離装置及び方法によれば、メディア・データをデコードするのに必要なバッファサイズ及びインターリーブされているかどうかを示す情報がMP4ファイル中に格納されている。従って、この情報を用いてメディア・データがインターリーブされているか否か並びにデコード処理が可能か否かを容易に判定することができる。その結果、この発明の多重化分離装置及び方法においては、MP4ファイルをダウンロードしながら最後まで再生することができる。
【図面の簡単な説明】
【図1】この発明の一実施の形態に係る多重化分離装置の機能を示すブロック図である。
【図2】図1に示される多重化分離装置において処理されるMP4多重化フォーマット・ファイルの構造を示す説明図である。
【図3】図2に示される各アトムの共通構造を示す説明図である。
【図4】図3に示されるムービー・アトムのデータ構造を示す説明図である。
【図5】図3に示されるメディア・データ・アトム内におけるインターリーブの一例を示す説明図である。
【図6】図1に示されるインターリーブ判定部における処理手順を示すフローチャートである。
【図7】この発明の実施の形態に係る多重化装置の機能を示すブロック図である。
【図8】図7に示した多重化装置のインターリーブ情報設定部における処理手順を示すフローチャートである。
【符号の説明】
103...分離部
104...ヘッダ解析部
105...インターリーブ判定部
106...データ解析部
106...AMR情報設定部
107...再生処理部
503、504...データ解析部
505...ヘッダ生成部
506...インターリーブ情報設定部
507...データ生成部
508...多重化部
Claims (2)
- 複数の多重化されたメディア・データを各メディアに分離して再生する多重化分離装置において、
前記複数の多重化されたメディア・データ及び各メディア・データの属性情報を含むファイルを受信する受信手段と、
前記受信したファイルに含まれる各メディア・データを、該ファイルを受信しながら再生する場合、前記受信したファイルに含まれる属性情報に基づいて前記各メディア・データがインターリーブされてファイルに格納されているか否か及び前記ファイルを受信しながら再生する場合に必要となるバッファサイズを抽出する抽出手段と、
前記抽出手段が、各メディア・データがインターリーブされ、かつ抽出したバッファサイズが自己のバッファのサイズ内のときのみファイルを受信しながら再生することが可能と判断し、各メディア・データがインターリーブされていない場合、又は前記抽出手段が抽出したバッファサイズが自己のバッファのサイズに納まらないときはファイルを受信しながら再生することが不可能と判断する判定手段とを備え、
該抽出手段は、受信しながら再生することが可能であると判断した後、前記ファイルに格納されインターリーブによって分割されたメディア・データ毎にバッファサイズが自己のバッファのサイズ内であるかの判断を継続し、メディア・データの再生中に抽出したバッファサイズが自己のバッファのサイズに納まらないと判断すると、前記受信手段に対して受信中止を指示することを
特徴とする多重化分離装置。 - 前記複数の多重化されたメディア・データは、オーディオデータとビデオデータを含むことを特徴とする請求項1記載の多重化分離装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002192487A JP4383721B2 (ja) | 2002-07-01 | 2002-07-01 | 多重化分離装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002192487A JP4383721B2 (ja) | 2002-07-01 | 2002-07-01 | 多重化分離装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004040329A JP2004040329A (ja) | 2004-02-05 |
JP4383721B2 true JP4383721B2 (ja) | 2009-12-16 |
Family
ID=31701748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002192487A Expired - Fee Related JP4383721B2 (ja) | 2002-07-01 | 2002-07-01 | 多重化分離装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4383721B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004086765A1 (ja) * | 2003-03-25 | 2004-10-07 | Matsushita Electric Industrial Co. Ltd. | データ送信装置 |
WO2011108908A2 (en) | 2010-03-05 | 2011-09-09 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving a content file including multiple streams |
CN110545254B (zh) * | 2018-05-29 | 2021-05-04 | 北京字节跳动网络技术有限公司 | 一种元数据容器的解析方法、装置及存储介质 |
-
2002
- 2002-07-01 JP JP2002192487A patent/JP4383721B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004040329A (ja) | 2004-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7139470B2 (en) | Navigation for MPEG streams | |
US8516275B2 (en) | Data structure of multimedia file format, encrypting method and device thereof, and decrypting method and device thereof | |
KR101254385B1 (ko) | 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체 | |
CN105103540B (zh) | 文件生成方法、文件生成装置及记录介质 | |
CN101802823A (zh) | 用于流式多媒体数据的分段的元数据和位标 | |
WO2012032502A1 (en) | A method and apparatus for adaptive streaming | |
JP2010537468A (ja) | メタデータのエンコーディング/デコーディング方法及び装置 | |
US8401370B2 (en) | Application tracks in audio/video containers | |
JP2005229587A (ja) | 多重化方式変換装置 | |
CN110740391B (zh) | 一种修复mp4损坏文件的方法 | |
KR101316579B1 (ko) | Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 | |
JP3748437B2 (ja) | マルチメディア・ファイルのデータ構造、その暗号化方法並びに装置及びその暗号化復号方法及び装置 | |
KR101432994B1 (ko) | 미디어 객체 기반 메타데이터의 생성 방법, 재생 방법 및그 장치 | |
JP2006074531A (ja) | データ記録再生装置及び方法 | |
JP4383721B2 (ja) | 多重化分離装置 | |
KR101295377B1 (ko) | 파일 포맷을 구성하는 방법과 상기 파일 포맷을 가지는파일을 포함한 방송 신호를 처리하는 장치 및 방법 | |
JP4436617B2 (ja) | 逆多重化装置 | |
JP2017183762A (ja) | 映像ストリーム生成方法、再生装置及び記録媒体 | |
JP2021508977A (ja) | メタデータ容器の解析方法、装置及び記憶媒体 | |
WO2015105037A1 (ja) | ファイル生成方法、ファイル生成装置および記録媒体 | |
WO2015083354A1 (ja) | ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体 | |
JP6440034B2 (ja) | ビデオデータを再生する方法及び装置 | |
WO2016027426A1 (ja) | 映像ストリーム生成方法、再生装置及び記録媒体 | |
JP4114868B2 (ja) | 多重化装置および多重化方法 | |
JP2004112095A (ja) | 多重化装置、多重化分離装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060417 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060919 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061004 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20061117 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090924 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121002 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121002 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131002 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |