JP4114868B2 - Multiplexer and multiplexing method - Google Patents
Multiplexer and multiplexing method Download PDFInfo
- 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
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
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
[0007]
The
The
[0008]
The
[0009]
The
[0010]
An MP4 file composed of a plurality of
FIG. 19 is a diagram for explaining a basic part of a conventional MP4 file.
[0011]
The
The
[0012]
The
[0013]
The
The
[0014]
The
[0015]
Here, the structure of the
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
[0017]
The box
[0018]
The
[0019]
Further, in the
[0020]
The
[0021]
As described above, the
[0022]
When the structure of the
That is, a
[0023]
At the beginning of standardization of the MP4 file format, the
[0024]
FIG. 21 is a diagram showing a structure of a conventional MP4 file including an extension unit. As shown in FIG. 21, the
[0025]
The
This
[0026]
The
[0027]
FIG. 22 is a diagram for explaining the structure of a conventional movie fragment box.
As shown in FIG. 22, a movie
[0028]
The movie
The
[0029]
Normally, one
[0030]
In the box
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
FIG. 23 is a diagram for explaining the structure of a conventional track
[0032]
The
[0033]
The
The data offset 929 is stored in the
[0034]
The
[0035]
In the table 931,
The
[0036]
If these fields are not included in the
[0037]
In the track
[0038]
Even in the case of the
Next, a configuration example of an MP4 file including the
[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
[0041]
On the other hand, the
[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
[0043]
The
The
[0044]
The packet
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
[0045]
First, when the
Next, the packet
[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
[0047]
Similarly, the packet
[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
[0049]
Referring to FIG. 25 again, subsequently, the packet
[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
[0051]
Based on the acquired mdat information, the packet data creation unit 970 reads sample substance data from the first
[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
FIG. 1 is a block diagram showing a functional configuration of a multiplexing apparatus according to
The
[0074]
The
The first
[0075]
The
[0076]
The
The second
[0077]
The
[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
[0079]
The
[0080]
The video packet
The video packet
[0081]
The audio packet
The audio packet
[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
The packet creation
[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
[0085]
The packet header creation unit 112 also includes pointer information indicating where in the first
[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
[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
FIG. 2 is a flowchart showing the processing operation of the
First, when the
[0090]
Next, the
[0091]
Thereafter, the video packet
Then, the audio packet
[0092]
When the audio packet
[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
[0095]
On the other hand, if there is no input data (Yes in S150), the
As described above, the
[0096]
Here, the processing operation in which the video packet
FIG. 3 is a flowchart showing the processing operation of the video packet
[0097]
When the video packet
At this time, the video packet
[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
[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
[0100]
Next, the processing operation in which the audio packet
FIG. 4 is a flowchart showing the processing operation of the audio packet
[0101]
Prior to this flow, the audio packet
When the audio packet
[0102]
When the audio packet
[0103]
Thereafter, the audio packet
[0104]
The MP4 file extension created through such processing by the
[0105]
The MP4
Each packet constituting the MP4
[0106]
In mdat_1 of the MP4
[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
[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
[0109]
FIG. 5B is a diagram illustrating a second example of the data structure of the MP4 file extension created by the
In the mdat_1 of the MP4
[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
[0111]
As described above, according to multiplexing
[0112]
(Embodiment 2)
Next, a multiplexing apparatus according to
The multiplexing apparatus according to the second embodiment is common in the main components to the
[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
[0114]
The video packet
[0115]
The time reference
[0116]
The I frame reference
[0117]
The processing operation in which the video packet
FIG. 7 is a flowchart showing the processing operation of the video packet
[0118]
Prior to this flow, the video packet
As in the first embodiment, when the video packet
[0119]
At this time, the video packet
When information indicating an intra frame is included (Yes in S203), the video packet
[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
[0121]
On the other hand, when the target time is exceeded (Yes in S205), the video packet
[0122]
In the extension part of the MP4 file created through the processing operation of the video packet
[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
[0125]
FIG. 8 is a flowchart showing the second processing operation of the video packet
Similar to the first processing operation, prior to this flow, the video packet
[0126]
When the video packet
At this time, the video packet
[0127]
When the target time is exceeded (Yes in S213), the video packet
[0128]
On the other hand, when the target time has not been exceeded (No in S213), the video packet
[0129]
Here, when information indicating an intra frame is included (Yes in S215), the video packet
[0130]
On the other hand, when information indicating an intra frame is not included (No in S215), the video packet
[0131]
The extension unit of the MP4 file created through the second processing operation of the video packet
[0132]
When the video packet
[0133]
The MP4 file extension unit created through such processing operations by the packet
[0134]
In the mdat_1 of the MP4
[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
[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
[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
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
[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
[0143]
The mdat
When the mdat
[0144]
Then, the mdat
[0145]
The video entity
[0146]
The audio entity
[0147]
The interleaving array unit 134 sequentially acquires the read video data and the read audio data output from the video substance
[0148]
In the multiplexing apparatus according to the third embodiment provided with the packet
FIG. 11 is a flowchart showing the processing operation of the packet
[0149]
First, the packet
[0150]
When acquiring the video read instruction, the video entity
[0151]
When the interleaving arrangement unit 134 receives the read entity data from the video entity
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
[0154]
The MP4
[0155]
Each packet is composed of a
[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
[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
[0159]
As shown in FIG. 13, the playback start time of the
[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
[0161]
At this time, the playback start time of the
[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
[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
[0165]
At this time, the playback start time of the
[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
[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
FIG. 15 is a block diagram showing a functional configuration of the demultiplexing apparatus according to the fourth embodiment.
The
[0169]
The
The file
[0170]
The header
[0171]
The
[0172]
The
[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
The
[0174]
Also, the
[0175]
The
[0176]
The
[0177]
A random access processing operation in the
FIG. 16 is a flowchart showing the random access processing operation of the
[0178]
First, when the
[0179]
Next, the
[0180]
Subsequently, in the
[0181]
Here, when the target reproduction time information is input in the
[0182]
At this time, if the target sample is not found (No in S450), the
[0183]
On the other hand, if the target sample is found (Yes in S450), the
[0184]
Thereafter, the
[0185]
As described above, according to the
[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
[0187]
Here, the MP4 file data created in the cellular phone with
[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
[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
[0195]
In
[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
[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
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)
前記メディアデータを取得するメディアデータ取得手段と、
前記メディアデータ取得手段が取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析手段と、
前記解析手段が取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定手段と、
前記パケット単位決定手段が決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成手段と、
前記パケット単位決定手段が決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成手段と、
前記パケットヘッダ部作成手段が作成したパケットヘッダ部と、前記パケットデータ部作成手段が作成したパケットデータ部とを結合してパケットを作成するパケット化手段とを備え、
前記パケット単位決定手段は、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する
ことを特徴とする多重化装置。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.
前記メディアデータを取得するメディアデータ取得ステップと、
前記メディアデータ取得ステップにおいて取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析ステップと、
前記解析ステップにおいて取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定ステップと、
前記パケット単位決定手ステップにおいて決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成ステップと、
前記パケット単位決定ステップにおいて決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成ステップと、
前記パケットヘッダ部作成ステップにおいて作成したパケットヘッダ部と、前記パケットデータ部作成ステップにおいて作成したパケットデータ部とを結合してパケットを作成するパケット化ステップとを含み、
前記パケット単位決定ステップでは、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する
ことを特徴とする多重化方法。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. .
前記メディアデータを取得するメディアデータ取得ステップと、
前記メディアデータ取得ステップにおいて取得した前記メディアデータを解析して、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの最小のアクセス単位であるサンプルについて、サンプルの再生開始時間を示す再生開始時間情報を取得する解析ステップと、
前記解析ステップにおいて取得した前記再生開始時間情報に基づいて、前記メディアデータに含まれる前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記メディアデータをパケット化する単位を決定するパケット単位決定ステップと、
前記パケット単位決定手ステップにおいて決定したパケット化単位で前記メディアデータのヘッダを格納するパケットヘッダ部を作成するパケットヘッダ部作成ステップと、
前記パケット単位決定ステップにおいて決定したパケット化単位で前記メディアデータの実体データを格納するパケットデータ部を作成するパケットデータ部作成ステップと、
前記パケットヘッダ部作成ステップにおいて作成したパケットヘッダ部と、前記パケットデータ部作成ステップにおいて作成したパケットデータ部とを結合してパケットを作成するパケット化ステップとを含み、
前記パケット単位決定ステップでは、前記メディアデータを格納するのに必要な全てのパケットについて、前記画像データ、音声データおよびテキストデータの各サンプルの再生開始時間を揃えて前記単位を決定する多重化方法における各ステップをコンピュータに実行させる
ことを特徴とするプログラム。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.
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)
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 |
-
2003
- 2003-06-12 JP JP2003168432A patent/JP4114868B2/en not_active Expired - Fee Related
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 |