JP4114868B2 - Multiplexer and multiplexing method - Google Patents

Multiplexer and multiplexing method Download PDF

Info

Publication number
JP4114868B2
JP4114868B2 JP2003168432A JP2003168432A JP4114868B2 JP 4114868 B2 JP4114868 B2 JP 4114868B2 JP 2003168432 A JP2003168432 A JP 2003168432A JP 2003168432 A JP2003168432 A JP 2003168432A JP 4114868 B2 JP4114868 B2 JP 4114868B2
Authority
JP
Japan
Prior art keywords
data
unit
packet
sample
video
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
Application number
JP2003168432A
Other languages
Japanese (ja)
Other versions
JP2004350250A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003168432A priority Critical patent/JP4114868B2/en
Publication of JP2004350250A publication Critical patent/JP2004350250A/en
Application granted granted Critical
Publication of JP4114868B2 publication Critical patent/JP4114868B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、動画像データや音声データ等のメディアデータを多重化する多重化装置、および動画像データや音声データ等のメディアデータが多重化されたビット列を読み込んで逆多重化する逆多重化装置に関する。
【0002】
【従来の技術】
近年、通信ネットワークの大容量化および伝送技術の進歩により、インターネット上で、動画、音声、テキスト、あるいは、静止画等のマルチメディアコンテンツを含む動画像ファイルをパーソナルコンピュータに配信する動画配信サービスの普及が著しい。また、携帯端末等のいわゆる第3世代の移動体通信システムの規格の標準化を図ることを目的とする国際標準化団体3GPP(Third Generation Partnership Project)で、無線による動画配信に関する規格としてTS26.234(Transparent end-to-end packet switched streaming service)が定められる等の動きも見られ、動画配信サービスは、携帯電話機やPDA等の移動体通信端末への提供の拡大も見込まれている。
【0003】
動画配信サービスにおいて、動画像ファイルを配信する際には、まず、多重化装置において、動画、静止画、音声およびテキスト等のメディアデータを取り込んで、メディアデータの再生に必要なヘッダ情報とメディアデータの実体データとを多重化して動画像ファイルデータを作成することが必要となるが、この動画像ファイルデータの多重化ファイルフォーマットとして、MP4ファイルフォーマットが注目されている。
【0004】
このMP4ファイルフォーマットは、国際標準化団体であるISO/IEC(International Standardization Organization/International Engineering Consortium) JTC1/SC29/WG 11 において標準化が進められている多重化ファイルフォーマットであり、上記3GPPのTS26.234でも採用されていることから、広く普及するものと予想されている。
【0005】
ここで、MP4ファイルのデータ構造について説明する。なお、このMP4ファイルのデータ構造については、非特許文献1に開示されている。
MP4ファイルは、ボックスと呼ばれるオブジェクト単位でヘッダ情報やメディアデータの実体データが格納されており、複数のボックスを階層的に配列することによって構成される。
【0006】
図18は、従来のMP4ファイルを構成するボックスの構造を説明するための図である。
ボックス901は、ボックス901のヘッダ情報が格納されるボックスヘッダ部902と、ボックス901に含まれるデータ(例えば、そのボックスの下の階層のボックスや情報を記述するためのフィールド等)が格納されるボックスデータ格納部903とから構成される。
【0007】
このボックスヘッダ部902は、ボックスサイズ904、ボックスタイプ905、バージョン906、フラグ907のフィールドを有している。
ボックスサイズ904は、このフィールドに割り当てられたバイトサイズも含めてボックス901全体のサイズ情報が記述されるフィールドである。
【0008】
ボックスタイプ905は、ボックス901の種別を識別するための識別子が記述されるフィールドである。この識別子は、通常4つのアルファベット文字列によって表される。なお、以下、本明細書中において、この識別子によって各ボックスを示す場合がある。
【0009】
バージョン906は、ボックス901のバージョンを示すバージョン番号が記述されるフィールドであり、フラグ907は、ボックス901毎に設定されるフラグ情報が記述されるフィールドである。このバージョン906とフラグ907は、全てのボックス901に必須のフィールドではないので、これらのフィールドを有しないボックス901も存在しうる。
【0010】
このような構造のボックス901が複数連なって構成されるMP4ファイルは、ファイルの構成に不可欠な基本部と、必要に応じて使用される拡張部とに大別することができる。まず、MP4ファイルの基本部について説明する。
図19は、従来のMP4ファイルの基本部を説明するための図である。
【0011】
MP4ファイル910の基本部911は、ファイルヘッダ部912とファイルデータ部913とから構成される。
ファイルヘッダ部912は、ファイル全体のヘッダ情報、例えば、動画像(ビデオ)データの圧縮符号化方式等の情報が格納される部分であり、ファイルタイプボックス914とムービーボックス915とから構成される。
【0012】
ファイルタイプボックス914は、“ftyp”の識別子で識別されるボックスであり、MP4ファイルを識別するための情報が格納される。MP4ファイルにどのようなメディアデータを格納するかについて、また、どのような圧縮符号化方式を用いた動画像(ビデオ)データや音声(オーディオ)データ等を格納するかについては、標準化団体やサービス事業者が独自に規定することができるため、MP4ファイルがどの規定に従って作成されたものであるかを識別するための情報を、このファイルタイプボックス914に格納する。
【0013】
ムービーボックス915は、“moov”の識別子で識別されるボックスであり、ファイルデータ部913に格納される実体データのヘッダ情報、例えば、表示時間長等の情報が格納される。
ファイルデータ部913は、“mdat”の識別子で識別されるムービーデータボックス916によって構成される。なお、このファイルデータ部913の代わりに、このMP4ファイル910とは異なる外部のファイルを参照することもできる。このように、外部のファイルを参照する場合には、MP4ファイル910の基本部911は、ファイルヘッダ部912のみから構成されることになる。本明細書では、この外部ファイルの参照をする場合ではなく、MP4ファイル910内に実体データを含む場合について説明する。
【0014】
ムービーデータボックス916は、サンプルと称される単位でメディアデータの実体データを格納するボックスである。このサンプルとは、MP4ファイルにおける最小のアクセス単位であり、MPEG(Moving Picture Experts Group)-4 Visualの圧縮符号化方式によって符号化したビデオデータのVOP(Video Object Plane)やオーディオデータのフレームに相当するものである。
【0015】
ここで、従来におけるMP4ファイルの基本部の構造について階層を掘り下げて、ムービーボックス915の構造を説明することとする。
図20は、従来のMP4ファイルにおけるムービーボックスの構造を説明するための図である。
【0016】
図20(a)に示すように、ムービーボックス915は、先に説明したボックスヘッダ部902とボックスデータ格納部903とから構成されている。そして、ボックスヘッダ部902を構成するボックスサイズ904のフィールドには、ムービーボックス915のサイズ情報が記述され(図20(a)では、“xxxx”とする。)、ボックスタイプ905のフィールドには、ムービーボックス915の識別子“moov”が記述される。
【0017】
また、ムービーボックス915のボックスデータ格納部903には、MP4ファイル910の基本部911のヘッダ情報が格納されるムービーヘッダボックス917や、ビデオトラックやオーディオトラック等、トラック毎のヘッダ情報が格納されるトラックボックス918等が格納されている。なお、ここにいうトラックとは、MP4ファイル910に含まれる各メディアのサンプルデータ全体を意味し、動画像や音声やテキスト等のトラックは、それぞれビデオトラック、オーディオトラックやテキストトラック等と称される。また、MP4ファイル910内に同一メディアのデータが複数存在する場合は、同一メディアに対して複数のトラックが存在することになる。具体的に説明すると、例えば、MP4ファイル910内に2種類の動画像データが含まれている場合、2つのビデオトラックが存在することになる。
【0018】
ムービーヘッダボックス917も、先に説明したボックスヘッダ部902とボックスデータ格納部903とから構成されており、ボックスヘッダ部902を構成するボックスサイズ904のフィールドには、ムービーヘッダボックス917のサイズ情報が記述され(図20(a)では、“xxx”とする。)、ボックスタイプ905のフィールドには、ムービーヘッダボックス917の識別子“mvhd”が記述される。そして、ムービーヘッダボックス917のボックスデータ格納部903には、MP4ファイル910の基本部911に含まれるコンテンツの再生に要する時間長に関する情報等が格納される。
【0019】
また、トラックボックス918のボックスヘッダ部902を構成するボックスサイズ904のフィールドには、トラックボックス918のサイズ情報が記述され(図20(a)では、“xx”とする。)、ボックスタイプ905のフィールドには、トラックボックス918の識別子“trak”が記述される。そして、トラックボックス918のボックスデータ格納部903には、トラックヘッダボックス919が格納されている。
【0020】
トラックヘッダボックス919は、トラック毎のヘッダ情報を記述するためのフィールドを有するボックスであり、“tkhd”の識別子によって識別される。このトラックヘッダボックス919のボックスデータ格納部903には、トラックの種類を識別するためのトラックIDを記述するフィールドや、トラックの再生に要する時間長に関する情報等が記述される。
【0021】
このように、ムービーボックス915には、ボックス901が階層的に配列されており、“trak”で識別されるトラックボックス918にビデオやオーディオ等のトラック毎のヘッダ情報が格納されている。そして、このトラックボックス918に含まれる下位のボックスにおいて、トラックのサンプル単位のヘッダ情報が格納されている。
【0022】
図20(a)に示すムービーボックス915の構造をツリー状に示すと、図20(b)のような図が得られる。
すなわち、ムービーボックス915の下位のボックス群としてムービーヘッダボックス917、トラックボックス918が配列され、トラックボックス918の下位のボックス群としてトラックヘッダボックス919が配列されており、ボックス901が階層的に配置されていることがわかる。
【0023】
MP4ファイルフォーマットの標準化当初、MP4ファイル910は、上記基本部911のみから構成されていた。しかし、メディアデータの情報量が多くなると、サイズが大きくなってしまうので、ストリーミング再生への適用が難しい等の種々の問題があり、ヘッダボックスとデータボックスとの組が複数連なる拡張部の使用を加える改良がなされている。
【0024】
図21は、従来における拡張部を含むMP4ファイルの構造を示す図である。図21に示すように、上記改良が加えられたMP4ファイル920は、基本部911と拡張部921とから構成される。この拡張部921を含むMP4ファイル920では、全てのメディアデータを拡張部921に格納することができるので、MP4ファイル基本部911のムービーデータボックス916を省略することとしてもよい。
【0025】
拡張部921は、所定の単位で区切られたパケット922が複数連なって構成される。
このパケット922は、ムービーフラグメントボックス923とムービーデータボックス916とが一対となって構成され、ムービーフラグメントとも称される。
【0026】
ムービーデータボックス916は、上記区切られた所定の単位でトラック毎のサンプルを格納し、ムービーフラグメントボックス923は、このムービーデータボックス916に対応してヘッダ情報を格納するボックスであり、“moof”という識別子によって識別される。このムービーフラグメントボックス923の構造について、さらに詳しく説明する。
【0027】
図22は、従来におけるムービーフラグメントボックスの構造を説明するための図である。
図22に示すように、ムービーフラグメントボックス923のボックスデータ格納部903には、ムービーフラグメントヘッダボックス924と複数のトラックフラグメントボックス925が格納されている。
【0028】
ムービーフラグメントヘッダボックス924は、“mfhd”の識別子で識別されるボックスであり、ムービーフラグメントボックス923全体のヘッダ情報が格納される。
トラックフラグメントボックス925は、“traf”の識別子で識別されるボックスであり、トラック毎のヘッダ情報が格納される。
【0029】
なお、通常1つのトラックのヘッダ情報に対して、1つのトラックフラグメントボックス925が用意されるが、1つのトラックのヘッダ情報に対して、複数のトラックフラグメントボックス925が用意されるとしてもよい。このように、1つのトラックのヘッダ情報を複数のトラックフラグメントボックス925に分割して格納する際には、トラックフラグメントボックス925の先頭サンプルの復号時間が昇順となるように配列される。
【0030】
そして、このトラックフラグメントボックス925のボックスデータ格納部903には、トラックフラグメントヘッダボックス926と1つ以上のトラックフラグメントランボックス927が格納されている。
トラックフラグメントヘッダボックス926は、“tfhd”の識別子で識別されるボックスであり、トラックの種類を識別するためのトラックIDを記述するフィールドや、サンプルの再生時間長等のデフォルト値に関する情報等を格納する。
【0031】
トラックフラグメントランボックス927は、“trun”の識別子で識別されるボックスであり、サンプル単位のヘッダ情報を格納する。図23を用いて、このトラックフラグメントランボックス927について詳しく説明する。
図23は、従来におけるトラックフラグメントランボックス927の構造を説明するための図である。
【0032】
フラグ907は、ボックス901毎に設定されるフラグ情報が記述されるフィールドであるが、ここでは、フラグ907に続いてデータオフセット929からサンプルコンポジションタイムオフセット936までの各フィールドがトラックフラグメントランボックス927に存在するか否かを示すフラグ情報が記述される。
【0033】
サンプルカウント928は、トラックフラグメントランボックス927にどれだけの数のサンプルに関するヘッダ情報が格納されるかを示す情報が記述されるフィールドである。
データオフセット929は、トラックフラグメントランボックス927にヘッダ情報が格納されているサンプルのうちトラックフラグメントランボックス927の先頭に位置するサンプルの実体データが、組となっているムービーデータボックス916のどこに格納されているかを示すポインタ情報が記述されるフィールドである。
【0034】
先頭サンプルフラグ930は、トラックフラグメントランボックス927の先頭サンプルがランダムアクセス可能なサンプルである場合に、後述するサンプルフラグ935のフィールドの値を上書きすることができるフィールドである。ここで、ランダムアクセスとは、例えば、MP4ファイルの再生装置において、再生の途中でデータの再生位置を10秒後に移動させたり、データの途中から再生を開始したりする処理動作を意味する。そして、ランダムアクセス可能なサンプルとは、ビデオサンプルのうち、MP4ファイルの再生装置において、他のフレームのデータを参照することなく単独で復号化できるフレーム、すなわち画面内符号化フレーム(いわゆるイントラフレーム)を構成するサンプルを意味する。なお、オーディオサンプルでは、いずれのサンプルも単独で復号化することができるので、全てのオーディオサンプルがランダムアクセス可能なサンプルといえる。
【0035】
テーブル931は、サンプル毎のヘッダ情報を示すエントリ932が、サンプルカウント928において示される個数分集積されたものである。
エントリ932は、サンプル毎のヘッダ情報を示すフィールドの集まりであり、いずれのフィールドが含まれるかは、上記フラグ907によって示される。エントリ932に含まれるフィールドには、サンプルの再生時間長が記述されるサンプルデュレーション933、サンプルのサイズが記述されるサンプルサイズ934、サンプルがランダムアクセス可能であるか否かを示すフラグ情報が記述されるサンプルフラグ935、そして、双方向予測を用いたサンプルを扱うために、サンプルの復号時間と表示時間との差分値が記述されるサンプルコンポジションタイムオフセット936がある。
【0036】
なお、これらのフィールドがエントリ932に含まれない場合は、各サンプルのヘッダ情報は、トラックフラグメントヘッダボックス926や、ムービーフラグメントボックス915内のムービーエクステンドボックス(識別子“mvex”)に、これらのフィールドのデフォルト値が記述されているので、これらのデフォルト値が使用される。
【0037】
また、トラックフラグメントランボックス927には、復号時間の早いサンプルから順にヘッダ情報が記述される。従って、MP4ファイルを再生する装置がサンプルのヘッダ情報を検索する際には、ファイル中の先頭のトラックフラグメントボックス925から順にトラックフラグメントヘッダボックス926内のトラックIDを参照することで、取得するトラックのヘッダ情報を含むトラックフラグメントボックス925を検索し、トラックフラグメントボックス925内においても、先頭のトラックフラグメントランボックス927から順にサンプルのヘッダ情報を検索することになる。
【0038】
なお、この拡張部921を含むMP4ファイル920の場合であっても、復号化時の初期化情報等、トラック全体に必要な情報は、ムービーボックス915に格納される。
続いて、このような構造を有する拡張部921を含むMP4ファイルの構成例について説明する。
【0039】
図24は、従来における拡張部を含むMP4ファイルの拡張部の構成例を示す図である。
図24では、コンテンツの格納方法について2通りの例を示して説明することとし、コンテンツの再生時間長は、60秒であるとする。
【0040】
図24(a)に示すMP4ファイル940は、基本部941および拡張部942の両方にメディアデータを格納する構成になっている。すなわち、基本部941のmdat_1(符号945)に0〜30秒までのメディアデータが格納され、拡張部942のmdat_2(符号947)に30〜45秒までのメディアデータが格納され、mdat_3(符号949)に45〜60秒までのメディアデータが格納されている。そして、mdat_1(符号945)のヘッダ情報はmoov944に格納され、mdat_2(符号947)のヘッダ情報はmoof_1(符号946)に格納され、mdat_3(符号949)のヘッダ情報はmoof_2(符号948)に格納されている。
【0041】
これに対して、図24(b)に示すMP4ファイル950は、拡張部952だけにメディアデータを格納する構成になっている。すなわち、基本部951は、ftyp953とmoov954とから構成されてmdatを含まず、拡張部952のmdat_1(符号956)に0〜30秒までのメディアデータが格納され、mdat_2(符号958)に30〜60秒までのメディアデータが格納されている。そして、mdat_1(符号956)のヘッダ情報はmoof_1(符号955)に格納され、mdat_2(符号958)のヘッダ情報はmoof_2(符号957)に格納されている。
【0042】
ここで、上記MP4ファイルの拡張部がどのように作成されるかを図25〜図27を用いて説明する。
図25は、従来の多重化装置の構成を示すブロック図である。
多重化装置960は、メディアデータを多重化してMP4ファイルの拡張部データを作成する装置である。ここでは、ビデオデータとオーディオデータとを多重化してMP4ファイルの拡張部データを作成するものとする。
【0043】
第1入力部961はビデオデータを多重化装置960に取り込み、第1データ蓄積部962に蓄積させ、また、第2入力部964はオーディオデータを多重化装置960に取り込み、第2データ蓄積部965に蓄積させる。
第1解析部963は、第1データ蓄積部962から1サンプルずつビデオデータを読み出して解析し、ビデオサンプルのヘッダ情報をパケット単位決定部967に出力する。また、第2階席部966は、第2データ蓄積部965から1サンプルずつオーディオデータを読み出して解析し、オーディオサンプルのヘッダ情報をパケット単位決定部967に出力する。このビデオサンプルヘッダ情報およびオーディオサンプルヘッダ情報には、サンプルのサイズや再生時間長を示す情報が含まれており、ビデオサンプルヘッダ情報には、ビデオサンプルがイントラフレームであるか否かを示す情報も含まれている。
【0044】
パケット単位決定部967は、パケットに含まれるサンプル数が一定となるように、ビデオデータおよびオーディオデータのパケット単位を決定し、取得したサンプルヘッダ情報に基づいて各パケットのヘッダ情報を作成する。
図26に、従来におけるパケット単位決定部の処理動作フローを示す。ここで、1つのパケットに格納されるサンプルの数をNとし、この値は予め定められて、多重化装置960のメモリ等に保持されている。
【0045】
まず、第1解析部963が1つのビデオサンプルを取得して(S901)、ビデオサンプルヘッダ情報をパケット単位決定部967に出力すると、パケット単位決定部967は、ビデオサンプルヘッダ情報をパケット作成テーブルに追加する(S902)。
次に、パケット単位決定部967は、パケットに含まれるビデオサンプルの数を更新し(S903)、パケットに含まれるビデオサンプルの数がNになったかどうかを判定する(S904)。
【0046】
ここで、パケットに含まれるビデオサンプルの数がNに満たない場合(S904のNo)、上記S901〜S903までの処理が繰り返され、パケットに含まれるビデオサンプルの数がNになった場合(S904のYes)、パケット単位決定部967は、N個のビデオサンプルをパケット化して処理動作を終了する(S905)。
【0047】
パケット単位決定部967は、同様に、オーディオについても上記S901〜S905までの処理動作によって、オーディオサンプルのパケット化を行なう。そして、全てのサンプルのパケット化が完了するまで、パケット単位決定部967は、このフローの処理動作を繰り返す。
【0048】
図27に、従来におけるビデオサンプルのヘッダ情報を格納するパケット作成テーブルの一例を示す。このパケット作成テーブル968aには、ビデオサンプル毎に、サンプルのサイズ、サンプルの再生時間長や、そのビデオサンプルがイントラフレームであるか否かを示す画面内符号化フレームフラグに関する情報が記述される。ここでは、パケットに格納される先頭のビデオサンプルは、サイズが300バイト、再生時間長が30ms、画面内符号化フレームでないことが示されており、2番目のビデオサンプルは、画面内符号化フレームであることが示されている。そして、このパケット作成テーブル968aは、パケット単位決定部967においてこれらの情報が順次追加され、1パケットに含まれる最後のサンプルとなるN番目まで作成されると、パケット作成テーブル蓄積部968に出力される。
【0049】
再び図25を参照すると、続いて、パケット単位決定部967は、パケット作成テーブル968aにN個分のサンプルのヘッダ情報を記述した後、パケット作成テーブル968aをパケット作成テーブル蓄積部968に出力するとともに、パケットヘッダ作成部969にパケット作成信号を出力する。
【0050】
パケットヘッダ作成部969は、パケット作成信号を取得すると、パケット作成テーブル蓄積部968に保持されているパケット作成テーブル968aからパケットサンプルヘッダ情報を読み出してmoofデータを作成する。また、パケットヘッダ作成部969は、作成したmoofデータをパケット結合部971に出力するとともに、パケットに含まれるサンプルの実体データが第1データ蓄積部962および第2データ蓄積部965のどこに格納されているかを示すポインタ情報と、サンプルのサイズ情報とを含むmdat情報をパケットデータ作成部970に出力する。
【0051】
パケットデータ作成部970は、取得したmdat情報に基づいて第1データ蓄積部962および第2データ蓄積部965からサンプルの実体データを読み出してmdatデータを作成し、mdatデータをパケット結合部971に出力する。
【0052】
そして、パケット結合部971は、moofデータとmdatデータとを結合させて、1パケット分のmp4拡張部データを出力する。
最終的には、出力された1パケット分のmp4拡張部データは、MP4ファイルを作成する装置に取り込まれ、順次作成されるmp4拡張部データが順番に並べられることによって、MP4ファイルの拡張部が作成される。その後、このファイル作成装置で、MP4ファイルの基本部と拡張部とが結合されることによって、MP4ファイルが作成されることになる。
【0053】
【非特許文献1】
ISO/IEC JTC1/SC29/WG11 MPEG、N4854「Proposed Revised Common Text Multimedia File Format Specification」、2002年3月21日
【0054】
【発明が解決しようとする課題】
しかしながら、このような従来の多重化装置によって多重化されたMP4ファイルの拡張部を再生する際には、以下のような問題がある。
その1つとして、まず、従来の多重化装置では、パケットに含まれるサンプルの再生開始時間を考慮することなく多重化が行なわれるので、例えば、ある再生開始時間のビデオサンプルと同期が図られているオーディオサンプルが、ビデオサンプルと異なるパケットに格納される場合がある。そのため、MP4ファイルの再生装置側で、再生時のデータアクセスの効率が悪化するという問題がある。
【0055】
また、従来の多重化装置では、パケットに含まれるサンプルの数を基準として多重化を行なうので、ランダムアクセス可能なサンプル、すなわちイントラフレームに相当するビデオサンプルをパケット内のどこに格納するかは、パケット毎にまちまちとなることが多い。そのため、MP4ファイルの再生装置側で、ランダムアクセス可能なサンプルを検索する際に、パケットに含まれる全てのビデオサンプルを検索しなければならず、サンプルの検索に要する計算量が膨大となってしまうという問題もある。
【0056】
これらの問題について、図28を用いてさらに詳しく説明する。
図28は、従来における多重化装置の問題点を説明するための図である。
図28(a)では、再生時のデータアクセスの効率が悪化するという第1の問題を明らかにする。
【0057】
各mdatに含まれるサンプルのヘッダ情報は、直前のmoofに格納されており、mdat_1に格納されている再生開始時間20sのビデオサンプルに関するヘッダ情報は、moof_1に先頭サンプルとして格納されており、mdat_10に格納されている再生開始時間20sのオーディオサンプルに関するヘッダ情報は、moof_10に最終サンプルとして格納されている。
【0058】
従って、MP4ファイルの再生装置が、コンテンツの再生時間20sの部分を再生しようとすれば、moof_1に格納されているビデオサンプルのヘッダ情報を取得してからオーディオサンプルのヘッダ情報を取得するまでにmoof_10まで検索しなければならず、データアクセスの効率が悪くなってしまう。
【0059】
図28(b)では、ランダムアクセス可能なサンプルの検索に要する計算量が膨大となってしまうという第2の問題を明らかにする。
mdat_1の最後に格納されているi番目のランダムアクセス可能なビデオサンプルに関するヘッダ情報は、moof_1に最終サンプルとして格納されており、mdat_3の最後に格納されているi+1番目のランダムアクセス可能なビデオサンプルに関するヘッダ情報は、moof_3に最終サンプルとして格納されている。
【0060】
従って、MP4ファイルの再生装置が、ランダムアクセスを行なおうとすれば、moofの最終サンプルまで検索しなければならず、検索に必要な計算量が膨大となってしまう。
さらに、これら第1および第2の問題に加えて、従来の多重化装置で作成されるMP4ファイルの拡張部の構成では、サンプルデータを取得するためのシークの回数が多くなるため、光ディスク再生機器等のシーク速度が遅い機器におけるランダムアクセス再生に適さないという問題もある。
【0061】
この問題について、再び図28(b)を用いて説明する。moof_1のi番目のランダムアクセス可能なビデオサンプルにランダムアクセスしようとする場合、再生装置は、まず、i番目のランダムアクセス可能なビデオサンプルのヘッダ情報を取得するために、moof_1の先頭位置まで読み出しポインタを移動させ、moof_1内を順に解析する。このとき、1回目のシークが必要となる。
【0062】
その後、再生装置は、mdat_1のどこにi番目のランダムアクセス可能なビデオサンプルの実体データが格納されているかを取得し、実体データの開始位置へ読み出しポインタを移動させる。このとき、i番目のランダムアクセス可能なビデオサンプルの実体データがmdat_1の終端に格納されているため、moof_1の先頭位置から連続的に読み出しポインタを移動させてサンプルの実体データを取得できず、2回目のシークが必要となる。
【0063】
すなわち、moof_1の先頭位置と実体データの開始位置に読み出しポインタを移動させる時にそれぞれシーク動作を行なうことになるので、再生装置がシーク速度の遅い機器である場合は、ランダムアクセス再生に時間がかかってしまう。特に、このi番目のランダムアクセス可能なビデオサンプルと同期が図られているオーディオサンプル等の実体データが異なるパケット等、ビデオサンプルの実体データと離れて格納されている場合には、さらにシーク動作が必要となり、ランダムアクセス再生を迅速に行なうことが困難となる。
【0064】
そこで、本発明は、これらの問題点に鑑みてなされたものであり、メディアデータの多重化ファイルが再生時のデータアクセスの効率に優れ、サンプルの検索に要する計算量が少なくなるようにメディアデータを多重化することができる多重化装置を提供することを目的とする。
【0065】
また、多重化ファイルがシーク速度の遅い機器におけるランダムアクセス再生に適するようにメディアデータを多重化することができる多重化装置を提供することを目的とする。
【0066】
【課題を解決するための手段】
上記の目的を達成するために、本発明に係る多重化装置は、画像データと、音声データおよびテキストデータのうち少なくとも1つとを含むメディアデータをパケット多重化して多重化データを作成する多重化装置であって、前記メディアデータを取得するメディアデータ取得手段と、前記メディアデータ取得手段が取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析手段と、前記解析手段が取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定手段と、前記パケット単位決定手段が決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成手段と、前記パケット単位決定手段が決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成手段と、前記パケットヘッダ部作成手段が作成したパケットヘッダ部と、前記パケットデータ部作成手段が作成したパケットデータ部とを結合してパケットを作成するパケット化手段とを備え、前記パケット単位決定手段は、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定することを特徴とする。
【0067】
これによって、メディアデータに含まれる画像データと、音声データおよびテキストデータの再生開始時間が揃えられてパケットに格納されることとなるので、再生装置側で再生時におけるデータアクセスの効率を向上させることができる。
【0068】
また、本発明に係る多重化装置は、前記画像データは、動画データであり、前記解析手段は、さらに、前記メディアデータ取得手段が取得した前記動画データを解析して、前記動画データが、画面内符号化サンプルであることを示すイントラフレーム情報が含まれているサンプルを1つ以上含む場合に、前記イントラフレーム情報を取得し、前記パケット単位決定手段は、前記解析手段が前記イントラフレーム情報を取得した場合に、前記イントラフレーム情報と前記再生開始時間情報とに基づいて、前記メディアデータをパケット化する単位を決定し、前記イントラフレーム情報を含む前記動画データのサンプルを、前記パケット化単位の先頭に配置するのが好ましい。
【0069】
これによって、パケットに含まれる先頭のビデオサンプルは、イントラフレームのビデオサンプルとなるので、再生装置側でランダムアクセス時におけるサンプルの検索に要する計算量を大幅に削減することができる。
さらに、本発明に係る多重化装置は、前記パケットデータ部作成手段は、前記パケット化単位に含まれる前記メディアデータのサンプルについて、サンプルの再生開始時間が昇順となるようにインタリーブして格納する前記パケットデータ部を作成するのがより好ましい。
【0070】
これによって、ビデオサンプルとオーディオサンプルとが再生開始時間が昇順となってmdatに格納されるので、再生装置側でのランダムアクセス時におけるシーク動作の回数を少なくすることができ、シーク速度の遅い再生装置でも迅速なランダムアクセス再生を実現することができる。
【0071】
なお、本発明は、このような多重化装置として実現することができるだけでなく、このような多重化装置が備える特徴的な手段をステップとする多重化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【0072】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、本実施の形態におけるビデオデータとして、MPEG-4 Visualの符号化データを用いることとし、本実施の形態におけるオーディオデータとして、MPEG-4 Audioの符号化データを用いることとする。そして、本実施の形態では、主に、ビデオデータとオーディオデータとを多重化する装置について説明するが、テキストデータ等のその他のメディアデータの多重化について排除することを意図するものではない。
【0073】
(実施の形態1)
まず、本発明の実施の形態1に係る多重化装置について、図1から図5を参照しながら説明する。
図1は、本発明の実施の形態1に係る多重化装置の機能的な構成を示すブロック図である。
この多重化装置100は、ビデオデータやオーディオデータを多重化してMP4ファイルの拡張部データを作成する装置であり、第1入力部101、第1データ蓄積部102、第1解析部103、第2入力部104、第2データ蓄積部105、第2データ解析部106、パケット単位決定部107、パケット作成テーブル蓄積部111、パケットヘッダ作成部112、パケットデータ作成部113およびパケット結合部114を備える。
【0074】
第1入力部101は、符号化されたビデオデータを画像符号化装置等から多重化装置100内に取り込むインターフェースであり、取得したビデオ入力データを順次、第1データ蓄積部102に蓄積させる。
第1データ蓄積部102は、ビデオ入力データを一時的に保持するキャッシュメモリやRAM(Random Access Memory)等である。
【0075】
第1解析部103は、第1データ蓄積部102に保持されているビデオ入力データのうちビデオサンプル1つ分のデータであるビデオサンプルデータを読み出して解析し、ビデオサンプルのヘッダ情報を出力する処理部であり、CPUやメモリによって実現される。なお、この第1解析部103において出力されるビデオサンプルヘッダ情報には、ビデオサンプルのサイズ、再生時間長およびイントラフレームであるか否かを示す情報が含まれる。さらに、このビデオサンプルヘッダ情報には、双方向予測を用いたサンプルの場合、復号時間と表示時間の差分情報も含まれる。
【0076】
第2入力部104は、符号化されたオーディオデータを音声符号化装置等から多重化装置100内に取り込むインターフェースであり、取得したオーディオ入力データを順次、第2データ蓄積部105に蓄積させる。
第2データ蓄積部105は、オーディオ入力データを一時的に保持するキャッシュメモリやRAM等である。
【0077】
第2解析部106は、第2データ蓄積部105に保持されているオーディオ入力データのうちオーディオサンプル1つ分のデータであるオーディオサンプルデータを読み出して解析し、オーディオサンプルのヘッダ情報を出力する処理部であり、CPUやメモリによって実現される。なお、この第2解析部106において出力されるオーディオサンプルヘッダ情報には、オーディオサンプルのサイズおよび再生時間長を示す情報が含まれている。
【0078】
パケット単位決定部107は、パケットに含まれるビデオサンプルおよびオーディオサンプルのヘッダ情報を集積させて、パケットに含まれるビデオサンプルの再生開始時間とオーディオサンプルの再生開始時間とが揃うように、ビデオデータおよびオーディオデータのパケット単位を決定する処理部であり、CPUやメモリによって実現される。また、パケット単位決定部107は、決定したパケット単位分のサンプルヘッダ情報の集まりをパケット作成テーブルとしてパケット作成テーブル蓄積部111に出力するとともに、パケット単位の決定後にパケットヘッダの作成を指示するパケット作成信号をパケットヘッダ作成部112に出力する。そして、このパケット単位決定部107は、パケット単位を時間単位で調整する時間調整部108と、ビデオデータのパケット単位を決定するビデオパケット単位決定部109と、オーディオデータのパケット単位を決定するオーディオパケット単位決定部110とを備える。
【0079】
時間調整部108は、パケットが定められた時間単位内に納まるように、パケットの終了時間を調整する処理部である。この時間調整部108は、まず、予め定められた時間(ターゲットタイム)をビデオパケット単位決定部109に出力する。なお、このターゲットタイムは、ユーザが指定することとしてもよい。この場合、多重化装置100は、キーボード等の入力装置を介してターゲットタイムの指定を取得し、入力装置から指定されたターゲットタイムを示すターゲットタイム入力信号が時間調整部108に出力されることとなる。
【0080】
ビデオパケット単位決定部109は、第1解析部103からビデオサンプルヘッダ情報を取得してビデオデータのパケット単位を決定する処理部である。
このビデオパケット単位決定部109は、時間調整部108からターゲットタイムを、また、第1解析部103からビデオサンプルヘッダ情報を取得して、ビデオデータがターゲットタイム内のパケットに納まるように、各ビデオサンプルヘッダ情報に含まれる各ビデオサンプルの再生時間長をカウントしながら、パケットに含まれる最後のビデオサンプルのヘッダ情報まで順次ビデオパケット作成テーブルに追加していく。ビデオパケット単位決定部109は、パケットに含まれる最後のビデオサンプルのヘッダ情報をビデオパケット作成テーブルに追加すると、そのパケットに含まれる最初のビデオサンプルの再生開始時間とそのパケットに含まれるビデオサンプルの再生時間長の総和とを示すビデオサンプル再生時間情報をオーディオパケット単位決定部110に出力する。
【0081】
オーディオパケット単位決定部110は、第2解析部106から取得したオーディオサンプルヘッダ情報を取得してオーディオデータのパケット単位を決定する処理部である。
このオーディオパケット単位決定部110は、ビデオパケット単位決定部109からビデオサンプル再生時間情報を、また、第2解析部106からオーディオサンプルヘッダ情報を取得して、パケットの先頭に、そのパケットに含まれる先頭のビデオサンプルの再生開始時間と同一または近似する再生開始時間のオーディオサンプルを配置し、各オーディオサンプルヘッダ情報に含まれる各オーディオサンプルの再生時間長をカウントしながら、そのパケットに含まれるオーディオサンプルの再生時間長の総和が、そのパケットに含まれるビデオサンプルの再生時間長の総和と同一または近似するように、そのパケットに含まれる最後のオーディオサンプルを配置する。
【0082】
なお、ここで、ビデオサンプルの再生開始時間と近似する再生開始時間のオーディオサンプルとは、ビデオサンプルの再生開始時間以降であって、最も早い再生開始時間のオーディオサンプル、または、ビデオサンプルの再生開始時間以前であって、最も遅い再生開始時間のオーディオサンプルを意味する。
【0083】
その後、オーディオパケット単位決定部110は、パケットに含まれる先頭のオーディオサンプルから最後のオーディオサンプルまでのオーディオサンプルヘッダ情報を順次オーディオパケット作成テーブルに追加する。
パケット作成テーブル蓄積部111は、パケット単位決定部107から出力されるビデオパケット作成テーブルおよびオーディオパケット作成テーブルを一時的に保持するキャッシュメモリやRAM等である。
【0084】
パケットヘッダ作成部112は、パケットのヘッダ情報が格納されるパケットヘッダ部(moof)を作成する処理部であり、CPUやメモリによって実現される。
このパケットヘッダ作成部112は、パケット単位決定部107からパケット作成信号を取得すると、パケット作成テーブル蓄積部111からパケット作成テーブルを参照してパケットサンプルヘッダ情報を読み出してmoofデータを作成し、パケット結合部114に出力する。
【0085】
また、パケットヘッダ作成部112は、パケットに含まれるビデオサンプルおよびオーディオサンプルの実体データが、第1データ蓄積部102および第2データ蓄積部105のどこに格納されているかを示すポインタ情報や、サンプルのサイズを示すサンプルサイズ情報や、パケットデータ部(mdat)の作成を指示する信号が含まれるmdat情報をパケットデータ作成部113に出力する。
【0086】
なお、このパケットヘッダ作成部112は、moofを作成する際に、例えば、AMR(Advanced Multi Rate CODEC)のような、データの途中で符号化レートの切替が発生する符号化方式によって符号化されたメディアデータについて、符号化レートに応じてヘッダ情報を異なるtrafに格納することもできる。
【0087】
パケットデータ作成部113は、パケットの実体データが格納されるパケットデータ部(mdat)を作成する処理部であり、CPUやメモリによって実現される。
このパケットデータ作成部113は、パケットヘッダ作成部112からmdat情報を取得すると、mdat情報に含まれるポインタ情報とサンプルサイズ情報とに基づいて、第1データ蓄積部102からパケットに含まれるビデオサンプルのビデオ実体データを読み出し、第2データ蓄積部105からパケットに含まれるオーディオサンプルのオーディオ実体データを読み出してmdatデータを作成し、パケット結合部114に出力する。
【0088】
パケット結合部114は、moofデータとmdatデータとを結合させて、1パケット分のmp4拡張部データを作成する処理部であり、CPUやメモリによって実現される。このパケット結合部114は、パケットヘッダ作成部112からmoofデータを取得し、パケットデータ作成部113からmdatデータを取得して、moofデータとmdatデータとを結合させて1パケット分のmp4拡張部データを作成し、順次作成したmp4拡張部データをMP4ファイルを作成する装置に出力する。
【0089】
このように構成される多重化装置100において、MP4ファイルの拡張部が作成される処理手順について図2を用いて説明する。
図2は、多重化装置100の処理動作を示すフロー図である。
まず、第1入力部101および第2入力部104は、多重化装置100内にそれぞれビデオデータおよびオーディオデータを取り込むと(S100)、第1入力部101はビデオ入力データを第1データ蓄積部102に蓄積させ、第2入力部104はオーディオ入力データを第2データ蓄積部105に蓄積させる。
【0090】
次に、第1解析部103は、第1データ蓄積部102からビデオサンプルデータを読み出して解析し、ビデオサンプルヘッダ情報をパケット単位決定部107のビデオパケット単位決定部109に出力する。そして、ビデオパケット単位決定部109は、第1解析部103から取得したビデオサンプルヘッダ情報と時間調整部108から取得したターゲットタイムとに基づいてビデオデータのパケット単位を決定する(S110)。なお、ビデオパケット単位決定部109がビデオデータのパケット単位を決定する処理動作については、詳しく後述する。
【0091】
その後、ビデオパケット単位決定部109は、パケット単位が決定されたパケットに含まれるビデオサンプルの再生時間情報をオーディオパケット単位決定部110に出力する(S120)。
そして、オーディオパケット単位決定部110は、ビデオパケット単位決定部109から取得したビデオサンプルの再生時間情報に基づいて、オーディオデータのパケット単位を決定する(S130)。このとき、オーディオパケット単位決定部110は、パケットに含まれる先頭のオーディオサンプルの再生開始時間が、パケットに含まれる先頭のビデオサンプルの再生開始時間と同一またはこれに近似するように、パケット単位を決定する。
【0092】
オーディオパケット単位決定部110がオーディオデータのパケット単位を決定すると、パケット単位決定部107は、パケット作成テーブルをパケット作成テーブル蓄積部111に出力し、パケット作成信号をパケットヘッダ作成部112に出力する。
【0093】
その後、パケットヘッダ作成部112は、決定された単位でmoofデータを作成してパケット結合部114に出力し、また、パケットデータ作成部113は、決定された単位でmdatデータを作成してパケット結合部114に出力し、パケット結合部114がmoofデータとmdatデータとを結合させて、決定された単位で1パケットを作成し(S140)、1パケット分のmp4拡張部データとして出力する。
【0094】
1パケットを作成し終えると、多重化装置100は、第1入力部101および第2入力部104から、まだ入力されるデータがあるか否かを判断する(S150)。ここで、入力データがある場合(S150のNo)、多重化装置100は、バッファメモリ、すなわち第1データ蓄積部102、第2データ蓄積部105およびパケット作成テーブル蓄積部111に保持されているデータのうち、既にパケット化が終了したデータをクリアして(S160)、上記S110からS150までの処理動作を繰り返す。
【0095】
一方、入力データがない場合(S150のYes)、多重化装置100は、MP4ファイルの拡張部の作成処理を終了する。
このように、多重化装置100は、まずビデオデータのパケット単位を決定した後にオーディオデータのパケット単位を決定して、メディアデータの多重化を行なうことによって、MP4ファイルの拡張部を作成する。
【0096】
ここで、図2のステップS110において、ビデオパケット単位決定部109がビデオデータのパケット単位を決定する処理動作について詳しく説明する。
図3は、ビデオパケット単位決定部109の処理動作を示すフロー図である。このフローに先立ってビデオパケット単位決定部109は、時間調整部108からターゲットタイムを取得しておく。
【0097】
そして、ビデオパケット単位決定部109は、第1解析部103からビデオサンプルヘッダ情報を取得すると(S111)、ビデオサンプルヘッダ情報をビデオパケット作成テーブルに追加する(S112)。
このとき、ビデオパケット単位決定部109は、ビデオサンプルヘッダ情報に含まれるビデオサンプルの再生時間長の合計、すなわちパケットに含まれるビデオデータの総再生時間が、先に取得したターゲットタイムになったか、あるいは、ターゲットタイムを超えたか否かを判定する(S113)。
【0098】
パケットに含まれるビデオデータの総再生時間がターゲットタイムに至っていない場合(S113のNo)、ビデオパケット単位決定部109は、次のビデオサンプルヘッダ情報を取得して(S111)、S112とS113の処理動作を繰り返す。
【0099】
パケットに含まれるビデオデータの総再生時間がターゲットタイムに至っている場合(S113のYes)、ビデオパケット単位決定部109は、ビデオパケット作成テーブルに最後に追加したビデオサンプルヘッダ情報が指し示すビデオサンプルを、パケットに含まれる最後のビデオサンプルに決定し(S114)、パケット単位を決定する処理動作を終了する。
【0100】
続いて、図2のステップS130において、オーディオパケット単位決定部110がオーディオデータのパケット単位を決定する処理動作について詳しく説明する。
図4は、オーディオパケット単位決定部110の処理動作を示すフロー図である。
【0101】
このフローに先立って、オーディオパケット単位決定部110は、ビデオパケット単位決定部109からビデオサンプル再生時間情報を取得しておく。
そして、オーディオパケット単位決定部110は、第2解析部106からオーディオサンプルヘッダ情報を取得すると(S131)、先に取得したビデオサンプル再生時間情報を参照して(S132)、パケットに含まれる先頭のビデオサンプルの再生開始時間を読み出し、パケットに含まれる先頭のビデオサンプルの再生開始時間と同一または近似する再生開始時間のオーディオサンプルを、そのパケットのオーディオ先頭サンプルに決定する(S133)。
【0102】
オーディオパケット単位決定部110は、パケットに含まれるオーディオ先頭サンプルを決定すると、オーディオサンプルヘッダ情報を順次取得して(S134)、オーディオサンプルヘッダ情報をオーディオパケット作成テーブルに追加していく(S135)。
【0103】
その後、オーディオパケット単位決定部110は、ビデオサンプル再生時間情報を参照して、パケットに含まれるビデオサンプルの再生時間長の総和を読み出し(S136)、パケットに含まれるオーディオサンプルの再生時間長の総和が、パケットに含まれるビデオサンプルの再生時間長の総和と同一または近似する値となるように、そのパケットに含まれる最後のオーディオサンプルを決定し(S137)、パケット単位を決定する処理動作を終了する。
【0104】
このような多重化装置100による処理動作を経て作成されるMP4ファイルの拡張部は、再生装置側におけるデータアクセスの効率に優れている。その理由について、図5に多重化装置100が作成するMP4ファイル拡張部のデータ構造の例を示して説明する。
【0105】
図5(a)に示すMP4ファイル拡張部200は、複数のパケットから構成され、MP4ファイルの基本部に結合されている。
MP4ファイル拡張部200を構成する各パケットは、パケットヘッダ部のmoofと、パケットデータ部のmdatから構成されている。ここで、パケット_1は、MP4ファイル拡張部200の1番目のパケットであることを意味し、パケット_1に含まれるmoofは、moof_1、パケット_1に含まれるmdatは、mdat_1と示す。また、図5(a)の各mdat中に示す“V”は、ビデオサンプルであることを指し示すものであり、図5(a)の各mdat中に示す“A”は、オーディオサンプルであることを指し示すものである(以下、他の図においても同様とする。)。
【0106】
MP4ファイル拡張部200のmdat_1には、再生開始時間が20秒のビデオサンプルがビデオ先頭サンプルとして格納されており、同じく再生開始時間が20秒のオーディオサンプルがオーディオ先頭サンプルとして格納されている。また、mdat_2にも、再生開始時間が30秒のビデオサンプルがビデオ先頭サンプルとして格納されており、同じく再生開始時間が30秒のオーディオサンプルがオーディオ先頭サンプルとして格納されている。
【0107】
このように、1つのパケットにビデオサンプルとオーディオサンプルとを、各々の再生開始時間を揃えて格納することによって、再生装置側で、MP4ファイル拡張部200を再生する時に、データアクセスに要する計算量を大幅に削減することができる。
【0108】
また、各メディアデータの再生開始時間が揃えられてパケットに格納されているので、任意の数のパケットでデータを分割して、MP4ファイルデータのサイズを所望のサイズに調整することもできる。
ここで、多重化装置100が作成するMP4ファイル拡張部は、図5(b)に示すデータ構造としてもよい。
【0109】
図5(b)は、多重化装置100が作成するMP4ファイル拡張部のデータ構造の第2例を示す図である。
図5(b)に示すMP4ファイル拡張部210のmdat_1には、再生開始時間が20秒のビデオサンプルがビデオ先頭サンプルとして格納されており、mdat_2には、再生開始時間が20秒のオーディオサンプルがオーディオ先頭サンプルとして格納されている。また、mdat_3には、再生開始時間が30秒のビデオサンプルがビデオ先頭サンプルとして格納されており、mdat_4には、再生開始時間が30秒のオーディオサンプルがオーディオ先頭サンプルとして格納されている。
【0110】
このように、1つのパケットにビデオまたはオーディオのいずれか一方のデータを格納して、ビデオデータを格納するパケットと、再生開始時間が揃えられたオーディオデータを格納するパケットを交互に配列することによっても、再生装置側で、MP4ファイル拡張部200を再生する時に、データアクセスに要する計算量を大幅に削減することができる。
【0111】
以上説明したように、本実施の形態1に係る多重化装置100によれば、各メディアデータの再生開始時間を揃えて、各メディアデータをパケット化するので、再生装置側におけるデータアクセスの効率化を図ることができる。
【0112】
(実施の形態2)
次に、本発明の実施の形態2に係る多重化装置について、図6から図9を参照しながら説明する。
本実施の形態2に係る多重化装置は、主な構成要素において、上記実施の形態1に係る多重化装置100と共通するが、パケット単位決定部において特徴的な構成を備えており、この点において上記実施の形態1に係る多重化装置100と異なる。以下、この異なる点を中心に説明する。なお、上記実施の形態1と同一の構成要素については、同一の符号を用いることとし、説明を省略する。
【0113】
図6は、本実施の形態2に係る多重化装置のパケット単位決定部の機能的な構成を示すブロック図である。
このパケット単位決定部117は、パケットに含まれるビデオサンプルおよびオーディオサンプルのヘッダ情報を集積させて、各々の再生開始時間が揃うように、かつ、パケットに含まれる先頭のビデオサンプルがイントラフレームとなるように、ビデオデータおよびオーディオデータのパケット単位を決定する処理部であり、時間調整部108と、ビデオパケット単位決定部119と、オーディオパケット単位決定部110とを備える。
【0114】
ビデオパケット単位決定部119は、第1解析部103からビデオサンプルヘッダ情報を取得してビデオデータのパケット単位を、時間またはイントラフレームのいずれかを基準に決定する処理部であり、時間基準単位調整部120と、Iフレーム基準単位調整部121とを備える。
【0115】
時間基準単位調整部120は、時間調整部108から出力されるターゲットタイムに基づいてビデオデータのパケット単位を調整する処理部であり、各ビデオサンプルヘッダ情報の再生時間長をカウントして、パケットが定められた時間単位となるようにパケット単位を調整する。
【0116】
Iフレーム基準単位調整部121は、第1解析部103から出力されるビデオサンプルヘッダ情報にイントラフレームであることを示す情報が含まれているか否かに基づいてビデオデータのパケット単位を調整する処理部であり、イントラフレームであることを示す情報が含まれているビデオサンプルヘッダ情報を取得すると、イントラフレームのビデオサンプルでパケット単位を切り替えて、次のパケットのビデオ先頭サンプルがイントラフレームのビデオサンプルとなるようにパケット単位を調整する。
【0117】
このように構成されるパケット単位決定部117を備えた本実施の形態2に係る多重化装置において、ビデオパケット単位決定部119がビデオデータのパケット単位を決定する処理動作について詳しく説明する。
図7は、ビデオパケット単位決定部119の処理動作を示すフロー図である。
【0118】
このフローに先立って、ビデオパケット単位決定部119は、時間調整部108からターゲットタイムを取得して、時間基準単位調整部120に保持する。
そして、上記実施の形態1と同様に、ビデオパケット単位決定部119は、第1解析部103からビデオサンプルヘッダ情報を取得すると(S201)、ビデオサンプルヘッダ情報をビデオパケット作成テーブルに追加する(S202)。
【0119】
このとき、ビデオパケット単位決定部119は、Iフレーム基準単位調整部121において、取得したビデオサンプルヘッダ情報にイントラフレームであることを示す情報が含まれているか否かを判定する(S203)。
イントラフレームであることを示す情報が含まれている場合(S203のYes)、ビデオパケット単位決定部119は、時間基準単位調整部120において、パケットに含まれる全ビデオサンプルの総再生時間が、先に取得したターゲットタイムを超えているか否かを判定する(S205)。
【0120】
ここで、イントラフレームであることを示す情報が含まれていない場合(S203のNo)またはターゲットタイムを超えていない場合(S205のNo)、ビデオパケット単位決定部119は、時間基準単位調整部120において、ビデオサンプルヘッダ情報に含まれるビデオサンプルの再生時間長を加算することによって、パケットに含まれるビデオサンプルの再生時間長の総和を更新し(S204)、次のビデオサンプルヘッダ情報を取得して(S201)上記処理動作を繰り返す。
【0121】
一方、ターゲットタイムを超えている場合(S205のYes)、ビデオパケット単位決定部119は、パケットに含まれる最後のビデオサンプルを、Iフレーム基準単位調整部121においてイントラフレームであると判定されたビデオサンプルの1つ前のビデオサンプルに決定し(S206)、ビデオデータのパケット単位決定の処理動作を終了する。
【0122】
このようなビデオパケット単位決定部119の処理動作を経て作成されるMP4ファイルの拡張部は、パケットの先頭に格納されるビデオサンプルが必ずイントラフレームのビデオサンプルとなるので、再生装置側でランダムアクセス時にパケットの先頭のビデオサンプルから再生を開始することができるようになり、ランダムアクセス可能なビデオサンプルの検索に要する計算量を大幅に削減することができる。
【0123】
また、パケットの先頭に格納されるビデオサンプルが必ずイントラフレームのビデオサンプルとなることによって、パケットヘッダ部(moof)では、ビデオトラックのヘッダ情報を格納するtrafの先頭に位置するtrunの先頭サンプルフラグフィールドにのみ、ランダムアクセス可能であることを示す情報を記述すればよく、各trunのサンプルフラグフィールドは、デフォルト値を使用することにより省略できるので、moofデータ作成時の負荷が軽減されるとともに、MP4ファイル全体のファイルサイズの削減を図ることもできる。
【0124】
なお、この処理動作によると、ビデオデータに含まれるイントラフレーム同士の間隔が大きくなると、1パケットあたりの再生時間長が長くなる場合がある。そのため、パケット単位決定部117は、以下に述べるような処理動作としてもよい。
【0125】
図8は、ビデオパケット単位決定部119の第2の処理動作を示すフロー図である。
上記第1の処理動作と同様に、このフローに先立って、ビデオパケット単位決定部119は、時間調整部108からターゲットタイムを取得して、時間基準単位調整部120に保持する。
【0126】
そして、ビデオパケット単位決定部119は、第1解析部103からビデオサンプルヘッダ情報を取得すると(S211)、ビデオサンプルヘッダ情報をビデオパケット作成テーブルに追加する(S212)。
このとき、ビデオパケット単位決定部119は、時間基準単位調整部120において、パケットに含まれる全ビデオサンプルの総再生時間が、先に取得したターゲットタイムを超えているか否かを判定する(S213)。
【0127】
ターゲットタイムを超えている場合(S213のYes)、ビデオパケット単位決定部119は、パケットに含まれる最後のビデオサンプルを、今回取得したビデオサンプルヘッダ情報の1つ前のビデオサンプルヘッダ情報が指し示すビデオサンプルに決定し(S214)、ビデオデータのパケット単位決定の処理動作を終了する。
【0128】
一方、ターゲットタイムを超えていない場合(S213のNo)、ビデオパケット単位決定部119は、Iフレーム基準単位調整部121において、取得したビデオサンプルヘッダ情報にイントラフレームであることを示す情報が含まれているか否かを判定する(S215)。
【0129】
ここで、イントラフレームであることを示す情報が含まれている場合(S215のYes)、ビデオパケット単位決定部119は、パケットに含まれる最後のビデオサンプルを、Iフレーム基準単位調整部121においてイントラフレームであると判定されたビデオサンプルの1つ前のビデオサンプルに決定し(S214)、ビデオデータのパケット単位決定の処理動作を終了する。
【0130】
他方、イントラフレームであることを示す情報が含まれていない場合(S215のNo)、ビデオパケット単位決定部119は、時間基準単位調整部120において、ビデオサンプルヘッダ情報に含まれるビデオサンプルの再生時間長を加算することによって、パケットに含まれるビデオサンプルの再生時間長の総和を更新し(S216)、次のビデオサンプルヘッダ情報を取得して(S211)上記処理動作を繰り返す。
【0131】
このようなビデオパケット単位決定部119の第2の処理動作を経て作成されるMP4ファイルの拡張部は、所定の時間制限を設定してパケットを作成してパケットサイズを所望のサイズ以下に保ちつつ、イントラフレームのビデオサンプルが存在すれば、パケットの先頭に格納することができるので、再生装置側でランダムアクセス時にパケットの先頭のビデオサンプルについてのみランダムアクセス可能なビデオサンプルであるか否かを判定すればよくなり、ランダムアクセス可能なビデオサンプルの検索に要する計算量を削減することができる。
【0132】
なお、ビデオパケット単位決定部119は、ビデオデータのパケット単位決定の処理動作を終了すると、ビデオサンプル再生時間情報をオーディオパケット単位決定部110に出力し、オーディオパケット単位110でオーディオデータのパケット単位決定の処理動作が行なわれるのは、上記実施の形態1の場合と同様である。
【0133】
このようなパケット単位決定部117による処理動作を経て作成されるMP4ファイルの拡張部は、再生装置側におけるランダムアクセス時の検索負荷を軽減させる。その理由について、図9に本実施の形態2に係る多重化装置が作成するMP4ファイル拡張部のデータ構造の例を示して説明する。
【0134】
図9(a)に示すMP4ファイル拡張部220のmdat_1には、イントラフレームのビデオサンプルがビデオ先頭サンプルとして格納されており、mdat_2にも同じくイントラフレームのビデオサンプルがビデオ先頭サンプルとして格納されている。
【0135】
このように、イントラフレームのビデオサンプルを先頭のビデオサンプルとしてパケットに格納することによって、再生装置側でランダムアクセス時において、ランダムアクセス可能なビデオサンプルを取得するためにパケットの先頭のビデオサンプルのみを検索すれば足りるため、パケットに含まれる全てのビデオサンプルを検索する必要がなくなり、ランダムアクセス時のサンプル検索負荷を大幅に軽減することができる。
【0136】
また、このとき、MP4ファイル拡張部220のmoof_1およびmoof_2においても、ビデオトラックのヘッダ情報を格納するtrafの先頭に位置するtrunの先頭サンプルフラグフィールドにのみ、ランダムアクセス可能であることを示す情報を記述することによって、moof_1およびmoof_2のサイズを削減することもできる。
【0137】
ここで、本実施の形態2に係る多重化装置が作成するMP4ファイル拡張部は、図9(b)に示すデータ構造としてもよい。
図9(b)に示すMP4ファイル拡張部230のmdat_1には、イントラフレームのビデオサンプルがビデオ先頭サンプルとして格納されており、mdat_3にも同じくイントラフレームのビデオサンプルがビデオ先頭サンプルとして格納されている。また、mdat_2およびmdat_4には、オーディオサンプルが格納されている。
【0138】
このように、1つのパケットにビデオまたはオーディオのいずれか一方のデータを格納して、ビデオデータを格納するパケットには、イントラフレームのビデオサンプルを先頭のビデオサンプルとして格納することによっても、再生装置側でランダムアクセス時におけるサンプル検索負荷を大幅に軽減することができる。
【0139】
なお、これらMP4ファイル拡張部のデータ構造例のいずれにおいても、パケットに格納される先頭のビデオサンプルの再生開始時間と先頭のオーディオサンプルの再生開始時間とを揃えることによって、再生装置側でのデータアクセスに要する計算量を大幅に削減することができる。
【0140】
以上説明したように、本実施の形態2に係る多重化装置によれば、ランダムアクセス可能なビデオサンプルを先頭のビデオサンプルとして、パケットを作成するので、再生装置におけるランダムアクセス時のサンプル検索に要する計算量を削減することができる。
【0141】
(実施の形態3)
さらに、本発明の実施の形態3に係る多重化装置について、図10から図14を参照しながら説明する。
本実施の形態3に係る多重化装置は、主な構成要素において、上記実施の形態1および2に係る多重化装置と共通するが、パケットデータ作成部において特徴的な構成を備えており、この点において上記実施の形態1および2に係る多重化装置と異なる。以下、この異なる点を中心に説明する。なお、上記実施の形態1および2と同一の構成要素については、同一の符号を用いることとし、説明を省略する。
【0142】
図10は、本実施の形態3に係る多重化装置のパケットデータ作成部の機能的な構成を示すブロック図である。
このパケットデータ作成部130は、パケットデータ部(mdat)を、ビデオサンプルの実体データとオーディオサンプルの実体データとをインタリーブして格納することによって作成する処理部であり、mdat情報取得部131と、ビデオ実体データ読出部132と、オーディオ実体データ読出部133と、インタリーブ配列部134とを備える。
【0143】
mdat情報取得部131は、パケットヘッダ作成部112からmdat情報を取得して、パケットデータ作成部130を構成する他の各部に実体データの読出指示や再生時間情報を出力する処理部である。
このmdat情報取得部131は、パケットヘッダ作成部112からmdat情報を取得するとmdat情報を解析して、ビデオサンプルおよびオーディオサンプルの再生開始時間と再生終了時間とを示す再生時間情報を取得し、この再生時間情報に基づいて、パケットに含まれる全てのビデオサンプルとオーディオサンプルとを再生開始時間が昇順となるように並び替える。
【0144】
そして、mdat情報取得部131は、並び替えた順番に従って再生開始時間の若いサンプルから順に、ビデオ実体データ読出部132にビデオサンプルの実体データの読み出しを指示するビデオ読出指示を出力する、または、オーディオ実体データ読出部133にオーディオサンプルの実体データの読み出しを指示するオーディオ読出指示を出力する。このビデオ読出指示には、ビデオサンプルの実体データが第1データ蓄積部102のどこに格納されているかを示すポインタ情報とビデオサンプルのサイズ情報とが含まれており、オーディオ読出指示には、オーディオサンプルの実体データが第2データ蓄積部105のどこに格納されているかを示すポインタ情報とオーディオサンプルのサイズ情報とが含まれている。
【0145】
ビデオ実体データ読出部132は、mdat情報取得部131からビデオ読出指示を取得して、第1データ蓄積部102からビデオ実体データを読み出す処理部である。このビデオ実体データ読出部132は、ビデオ読出指示に含まれるポインタ情報とサイズ情報とを参照して第1データ蓄積部102からビデオ実体データを読み出して、読み出したビデオ実体データをインタリーブ配列部134に出力する。
【0146】
オーディオ実体データ読出部133は、mdat情報取得部131からオーディオ読出指示を取得して、第2データ蓄積部105からオーディオ実体データを読み出す処理部である。このオーディオ実体データ読出部133は、オーディオ読出指示に含まれるポインタ情報とサイズ情報とを参照して第2データ蓄積部105からオーディオ実体データを読み出して、読み出したオーディオ実体データをインタリーブ配列部134に出力する。
【0147】
インタリーブ配列部134は、ビデオ実体データ読出部132およびオーディオ実体データ読出部133から出力される読出ビデオデータおよび読出オーディオデータを出力される順に逐次取得し、インタリーブして配列することによってmdatデータを作成し、パケット結合部114に出力する処理部である。
【0148】
このように構成されるパケットデータ作成部130を備えた本実施の形態3に係る多重化装置において、パケットデータ作成部130がmdatを作成する処理動作について詳しく説明する。
図11は、パケットデータ作成部130の処理動作を示すフロー図である。
【0149】
まず、パケットデータ作成部130は、mdat情報取得部131において、パケットヘッダ作成部112からmdat情報を取得する(S301)。mdat情報取得部131は、取得したmdat情報を解析して、サンプルのポインタ情報とサイズ情報と再生時間情報とを抽出する。そして、mdat情報取得部131は、抽出したサンプルの再生時間情報に基づいて、パケットに含まれる全てのビデオサンプルとオーディオサンプルとを再生開始時間が昇順となるように並び替える。続いて、mdat情報取得部131は、並び替えた順番に従って再生開始時間の若いサンプルから順に、抽出したビデオサンプルのポインタ情報とサイズ情報とを含むビデオ読出指示をビデオ実体データ読出部132に出力する、または、抽出したオーディオサンプルのポインタ情報とサイズ情報とを含むオーディオ読出指示をオーディオ実体データ読出部133に出力する。
【0150】
ビデオ実体データ読出部132は、ビデオ読出指示を取得すると、ポインタ情報とサイズ情報とを参照して第1データ蓄積部102からビデオ実体データを読み出してインタリーブ配列部134に出力し、オーディオ実体データ読出部133は、オーディオ読出指示を取得すると、ポインタ情報とサイズ情報とを参照して第2データ蓄積部105からオーディオ実体データを読み出してインタリーブ配列部134に出力する(S302)。
【0151】
インタリーブ配列部134は、読み出した実体データをビデオ実体データ読出部132およびオーディオ実体データ読出部133から受け取ると、受け取った順に逐次配列する(S303)。
ここで、インタリーブ配列部134は、ビデオ実体データとオーディオ実体データの全て、すなわち、1パケットに格納される実体データの全ての配列が完了するまで、実体データの配列を続行する(S304のNo、S303)。
【0152】
そして、1パケットに格納される実体データの全ての配列が完了すると(S304のYes)、インタリーブ配列部134は、配列した実体データをmdatデータとして、パケット結合部114に出力して(S305)、mdatの作成の処理動作を終了する。
【0153】
このようなパケットデータ作成部130の処理動作を経て作成されるMP4ファイルの拡張部は、シークに時間がかかる光ディスク機器等におけるランダムアクセス再生に適している。その理由について図12に本実施の形態3に係る多重化装置が作成するMP4ファイル拡張部のデータ構造の概略を示して説明する。
【0154】
図12に示すMP4ファイル拡張部240は、4〜8秒までのコンテンツデータを格納するパケット1、8〜12秒までのコンテンツデータを格納するパケット2、12〜16秒までのコンテンツデータを格納するパケット3というように、複数のパケットが配列されることで構成されている。
【0155】
各パケットは、moof241とmdat242とから構成されており、moof241には、ビデオトラックに関するtfhd(V)およびtraf(V−1、V−2)と、オーディオトラックに関するtfhd(A)およびtraf(A−1、A−2)とが格納されている。また、traf(V−1)とtraf(A−1)に格納されるヘッダ情報が指し示すサンプルの実体データは、mdat_1に格納され、traf(V−2)とtraf(A−2)に格納されるヘッダ情報が指し示すサンプルの実体データは、mdat_2に格納されている。そして、mdat242には、ビデオサンプルの実体データとオーディオサンプルの実体データとが交互にインタリーブして格納されている。
【0156】
このとき、再生装置側で、再生時間が4秒の位置から再生を開始するランダムアクセス処理に際して、moof_1の先頭位置に読み出しポインタを移動させれば、後はmoof_1を解析して、読み出しポインタを連続的に移動させることによりmoof_1に連続するmdat_1から再生に必要な実体データを取得することができる。
【0157】
すなわち、このMP4ファイル拡張部240によれば、再生装置は、moof_1の先頭位置に読み出しポインタを移動させる1回のシーク動作だけで、ランダムアクセス再生を実現することができるので、シークに時間がかかる光ディスク機器等に有効といえる。
【0158】
ここで、mdat242において、ビデオサンプルの実体データの直後に格納されるオーディオサンプルの実体データは、直前のビデオサンプルの再生開始時間と揃えられているので、ビデオデータとオーディオデータの同期再生は担保されている。図13に、MP4ファイル拡張部240のmdat_1に実体データが格納されている様子を示す。
【0159】
図13に示すように、mdat_1の先頭に格納されているビデオサンプル1の再生開始時間は4000msであり、ビデオサンプル1の直後に格納されているオーディオサンプル1の再生開始時間は、4000msであり、ビデオサンプル1とオーディオサンプル1の再生開始時間は同一に揃えられている。
【0160】
通常、ビデオサンプルとオーディオサンプルのサンプルレートは異なることが多いので、ここでは、ビデオサンプルの再生時間長は500msとし、オーディオサンプルの再生時間長は100msとする。
従って、MP4ファイル拡張部240のmdat_1には、ビデオサンプル1の直後にオーディオサンプル1〜5がインタリーブして格納され、その後に、ビデオサンプル2、オーディオサンプル6〜10、ビデオサンプル3・・・の順に格納されることになる。
【0161】
このとき、ビデオサンプル2の再生開始時間は、4500msであり、ビデオサンプル2の直後に格納されているオーディオサンプル6の再生開始時間も4500msであり、ビデオサンプルとそのビデオサンプル直後のオーディオサンプルの再生開始時間は、常に同一となるように揃えられている。
【0162】
また、ビデオサンプルとオーディオサンプルのサンプルレートは異なるため、ビデオサンプルの再生開始時間とその直後のオーディオサンプルの再生開始時間とが同一とならない場合も生じうる。このような場合でも、ビデオサンプル直後のオーディオサンプルを、ビデオサンプルの再生開始時間と近似する再生開始時間を有するオーディオサンプルとすることによって、ビデオデータとオーディオデータの同期再生を担保することができる。
【0163】
図14は、MP4ファイル拡張部のmdat_1に実体データが格納されている様子を示す第2のデータ構造を示す図である。
図14に示すように、MP4ファイル拡張部250のmdat_1の先頭に格納されているビデオサンプル1の再生開始時間は、4000msであり、ビデオサンプル1の直後に格納されているオーディオサンプル1の再生開始時間は、4050msであり、ビデオサンプル1の直後に格納されるオーディオサンプルとして、ビデオサンプル1の再生開始時間以降であって最も早い再生開始時間を有するオーディオサンプル1が格納されている。
【0164】
ここで、先に説明した場合と同様に、ビデオサンプルの再生時間長は500msとし、オーディオサンプルの再生時間長は100msとする。
従って、MP4ファイル拡張部250のmdat_1には、ビデオサンプル1の直後に、オーディオサンプル1〜5がインタリーブして格納され、その後に、ビデオサンプル2、オーディオサンプル6〜10、ビデオサンプル3・・・の順に格納されることになる。
【0165】
このとき、ビデオサンプル2の再生開始時間は、4500msであり、ビデオサンプル2の直後に格納されているオーディオサンプル6の再生開始時間は、4550msであり、ビデオサンプルとそのビデオサンプル直後のオーディオサンプルの再生開始時間は、常に近似するように揃えられている。
【0166】
なお、ここで、ビデオサンプルの直後に格納されるオーディオサンプルとして、ビデオサンプルの再生開始時間以前であって最も遅い再生開始時間を有するオーディオサンプルを格納することとしてもよい。この場合、ビデオサンプル1の直後に格納されるオーディオサンプル1は、3950msの再生時間を有することになる。
【0167】
以上説明したように、本実施の形態3に係る多重化装置によれば、ビデオサンプルの直後に、ビデオサンプルの再生開始時間と同一または近似する再生開始時間を有するオーディオサンプルを配置し、ビデオサンプルとオーディオサンプルとを再生開始時間が昇順となるようにインタリーブしてmdatに格納するので、シーク速度の遅い再生装置においても、迅速にランダムアクセス可能なデータ構造のMP4ファイル拡張部を作成することができる。
【0168】
(実施の形態4)
続いて、本発明の実施の形態4に係る逆多重化装置について、図15および図16を参照しながら説明する。
図15は、本実施の形態4に係る逆多重化装置の機能的な構成を示すブロック図である。
逆多重化装置300は、上記実施の形態1、2および3に係る多重化装置で作成されたMP4ファイル拡張部を含むMP4ファイルデータを取得して解析し、メディアデータを逆多重化して再生データを出力する装置であり、ファイル入力部301、ファイルデータ蓄積部302、ヘッダ分離解析部303、moov解析部304、moof解析部305、traf解析部306、trun解析部307、RA検索部308およびサンプル取得部309を備えている。
【0169】
ファイル入力部301は、MP4ファイルデータを取得するインターフェースであり、取得したMP4ファイルの入力データを順次、ファイルデータ蓄積部302に蓄積させる。
ファイルデータ蓄積部302は、MP4入力データを一時的に保持するキャッシュメモリやRAM等である。
【0170】
ヘッダ分離解析部303は、ファイルデータ蓄積部302に保持されているMP4入力データのうちMP4ファイルのヘッダデータを読み出して解析し、MP4ファイルの基本部ヘッダのmoovデータと、拡張部ヘッダのmoofデータとに分離して、それぞれmoov解析部304およびmoof解析部305に出力する処理部であり、CPUやメモリによって実現される。
【0171】
moov解析部304は、MP4ファイルのmoovを解析して、メディアデータの符号化レートやコンテンツの再生時間長等、メディアデータの解析に必要なメディア情報を取得する処理部であり、CPUやメモリによって実現される。このmoov解析部は、取得したメディア情報をmoof解析部305に出力する。
【0172】
moof解析部305は、MP4ファイルのmoofを、moov解析部304から取得したメディア情報に基づいて解析し、トラック毎のヘッダデータであるtrafデータをtraf解析部306に出力する処理部であり、CPUやメモリによって実現される。
【0173】
traf解析部306は、MP4ファイルのtrafを解析して、trafに含まれるサンプル毎のヘッダデータであるtrunデータをtrun解析部307に出力する処理部であり、CPUやメモリによって実現される。
trun解析部307は、MP4ファイルのtrunを解析して、trun内の各フィールドに記述されている情報を取得して、サンプル取得部309にtrun解析情報を出力する処理部であり、CPUやメモリによって実現される。このtrun解析情報には、例えば、そのサンプルのサイズや、そのサンプルがファイルデータ蓄積部302のどこに格納されているかを示すデータオフセット情報や、さらにビデオサンプルの場合にはイントラフレームであることか否かを示すフラグ情報等が含まれている。
【0174】
また、このtrun解析部307は、次に述べるRA検索部308から、ランダムアクセス後の再生開始位置を示し、再生の開始を指示する出力信号である再生開始指示を取得すると、再生開始指示によって示されるtrunから順に解析して、サンプル取得部309にtrun解析情報を出力する。
【0175】
RA検索部308は、ランダムアクセス後の再生開始時間を示す目標再生時間情報を取得して、ビデオトラックに関するヘッダ情報を格納する先頭のtraf内の先頭のtrunに含まれる先頭サンプルについての再生開始時間、およびイントラフレームであるかを示す情報である先頭サンプル情報を読み出して、ランダムアクセス後の再生開始位置となるビデオサンプルを検索する処理部であり、CPUやメモリによって実現される。このRA検索部308は、ユーザからのランダムアクセス指示を受け付ける逆多重化装置300の入力装置から目標再生時間情報を取得すると、trun解析部307から先頭サンプル情報のみを順次取得して、目標再生時間情報と同一または近似する再生開始時間を有するビデオサンプルを検索し、再生開始指示をtrun解析部307に出力する。
【0176】
サンプル取得部309は、trun解析情報に基づいて、サンプルの実体データを読み出して復号化し、再生データをディスプレイ等の表示装置に出力する処理部である。このサンプル取得部309は、trun解析部307からtrun解析情報を取得すると、これに含まれるデータオフセット情報を参照して、ファイルデータ蓄積部302からサンプルの実体データを読み出す。ここで、trun解析情報の取得開始をもって、再生開始が指示されたものとする。
【0177】
このように構成される逆多重化装置300におけるランダムアクセス処理動作について図16を用いて説明する。
図16は、逆多重化装置300のランダムアクセス処理動作を示すフロー図である。なお、このフローに先立って、逆多重化装置300は、入力装置を介してユーザからのランダムアクセス指示を受け付けているものとする。
【0178】
まず、逆多重化装置300は、ファイル入力部301において、上記実施の形態1、2または3に係る多重化装置において作成されたMP4ファイルのデータを取得すると(S400)、順次ファイルデータ蓄積部302に蓄積させていく。
【0179】
次に、逆多重化装置300は、ヘッダ分離解析部303において、MP4ファイルのファイルヘッダ部のみを分離して解析し(S410)、さらに、基本部ヘッダと拡張部ヘッダとに分離して、moov解析部304において基本部ヘッダを解析し、moof解析部305において拡張部ヘッダを解析する(S420)。
【0180】
続いて、逆多重化装置300は、moof解析部305において、拡張部ヘッダをさらに、トラック毎のヘッダに分離して、traf解析部306において、トラックフラグメント、すなわち、trafを解析する(S430)。このとき、逆多重化装置300は、traf解析部306において、トラックフラグメントをさらに分離して、trun解析部307において、trunを解析する。
【0181】
ここで、逆多重化装置300は、RA検索部308において目標再生時間情報の入力があると、trun解析部307から先頭サンプル情報をRA検索部308に出力し、RA検索部308において、目標再生時間情報と同一または近似する再生開始時間が示されている先頭サンプル情報であるか否かを判定する(S440)。
【0182】
このとき、対象サンプルが見つからなければ(S450のNo)、逆多重化装置300は、RA検索部308において、ファイル内における格納順で次に配置された拡張部ヘッダにおける先頭サンプル情報を取得して、先に取得している目標再生時間情報と同一または近似する再生開始時間が示されている先頭サンプル情報であるか否かを判定する(S440)。
【0183】
一方、対象サンプルが見つかれば(S450のYes)、逆多重化装置300は、RA検索部308において、再生開始指示を生成し、trun解析部307に出力する。trun解析部307は、RA検索部308から再生開始指示を受けると、再生開始指示を受けたtrunから順に、trun解析情報をサンプル取得部309に出力する。ここで、再生開始指示を受けたtrunとは、RA検索部308において再生開始を指示されたサンプルを含むtrunを指す。
【0184】
その後、逆多重化装置300は、サンプル取得部309において、trun解析情報に含まれるデータオフセット情報を参照して、ファイルデータ蓄積部302から対象サンプルの実体データを取得し(S460)、復号化して再生データを出力してランダムアクセス処理動作を終了する。
【0185】
以上説明したように、本実施の形態4に係る逆多重化装置300によれば、上記実施の形態1、2または3に係る多重化装置が作成するMP4ファイル拡張部を含むMP4ファイルについてランダムアクセス再生を行なう際に、各パケットの先頭に格納されているビデオサンプルのみを検索することによって、ランダムアクセス後の再生開始位置とすべきビデオサンプルを判定することができるので、ランダムアクセス時のサンプル検索負荷が大幅に軽減されることになる。
【0186】
(適用例)
ここで、本発明に係る多重化装置の適用例について図17を用いて説明する。
図17は、本発明に係る多重化装置の適用例を示す図である。
本発明に係る多重化装置は、ビデオデータやオーディオデータ等のメディアデータを取得して多重化し、MP4ファイルデータを作成する録画機能付き携帯電話機403やパーソナルコンピュータ404に適用されうる。また、本発明に係る逆多重化装置は、作成されたMP4ファイルデータを読み込んで再生する携帯電話機407に適用されうる。
【0187】
ここで、録画機能付き携帯電話機403およびパーソナルコンピュータ404において作成されたMP4ファイルデータは、SDメモリカード405やDVD−RAM406等の記録媒体に格納されたり、通信ネットワーク402を介して画像配信サーバ401に送信されて、画像配信サーバ401から他の携帯電話機407等に配信されたりする。
【0188】
このように、本発明に係る多重化装置および逆多重化装置は、画像配信システム等におけるMP4ファイルの作成装置または再生装置として利用されるものである。
以上、本発明に係る多重化装置および逆多重化装置について、各実施の形態等に基づいて説明したが、本発明は、これらの実施の形態等に限定されるものではない。
【0189】
例えば、上記各実施の形態では、ビデオデータとして、MPEG-4 Visualの符号化データを用いることとしたが、ビデオデータとして、MPEG-4 AVC(Advanced Video Coding)やH.263等のその他の動画像圧縮符号化方式による符号化データを用いてもよい。なお、MPEG-4 AVC(Advanced Video Coding)やH.263の符号化データでは、1ピクチャが1サンプルに相当することになる。
【0190】
同様に、オーディオデータとして、MPEG-4 Audioの符号化データを用いることとしたが、オーディオデータとして、G.726等のその他の音声圧縮符号化方式による符号化データを用いてもよい。
また、上記各実施の形態では、ビデオデータとオーディオデータとを用いて説明しているが、テキストデータ等が含まれている場合でも、オーディオデータのパケット化と同じように処理することによって、本発明の効果を得ることができる。
【0191】
さらに、上記実施の形態2において、イントラフレーム毎にパケット化を行なうとする場合には、パケット単位決定部117の構成要素から時間基準単位調整部120を省略し、図7のステップS205の処理を省略することとしてもよい。
【0192】
またさらに、上記実施の形態3において、MP4ファイルの再生装置側で予め設定されているバッファモデルに従ってMP4ファイルが再生されることとなっている場合には、そのバッファモデルを満たすようにビデオサンプルのデータとオーディオサンプルのデータとをインタリーブしてmdatに格納することとしてもよい。ここで、バッファモデルとは、規格で定められた条件に従って符号化データが入力される場合に、その規格で定められたサイズのバッファを再生装置に持たせることで、バッファが空になる(アンダーフロー)、または、バッファから溢れる(オーバーフロー)ことなく、再生装置が復号化を行なうことができることを保証するためのモデルである。
【0193】
また、上記実施の形態1、2および3において、作成されるMP4ファイルの拡張部のmoofに格納するtrafの個数について言及していないが、moofに格納するtrafは、1つのトラックにつき1つのtrafを格納するのが好ましい。このようにすることで、トラック毎に、moof内の先頭trafのみを解析すれば、moofに格納されるトラックの全てのサンプルについてのヘッダ情報を取得することができるので、ヘッダ情報取得時の効率がさらに向上することとなる。
【0194】
さらに、上記実施の形態1、2および3において、作成されるMP4ファイルの拡張部のmoofにヘッダ情報が格納されるサンプルの実体データは、moofに連続する1つのmdatに格納するとしているが、moofに連続する複数のmdatに分割して格納することとしてもよい。具体的に説明すると、moof_1にヘッダ情報が格納されるサンプルの実体データを、mdat_1、mdat_2、mdat_3の順に格納し、moof_2にヘッダ情報が格納されるサンプルの実体データを、mdat_4、mdat_5、mdat_6の順に格納するとしてもよい。
【0195】
そして、上記実施の形態2および3では、パケット内に動画像データのイントラフレームが含まれる場合には、パケットの先頭に配置することとしているが、ランダムアクセスが可能であれば、P(Predictive)フレームやB(Bidirectionally predictive)フレーム等、イントラフレーム以外のビデオサンプルをパケットの先頭に配置することとしてもよい。以下、これについて、ビデオデータとしてMPEG-4 AVCの符号化データを用いた場合を例に挙げて説明する。
【0196】
MPEG-4 AVCでは、イントラピクチャから復号化しても正しい復号結果を得られない場合がある。より詳しく説明すると、MPEG-4 AVCのイントラピクチャには、IDR(Instantaneous Decoder Refresh)ピクチャと、それ以外のピクチャ(以下、non-IDRイントラピクチャと称する。)の2種類があり、IDRピクチャから復号化を開始すると、必ず正しい復号結果を得ることができるが、non-IDRイントラピクチャから復号化を開始すると、non-IDRイントラピクチャおよび表示順でnon-IDRイントラピクチャ以降の複数枚のピクチャについて、正しい復号結果を得られないことがある。
【0197】
そのため、MPEG-4 AVCでは、non-IDRイントラピクチャから正しい復号結果を得るためには、どのピクチャから復号化を開始すればよいかを示す補助情報(Recovery Point Supplemental Enhancement Information 以下、“Recovery Point
SEI” と称する。)を付加することができる。
【0198】
例えば、Pic_1、Pic_2、Pic_3、Pic_4、Pic_5で示される5枚のピクチャが、この順序でビデオデータに含まれ、Pic_5がnon-IDRイントラピクチャで、表示順でPic_5およびPic_5以降のピクチャを正しく復号化しようとすると、Pic_1から復号化を開始しなければならない場合、Pic_1の直前に、Recovery Point SEIを配置することによって、ビデオデータ内における格納順で4枚後のピクチャであるPic_5、および、表示順でそれ以降のピクチャを正しく復号化するためには、Pic_1から復号化を開始する必要があることを示すことができる。
【0199】
すなわち、この場合に、Pic_1は、ランダムアクセス可能なサンプルであるといえるので、MPEG-4 AVCの符号化データの場合、IDRピクチャまたはRecovery Point SEIが付加されたピクチャのサンプルを、ランダムアクセス可能なサンプルとして、パケットの先頭に配置することとしてもよい。なお、Recovery Point SEIはイントラピクチャ以外のピクチャに付加することもできる。
【0200】
このとき、Recovery Point SEIが付加されたピクチャのサンプルと、Recovery Point SEIが付加されたピクチャから復号化を開始することで正しい復号結果を得られるようになるピクチャのサンプルとを同一パケットに格納することによって、サンプルデータ取得時の処理量を削減することができる。
【0201】
さらに、IDRピクチャと、Recovery Point SEIが付加されたピクチャのサンプルとは、先頭サンプルフラグ930、あるいはサンプルフラグ935における特定のフラグ値(以降、ノンシンクサンプルフラグと呼ぶ。)により識別することができる。MP4においては、ランダムアクセス可能なサンプルのうち、ランダムアクセスするサンプルと正しい復号結果が得られるサンプルとが一致するサンプルについてのみ、ノンシンクサンプルフラグを0にセットすることができる。このため、IDRピクチャのサンプルではノンシンクサンプルフラグを0とし、Recovery Point SEIが付加されたピクチャのサンプルではノンシンクサンプルフラグを1とすることにより、両者を識別することができる。
【0202】
以上のような識別方法を用いることにより、IDRピクチャとRecovery Point SEIが付加されたピクチャに限らず、互いに異なる性質をもつランダムアクセス可能なサンプルを識別することができる。実際には、以下のように使用することができる。
【0203】
まず1つ目は、特定のサンプルのみを再生していくことにより、早送り再生を行う場合である。このときは、復号したサンプルをただちに表示できることが望ましいので、ノンシンクサンプルフラグが0であるサンプルのみを復号化し、再生することとする。
【0204】
2つ目は、コンテンツの途中から再生を開始する、あるいは特定区間をスキップして次区間の再生を開始するような場合である。このとき、復号を開始するサンプルと正しい復号結果が得られるサンプルとが異なる可能性があるのは、再生開始時のみである。そこで、ノンシンクサンプルフラグが0であるサンプル、あるいはノンシンクサンプルフラグが1であるランダムアクセス可能なサンプルのどちらからでも再生を開始できることとする。
【0205】
なお、このような格納方法は、MPEG-4 AVCのRecovery Point SEIの場合に限られず、復号化を開始するサンプルと、正しい復号結果が得られるサンプルとが異なる場合に適用することができ、例えば、MPEG2-VideoにおけるOpen GOP(Group Of Pictures)のような構造に適用することができる。
【0206】
さらに、サンプルがランダムアクセス可能であることを示す識別情報が付加されている際には、その識別情報によってランダムアクセス可能であることが示されているサンプルをパケットの先頭に配置することとしてもよい。
【0207】
【発明の効果】
以上の説明から明らかなように、本発明に係る多重化装置によれば、メディアデータに含まれる画像データと、音声データおよびテキストデータの再生開始時間が揃えられてパケットに格納されるので、再生装置側における再生時のデータアクセスの効率化を実現することができる。
【0208】
また、パケットに含まれる先頭のビデオサンプルをイントラフレームのビデオサンプルとすることで、再生装置側におけるランダムアクセス時のサンプル検索に要する計算量を大幅に削減することが可能になるという効果が奏される。
さらに、パケットに含まれるビデオサンプルとオーディオサンプルとが再生開始時間が昇順となって格納されるので、再生装置側におけるランダムアクセス時のシーク動作の回数を少なくすることができ、シーク速度の遅い再生装置でも迅速なランダムアクセス再生を可能とする多重化を実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係る多重化装置の機能的な構成を示すブロック図である。
【図2】多重化装置の処理動作を示すフロー図である。
【図3】ビデオパケット単位決定部の処理動作を示すフロー図である。
【図4】オーディオパケット単位決定部の処理動作を示すフロー図である。
【図5】(a)は、多重化装置が作成するMP4ファイル拡張部のデータ構造の第1例を示す図であり、(b)は、多重化装置が作成するMP4ファイル拡張部のデータ構造の第2例を示す図である。
【図6】本実施の形態2に係る多重化装置のパケット単位決定部の機能的な構成を示すブロック図である。
【図7】ビデオパケット単位決定部の第1の処理動作を示すフロー図である。
【図8】ビデオパケット単位決定部の第2の処理動作を示すフロー図である。
【図9】(a)は、多重化装置が作成するMP4ファイル拡張部のデータ構造の第1例を示す図であり、(b)は、多重化装置が作成するMP4ファイル拡張部のデータ構造の第2例を示す図である。
【図10】本実施の形態3に係る多重化装置のパケットデータ作成部の機能的な構成を示すブロック図である。
【図11】パケットデータ作成部の処理動作を示すフロー図である。
【図12】多重化装置が作成するMP4ファイル拡張部のデータ構造の概略を示す図である。
【図13】多重化装置が作成するMP4ファイル拡張部のデータ構造の第1例を示す図である。
【図14】多重化装置が作成するMP4ファイル拡張部のデータ構造の第2例を示す図である。
【図15】本実施の形態4に係る逆多重化装置の機能的な構成を示すブロック図である。
【図16】逆多重化装置の処理動作を示すフロー図である。
【図17】本発明に係る多重化装置の適用例を示す図である。
【図18】従来のMP4ファイルを構成するボックスの構造を説明するための図である。
【図19】従来のMP4ファイルの基本部を説明するための図である。
【図20】(a)は、従来のMP4ファイルにおけるムービーボックスの構造を説明するための図であり、(b)は、従来のMP4ファイルにおけるムービーボックスの構造をツリー状に示す図である。
【図21】従来における拡張部を含むMP4ファイルの構造を示す図である。
【図22】従来におけるムービーフラグメントボックスの構造を説明するための図である。
【図23】従来におけるトラックフラグメントランボックスの構造を説明するための図である。
【図24】(a)従来における拡張部を含むMP4ファイルの第1の構成例を示す図であり、(b)は、従来における拡張部を含むMP4ファイルの第2の構成例を示す図である。
【図25】従来の多重化装置の構成を示すブロック図である。
【図26】従来におけるパケット単位決定部の処理動作を示すフロー図である。
【図27】従来におけるビデオサンプルのヘッダ情報を格納するパケット作成テーブルの一例を示す図である。
【図28】(a)は、従来における多重化装置の第1の問題点を説明するための図であり、(b)は、従来における多重化装置の第2の問題点を説明するための図である。
【符号の説明】
100、960 多重化装置
101、961 第1入力部
102、962 第1データ蓄積部
103、963 第1解析部
104、964 第2入力部
105、965 第2データ蓄積部
106、966 第2解析部
107、117、967 パケット単位決定部
108 時間調整部
109、119 ビデオパケット単位決定部
110 オーディオパケット単位決定部
111、968 パケット作成テーブル蓄積部
112、969 パケットヘッダ作成部
113、130、970 パケットデータ作成部
114、971 パケット結合部
120 時間基準単位調整部
121 Iフレーム基準単位調整部
131 mdat情報取得部
132 ビデオ実体データ読出部
133 オーディオ実体データ読出部
134 インタリーブ配列部
200、210、220、230、240、250 MP4ファイル拡張部
241、923、946、948、955、957 ムービーフラグメントボックス
242、916、945、947、949、956、958 ムービーデータボックス
300 逆多重化装置
301 ファイル入力部
302 ファイルデータ蓄積部
303 ヘッダ分離解析部
304 moov解析部
305 moof解析部
306 traf解析部
307 trun解析部
308 RA検索部
309 サンプル取得部
401 画像配信サーバ
402 通信ネットワーク
403 録画機能付き携帯電話機
404 パーソナルコンピュータ
405 SDメモリカード
406 DVD−RAM
407 携帯電話機
901 ボックス
902 ボックスヘッダ部
903 ボックスデータ格納部
904 ボックスサイズ
905 ボックスタイプ
906 バージョン
907 フラグ
910、920、940、950 MP4ファイル
911、941、951 基本部
912 ファイルヘッダ部
913 ファイルデータ部
914、943、953 ファイルタイプボックス
915、944、954 ムービーボックス
917 ムービーヘッダボックス
918 トラックボックス
919 トラックヘッダボックス
921、942、952 拡張部
922 パケット
924 ムービーフラグメントヘッダボックス
925 トラックフラグメントボックス
926 トラックフラグメントヘッダボックス
927 トラックフラグメントランボックス
928 サンプルカウント
929 データオフセット
930 先頭サンプルフラグ
931 テーブル
932 エントリ
933 サンプルデュレーション
934 サンプルサイズ
935 サンプルフラグ
936 サンプルコンポジションタイムオフセット
968a パケット作成テーブル
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multiplexing device that multiplexes media data such as moving image data and audio data, and a demultiplexing device that reads and demultiplexes a bit string in which media data such as moving image data and audio data is multiplexed. About.
[0002]
[Prior art]
In recent years, with the increase in communication network capacity and advances in transmission technology, the spread of video distribution services that distribute video files including multimedia content such as video, audio, text, or still images to personal computers over the Internet Is remarkable. Also, the international standardization organization 3GPP (Third Generation Partnership Project), which aims to standardize the standard of so-called third generation mobile communication systems such as mobile terminals, is the TS26.234 (Transparent The end-to-end packet switched streaming service has been established, and the video distribution service is expected to be expanded to mobile communication terminals such as mobile phones and PDAs.
[0003]
When distributing a moving image file in a moving image distribution service, first, the multiplexing device captures media data such as a moving image, a still image, audio and text, and header information and media data necessary for reproducing the media data. However, the MP4 file format is attracting attention as a multiplexed file format of the moving image file data.
[0004]
This MP4 file format is a multiplexed file format that is being standardized in ISO / IEC (International Standardization Organization / International Engineering Consortium) JTC1 / SC29 / WG 11 which is an international standardization organization. Because it is adopted, it is expected to be widely spread.
[0005]
Here, the data structure of the MP4 file will be described. The data structure of this MP4 file is disclosed in Non-Patent Document 1.
The MP4 file stores entity information such as header information and media data in units of objects called boxes, and is configured by arranging a plurality of boxes hierarchically.
[0006]
FIG. 18 is a diagram for explaining the structure of a box constituting a conventional MP4 file.
The box 901 stores a box header portion 902 in which header information of the box 901 is stored, and data included in the box 901 (for example, a box in a hierarchy below the box and a field for describing information). A box data storage unit 903.
[0007]
The box header portion 902 has fields of a box size 904, a box type 905, a version 906, and a flag 907.
The box size 904 is a field in which the size information of the entire box 901 including the byte size assigned to this field is described.
[0008]
The box type 905 is a field in which an identifier for identifying the type of the box 901 is described. This identifier is usually represented by four alphabetic character strings. In the following description, each box may be indicated by this identifier.
[0009]
The version 906 is a field in which a version number indicating the version of the box 901 is described, and the flag 907 is a field in which flag information set for each box 901 is described. Since this version 906 and flag 907 are not mandatory fields for all boxes 901, there may be boxes 901 that do not have these fields.
[0010]
An MP4 file composed of a plurality of boxes 901 having such a structure can be roughly divided into a basic part indispensable for the structure of the file and an extended part used as necessary. First, the basic part of the MP4 file will be described.
FIG. 19 is a diagram for explaining a basic part of a conventional MP4 file.
[0011]
The basic part 911 of the MP4 file 910 includes a file header part 912 and a file data part 913.
The file header portion 912 is a portion in which header information of the entire file, for example, information such as a compression encoding method for moving image (video) data, is stored, and includes a file type box 914 and a movie box 915.
[0012]
The file type box 914 is a box identified by an identifier of “ftyp”, and stores information for identifying an MP4 file. As to what kind of media data is stored in the MP4 file, and what kind of compression encoding method is used to store moving image (video) data, audio (audio) data, etc., standardization organizations and services Since the service provider can uniquely define the information, the file type box 914 stores information for identifying which of the MP4 files has been created.
[0013]
The movie box 915 is a box identified by an identifier of “moov”, and stores header information of entity data stored in the file data portion 913, for example, information such as a display time length.
The file data portion 913 includes a movie data box 916 identified by an identifier “mdat”. Instead of the file data portion 913, an external file different from the MP4 file 910 can be referred to. In this way, when referring to an external file, the basic part 911 of the MP4 file 910 is composed of only the file header part 912. In this specification, a case will be described in which entity data is included in the MP4 file 910 instead of referring to the external file.
[0014]
The movie data box 916 is a box for storing media data entity data in units called samples. This sample is the smallest access unit in the MP4 file, and corresponds to the VOP (Video Object Plane) of video data encoded by the MPEG (Moving Picture Experts Group) -4 Visual compression encoding method and the frame of audio data To do.
[0015]
Here, the structure of the movie box 915 will be described by digging down the hierarchy of the structure of the basic part of the conventional MP4 file.
FIG. 20 is a diagram for explaining the structure of a movie box in a conventional MP4 file.
[0016]
As shown in FIG. 20A, the movie box 915 includes the box header portion 902 and the box data storage portion 903 described above. The size information of the movie box 915 is described in the box size 904 field constituting the box header portion 902 (in FIG. 20A, “xxxx”), and the box type 905 field contains An identifier “moov” of the movie box 915 is described.
[0017]
The box data storage unit 903 of the movie box 915 stores header information for each track such as a movie header box 917 storing the header information of the basic unit 911 of the MP4 file 910 and a video track or an audio track. A track box 918 and the like are stored. Here, the track means the entire sample data of each medium included in the MP4 file 910, and tracks such as moving images, audio, and text are referred to as video tracks, audio tracks, text tracks, and the like, respectively. . In addition, when there are a plurality of data of the same medium in the MP4 file 910, a plurality of tracks exist for the same medium. More specifically, for example, when two types of moving image data are included in the MP4 file 910, there are two video tracks.
[0018]
The movie header box 917 also includes the box header portion 902 and the box data storage portion 903 described above, and the size information of the movie header box 917 is stored in the box size 904 field constituting the box header portion 902. In the box type 905 field, the identifier “mvhd” of the movie header box 917 is described. The box data storage unit 903 of the movie header box 917 stores information related to the length of time required to reproduce the content included in the basic unit 911 of the MP4 file 910.
[0019]
Further, in the box size 904 field constituting the box header portion 902 of the track box 918, the size information of the track box 918 is described (in FIG. 20A, “xx”), and the box type 905 is displayed. In the field, an identifier “trak” of the track box 918 is described. A track header box 919 is stored in the box data storage unit 903 of the track box 918.
[0020]
The track header box 919 is a box having a field for describing header information for each track, and is identified by an identifier of “tkhd”. In the box data storage section 903 of the track header box 919, a field for describing a track ID for identifying the type of track, information on a time length required for reproducing the track, and the like are described.
[0021]
As described above, the boxes 901 are hierarchically arranged in the movie box 915, and header information for each track such as video and audio is stored in the track box 918 identified by “trak”. In the lower box included in the track box 918, header information for each track sample is stored.
[0022]
When the structure of the movie box 915 shown in FIG. 20A is shown in a tree shape, a diagram as shown in FIG. 20B is obtained.
That is, a movie header box 917 and a track box 918 are arranged as a lower box group of the movie box 915, a track header box 919 is arranged as a lower box group of the track box 918, and the boxes 901 are arranged hierarchically. You can see that
[0023]
At the beginning of standardization of the MP4 file format, the MP4 file 910 was composed only of the basic unit 911. However, as the amount of media data increases, the size increases, so there are various problems such as difficulty in application to streaming playback, and the use of an extension unit with a plurality of pairs of header boxes and data boxes is required. Improvements have been made.
[0024]
FIG. 21 is a diagram showing a structure of a conventional MP4 file including an extension unit. As shown in FIG. 21, the MP4 file 920 to which the above improvements are added is composed of a basic part 911 and an extension part 921. Since all media data can be stored in the extension unit 921 in the MP4 file 920 including the extension unit 921, the movie data box 916 of the MP4 file basic unit 911 may be omitted.
[0025]
The extension unit 921 is configured by a plurality of packets 922 separated in predetermined units.
This packet 922 includes a pair of a movie fragment box 923 and a movie data box 916, and is also referred to as a movie fragment.
[0026]
The movie data box 916 stores a sample for each track in the predetermined unit divided above, and the movie fragment box 923 is a box for storing header information corresponding to the movie data box 916, and is called “moof”. Identified by an identifier. The structure of the movie fragment box 923 will be described in more detail.
[0027]
FIG. 22 is a diagram for explaining the structure of a conventional movie fragment box.
As shown in FIG. 22, a movie fragment header box 924 and a plurality of track fragment boxes 925 are stored in the box data storage unit 903 of the movie fragment box 923.
[0028]
The movie fragment header box 924 is a box identified by the identifier “mfhd”, and stores header information of the entire movie fragment box 923.
The track fragment box 925 is a box identified by an identifier “traf”, and stores header information for each track.
[0029]
Normally, one track fragment box 925 is prepared for header information of one track, but a plurality of track fragment boxes 925 may be prepared for header information of one track. As described above, when the header information of one track is divided into a plurality of track fragment boxes 925 and stored, the decoding time of the first sample in the track fragment box 925 is arranged in ascending order.
[0030]
In the box data storage unit 903 of the track fragment box 925, a track fragment header box 926 and one or more track fragment run boxes 927 are stored.
The track fragment header box 926 is a box identified by an identifier of “tfhd”, and stores a field describing a track ID for identifying a track type, information on a default value such as a playback time length of a sample, and the like. To do.
[0031]
The track fragment run box 927 is a box identified by an identifier of “trun” and stores header information in units of samples. The track fragment run box 927 will be described in detail with reference to FIG.
FIG. 23 is a diagram for explaining the structure of a conventional track fragment run box 927.
[0032]
The flag 907 is a field in which flag information set for each box 901 is described. Here, each field from the data offset 929 to the sample composition time offset 936 is the track fragment run box 927 following the flag 907. Flag information indicating whether or not the file exists is described.
[0033]
The sample count 928 is a field in which information indicating how many samples of header information are stored in the track fragment run box 927 is described.
The data offset 929 is stored in the movie data box 916 in which the actual data of the sample located at the head of the track fragment run box 927 among the samples whose header information is stored in the track fragment run box 927 is stored. This is a field in which pointer information indicating whether or not
[0034]
The head sample flag 930 is a field in which the value of the field of the sample flag 935 described later can be overwritten when the head sample of the track fragment run box 927 is a randomly accessible sample. Here, random access means, for example, a processing operation of moving the data playback position after 10 seconds in the middle of playback or starting playback from the middle of data in an MP4 file playback device. The randomly accessible sample is a frame that can be decoded independently without referring to the data of other frames in the MP4 file playback device among video samples, that is, an intra-frame encoded frame (so-called intra frame). Means sample. In addition, since any sample can be decoded independently, it can be said that all audio samples are randomly accessible samples.
[0035]
In the table 931, entries 932 indicating header information for each sample are accumulated for the number indicated in the sample count 928.
The entry 932 is a collection of fields indicating header information for each sample, and which field is included is indicated by the flag 907. In the field included in the entry 932, a sample duration 933 in which the playback time length of the sample is described, a sample size 934 in which the sample size is described, and flag information indicating whether the sample is randomly accessible are described. In order to handle samples using bi-directional prediction, there is a sample composition time offset 936 in which the difference value between the sample decoding time and the display time is described.
[0036]
If these fields are not included in the entry 932, the header information of each sample is stored in the track fragment header box 926 and the movie extend box (identifier “mvex”) in the movie fragment box 915. Since default values are described, these default values are used.
[0037]
In the track fragment run box 927, header information is described in order from the sample with the earliest decoding time. Therefore, when the apparatus that plays the MP4 file searches for the header information of the sample, the track ID in the track fragment header box 926 is referred to in order from the first track fragment box 925 in the file, thereby obtaining the track information to be acquired. The track fragment box 925 including the header information is searched, and within the track fragment box 925, the sample header information is searched in order from the first track fragment run box 927.
[0038]
Even in the case of the MP4 file 920 including the extension unit 921, information necessary for the entire track, such as initialization information at the time of decoding, is stored in the movie box 915.
Next, a configuration example of an MP4 file including the extension unit 921 having such a structure will be described.
[0039]
FIG. 24 is a diagram illustrating a configuration example of an MP4 file extension unit including a conventional extension unit.
In FIG. 24, the content storage method will be described with reference to two examples, and the playback time length of the content is assumed to be 60 seconds.
[0040]
The MP4 file 940 shown in FIG. 24A is configured to store media data in both the basic unit 941 and the extension unit 942. That is, media data of 0 to 30 seconds is stored in mdat_1 (reference numeral 945) of the basic unit 941, and media data of 30 to 45 seconds is stored in mdat_2 (reference numeral 947) of the extension section 942, and mdat_3 (reference numeral 949). ) Stores media data for 45 to 60 seconds. The header information of mdat_1 (reference 945) is stored in moov 944, the header information of mdat_2 (reference 947) is stored in moof_1 (reference 946), and the header information of mdat_3 (reference 949) is stored in moof_2 (reference 948). Has been.
[0041]
On the other hand, the MP4 file 950 shown in FIG. 24B is configured to store media data only in the extension unit 952. That is, the basic unit 951 includes ftyp 953 and moov 954 and does not include mdat. Media data from 0 to 30 seconds is stored in mdat_1 (reference numeral 956) of the extension section 952, and 30 to mdat_2 (reference numeral 958). Media data up to 60 seconds is stored. The header information of mdat_1 (reference numeral 956) is stored in moof_1 (reference numeral 955), and the header information of mdat_2 (reference numeral 958) is stored in moof_2 (reference numeral 957).
[0042]
Here, how the extension part of the MP4 file is created will be described with reference to FIGS.
FIG. 25 is a block diagram showing a configuration of a conventional multiplexing apparatus.
The multiplexing device 960 is a device that multiplexes media data and creates MP4 file extension data. Here, it is assumed that the extension data of the MP4 file is created by multiplexing the video data and the audio data.
[0043]
The first input unit 961 takes video data into the multiplexing device 960 and stores it in the first data storage unit 962, and the second input unit 964 takes audio data into the multiplexing device 960 and sends it to the second data storage unit 965. To accumulate.
The first analysis unit 963 reads the video data sample by sample from the first data storage unit 962 and analyzes it, and outputs the header information of the video sample to the packet unit determination unit 967. The second floor seat 966 reads audio data sample by sample from the second data storage unit 965 and analyzes it, and outputs the header information of the audio sample to the packet unit determination unit 967. The video sample header information and the audio sample header information include information indicating the sample size and the playback time length, and the video sample header information also includes information indicating whether the video sample is an intra frame. include.
[0044]
The packet unit determination unit 967 determines packet units of video data and audio data so that the number of samples included in the packet is constant, and creates header information of each packet based on the acquired sample header information.
FIG. 26 shows a processing operation flow of the conventional packet unit determination unit. Here, the number of samples stored in one packet is N, and this value is determined in advance and held in the memory of the multiplexing apparatus 960 or the like.
[0045]
First, when the first analysis unit 963 acquires one video sample (S901) and outputs the video sample header information to the packet unit determination unit 967, the packet unit determination unit 967 stores the video sample header information in the packet creation table. Add (S902).
Next, the packet unit determination unit 967 updates the number of video samples included in the packet (S903), and determines whether the number of video samples included in the packet has become N (S904).
[0046]
Here, when the number of video samples included in the packet is less than N (No in S904), the processes from S901 to S903 are repeated, and the number of video samples included in the packet becomes N (S904). In step S905, the packet unit determination unit 967 packetizes the N video samples and ends the processing operation.
[0047]
Similarly, the packet unit determination unit 967 converts audio samples into packets by performing the processing operations from S901 to S905. Then, the packet unit determination unit 967 repeats the processing operation of this flow until packetization of all samples is completed.
[0048]
FIG. 27 shows an example of a packet creation table for storing conventional video sample header information. In the packet creation table 968a, for each video sample, information on the size of the sample, the playback time length of the sample, and the intra-frame encoded frame flag indicating whether or not the video sample is an intra frame is described. Here, it is shown that the first video sample stored in the packet has a size of 300 bytes, a playback time length of 30 ms, and is not an intra-frame encoded frame. The second video sample is an intra-frame encoded frame. It is shown that. This packet creation table 968a is output to the packet creation table storage unit 968 when these pieces of information are sequentially added by the packet unit determination unit 967 and created up to the Nth sample as the last sample included in one packet. The
[0049]
Referring to FIG. 25 again, subsequently, the packet unit determination unit 967 describes the header information of N samples in the packet creation table 968a, and then outputs the packet creation table 968a to the packet creation table storage unit 968. The packet creation signal is output to the packet header creation unit 969.
[0050]
When the packet header creation unit 969 obtains the packet creation signal, the packet header creation unit 969 reads the packet sample header information from the packet creation table 968a held in the packet creation table storage unit 968, and creates moof data. In addition, the packet header creation unit 969 outputs the created moof data to the packet combining unit 971, and the actual data of the sample included in the packet is stored in the first data storage unit 962 and the second data storage unit 965. Mdat information including the pointer information indicating whether or not and the sample size information are output to the packet data creation unit 970.
[0051]
Based on the acquired mdat information, the packet data creation unit 970 reads sample substance data from the first data storage unit 962 and the second data storage unit 965 to create mdat data, and outputs the mdat data to the packet combining unit 971. To do.
[0052]
Then, the packet combining unit 971 combines the moof data and the mdat data, and outputs mp4 extension unit data for one packet.
Eventually, the output mp4 extension data for one packet is captured by the apparatus that creates the MP4 file, and the mp4 extension data that is sequentially created is arranged in order, so that the extension part of the MP4 file is Created. Thereafter, the MP4 file is created by combining the basic part and the extension part of the MP4 file with this file creation device.
[0053]
[Non-Patent Document 1]
ISO / IEC JTC1 / SC29 / WG11 MPEG, N4854 “Proposed Revised Common Text Multimedia File Format Specification”, March 21, 2002
[0054]
[Problems to be solved by the invention]
However, when reproducing the extended portion of the MP4 file multiplexed by such a conventional multiplexing device, there are the following problems.
As one of them, first, in the conventional multiplexing apparatus, multiplexing is performed without considering the reproduction start time of the sample included in the packet, so that, for example, synchronization with a video sample at a certain reproduction start time is achieved. Audio samples may be stored in different packets than video samples. Therefore, there is a problem that the efficiency of data access at the time of reproduction deteriorates on the reproduction apparatus side of the MP4 file.
[0055]
In addition, in the conventional multiplexing apparatus, multiplexing is performed based on the number of samples included in the packet. Therefore, the random accessible sample, that is, the video sample corresponding to the intra frame is stored in the packet. In many cases, it becomes mixed. Therefore, when searching for a randomly accessible sample on the MP4 file playback device side, all video samples included in the packet must be searched, and the amount of calculation required for searching the sample becomes enormous. There is also a problem.
[0056]
These problems will be described in more detail with reference to FIG.
FIG. 28 is a diagram for explaining problems of a conventional multiplexing apparatus.
FIG. 28A clarifies the first problem that the efficiency of data access during reproduction deteriorates.
[0057]
The header information of the sample included in each mdat is stored in the immediately preceding moof, and the header information regarding the video sample of the playback start time 20 s stored in mdat_1 is stored as the first sample in moof_1, and is stored in mdat_10. The stored header information related to the audio sample of the reproduction start time 20 s is stored as the final sample in moof_10.
[0058]
Therefore, if the MP4 file playback apparatus tries to play back the portion of the content playback time of 20 s, moof_10 from the acquisition of the video sample header information stored in moof_1 to the acquisition of the audio sample header information. The data access efficiency becomes worse.
[0059]
FIG. 28B clarifies the second problem that the amount of calculation required to search for a randomly accessible sample becomes enormous.
The header information related to the i-th randomly accessible video sample stored at the end of mdat_1 is stored as the last sample in moof_1, and is related to the i + 1th randomly accessible video sample stored at the end of mdat_3. The header information is stored as a final sample in moof_3.
[0060]
Therefore, if the MP4 file playback device tries to perform random access, it must search to the last sample of moof, and the amount of calculation required for the search becomes enormous.
Further, in addition to the first and second problems, the configuration of the MP4 file extension unit created by the conventional multiplexing device increases the number of seeks for obtaining sample data, so that the optical disk playback device There is also a problem that it is not suitable for random access reproduction in a device having a low seek speed such as the above.
[0061]
This problem will be described again with reference to FIG. When trying to randomly access the i-th randomly accessible video sample of moof_1, the playback apparatus first reads the pointer to the top position of moof_1 in order to obtain header information of the i-th randomly accessible video sample. , And the inside of moof_1 is analyzed in order. At this time, the first seek is required.
[0062]
After that, the playback apparatus obtains where in mdat_1 the actual data of the i-th randomly accessible video sample is stored, and moves the read pointer to the start position of the actual data. At this time, since the actual data of the i-th randomly accessible video sample is stored at the end of mdat_1, the actual data of the sample cannot be acquired by continuously moving the read pointer from the top position of moof_1. A second seek is required.
[0063]
That is, since the seek operation is performed when the read pointer is moved to the start position of moof_1 and the start position of the actual data, if the playback device is a device with a slow seek speed, it takes time for random access playback. End up. In particular, when the actual data such as an audio sample that is synchronized with the i-th randomly accessible video sample is stored separately from the actual data of the video sample such as a different packet, the seek operation is further performed. It becomes necessary, and it becomes difficult to perform random access reproduction quickly.
[0064]
Therefore, the present invention has been made in view of these problems, and media data is multiplexed so that a multiplexed file of media data is excellent in data access efficiency at the time of reproduction and the calculation amount required for sample search is reduced. An object of the present invention is to provide a multiplexing device that can multiplex.
[0065]
It is another object of the present invention to provide a multiplexing device capable of multiplexing media data so that the multiplexed file is suitable for random access reproduction in a device having a low seek speed.
[0066]
[Means for Solving the Problems]
In order to achieve the above object, a multiplexing apparatus according to the present invention creates a multiplexed data by packet multiplexing media data including image data and at least one of audio data and text data. The media data acquisition means for acquiring the media data, the media data acquired by the media data acquisition means is analyzed, and the minimum of the image data, audio data, and text data included in the media data is analyzed. Analyzing means for obtaining reproduction start time information indicating the reproduction start time of the sample for the sample that is an access unit, and the image data included in the media data based on the reproduction start time information obtained by the analyzing means, Align the playback start time of each sample of audio data and text data A packet unit determining unit for determining a unit for packetizing the media data; a packet header unit generating unit for generating a packet header unit for storing a header of the media data in a packetization unit determined by the packet unit determining unit; A packet data part creating means for creating a packet data part for storing the actual data of the media data in a packetization unit determined by the packet unit determining means; a packet header part created by the packet header part creating means; and the packet Packetizing means for creating a packet by combining the packet data part created by the data part creating means The packet unit determining means determines the unit by aligning the reproduction start times of the samples of the image data, audio data, and text data for all the packets necessary for storing the media data. It is characterized by that.
[0067]
As a result, the playback start times of the image data, audio data, and text data included in the media data are aligned and stored in the packet, so that the playback device can improve the efficiency of data access during playback. Can do.
[0068]
In the multiplexing apparatus according to the present invention, the image data is moving image data, and the analyzing unit further analyzes the moving image data acquired by the media data acquiring unit, and the moving image data is displayed on a screen. When at least one sample including intra frame information indicating that it is an intra-coded sample is included, the intra frame information is acquired, and the packet unit determining means is configured to acquire the intra frame information by the analyzing means. When acquired, the unit for packetizing the media data is determined based on the intra frame information and the playback start time information, and the sample of the moving image data including the intra frame information is determined as the packetization unit. It is preferable to arrange at the head.
[0069]
As a result, since the first video sample included in the packet becomes an intra-frame video sample, the amount of calculation required for searching for the sample at the time of random access on the playback device side can be greatly reduced.
Furthermore, in the multiplexing device according to the present invention, the packet data section creation means stores the media data samples included in the packetization unit in an interleaved manner so that the playback start times of the samples are in ascending order. More preferably, the packet data part is created.
[0070]
As a result, the video sample and audio sample are stored in mdat in ascending order of playback start time, so the number of seek operations during random access on the playback device can be reduced, and playback with a slow seek speed is possible. Even a device can realize quick random access reproduction.
[0071]
The present invention can be realized not only as such a multiplexing apparatus, but also as a multiplexing method using steps characteristic of the multiplexing apparatus as a step, or by performing these steps as a computer. It can also be realized as a program to be executed. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.
[0072]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that MPEG-4 Visual encoded data is used as video data in the present embodiment, and MPEG-4 Audio encoded data is used as audio data in the present embodiment. In the present embodiment, an apparatus for multiplexing video data and audio data will be mainly described. However, it is not intended to exclude multiplexing of other media data such as text data.
[0073]
(Embodiment 1)
First, a multiplexing apparatus according to Embodiment 1 of the present invention will be described with reference to FIGS.
FIG. 1 is a block diagram showing a functional configuration of a multiplexing apparatus according to Embodiment 1 of the present invention.
The multiplexing device 100 is a device that multiplexes video data and audio data to create MP4 file extension data, and includes a first input unit 101, a first data storage unit 102, a first analysis unit 103, a second analysis unit 103, and a second analysis unit 103. An input unit 104, a second data storage unit 105, a second data analysis unit 106, a packet unit determination unit 107, a packet creation table storage unit 111, a packet header creation unit 112, a packet data creation unit 113, and a packet combination unit 114 are provided.
[0074]
The first input unit 101 is an interface for fetching encoded video data from the image encoding device or the like into the multiplexing device 100, and causes the first data storage unit 102 to sequentially store the acquired video input data.
The first data storage unit 102 is a cache memory or RAM (Random Access Memory) that temporarily holds video input data.
[0075]
The first analysis unit 103 reads out and analyzes video sample data that is data for one video sample from the video input data held in the first data storage unit 102, and outputs header information of the video sample Which is realized by a CPU and a memory. Note that the video sample header information output from the first analysis unit 103 includes information indicating the size of the video sample, the playback time length, and whether it is an intra frame. Further, in the case of a sample using bi-directional prediction, the video sample header information includes difference information between the decoding time and the display time.
[0076]
The second input unit 104 is an interface for importing encoded audio data from the speech encoding device or the like into the multiplexing device 100, and causes the second data storage unit 105 to sequentially store the acquired audio input data.
The second data storage unit 105 is a cache memory, RAM, or the like that temporarily holds audio input data.
[0077]
The second analysis unit 106 reads and analyzes audio sample data, which is data for one audio sample among the audio input data held in the second data storage unit 105, and outputs header information of the audio sample Which is realized by a CPU and a memory. Note that the audio sample header information output from the second analysis unit 106 includes information indicating the size and playback time length of the audio sample.
[0078]
The packet unit determination unit 107 accumulates the header information of the video sample and the audio sample included in the packet so that the playback start time of the video sample and the playback start time of the audio sample included in the packet are aligned. A processing unit that determines a packet unit of audio data, and is realized by a CPU and a memory. The packet unit determination unit 107 outputs a collection of sample header information for the determined packet units to the packet generation table storage unit 111 as a packet generation table, and creates a packet for instructing the creation of a packet header after the packet unit is determined The signal is output to the packet header creation unit 112. The packet unit determining unit 107 includes a time adjusting unit 108 that adjusts the packet unit in time units, a video packet unit determining unit 109 that determines a packet unit of video data, and an audio packet that determines a packet unit of audio data. A unit determining unit 110.
[0079]
The time adjustment unit 108 is a processing unit that adjusts the end time of a packet so that the packet is within a predetermined time unit. First, the time adjustment unit 108 outputs a predetermined time (target time) to the video packet unit determination unit 109. The target time may be designated by the user. In this case, the multiplexing apparatus 100 acquires the target time specification via an input device such as a keyboard, and outputs a target time input signal indicating the target time specified from the input device to the time adjustment unit 108. Become.
[0080]
The video packet unit determination unit 109 is a processing unit that acquires video sample header information from the first analysis unit 103 and determines a packet unit of video data.
The video packet unit determination unit 109 acquires the target time from the time adjustment unit 108 and the video sample header information from the first analysis unit 103 so that each video is stored in a packet within the target time. While counting the playback time length of each video sample included in the sample header information, the header information of the last video sample included in the packet is sequentially added to the video packet creation table. When the video packet unit determination unit 109 adds the header information of the last video sample included in the packet to the video packet creation table, the playback start time of the first video sample included in the packet and the video sample included in the packet Video sample playback time information indicating the total playback time length is output to the audio packet unit determination unit 110.
[0081]
The audio packet unit determination unit 110 is a processing unit that acquires the audio sample header information acquired from the second analysis unit 106 and determines the packet unit of audio data.
The audio packet unit determination unit 110 acquires video sample playback time information from the video packet unit determination unit 109 and audio sample header information from the second analysis unit 106, and is included in the head of the packet. The audio sample included in the packet is arranged while arranging the audio sample of the playback start time that is the same as or close to the playback start time of the first video sample, and counting the playback time length of each audio sample included in each audio sample header information The last audio sample included in the packet is arranged so that the total sum of the playback time lengths of the packets is the same as or approximate to the total playback time length of the video samples included in the packets.
[0082]
Here, the audio sample with the reproduction start time approximate to the video sample reproduction start time is the audio sample with the earliest reproduction start time or the video sample reproduction start after the video sample reproduction start time. It means an audio sample with the latest playback start time before the time.
[0083]
Thereafter, the audio packet unit determination unit 110 sequentially adds audio sample header information from the first audio sample to the last audio sample included in the packet to the audio packet creation table.
The packet creation table storage unit 111 is a cache memory, a RAM, or the like that temporarily holds the video packet creation table and the audio packet creation table output from the packet unit determination unit 107.
[0084]
The packet header creation unit 112 is a processing unit that creates a packet header part (moof) in which packet header information is stored, and is realized by a CPU or a memory.
When the packet header creation unit 112 acquires the packet creation signal from the packet unit determination unit 107, the packet header creation unit 112 reads the packet sample header information by referring to the packet creation table from the packet creation table storage unit 111, creates moof data, Output to the unit 114.
[0085]
The packet header creation unit 112 also includes pointer information indicating where in the first data storage unit 102 and the second data storage unit 105 the actual data of the video sample and the audio sample included in the packet is stored, Sample size information indicating the size and mdat information including a signal instructing creation of the packet data portion (mdat) are output to the packet data creation portion 113.
[0086]
Note that the packet header creation unit 112 was encoded by a coding method such as AMR (Advanced Multi Rate CODEC) in which coding rate switching occurs in the middle of data when creating a moof. For media data, header information can also be stored in different trafs according to the encoding rate.
[0087]
The packet data creation unit 113 is a processing unit that creates a packet data part (mdat) in which packet actual data is stored, and is realized by a CPU or a memory.
When the packet data creation unit 113 acquires the mdat information from the packet header creation unit 112, the packet data creation unit 113 receives the video sample contained in the packet from the first data storage unit 102 based on the pointer information and the sample size information contained in the mdat information. The video substance data is read, the audio substance data of the audio sample included in the packet is read from the second data storage unit 105 to generate mdat data, and is output to the packet combining unit 114.
[0088]
The packet combining unit 114 is a processing unit that combines the moof data and the mdat data to create mp4 extension data for one packet, and is realized by a CPU or a memory. The packet combining unit 114 acquires moof data from the packet header generation unit 112, acquires mdat data from the packet data generation unit 113, combines the moof data and mdat data, and mp4 expansion unit data for one packet. Are generated, and the sequentially created mp4 extension data is output to an apparatus for creating an MP4 file.
[0089]
With reference to FIG. 2, a description will be given of a processing procedure for creating an MP4 file extension in the multiplexing apparatus 100 configured as described above.
FIG. 2 is a flowchart showing the processing operation of the multiplexing apparatus 100.
First, when the first input unit 101 and the second input unit 104 capture video data and audio data, respectively, in the multiplexing apparatus 100 (S100), the first input unit 101 stores the video input data in the first data storage unit 102. The second input unit 104 causes the second data storage unit 105 to store the audio input data.
[0090]
Next, the first analysis unit 103 reads and analyzes the video sample data from the first data storage unit 102 and outputs the video sample header information to the video packet unit determination unit 109 of the packet unit determination unit 107. Then, the video packet unit determination unit 109 determines a packet unit of video data based on the video sample header information acquired from the first analysis unit 103 and the target time acquired from the time adjustment unit 108 (S110). The processing operation in which the video packet unit determination unit 109 determines the video data packet unit will be described in detail later.
[0091]
Thereafter, the video packet unit determination unit 109 outputs the reproduction time information of the video sample included in the packet whose packet unit is determined to the audio packet unit determination unit 110 (S120).
Then, the audio packet unit determination unit 110 determines the packet unit of the audio data based on the reproduction time information of the video sample acquired from the video packet unit determination unit 109 (S130). At this time, the audio packet unit determination unit 110 sets the packet unit so that the reproduction start time of the first audio sample included in the packet is the same as or close to the reproduction start time of the first video sample included in the packet. decide.
[0092]
When the audio packet unit determination unit 110 determines the packet unit of the audio data, the packet unit determination unit 107 outputs the packet creation table to the packet creation table storage unit 111 and outputs the packet creation signal to the packet header creation unit 112.
[0093]
Thereafter, the packet header creation unit 112 creates the moof data in the determined unit and outputs it to the packet combining unit 114, and the packet data creation unit 113 creates the mdat data in the determined unit and combines the packets. The packet combining unit 114 combines the moof data and the mdat data to create one packet in the determined unit (S140), and outputs it as mp4 extension data for one packet.
[0094]
When the creation of one packet is completed, the multiplexing apparatus 100 determines whether there is still input data from the first input unit 101 and the second input unit 104 (S150). Here, when there is input data (No in S150), the multiplexing apparatus 100 sets the data held in the buffer memory, that is, the first data storage unit 102, the second data storage unit 105, and the packet creation table storage unit 111. Among them, data that has already been packetized is cleared (S160), and the processing operations from S110 to S150 are repeated.
[0095]
On the other hand, if there is no input data (Yes in S150), the multiplexing apparatus 100 ends the MP4 file extension processing.
As described above, the multiplexing apparatus 100 first determines the packet unit of the video data, then determines the packet unit of the audio data, and multiplexes the media data, thereby creating the extension portion of the MP4 file.
[0096]
Here, the processing operation in which the video packet unit determination unit 109 determines the packet unit of video data in step S110 of FIG. 2 will be described in detail.
FIG. 3 is a flowchart showing the processing operation of the video packet unit determination unit 109. Prior to this flow, the video packet unit determination unit 109 acquires the target time from the time adjustment unit 108.
[0097]
When the video packet unit determination unit 109 acquires the video sample header information from the first analysis unit 103 (S111), the video packet unit determination unit 109 adds the video sample header information to the video packet creation table (S112).
At this time, the video packet unit determination unit 109 determines whether the total playback time length of the video samples included in the video sample header information, that is, the total playback time of the video data included in the packet has reached the previously acquired target time, Alternatively, it is determined whether or not the target time has been exceeded (S113).
[0098]
When the total reproduction time of the video data included in the packet has not reached the target time (No in S113), the video packet unit determination unit 109 acquires the next video sample header information (S111), and performs the processing in S112 and S113. Repeat the operation.
[0099]
When the total playback time of the video data included in the packet has reached the target time (Yes in S113), the video packet unit determination unit 109 determines the video sample indicated by the video sample header information added last to the video packet creation table, The last video sample included in the packet is determined (S114), and the processing operation for determining the packet unit is terminated.
[0100]
Next, the processing operation in which the audio packet unit determination unit 110 determines the audio data packet unit in step S130 of FIG. 2 will be described in detail.
FIG. 4 is a flowchart showing the processing operation of the audio packet unit determination unit 110.
[0101]
Prior to this flow, the audio packet unit determination unit 110 acquires video sample playback time information from the video packet unit determination unit 109.
When the audio packet unit determination unit 110 acquires the audio sample header information from the second analysis unit 106 (S131), the audio packet unit determination unit 110 refers to the previously acquired video sample playback time information (S132), The reproduction start time of the video sample is read, and an audio sample having a reproduction start time that is the same as or close to the reproduction start time of the first video sample included in the packet is determined as the audio first sample of the packet (S133).
[0102]
When the audio packet unit determination unit 110 determines the audio head sample included in the packet, the audio packet unit determination unit 110 sequentially acquires the audio sample header information (S134), and adds the audio sample header information to the audio packet creation table (S135).
[0103]
Thereafter, the audio packet unit determination unit 110 refers to the video sample playback time information, reads the sum of the playback time lengths of the video samples included in the packet (S136), and sums the playback time lengths of the audio samples included in the packet. Determines the last audio sample included in the packet so that it becomes equal to or close to the sum of the playback time lengths of the video samples included in the packet (S137), and ends the processing operation for determining the packet unit To do.
[0104]
The MP4 file extension created through such processing by the multiplexing device 100 is excellent in data access efficiency on the playback device side. The reason will be described with reference to FIG. 5 showing an example of the data structure of the MP4 file extension created by the multiplexing apparatus 100.
[0105]
The MP4 file extension unit 200 shown in FIG. 5A is composed of a plurality of packets and is coupled to the basic part of the MP4 file.
Each packet constituting the MP4 file extension unit 200 is composed of a packet header part moof and a packet data part mdat. Here, the packet_1 means the first packet of the MP4 file extension unit 200, the moof included in the packet_1 is indicated as moof_1, and the mdat included in the packet_1 is indicated as mdat_1. Also, “V” shown in each mdat in FIG. 5A indicates that it is a video sample, and “A” shown in each mdat in FIG. 5A is an audio sample. (Hereinafter, the same applies to other drawings).
[0106]
In mdat_1 of the MP4 file extension unit 200, a video sample with a playback start time of 20 seconds is stored as a video head sample, and an audio sample with a playback start time of 20 seconds is stored as an audio head sample. In mdat_2, a video sample with a playback start time of 30 seconds is stored as a video head sample, and an audio sample with a playback start time of 30 seconds is also stored as an audio head sample.
[0107]
In this way, by storing video samples and audio samples in one packet with their respective playback start times aligned, the amount of calculation required for data access when the MP4 file extension unit 200 is played back on the playback device side. Can be greatly reduced.
[0108]
Further, since the reproduction start times of the respective media data are aligned and stored in the packet, it is possible to divide the data by an arbitrary number of packets and adjust the size of the MP4 file data to a desired size.
Here, the MP4 file extension created by the multiplexing apparatus 100 may have the data structure shown in FIG.
[0109]
FIG. 5B is a diagram illustrating a second example of the data structure of the MP4 file extension created by the multiplexing apparatus 100.
In the mdat_1 of the MP4 file extension unit 210 shown in FIG. 5B, a video sample with a playback start time of 20 seconds is stored as a video head sample, and an audio sample with a playback start time of 20 seconds is stored in mdat_2. Stored as the first audio sample. In mdat_3, a video sample with a playback start time of 30 seconds is stored as a video head sample, and in mdat_4, an audio sample with a playback start time of 30 seconds is stored as an audio head sample.
[0110]
In this way, by storing either video or audio data in one packet, and alternately arranging a packet for storing video data and a packet for storing audio data with the same reproduction start time. However, when the MP4 file expansion unit 200 is played back on the playback device side, the amount of calculation required for data access can be greatly reduced.
[0111]
As described above, according to multiplexing apparatus 100 according to the first embodiment, each media data is packetized by aligning the playback start time of each media data, so that the efficiency of data access on the playback device side is increased. Can be achieved.
[0112]
(Embodiment 2)
Next, a multiplexing apparatus according to Embodiment 2 of the present invention will be described with reference to FIGS.
The multiplexing apparatus according to the second embodiment is common in the main components to the multiplexing apparatus 100 according to the first embodiment, but has a characteristic configuration in the packet unit determination unit. 3 differs from the multiplexing apparatus 100 according to the first embodiment. Hereinafter, this difference will be mainly described. In addition, about the same component as the said Embodiment 1, the same code | symbol shall be used and description is abbreviate | omitted.
[0113]
FIG. 6 is a block diagram showing a functional configuration of the packet unit determination unit of the multiplexing apparatus according to the second embodiment.
The packet unit determination unit 117 accumulates the header information of the video sample and audio sample included in the packet so that the respective reproduction start times are aligned, and the first video sample included in the packet becomes an intra frame. As described above, the processing unit determines a packet unit of video data and audio data, and includes a time adjustment unit 108, a video packet unit determination unit 119, and an audio packet unit determination unit 110.
[0114]
The video packet unit determination unit 119 is a processing unit that acquires video sample header information from the first analysis unit 103 and determines a packet unit of video data based on either time or an intra frame. Unit 120 and an I-frame reference unit adjustment unit 121.
[0115]
The time reference unit adjustment unit 120 is a processing unit that adjusts the packet unit of video data based on the target time output from the time adjustment unit 108, counts the reproduction time length of each video sample header information, The packet unit is adjusted to be a predetermined time unit.
[0116]
The I frame reference unit adjustment unit 121 adjusts the packet unit of video data based on whether or not the video sample header information output from the first analysis unit 103 includes information indicating an intra frame. If the video sample header information that contains information indicating that it is an intra frame is acquired, the packet unit is switched by the video sample of the intra frame, and the video sample of the next packet is the video sample of the intra frame. The packet unit is adjusted so that
[0117]
The processing operation in which the video packet unit determining unit 119 determines the packet unit of video data in the multiplexing apparatus according to the second embodiment having the packet unit determining unit 117 configured as described above will be described in detail.
FIG. 7 is a flowchart showing the processing operation of the video packet unit determination unit 119.
[0118]
Prior to this flow, the video packet unit determination unit 119 acquires the target time from the time adjustment unit 108 and stores the target time in the time reference unit adjustment unit 120.
As in the first embodiment, when the video packet unit determination unit 119 acquires the video sample header information from the first analysis unit 103 (S201), the video packet unit determination unit 119 adds the video sample header information to the video packet creation table (S202). ).
[0119]
At this time, the video packet unit determination unit 119 determines in the I frame reference unit adjustment unit 121 whether the acquired video sample header information includes information indicating an intra frame (S203).
When information indicating an intra frame is included (Yes in S203), the video packet unit determination unit 119 causes the time reference unit adjustment unit 120 to calculate the total playback time of all video samples included in the packet. It is determined whether or not the acquired target time is exceeded (S205).
[0120]
Here, when information indicating an intra frame is not included (No in S203) or when the target time is not exceeded (No in S205), the video packet unit determination unit 119 includes the time reference unit adjustment unit 120. In step S204, the sum of the playback time lengths of the video samples included in the packet is updated by adding the playback time length of the video samples included in the video sample header information (S204), and the next video sample header information is acquired. (S201) The above processing operation is repeated.
[0121]
On the other hand, when the target time is exceeded (Yes in S205), the video packet unit determination unit 119 determines that the last video sample included in the packet is an intra frame in the I frame reference unit adjustment unit 121. The video sample immediately before the sample is determined (S206), and the video data packet unit determination processing operation is terminated.
[0122]
In the extension part of the MP4 file created through the processing operation of the video packet unit determination unit 119, the video sample stored at the head of the packet is always an intra-frame video sample. Sometimes, playback can be started from the first video sample of the packet, and the amount of calculation required to search for a randomly accessible video sample can be greatly reduced.
[0123]
Also, since the video sample stored at the head of the packet is always an intra-frame video sample, the packet header portion (moof) has a trun head sample flag located at the head of the traf storing the video track header information. It is only necessary to describe information indicating that random access is possible only in the field. Since the sample flag field of each trun can be omitted by using the default value, the load at the time of creating the moof data is reduced. The file size of the entire MP4 file can also be reduced.
[0124]
According to this processing operation, when the interval between intra frames included in the video data is increased, the reproduction time length per packet may be increased. Therefore, the packet unit determination unit 117 may perform processing operations as described below.
[0125]
FIG. 8 is a flowchart showing the second processing operation of the video packet unit determination unit 119.
Similar to the first processing operation, prior to this flow, the video packet unit determination unit 119 acquires the target time from the time adjustment unit 108 and holds it in the time reference unit adjustment unit 120.
[0126]
When the video packet unit determination unit 119 acquires the video sample header information from the first analysis unit 103 (S211), the video packet unit determination unit 119 adds the video sample header information to the video packet creation table (S212).
At this time, the video packet unit determination unit 119 determines in the time reference unit adjustment unit 120 whether or not the total playback time of all video samples included in the packet exceeds the previously acquired target time (S213). .
[0127]
When the target time is exceeded (Yes in S213), the video packet unit determination unit 119 indicates the video indicated by the video sample header information immediately before the video sample header information acquired this time as the last video sample included in the packet. The sample is determined (S214), and the processing operation for determining the video data packet unit is terminated.
[0128]
On the other hand, when the target time has not been exceeded (No in S213), the video packet unit determination unit 119 includes information indicating that it is an intra frame in the acquired video sample header information in the I frame reference unit adjustment unit 121. It is determined whether or not (S215).
[0129]
Here, when information indicating an intra frame is included (Yes in S215), the video packet unit determination unit 119 determines the last video sample included in the packet in the I frame reference unit adjustment unit 121. The video sample immediately before the video sample determined to be a frame is determined (S214), and the processing operation for determining the video data packet unit is terminated.
[0130]
On the other hand, when information indicating an intra frame is not included (No in S215), the video packet unit determination unit 119 causes the time reference unit adjustment unit 120 to reproduce the playback time of the video sample included in the video sample header information. By adding the length, the sum of the playback time lengths of the video samples included in the packet is updated (S216), the next video sample header information is acquired (S211), and the above processing operation is repeated.
[0131]
The extension unit of the MP4 file created through the second processing operation of the video packet unit determination unit 119 creates a packet by setting a predetermined time limit and keeps the packet size below a desired size. If there is an intra-frame video sample, it can be stored at the beginning of the packet, so the playback device determines whether or not only the top video sample of the packet is randomly accessible during random access. This can reduce the amount of calculation required to search for a randomly accessible video sample.
[0132]
When the video packet unit determination unit 119 completes the video data packet unit determination processing operation, the video packet unit determination unit 119 outputs the video sample playback time information to the audio packet unit determination unit 110, and determines the audio data packet unit in the audio packet unit 110. The processing operation is performed in the same manner as in the first embodiment.
[0133]
The MP4 file extension unit created through such processing operations by the packet unit determination unit 117 reduces the search load during random access on the playback device side. The reason will be described with reference to FIG. 9 showing an example of the data structure of the MP4 file extension created by the multiplexing apparatus according to the second embodiment.
[0134]
In the mdat_1 of the MP4 file extension unit 220 shown in FIG. 9A, an intra-frame video sample is stored as a video head sample, and an intra-frame video sample is also stored in mdat_2 as a video head sample. .
[0135]
In this way, by storing the intra-frame video sample in the packet as the first video sample, only the first video sample of the packet is acquired in order to obtain a randomly accessible video sample at the time of random access on the playback device side. Since searching is sufficient, there is no need to search all video samples included in the packet, and the sample search load during random access can be greatly reduced.
[0136]
At this time, also in the MOOF_1 and MOOF_2 of the MP4 file extension unit 220, information indicating that random access is possible only in the leading sample flag field of trun located at the beginning of the traf storing the header information of the video track. By describing, the size of moof_1 and moof_2 can also be reduced.
[0137]
Here, the MP4 file extension created by the multiplexing apparatus according to the second embodiment may have the data structure shown in FIG.
In the mdat_1 of the MP4 file extension unit 230 shown in FIG. 9B, the intra-frame video sample is stored as the video head sample, and the intra-frame video sample is also stored in the mdat_3 as the video head sample. . Audio samples are stored in mdat_2 and mdat_4.
[0138]
As described above, the playback device can also be configured by storing either video or audio data in one packet and storing the video sample of the intra frame as the first video sample in the packet storing the video data. The sample search load during random access can be greatly reduced.
[0139]
Note that in any of these data structure examples of the MP4 file extension unit, the data on the playback device side is obtained by aligning the playback start time of the first video sample stored in the packet with the playback start time of the first audio sample. The amount of computation required for access can be greatly reduced.
[0140]
As described above, according to the multiplexing apparatus according to the second embodiment, since a packet is created using a randomly accessible video sample as the first video sample, it is necessary for the playback apparatus to search for a sample during random access. The amount of calculation can be reduced.
[0141]
(Embodiment 3)
Furthermore, a multiplexing apparatus according to Embodiment 3 of the present invention will be described with reference to FIGS.
The multiplexing apparatus according to the third embodiment is common to the multiplexing apparatuses according to the first and second embodiments in the main components, but has a characteristic configuration in the packet data creation unit. In this respect, the multiplexing apparatus according to the first and second embodiments is different. Hereinafter, this difference will be mainly described. In addition, about the same component as the said Embodiment 1 and 2, the same code | symbol shall be used and description is abbreviate | omitted.
[0142]
FIG. 10 is a block diagram showing a functional configuration of the packet data creation unit of the multiplexing apparatus according to the third embodiment.
The packet data creation unit 130 is a processing unit that creates a packet data portion (mdat) by interleaving and storing video sample entity data and audio sample entity data. The mdat information acquisition unit 131, A video entity data reading unit 132, an audio entity data reading unit 133, and an interleave arrangement unit 134 are provided.
[0143]
The mdat information acquisition unit 131 is a processing unit that acquires the mdat information from the packet header creation unit 112 and outputs an instruction to read the actual data and reproduction time information to the other units constituting the packet data creation unit 130.
When the mdat information acquisition unit 131 acquires the mdat information from the packet header creation unit 112, the mdat information analysis unit 131 analyzes the mdat information and acquires reproduction time information indicating the reproduction start time and the reproduction end time of the video sample and the audio sample. Based on the reproduction time information, all video samples and audio samples included in the packet are rearranged so that the reproduction start time is in ascending order.
[0144]
Then, the mdat information acquisition unit 131 outputs a video reading instruction for instructing the video entity data reading unit 132 to read out the actual data of the video sample in order from the sample with the lowest playback start time according to the rearranged order, or the audio An audio read instruction for instructing the substance data reading unit 133 to read the substance data of the audio sample is output. This video read instruction includes pointer information indicating where the actual data of the video sample is stored in the first data storage unit 102 and video sample size information. The audio read instruction includes the audio sample. Pointer information indicating where in the second data storage unit 105 the actual data is stored, and audio sample size information.
[0145]
The video entity data reading unit 132 is a processing unit that acquires a video reading instruction from the mdat information acquisition unit 131 and reads the video entity data from the first data storage unit 102. The video entity data reading unit 132 reads the video entity data from the first data storage unit 102 with reference to the pointer information and the size information included in the video reading instruction, and stores the read video entity data in the interleave arrangement unit 134. Output.
[0146]
The audio entity data reading unit 133 is a processing unit that acquires an audio reading instruction from the mdat information acquisition unit 131 and reads audio entity data from the second data storage unit 105. The audio entity data reading unit 133 reads the audio entity data from the second data storage unit 105 with reference to the pointer information and the size information included in the audio reading instruction, and the read audio entity data to the interleave arrangement unit 134. Output.
[0147]
The interleaving array unit 134 sequentially acquires the read video data and the read audio data output from the video substance data reading unit 132 and the audio substance data reading unit 133 in the order of output, and creates mdat data by arranging them in an interleaved manner. And a processing unit that outputs to the packet combining unit 114.
[0148]
In the multiplexing apparatus according to the third embodiment provided with the packet data creation unit 130 configured as described above, a processing operation in which the packet data creation unit 130 creates mdat will be described in detail.
FIG. 11 is a flowchart showing the processing operation of the packet data creation unit 130.
[0149]
First, the packet data creation unit 130 obtains mdat information from the packet header creation unit 112 in the mdat information acquisition unit 131 (S301). The mdat information acquisition unit 131 analyzes the acquired mdat information and extracts sample pointer information, size information, and reproduction time information. Then, the mdat information acquisition unit 131 rearranges all the video samples and audio samples included in the packet so that the playback start times are in ascending order based on the extracted playback time information of the samples. Subsequently, the mdat information acquisition unit 131 outputs a video reading instruction including pointer information and size information of the extracted video sample to the video entity data reading unit 132 in order from the sample with the smallest playback start time according to the rearranged order. Alternatively, an audio reading instruction including pointer information and size information of the extracted audio sample is output to the audio entity data reading unit 133.
[0150]
When acquiring the video read instruction, the video entity data reading unit 132 reads the video entity data from the first data storage unit 102 with reference to the pointer information and the size information, and outputs the video entity data to the interleave array unit 134. When acquiring the audio reading instruction, the unit 133 reads the audio entity data from the second data storage unit 105 with reference to the pointer information and the size information, and outputs it to the interleave arrangement unit 134 (S302).
[0151]
When the interleaving arrangement unit 134 receives the read entity data from the video entity data reading unit 132 and the audio entity data reading unit 133, the interleaving arrangement unit 134 sequentially arranges the received entity data in the order received (S303).
Here, the interleave arrangement unit 134 continues the arrangement of the entity data until all the arrangement of the video entity data and the audio entity data, that is, all of the entity data stored in one packet is completed (No in S304). S303).
[0152]
When all arrangements of entity data stored in one packet are completed (Yes in S304), the interleave arrangement unit 134 outputs the arranged entity data as mdat data to the packet combining unit 114 (S305). The processing for creating mdat is terminated.
[0153]
The MP4 file extension unit created through the processing operation of the packet data creation unit 130 is suitable for random access reproduction in an optical disk device or the like that takes time to seek. The reason for this will be described with reference to FIG. 12 showing an outline of the data structure of the MP4 file extension created by the multiplexing apparatus according to the third embodiment.
[0154]
The MP4 file extension unit 240 shown in FIG. 12 stores packet 1 for storing content data for 4 to 8 seconds, packet 2 for storing content data for 8 to 12 seconds, and content data for 12 to 16 seconds. A packet 3 is configured by arranging a plurality of packets.
[0155]
Each packet is composed of a moof 241 and an mdat 242. The moof 241 includes tfhd (V) and traf (V-1, V-2) relating to a video track, and tfhd (A) and traf (A-) relating to an audio track. 1, A-2) are stored. The sample entity data indicated by the header information stored in traf (V-1) and traf (A-1) is stored in mdat_1, and stored in traf (V-2) and traf (A-2). Sample entity data indicated by the header information is stored in mdat_2. In the mdat 242, the actual data of the video sample and the actual data of the audio sample are alternately interleaved and stored.
[0156]
At this time, if the read pointer is moved to the top position of moof_1 in the random access process in which the playback starts from the position where the playback time is 4 seconds on the playback device side, the moof_1 is analyzed thereafter, and the read pointer is continuously set. Therefore, the entity data necessary for reproduction can be acquired from mdat_1 that is continuous with moof_1.
[0157]
That is, according to the MP4 file extension unit 240, the playback device can realize random access playback by only one seek operation for moving the read pointer to the top position of moof_1, so it takes time to seek. It can be said that it is effective for optical disk devices.
[0158]
Here, in mdat242, the audio sample entity data stored immediately after the video sample entity data is aligned with the playback start time of the immediately preceding video sample, so that synchronized playback of video data and audio data is guaranteed. ing. FIG. 13 shows a state in which entity data is stored in mdat_1 of the MP4 file extension unit 240.
[0159]
As shown in FIG. 13, the playback start time of the video sample 1 stored at the head of mdat_1 is 4000 ms, and the playback start time of the audio sample 1 stored immediately after the video sample 1 is 4000 ms. The playback start times of the video sample 1 and the audio sample 1 are the same.
[0160]
Usually, the sample rate of the video sample and the audio sample is often different, and here, the playback time length of the video sample is 500 ms, and the playback time length of the audio sample is 100 ms.
Therefore, in mdat_1 of the MP4 file extension unit 240, audio samples 1 to 5 are interleaved and stored immediately after the video sample 1, and thereafter, the video sample 2, the audio samples 6 to 10, the video sample 3,. They are stored in order.
[0161]
At this time, the playback start time of the video sample 2 is 4500 ms, the playback start time of the audio sample 6 stored immediately after the video sample 2 is also 4500 ms, and the playback of the video sample and the audio sample immediately after the video sample is played back. The start times are always set to be the same.
[0162]
Further, since the sample rates of the video sample and the audio sample are different, the playback start time of the video sample and the playback start time of the audio sample immediately after that may not be the same. Even in such a case, synchronized playback of video data and audio data can be ensured by using an audio sample immediately after the video sample as an audio sample having a playback start time approximate to the playback start time of the video sample.
[0163]
FIG. 14 is a diagram illustrating a second data structure showing a state in which entity data is stored in mdat_1 of the MP4 file extension unit.
As shown in FIG. 14, the playback start time of the video sample 1 stored at the head of mdat_1 of the MP4 file extension unit 250 is 4000 ms, and the playback start of the audio sample 1 stored immediately after the video sample 1 is started. The time is 4050 ms, and the audio sample 1 having the earliest reproduction start time after the reproduction start time of the video sample 1 is stored as an audio sample stored immediately after the video sample 1.
[0164]
Here, similarly to the case described above, the playback time length of the video sample is 500 ms, and the playback time length of the audio sample is 100 ms.
Therefore, the audio samples 1 to 5 are interleaved and stored immediately after the video sample 1 in the mdat_1 of the MP4 file extension unit 250, and then the video sample 2, the audio samples 6 to 10, the video sample 3. Are stored in the order of.
[0165]
At this time, the playback start time of the video sample 2 is 4500 ms, the playback start time of the audio sample 6 stored immediately after the video sample 2 is 4550 ms, and the video sample and the audio sample immediately after the video sample are The playback start times are always aligned so as to approximate each other.
[0166]
Here, as an audio sample stored immediately after the video sample, an audio sample having the latest playback start time before the video sample playback start time may be stored. In this case, the audio sample 1 stored immediately after the video sample 1 has a playback time of 3950 ms.
[0167]
As described above, according to the multiplexing apparatus of the third embodiment, an audio sample having a playback start time that is the same as or close to the playback start time of the video sample is arranged immediately after the video sample, and the video sample And the audio sample are interleaved so that the playback start time is in ascending order and stored in mdat. Therefore, even in a playback device with a low seek speed, it is possible to create an MP4 file extension portion having a data structure that can be quickly accessed at random. it can.
[0168]
(Embodiment 4)
Subsequently, a demultiplexing apparatus according to Embodiment 4 of the present invention will be described with reference to FIG. 15 and FIG.
FIG. 15 is a block diagram showing a functional configuration of the demultiplexing apparatus according to the fourth embodiment.
The demultiplexing apparatus 300 acquires and analyzes MP4 file data including the MP4 file extension created by the multiplexing apparatus according to the first, second, and third embodiments, demultiplexes the media data, and plays back the data. A file input unit 301, a file data storage unit 302, a header separation analysis unit 303, a moov analysis unit 304, a moof analysis unit 305, a traf analysis unit 306, a run analysis unit 307, an RA search unit 308, and a sample An acquisition unit 309 is provided.
[0169]
The file input unit 301 is an interface for acquiring MP4 file data, and causes the file data storage unit 302 to store the acquired MP4 file input data sequentially.
The file data storage unit 302 is a cache memory or RAM that temporarily holds MP4 input data.
[0170]
The header separation analysis unit 303 reads and analyzes the MP4 file header data out of the MP4 input data held in the file data storage unit 302, and the MP4 file basic part header moov data and the extension part header moof data. And processing units that are output to the moov analysis unit 304 and the moof analysis unit 305, respectively, and are realized by a CPU or a memory.
[0171]
The moov analysis unit 304 is a processing unit that analyzes the moov of the MP4 file and acquires media information necessary for the analysis of the media data such as the encoding rate of the media data and the playback time length of the content. Realized. The moov analysis unit outputs the acquired media information to the moof analysis unit 305.
[0172]
The moof analysis unit 305 is a processing unit that analyzes the moof of the MP4 file based on the media information acquired from the moov analysis unit 304, and outputs the traf data that is header data for each track to the traf analysis unit 306. And memory.
[0173]
The traf analysis unit 306 is a processing unit that analyzes the traf of the MP4 file and outputs the run data, which is header data for each sample included in the traf, to the run analysis unit 307, and is realized by a CPU or a memory.
The run analysis unit 307 is a processing unit that analyzes the run of the MP4 file, acquires information described in each field in the run, and outputs the run analysis information to the sample acquisition unit 309. It is realized by. The trun analysis information includes, for example, the size of the sample, data offset information indicating where the sample is stored in the file data storage unit 302, and whether it is an intra frame in the case of a video sample. The flag information indicating that is included.
[0174]
Also, the trun analysis unit 307 indicates a reproduction start position after random access from the RA search unit 308 described below, and obtains a reproduction start instruction that is an output signal instructing the start of reproduction. The analysis is sequentially performed from the “run”, and the run analysis information is output to the sample acquisition unit 309.
[0175]
The RA search unit 308 acquires target playback time information indicating the playback start time after random access, and plays start time for the first sample included in the first trun in the first traf that stores the header information regarding the video track. And a processing unit that reads out the head sample information, which is information indicating whether the frame is an intra frame, and searches for a video sample as a playback start position after random access, and is realized by a CPU or a memory. When the RA search unit 308 acquires the target playback time information from the input device of the demultiplexer 300 that accepts a random access instruction from the user, the RA search unit 308 sequentially acquires only the top sample information from the run analysis unit 307, and acquires the target playback time. A video sample having a playback start time that is the same as or similar to the information is searched, and a playback start instruction is output to the run analysis unit 307.
[0176]
The sample acquisition unit 309 is a processing unit that reads and decodes the actual data of the sample based on the trun analysis information, and outputs the reproduction data to a display device such as a display. When the sample acquisition unit 309 acquires the run analysis information from the run analysis unit 307, the sample acquisition unit 309 refers to the data offset information included therein and reads the actual data of the sample from the file data storage unit 302. Here, it is assumed that the reproduction start is instructed when the acquisition of the trun analysis information is started.
[0177]
A random access processing operation in the demultiplexing apparatus 300 configured as described above will be described with reference to FIG.
FIG. 16 is a flowchart showing the random access processing operation of the demultiplexer 300. Prior to this flow, it is assumed that the demultiplexer 300 receives a random access instruction from the user via the input device.
[0178]
First, when the file input unit 301 acquires the data of the MP4 file created in the multiplexing device according to the first, second, or third embodiment (S400), the demultiplexing device 300 sequentially stores the file data storage unit 302. To accumulate.
[0179]
Next, the demultiplexing apparatus 300 separates and analyzes only the file header part of the MP4 file in the header separation analysis unit 303 (S410), and further separates the basic part header and the extension part header into moov. The analysis unit 304 analyzes the basic part header, and the moof analysis unit 305 analyzes the extension part header (S420).
[0180]
Subsequently, in the demultiplexing apparatus 300, the moof analysis unit 305 further separates the extension unit header into headers for each track, and the traf analysis unit 306 analyzes the track fragment, that is, traf (S430). At this time, the demultiplexing apparatus 300 further separates the track fragments in the traf analysis unit 306 and analyzes the trun in the run analysis unit 307.
[0181]
Here, when the target reproduction time information is input in the RA search unit 308, the demultiplexing apparatus 300 outputs the head sample information from the run analysis unit 307 to the RA search unit 308, and the RA search unit 308 outputs the target reproduction time. It is determined whether or not the first sample information indicates the reproduction start time that is the same as or similar to the time information (S440).
[0182]
At this time, if the target sample is not found (No in S450), the demultiplexing apparatus 300 acquires the first sample information in the extension unit header arranged next in the storage order in the file in the RA search unit 308. Then, it is determined whether or not the head sample information indicates the reproduction start time that is the same as or similar to the previously acquired target reproduction time information (S440).
[0183]
On the other hand, if the target sample is found (Yes in S450), the demultiplexer 300 generates a reproduction start instruction in the RA search unit 308 and outputs the reproduction start instruction to the run analysis unit 307. When receiving the playback start instruction from the RA search unit 308, the run analysis unit 307 outputs the run analysis information to the sample acquisition unit 309 in order from the trun that has received the playback start instruction. Here, the trun that has received the instruction to start reproduction refers to the trun that includes the sample instructed to start reproduction by the RA search unit 308.
[0184]
Thereafter, the demultiplexer 300 refers to the data offset information included in the run analysis information in the sample acquisition unit 309, acquires the actual data of the target sample from the file data storage unit 302 (S460), decodes it. The reproduction data is output and the random access processing operation is terminated.
[0185]
As described above, according to the demultiplexing apparatus 300 according to the fourth embodiment, random access is performed on the MP4 file including the MP4 file extension generated by the multiplexing apparatus according to the first, second, or third embodiment. When performing playback, it is possible to determine the video sample that should be the playback start position after random access by searching only the video sample stored at the beginning of each packet. The load will be greatly reduced.
[0186]
(Application example)
Here, an application example of the multiplexing apparatus according to the present invention will be described with reference to FIG.
FIG. 17 is a diagram illustrating an application example of the multiplexing device according to the present invention.
The multiplexing device according to the present invention can be applied to a cellular phone 403 with a recording function and a personal computer 404 that acquire and multiplex media data such as video data and audio data and create MP4 file data. Further, the demultiplexing apparatus according to the present invention can be applied to a mobile phone 407 that reads and reproduces the created MP4 file data.
[0187]
Here, the MP4 file data created in the cellular phone with recording function 403 and the personal computer 404 is stored in a recording medium such as the SD memory card 405 or the DVD-RAM 406 or stored in the image distribution server 401 via the communication network 402. And transmitted from the image distribution server 401 to another mobile phone 407 or the like.
[0188]
As described above, the multiplexing device and the demultiplexing device according to the present invention are used as an MP4 file creation device or playback device in an image distribution system or the like.
As described above, the multiplexing apparatus and the demultiplexing apparatus according to the present invention have been described based on the respective embodiments and the like, but the present invention is not limited to these embodiments and the like.
[0189]
For example, in each of the above embodiments, MPEG-4 Visual encoded data is used as the video data, but other moving images such as MPEG-4 AVC (Advanced Video Coding) and H.263 are used as the video data. You may use the encoding data by an image compression encoding system. In MPEG-4 AVC (Advanced Video Coding) and H.263 encoded data, one picture corresponds to one sample.
[0190]
Similarly, MPEG-4 Audio encoded data is used as the audio data, but encoded data according to another audio compression encoding method such as G.726 may be used as the audio data.
In each of the above embodiments, the video data and the audio data are described. However, even when text data or the like is included, the processing is performed in the same manner as the packetization of the audio data. The effects of the invention can be obtained.
[0191]
Further, in the second embodiment, when packetization is performed for each intra frame, the time reference unit adjustment unit 120 is omitted from the components of the packet unit determination unit 117, and the process of step S205 in FIG. It may be omitted.
[0192]
Furthermore, in the third embodiment, when an MP4 file is to be played in accordance with a buffer model set in advance on the playback device side of the MP4 file, the video sample is set so as to satisfy the buffer model. Data and audio sample data may be interleaved and stored in mdat. Here, the buffer model means that when encoded data is input in accordance with the conditions defined in the standard, the buffer is emptied by providing the playback apparatus with a buffer having a size defined in the standard (underscore). This is a model for ensuring that the playback apparatus can perform decoding without overflowing (overflow) from the buffer.
[0193]
In the first, second, and third embodiments, the number of trafs stored in the moof of the extension part of the MP4 file to be created is not mentioned, but the traf stored in the moof is one traf per track. Is preferably stored. In this way, if only the first traf in the moof is analyzed for each track, the header information for all the samples of the track stored in the moof can be obtained, so the efficiency at the time of obtaining the header information Will be further improved.
[0194]
Furthermore, in Embodiments 1, 2, and 3, sample entity data in which header information is stored in the moof of the extension part of the MP4 file to be created is stored in one mdat continuous with moof. It is good also as dividing | segmenting and storing in several mdat continuous with moof. More specifically, sample entity data in which header information is stored in moof_1 is stored in the order of mdat_1, mdat_2, and mdat_3, and sample entity data in which header information is stored in moof_2 is stored in mdat_4, mdat_5, and mdat_6. You may store in order.
[0195]
In Embodiments 2 and 3, when an intra frame of moving image data is included in a packet, it is arranged at the head of the packet. However, if random access is possible, P (Predictive) Video samples other than intra frames, such as frames and B (Bidirectionally predictive) frames, may be arranged at the head of the packet. Hereinafter, this will be described by taking as an example the case of using MPEG-4 AVC encoded data as video data.
[0196]
In MPEG-4 AVC, there is a case where a correct decoding result cannot be obtained even when decoding from an intra picture. More specifically, there are two types of MPEG-4 AVC intra pictures: IDR (Instantaneous Decoder Refresh) pictures and other pictures (hereinafter referred to as non-IDR intra pictures), which are decoded from IDR pictures. When decoding is started, a correct decoding result can always be obtained, but when decoding is started from a non-IDR intra picture, a non-IDR intra picture and a plurality of pictures after the non-IDR intra picture in display order A correct decoding result may not be obtained.
[0197]
Therefore, in MPEG-4 AVC, in order to obtain a correct decoding result from a non-IDR intra picture, auxiliary information indicating which picture should be decoded (Recovery Point Supplemental Enhancement Information, hereinafter referred to as “Recovery Point”).
SEI ”) can be added.
[0198]
For example, five pictures indicated by Pic_1, Pic_2, Pic_3, Pic_4, and Pic_5 are included in the video data in this order, Pic_5 is a non-IDR intra picture, and Pic_5 and Pic_5 and subsequent pictures are correctly decoded in display order. If decoding is to be started from Pic_1, the Recovery Point SEI is placed immediately before Pic_1, so that Pic_5, which is the fourth picture in the storage order in the video data, and the display are displayed. In order to correctly decode the subsequent pictures in order, it can be shown that it is necessary to start decoding from Pic_1.
[0199]
That is, in this case, it can be said that Pic_1 is a randomly accessible sample. Therefore, in the case of MPEG-4 AVC encoded data, a sample of a picture to which an IDR picture or a recovery point SEI is added can be randomly accessed. It is good also as arrange | positioning at the head of a packet as a sample. Note that Recovery Point SEI can be added to pictures other than intra pictures.
[0200]
At this time, the sample of the picture to which the Recovery Point SEI is added and the picture sample from which a correct decoding result can be obtained by starting decoding from the picture to which the Recovery Point SEI is added are stored in the same packet. As a result, the processing amount at the time of obtaining sample data can be reduced.
[0201]
Furthermore, an IDR picture and a sample of a picture to which Recovery Point SEI is added can be identified by a specific flag value (hereinafter referred to as a non-sync sample flag) in the head sample flag 930 or the sample flag 935. . In MP4, the non-sync sample flag can be set to 0 only for samples in which random access samples and samples for which correct decoding results are obtained among samples that can be accessed randomly. For this reason, the IDR picture sample can be identified by setting the nonsync sample flag to 0, and the picture sample to which the Recovery Point SEI is added by setting the nonsync sample flag to 1.
[0202]
By using the identification method as described above, it is possible to identify randomly accessible samples having different properties, not limited to pictures to which IDR pictures and Recovery Point SEI are added. In practice, it can be used as follows.
[0203]
The first is a case where fast-forward playback is performed by playing back only a specific sample. At this time, since it is desirable that the decoded sample can be displayed immediately, only the sample whose non-sync sample flag is 0 is decoded and reproduced.
[0204]
The second is a case where playback is started from the middle of the content, or a specific section is skipped and playback of the next section is started. At this time, there is a possibility that the sample from which decoding is started and the sample from which a correct decoding result is obtained are only at the start of reproduction. Therefore, it is assumed that reproduction can be started from either a sample whose nonsync sample flag is 0 or a randomly accessible sample whose nonsync sample flag is 1.
[0205]
Note that such a storage method is not limited to MPEG-4 AVC Recovery Point SEI, and can be applied when a sample for starting decoding is different from a sample from which a correct decoding result is obtained. It can be applied to a structure such as Open GOP (Group Of Pictures) in MPEG2-Video.
[0206]
Further, when identification information indicating that the sample is randomly accessible is added, the sample indicated by the identification information as being randomly accessible may be arranged at the head of the packet. .
[0207]
【The invention's effect】
As is apparent from the above description, according to the multiplexing device of the present invention, the reproduction start times of the image data, audio data, and text data included in the media data are aligned and stored in the packet. The efficiency of data access during playback on the device side can be realized.
[0208]
In addition, by using the first video sample included in the packet as an intra-frame video sample, it is possible to significantly reduce the amount of calculation required for sample search at random access on the playback device side. The
In addition, video samples and audio samples contained in the packet are stored in ascending order of playback start time, so the number of seek operations during random access on the playback device can be reduced, and playback with a slow seek speed is possible. Multiplexing that enables quick random access reproduction can be realized even in the apparatus.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a functional configuration of a multiplexing apparatus according to Embodiment 1 of the present invention.
FIG. 2 is a flowchart showing a processing operation of the multiplexing apparatus.
FIG. 3 is a flowchart showing a processing operation of a video packet unit determination unit.
FIG. 4 is a flowchart showing a processing operation of an audio packet unit determination unit.
FIG. 5A is a diagram illustrating a first example of a data structure of an MP4 file extension unit created by a multiplexing device, and FIG. 5B is a data structure of an MP4 file extension unit created by a multiplexing device; It is a figure which shows the 2nd example.
FIG. 6 is a block diagram showing a functional configuration of a packet unit determination unit of the multiplexing apparatus according to the second embodiment.
FIG. 7 is a flowchart showing a first processing operation of a video packet unit determination unit.
FIG. 8 is a flowchart showing a second processing operation of the video packet unit determination unit.
FIG. 9A is a diagram illustrating a first example of a data structure of an MP4 file extension created by a multiplexing device, and FIG. 9B is a data structure of an MP4 file extension created by a multiplexing device; It is a figure which shows the 2nd example.
FIG. 10 is a block diagram showing a functional configuration of a packet data creation unit of the multiplexing apparatus according to the third embodiment.
FIG. 11 is a flowchart showing a processing operation of a packet data creation unit.
FIG. 12 is a diagram showing an outline of a data structure of an MP4 file extension created by a multiplexing device.
FIG. 13 is a diagram illustrating a first example of a data structure of an MP4 file extension created by the multiplexing device.
FIG. 14 is a diagram illustrating a second example of the data structure of the MP4 file extension created by the multiplexing device.
FIG. 15 is a block diagram showing a functional configuration of a demultiplexing apparatus according to the fourth embodiment.
FIG. 16 is a flowchart showing the processing operation of the demultiplexer.
FIG. 17 is a diagram illustrating an application example of a multiplexing device according to the present invention.
FIG. 18 is a diagram for explaining the structure of a box constituting a conventional MP4 file.
FIG. 19 is a diagram for explaining a basic part of a conventional MP4 file.
20A is a diagram for explaining the structure of a movie box in a conventional MP4 file, and FIG. 20B is a diagram showing the structure of a movie box in a conventional MP4 file in a tree shape.
FIG. 21 is a diagram illustrating a structure of a conventional MP4 file including an extension unit.
FIG. 22 is a diagram for explaining the structure of a conventional movie fragment box.
FIG. 23 is a diagram for explaining the structure of a conventional track fragment run box.
24A is a diagram illustrating a first configuration example of an MP4 file including a conventional extension unit, and FIG. 24B is a diagram illustrating a second configuration example of an MP4 file including a conventional extension unit. is there.
FIG. 25 is a block diagram showing a configuration of a conventional multiplexing apparatus.
FIG. 26 is a flowchart showing a processing operation of a conventional packet unit determination unit.
FIG. 27 is a diagram showing an example of a packet creation table for storing conventional header information of video samples.
FIG. 28A is a diagram for explaining a first problem of the conventional multiplexing device, and FIG. 28B is a diagram for explaining a second problem of the conventional multiplexing device. FIG.
[Explanation of symbols]
100, 960 Multiplexer
101, 961 1st input part
102, 962 First data storage unit
103, 963 First analysis unit
104, 964 second input section
105, 965 Second data storage unit
106,966 Second analysis unit
107, 117, 967 Packet unit determination unit
108 Time adjustment section
109, 119 Video packet unit determination unit
110 Audio packet unit determination unit
111, 968 packet creation table storage unit
112,969 Packet header creation unit
113, 130, 970 Packet data creation unit
114, 971 packet combining part
120 Time base unit adjustment section
121 I frame reference unit adjustment unit
131 mdat information acquisition unit
132 Video substance data reading unit
133 Audio entity data reading unit
134 Interleaved array part
200, 210, 220, 230, 240, 250 MP4 file extension
241, 923, 946, 948, 955, 957 Movie fragment box
242, 916, 945, 947, 949, 956, 958 Movie data box
300 Demultiplexer
301 File input section
302 File data storage unit
303 Header separation analysis unit
304 moov analysis part
305 moof analysis part
306 traf analysis unit
307 run analysis part
308 RA search unit
309 Sample acquisition unit
401 Image distribution server
402 Communication network
403 Mobile phone with recording function
404 Personal computer
405 SD memory card
406 DVD-RAM
407 mobile phone
901 box
902 Box header
903 Box data storage
904 box size
905 box type
906 version
907 flag
910, 920, 940, 950 MP4 file
911, 941, 951 Basic part
912 File header
913 File data part
914, 943, 953 File type box
915, 944, 954 Movie box
917 Movie header box
918 Track box
919 Track header box
921, 942, 952 Expansion part
922 packets
924 Movie fragment header box
925 track fragment box
926 Track fragment header box
927 truck fragment runbox
928 sample count
929 data offset
930 First sample flag
931 table
932 entries
933 Sample duration
934 sample size
935 sample flag
936 Sample composition time offset
968a packet creation table

Claims (16)

画像データと、音声データおよびテキストデータのうち少なくとも1つとを含むメディアデータをパケット多重化して多重化データを作成する多重化装置であって、
前記メディアデータを取得するメディアデータ取得手段と、
前記メディアデータ取得手段が取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析手段と、
前記解析手段が取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定手段と、
前記パケット単位決定手段が決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成手段と、
前記パケット単位決定手段が決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成手段と、
前記パケットヘッダ部作成手段が作成したパケットヘッダ部と、前記パケットデータ部作成手段が作成したパケットデータ部とを結合してパケットを作成するパケット化手段とを備え
前記パケット単位決定手段は、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する
ことを特徴とする多重化装置。
A multiplexing apparatus that packet-multiplexes media data including image data and at least one of audio data and text data to create multiplexed data,
Media data acquisition means for acquiring the media data;
Analysis of the media data acquired by the media data acquisition means, and a playback start indicating the playback start time of the sample for the sample that is the minimum access unit of the image data, audio data, and text data included in the media data An analysis means for acquiring time information;
Based on the reproduction start time information acquired by the analysis means, a unit for packetizing the media data is determined by aligning the reproduction start times of the samples of the image data, audio data, and text data included in the media data. A packet unit determining means to perform,
A packet header part creating means for creating a packet header part for storing a header of the media data in a packetization unit determined by the packet unit determining means;
A packet data part creating means for creating a packet data part for storing the actual data of the media data in a packetization unit determined by the packet unit determining means;
A packetizing unit for creating a packet by combining the packet header part created by the packet header part creating unit and the packet data part created by the packet data part creating unit ;
The packet unit determining means determines the unit by aligning the reproduction start times of the samples of the image data, audio data, and text data for all packets necessary for storing the media data. Multiplexer to do.
前記パケット単位決定手段は、
前記パケット化単位の先頭に配置される前記画像データのサンプルの再生開始時間に、前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルの再生開始時間を揃える
ことを特徴とする請求項1記載の多重化装置。
The packet unit determining means includes
The reproduction start times of the audio data and text data samples arranged at the beginning of the packetization unit are aligned with the reproduction start times of the image data samples arranged at the beginning of the packetization unit. The multiplexing apparatus according to claim 1.
前記パケット単位決定手段は、
前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルを、前記パケット化単位の先頭に配置される前記画像データのサンプルの再生開始時間以後であって、前記画像データのサンプルの再生開始時間に最も近い再生開始時間のサンプルとする
ことを特徴とする請求項2記載の多重化装置。
The packet unit determining means includes
The audio data and the text data sample arranged at the beginning of the packetization unit are after the reproduction start time of the image data sample arranged at the beginning of the packetization unit, and the sample of the image data The multiplexing apparatus according to claim 2, wherein a reproduction start time sample closest to the reproduction start time is used.
前記パケット単位決定手段は、
前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルを、前記パケット化単位の先頭に配置される前記画像データのサンプルの再生開始時間以前であって、前記画像データのサンプルの再生開始時間に最も近い再生開始時間のサンプルとする
ことを特徴とする請求項2記載の多重化装置。
The packet unit determining means includes
The audio data and the text data sample arranged at the head of the packetization unit are before the reproduction start time of the image data sample arranged at the head of the packetization unit, and the image data sample The multiplexing apparatus according to claim 2, wherein a reproduction start time sample closest to the reproduction start time is used.
前記画像データは、動画データであり、
前記解析手段は、さらに、
前記メディアデータ取得手段が取得した前記動画データを解析して、前記動画データが、画面内符号化サンプルであることを示すイントラフレーム情報が含まれているサンプルを1つ以上含む場合に、前記イントラフレーム情報を取得し、
前記パケット単位決定手段は、
前記解析手段が前記イントラフレーム情報を取得した場合に、前記イントラフレーム情報と前記再生開始時間情報とに基づいて、前記メディアデータをパケット化する単位を決定する
ことを特徴とする請求項1記載の多重化装置。
The image data is video data,
The analysis means further includes:
When the moving image data acquired by the media data acquisition unit is analyzed, and the moving image data includes one or more samples including intra frame information indicating that it is an intra-screen encoded sample, the intra Get frame information
The packet unit determining means includes
The unit for packetizing the media data is determined based on the intra frame information and the reproduction start time information when the analyzing unit acquires the intra frame information. Multiplexer.
前記パケット単位決定手段は、
前記イントラフレーム情報を含む前記動画データのサンプルを、前記パケット化単位の先頭に配置する
ことを特徴とする請求項5記載の多重化装置。
The packet unit determining means includes
The multiplexing apparatus according to claim 5, wherein a sample of the moving image data including the intra frame information is arranged at a head of the packetization unit.
前記パケット単位決定手段は、
前記パケット化単位の先頭に配置される前記イントラフレーム情報を含む前記動画データのサンプルの再生開始時間に、前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルの再生開始時間を揃える
ことを特徴とする請求項6記載の多重化装置。
The packet unit determining means includes
The playback start time of the audio data and text data samples placed at the beginning of the packetization unit at the playback start time of the video data samples including the intra frame information placed at the beginning of the packetization unit The multiplexing apparatus according to claim 6, wherein:
前記パケットデータ部作成手段は、
前記パケット化単位に含まれる前記メディアデータのサンプルについて、サンプルの再生開始時間が昇順となるようにインタリーブして格納する前記パケットデータ部を作成する
ことを特徴とする請求項1記載の多重化装置。
The packet data part creation means includes:
2. The multiplexing apparatus according to claim 1, wherein the packet data unit that stores and interleaves the media data samples included in the packetization unit so that the reproduction start times of the samples are in ascending order is created. .
前記パケットデータ部作成手段は、
前記パケット化単位に含まれる前記メディアデータのサンプルを、予め設定されている規定を満たすようにインタリーブして格納する前記パケットデータ部を作成する
ことを特徴とする請求項8記載の多重化装置。
The packet data part creation means includes:
The multiplexing apparatus according to claim 8, wherein the packet data unit that stores the media data samples included in the packetization unit in an interleaved manner so as to satisfy a predetermined rule is created.
画像データと、音声データおよびテキストデータのうち少なくとも1つとを含むメディアデータをパケット多重化して多重化データを作成する多重化方法であって、
前記メディアデータを取得するメディアデータ取得ステップと、
前記メディアデータ取得ステップにおいて取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析ステップと、
前記解析ステップにおいて取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定ステップと、
前記パケット単位決定手ステップにおいて決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成ステップと、
前記パケット単位決定ステップにおいて決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成ステップと、
前記パケットヘッダ部作成ステップにおいて作成したパケットヘッダ部と、前記パケットデータ部作成ステップにおいて作成したパケットデータ部とを結合してパケットを作成するパケット化ステップとを含み、
前記パケット単位決定ステップでは、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する
ことを特徴とする多重化方法。
A multiplexing method for creating multiplexed data by packet multiplexing media data including image data and at least one of audio data and text data,
A media data acquisition step of acquiring the media data;
The media data acquired in the media data acquisition step is analyzed, and a playback start indicating the playback start time of the sample for the sample that is the minimum access unit of the image data, audio data, and text data included in the media data is started. An analysis step to obtain time information;
Based on the reproduction start time information acquired in the analysis step, a unit for packetizing the media data is determined by aligning the reproduction start times of the samples of the image data, audio data, and text data included in the media data. A packet unit determination step to be performed;
A packet header part creating step for creating a packet header part for storing a header of the media data in the packetization unit determined in the packet unit determiner step;
A packet data part creating step for creating a packet data part for storing the actual data of the media data in the packetization unit determined in the packet unit determining step;
Seen containing a packet header portion created in the packet header part generation step, and a packetizing step of creating a packet by combining the packet data unit that was created in the packet data unit generating step,
In the packet unit determination step, the unit is determined by aligning the reproduction start times of the samples of the image data, audio data, and text data for all packets necessary for storing the media data. Multiplexing method to do.
前記パケット単位決定ステップにおいて、
前記パケット化単位の先頭に配置される前記画像データのサンプルの再生開始時間に、前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルの再生開始時間を揃える
ことを特徴とする請求項10記載の多重化方法。
In the packet unit determination step,
The reproduction start time of the audio data and the text data sample arranged at the head of the packetization unit is aligned with the reproduction start time of the image data sample arranged at the head of the packetization unit. The multiplexing method according to claim 10.
前記画像データは、動画データであり、
前記解析ステップにおいて、さらに、
前記メディアデータ取得ステップにおいて取得した前記動画データを解析して、前記動画データが、画面内符号化サンプルであることを示すイントラフレーム情報が含まれているサンプルを1つ以上含む場合に、前記イントラフレーム情報を取得し、
前記パケット単位決定ステップにおいて、
前記解析ステップにおいて前記イントラフレーム情報を取得した場合に、前記イントラフレーム情報と前記再生開始時間情報とに基づいて、前記メディアデータをパケット化する単位を決定する
ことを特徴とする請求項10記載の多重化方法。
The image data is video data,
In the analyzing step,
When the moving image data acquired in the media data acquisition step is analyzed, and the moving image data includes one or more samples including intra frame information indicating that it is an intra-screen encoded sample, the intra Get frame information
In the packet unit determination step,
The unit for packetizing the media data is determined based on the intra frame information and the reproduction start time information when the intra frame information is acquired in the analyzing step. Multiplexing method.
前記パケット単位決定ステップにおいて、
前記イントラフレーム情報を含む前記動画データのサンプルを、前記パケット化単位の先頭に配置する
ことを特徴とする請求項12記載の多重化方法。
In the packet unit determination step,
The multiplexing method according to claim 12, wherein a sample of the moving image data including the intra frame information is arranged at the head of the packetization unit.
前記パケット単位決定ステップにおいて、
前記パケット化単位の先頭に配置される前記イントラフレーム情報を含む前記動画データのサンプルの再生開始時間に、前記パケット化単位の先頭に配置される前記音声データおよび前記テキストデータのサンプルの再生開始時間を揃える
ことを特徴とする請求項13記載の多重化方法。
In the packet unit determination step,
The playback start time of the audio data and text data samples placed at the beginning of the packetization unit at the playback start time of the video data sample including the intra frame information placed at the beginning of the packetization unit The multiplexing method according to claim 13, wherein:
前記パケットデータ部作成ステップにおいて、
前記パケット化単位に含まれる前記メディアデータのサンプルについて、サンプルの再生開始時間が昇順となるようにインタリーブして格納する前記パケットデータ部を作成する
ことを特徴とする請求項10記載の多重化方法。
In the packet data part creation step,
11. The multiplexing method according to claim 10, wherein the packet data unit is generated to interleave and store the media data samples included in the packetization unit so that the reproduction start times of the samples are in ascending order. .
画像データと、音声データおよびテキストデータのうち少なくとも1つとを含むメディアデータをパケット多重化して多重化データを作成する多重化装置のためのプログラムであって、
前記メディアデータを取得するメディアデータ取得ステップと、
前記メディアデータ取得ステップにおいて取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析ステップと、
前記解析ステップにおいて取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定ステップと、
前記パケット単位決定手ステップにおいて決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成ステップと、
前記パケット単位決定ステップにおいて決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成ステップと、
前記パケットヘッダ部作成ステップにおいて作成したパケットヘッダ部と、前記パケットデータ部作成ステップにおいて作成したパケットデータ部とを結合してパケットを作成するパケット化ステップとを含み、
前記パケット単位決定ステップでは、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する多重化方法における各ステップをコンピュータに実行させる
ことを特徴とするプログラム。
A program for a multiplexing device that creates multiplexed data by packet multiplexing media data including image data and at least one of audio data and text data,
A media data acquisition step of acquiring the media data;
The media data acquired in the media data acquisition step is analyzed, and a playback start indicating the playback start time of the sample for the sample that is the minimum access unit of the image data, audio data, and text data included in the media data is started. An analysis step to obtain time information;
Based on the reproduction start time information acquired in the analysis step, a unit for packetizing the media data is determined by aligning the reproduction start times of the samples of the image data, audio data, and text data included in the media data. A packet unit determination step to be performed;
A packet header part creating step for creating a packet header part for storing a header of the media data in the packetization unit determined in the packet unit determiner step;
A packet data part creating step for creating a packet data part for storing the actual data of the media data in the packetization unit determined in the packet unit determining step;
Seen containing a packet header portion created in the packet header part generation step, and a packetizing step of creating a packet by combining the packet data unit that was created in the packet data unit generating step,
In the packet unit determining step, in the multiplexing method for determining the unit by aligning the reproduction start times of the samples of the image data, audio data, and text data for all the packets necessary for storing the media data A program characterized by causing a computer to execute each step.
JP2003168432A 2002-06-26 2003-06-12 Multiplexer and multiplexing method Expired - Fee Related JP4114868B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003168432A JP4114868B2 (en) 2002-06-26 2003-06-12 Multiplexer and multiplexing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002185758 2002-06-26
JP2003081133 2003-03-24
JP2003168432A JP4114868B2 (en) 2002-06-26 2003-06-12 Multiplexer and multiplexing method

Publications (2)

Publication Number Publication Date
JP2004350250A JP2004350250A (en) 2004-12-09
JP4114868B2 true JP4114868B2 (en) 2008-07-09

Family

ID=33545018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003168432A Expired - Fee Related JP4114868B2 (en) 2002-06-26 2003-06-12 Multiplexer and multiplexing method

Country Status (1)

Country Link
JP (1) JP4114868B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5439536B2 (en) * 2012-05-16 2014-03-12 株式会社東芝 Recording apparatus and file dividing method
JP2015023575A (en) 2013-07-19 2015-02-02 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Transmission method, reception method, transmission device and reception device

Also Published As

Publication number Publication date
JP2004350250A (en) 2004-12-09

Similar Documents

Publication Publication Date Title
KR101703179B1 (en) Switching between adaptation sets during media streaming
US7558296B2 (en) Multiplexer and demultiplexer
US7139470B2 (en) Navigation for MPEG streams
JP5551315B2 (en) An array of subtrack fragments for streaming video data
JP5770345B2 (en) Video switching for streaming video data
KR101542310B1 (en) Media representation groups for network streaming of coded video data
KR101594351B1 (en) Streaming of multimedia data from multiple sources
KR101073777B1 (en) Converting apparatus of multiplexed system
CN107634930B (en) Method and device for acquiring media data
JP4541962B2 (en) Multiplexer, playback device
JP2005229587A (en) Multiplex system conversion device
CN105187850A (en) Streaming Encoded Video Data
KR20130023382A (en) Signaling random access points for streaming video data
KR101421390B1 (en) Signaling video samples for trick mode video representations
KR20050013050A (en) Moving picture data reproducing device
US20080159636A1 (en) Encoding apparatus and encoding method
JP2005123907A (en) Data reconstruction apparatus
JP4114868B2 (en) Multiplexer and multiplexing method
JP2004282703A (en) Data processor
Lin et al. Universal MPEG content access using compressed-domain system stream editing techniques
JP2004201266A (en) Image data reproducing apparatus
JP2005176094A (en) Data processor, data processing method, program and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080206

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: 20080318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080411

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4114868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140425

Year of fee payment: 6

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees