(57)【要約】【課題】アクセスデータのデータサイズを低減するとともに、データストリームの復号エラーが発生してもエラーの伝播を抑えることのできるデータ構造を提供することである。【解決手段】  本発明によるデータ記録装置は、映像信号および音声信号の少なくとも一方の信号を受け取って符号化し、映像信号に対してはピクチャデータおよび音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成する。さらに各再生用データを特定するための拡張情報を生成するとともに、１以上の再生用データからなるグループ単位へのアクセスデータを含む付属情報も生成する。データ記録装置は、符号化ストリームおよび拡張情報を多重化してデータストリームを生成し、そのデータストリームおよび付属情報を記録媒体(131)に記録する。【選択図】図１１
2004282703.tif 000002
【特許請求の範囲】
【請求項１】
映像信号および音声信号の少なくとも一方の信号を受け取る受信部と、
前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するストリーム生成部と、
各再生用データを特定するための拡張情報を生成する拡張情報生成部と、
１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する付属情報生成部と、
前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成する多重化部と、
前記データストリームおよび前記付属情報を記録媒体に記録する記録部と
を備えたデータ記録装置。
【請求項２】
前記付属情報生成部は、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成する、請求項１に記載のデータ記録装置。
【請求項３】
前記付属情報生成部は、前記グループ単位を第１サンプルとしたときの前記第１サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第２サンプルとしたときの前記第２サンプルごとのアクセスデータを生成する、請求項１に記載のデータ記録装置。
【請求項４】
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記第１サンプルごとおよび前記第２サンプルごとに多重化して前記データストリームを生成する、請求項３に記載のデータ記録装置。
【請求項５】
前記付属情報生成部は、前記グループ単位と、前記グループに含まれる１以上の再生用データに関する前記拡張情報とを１サンプルとしたときの、前記サンプルごとのアクセスデータを生成する、請求項１に記載のデータ記録装置。
【請求項６】
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成する、請求項５に記載のデータ記録装置。
【請求項７】
前記受信部は、映像信号および音声信号を受け取り、
前記ストリーム生成部は、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、
前記拡張情報生成部は、少なくとも各ピクチャデータを特定するための拡張情報を生成し、
前記付属情報生成部は、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも２以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する、請求項１に記載のデータ記録装置。
【請求項８】
前記拡張情報生成部は、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成する、請求項７に記載のデータ記録装置。
【請求項９】
前記記録部は、前記データストリームおよび前記付属情報を１つのデータファイルとして前記記録媒体に記録する、請求項１に記載のデータ記録装置。
【請求項１０】
前記拡張情報生成部は、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも１つを前記拡張情報として生成する、請求項１に記載のデータ記録装置。
【請求項１１】
前記付属情報生成部は、前記拡張情報の既定値をさらに含む前記付属情報を生成し、
前記拡張情報生成部は、前記既定値と異なる値を有する前記拡張情報を生成する、請求項１に記載のデータ記録装置。
【請求項１２】
前記拡張情報生成部は、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成する、請求項１に記載のデータ記録装置。
【請求項１３】
前記付属情報生成部は、リンク情報をさらに含む前記付属情報を生成し、
前記記録部は、前記前記データストリームを、前記リンク情報によって指定される第１データファイルとして前記記録媒体に記録し、前記付属情報を第２データファイルとして前記記録媒体に記録する、請求項１に記載のデータ記録装置。
【請求項１４】
映像信号および音声信号の少なくとも一方の信号を受け取るステップと、
前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するステップと、
各再生用データを特定するための拡張情報を生成するステップと、
１以上の再生用データからなるグループ単位 にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成するステップと、
前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成するステップと、
前記データストリームおよび前記付属情報を記録媒体に記録するステップと
を包含するデータ記録方法。
【請求項１５】
前記付属情報を生成するステップは、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成する、請求項１４に記載のデータ記録方法。
【請求項１６】
前記付属情報を生成するステップは、前記グループ単位を第１サンプルとしたときの前記第１サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第２サンプルとしたときの前記第２サンプルごとのアクセスデータを生成する、請求項１４に記載のデータ記録方法。
【請求項１７】
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記第１サンプルごとおよび前記第２サンプルごとに多重化して前記データストリームを生成する、請求項１６に記載のデータ記録方法。
【請求項１８】
前記付属情報を生成するステップは、前記グループ単位と、前記グループに含まれる１以上の再生用データに関する前記拡張情報とを１サンプルとしたときの、前記サンプルごとのアクセスデータを生成する、請求項１４に記載のデータ記録方法。
【請求項１９】
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成する、請求項１８に記載のデータ記録方法。
【請求項２０】
前記受信するステップは、映像信号および音声信号を受け取り、
前記符号化ストリームを生成するステップは、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、
前記拡張情報を生成するステップは、少なくとも各ピクチャデータを特定するための拡張情報を生成し、
前記付属情報を生成するステップは、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも２以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する、請求項１４に記載のデータ記録方法。
【請求項２１】
前記拡張情報を生成するステップは、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成する、請求項２０に記載のデータ記録方法。
【請求項２２】
前記記録するステップは、前記データストリームおよび前記付属情報を１つのデータファイルとして前記記録媒体に記録する、請求項１４に記載のデータ記録方法。
【請求項２３】
前記拡張情報を生成するステップは、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも１つを前記拡張情報として生成する、請求項１４に記載のデータ記録方法。
【請求項２４】
前記付属情報を生成するステップは、前記拡張情報の既定値をさらに含む前記付属情報を生成し、
前記拡張情報を生成するステップは、前記既定値と異なる値を有する前記拡張情報を生成する、請求項１４に記載のデータ記録方法。
【請求項２５】
前記拡張情報を生成するステップは、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成する、請求項１４に記載のデータ記録方法。
【請求項２６】
前記付属情報を生成するステップは、リンク情報をさらに含む前記付属情報を生成し、
前記記録するステップは、前記前記データストリームを、前記リンク情報によって指定される第１データファイルとして前記記録媒体に記録し、前記付属情報を第２データファイルとして前記記録媒体に記録する、請求項１４に記載のデータ記録方法。
【請求項２７】
記録媒体に記録されたデータを再生するデータ再生装置であって、
前記記録媒体には、データストリームおよび付属情報が記録されており、
前記データストリームには、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されており、
前記付属情報には、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータが含まれており、
前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離する再生部と、
前記符号化ストリームを復号化するストリーム復号部であって、前記付属情報のアクセスデータを解析して前記グループ単位を特定し、前記拡張情報に基づいて、前記グループ単位の各ピクチャデータを特定する解析部、および、特定された前記各再生用データを復号する復号部を備えたデータ再生装置。
【請求項２８】
記録媒体に記録されたデータを再生するデータ再生方法であって、
前記記録媒体には、データストリームおよび付属情報が記録されており、
前記データストリームには、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されており、
前記付属情報には、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータが含まれており、
前記記録媒体から前記データストリームおよび前記付属情報を読み出すステップと、
前記データストリームを前記符号化ストリームと前記拡張情報とに分離するステップと、
前記付属情報のアクセスデータを解析して前記グループ単位を特定するステップと、
前記拡張情報に基づいて、前記グループ単位の各再生用データを特定するステップと、
特定された前記各再生用データを復号化するステップと
を包含するデータ再生方法。
【請求項２９】
データ再生装置の再生部によって分離されるデータストリームおよび付属情報が規定されたデータ構造であって、
前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されており、
前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、
前記拡張情報は各再生用データを特定するための情報であり、
前記付属情報は、前記データ処理装置の解析部によって解析され、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む、データ構造。
【請求項３０】
データ再生装置の再生部によって分離されるデータストリームおよび付属情報が記録された記録媒体であって、
前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されており、
前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、
前記拡張情報は各再生用データを特定するための情報であり、
前記付属情報は、前記データ処理装置の解析部によって解析され、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む、記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像および音声に関する動画ストリームを光ディスク等の記録媒体に記録し、記録媒体に記録された動画ストリームを再生する装置および方法等に関する。
【背景技術】
【０００２】
ストリームデータを扱うことが可能であり、かつ、ＰＣとの親和性の高いファイルフォーマットとして、ＭＰＥＧ４システム規格（ＩＳＯ／ＩＥＣ  １４４９６−１）において規定されるＭＰ４ファイルフォーマットが広く知られている。ＭＰＥＧ４システム規格では、ＭＰＥＧ２映像またはＭＰＥＧ４映像を含むシステムストリームおよび付属情報のデータ構造がＭＰ４ファイルとして規定されている。なお、ＭＰ４ファイルフォーマットはApple（登録商標）社のQuickTime（TM)ファイルフォーマットをベースにして規定され、近年、様々なＰＣアプリケーションでサポートされている点において将来性のあるフォーマットである。ベースにされたQuickTimeファイルフォーマットは、現在、ＰＣアプリケーションの分野で映像および音声を扱うファイルフォーマットとして幅広く使われている。
【０００３】
図１は、ＭＰ４ファイル１の構成を示す。ＭＰ４ファイル１は、付属情報２と動画ストリームデータ３とを含んでいる。動画ストリームデータ３は、ＭＰＥＧ２映像またはＭＰＥＧ４映像等の符号化されたビデオデータおよびオーディオデータである。これらは、１つ以上のフレームを単位として配置されている。付属情報２は、動画ストリームデータ３において規定される映像および音声の各フレームのデータサイズ（以下「フレームサイズ」と称する）、データの格納先アドレス、フレーム単位の再生時間等の情報である。データ再生装置は、付属情報２に基づいて動画ストリーム３の格納位置等を特定し、動画ストリームデータ３を読み出し、再生することができる。
【０００４】
図２は、ＭＰ４ファイルの他の構成を示す。ＭＰ４ファイルの付属情報２と動画ストリーム３とはそれぞれ別のファイルとして構成されている。このようなＭＰ４ファイルでは、付属情報２は、動画ストリーム３の読み出しを制御するリンク情報Ｌを含んでいる。QuickTimeファイルフォーマット規格においても、図１および２に示すＭＰ４規格と同じファイル構成をとることができる。以下では、ＭＰ４ファイルに関する説明は特に限定しない限りQuickTimeファイルに対しても同様に適用可能であって、ＭＰ４ファイルに限定されるものではない。
【０００５】
以下、図１に示すＭＰ４ファイル１を例にして、ＭＰ４ファイル１のより具体的な構成を説明する。図３は、ＭＰ４ファイル１の具体的なデータ構造を示す。まず、動画ストリーム部分を説明する。ＭＰ４ファイル１では、動画ストリーム中のデータをサンプル（sample）およびチャンク（chunk）単位で管理する。「サンプル（sample）」とは、ＭＰ４ファイルにおけるストリーム管理の最小単位であり、例えば、ビデオフレームの符号化されたフレームデータおよびオーディオフレームの符号化されたフレームデータに対応する。図にはビデオフレームのフレームデータを表すビデオサンプル（Video Sample）４およびオーディオフレームのフレームデータを表すオーディオサンプル（Audio Sample）５を示す。一方、「チャンク（chunk）」とは、１以上のサンプルの集合を表す。チャンク内にサンプルが１つしか存在しないときでも、そのサンプルのみを含む１つのチャンクとしてデータが管理される。
【０００６】
付属情報では、ビデオサンプルに関する情報とオーディオサンプルに関する情報は、それぞれトラック単位で管理される。図３には、オーディオトラック６およびビデオトラック７を示している。トラック６および７には、各サンプルのサイズとその表示時間、各チャンクの先頭位置およびそのチャンクに含まれるサンプルの数等の情報が記述される。データ再生装置は、付属情報の各トラックを読み出して全てのサンプルへアクセスすることができ、また、サンプルおよびチャンク毎に読み出し等の制御が可能である。なお、ＭＰ４ファイルの付属情報中に規定される、各サンプルおよび各チャンクを特定するための格納位置情報は「アクセスデータ」とも称される。
【０００７】
しかしながら、アクセスデータが詳細に記述されているという理由から、付属情報全体のデータサイズ非常に大きく、動画ストリーム１時間当たり約１ＭＢｙｔｅに達してしまう。一方、例えば非特許文献１によれば、ＤＶＤビデオレコーディング規格のアクセスデータに必要なデータサイズは１時間当たり約７０キロバイトである。すなわち、ＤＶＤビデオレコーディング規格のアクセスデータのサイズは、ＭＰ４ファイルの付属情報に含まれるアクセスデータのサイズの１０分の１以下である。
【０００８】
図４は、従来の再生装置４００の機能ブロックの構成を示す。再生装置４００は、ＤＶＤ−ＲＡＭディスク１３１に記録された動画ストリーム（ビデオストリーム、オーディオストリーム、またはビデオストリームとオーディオストリームとが多重されたストリーム等）を再生する。この動画ストリームは、例えば図１から図３を参照しながら説明したＭＰ４ファイルを構成する動画データである。
【０００９】
再生装置４００において行われる動画ストリームの再生処理を具体的に説明すると、まず、動画ストリームのストリームデータは、ピックアップ４０７および再生部４０４を介して、再生信号としてＤＶＤ−ＲＡＭディスク１３１から読み出される。一連の読み出し処理は、制御部（図示せず）による読み出し位置の指定、再生信号の生成等に基づいて行われる。そして、再生信号は動画ストリーム復号部４０３において映像信号と音声信号に復号され、映像信号出力部４０１および音声信号出力部４０２へと出力される。
【００１０】
また、ＤＶＤ−ＲＡＭディスクにはプレイリスト情報が記録されている場合もある。再生装置４００は、プレイリスト情報に従って所定の順序で動画ストリームを再生するプレイリスト再生機能を有する。ここで、「プレイリスト情報」とは、１以上の動画ストリームの一部または全部の再生順序を規定した情報である。プレイリスト情報は、ユーザが任意の位置および区間等を指定することによって記録装置において生成される。
【００１１】
先に説明したＭＰ４ファイルフォーマットでは、プレイリスト情報によって指定される動画ストリームを特定するためのアクセスデータを付属情報に格納することができる。そのときには、再生装置４００は、ＭＰ４ファイルの付属情報を予め読み出し、付属情報保持メモリ４０６に保持しておく。これにより、再生装置４００はプレイリスト情報に従って動画ストリームを連続的に再生することができる。プレイリスト再生機能は、ＤＶＤ−ＲＡＭディスク１３１にプレイリスト情報が記録されている場合に利用することができ、ランダムアクセスが可能なＤＶＤ−ＲＡＭディスクの特徴を活かした機能といえる。
【００１２】
さらに、ＤＶＤ−ＲＡＭディスク１３１に格納されている全てのＭＰ４ファイルの付属情報を、可能な限り早く付属情報保持メモリ４０６に格納するためには、付属情報はＤＶＤ−ＲＡＭディスク１３１上でまとめて配置されていることが望ましい。
【００１３】
図５は、ＭＰ４ファイル１が記録されるＤＶＤ−ＲＡＭディスク１３１の領域１３２、１３３を示す。ＤＶＤ−ＲＡＭディスク１３１の記録領域は、管理情報領域１３２とＡＶデータ領域１３３とに分けて管理されている。通常は、ＭＰ４ファイル１の付属情報２は管理情報領域１３２に記録され、動画ストリーム３はＡＶストリーム領域１３３に記録される。ＤＶＤ−ＲＡＭディスク１３１の管理情報領域１３２に、ＭＰ４ファイルの全ての付属情報をまとめて配置することにより、再生装置４００は高速に全ての付属情報を読み出し、付属情報保持メモリ４０６に保存することができる。
【００１４】
ただし、付属情報のアクセスデータのデータサイズが非常に大きいため、ＭＰ４ファイルに対応する再生装置は大きい容量の付属情報保持メモリ４０６を備える必要がある。特に、ＤＶＤ−ＲＡＭディスク１３１の管理情報領域１３２に多くの管理情報が記録されているときには、相当に大きな容量の付属情報保持メモリ４０６が必要になる。
【００１５】
そこで、ＭＰ４ファイルの付属情報のデータサイズを小さくするために、例えば、特許文献１に記載された技術が知られている。図６は、複数フレーム（例えばＧＯＰ（Group  Of  Picture）１４）を１サンプルに対応させたＭＰ４ファイル１１のデータ構造を示す。付属情報１２において、各ビデオサンプルを特定するためのアクセスデータが記述される点は先の例と同じであるが、各ビデオサンプルはＧＯＰ１４を構成する複数のビデオフレームに対応付けられている。このようなデータ構造を採用することにより、ビデオサンプルの総数が減るので、アクセスデータのデータサイズを低減することができる。よって、動画ストリーム１時間当たりの付属情報を、先の例の約１／１０に削減することが可能である。
【００１６】
ＭＰ４ファイルの付属情報のデータサイズを小さくするために、さらに他の技術が知られている。当該他の技術では、１チャンクを複数のフレームに対応させ、アクセスデータとして、サンプルのサイズではなくチャンクのサイズのみを格納する。これにより、付属情報サイズを削減することができる。
【００１７】
上述した技術では、映像データは以下のように配列され、映像ストリームを構成していた。図７（ａ）〜（ｄ）は、ＭＰＥＧ２映像ストリームの階層化されたデータ構造を示す。図７（ａ）は階層構造の最上位であるシーケンスを示す。シーケンスは少なくとも１つ以上のＧＯＰを格納する。図７（ｂ）は各ＧＯＰのデータ構造を示す。図６の例ではビデオサンプルに対応する。ＧＯＰは１つ以上のフレームデータを含んでおり、例えば１つのＩフレームとそのＩフレームを参照フレームとして必要とするＰフレームおよびＢフレームが格納される。図７（ｃ）は各フレーム（または「ピクチャ」ともいう）のデータ構造を示す。各フレームは、複数のスライスを含む。図７（ｄ）は各スライスのデータ構造を示す。各スライスはＭＰＥＧ２映像の符号化単位であるマクロブロックの集合であり、ＭＰＥＧ２映像ストリームはスライス単位でバイトアラインされている。
【００１８】
ＭＰＥＧ２ストリームの階層構造を構成するシーケンス、ＧＯＰ、フレーム、スライスの先頭には、それぞれ３２ビットのスタートコードが付される。具体的には、シーケンスの先頭にはシーケンスヘッダコード（Sequence Header Code）１３０１、ＧＯＰの先頭にはＧＯＰスタートコード（GOP Start Code）１３０２、フレームの先頭にはピクチャスタートコード（Picture Start Code）１３０３、スライスの先頭にはスライススタートコード（Slice Start Code）１３０４がそれぞれ設けられる。
【００１９】
スタートコードは、２４ビットのスタートコードプリフィックスと、８ビットのスタートコードＩＤで構成されている。スタートコードプリフィックスは全てのスタートコードで共通であるが、スタートコードＩＤはそれぞれの種類別に固有のＩＤが規定されている。また、スタートコードは、ＭＰＥＧ２映像ストリーム中で一意であることが規定されており、例えばストリーム中の３２ビットの値がピクチャスタートコード１３０３の値に一致したら、即座にそれがフレームの先頭であると解釈することができる。以下では、ストリーム中で一意なコードを「ユニークコード」と称する。
【００２０】
図８（ａ）〜（ｄ）は、ＭＰＥＧ２映像ストリームでエラーが発生したときのエラー伝播の様子を示している。ＭＰＥＧ２映像ストリームは可変長符号で構成されているため、例えば、スライススタートコード１３０４−１が付されたスライスデータにおいてエラーが発生すると、それ以降のストリームが正しく復号できなくなってしまう。しかし、次のスライススタートコード１３０４−２を検出してストリームの同期を取ることにより、以降のストリームの復号が可能になる。このようにＭＰＥＧ２映像ストリームではユニークコードを用いることにより、復号時にストリーム中にエラーがあった場合のエラーの伝播範囲を抑制している。
【特許文献１】日本国特開２００１−９４９３３号公報
【非特許文献１】「リライタブル／再記録可能なディスクのためのＤＶＤ規格  パート３  ビデオレコーディング規格  バージョン１．１」，ＤＶＤフォーラム発行，ＶＲ４，ｐ．３１−３５
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上述のユニークコードは、エラーからの回復に役立つ反面、符号化効率という観点からは冗長度を上げる要因になる。今後、符号化効率を上げるためにユニークコードを持たないストリームが登場することも予測され、そのようなストリームを従来の方式で記録すると、以下のような問題が発生する。
【００２２】
図９（ａ）〜（ｄ）は、ユニークコードを持たない動画ストリームにおいて復号エラーが発生したときのエラー伝播の様子を示している。この動画ストリームは、図６に示すように複数フレーム（例えばＧＯＰ）を１サンプルに対応させてアクセスデータが設けられており、付属情報のデータサイズが削減されている。
【００２３】
各スライス、フレームおよびＧＯＰにはユニークコードが存在しないため、スライス９０において復号エラーが発生すると、そのエラーはスライス９０の次のスライス９１以降に伝播し、フレーム９２内の最終スライスまで復号ができない。さらにエラーは、そのフレーム９２の次のフレーム９３にも伝播し、フレーム９２を含むＧＯＰ９４の最後のフレームまで復号ができなくなる。この説明から理解されるように、ユニークコードを持たないストリームで一度エラーが発生すると、ストリーム中の情報だけでは復号可能な状態に戻すことができないため、付属情報に格納しているアクセスデータによってデータ位置を特定できる次のＧＯＰ９５の先頭までエラーが伝播してしまう。
【００２４】
続いて、１サンプルを複数のフレームによって構成することに起因するさらに別の問題を説明する。付属情報には、各サンプルのアクセスデータのみならず、各サンプルの復号時間、表示時間等の情報も記述されている。しかし、１サンプルを複数のフレームによって構成すると、付属情報には、動画ストリームの再生に必要な各フレームの復号時間、表示時間、フレーム単位のデータ等が記述されていない。そこで、再生装置はそれらの情報を計算によって求める必要がある。例えば、再生装置４００は、あるサンプルの復号時間と次のサンプルの復号時間の差分値を求め、その差分値をサンプル内のフレーム数によって除算する。再生装置４００は、得られた除算値を、１フレームあたりの復号時間の差分値として採用する。
【００２５】
しかし、動画ストリームによっては、再生装置４００に予め設定された計算手順では各フレームの正しい復号時間、表示時間、フレーム単位のデータ等が取得できない場合がある。
【００２６】
ここで、図１０を参照しながら、全てのフレームにおいて復号時間と表示開始時間が等しい場合の問題点を説明する。図１０（ａ）は、フレームスキップが発生したサンプル（ＧＯＰ）を模式的に示す。フレームスキップはフレーム２の後で発生している。各フレームの表示時間長を１秒とする。本来、このサンプルではフレーム１からフレーム５までの５枚のフレーム（表示時間長：５秒）から構成されるはずであるが、実際にサンプルに含まれるのはフレーム１からフレーム４までの４枚である。一方、付属情報に基づいて得られる１サンプルの表示時間差分値は５ｓである。その結果、再生装置４００は、通常、各フレームの表示時間長を、５秒／４フレーム＝１．２５秒と計算する。図１０（ｂ）は、サンプルの表示時間長に対して均等に割り当てられた各フレームの表示時間長を示す。
【００２７】
ところが、この場合における正しい表示時間は、スキップされたフレームの表示時間を加味するためにフレーム２のみが２秒になり、他のフレームは１秒になる。図１０（ｃ）は、サンプルの表示時間長に対する各フレームの正しい表示時間長を示す。
【００２８】
このように、記録時において動画ストリームにフレームスキップ等が発生して、あるフレームとその次フレームとの表示時間の差分値が一定でなくなると、再生装置はサンプルに含まれるフレームの表示時間が正しく取得できないという問題が生じる。この問題は、１サンプルを複数のフレームによって構成して記録した結果、各フレームの表示時間長等が記録されないという記録装置の処理にも起因して発生しているといえる。
【００２９】
次に、サンプルに含まれるフレームが双方向予測を用いたフレームから構成されており、各フレームの復号時間と表示開始時間とが異なる場合の問題点を説明する。双方向予測に基づく符号化が行われると、各フレームの表示開始時間は、サンプルの復号時間または表示開始時間から算出することができない。その結果、先に説明した再生装置４００の表示時間の計算方法では、各フレームの表示時間が取得できないという問題が生じる。
【００３０】
さらに、動画ストリームに各フレームの開始または終了を識別するための情報（ユニークコード）が含まれない場合には、フレームごとにそのデータを取得できないという問題も存在する。例えば、ＭＰＥＧ−４  Ｖｉｓｕａｌでは、動画ストリーム内のスタートコードと呼ばれる識別子によってフレームの境界を検出できるが、ＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）では、ＭＰ４ファイルに格納する際には、フレーム境界を識別するための情報が動画ストリーム内のフレームデータに含まれない。このため、ＭＰＥＧ−４  ＡＶＣで符号化された２枚以上のフレームを１サンプルに格納すると、フレームの境界が検出できず、各フレームのデータを取得することができない。
【００３１】
本発明の目的は、アクセスデータのデータサイズを低減するとともに、動画ストリームの復号エラーが発生してもエラーの伝播を抑えることのできるデータ構造を提供することである。本発明の他の目的は、動画ストリームのフレームを複数まとめて１サンプルとして扱う際に、サンプル毎の復号時間、表示時間、フレーム単位のデータを確実に取得できるようにすることである。
【課題を解決するための手段】
【００３２】
本発明によるデータ記録装置は、映像信号および音声信号の少なくとも一方の信号を受け取る受信部と、前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するストリーム生成部と、各再生用データを特定するための拡張情報を生成する拡張情報生成部と、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成する付属情報生成部と、前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成する多重化部と、前記データストリームおよび前記付属情報を記録媒体に記録する記録部とを有する。
【００３３】
前記付属情報生成部は、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成してもよい。
【００３４】
前記付属情報生成部は、前記グループ単位を第１サンプルとしたときの前記第１サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第２サンプルとしたときの前記第２サンプルごとのアクセスデータを生成してもよい。
【００３５】
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記第１サンプルごとおよび前記第２サンプルごとに多重化して前記データストリームを生成してもよい。
【００３６】
前記付属情報生成部は、前記グループ単位と、前記グループに含まれる１以上の再生用データに関する前記拡張情報とを１サンプルとしたときの、前記サンプルごとのアクセスデータを生成してもよい。
【００３７】
前記多重化部は、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成してもよい。
【００３８】
前記受信部は、映像信号および音声信号を受け取り、前記ストリーム生成部は、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、前記拡張情報生成部は、少なくとも各ピクチャデータを特定するための拡張情報を生成し、前記付属情報生成部は、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも２以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成してもよい。
【００３９】
前記拡張情報生成部は、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成してもよい。
【００４０】
前記記録部は、前記データストリームおよび前記付属情報を１つのデータファイルとして前記記録媒体に記録してもよい。
【００４１】
前記拡張情報生成部は、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも１つを前記拡張情報として生成してもよい。
【００４２】
前記付属情報生成部は、前記拡張情報の既定値をさらに含む前記付属情報を生成し、前記拡張情報生成部は、前記既定値と異なる値を有する前記拡張情報を生成してもよい。
【００４３】
前記拡張情報生成部は、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成してもよい。
【００４４】
前記付属情報生成部は、リンク情報をさらに含む前記付属情報を生成し、前記記録部は、前記前記データストリームを、前記リンク情報によって指定される第１データファイルとして前記記録媒体に記録し、前記付属情報を第２データファイルとして前記記録媒体に記録してもよい。
【００４５】
本発明によるデータ記録方法は、映像信号および音声信号の少なくとも一方の信号を受け取るステップと、前記信号を所定の符号化形式で符号化して、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリームを生成するステップと、各再生用データを特定するための拡張情報を生成するステップと、１以上の再生用データからなるグループ単位 にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成するステップと、前記符号化ストリームおよび前記拡張情報を多重化してデータストリームを生成するステップと、前記データストリームおよび前記付属情報を記録媒体に記録するステップとを包含する。
【００４６】
前記付属情報を生成するステップは、さらに、複数の再生用データからなるグループ単位にアクセスするためのアクセスデータを生成してもよい。
【００４７】
前記付属情報を生成するステップは、前記グループ単位を第１サンプルとしたときの前記第１サンプルごとのアクセスデータを生成し、かつ、前記拡張情報を第２サンプルとしたときの前記第２サンプルごとのアクセスデータを生成してもよい。
【００４８】
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記第１サンプルごとおよび前記第２サンプルごとに多重化して前記データストリームを生成してもよい。
【００４９】
前記付属情報を生成するステップは、前記グループ単位と、前記グループに含まれる１以上の再生用データに関する前記拡張情報とを１サンプルとしたときの、前記サンプルごとのアクセスデータを生成してもよい。
【００５０】
前記データストリームを生成するステップは、前記符号化ストリームおよび前記拡張情報を、前記サンプルごとに多重化して前記データストリームを生成してもよい。
【００５１】
前記受信するステップは、映像信号および音声信号を受け取り、前記符号化ストリームを生成するステップは、前記映像信号および前記音声信号をそれぞれ所定の符号化形式で符号化して、複数の映像のピクチャデータおよび複数の音声フレームのフレームデータを含む符号化ストリームを生成し、前記拡張情報を生成するステップは、少なくとも各ピクチャデータを特定するための拡張情報を生成し、前記付属情報を生成するステップは、前記ピクチャデータ、前記複数の音声フレームのフレームデータおよび前記拡張情報の各々について、少なくとも２以上のピクチャデータからなるグループ単位にアクセスするためのアクセスデータを生成して、前記アクセスデータを含む付属情報を生成してもよい。
【００５２】
前記拡張情報を生成するステップは、さらに前記複数の音声フレームの各フレームデータを特定するための拡張情報を生成してもよい。
【００５３】
前記記録するステップは、前記データストリームおよび前記付属情報を１つのデータファイルとして前記記録媒体に記録してもよい。
【００５４】
前記拡張情報を生成するステップは、前記各再生用データのデータサイズ、表示時間、復号時間を示す情報の少なくとも１つを前記拡張情報として生成してもよい。
【００５５】
前記付属情報を生成するステップは、前記拡張情報の既定値をさらに含む前記付属情報を生成し、前記拡張情報を生成するステップは、前記既定値と異なる値を有する前記拡張情報を生成してもよい。
【００５６】
前記拡張情報を生成するステップは、前記映像信号の各ピクチャデータを復号するために参照される参照先ピクチャデータを特定するための拡張情報を生成してもよい。
【００５７】
前記付属情報を生成するステップは、リンク情報をさらに含む前記付属情報を生成し、前記記録するステップは、前記前記データストリームを、前記リンク情報によって指定される第１データファイルとして前記記録媒体に記録し、前記付属情報を第２データファイルとして前記記録媒体に記録してもよい。
【００５８】
本発明によるデータ再生装置は、記録媒体に記録されたデータを再生する。
前記記録媒体には、データストリームおよび付属情報が記録されている。前記データストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されている。前記付属情報は、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含んでいる。前記データ再生装置は、前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離する再生部と、前記符号化ストリームを復号化するストリーム復号部とを有する。前記ストリーム復号部は、前記付属情報のアクセスデータを解析して前記グループ単位を特定し、前記拡張情報に基づいて、前記グループ単位の各ピクチャデータを特定する解析部と、特定された前記各再生用データを復号する復号部とを備えている。
【００５９】
本発明によるデータ再生方法は、記録媒体に記録されたデータを再生する。前記記録媒体には、データストリームおよび付属情報が記録されている。前記データストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含む符号化ストリーム、および、各再生用データを特定するための拡張情報が多重化されている。前記付属情報は、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含んでいる。前記データ再生方法は、前記記録媒体から前記データストリームおよび前記付属情報を読み出して、前記データストリームを前記符号化ストリームと前記拡張情報とに分離するステップと、前記符号化ストリームを復号化するステップとを有する。前記符号化ストリームを復号化するステップは、前記付属情報のアクセスデータを解析して前記グループ単位を特定するステップと、前記拡張情報に基づいて、前記グループ単位の各再生用データを特定するステップと、特定された前記各再生用データを復号するステップとを包含している。
【００６０】
本発明によるデータ構造は、データ再生装置の再生部によって分離されるデータストリームおよび付属情報を規定する。前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されている。前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、前記拡張情報は各再生用データを特定するための情報である。前記付属情報は、前記データ処理装置の解析部によって解析され、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む。
【００６１】
本発明による記録媒体は、データ再生装置の再生部によって分離されるデータストリームおよび付属情報が記録されている。前記データストリームは、前記データ再生装置のストリーム復号部によって復号化される符号化ストリーム、および、拡張情報が多重化されている。前記符号化ストリームは、映像信号および音声信号の少なくとも一方の信号が所定の符号化形式で符号化された再生用データであって、前記映像信号に対してはピクチャデータおよび前記音声信号に対してはフレームデータである再生用データを複数含み、前記拡張情報は各再生用データを特定するための情報である。前記付属情報は、前記データ処理装置の解析部によって解析され、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む。
【発明の効果】
【００６２】
本発明によれば、再生用データを複数含む符号化ストリームおよび各再生用データを特定するための拡張情報を多重化したデータストリームとともに、１以上の再生用データからなるグループ単位にアクセスするためのアクセスデータを含む付属情報を記録媒体に記録する。これにより、エラーが発生した場合でもエラーの伝播を抑制できるデータ構造が提供される。さらに、２以上の再生用データからなるグループ単位（サンプル単位）を構成したときには、動画ストリーム中の映像ストリームの１フレームと１ビデオサンプルを対応させた場合と比較して、付属情報のサイズを小さくすることができる。
【発明を実施するための最良の形態】
【００６３】
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。
【００６４】
（実施形態１）
図１１は、本実施形態によるデータ処理装置１０の機能ブロックの構成を示す。本明細書では、データ処理装置１０はＭＰ４ファイルの記録機能と再生機能の両方を有するとして説明する。ＭＰ４ファイルは、ＭＰＥＧ４システム規格（ＩＳＯ／ＩＥＣ  １４４９６−１）形式のファイルであるとする。データ処理装置１０は、ＭＰ４ファイルを生成して記録媒体１３１に書き込むことができ、かつ、記録媒体１３１に書き込まれたＭＰ４ストリームを再生することができる。記録媒体１３１は例えばＤＶＤ−ＲＡＭディスクである（以下、「ＤＶＤ−ＲＡＭディスク１３１」と称する）。データ処理装置１０は、例えばＤＶＤレコーダとして実現される。なお、ＭＰ４ファイルのデータ構造は、図１２を参照しながら後に説明する。
【００６５】
以下、データ処理装置１０の記録機能に関連する構成要素および動作を説明し、その後、再生機能に関連する構成要素および動作を説明する。
【００６６】
まず、データ処理装置１０のＭＰ４ファイルの記録機能を説明する。この機能に関連する構成要素として、データ処理装置１０は、映像信号受信部１００と、動画ストリーム生成部１０１と、音声信号受信部１０２と、付属情報生成部１０３と、拡張情報生成部１０４と、多重化部１０５と、記録部１２０と、光ピックアップ１３０とを備えている。
【００６７】
映像信号受信部１００は映像信号入力端子であり、映像データを表す映像信号を受け取る。音声信号受信部１０２は音声信号入力端子であり、音声データを表す音声信号を受け取る。例えば、映像信号受信部１００および音声信号受信部１０２は、放送電波を受信するチューナ部（図示せず）の映像出力部および音声出力部と接続され、それぞれから映像信号および音声信号を受け取る。
【００６８】
動画ストリーム生成部１０１は、映像信号および音声信号を受け取り、例えばＭＰＥＧ２や、ＭＰＥＧ４（ＭＰＥＧ−４  Ｖｉｓｕａｌ、ＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）等の規格に基づいた符号化を行い、動画ストリーム（符号化ストリーム）を生成する。
【００６９】
付属情報生成部１０３は、ＭＰ４ファイル規格の付属情報を生成する。付属情報は、符号化ストリームのサンプル単位にアクセスするためのアクセスデータを含む。「サンプル」とは、付属情報における最小管理単位であり、サンプルごとのデータサイズ、復号時間、再生時間等の情報を記録している。１サンプルは、ランダムにアクセスすることが可能なデータ単位である。付属情報のより詳しい内容は後述する。
【００７０】
拡張情報生成部１０４は、サンプル内の各フレームデータを特定するための属性を示す拡張情報を生成する。ここでいう「属性」とは、例えば各フレームデータのデータサイズ、復号時間、表示時間を表す。サンプルは、ビデオフレームのフレームデータを表すビデオサンプル（Video Sample）であってもよいし、オーディオフレームのフレームデータを表すオーディオサンプル（Audio Sample）であってもよい。
【００７１】
多重化部１０５は、符号化ストリームおよび拡張情報を多重化して動画ストリームを生成する。このストリームには、映像ストリームおよび／または音声ストリーム、および、拡張情報生成部１０４で生成された拡張情報が格納されている。
【００７２】
記録部１２０は、ピックアップ１３０を制御し、ＤＶＤ-ＲＡＭディスク１３１の特定の位置（アドレス）にデータを記録する。より具体的には、記録部１２０は、多重化部１０５において生成された動画ストリームをＭＰ４ファイルとしてＡＶデータ領域１３３に記録し、付属情報生成部１０３において生成された付属情報をＭＰ４ファイルとして管理情報領域１３２に記録する。
【００７３】
なお、記録部１２０は、動画ストリームおよび付属情報を別個のＭＰ４ファイルではなく、１つのＭＰ４ファイルにしてＤＶＤ−ＲＡＭディスク１３１に記録してもよい。また、記録部１２０は付属情報をＡＶデータ領域１３３に記録してもよい。
【００７４】
図１２は、データ処理装置１０によって記録されるＭＰ４ファイル２１の構成を示す。ＭＰ４ファイル２１は、付属情報２２および動画ストリーム２３を含んでいる。
【００７５】
付属情報２２は、動画ストリーム２３内の所定数のビデオフレームデータおよび／またはオーディオフレームデータのまとまり（集合）を１サンプルとしたときの、各サンプルのサイズ、格納先アドレス、再生時間等の情報である。
【００７６】
動画ストリーム２３は、複数のビデオサンプル（video sample）および複数のビデオサイズサンプル（video size sample）を含む。
【００７７】
ビデオサンプルは、複数のビデオフレームデータの集合として付属情報２２によって規定されている。本実施形態では例として１ビデオサンプル（video sample）を１つのグループオブピクチャ（Group  Of  Picture；ＧＯＰ）２５に一致させているが、ＧＯＰ構造の有無とは無関係に、所定のフレームデータの集合を１ビデオサンプルにしてもよい。
【００７８】
ビデオサイズサンプルは、対応するビデオサンプルに対する拡張情報を含んでいる。図１２では、０番目のビデオサイズサンプル２４に規定される拡張情報として、ビデオサンプル＃０の各ビデオフレーム＃０〜＃Ｍのフレームサイズが記述されている。
【００７９】
なお、図１２では、ビデオサイズサンプルに続いてそれに対応するビデオサンプルが記録されているが、これは例であり、他の配置をとることもできる。また、ここでは１サンプル＝１チャンク（図３）としているため、特にチャンクには言及しない。しかし、従来のＭＰ４ファイルのような複数のサンプルを１チャンクとして取り扱うことは可能である。例えば、チャンク内のサンプルは復号時間に関して昇順に、かつ、連続的に格納することができる。このときでも、本実施形態によるデータ構造を有するＭＰ４ファイルの記録および再生は制限されることはない。
【００８０】
本実施形態の主要な特徴の一つは、複数のビデオフレームデータを１ビデオサンプルとして管理するとともに、サンプル内の各フレームデータを特定するための属性（フレームサイズ、表示持続期間等）を示す拡張情報を、別個のサンプルとして動画ストリーム中に設けたことにある。付属情報２２には、ビデオサンプルのアクセスデータとともに、拡張情報を記述したサンプルも個別にアクセスデータが付属情報２２において管理され、それぞれに対するランダムアクセスが可能になる。
【００８１】
以下、ビデオサンプルおよびビデオサイズサンプルの関係をより詳しく説明する。図１２において動画ストリームの最初のビデオサンプル（video sample＃０）には（Ｍ＋１）個のビデオフレームデータが格納されている。動画ストリームの最初のビデオサイズサンプル（video size sample＃０）には、最初のビデオサンプルと同じ数である（Ｍ＋１）個のフレームサイズの情報が格納されている。同様に動画ストリームの先頭から数えて（Ｎ＋１）番目のビデオサンプル（video sample＃Ｎ）には（Ｌ＋１）個のビデオフレームデータが格納されている。動画ストリームの先頭から数えて（Ｎ＋１）番目のビデオサイズサンプル（video size sample＃Ｎ）には（Ｌ＋１）個のフレームサイズの情報が格納されている。
【００８２】
上述のように、動画ストリーム中にビデオサンプルとビデオサイズサンプルを同じ数だけ配置し、それぞれビデオフレームに対するフレームデータとフレームサイズ情報とを同じ数だけ格納することにより、フレームサイズ情報とそれに対応するビデオフレームの関連付けが容易に実現できる。また、付属情報のビデオトラックには各ビデオサンプルに対するアクセスデータが格納され、ビデオサイズトラックには各ビデオサイズサンプルに対するアクセスデータが格納される。従って、付属情報とビデオサイズサンプルに含まれる拡張情報とを利用して、再生時に特定のビデオフレームのフレームサイズ情報を動画ストリームから取得することができる。
【００８３】
なお、説明を簡単にするため映像に関する説明に限っているが、サンプル内にはオーディオフレームデータを格納することもできる。このときも同様に、所定数のオーディオフレームデータの集合を１オーディオサンプルとして取り扱えばよい。付属情報２２には、各オーディオサンプルのアクセスデータを記述したオーディオトラックと、各オーディオサイズサンプルに対するアクセスデータを規定するオーディオサイズトラックとが記述される。オーディオサイズサンプルには、各オーディオフレームのフレームサイズが記述される。
【００８４】
次に、図１３を参照しながら、データ処理装置１０の記録動作を説明する。以下の記録動作によって、上述のデータ構造を有するＭＰ４ファイル２１がＤＶＤ−ＲＡＭディスク１３１に記録される。
【００８５】
図１３は、データ処理装置１０の記録処理の手順を示す。まず、ステップＳ１１において、映像信号が受信されると、動画ストリーム生成部１０１は映像の各フレームを所定の符号化手順によって符号化する。ステップＳ１２では、拡張情報生成部１０４は、符号化された各フレームのフレームサイズを示す拡張情報を生成する。符号化は動画ストリーム生成部１０１によって実行されるため、拡張情報生成部１０４は、動画ストリーム生成部１０１の符号化結果を利用して、各フレームサイズ等の情報を拡張情報として生成する。
【００８６】
ステップＳ１３では、付属情報生成部１０３が、１ＧＯＰを構成するフレームデータを１ビデオサンプルに対応させることを決定すると、その決定に基づいて、多重化部１０５はビデオサンプル単位の拡張情報（ビデオサイズサンプル）を取得する。そしてステップＳ１４において、多重化部１０５は、各ビデオサンプルおよび対応する各拡張情報を多重化して動画ストリームデータを生成する。次に、付属情報生成部１０３は、各ビデオサイズサンプルへのアクセスデータと、各ビデオサンプルへのアクセスデータとを含む付属情報を生成する。そして、記録部１２０は、符号化ストリームデータおよび付属情報に基づいて動画ストリームを生成し、ＭＰ４ファイルとしてＤＶＤ−ＲＡＭディスク１３１に記録する。
【００８７】
再び図１１を参照しながら、次に、データ処理装置１０の再生機能を説明する。ＤＶＤ−ＲＡＭディスク１３１には、上述したＭＰ４ファイル２１が記録されているとする。データ処理装置１０は、ユーザの指示により、ＤＶＤ−ＲＡＭディスク１３１に記録された動画ストリームを再生し、復号化することができる。
【００８８】
再生機能に関連する構成要素として、データ処理装置１０は、映像信号出力部１１０と、動画ストリーム復号部１１１と、音声信号出力部１１２と、再生部１１３と、付属情報保持メモリ１１８と、ピックアップ１３０とを備えている。
【００８９】
まず、再生部１１３はピックアップ１３０の動作を制御し、ＤＶＤ-ＲＡＭディスク１３１の管理情報領域１３２から付属情報２２を読み出して付属情報を取得する。再生部１１３は、取得した付属情報２２を付属情報保持メモリ１１８に出力して保持させる。また、再生部１１３は、ＤＶＤ−ＲＡＭディスク１３１のＡＶデータ領域１３３からビデオサンプルと拡張情報（ビデオサイズサンプル）とを含む動画ストリーム２３を読み出す。なお、データ処理装置１０はネットワークを介して動画ストリームを取得することも可能である。このとき、図１１におけるピックアップ１３０と再生部１１３とを結ぶ信号線がネットワーク回線に相当する。再生部１１３は、遠隔のサーバの記録媒体１３１に記録された動画ストリーム２３を、ネットワーク回線という伝送媒体を介して取得し、データ処理装置１０において再生することができる。
【００９０】
動画ストリーム復号部１１１は、動画ストリーム２３を受け取って、付属情報保持メモリ１１８に保持されている付属情報２２のビデオサイズトラックを参照して、各サンプルのアクセスデータ、データサイズ、復号時間、再生時間等の情報を取得する。そして動画ストリーム復号部１１１は、それらの情報に基づいて動画ストリームから各ビデオサンプルおよび各ビデオサイズサンプルを抽出する。さらに、付属情報にオーディオトラックが存在する場合は、そのアクセスデータを使用して動画ストリームからオーディオサンプルを抽出する。そして、動画ストリーム復号部１１１は映像データおよび音声データを復号する。
【００９１】
映像信号出力部１１０は映像信号出力端子であり、復号化された映像データを映像信号として出力する。音声信号出力部１１２は音声信号出力端子であり、復号化された音声データを音声信号として出力する。
【００９２】
データ処理装置１０は、ＤＶＤ−ＲＡＭディスク１３１に記録されたＭＰ４ファイルを再生することができる。以下、データ処理装置１０の基本的な再生処理を説明する。再生の開始前に、再生部１１３は、ＤＶＤ−ＲＡＭディスク１３１の管理情報領域１３２に記録された付属情報を読み出し、付属情報保持メモリ１１８に格納する。次に、再生部１１３は、付属情報保持メモリ１１８に格納された付属情報を参照しながら、ＤＶＤ−ＲＡＭディスク１３１のＡＶデータ領域１３３からピックアップ１３０を介して動画ストリームを読み出す。付属情報には動画ストリームの各サンプルにアクセスするためのアクセスデータが格納されているので、そのアクセスデータに基づいて、再生部１１３は任意のサンプルにアクセスできる。動画ストリーム復号部１１１は、読み出された動画ストリームを映像信号および／または音声信号に復号し、映像信号出力部１１０および／または音声信号出力部１１２へと出力する。
【００９３】
次に、図１４を参照しながら、データ処理装置１０のより具体的な再生処理を説明する。上述のデータ構造を採用した利点を説明するため、動画ストリーム中に復号エラーが発生した場合を想定する。
【００９４】
図１４（ａ）〜（ｄ）は、ＭＰ４ファイル２１を構成する動画ストリームにおいて、復号エラーが発生したときのエラー伝播の様子を示している。なお、この動画ストリームは、ストリーム中で一意なコード（ユニークコード）を持っていなくてもよい。図１２の各ビデオサンプルは、図１４（ａ）のシーケンス中の各ＧＯＰに対応する。付属情報２２のビデオトラックには、図１４（ａ）の各ＧＯＰに対するアクセスデータが格納されている。
【００９５】
いま、動画ストリーム復号部１１１が、ビデオサンプル＃Ｘ（video sample ♯X）中のビデオフレーム＃Ｙ（video frame ♯Y）を再生している途中でエラーを検出したとする。すると動画ストリーム復号部１１１は、再生部１１３にエラー発生を通知する。
【００９６】
再生部１１３は、付属情報保持メモリ１１８に格納された付属情報２２のビデオサイズトラックのアクセスデータを読み出して、ＤＶＤ−ＲＡＭディスク１３１のＡＶデータ領域１３３から動画ストリーム中のビデオサイズサンプル＃Ｘ（video size sample♯X）を読み出す。そして、動画ストリーム復号部１１１は読み出されたビデオサイズサンプル＃Ｘを参照して、そのサンプル＃Ｘの先頭フレーム＃０からエラー発生フレーム＃Ｙまでのフレームサイズ情報を抽出して、次のビデオフレーム＃（Ｙ＋１）（video frame ♯(Y+1)）の先頭位置を特定してその位置から復号を再開する。次のＹ番目のビデオフレームの先頭位置は、先頭フレーム＃０からエラー発生フレーム＃Ｙまでのフレームサイズの和を計算することによって得られる。その後、再生部１１３は、格納位置を特定した次のビデオフレーム＃（Ｙ＋１）（video frame ♯(Y+1)）のフレームデータから順次動画ストリームデータを読み出し、再生を継続する。
【００９７】
上述のように、ビデオサイズサンプルに各フレームデータのサイズが格納されているので、ビデオサイズサンプルを参照すると映像ストリームの各フレームのサイズを取得することができる。これにより、ユニークコードを持たない映像ストリーム中にエラーが発生しても、その次のフレームの先頭位置を容易に特定することが可能になり、それによりエラー伝播の範囲をエラーが存在するフレーム内で完結させることができる。
【００９８】
なお、本実施形態による再生動作は、エラーが発生するか否かにかかわらず適用可能である。例えば、複数のＧＯＰを１サンプルとして管理している場合であっても、各フレームへのランダムアクセスが可能になる。各フレームの格納位置は、再生部１１３が先頭から所望のフレームの直前のフレームまでのフレームサイズを合計することによって特定することができる。なお、そのとき、図１２に示すようにビデオサンプルとそれに対応するビデオサイズサンプルとが連続的に配置されていると、ピックアップ１３０の余分なシーク動作を減らすことが可能である。その理由は、再生部１１３がビデオトラックおよびビデオサイズトラック両方のアクセスデータを参照して、連続配置されたビデオサンプルとビデオサイズサンプルをＤＶＤ−ＲＡＭディスク１３１から一度に読み出すことができるからである。
【００９９】
本実施形態によれば、動画ストリーム中の映像ストリームの１フレームをビデオサンプルに対応させた場合と比較して付属情報のデータサイズを小さくすることが可能である。これによりＭＰ４ファイルを再生する際にも、付属情報を保持するためのメモリサイズの増大を防ぐことが可能になる。例えば、ＧＯＰとビデオサンプルを対応させ、さらにビデオサイズサンプルを含む動画ストリームを１時間記録したときの付属情報（ビデオトラックおよびビデオサイズトラックを含む）のデータサイズは約１００キロバイト程度である。これに対し、１フレームとビデオサンプルを対応させて動画ストリームを１時間記録したときの付属情報のデータサイズは約１メガバイトである。よって本実施形態によれば、付属情報を保持するためのメモリサイズを大幅に低減できる。換言すれば、本実施形態によれば、同じメモリサイズに従来の１０倍程度の付属情報を格納する余裕ができる。
【０１００】
なお、図１２に示すＭＰ４ファイル２１のデータ構造は、本実施形態による独自の構造を規定している。しかし、本実施形態によるデータ構造に対応していない再生装置であっても、ビデオトラックおよびビデオサンプルは通常通り再生可能である。その理由は、ＭＰＥＧ４システム規格では付属情報中の各トラックの先頭にそのトラックのデータサイズを記述することが規定されているため、処理ができないビデオサイズトラックを読み飛ばすことができるからである。
【０１０１】
本実施形態による処理は、上述の動画ストリームが、フレーム間圧縮を用いない符号化方式によって符号化された映像ストリームを含んでいても適用可能である。ただし、１つのビデオサンプルに対応させるフレームの数が少なくなるほど、付属情報のビデオトラックで保持すべきビデオサンプルのアクセスデータ数が増加するので、付属情報のデータサイズが大きくなる点に留意が必要である。
【０１０２】
上述の説明では、各ビデオフレームのフレームサイズの情報を格納したビデオサイズサンプルが拡張情報であるとしたが、拡張情報はこれに限られない。図１５は、各ビデオフレームを構成するスライスの数および各スライスのデータサイズの情報を記述した拡張情報の例を示す。このように構成することにより、上述と同様の演算によって各スライスのデータ格納位置が特定できるので、任意のスライスにアクセスすることが可能になるとともに、エラーが発生したときのエラー伝播の影響をより小さくすることができる。図１６（ａ）〜（ｄ）は、動画ストリームにおいて復号エラーが発生したときの、エラー伝播がスライス内で収まる様子を示す。スライスのデータサイズの情報を記述した拡張情報を規定することにより、エラーが発生してもその次のスライスから復号が可能になるので、エラーの伝播をスライス内に抑えることができる。
【０１０３】
また、図１７は、各ビデオフレームの表示持続時間を記述した拡張情報の例を示す。動画ストリーム３３は、ビデオデュレーションサンプル３６およびビデオサンプル３７を複数含んでいる。ビデオデュレーションサンプル３６は、対応するビデオサンプルの各フレームの表示時間情報（frame duration）を拡張情報として格納している。ビデオデュレーションサンプル３６のアクセスデータは付属情報３２のビデオデュレーショントラック３４において管理されている。ビデオサンプル３７のアクセスデータが付属情報３２のビデオトラック３５において管理される点は先の例と同じである。
【０１０４】
図１７に示す構成を採用する利点は以下のとおりである。まず、動画ストリームの記録時にフレームスキップが発生していないときは、ビデオデュレーションサンプルにはすべてのフレームに対して同じ時間ΔＴを表す情報が記述される。ここで、図１８（ａ）に示すような１フレーム分のフレームスキップが発生した場合を考える。
【０１０５】
図１８（ａ）は、フレームスキップが発生したビデオフレーム群を模式的に示す。フレームスキップが発生したときは、その直前のフレームの表示時間を２倍に指定する表示時間情報を生成する。すなわち図１８（ａ）の例では、その直前のフレーム＃４（frame♯4）の表示時間をΔ２Ｔに設定し、他のフレームの表示時間はΔＴに設定するように、ビデオデュレーションサンプル３６の各フレームデュレーションの値が記述される。その結果、この動画ストリームを再生する時には、フレーム＃４を除いては記録時と同じタイミングで各フレームを表示することができる。一方、図１８（ｂ）は表示時間をすべてのフレームで均一に設定したときのビデオフレーム群を模式的に示す。図１８（ｂ）に示すように各フレームの表示時間を設定すると、動画ストリームの各フレームは、記録時とは違うタイミングで表示されるという不具合が生じる。
【０１０６】
なお、各フレームの表示時間情報および各フレームサイズ情報を同じサンプルに格納して、付属情報内の１つのトラックのアクセスデータから参照する構成をとることもできる。このように構成すると、アクセスデータサイズを増加することなく両方の情報を管理することができる。
【０１０７】
本実施形態では、ビデオサンプル内の映像フレーム数とそれに対応するビデオサイズサンプル内のフレームサイズ情報数が同じであるとして説明したが、同じでなくてもよい。それらの数が異なる場合でも、ビデオサンプルとビデオサイズサンプルとの対応関係を示す情報が付属情報等に格納され、最終的に特定のビデオフレームとそのフレームサイズ情報とを対応させることが可能であればよい。
【０１０８】
なお、本実施形態では、ＭＰ４ファイル形式を例に説明を行ったが、本発明はこれに限定するものではなく、動画ストリームと付属情報から構成され、付属情報に動画ストリーム中の映像ストリームへのアクセスデータが格納されているような構成であれば他のファイル形式にも適用可能である。他のファイル形式の一例としては、ＭＰ４ファイル形式のベースとなったクイックタイムファイル形式が該当する。
【０１０９】
本実施の形態では、記録媒体がＤＶＤ−ＲＡＭディスクであるとして説明したが、特にこれに限定されることはない。例えば記録媒体として、ＭＯ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、ＣＤ−Ｒ、ＣＤ−ＲＷ等の光記録媒体やハードディスク等の磁性記録媒体、半導体メモリ等の半導体記録媒体であってもよい。
【０１１０】
（実施形態２）
上述の第１の実施形態では、フレームサイズ等に関する情報をビデオサンプルとは独立した他のサンプル（ビデオサイズサンプル）に格納するとした。
【０１１１】
本発明の第２の実施形態以降では、フレームサイズ等に関する情報をビデオサンプル内に格納する例を説明する。以下では、まず本実施形態に関連するデータ構造を説明し、その後、本実施形態によるデータ処理装置の構成および動作を説明する。
【０１１２】
本発明の背景技術としても説明したように、近年、通信ネットワークの大容量化および伝送技術の進歩により、インターネット上でのＰＣ向け動画配信サービスが普及してきている。さらに、無線端末上での動画配信に関しても、無線網における受信端末の規格を定める国際標準化団体である３ＧＰＰ(Third Generation Partnership Project)における規格としてＴＳ２６．２３４(Transparent end-to-end packet switched streaming service)が定められるなど、携帯端末においても動画配信サービスの拡大が見込まれる。
【０１１３】
音声、動画、静止画およびテキストなどのメディアデータを蓄積し、配信する際には、メディアデータの再生に必要なヘッダ情報とメディアデータとを多重化することが一般的である。第１の実施形態に関連して言及したＭＰ４は、多重化を実現するための多重化ファイルフォーマットであり、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ  １１ (International Standardisation Organization/International Engineering Consortium)において標準化されている。そして、３ＧＰＰのＴＳ２６．２３４においても採用されていることから、今後普及していくと考えられる。
【０１１４】
ここで、ＭＰ４ファイルのデータ構造を説明する。ＭＰ４ファイルでは、ヘッダ情報やメディアデータはボックス（Box）と呼ばれるオブジェクト単位で格納される。図１９は、ボックス４０のデータ構造を示す。ボックス４０は、サイズ（size）フィールド４１、タイプ（type）フィールド４２、バージョン（version）フィールド４３、フラグ（flags）フィールド４４およびデータフィールド４５を有する。各フィールドに格納される情報の内容は以下のとおりである。
【０１１５】
サイズ（size）フィールド：サイズフィールドも含めたボックス全体のサイズ
タイプ（type）フィールド：ボックスの識別子であり、通常はアルファベット4文字で表される。フィールド長は４バイトであり、連続する４バイト分のデータがタイプフィールドの識別子と一致するか否かを判定することにより、ＭＰ４ファイル内でボックスを検索することが可能になる。
【０１１６】
バージョン（version）フィールド：ボックスのバージョン番号
フラグ（flags）フィールド：ボックス毎に設定されるフラグ情報
データ：ヘッダ情報、メディアデータ等
【０１１７】
なお、バージョンフィールドおよびフラグフィールドは必須ではないため、これらのフィールドが存在しないボックスも存在する。
【０１１８】
本明細書では、ボックスの参照にはタイプフィールドの識別子を使用するとし、例えばタイプが"moov"であるボックスは、"moov"または"ボックスmoov"などと称する。
【０１１９】
ＭＰ４では、ファイル内に含まれることが必須である基本部に加えて拡張部を使用することができる。
【０１２０】
以下では、まず基本部の構造を説明する。図２０（ａ）は、基本部５０のデータ構造を示す。ＭＰ４ファイルは、基本ヘッダであるftyp５１およびmoov５２と、メディアデータを格納するmdat５３の３つの基本ボックスから構成される。ftyp５１はＭＰ４ファイルの先頭に配置される。ftyp５１は、ＭＰ４ファイルを識別するための情報を含む。mdat５３には、サンプルと呼ばれる単位でメディアデータが格納される。サンプルとは、ＭＰ４でメディアデータを扱う際の最小単位であり、１つ以上のオーディオフレームまたはＭＰＥＧ−４  ＶｉｓｕａｌのＶＯＰ（Video Object Plane）に相当する。
【０１２１】
ＭＰ４ファイルフォーマットはオーディオまたはビデオフレームのデータをmdat５３に格納する際の形式を規定しており、フレームデータはそれらの形式に従って格納される。mdat５３に含まれる各メディアのデータはトラックと呼ばれ、各トラックはトラックＩＤにより識別される。
【０１２２】
図２０（ｂ）は、moov５２のデータ構造を示す。ＭＰ４ファイルではmoovは必須のボックスであり、その個数は１つである。moov５２内ではボックスが階層的に配置されており、mdat５３に含まれるサンプルのヘッダ情報が格納される。このヘッダ情報は、実施形態１における付属情報に対応する。換言すれば、moov５２には、実施形態１による付属情報が格納される。
【０１２３】
ファイル全体に共通なヘッダ情報はmvhdに格納される。また、オーディオ、ビデオなど各トラックのヘッダ情報はそれぞれ別々のtrak５３に格納される。なお、trak５３がどのトラックに対する情報を含むかは、trak５３内のボックスtkhd（図示せず）に示されるトラックＩＤによって識別される。ＭＰ４ファイルにおいて拡張部が使用される際には、mvexが存在する。mvexは拡張部使用時にのみ存在し、基本部５０のあとに拡張部が格納されていることを示す。mvexにはtrexが含まれ、拡張部におけるヘッダ情報のデフォルト値をトラック毎に設定する。
【０１２４】
図２１（ａ）は、trak５３のデータ構造を示す。trak５３はstbl５４を含み、さらにstbl５４はボックスstts５５、stsd５６、stsc５７を含む。stbl５４内のボックスには、サンプルの復号時間、表示開始時間、サイズ等の情報が格納される。
【０１２５】
まず、サンプルの復号時間はstts５５に格納される。stts５５には、連続する２つのサンプル間における復号時間の差分値が格納されている。よってこの差分値を積算することにより、各サンプルの復号時間を取得することができる。なお、復号時間と表示開始時間が異なる際には、ボックスctts（図示せず）に復号時間と表示開始時間との差分の情報が格納される。例えば、双方向予測を用いて符号化されたフレームでは復号時間と表示開始時間が異なるため、表示開始時間を求めるためにcttsが使用される。サンプルのサイズはstsz（図示せず）と呼ばれるボックスに格納される。
【０１２６】
次に、ボックスstsd５６およびstsc５７を説明する。stsd５６には、トラックデータの復号に必要な初期化情報やトラックの表示サイズ等がエントリーとして格納される。エントリーの内容は各サンプルのデコード時に参照される。エントリーは複数存在してもよく、例えばトラックの途中で表示サイズを変更する際には、変更前と変更後２つのエントリーが用意される。
【０１２７】
第１の実施形態に関連して説明したように、一般に、アクセスデータのサイズは１サンプルに含まれるフレーム数に応じて変化するため、複数のビデオフレームをまとめて１サンプルとすることにより付属情報のデータサイズ、すなわちボックスmoovのデータサイズを低減できる。そこで、１サンプルに含まれるフレーム数を示すフィールドframe＿countがボックスstsd５６のエントリー内に導入されている。図２１（ｂ）は、ボックスstsd５６内の複数のエントリーに設定されたフィールドframe＿countを示す。図２１（ｂ）に示すように、stsdには１０個のエントリー１〜１０が存在する。先頭エントリーはframe＿countが１０であるため、１サンプルに１０枚のフレームが含まれることを示す。同様に、２番目、３番目のエントリーはそれぞれ１サンプルあたり９、８枚のフレームを含むことを示している。
【０１２８】
さらに、ＭＰ４ファイルを復号または再生する際には、stsc５７によって各サンプルに何枚のフレームが含まれるかが示される。再生装置は、各サンプルの復号時にstsc５７を参照することにより、stsd５６内の何番目のエントリーを参照するのかを知ることができる。例えば、stsc５７において、１番目のサンプルはstsd５６のエントリー１に対応することが示されると、再生装置は、１番目のサンプルが１０枚のフレームを含むことを把握できる。
【０１２９】
基本部のみから構成されるトラックにおいては、トラック全体に対するヘッダ情報がmoovにまとめて格納される。一方、トラックを分割し、分割した単位毎にヘッダ情報を付加するための手段として、拡張部が規格化された。拡張部においては、トラックを分割したそれぞれの単位に対してヘッダ情報が付加される。ただし、拡張部を使用する際にもftypとmoovは必須であり、サンプルの復号に必要な情報など、トラック内の全てのサンプルにおいて共通に使用される情報は必ずmoovに格納される。
【０１３０】
図２２は、基本部５０と拡張部６０とを含むＭＰ４ファイルのデータ構造を示す。拡張部６０では、分割された単位に含まれるサンプルのヘッダ情報は拡張ヘッダ６１（moof）に格納され、moofにヘッダ情報が格納されているサンプルのデータは、サンプルデータ６２（mdat）に格納される。なお、拡張部６０が存在するため、基本部５０のボックスmoovにはボックスmvexが存在する。
【０１３１】
図２３は、moof６１のデータ構造を示す。moovと同様に、moof６１においてもボックスが階層的に配置され、moof直下にはmoofのインデックス情報を格納するmfhdと、ヘッダ情報をトラック単位で格納する１つ以上のtraf６２とが配置される。traf６２は、moovにおけるtrakと同様に、復号時間の早いサンプルから順に各トラックに含まれるサンプルのヘッダ情報を格納する。なお、各トラックに関するヘッダ情報は、複数のtraf６２を使用して格納してもよい。traf６２は、tfhd６３と１つ以上のtrun６４を含む。trun６４は、サンプルのサイズや再生時間長などサンプル単位のヘッダ情報が格納される。Tfhd６３は、traf６２が情報を格納しているトラックのトラックID（track＿ID）、traf６２に含まれるサンプルをデコードする際にstsd５６内の何番目のエントリーを参照するか等の情報を格納する。上述した説明では、moovとmdatが同一ファイル内に存在することとしたが、mdatをmoovとは異なるデータファイルとして格納し、moovからmdatのデータファイルを参照することもできる。
【０１３２】
以下、図２４および図２５を参照しながら、本実施形態によるデータ処理装置がＭＰ４ファイルを生成する基本的な動作を説明する。
【０１３３】
図２４は、本実施形態によるデータ処理装置１７０の記録機能のブロックの構成を示す。データ処理装置１７０は、映像信号を受け取り、ビデオデータ、ヘッダデータ等を多重化してＭＰ４ファイルを生成することができる。
【０１３４】
データ処理装置１７０は、符号化部１７１と、メモリ１７２、１７４と、解析部１７３と、ヘッダ生成部１７５と、データ生成部１７６と、連結部１７７とを備えている。
【０１３５】
各構成要素の機能は以下のとおりである。符号化部１７１は、映像信号を受け取って所定の符号化形式で符号化し、符号化データを出力する。例えば、映像はフレーム単位またはフィールド単位で符号化される。本明細書では、「フレーム」および「フィールド」の両方を包含する概念として、「ピクチャ」という語が用いられる。
【０１３６】
メモリ１７２および１７４は、符号化データ、解析情報等を格納する記録媒体であり、例えば半導体メモリ、光ディスク、ハードディスクである。両者は同じ種類の記録媒体でなくてもよい。
【０１３７】
解析部１７３は、符号化データを取得して、符号化データに関する解析情報、例えば、１以上のピクチャデータや音声フレームデータを含むサンプルごとのデータサイズ、表示開始時間あるいは復号時間を示す情報、符号化データの復号に必要な初期化情報等を取得する。また、解析部１７３は、上述したボックスmoovの生成を指示するmoov生成信号を出力する。
【０１３８】
ヘッダ生成部１７５は、moov生成信号に基づいて、符号化データの解析情報を取得してボックスmoovを生成する。さらに、ヘッダ生成部１７５は、mdat内におけるサンプルデータの配置に関する配置情報を出力する。
【０１３９】
データ生成部１７６は、符号化データおよび配置情報に基づいて、ＭＰ４規格で規定された形式に従ってmdatを作成する。
【０１４０】
連結部１７７は、ボックスmoovとＭＰ４規格で規定されたデータmdatとを連結または多重化してＭＰ４ファイルを生成する。
【０１４１】
以下、データ処理装置１７０の動作を説明する。まず、符号化部１７１は、入力された映像信号を符号化し、符号化データｄ１０２をメモリ１７２に格納する。次に、解析部１７３は、メモリ１７２より符号化データｄ１０３を取得し、フレームサイズ、表示開始時間または復号時間などサンプル単位の情報、および符号化データの復号に必要な初期化情報を取得する。その後、解析部１７３は、解析結果ｄ１０５をメモリ１７４に格納する。moovの生成に必要な情報が揃うと、解析部１７３は、moov生成信号ｄ１０４をヘッダ生成部１７５に送る。
【０１４２】
ヘッダ生成部１７５は、moov生成信号ｄ１０４をトリガとしてmoovの生成を開始する。このとき、ヘッダ生成部１７５はメモリ１７４からの解析情報ｄ１０６を取得し、moov内に各ボックスを生成する。moov作成終了後、ヘッダ生成部１７５は、mdat内におけるサンプルデータの配置情報ｄ１０７をデータ生成部１７６に入力し、作成したmoovのデータｄ１０９を連結部１７７に入力する。データ生成部１７６は、メモリ１７２から入力ビデオデータｄ１０８を取得し、配置情報ｄ１０７およびＭＰ４規格で規定された形式に従ってmdatを作成する。そして、データ生成部１７６は、生成したデータｄ１０７（mdat）を連結部１７７に入力する。最後に、連結部１７７は、データｄ１０９（moov）とデータｄ１０７（mdat）とを連結してＭＰ４ファイルｄ１１０を出力する。なお、出力されたＭＰ４ファイルは、例えばドライブ装置（図示せず）等によって光ディスク、ハードディスク等に記録され、または、ＰＣカードスロットを介して半導体メモリカード等に記録される。
【０１４３】
図２５は、ヘッダ生成部１７５が復号開始時間の差分値、および、サンプルを構成するフレーム数の決定手順を示す。この決定は、解析結果ｄ１０６に基づいて行われる。復号開始時間の差分値とは、各サンプルの復号開始時間と、その次のサンプルの復号開始時間との差分値を表している。本実施形態のデータ処理装置１７０も、複数のビデオフレームを１サンプルとして取り扱うとする。
【０１４４】
以下では、ＭＰＥＧ−２  Ｖｉｓｕａｌのデータが入力された際に１ＧＯＰを１サンプルとして格納する動作を説明する。この動作に際し、ヘッダ生成部１７５は、１ＧＯＰに含まれるフレームの再生時間長の総和に関する情報を予め取得しているとする。なお、以下の説明および図面では、"sample＿dur"、"num＿frame"および"i"は、それぞれ、i番目のサンプルとi＋１番目のサンプルにおける復号時間の差分値、i番目サンプルに含まれるフレーム数、およびサンプル番号を示すものとし、sample＿dur、およびnum＿frameの初期値は０、iの初期値は１とする。
【０１４５】
まず、ヘッダ生成部１７５は、ステップＳ２１において１フレーム分の解析結果を入力し、続いてステップＳ２２で次フレームと現フレームとの復号時間の差分値であるframe＿durを取得する。ステップＳ２３において、sample＿durにframe＿durを加算し、num＿frameに１を加算する。
【０１４６】
次に、ヘッダ生成部１７５は、sample♯durとＧＯＰの再生時間長とを比較することにより、ステップＳ２４において処理したフレームがＧＯＰの最終フレームであるか否かを判定し、最終フレームでない場合には、ステップＳ２１に戻り、ＧＯＰに含まれる最終サンプルの処理が完了するまでステップＳ２１からステップＳ２４の処理を繰り返す。１ＧＯＰ分のフレームの処理が完了すると、ステップＳ２５においてi番目サンプルとi＋１番目サンプルの復号時間の差分値を示すsample＿durと、i番目サンプルに含まれるフレーム数を示すnum＿frameとを解析結果のテーブルに格納する。次に、ヘッダ生成部１７５は、ステップＳ２６において、i番目のＧＯＰが入力データにおける最終ＧＯＰであるか否かを判定する。判定の結果、最終ＧＯＰでない場合には、ヘッダ生成部１７５は、ステップＳ２７においてiに１を加算し、sample＿durとframe＿durを０にセットした後にステップＳ２１からステップＳ２６までの処理を繰り返す。この処理は、最終ＧＯＰに達するまで継続される。以上、データ処理装置１７０がＭＰ４ファイルを生成する際の基本的な動作を説明した。
【０１４７】
次に、データ処理装置１７０がＭＰ４ファイルを生成する際のさらに他の動作を説明し、生成されたＭＰ４ファイルのデータ構造を説明する。得られたＭＰ４ファイルを用いることにより、符号化データにおける各フレームの表示時間長が一定でない際にも、サンプルに含まれる複数のフレームの復号時間を正しく示すことができる。なお、映像信号の符号化方式は、ＭＰＥＧ−２  Ｖｉｓｕａｌであるとして説明するが、例えばＭＰＥＧ−４  ＡＶＣ、ＭＰＥＧ−４  Ｖｉｓｕａｌであってもよいし、ビデオデータのみならずオーディオ、テキスト等のデータを含んでいてもよい。
【０１４８】
まず、本実施形態によるデータ処理装置１７０の特徴的な動作を説明する。この動作と図２５に示す動作とを比較すると、ヘッダ生成部１７５においてサンプルを構成するフレームを決定する手順が相違する。したがって、以下ではその相違する処理を説明する。
【０１４９】
ヘッダ生成部１７５がサンプルを決定する基準は、連続する２枚のフレーム間で復号時間の差分値が一定であるか否かである。ヘッダ生成部１７５は、差分値が一定であればそれらのフレームが同じサンプルに属すると決定し、一定でなければそのそれらのフレームを異なるサンプルに属すると決定する。
【０１５０】
なお、本実施形態においては、フレームスキップが発生していない場合には差分値が全て一定になり、１ＧＯＰの全てのフレームは１サンプルとして管理される。一方、フレームスキップの発生等により差分値が一定でない場合には１ＧＯＰのフレームは複数のサンプルとして管理される。ただし、目標とするサンプルの生成単位は、ＭＰＥＧ−４  ＶｉｓｕａｌにおけるグループオブＶＯＰ（Group of VOP (Video  Object  Plane）；ＧＯＰ)またはＭＰＥＧ−４  ＡＶＣにおけるサブシーケンスであってもよい。または、ＭＰＥＧ−４  ＶｉｓｕａｌにおけるＩ（画面内符号化）フレームから、次のＩフレームの直前のフレームまでとしてもよいし、ＭＰＥＧ−４  ＡＶＣにおけるＩＤＲ(Instantaneous decoder refresh)ピクチャから、次のＩＤＲピクチャの直前のピクチャまでとしてもよい。なお、サンプルに含まれるビデオデータは、フレーム構造のデータに限定されるものではなく、フィールド構造のデータであってもよい。
【０１５１】
図２６は、ヘッダ生成部１７５における、サンプルを構成するフレームの決定手順を示す。ヘッダ生成部１７５は、まず、ステップＳ３１において符号化データの先頭フレームの表示開始時間ＣＴＳ（１）および復号時間ＤＴＳ（１）を取得し、変数iを１にセットする。このとき、表示開始時間の取得には、フレームデータ内の“Temporal Reference”の値が使用され、復号時間はＧＯＰを構成するフレームのタイプ（I、P、Bフレーム）および配置順に従って表示開始時間から計算される。
【０１５２】
次にステップＳ３２において、ヘッダ生成部１７５は（i+1）および（i+2）番目フレームの表示開始時間ＣＴＳ（i+1）およびＣＴＳ（i+2）を取得する。続いて、ヘッダ生成部１７５は、ステップＳ３３において、取得したＣＴＳ（i+1）およびＣＴＳ（i+2）の値から（i+1）および（i+2）番目フレームの復号時間ＤＴＳ（i+1）およびＤＴＳ（i+2）の値を算出し、次のステップＳ３４では、ＤＴＳ（i）、ＤＴＳ（i+1）、ＤＴＳ（i+2）の値からdelta（i）、およびdelta（i+1）を計算する。なお、ここではi番目フレームと（i+1）番目フレームの復号時間の差分値をdelta（i）と表記している。
【０１５３】
ヘッダ生成部１７５は、ステップＳ３５において、delta（i）とdelta（i+1）が等しいか否かを判定する。等しくないときはステップＳ３７に進み、等しいときはステップＳ３６に進む。ここで、jの初期値は１とする。ステップＳ３７において、ヘッダ生成部１７５は、j番目サンプルを構成するフレームを決定し、jに１を加算する。このとき、j番目のサンプルの先頭フレームは、（j-1）番目のサンプルにおける最終フレームの直後のフレームとし、最終フレームをi番目フレームとする。ただし、先頭サンプル（j＝１）は符号化データの先頭フレームから開始するとしている。このように、delta（i）に不連続が生じた際には新たなサンプルを作成することにより、サンプルを構成する各フレームにおいて、次フレームと現フレームとの復号時間の差分値を等しくすることができる。
【０１５４】
次に、ステップＳ３６において、ヘッダ生成部１７５は、i番目フレームがＧＯＰの最終フレームであるか否かを判定する。最終フレームではないときはステップＳ３９に進み、最終フレームであるときは上述のステップＳ３７に進む。
【０１５５】
ステップＳ３９では、ヘッダ生成部１７５は（i+2）番目フレームが符号化データの最終フレームであるか否かを判定する。最終フレームでないときにはステップＳ４０に進み、最終フレームであるときは、ｊ番目サンプルを決定して処理を終了する。ステップＳ４０において、ヘッダ生成部１７５はiに１を加算して、ステップＳ３２からステップＳ３６までの処理を繰り返す。ここで、j番目サンプルの先頭フレームは、（j-1）番目サンプルにおける最終フレームの直後のフレームとし、最終フレームは（i+2）番目フレームとする。ステップＳ３６において、i番目フレームがＧＯＰの最終フレームであると判定された際には、ステップＳ３７の処理を行う。
【０１５６】
続いて、ヘッダ生成部１７５は、ステップＳ３８において、（i+2）番目フレームが符号化データの最終フレームであるか否かを判定し、最終フレームではない場合にはステップＳ４０においてiに１を加算し、ステップＳ３２からステップＳ３８までの処理を繰り返す。この処理は、最終フレームであると判定されるまで繰り返される。ステップＳ３８において、最終フレームであると判定された際には、j番目サンプルの先頭フレームを（j-1）番目サンプルにおける最終フレームの直後のフレームとし、最終フレームを（i+2）番目フレームと決定し、処理を終了する。
【０１５７】
図２７は、決定されたサンプルとフレームとの関係を示す。このＧＯＰでは復号時間順に１枚のＩフレームと９枚のＰ（順方向予測）フレームが配列されている。図において、“Ｉ”はＩフレーム、“Ｐ”はＰフレームを示す。各フレームの表示開始時間には、"Temporal Reference"の値が使用される。なお、ここではフレームの表示開始時間に基づいて復号時間を計算する例を説明したが、ビデオの符号化データ内に各フレームの復号時間を示す情報が含まれる場合には、その情報を使用してもよい。
【０１５８】
図２７に示すＧＯＰは、ＩフレームとＰフレームのみから構成されるため、全てのフレームの表示開始時間と復号時間とは等しい。ここで、フレームＰ−８の表示開始時間と復号時間とが一時的に変更された場合を考える。例えば、他のフレーム間では復号時間の差分値は全て１であるのに対し、フレームＰ−７とフレームＰ−８の復号時間の差分値は２にされているとする。すると、ヘッダ生成部１７５は、フレームＩ−１からフレームＰ−６までのサンプル１、フレームＰ−７のみを含むサンプル２およびフレームＰ−８からフレームＰ−１０までのサンプル３を生成する。
【０１５９】
図２８は、決定されたサンプルとフレームとの関係を示す他の例を示す。このＧＯＰでは復号時間順にＩＢＢＰＢＢＰＢＢＰ・・の順序で各フレームが配列されている。ＢはＢ（双方向予測）フレームを示す。この例では、ＩおよびＰフレームの復号時間は、表示開始時間から３を減算することにより計算され、Ｂフレームの復号時間は表示開始時間と等しい。ここで、符号化時にフレームＢ−５の部分でフレームスキップが発生した場合を考える。すると、フレームＰ−４において次フレームと現フレームとの復号時間の差分値が不連続になる。そこで、ヘッダ生成部１７５は、フレームＩ−１からフレームＢ−３までのサンプル１、フレームＰ−４のみを含むサンプル２およびフレームＢ−６からフレームＰ−１０までのサンプル３を生成する。
【０１６０】
上述の処理によってサンプルを構成するフレームを決定し、それらのフレームを含むサンプルを生成することにより以下の利点がある。すなわち、再生装置側では、連続する２つのサンプルの復号時間の差分値を、サンプルを構成するフレーム数で除算することにより、サンプルデータを解析することなしに、現フレームを復号してから次フレームを復号するまでの時間を画一的な計算によって取得することができる。なお、ＭＰ４では、サンプルを構成するフレーム数は、図２１（ａ）および（ｂ）に記載されたstsd５６のエントリー中のframe＿countフィールドによって特定される。含まれるフレームの数が異なるサンプルは、それぞれ対応するframe＿count値を持った異なるstsdエントリーを参照する。例えば、サンプルを構成するフレーム数が５，６，７の３種類である場合には、frame＿count値がそれぞれ５，６，７である３つのエントリーをstsd５６に生成し、参照すればよい。なお、必要となりそうなframe＿count値を予め予想し、それらのframe＿count値を網羅したstsdエントリー群を予め生成しておいてもよい。
【０１６１】
（実施形態３）
第３の実施形態によるデータ処理装置は、ビデオデータを受け取ってＭＰＥＧ−２  Ｖｉｓｕａｌに従って符号化する。データ処理装置は、符号化データにおいて連続する２つのフレームの復号時間の差分値が不連続となったときには、各サンプルが含むフレーム数を可能な限り一定に保つことにより、サンプルが参照するstsdのエントリーが頻繁に切り替わることを防止するＭＰ４ファイルを生成する。なお、本データ処理装置が処理するビデオデータは、ＭＰＥＧ−４  ＡＶＣまたはＭＰＥＧ−４  Ｖｉｓｕａｌであってもよい。なお、サンプルに含まれるビデオデータは、フレーム構造のデータに限定されるものではなく、フィールド構造のデータであってもよい。
【０１６２】
本実施形態によるデータ処理装置の構成は、実施形態２にかかるデータ処理装置の構成と同一であり、ヘッダ生成部１７５以外の各構成要素の動作は同一である。よって、以下ではデータ処理装置の各構成要素の説明は省略し、ヘッダ生成部１７５の動作を説明する。
【０１６３】
図２９は、ヘッダ生成部１７５によって実行される、符号化データ内のフレームをサンプルに多重化する手順を示す。サンプル単位の決定は、１サンプルが１ＧＯＰ内の全てのフレームを含むようにすることを目標として行う。図２９では、iはサンプル番号を表し、sample＿durはi番目と(i＋１)番目のサンプルの復号時間の差分値を表し、num＿frameはi番目サンプルに含まれるフレーム数を表すとする。sample＿dur、およびnum＿frameの初期値は０、iの初期値は１とする。
【０１６４】
ステップＳ４１において、ヘッダ生成部１７５は、Temporal Referenceの値に基づいて現フレームおよび次フレームの表示時間を取得し、それぞれのフレームの復号時間を算出した後に、現フレームと次フレームの復号時間の差分値を計算する。
【０１６５】
次に、ステップＳ４２において、ヘッダ生成部１７５は、sample＿durにframe＿durを加算し、num＿frameに１を加算する。その後、ヘッダ生成部１７５は、ステップＳ４３において現フレームのframe＿durと符号化時のフレームレートから算出した表示時間長とを比較し、フレームスキップが発生しているか否かを判定する。フレームスキップが発生したことを判定すると、ステップＳ４４において、ヘッダ生成部１７５はスキップしたフレーム数分だけnum＿frameに値を加算する。例えば、符号化データのフレームレートが１０Ｈｚである場合、各フレームにおける復号時間の差分値は１００ｍｓとなる。ここで、Ｎ番目フレームのframe＿durが３００ｍｓであるとすると、Ｎ＋１番目、Ｎ＋２番目の２枚のフレームはスキップされたと判定できるため、ヘッダ生成部１７５はnum＿frameに２を加算する。続いて、ヘッダ生成部１７５は、ステップＳ４５において現フレームがＧＯＰの最終フレームであるか否かを判定する。最終フレームでない場合には、ヘッダ生成部１７５はステップＳ４１に戻り、ＧＯＰに含まれる最終サンプルの処理が完了するまでステップＳ４１からステップＳ４５の処理を繰り返す。１ＧＯＰ分のフレームの処理が完了すると、ステップＳ４６においてi番目およびi＋１番目サンプルの復号時間の差分値を示すsample＿dur、および、i番目サンプルに含まれるフレーム数を示すnum＿frameを取得する。
【０１６６】
次に、ステップＳ４７において、ヘッダ生成部１７５は、現フレームが符号化データの最終フレームであるか否かを判定する。最終フレームでない場合には、ステップＳ４８においてiに１を加算し、sample＿durとframe＿durを０にセットした後にステップＳ４１からステップＳ４７までの処理を繰り返し、最終フレームに達した時点で処理を終了する。なお、フレームスキップの頻度が、ある一定値以上に達した際には、ステップＳ４４におけるnum＿frameの加算処理を行わないとしてもよい。
【０１６７】
図３０は、ＧＯＰ内のフレームが格納されたサンプルを示す。この例では、ＧＯＰ１とＧＯＰ２の２つのＧＯＰを構成するフレームをサンプル１および２に格納する。まず、ＧＯＰ１に含まれるフレーム１からフレーム５までの５枚のフレームをサンプル１にマッピングする。次に、ＧＯＰ２に含まれる４枚のフレームを処理する。ＧＯＰ２では、フレーム７においてフレームスキップが発生し、フレーム７の表示時間長が他のフレームの２倍となっている。このフレームの処理において、ヘッダ生成部１７５は、ステップＳ４３においてフレームが１枚分スキップされたと判定し、ステップＳ４４に進んで、num＿frameに１を加算する。その結果、フレーム７の処理終了時点でnum＿frameの値は３となり、フレームスキップが発生していない場合と同一の値をとる。すなわち、サンプル２に対応するframe＿countは４ではなく、サンプル１と同様に５となる。
【０１６８】
ＭＰ４ファイルのmoov５２では、サンプルが参照するstsd５６のエントリー（図２１（ｂ））はstsc５７によって示される。stsc５７には、サンプルが参照するstsdのエントリーが切り替わるたびに、stsc内のデータテーブルのエントリーが追加される。
【０１６９】
本実施形態によれば、フレームスキップが発生した際にもframe＿countが一定に保たれるので、参照するstsdのエントリーの切り替わり頻度が減少し、データ処理装置の再生負荷も削減できる。さらに、ＭＰ４の拡張部を使用する際にも、参照するエントリーが切り替わらないので、サンプル情報を格納するtrafを切り替える必要はなく、オーバーヘッドの増大は発生しない。
【０１７０】
本実施形態では、１サンプルが１ＧＯＰ内の全てのフレームを含むことを目標としてサンプルの単位を決定した。しかし、サンプルの単位は、ＭＰＥＧ−４  ＶｉｓｕａｌにおけるＧＯＶまたはＭＰＥＧ−４  ＡＶＣにおけるサブシーケンスであってもよい。または、MPEG−４  VisualにおけるＩフレームから、次のＩフレームの直前のフレームまでとしてもよいし、ＭＰＥＧ−４  ＡＶＣにおけるIDR（Instantaneous decoder refresh）ピクチャから、次のIDRピクチャの直前のピクチャまでとしてもよい。
【０１７１】
（実施形態４）
第４の実施形態によるデータ処理装置は、図２９に示す手順によって生成されたＭＰ４ファイルを受け取って解析し、符号化データを復号して表示する。本実施形態における「ビデオデータ」は符号化方式に依存しない映像のデータであるとする。例えば、「ビデオデータ」はＭＰＥＧ−４  ＡＶＣ、ＭＰＥＧ−４  ＶｉｓｕａｌまたはＭＰＥＧ−２  Ｖｉｓｕａｌである。ただし、双方向予測を用いた符号化は行わないとする。
【０１７２】
図３１は、本実施形態によるデータ処理装置２００の機能ブロックの構成を示す。動画ストリーム復号部２００は、いわゆる逆多重化処理を行って、符号化ストリームを復号化する。データ処理装置２００は、受信部２０１と、メモリ２０２、２０４、２０５と、分離部２０３と、解析部２０６と、復号表示部２０７とを有する。
【０１７３】
以下、データ処理装置２００の各構成要素を説明しながらデータ処理装置２００の処理の流れを説明する。例えばＭＰ４ファイルがＣＤ−ＲＯＭに記録されているとすると、受信部２０１は、ピックアップ１３０を介して読み出されたＭＰ４ファイルデータを受け取って、ＭＰ４ファイルデータｄ２０２としてメモリ２０２に入力する。このとき、受信部２０１は、光ディスクドライブ（図示せず）との接続を確保するインターフェース部である。分離部２０３は、メモリ２０２からＭＰ４ファイルデータｄ２０３を取得し、moovまたはmoofから構成されるＭＰ４のヘッダ部分と、mdatから成るＭＰ４のデータ部分とを分離し、ヘッダ部分のデータｄ２０４をメモリ２０４に入力し、データ部分のデータｄ２０５をメモリ２０５に入力する。ここで、メモリ２０５は半導体メモリであってもよいし、ハードディスクや光ディスク等の記録媒体を備えたドライブ装置であってもよい。
【０１７４】
解析部２０６は、メモリ２０４よりヘッダ部データｄ２０６を取得し、解析してサンプル、または、サンプルに含まれるフレームのサイズ、復号時間、格納場所等に関する情報を取得した後、解析結果をデータｄ２０７として復号表示部２０７に入力する。復号表示部２０７は、解析結果データｄ２０７を元に、メモリ２０５からサンプルデータを取得し、サンプルに含まれるフレームを取り出した後、復号して表示する。なお、ビデオデータは、フレーム単位で構成されていなくてもよく、フィールド単位で構成されていてもよい。
【０１７５】
次に、解析部２０６が、サンプルに含まれる各フレームの復号時間を求める方法を説明する。入力されるＭＰ４ファイルは、第３の実施形態による処理に基づいて生成されたとする。すなわち、サンプル内でフレームスキップが発生しているときであっても、そのframe＿countの値は、フレームスキップが発生していないときのサンプルと同一のframe＿countの値と同じである。いま、サンプルには１からＮ番目までのフレームが含まれ、各フレームにおいて復号時間と表示時間は等しいとする。
【０１７６】
まず、解析部２０６は、１からＮ−１番目のフレームについて、連続する２フレーム間の復号時間の差分値を計算する。具体的には、解析部２０６は、現サンプルと次サンプルとの復号時間の差分値をstts５５またはtrun６４から取得し、frame＿countで除算することにより、連続する２フレーム間の復号時間の差分値を計算する。
【０１７７】
次に、解析部２０６は、Ｎ番目フレームと次フレームとの復号時間の差分値を計算する。すなわち、解析部２０６は、１番目フレームからＮ−１番目フレームまでの復号時間差分値の総和を、サンプルの復号時間差分値から減算して、復号時間の差分値を求める。この計算によれば、フレームスキップ発生時には最終フレームおよびスキップが発生しているフレームの復号時間差分値は正確に得られないが、それら以外のフレームに対しては正確な復号時間差分値を取得することができる。
【０１７８】
図３２（ａ）〜（ｃ）は、符号化データを構成するフレームデータとその復号時間の関係を示す。図３２（ａ）は、符号化データに含まれるフレームと復号時間との関係を示す。サンプルには、フレーム１，フレーム２、フレーム３、フレーム４の４枚のフレームが含まれており、フレーム２においてスキップが発生したため、フレーム２の復号時間の差分値が２秒、他のフレームは１秒となっている。
【０１７９】
次に、解析部２０６により得られる各フレームの復号時間の差分値を説明する。図３２（ｂ）は、解析部２０６により得られるフレームの復号時間を示す。フレーム１、フレーム２、フレーム３の復号時間差分値は、そのサンプルと次のサンプルとの復号時間の差分値をframe＿countで除算して得られる。図３２（ｂ）の例では、サンプルの復号時間差分値は５秒、frame＿count値は５である。よって、これら３枚のフレームの復号時間差分値は１秒である。一方、サンプルの最終フレームであるフレーム４の復号時間差分値は、サンプルの復号時間差分値から、フレーム１からフレーム３までの復号時間差分値の総和を減算することにより、２秒と求められる。
【０１８０】
なお、図３２（ｃ）に示すように、解析部２０６は、sttsまたはtrunから得られるサンプルの復号時間差分値をframe＿countで除算することにより２番目からＮ番目フレームの表示時間長を計算し、１番目のフレームの復号時間差分値をサンプルの復号時間差分値から、２番目からＮ番目フレームの復号時間差分値の総和を減算することにより計算してもよい。
【０１８１】
（実施形態５）
第５の実施形態によるデータ処理装置は、１サンプルに複数ビデオフレームが含まれるＭＰ４ファイルを受け取って解析し、符号化データを復号して表示する。本データ処理装置が処理するビデオデータは、ＭＰＥＧ−４  ＡＶＣであるとするが、処理するビデオデータは、ＭＰＥＧ−４  ＶｉｓｕａｌまたはＭＰＥＧ−２  Ｖｉｓｕａｌであってもよい。
【０１８２】
１サンプルに複数ビデオフレームが含まれる際には、各フレームにおいて復号時間と表示開始時間が異なると、moovまたはmoofにはフレーム単位の時間情報が含まれないため、各フレームの表示開始時間を取得することができない。
【０１８３】
そこで、本実施形態によるデータ処理装置に入力されるＭＰ４ファイルには拡張したサンプル構造を採用し、サンプルを構成するフレームまたはフィールドの表示開始時間を取得できるようにした。
【０１８４】
ＭＰ４では、ビデオやオーディオのフレームまたはフィールドのデータをサンプル内に格納するための形式が規定されており、その形式にしたがう限り、フレームまたはフィールドのデータをサンプル内に格納することが可能である。しかしその形式によっては、フレームデータまたはフィールドデータがそのままサンプルに格納されるとは限らない。例えば、ＭＰＥＧ−４  ＡＶＣの符号化データをＭＰ４ファイルに格納する際には、ＮＡＬ（Ｎｅｔｗｏｒｋ  Ａｄａｐｔａｔｉｏｎ  Ｌａｙｅｒ）ユニットに、ＮＡＬユニットのサイズを付加して格納することが提案されており、フレームデータ等がそのまま連続的に格納されていない。
【０１８５】
図３３（ａ）〜（ｃ）は、逆多重化処理を行う対象となるＭＰ４ファイルのサンプル構造を示す。図３３（ａ）は、Ｎ枚（Ｎ：２以上の整数）のフレームが１サンプルに含まれるときのサンプルの構造を示し、各アクセスユニットの前に表示時間情報が付与される。
【０１８６】
「アクセスユニット」とは、この例では１フレームのデータをＭＰ４における格納形式に変換した後のデータを表す。より一般的にいえば、「アクセスユニット」とは、１フレームまたは１フィールドを表す１ピクチャのデータを格納する単位である。
【０１８７】
ＭＰＥＧ−４  ＡＶＣを使用する際には、表示時間情報としてＰＯＣ（Ｐｉｃｔｕｒｅ  Ｏｒｄｅｒ  Ｃｏｕｎｔ）の値を使用する。ここで、ＰＯＣとは、フレームの表示順序を示すパラメータである。
【０１８８】
表示時間情報のフィールド長は、stsdのエントリー内に新たにフィールドを設けることにより定義する。ただし、新たに設けられるフィールドは、frame＿countが１より大きい場合にのみ存在するとする。なお、表示時間情報のフィールド長としては固定値を使用してもよいし、フレーム毎に指定してもよい。
【０１８９】
図３３（ａ）に示すデータ構造では、１以上のフレームのデータを表すアクセスユニットおよびそのフレームの表示時間を表す表示時間情報が、交互に１つのサンプル内に設けられている。
【０１９０】
一方、図３３（ｂ）は、１フレーム分のアクセスユニットが格納されたサンプルを示す。サンプル内に１フレーム分のアクセスユニットが格納される際には、図３３（ｂ）に示すように、従来通りアクセスユニットのみが格納される。図３３（ｃ）はサンプル構造のシンタックス例を示す。
【０１９１】
なお、FrameCount、TimeInfo、access＿unit＿data[]はそれぞれstsdのエントリーにおけるframe＿count値と、表示時間情報、アクセスユニットのデータを示し、LengthSizeは、表示時間情報のフィールド長を表し、stsdのエントリーにおいて新たに定義したフィールドにより示される。
【０１９２】
なお、図３３（ａ）に示したサンプル構造では表示時間情報とアクセスユニットを対にして格納したが、表示時間およびアクセスユニットをそれぞれまとめて格納することもできる。図３４（ａ）は、表示時間およびアクセスユニットをまとめて格納したサンプルを示す。図３４（ｂ）は、図３４（ａ）のサンプル構造を実現するシンタックス例を示す。
【０１９３】
さらに、第１の実施形態と同様、表示時間情報とともに、または、表示時間情報に代えて、アクセスユニットのデータサイズを表す情報をデータストリームに含めることも可能である。図３４（ｃ）は、表示時間情報の次にアクセスユニットのサイズを示すフィールドを追加した例を示す。サイズフィールドの有無、およびフィールド長の設定方法に関しては、表示時間情報と同様の方法を使用することができる。表示時間およびデータサイズの情報は、いずれも各フレームを特定するための属性を示している。
【０１９４】
図３５は、本実施形態によるデータ処理装置３００の機能ブロックの構成を示す。動画ストリーム復号部２００は、いわゆる逆多重化処理を行って、符号化ストリームを復号化する。データ処理装置３００は、受信部３０１と、メモリ３０２、３０４、３０５と、分離部３０３と、解析部３０６と、サンプル解析部３０７と、復号表示部３０８とを有する。
【０１９５】
データ処理装置３００と、図１１に示すデータ処理装置１０との対応関係は、以下のとおりである。すなわち、受信部３０１、メモリ３０２および分離部３０３は、データ処理装置１０の再生部１１３に相当する。メモリ３０４は、付属情報保持メモリ１１８に相当するメモリ３０５、解析部３０６、サンプル解析部３０７、復号表示部３０８は、データ処理装置１０の動画ストリーム復号部１１１に相当する。なお、復号表示部３０８における表示機能は、データ処理装置１０の映像信号出力部１１０に相当する。
【０１９６】
以下、データ処理装置３００の各構成要素を説明する。受信部３０１は、入力されるＭＰ４ファイルデータを、ＭＰ４ファイルデータｄ３０２としてメモリ３０２に入力する。分離部３０３は、メモリ３０２からＭＰ４ファイルデータｄ３０３を取得し、moovまたはmoofから構成されるＭＰ４のヘッダ部分と、mdatから構成されるＭＰ４のデータ部分とを分離し、ヘッダ部分のデータｄ３０４をメモリ３０４に入力し、データ部分のデータｄ３０５をメモリ３０５に入力する。ここで、メモリ３０５はハードディスクや光ディスクなどの記録手段であってもよい。
【０１９７】
解析部３０６は、メモリ３０４よりヘッダ部データｄ３０６を取得し、解析してサンプルのサイズ、復号時間、格納場所等の情報を取得した後、解析結果をデータｄ３０７としてサンプル解析部３０７に入力する。サンプル解析部３０７は、解析結果ｄ３０７を元に、メモリ３０５からサンプルデータを取得し、サンプルからピクチャデータｄ３０９を取得し、復号表示部３０８に入力する。復号表示部３０８は、入力されたピクチャデータｄ３０９を復号し、表示する。
【０１９８】
図３６は、サンプル解析部３０７がサンプルからピクチャデータを取得する処理の手順を示す。ここで、field＿length、AU＿sizeは、それぞれ表示時間情報のフィールド長、アクセスユニットのサイズを示す。変数i、データ読み出しポインタptrの初期値はともに０とする。まず、ステップＳ５１において、サンプルに対応するstsdのエントリー番号を取得し、ステップＳ５２において、ステップＳ５１で取得したエントリー番号をもつエントリーのframe＿countを取得する。ここで、frame＿countが１より大きい場合には、field＿lengthも取得する。
【０１９９】
次に、ステップＳ５３において、取得したframe＿count値が１より大きいか否かを判定し、１より大きい場合にはステップＳ５４において、表示時間情報を取得して、読み出しポインタをfield＿lengthバイト分進める。次に、ステップＳ５５において、アクセスユニットデータを取得し、読み出しポインタをAU＿size分進める。続いて、ステップＳ５６においてアクセスユニットデータから、ＭＰ４のアクセスユニット構造に基づいてピクチャデータを取得する。ステップＳ５７ではiに１を加算し、ステップＳ５８において、iがframe＿countより小さいか否かを判定し、小さい場合には、ステップＳ５３からステップＳ５８の処理を繰り返す。
【０２００】
本実施形態では、表示時間情報としてＰＯＣを利用して説明した。しかし、表示開始時間を直接指定してもよいし、表示開始時間と復号時間との差分値、または、サンプル内における先頭フレームの復号時間と各フレームの表示開始時間との差分値を指定してもよい。さらに、各アクセスユニットのデータサイズを指定してもよい。または、復号時間および表示開始時間、または、復号時間と表示開始時間との差分値および復号時間を指定してもよいし、各フレームの復号時間のみを指定してもよい。
【０２０１】
なお、ＭＰＥＧ−４  Ｖｉｓｕａｌ規格では、“Modulo Time Base”の値および“VOP Time Increment”の値からフレームの表示時間を取得できる。よって表示時間の指定または表示開始時間と復号時間との差分値などを用いることができる。
【０２０２】
（実施形態６）
第６の実施形態によるデータ処理装置は、１サンプルに複数ビデオフレームまたはフィールドが含まれるＭＰ４ファイルを受け取って解析し、符号化データを復号して表示する。以下の説明は、フレームおよびフィールドのいずれにも適用できるので、これらを含む概念として「ピクチャ」という語を用いて説明する。異なる２つのビデオピクチャでは、表示時間、復号時間の少なくとも一方が異なるとする。
【０２０３】
なお、本データ処理装置が処理するビデオデータは、ＭＰＥＧ−４  ＡＶＣ形式で符号化されているとするが、他にＭＰＥＧ−４  Ｖｉｓｕａｌ、ＭＰＥＧ−２  ＶｉｓｕａｌまたはＨ．２６３であってもよい。また、オーディオまたはテキストデータの複数フレームを１サンプルに格納してもよい。
【０２０４】
１サンプルに複数ビデオピクチャが含まれる際には、moovおよびmoofはサンプル単位の情報しか含まれないため、ピクチャ単位の復号時間または表示開始時間を取得するには、ピクチャデータを解析しなければならない。また、ＭＰＥＧ−４  ＡＶＣをＭＰ４に格納する際には、スタートコードを使用しないため、ピクチャの境界を取得する際にもピクチャデータの解析が必要になるばかりでなく、サンプルデータにビット誤りが発生した際には、サンプルにおいて、誤り発生位置以降に格納されるピクチャデータを取得できなくなる可能性がある。
【０２０５】
そこで、逆多重化処理を行う本実施形態によるデータ処理装置に入力されるＭＰ４ファイルには拡張したサンプル構造を採用し、ピクチャデータを解析することなしに、サンプルを構成するピクチャの復号、表示時間、およびサイズを取得できるようにした。例えば、MPEG-2におけるGOP（Group of Picture）のようにランダムアクセス可能な単位をサンプルとすることができる。つまり、本ＭＰ４ファイルでは、サンプル単位と、サンプルを構成するアクセスユニット単位のそれぞれのヘッダ情報を格納する。このように、ヘッダ情報を階層的にもつことで、サンプルよりも細かい単位についてヘッダ情報を効率的に格納することができる。
【０２０６】
ＭＰ４では、ビデオやオーディオのフレームデータをサンプルとして格納する際の形式を規定している。ＭＰＥＧ−４  ＡＶＣを格納する際には、ＭＰＥＧ−４  ＡＶＣにおけるNAL（Ｎｅｔｗｏｒｋ  Ａｄａｐｔａｔｉｏｎ  Ｌａｙｅｒ）ユニットに、NALユニットのサイズを付加した形式とすることが提案されている。ここで、１ピクチャのデータをＭＰ４において規定された格納形式に変換した後のデータ単位は、アクセスユニットと呼ばれる。
【０２０７】
図３７は、アクセスユニットのデータ構造を示す。まず、アクセスユニットはN個のＮＡＬユニットを含む。さらに、アクセスユニットの最後にはユーザーが自由に使用できる拡張領域を格納することが可能である。拡張領域が存在するか否かは、NALユニットのサイズフィールドが０であるか否かによって判定することができる。NALユニットのサイズフィールドが０であれば、サンプル内の以降の領域にはユーザーの定義した独自データが含まれることを示す。NALユニットのサイズフィールドが０でなければ、そのNALユニットにはアクセスユニットが格納されている。図３７では、NALユニット１、２、Ｎのサイズフィールド“length”（＝Ｌ１、Ｌ２、Ｌｎ）は０ではない。
【０２０８】
次に、図３８（ａ）および（ｂ）を参照しながら、本実施形態による逆多重化処理を行うデータ処理装置に入力されるＭＰ４ファイルのデータ構造を説明する。このＭＰ４ファイルでは、２つ以上のアクセスユニットを格納したサンプルが規定されている。
【０２０９】
図３８（ａ）に示されるように、サンプルにはN（Nは２以上の整数）個のアクセスユニットに加えて、サンプル内の各アクセスユニットの復号時間、表示時間、サイズ等に関する属性を示す情報（第１の実施形態による拡張情報に相当する）を示すヘッダが付加される。以下、本明細書ではこのヘッダをサンプルヘッダと呼ぶ。サンプルヘッダはボックス構造を有しており、本明細書ではその最上位のボックスをマルチＡＵヘッダボックス（Multi AU header Box；'mahd'）と呼ぶ。
【０２１０】
第１の実施形態においては、１以上のフレームデータを１つのサンプルとし、各フレームデータのサイズ等を示す拡張情報を別のサンプルとして規定した。一方、本実施形態においては、１以上のフレームデータ（アクセスユニット）と、その拡張情報（サンプルヘッダ内の情報）とを同一サンプルに格納している。そして、各サンプルに対しては、第１の実施形態において説明したアクセスデータが設定される。
【０２１１】
図３８（ｂ）は、サンプルヘッダのデータ構造を示す。復号時間、表示時間、およびサイズ情報は、それぞれ別々に、mahd内のボックスに格納される。復号時間はMulti Decoding Time To AU Box（'mdta'）、表示時間はMulti Composition Time To AU Box（'mcta'）、サイズはMultiAUSizeBox（'mtsz'）に格納される。ここで、mdta、mcta、およびmtszは、それぞれ復号時間、表示時間、およびサイズが既定のデフォルト値と異なる場合にのみ存在し、それぞれのボックスに示される値がデフォルト値に上書きされる。デフォルト値が設定されていない場合には、サンプルヘッダにおいて必ず必要な情報を設定するとする。
【０２１２】
ここで、デフォルト値、および各ボックスに含まれるフィールドのサイズは、サンプルヘッダの初期値設定部分で設定する。なお、サンプル情報の初期値設定部分は後述する。例えば、mahdにmtszが存在しなければ、サンプル内のアクセスユニットのサイズはデフォルト値と一致することを示し、存在する際には、mtszに示される値を参照して各アクセスユニットのサイズを取得する。なお、上記のボックス以外にも、ランダムアクセス可能なアクセスユニットを示す情報や、アクセスユニットに含まれるデータの復号に必要な情報または復号に必要な情報の識別子を格納するためのボックスを追加してもよい。例えば、倍速再生などの特殊再生時に使用する情報を格納するボックスを追加することができ、以下のような情報を格納できる。
【０２１３】
（１）N（Nは１以上の整数）倍速再生など、特定の再生条件時に復号化するアクセスユニットまたは表示するアクセスユニットのインデックス番号を格納する。ここで、インデックス番号とは、サンプル内でのアクセスユニットの復号時間順などアクセスユニットの識別番号を示す。なお、アクセスユニットに複数ピクチャのデータが格納される際には、そのうちの１つのみを復号化し、表示する。なお、サンプルヘッダを使わずに、moovまたはmoofが参照するビデオトラック全体に関して、アクセスユニットにおける特定再生条件時の情報をmoovまたはmoofに格納することもできる。
【０２１４】
（２）サンプル内の各アクセスユニットの優先度情報を格納する。例えば、優先度が１からNまで指定されているとき、優先度i（iは１以上N以下の整数）のアクセスユニットを復号するには、優先度がi以下のアクセスユニットを復号化しなければならないことを示す。なお、サンプルヘッダを使わずに、moovまたはmoofが参照するビデオトラック全体のアクセスユニットに関する優先度情報を格納するボックスを、moovまたはmoofに配置することもできる。
【０２１５】
（３）ランダムアクセス可能な単位を構成するアクセスユニットの符号化タイプの並びを格納する。例えば、ランダムアクセス可能な単位をMPEG−２におけるGOPとし、GOPがI、B、B、P、B、B、P、B、B・・である１５枚のアクセスユニットから構成される際に、GOPを構成する１５枚のアクセスユニットの符号化タイプを格納する。ここで、アクセスユニットに複数のピクチャデータが含まれる際には、アクセスユニット内のピクチャの符号化タイプは全て同一であるとする。これにより、Iのみの再生、IおよびPのみの再生、または、I、B、P全てのピクチャの再生に際して参照するアクセスユニットを決定できる。
【０２１６】
図３８（ａ）ではサンプルヘッダをサンプルの先頭に配置する例を示しているが、サンプル内の最終アクセスユニットの後に配置してもよいし、サンプル内の最終データとして配置してもよい。図３９は、サンプルヘッダをサンプル内の最終データとして配置する際の例を示す。サンプルはアクセスユニットのみから構成されている。サンプルはＮ個のアクセスユニットから構成される。ここで、サンプル内の最終アクセスユニットにはM個のNALユニットに加えて、拡張領域が含まれ、サンプルヘッダは拡張領域に格納される。このように、サンプルと、サンプルに含まれるアクセスユニットのそれぞれに対してヘッダ情報を作成し、アクセスユニットに関するヘッダ情報をサンプルの一部としてmdatに格納することにより、moov内に全てのアクセスユニットに関するヘッダ情報を格納する場合に比べて、moovのサイズを削減できるという効果もある。
【０２１７】
また、サンプルヘッダはサンプルを構成する全てのアクセスユニットに関する復号時間、表示時間、サイズに関する情報等をまとめて格納するのではなく、１つ以上のアクセスユニットに関する情報を格納してもよい。例えば、サンプルヘッダはアクセスユニット毎に付加されてもよい。なお、GOPなどランダムアクセス可能な単位の構造に関する情報は、サンプルヘッダを使用しない場合にも有効であり、例えばstsdのエントリー内に示すとしてもよい。
【０２１８】
サンプルヘッダをサンプル内の最終アクセスユニットの拡張領域に格納するときは、mahd内に、mahdのサイズを示すためのサイズ指定用ボックスを設けてもよい。サイズ指定用ボックスを次のように使用することにより、mahdの開始位置を容易に取得できる。すなわち、サンプルの終端から、サンプルの先頭に向かってサイズ指定用ボックスを検索する。サイズ指定用ボックスが見つかれば、mahdのサイズを取得できるため、サンプル終端からmahdのサイズ分だけ移動することにより、mahdの開始位置が取得できる。
【０２１９】
次に、マルチＡＵヘッダボックス（mahd）に格納される各ボックスのデータ構造を説明する。図４０（ａ）はmtszのデータ構造を示し、図４０（ｂ）はmdtaのデータ構造を示し、図４０（ｃ）はmctaのデータ構造を示す。なお、ボックスのサイズ、タイプ、バージョン、フラグ情報は全てのボックスに共通に設けられるため、いずれの図にも示していない。図４０（ａ）に示すように、mtszは、stbl内のstszと同様の構造をもち、以下の３つのフィールドから構成される。
【０２２０】
AU＿DefaultSizeフィールド：mtszによりサイズ情報が示される全てのアクセスユニットのサイズが等しければ、そのサイズを示す。その他の場合は０とする。
【０２２１】
AU＿countフィールド：mtszによりサイズ情報が示されるアクセスユニットの数を示す。mtszがサンプル内の全てのアクセスユニットのサイズを示す際には、本フィールド値はframe＿count値と等しくなる。また、mtszがアクセスユニット毎のサイズを示す際には本フィールド値は１となる。
【０２２２】
テーブルフィールド：AU＿DefaultSizeが０である場合にのみ存在する。テーブルには、AU＿countで示される数のエントリーが含まれ、エントリー名はAU＿sizeとする。各エントリーには、アクセスユニットのサイズが復号時間順に格納される。サンプル内のi番目アクセスユニットのサイズは、AU＿DefaultSizeが０でなければAU＿DefaultSizeにより示され、０である際には、i番目エントリーのAU＿sizeにより示される。
【０２２３】
なお、ここではアクセスユニットのサイズを直接格納するとしたが、ストリーム単位またはサンプル単位でアクセスユニットサイズのデフォルト値を設定し、デフォルト値と実際のサイズとの差分値を格納することによりテーブルサイズを削減してもよい。また、アクセスユニットのサイズが予め設定した定数の整数倍となるように符号化し、サイズが設定値の何倍であるかをサイズ情報として格納してもテーブルサイズが削減できる。例えば、設定値を４とする。このとき、サイズがそれぞれ１２バイト、１６バイト、２０バイトである３つのアクセスユニットがあるとすると、それぞれのサイズを４で割った値である３、４、５を各アクセスユニットのサイズ情報として使用する。
【０２２４】
なお、これらのテーブルサイズ削減方法はサンプルサイズを格納するテーブルのサイズを削減する際にも有効である。例えば、後者の削減方法を使用する際には、符号化時にはアクセスユニットのサイズを考慮せずに、サンプル全体としてのサイズが設定値の整数倍となるようにサンプルに対してバイトスタッフィングを行うとしてもよい。図４０（ｂ）に示すように、mdtaはstbl内のsttsと同様の構造をもち、entry＿countフィールドとテーブルフィールドとから構成される。
【０２２５】
entry＿countフィールド：テーブルに含まれるエントリーの数を示す。
【０２２６】
テーブルフィールド：復号時間に関連するアクセスユニットごとのデータを示す。テーブルの各エントリーは、AU＿countとDecodingTimeDeltaフィールドから構成される。DecodingTimeDeltaはi番目（iは正の整数）とi+1番目アクセスユニットの復号時間の差分値を示す。AU＿countは、DecodingTimeDeltaフィールドに示される復号時間の差分値をもつ、連続したアクセスユニットの数を示す。つまり、復号時間の差分値が異なるアクセスユニットが現れるたびに、新規エントリーが追加される。
【０２２７】
ここで、復号時間、および表示時間の取得方法を説明する。ＭＰＥＧ−４  ＡＶＣにおいては、ビデオデータのストリーム内に、SEI（Supplemental Enhancement Information）と呼ばれる復号化のための補助情報を入れることができる。SEIとは、復号化において直接必要はないが、復号化を行う際の手助けとなる情報を示すものであり、復号時間、および表示時間情報もPictre timing SEIと呼ばれるＳＥＩを用いて示すことができる。本ＳＥＩがビデオデータ内に存在しない際には、ＰＯＣ（Picture Order Count）と呼ばれるピクチャ毎の表示順序を示すパラメータから時間情報を取得するとしてもよいし、ビデオデータとは別に提供される時間情報を使用してもよい。なお、復号時間の差分値を直接格納せずに、MPEG−２  VisualのTemporal  Referenceのように、差分値の相対的な値を格納するとしてもよい。
【０２２８】
次に、mctaは、stbl内のcttsと同様の構造をもち、以下のフィールドから構成される。
【０２２９】
entry＿count：テーブルに含まれるエントリーの数を示す。
【０２３０】
テーブルの各エントリーは、AU＿countとCompositionTimeOffsetフィールドから構成される。CompositionTimeOffsetは、アクセスユニットの復号時間と表示時間の差分値を示す。つまり、復号時間にCompositionTimeOffsetの値を加算することにより、表示時間が取得できる。AU＿countは、同一のCompositionTimeOffsetをもつ連続したアクセスユニットの数を示す。mdtaと同様に、異なるCompositionTimeOffsetをもつアクセスユニットが現れるたびに、新規エントリーが追加される。ここで、サンプル内の全てのアクセスユニットにおいて復号時間と表示時間が等しい際には、mctaは存在しない。
【０２３１】
ここで、サンプルヘッダは、１サンプルに２つ以上のアクセスユニットから構成される場合にのみ存在する。１サンプルに格納されるアクセスユニット数の取得は、次のように行う。まず、stscを参照して、サンプルに対応するstsdのエントリーのインデックス番号を取得し、次に、取得したインデックス番号に対応するstsdエントリーのframe＿count値を取得する。つまり、サンプルに対応するframe＿count値が１より大きい場合にのみ、サンプルヘッダが存在する。なお、frame＿countが１である際も、サンプル内のデータとしてヘッダ情報を示すことが有効である際には、サンプルヘッダを使用するとしてもよい。
【０２３２】
次に、サンプルヘッダの初期値設定部分を説明する。初期値設定部分は、stsdのエントリー内のframe＿count値が１より大きい場合にのみ、stsdのエントリー内に格納される。初期値設定部分では、mahdに含まれる各ボックス内のフィールド長、およびサンプルヘッダのデフォルト値が設定され、以下のフィールドから構成される。
【０２３３】
AUSizeLengthMinusOne：mtsz内のAU＿sizeフィールドのサイズを示す。
【０２３４】
DecodingTimeCountLengthMinusOne：mtdaのAU＿countフィールドのサイズを示す。
【０２３５】
DecodingTimeDeltaLengthMinusOne：mtdaのDecodingTimeDeltaフィールドのサイズを示す。
【０２３６】
CompositionTimeCountLengthMinusOne：ctdaのAU＿countフィールドのサイズを示す。
【０２３７】
CompositionTimeOffsetLengthMinusOne：ctdaのCompositionTimeOffsetフィールドのサイズを示す。
【０２３８】
DefaultHeaderBox：サンプルヘッダのデフォルト値を示すためのmahdを格納する。
【０２３９】
なお、上記フィールドのサイズは固定として、上記フィールドを省略してもよい。また、mtsz、mdta、およびmctaは、必ずしも存在する必要はなく、存在しない場合には、デフォルト値が設定されていないとする。なお、frame＿countが１である際にもサンプルヘッダを使用する際には、frame＿countが１であっても初期値設定部分を格納するとしてもよい。
【０２４０】
さらに、mtsz、mtda、ctda以外のボックスをmahdに格納する際には、新規に追加したボックスのフィールドサイズを示すフィールドを追加してもよい。なお、全てのサンプルにおいて、サンプルを構成するアクセスユニットの情報が初期値（デフォルト値）と同一である際には、mahd内に格納されるボックスが存在しないため、各サンプルにおいてmahdを格納しないとしてもよい。ここで、mahdがサンプルヘッダに含まれるか否かはサンプルヘッダの初期値設定部分またはstsdのエントリ内にフラグ情報を設定することにより判別する。
【０２４１】
なお、フラグ情報はmoov内の他の部分において設定してもよい。フラグがセットされている際にはサンプル内にサンプルヘッダ、つまりmahdが含まれることを示し、フラグがセットされていない際には、mahdが含まれないことを示す。例えば、ＭＰＥＧ−４  ＡＶＣにおいてもMPEG-2のGOPのようなランダムアクセス可能な単位を規定し、規定した単位毎に１サンプルとする際にはサンプルにmahdを含めないとしてもよい。なお、ボックスの有無をフラグ情報として使用するとしてもよく、初期値設定部分をボックスにより実現するとし、初期値設定部分のボックスが存在するかしないかによりmahdの使用有無を識別できる。
【０２４２】
図４１（ａ）は、ボックスを使用したときのサンプルヘッダの初期値設定部分のシンタックス例を示し、図４１（ｂ）はボックスを使用しないときのサンプルヘッダの初期値設定部分のシンタックス例を示す。また、図４２（ａ）〜（ｄ）は、それぞれmahd、mtsz、mdta、およびmctaの各シンタックスの例を示す。
【０２４３】
次に、図４３（ａ）〜（ｃ）は、サンプルヘッダにデータを格納するための第１の例を示す。第１の例では、サンプルが、復号時間順にＩＢＢＰＢＢＰＢＢ・・と連続する１５個のアクセスユニットから構成される。ここで、I、P、BはそれぞれI―ピクチャ、P−ピクチャ、B−ピクチャのアクセスユニットを示し、各アクセスユニットの復号時間、表示時間、およびサイズは図４３（ａ）に示すとおりである。
【０２４４】
まず、サンプルヘッダの初期値設定部分におけるDefaultHeaderBoxには、図４３（ｂ）に示すようにmdtaとmctaが存在する。アクセスユニット毎のサイズがランダムであり、サイズ情報のデフォルト値は設定しないとしたため、mtszは存在しない。
【０２４５】
次に、サンプルヘッダを設定する。図４３（ｃ）は、サンプルヘッダに格納されるデータを示す。まず、復号時間情報を説明すると、サンプル内の連続する２つのアクセスユニットにおける復号時間の差分値は全て１００ｍｓであり、デフォルト値をそのまま使用できるため、mdtaは必要ない。ここで、最終アクセスユニットであるＢ−１５に関しても、次アクセスユニットとの復号時間の差分値は１００ｍｓであるとする。次に、表示時間は、ＩおよびＰ−ピクチャのアクセスユニットは復号時間と表示時間の差分値が３００ｍｓであり、Ｂ−ピクチャは復号時間と表示時間とが一致する。よって、表示時間情報としても、デフォルト値がそのまま使用できるため、cdtaも必要ない。
【０２４６】
ピクチャのレートが固定である際には、サンプルに含まれるピクチャの復号時間情報としてデフォルト値を使用することができる。例えば、トラックに含まれる全ピクチャのレートが一定であれば、復号時間情報としてはデフォルト値のみを設定すればよく、サンプルヘッダ内でmdtaにより復号時間情報を示す必要がなくなる。
【０２４７】
また、MPEG−２におけるGOPのようなランダムアクセス可能な単位をサンプルとして扱う際には、固定ピクチャレート、かつGOP構造が固定であれば、サンプル内のピクチャに関する表示時間情報としてもデフォルト値のみを設定すればよいことになる。例えば、ビデオの符号化データが３つの異なるGOP構造のみから構成される際には、stsdのエントリーを３つ用意してそれぞれのGOP構造に対応する表示時間情報のデフォルト値を設定し、サンプル毎に参照するstsdのエントリーを変更するとすれば、サンプルヘッダ内でmctaにより表示時間情報を示す必要がなくなる。
【０２４８】
ここで、GOP構造とは、GOPを構成するピクチャの枚数、および各ピクチャの符号化タイプ（I, B, Pのいずれのピクチャであるか）を示すものである。最後に、サイズ情報を説明する。サイズ情報にはデフォルト値が設定されていないため、mtszを使用してサンプルに含まれる１５個のアクセスユニットのサイズを格納する。結局、サンプルヘッダは、サイズ情報を格納するためのmtszのみを含み、復号時間と表示時間はデフォルト値を使用するため、mdtaとmctaは含まない。
【０２４９】
図４４（ａ）および（ｂ）は、サンプルヘッダにデータを格納するための第２の例を示す。以下に説明するように、サンプルヘッダには、mdta、mcta、およびmtszの３つのボックスが格納される。サンプルヘッダのデフォルト値は図４３（ｂ）に示す第１の例と同一であるとする。
【０２５０】
図４４（ａ）に示すように、サンプル内のアクセスユニットの構成は第１の例（図４３（ａ））と同じである。図４４（ａ）に示すように、１２番目のアクセスユニットであるＢ−１２においてフレームスキップが発生している。よって、復号時間、表示時間ともにデフォルト値は使用できないため、サンプルヘッダにおいてmdta、mctaを設定する必要がある。
【０２５１】
まず、復号時間情報の設定を行う。図４４（ｂ）の（１）に示すように、Ｉ−１からＢ−１１までの１１個のアクセスユニットに関しては次のアクセスユニットとの復号時間の差分値は１００ｍｓであり、Ｂ−１２のみ差分値が２００ｍｓである。そして、Ｐ−１３からＢ−１５までは再び１００ｍｓになることから、mdtaには３つのエントリーが必要になる。
【０２５２】
次に、表示時間を説明する。表示時間は、Ｐ−１０において復号時間との差分値が４００ｍｓとなる他はデフォルト値と同一である。従って、サンプルヘッダにおいて設定するmctaの各エントリーは、図４４（ｂ）の（２）に示すように設定される。
【０２５３】
最後に、mtszを説明する。図４４（ｂ）の（３）に示すように、mtszは第１の例と同じである。
【０２５４】
以上の説明では、サンプルヘッダがサンプル内に１つだけ存在し、１つのサンプルヘッダ内にサンプルを構成する全てのアクセスユニットの情報を格納するとした。しかし、サンプルヘッダはサンプル内に複数存在してもよい。その理由の１つは、サンプルデータの記録方法によっては、サンプル内のアクセスユニットの情報をまとめて記録するよりもアクセスユニット毎の情報を順次記録するほうが効率的であることがあるためである。その一例として、サンプルデータをリアルタイムで光ディスクに記録する場合を説明する。
【０２５５】
サンプル内の全てのアクセスユニットの情報を１つのサンプルヘッダにまとめて格納する際には、サンプル内の全てのアクセスユニットに関する情報を取得しなければサンプルヘッダが完成しない。サンプルヘッダをサンプルの先頭に配置すると仮定すると、サンプルヘッダが完成してからサンプルデータを光ディスクに書き込むことになり、サンプル内の最後のアクセスユニットの情報を取得するまで書き込みを開始できない。
【０２５６】
また、サンプル内のアクセスユニットデータを一時的に記憶しておくためのメモリが必要になる。例えば、ＧＯＰのようなランダムアクセス可能な単位を１サンプルとする際には、ランダムアクセス可能な単位に含まれる全アクセスユニットを保持できるだけのメモリが必要になる。一方、サンプルヘッダにアクセスユニット毎の情報を格納するとすれば、１アクセスユニット分の情報が取得できればサンプルヘッダが完成するため、順次サンプルデータの書き込みを行うことができ、リアルタイム性に優れると共に，アクセスユニットを保持するために必要なメモリサイズも削減できる。
【０２５７】
以下に、サンプル内の１つまたは複数のアクセスユニットに対してサンプルヘッダが付加される際のサンプル構造を説明する。ここで、サンプルヘッダがサンプル内に1つ存在するか複数存在するか否かは、サンプルヘッダ内の各ボックスによりヘッダ情報が示されるアクセスユニットの個数により判別する。サンプルヘッダ内にボックスが存在しない際には、サンプルヘッダの初期値設定部分に定義されたデフォルトのボックスを参照することにより判定する。サンプル内で先頭のサンプルヘッダによりヘッダ情報が示されるアクセスユニットの個数がframe＿count値と一致する際には、先頭のサンプルヘッダにより、サンプル内の全アクセスユニットのヘッダ情報が示されるため、サンプルヘッダは１つのみである。
【０２５８】
一方、先頭のサンプルヘッダによりヘッダ情報が示されるアクセスユニットの個数がframe＿countよりも小さければ、残りのアクセスユニットのヘッダ情報を示すため、１つ以上のサンプルヘッダがサンプル内に別途格納される。
【０２５９】
図４５（ａ）および（ｂ）を参照しながら、その例を説明する。本例では、１サンプルがＮ個（Ｎは１以上の整数）のアクセスユニットから構成される。図４５（ａ）は、１サンプル内のアクセスユニットの各々にサンプルヘッダを付加した例を示す。１番目のアクセスユニットのヘッダ情報はサンプルヘッダ１に格納され、サンプルヘッダ１にはmdtaとmtszが格納される。ここで、mdtaでは、entry＿countに１が設定されているため、このmdtaはアクセスユニット１に関する情報であることを示す。また、エントリのAU＿countに１が設定されることにより、このmdtaは１つのユニットに関する情報であることを示す。その結果、このmdtaはアクセスユニット１に関する情報のみを示している。
【０２６０】
同様に、mtszにおいても、AU＿countが１であるためmtszがアクセスユニット１に関する情報のみを示す。同様に、後続のサンプルヘッダもまた、i（iはN以下の整数）番目のサンプルヘッダがi番目のアクセスユニットのヘッダ情報を示すことが分かる。
【０２６１】
図４５（ｂ）は、Ｎ未満の複数のアクセスユニットに１つのサンプルヘッダを付加した例を示す。ここでは、サンプルヘッダ１は、１番目から３番目までのアクセスユニットの情報を示し、サンプルヘッダ２は、４番目と５番目のアクセスユニット、サンプルヘッダM（MはN未満の整数）はN番目のアクセスユニットの情報を示す。サンプルヘッダ１では、mdtaのentry＿countに１が設定され、エントリのAU＿countに３が設定されることにより、mdtaは１番目から３番目の３つのアクセスユニットの情報を示す。
【０２６２】
同様に、mtszのAU＿countに３が設定されて、mtszが１番目から３番目のアクセスユニットに関する情報であることを示している。次に、サンプルヘッダ２におけるmtszとmdtaから、サンプルヘッダ２が４番目と５番目のアクセスユニットの情報を示すことが分かる。mtsz、mdtaまたはmctaがサンプルヘッダ内に存在しない際には、サンプルヘッダの初期値設定部分において設定されたデフォルトのボックスを使用する。なお、サンプルヘッダ内に、次のサンプルヘッダの格納位置を示す情報を付加することにより、アクセスユニットのサイズを加算することなしに、次のサンプルヘッダの開始位置を取得できるとしてもよい。また、サンプル内に存在するサンプルヘッダが1つであるか複数であるかを判別するためのフラグ情報を、サンプルヘッダの初期値設定部分に設定するとしてもよいし、サンプルヘッダはアクセスユニット毎に付加するとしてもよい。
【０２６３】
さらに、サンプルヘッダはボックス構造を有するとしたが、ボックス構造を用いずに、必要なフィールドを順に格納してもよい。このとき、サンプルヘッダは、サイズ、復号時間、表示時間の各情報が設定されているか否かを示すフィールド、および各情報を設定するためのフィールドから構成される。図４６（ａ）および（ｂ）は、ボックス構造を用いないときのサンプル構造およびシンタックス例を示す。図４６（ａ）ではマルチＡＵヘッダ（Multi−AU header）がサンプルヘッダに相当する。このデータ構造は、１以上のフレームデータ（アクセスユニット）と、その拡張情報（サンプルヘッダ内の情報）とを１つのサンプルとして規定している点において、図３８（ａ）に示すデータ構造と同じである。
【０２６４】
図４６（ｂ）はマルチＡＵヘッダのシンタックス例を示す。図４６（ｂ）における、AUSizePresentフィールド、DecodingTimeDeltaPresentフィールドおよびCompositionTimeOffsetフィールドは、それぞれ“AUSize”、“DecodingTimeDelta”、“CompositionTimeOffset”の各フィールドが存在するか否かを示すフラグ情報であり、frame＿countフィールドは、サンプルが参照するstsd内のエントリーに示されるframe＿count値と等しい。
【０２６５】
また、“AUSize”、“DecodingTimeDelta”、“CompositionTimeOffset”の定義は図４０（ａ）〜（ｃ）の場合と同じである。この例では、“DecodingTimeDelta”および“CompositionTimeOffset”が同一のアクセスユニットが連続するときも、各アクセスユニットに関して“DecodingTimeDelta”および“CompositionTimeOffset”を格納するとしている。しかし、ボックス構造使用時と同様に、同一の値が連続する際には、連続するアクセスユニットの個数を示すことにより、フィールド値を省略するとしてもよい。また、サンプルヘッダの初期値設定部分ではAUSize、DecodingTimeDelta、およびCompositionTimeOffsetの各フィールドのサイズを示す情報、およびサンプルヘッダのデフォルト値を設定する。初期値設定部分のシンタックス例を図４１（ｂ）に示す。
【０２６６】
このように、サンプルヘッダを使用することにより、アクセスユニットのデータを解析することなしに、アクセスユニットの復号時間、表示時間、およびサイズを取得することができる。また、ＭＰＥＧ−４  ＡＶＣのように、ＭＰ４格納時にはアクセスユニットにスタートコードを含まない符号化方式においても、サンプルヘッダを参照することにより容易にアクセスユニットの境界を取得することができる。
【０２６７】
以下、本実施形態によるデータ処理装置を説明する。本実施形態によるデータ処理装置の構成は、図３５に示すデータ処理装置の構成と同じであり、その基本的な動作もまた既に説明したとおりである。よって以下では本実施形態による処理に関連する構成を説明する。
【０２６８】
図３５に示す解析部３０６は、メモリ３０４よりヘッダ部データｄ３０６を取得し、解析することによりサンプルのサイズ、復号時間、格納場所等の情報を取得した後、解析結果をデータｄ３０７としてサンプル解析部３０７に入力する。サンプル解析部３０７は、解析結果ｄ３０７を元に、メモリ３０５からサンプルデータｄ３０８を取得し、サンプルからピクチャデータｄ３０９を取得し、復号表示部３０８に入力する。復号表示部３０８は、入力されたピクチャデータｄ３０９を復号し、表示する。
【０２６９】
図４７は、サンプル解析部３０７がサンプルからピクチャデータを取得する処理の手順を示す。変数iの初期値は０とする。まず、ステップＳ６１において、サンプルに対応するstsdのエントリーのframe＿count値を取得する。frame＿countが１より大きければ、stsdのエントリー内に含まれるサンプルヘッダの初期値設定部分から、サイズ、復号時間または表示時間情報のデフォルト値を取得するとともに、サンプルヘッダ内のボックスにおけるフィールドのサイズを取得する。ここで、stsdのエントリー番号と、エントリー番号に対応するframe＿countおよびサンプルヘッダの初期値情報を予め記憶しておけば、ステップＳ６１においてサンプル毎に初期値情報を取得しなくてもよい。
【０２７０】
次に、ステップＳ６２においてframe＿countが１より大きいか否かを判定し、１より大きい場合には、サンプルヘッダが存在するため、ステップＳ６３においてサンプルヘッダを解析する。サンプルヘッダ解析時には、mahd内にmtsz、mtdaまたはmctaの各ボックスが存在するか否かを検索し、ボックスが存在する際には、その内容を取得してデフォルト値に上書きして、アクセスユニットのサイズ、復号時間または表示時間情報を取得する。frame＿countが１である際には、ステップＳ６２に続いて、ステップＳ６４の処理を行う。ステップＳ６４では、ステップＳ６３から得られたアクセスユニットのサイズを元に、サンプルからアクセスユニットのデータを取得し、ステップＳ６５においてアクセスユニットからピクチャデータを分離する。
【０２７１】
なお、ステップＳ６３で取得した復号時間、および表示時間は、図３５の復号表示部３０８においてピクチャデータを復号、表示する際に使用される。また、トラックの途中から再生を開始する場合に、サンプル内のアクセスユニットの表示時間を取得して、再生を開始するアクセスユニットを決定する際に使用してもよい。ステップＳ６６ではiに１を加算し、ステップＳ６７において、iがframe＿countより小さいか否かを判定し、小さい場合には、ステップＳ６３からステップＳ６７の処理を繰り返す。
【０２７２】
次に、ステップＳ６３においてアクセスユニットのサイズ情報を取得する手順の例を詳しく説明する。図４８は、サンプルを構成するアクセスユニットのサイズを取得する手順を示す。ここで、変数 i、およびデータ読み出しポインタdata＿ptrの初期値はともに０とする。また、mtszにおけるAU＿sizeフィールド長のバイト数は、FieldSizeであるとする。
【０２７３】
まず、ステップＳ７１において、mahd内でボックスのタイプが'mtsz'であるボックスを検索する。ステップＳ７２において検索結果を判定し、mtszが存在する際には、ステップＳ７３において、データ読み出しポインタdata＿ptrを、サンプルヘッダ内のmtszにおけるAU＿DefaultSizeフィールドの開始位置にセットする。ステップＳ７２において、mahd内にmtszが存在しないと判定された際には、ステップＳ７４において、サンプルヘッダの初期値設定部分に含まれるデフォルトのmtszを取得して、データ読み出しポインタdata＿ptrを、デフォルトmtszにおけるAU＿DefaultSizeフィールドの開始位置にセットする。ステップＳ７５において、AU＿DefaultSizeの値を取得し、データ読み出しポインタdata＿ptrに４を加算する。
【０２７４】
続いて、ステップＳ７６においてAU＿DefaultSizeが０であるか否かを判定し、０でない際には、ステップＳ７８において、サンプルを構成する全てのアクセスユニットのサイズとして、AU＿DefaultSizeに示されるサイズを設定する。０である際には、テーブルのエントリーからAU＿sizeを取得することにより、各アクセスユニットのサイズを取得する。まず、ステップＳ７７において、AU＿countの値を取得し、データ読み出しポインタdata＿ptrに４を加算する。ここで、AU＿countの値は、サンプルに含まれるアクセスユニットの数を示す。
【０２７５】
次に、ステップＳ７９において、サンプル内のi＋１番目アクセスユニットのサイズを取得し、データ読み出しポインタに４を加算した後に、ステップＳ８１０においてiに１を加算する。ステップＳ８１１において、iとAU＿countを比較し、iがAU＿countより小さい場合には、ステップＳ７９、Ｓ８０およびステップＳ８１までの処理を繰り返すことにより、サンプルを構成する全てのアクセスユニットのサイズを取得することができる。
【０２７６】
（実施形態７）
第７の実施形態によるデータ処理装置は、１サンプルに複数ビデオピクチャが含まれるＭＰ４ファイルを受け取って解析し、符号化データを復号して表示する。ここで、異なる２つのビデオピクチャにおいては、表示時間、復号時間の少なくとも一方が異なるとする。本実施形態においては、倍速再生などの特殊再生を効率よく行うことを目的としたＭＰ４データ構造およびその逆多重化処理を提供する。
【０２７７】
なお、本実施形態によるデータ処理装置の構成は、実施形態６におけるデータ処理装置の構成と同じである。ビデオデータは、ＭＰＥＧ−４  ＡＶＣ形式で符号化されているとするが、他にＭＰＥＧ−４  Ｖｉｓｕａｌ、ＭＰＥＧ−２  ＶｉｓｕａｌまたはＨ．２６３であってもよい。また、オーディオまたはテキストデータの複数フレームを１サンプルに格納してもよい。なお、１サンプルに複数のピクチャが含まれる際には、実施形態６において説明したサンプルヘッダを使用するとする。
【０２７８】
ＭＰＥＧ−４  ＡＶＣでは、ビデオストリームを構成するピクチャ間の参照関係を柔軟に設定できる反面、倍速再生など特定のピクチャを選択的に再生する際には復号化するピクチャを決定することが困難である。ここで、図４９を参照しながらピクチャ間の参照関係を説明する。図４９は、一連のピクチャと各ピクチャの符号化タイプを示す。図４９に示すように、ピクチャの符号化タイプは復号順にＩ−３、Ｂ−１、Ｂ−２、Ｐ−６、Ｂ−４、Ｂ−５、Ｐ−９、Ｂ−７、Ｂ−８・・であるものとし、各ピクチャの符号化タイプに付加された数字は表示順を示す。例えば、このような一連のピクチャを３倍速で再生するためには、Ｉ−１、Ｐ−６、Ｐ−９というようにＩおよびＰピクチャを再生すればよい。このとき、Ｐ−６がＩ−１のみを参照し、Ｐ−９がＰ−６のみを参照して復号化することができれば問題ない。しかし、ＭＰＥＧ−４  ＡＶＣでは、Ｂ−２を参照してＰ−６を復号する場合がある。そのため、予めピクチャ間の参照関係が既知でなければ、倍速再生時に復号化が必要なピクチャを決定することができない。各ピクチャがどのピクチャを参照しているかは、ピクチャを構成する全てのスライスついて、スライスヘッダを解析することにより取得できる。しかし、特殊再生時に全スライスを解析するのでは効率が悪い。
【０２７９】
本実施形態におけるＭＰ４ファイルでは、ピクチャ間の参照関係を示すために、（１）ＭＰＥＧ−４  ＡＶＣ のSEI（Supplemental Enhancement Information）を使用する。または、（２）サンプルヘッダ内に、サンプルを構成するピクチャ間の参照関係を記述する。
【０２８０】
ここで、ピクチャ間の参照関係を示すためにサブシーケンス、およびレイヤと呼ばれる構造を使用する。従来のＭＰ４ファイルではstbl内のサンプルツーグループボックス（Sample To Group Box；sbgp）を用いてこれらの構造を記述するが、サブシーケンスおよびレイヤ構造をsbgpにより記述すると、sbgpのサイズが非常に大きくなり、結果としてmoovのサイズも増大するという問題がある。以下に説明する本実施形態によれば、ＭＰ４ファイルを使用することによりこの課題も解決される。
【０２８１】
まず、SEIを使用してピクチャ間の参照関係を示す方法を説明する。SEIとは、ピクチャを復号化する際の利便性を向上させる目的で導入された付加情報であり、ピクチャデータに付加することにより使用する。ただし、SEIは復号化動作に直接関係するものではなく、SEIがなくてもピクチャデータを復号化することは可能である。ＭＰＥＧ−４  ＡＶＣでは、時間的なスケーラビリティを実現するために、サブシーケンス、およびレイヤと呼ばれる概念が導入され、そのためのSEIが用意されている。
【０２８２】
最初に、図５０（ａ）〜（ｃ）を例に、サブシーケンスおよびレイヤを説明する。図５０（ａ）〜（ｃ）は、ビデオストリームとビデオストリームを構成するレイヤ０および１を示す。図５０（ａ）は、ビデオストリームを構成する１５枚のピクチャを示す。各ピクチャにはデコード順に１から１５までの番号が付与されている。ビデオストリームはレイヤ０とレイヤ１の２つのレイヤに分けられている。図５０（ｂ）はビデオストリームのレイヤ０を示し、図５０（ｃ）はビデオストリームのレイヤ１を示す。レイヤ０は独立に復号化することができ、レイヤ１はレイヤ０またはレイヤ１のピクチャを参照して復号化される。さらに、各レイヤはサブシーケンスと呼ばれる単位に分割され、レイヤ０とレイヤ１は図示するようにそれぞれ２つのサブシーケンスに分割される。このように、N番目（Nは１以上の整数）のレイヤに属するサブシーケンス内のピクチャは、N番目以下のレイヤのサブシーケンスに属するピクチャのみを参照できる。
【０２８３】
サブシーケンス、レイヤ関連SEIには、ピクチャが属するレイヤ番号、レイヤ内においてどのサブシーケンスに属するかを示す番号、およびピクチャが属するサブシーケンスの復号化時に参照されるサブシーケンスを示される。ストリームにおいては、ピクチャ毎にサブシーケンス、レイヤ関連のSEIを付加することにより、ピクチャが属するサブシーケンスのデータを復号化する際に、どのサブシーケンスを参照すればよいかが示される。例えば、レイヤ０とレイヤ１を共に復号化した際のフレームレートが３０Ｈｚ、レイヤ０のみ復号化した際のフレームレートが１５Ｈｚであるとすると、ビットレートを低く抑えたいような場合にはレイヤ０のみ復号化して１５Ｈｚ再生し、ビットレートの制約がない場合にはレイヤ０とレイヤ１を共に復号化して３０Ｈｚで再生するようなことができる。図５１（ａ）〜（ｃ）は、サブシーケンス、レイヤ関連SEIのシンタックスを示す。サブシーケンス、レイヤ関連のSEIとして、サブシーケンス情報（Sub-sequence information；SSI) SEI、サブシーケンスレイヤ特性（Sub-sequence layer characteristics；SSL)SEI、サブシーケンス特性（Sub-sequence characteristics；SSC) SEIの３つが定義されている。以下に、各SEIにおける主要なフィールドを説明する。
【０２８４】
（１）SSI SEI
ピクチャが属するレイヤ、およびサブシーケンスを示す。
【０２８５】
sub＿seq＿layer＿num：サブシーケンスが属するレイヤの番号。
【０２８６】
sub＿seq＿id：レイヤ内でのサブシーケンスのインデックス番号。
【０２８７】
（２）SSL SEI
複数レイヤの各々の情報を示す。
【０２８８】
num＿sub＿seq＿layers＿minus1：ストリームを構成するレイヤの個数。
【０２８９】
average＿bit＿rate：レイヤの平均ビットレート。
【０２９０】
average＿frame＿rate：レイヤの平均フレームレート。
【０２９１】
（３）SSC SEI
サブシーケンス毎の情報を示す。
【０２９２】
sub＿seq＿layer＿num：サブシーケンスが属するレイヤの番号。
【０２９３】
sub＿seq＿id：レイヤ内でのサブシーケンスのインデックス番号。
【０２９４】
average＿bit＿rate：サブシーケンスの平均ビットレート。
【０２９５】
average＿frame＿rate：サブシーケンスの平均フレームレート。
【０２９６】
num＿referenced＿subseqs：参照するサブシーケンスの個数。
【０２９７】
ref＿sub＿seq＿layer＿num：sub＿seq＿layer＿num およびsub＿seq＿idにより示されるサブシーケンスを構成するピクチャの参照先ピクチャが含まれるレイヤ番号。
【０２９８】
ref＿sub＿seq＿id：sub＿seq＿layer＿num およびsub＿seq＿idにより示されるサブシーケンスを構成するピクチャの参照先ピクチャが含まれるサブシーケンスのインデックス番号。なお、本フィールドにより示されるサブシーケンスが属するレイヤは、ref＿sub＿seq＿layer＿numにより示される。
【０２９９】
ref＿sub＿seq＿direction：参照先のサブシーケンスが、デコード順で参照元サブシーケンスより前にあるか後にあるかを示すフラグ情報。
【０３００】
ここで、従来の一般的なＭＰ４ファイルにおいてサブシーケンスおよびレイヤ構造を記述する方法を説明する。まず、従来のＭＰ４ファイルにおいては、サブシーケンスおよびレイヤ関連のSEIをビデオトラックのデータとして格納することは禁止されており、stbl内のボックスを使用してこれらSEIの情報を格納していた。
【０３０１】
次に、SSL SEIとSSC SEIにより示される情報は、stbl内のサンプルグループ記述ボックス（Sample  Group Description Box；sgpd)内に格納される。sgpdの構造はstsdの構造と類似しており、ビデオデータの復号時に必要となるデコーダの初期化情報がstsd内のエントリーに格納されるように、各SEIの情報がsgpd内のエントリーに格納される。SSL SEIのビットレートおよびフレームレート情報は、AVCLayerEntryと呼ばれるエントリーに格納される。AVCLayerEntryは1レイヤの情報を含むため、全てのレイヤの情報を設定するにはレイヤの個数分のAVCLayerEntryが必要となり、各エントリーは出現順序により決定されるエントリーのインデックス番号により記述される。
【０３０２】
これらの内容は、stsd内のエントリーと同一である。同様に、SSC SEIの内容は、AVCSubSequenceEntryに格納されるため、結局AVCLayerEntry用とAVCSubSequenceEntry用の２つのsgpdが必要となる。さらに、AVCLayerEntry、およびAVCSubSequenceEntryとサンプルとを関連付けるために、Sample To Group Box('sbgp')を使用する。sbgpは、サンプルが参照するsgpd内のエントリーを示すフィールドを持つが、1つのsbgpあたり1種類のエントリーしか参照できない。このため、AVCLayerEntryおよびAVCSubSequenceEntryとサンプルを関連付けるには、２つのsbgp Boxを使用することになる。
【０３０３】
図５２および図５３を参照しながら、サブシーケンス関連ボックスを使用した際のオーバーヘッドの見積もりを説明する。図５２（ａ）〜（ｄ）は、ビデオストリームとビデオストリームを構成するレイヤ０、１、２を示す。図５２（ａ）はビデオストリームを構成する１５枚のピクチャを示しており、復号順に符号化タイプはＩ、Ｂ、Ｂ、Ｐ、Ｂ、Ｂ、Ｐ、・・・、Ｐ、Ｂ、Ｂである。全てのピクチャを復号化した際のフレームレートは３０Ｈｚである。なお、符号化タイプの後に付加されている数字は、表示時間の順序を示している。１５枚のピクチャは、符号化タイプにより３つのレイヤに分割されている。図５２（ｂ）はビデオストリームのレイヤ０を示し、図５２（ｃ）はビデオストリームのレイヤ１を示し、図５２（ｄ）はビデオストリームのレイヤ２を示す。レイヤ０はＩピクチャ、レイヤ１はＰピクチャ、レイヤ２はＢピクチャから構成される。
【０３０４】
レイヤ０からレイヤ２に属するピクチャは、それぞれサブシーケンス０−１、サブシーケンス１−１、サブシーケンス２−１に格納される。ここで、サブシーケンス０−１は単独で復号化され、サブシーケンス１−１はサブシーケンス０−１を参照して復号化され、サブシーケンス２−１はサブシーケンス０−１およびサブシーケンス１−１を参照して復号化される。なお、ビデオシーケンスは、これら１５枚のピクチャと同一の構造が繰り返されたものであるとする。次に、図５２（ａ）に示すビデオシーケンスをＭＰ４ファイルに格納したときのオーバーヘッドを計算する。レイヤ０からレイヤ２までのレイヤに関する情報は、それぞれAVCLayerEntry用sgpd内の１から３番目のAVCLayerEntryに格納される。
【０３０５】
また、サブシーケンス０−１、サブシーケンス１−１、およびサブシーケンス２−１の３つのサブシーケンスに関する情報は、それぞれAVCSubSequenceEntry用sgpdの１から３番目のAVCSubSequenceEntryに格納される。図５３（ａ）はレイヤ用sbgpのテーブルデータを示し、図５３（ｂ）はサブシーケンス用sbgpのテーブルデータを示す。ここで、レイヤ用sbgpのindexはAVCLayerEntry用sgpdにおけるエントリー番号を示し、サブシーケンス用sbgpのindexはAVCSubSequenceEntry用sgpdにおけるインデックス番号を示す。sample＿countは、同一のindex値をもつ連続したサンプルの個数を示す。レイヤ、サブシーケンス用のテーブルともに、エントリーの更新が頻繁に発生するため、サイズが大きくなる。
【０３０６】
また、同一の構造をもつエントリーが繰り返されるため、テーブルが冗長となっている。sample＿countとindexフィールドのサイズは共に４バイトであるため、図５２に示した１５枚のピクチャ（0.5秒分）に関する情報を示すためのデータサイズは、レイヤ用spgp、サブシーケンス用sbgp共に８＊２＊１０ = １６０バイトとなる。例えば、１時間分のデータを記録する場合には、２つのsbgp Boxを合わせたサイズは、２＊１６０＊（１/0.5）＊３６００ = 2304000バイトにも達する。sbgpはmoovに含まれるため、結果としてmoovのサイズが非常に大きくなってしまい、ＭＰ４ファイル再生時に必要なメモリのサイズが増大するという問題がある。また、sbgpを用いた従来の方法ではサブシーケンスおよびレイヤに関する情報をサンプル単位でしか記述できないため、サンプルに複数ピクチャのデータが格納される際には、ピクチャ毎のサブシーケンス関連情報を記述できないという問題もある。
【０３０７】
本実施形態によるＭＰ４ファイルは、上述のサブシーケンス、レイヤ構造を、特殊再生時に必要となるピクチャ間の参照関係を示すために使用される。さらに、ビデオトラックのデータとしてサブシーケンス、レイヤ関連SEIを使用できるものとし，sbgpを用いてサブシーケンス、レイヤ関連情報を示すことはしないとする。以下に、各SEIの使用方法を説明する。本ＭＰ４ファイルでは、ビデオストリームをランダムアクセス可能な複数の単位に分割し、ランダムアクセス可能な単位（以降、AVC-GOPと呼ぶ。）に基づいてピクチャ間の参照関係を示すとする。なお、以下では、１アクセスユニットは１ピクチャのデータから構成されるとして説明するが、１アクセスユニットが複数ピクチャのデータから構成されていてもよく、そのときも後述する構造と同じ構造を採用できる。
【０３０８】
図５４（ａ）〜（ｃ）はAVC-GOPの構造を示す。AVC-GOPにおいては、先頭ピクチャは独立に復号化できるとする。AVC-GOPは、L（Lは１以上の整数）個のレイヤ、M（Mは１以上の整数）枚のピクチャ、各ピクチャはN（Nは１以上の整数）個のスライスから構成され、AVC-GOP内では１レイヤあたり１つのサブシーケンスを持つとする。先頭に配置されるSSL SEIは、ビデオストリームを構成するL個のレイヤ等の情報を示し、続いて配置されるL個のSSC SEIはレイヤ毎の情報を示し、その後にM枚分のピクチャデータが続く。各ピクチャデータの先頭にはSSI SEIが配置され、その後にN個のスライスデータが格納される。なお、ここではAVC-GOP内の各レイヤは１つのサブシーケンスから構成されるとしているが、各レイヤが複数のサブシーケンスから構成されていてもよく、そのときは、レイヤ内の全てまたは必要なサブシーケンスに関してのSSC SEIを配置すればよい。
【０３０９】
なお、SSL、SSC、SSIの各SEIの配置順、および配置位置は図４９（ａ）の構造に限るものではない。また、SSC SEIは、予めサブシーケンス間の参照関係を規定しておくことにより省略するとしてもよい。例えば、AVC-GOP内の各レイヤが１つのサブシーケンスから構成される際に、レイヤNに含まれるピクチャは、同一AVC-GOP内のN番目以下のレイヤに属するピクチャを参照すると規定しておけば、SSC SEIを省略することができる。また、本AVC−GOP構造はサブシーケンス、レイヤ関連SEI以外のSEIの使用を制限するものではなく、例えば、Random access point SEIをAVC-GOPの先頭に配置するとしてもよい。さらに、SSL SEIは全てのAVC-GOPに付与せずに、ビデオストリームにおける先頭GOPにのみ付加するものとしてもよいし、周期的に付加するものとしてもよい。
【０３１０】
また、独立に復号化できるピクチャをAVC-GOPの先頭以外のピクチャとして配置するとしてもよい。また、AVC-GOP構造の使用はＭＰ４に制限されるものではなく、MPEG−２  TS（Transport Stream）やPS（Program Stream）など他の多重化フォーマットにおいて使用してもよい。また、ランダムアクセス可能な単位毎でなくても、ピクチャ毎にSSL SEIおよびSSC SEIを付加するとしてもよい。また、AVC-GOPという単位を設定せずに任意の位置でSSL,SSC,SSIを使用して参照関係を示すとしてもよい。
【０３１１】
図５４（ｂ）および（ｃ）は、サブシーケンス、レイヤ関連SEIを利用して規定したサンプル構造を示す。各サンプルにはサンプルヘッダも付加されるが、ここでは省略している。frame＿countが１である際は、１サンプルに１ピクチャ分のデータが格納されるため、図５４（ｂ）に示される構造にしたがってサンプルが決定される。サンプル１は、AVC-GOPにおける先頭ピクチャのデータを格納するサンプルであり、AVC-GOP内でのサブシーケンス、および、レイヤ情報を示すSEIであるSSL SEIとSSC SEIも同時に格納する。AVC-GOP内での２番目からM番目までのピクチャのデータは、それぞれサンプル２からサンプルMに格納される。
【０３１２】
frame＿countが１より大きい際には、１サンプルにはAVC-GOPを構成する全てのピクチャのデータを格納するとし、サンプルは図５４（ｃ）に示すように、AVC-GOPと同一の構造をとる。なお、frame＿countが１より大きい際にも、AVC-GOPのデータを複数のサンプルに分割して格納するとしてもよい。
【０３１３】
以下に、ＭＰＥＧ−４  ＡＶＣのストリームに対してサブシーケンス、およびレイヤを適用する際の具体例を示す。図５５（ａ）〜（ｄ）は、ビデオストリームとビデオストリームを構成するレイヤ０、１、２を示す。この図５５（ａ）〜（ｄ）は、AVC-GOP内でどのようにサブシーケンス、およびレイヤが使用されるかを示している。図５５（ａ）は、ビデオストリームを構成するAVC-GOP内の１５枚のピクチャを示しており、復号順に符号化タイプはＩ、Ｂ、Ｂ、Ｐ、Ｂ、Ｂ、Ｐ、・・・、Ｐ、Ｂ、Ｂである。全てのピクチャを復号化した際のフレームレートは３０Ｈｚである。
【０３１４】
１５枚のピクチャは、符号化タイプにより３つのレイヤに分割されている。図５５（ｂ）はビデオストリームのレイヤ０を示し、図５５（ｃ）はビデオストリームのレイヤ１を示し、図５５（ｄ）はビデオストリームのレイヤ２を示す。レイヤ０はＩピクチャ、レイヤ１はＰピクチャ、レイヤ２はＢピクチャから構成される。
【０３１５】
AVC-GOP内のレイヤ０からレイヤ２に属するピクチャは、それぞれサブシーケンス０−１、サブシーケンス１−１、サブシーケンス２−１に格納される。ここで、サブシーケンス０−１は単独で復号化され、サブシーケンス１−１はサブシーケンス０−１を参照して復号化され、サブシーケンス２−１はサブシーケンス０−１およびサブシーケンス１−１を参照して復号化される。
【０３１６】
各ピクチャの表示時間間隔は固定であるため、レイヤ０のみ復号化する際のフレームレートは２Ｈｚ、レイヤ０とレイヤ１を復号化する際のフレームレートは１０Ｈｚ、レイヤ０からレイヤ２まで全てを復号化する際のフレームレートは３０Ｈｚになる。ビットレートは、レイヤ０のみでは６４ｋｂｐｓ、レイヤ０とレイヤ１の合計で９６ｋｂｐｓ、レイヤ０からレイヤ２までの合計で１２８ｋｂｐｓとする。図５６（ａ）〜（ｃ）は、図５５（ａ）に示すAVC-GOPに格納されるSSL、SSC、SSIの各SEIのフィールド値を示す。図５６（ａ）は、N（Nは０から２までの整数）番目レイヤに関して、N番目までの全てのレイヤを合計した際の平均ビットレート、および平均フレームレートを格納するSSL SEIを示す。
【０３１７】
次に、図５６（ｂ）は、N（Nは０から２までの整数）番目レイヤに含まれるサブシーケンスが参照するサブシーケンスの情報が格納されるSSC SEIを示す。例えば、レイヤ２のサブシーケンス１は、レイヤ０のサブシーケンス１、およびレイヤ１のサブシーケンス１を参照することが示される。さらに、図５６（ｃ）は、ピクチャ毎に付加されるSSI SEIを示す。SSI SEIには、各ピクチャが属するレイヤ、およびサブシーケンスの情報が格納される。例えば、ピクチャＩ−３はレイヤ０のサブシーケンス１に、ピクチャＢ−４は、レイヤ２のサブシーケンス１に含まれることが示される。
【０３１８】
上述の説明は、レイヤ、サブシーケンスの設定例であり、レイヤとサブシーケンスの定義を満たしていれば自由に設定することができる。続いて、図５７（ａ）および（ｂ）は、図５５のAVC-GOPデータをＭＰ４サンプルに格納したときのサンプル構造を示す。まず、frame＿countが１であるとき、すなわち１サンプルに１ピクチャのデータが含まれるときは、ピクチャＩ−３のデータを含むサンプルにSSL SEI、SSC SEIが設けられ、それ以降のサンプルはピクチャデータのみを含む。また、frame＿countが１より大きいとき、すなわち１サンプルに複数ピクチャのデータが含まれるときは、AVC-GOPの全てのデータが１サンプルに格納される。なお、SSI SEIは各ピクチャデータに含まれるとする。
【０３１９】
次に、サンプルヘッダを利用して、サンプルを構成するピクチャ間の参照関係を記述する例を説明する。実施形態６では、サンプルヘッダ内に新たなボックスを導入して新規の情報を追加できることを説明した。本実施形態においては、サブシーケンスとレイヤに関する情報を格納するためにサンプル・ツー・レイヤ・サブシーケンスボックス（SampleToLayerSubSequenceBox；stls）を新たに追加して使用する。stlsは、サンプル内のピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryを示しており、オーバーヘッドを削減するために両エントリへの参照情報は同一のボックスに格納される。
【０３２０】
なお、AVCLayerEntryとAVCSubSequenceEntryは従来のＭＰ４と同様に、stbl内のsgpdに格納される。図５８（ａ）は、サンプル・ツー・レイヤ・サブシーケンスボックスstlsのシンタックス例を示す。図５８（ａ）において、layer＿description＿indexとsub-sequence＿description＿indexは、それぞれピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryのエントリー番号を示し、picture＿countは同一のAVCLayerEntryとAVCSubSequenceEntryを参照する連続したピクチャの個数を示す。picture＿count, layer＿description＿index, およびsub＿sequence＿description＿indexフィールドをまとめてピクチャレベルエントリと称すると、同一のサブシーケンス、レイヤ関連情報をもつピクチャが周期的に現れるような場合には、同一のピクチャレベルエントリが周期的に繰り返す。このため、ピクチャレベルエントリが周期構造をもつときは、entry＿countを用いて同一の周期構造が連続する個数を示すことにより、テーブルサイズを削減する。
【０３２１】
図５８（ｂ）は、図５５のAVC-GOPを１サンプルに格納したときのstlsのテーブル構造を示す。４枚目以降のピクチャの情報には周期性があるため、entry＿countを使用することによってテーブルサイズが大幅に削減されている。なお、各フィールドのビット数およびフィールドの並びは例であり、異なるビット数やフィールドの並びを使用してもよい。
【０３２２】
なお、サブシーケンスまたはレイヤに限定せずに、ピクチャと、ピクチャの属する複数のグループとの関係を記述できるボックスを定義してもよい。複数のグループにはそれぞれ独立のstsdが存在し、ピクチャはこれらstsd内エントリと関連付けられる。本明細書では、そのようなボックスをサンプル・ツー・マルチグループボックス（SampleToMultiGroupBox；stmg）として定義する。図５８（ｃ）は、サンプル・ツー・マルチグループボックス（SampleToMultiGroupBox；stmg）のシンタックス例を示す。num＿of＿related＿grouping＿typeは、ピクチャと関連付けられるグループの個数を示す。grouping＿typeはグループの識別子であり、例えばサブシーケンスやレイヤを示す識別子が格納される。total＿entry＿count, entry＿count, およびpicture＿countの定義は、stlsと同様である。picture＿indexフィールドには、ピクチャが属するグループ全てに関し、ピクチャが参照するstsd内のエントリーのインデックス番号が格納される。例えば、stmgを用いてレイヤとサブシーケンスの情報を格納する際には、num＿of＿related＿grouping＿typeが２となり、grouping＿typeには、それぞれの識別子を順に格納する。
【０３２３】
さらに、grouping＿indexフィールドには、ピクチャが参照するAVCLayerEntryとAVCSubSequenceEntryのインデックス番号を順に格納する。また、stlsにも、サンプルヘッダにおける他のボックスと同様に、サンプルヘッダの初期値設定部分においてデフォルト値を設定することができるため、stlsの内容がデフォルト値と同一であれば、サンプル内のサンプルヘッダにおいてはstlsを設定しなくてもよい。また、entry＿countフィールドなどを用いて周期構造を表現せずに各ピクチャの情報を順次格納するとしてもよい。また、サブシーケンスとレイヤの情報を別々の独立したボックスを使用して格納するとしてもよい。なお、stlsおよびstmgはサンプルヘッダ内における使用に限定されるものではなく、moovまたはmoof内で使用するとしてもよい。
【０３２４】
続いて、ピクチャ間の参照関係を記述するときの、（１）SEIの使用と（２）サンプルヘッダのstlsの使用とを使い分ける基準を説明する。
【０３２５】
使い分けは、stsdのエントリ内に新規に定義するフラグにより行う。本明細書では、このフラグをsubseq＿flagと称する。subseq＿flagがセットされているときは、ビデオトラック内に設定されるサブシーケンスおよびレイヤ関連SEIを用いてピクチャ間の参照関係を示す。サンプルヘッダのstlsは使用されない。次に、subseq＿flagがセットされていないときは、サンプルヘッダのstlsを使用する。一方、サブシーケンス、およびレイヤ関連SEIをビデオトラック内に含めることは禁止される。すなわち、ピクチャ間の参照関係を取得する際にはまずsubseq＿flagの値を調べる。そして、subseq＿flagがセットされていればサンプル内のピクチャデータに付加されたSSL, SSC, およびSSIの各SEIから参照関係を取得し、subseq＿flagがセットされていなければサンプルヘッダのstlsからピクチャの参照関係を取得する。なお、subseq＿flagはmoov内であればstsdのエントリ以外の場所で設定するとしてもよいし、フラグとする代わりにボックス構造を用いるとしてもよい。
【０３２６】
subseq＿flagがセットされていないときであっても、サブシーケンス、レイヤ関連SEIをビデオトラック内に含めることを禁止しないとしてもよい。これにより、ＭＰ４ファイルのビデオトラックに格納されたＭＰＥＧ−４  ＡＶＣデータを取り出して、トランスポートストリーム（ＴＳ）等の異なるフォーマットに変換するときに、変換後のフォーマットにおいてサブシーケンス、レイヤ関連ＳＥＩを使用するような場合においても、ビデオトラックのデータをそのまま利用できる。
【０３２７】
また、subseq＿flagを使用せずにframe＿countの値によって使い分けるとしてもよい。例えば、frame＿countが１より大きい際にはサンプルヘッダが使用されるため、参照関係もstlsを用いて設定するとし、frame＿countが１である際にはSEIを用いるとしてもよい。さらに、subseq＿flagが設定されている際にはSEIを用いるとし、設定されていない際には従来通りsbgpを用いて参照関係を示すとしてもよい。また、サブシーケンス、レイヤ関連SEIは使用せずに、従来通りのsbgpを用いる方法と、サンプルヘッダのstlsを用いる方法をsubseq＿flagの値により切り替えるとしてもよい。さらにまた、予めサブシーケンス、レイヤ関連SEI、または、stlsのどちらか一方を使用するとしてもよい。
【０３２８】
以上説明したように、本実施形態のＭＰ４ファイルを使用することにより、ビデオトラック内のピクチャの参照関係を容易に取得できる。よって、倍速再生等の特殊再生時に復号または表示するピクチャを効率的に決定できる。また、frame＿count値が１より大きく、１サンプルに複数ピクチャが含まれる際にもピクチャ単位での参照関係を示すことできる。さらに、ピクチャの参照関係に関する情報をサンプルヘッダまたはSEIを使用してmdat内に格納することができるため、moovのサイズを削減できる。
【０３２９】
以下、本実施形態によるデータ処理装置を説明する。本実施形態によるデータ処理装置の構成は、図３５に示すデータ処理装置の構成と同じであり、その基本的な動作もまた既に説明したとおりである。よって、以下では本実施形態によるデータ処理装置の動作、具体的には、特殊再生時における、サンプル解析部３０７および復号表示部３０８の動作を説明する。データ処理装置は、特殊再生時には選択したピクチャのみを表示するが、再生するピクチャを復号化するためには選択したピクチャ以外のピクチャの復号化が必要になることがある。よって、データ処理装置は、復号のみ行うピクチャと復号および表示の両方を行うピクチャとを区別しなければならない。そこで、以下、データ処理装置の特殊再生時の動作を説明する。
【０３３０】
サンプル解析部３０７は、ビデオトラックに含まれるピクチャ間の参照関係を取得し、復号化するピクチャ、および表示するピクチャを決定する。その後、サンプル解析部３０７は、ピクチャデータｄ３０９とともに、ピクチャデータｄ３０９を復号化して表示するのか、または、復号のみ行うのかを識別するための識別信号を復号表示部３０８に出力する。復号表示部３０８は、ピクチャデータｄ３０９を復号化し、受け取った識別信号によって表示が指示されているときは表示を行い、指示されていないときは表示を行わない。
【０３３１】
図５９は、選択したピクチャのみを再生する際のサンプル解析部３０７および復号表示部３０８の処理の手順を示す。
【０３３２】
まず、ステップＳ９１において、stsdのエントリー内に格納されたsubseq＿flagの値を取得する。subseq＿flagがセットされていれば、ピクチャの参照関係はビデオトラックのデータに含まれるサブシーケンス、レイヤ関連SEIから取得し、セットされていなければ、サンプルヘッダ内のstlsから取得することが決定される。続いて、ステップＳ９２において、レイヤのフレームレートやビットレート、またはサブシーケンスの参照関係に基づいて、表示するサブシーケンスを決定する。
【０３３３】
なお、サブシーケンスに含まれるピクチャの全てを表示せずに、特定のピクチャのみを表示するとしてもよい。ステップＳ９３においては、ステップＳ９２において表示すると決定したサブシーケンスのピクチャを復号化する際に参照するサブシーケンスを特定し、ステップＳ９４において、これら参照先サブシーケンスに含まれるピクチャを復号化する。最後に、ステップＳ９５において、表示するピクチャを復号化して表示する。ここで、ステップＳ９１からステップＳ９３までの処理がサンプル解析部３０７において行われ、以降の処理は復号表示部３０８において行われる。
【０３３４】
本明細書で説明した各実施形態によるデータ処理装置の多重化処理および逆多重化処理は、そのような処理の手順を規定するコンピュータプログラムに基づいて実現される。コンピュータプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ等の記録媒体に記録して市場に流通させ、または、インターネット等の電気通信回線を通じて伝送することにより、例えば、コンピュータシステムを記録装置および／または再生装置として動作させることができる。
【０３３５】
図６０（ａ）は、記録媒体の例としてフレキシブルディスク（ＦＤ）の物理フォーマットの例を示す。フレキシブルディスクＦＤの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。上述のプログラムは、フレキシブルディスクＦＤ上に割り当てられた所定の領域に記録されている。図６０（ｂ）は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す。フレキシブルディスクＦＤはケースＦ内に内蔵されている。
【０３３６】
また、図６０（ｃ）は、フレキシブルディスクＦＤにプログラムの書き込みおよび読み出しを行うための機器構成を示す。データ処理装置における多重化処理および／または逆多重化処理を実現するプログラムは、コンピュータシステムＣｓから転送され、フレキシブルディスクドライブ（ＦＤＤ）によってフレキシブルディスクＦＤに書き込まれる。また、プログラムが格納されたフレキシブルディスクＦＤがＦＤＤに装填されると、コンピュータシステムＣｓはそのプログラムを読み出して実行し、多重化処理および／または逆多重化処理を実現することができる。
【０３３７】
なお、記録媒体はフレキシブルディスクに限らず、ＣＤ−ＲＯＭ等の光ディスク、ＩＣカード、ＲＯＭカセット等の半導体記録媒体等であってもよい。
【０３３８】
本発明の各実施形態においては、主としてＭＰ４ファイルに関して説明した。しかし、ＭＰ４規格の大部分の仕様はApple（登録商標）社のQuickTime（TM)ファイルフォーマットをベースにして規定され、一部において規定、名称が異なるが、その仕様の内容は両者の間でほぼ同様である。上述の説明は、一般的には、フィールド名に付される"Box"（ボックス）を"Atom"（アトム）に置換することによって、QuickTime規格に対応できる。
【０３３９】
本発明のデータ処理装置によれば、現サンプルと次サンプルにおける復号開始時間の差分値を、サンプルを構成するフレーム数で割ることにより、各フレームの復号時間が得られる。また、サンプルを構成するアクセスユニットの復号時間と表示開始時間が異なる場合や、アクセスユニットにスタートコードが含まれない場合にも、データ処理装置は、アクセスユニットを解析せずに、高速にかつ低負荷でアクセスユニット毎の時間情報やサイズを取得することができる。
【０３４０】
また、上述のデータ構造によれば、サンプルを構成するアクセスユニットの復号、表示時間情報、あるいはサイズを、アクセスユニットとは別の情報としてサンプル内に格納するため、アクセスユニットを解析せずにアクセスユニット単位の情報を取得できる。また、各フレームにおいて復号時間と表示開始時間とが異なる際にも、フレームの正しい表示時間を取得することができる。また、サンプルを構成するフレームの表示時間情報として、符号化データ内の時間情報をそのまま使用することができるので、時間情報を取得するためのデータ処理装置の負荷が削減できる。
【０３４１】
さらに、上述のデータ構造によれば、動画像データのフレームレートが固定である際には、サンプルの復号時間情報としてデフォルト値のみを設定することにより、サンプルを構成するフレームの復号時間情報が容易に取得できるとともに、オーバーヘッドも削減できる。また、１GOPを１サンプルとするなどサンプルの構造が既知である際には、サンプル内の符号化データから、サンプルを構成する各フレームの情報を取得することにより、サンプルにおけるオーバーヘッドを削減できる。また、サンプルを構成するフレームに関する情報がデフォルト値と異なる際にのみ、フレームに関する情報をサンプル内に格納することにより、フレームに関する情報を効率よく格納できる。
【０３４２】
さらに、上述のデータ構造によれば、サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報をサンプルヘッダが含むことにより、倍速再生などの特殊再生時に、復号する必要のあるフレームを容易に特定できる。サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報を、ビデオストリーム自体が含んでいるので、倍速再生などの特殊再生時に、復号する必要のあるフレームを容易に特定できるという効果が得られる。サンプルを構成するフレームが復号時に参照する参照先フレームを特定するために必要な情報が格納される場所を示す識別情報を含むことにより、特殊再生時に使用するフレーム間の参照関係に関する情報の格納場所を特定できる。
【産業上の利用可能性】
【０３４３】
本発明によれば、例えば、動画ストリーム中の映像ストリームの１フレームと１ビデオサンプルを対応させた場合と比較して、付属情報のサイズを小さくすることができ、かつ、エラーが発生した場合でもエラーの伝播を抑制できるデータ構造が提供される。
【図面の簡単な説明】
【０３４４】
【図１】ＭＰ４ファイル１の構成を示す図である。
【図２】ＭＰ４ファイルの他の構成を示す図である。
【図３】ＭＰ４ファイル１のデータ構造を示す図である。
【図４】従来の再生装置４００のブロック図である。
【図５】ＭＰ４ファイル１が記録されるＤＶＤ−ＲＡＭディスク１３１の領域１３２、１３３を示す図である。
【図６】複数フレームのＧＯＰ１４を１サンプルに対応させたＭＰ４ファイル１１のデータ構造を示す図である。
【図７】（ａ）〜（ｄ）は、ＭＰＥＧ２映像ストリームの階層化されたデータ構造を示す図である。
【図８】（ａ）〜（ｄ）は、ＭＰＥＧ２映像ストリームでエラーが発生したときのエラー伝播の様子を示す図である。
【図９】（ａ）〜（ｄ）は、ユニークコードを持たない動画ストリームにおいて復号エラーが発生したときのエラー伝播の様子を示す図である。
【図１０】（ａ）はフレームスキップが発生したサンプル（ＧＯＰ）を模式的に示す図であり、（ｂ）はサンプルの表示時間長に対して均等に割り当てられた各フレームの表示時間長を示す図であり、（ｃ）はサンプルの表示時間長に対する各フレームの正しい表示時間長を示す図である。
【図１１】実施形態１によるデータ処理装置１０のブロック図である。
【図１２】データ処理装置１０によって記録されるＭＰ４ファイル２１の構成を示す図である。
【図１３】データ処理装置１０の記録処理の手順を示すフローチャートである。
【図１４】（ａ）〜（ｄ）は、ＭＰ４ファイル２１を構成する動画ストリームにおいて、復号エラーが発生したときのエラー伝播の様子を示す図である。
【図１５】各ビデオフレームを構成するスライスの数および各スライスのデータサイズの情報を記述した拡張情報の例を示す図である。
【図１６】（ａ）〜（ｄ）は、動画ストリームにおいて復号エラーが発生したときのエラー伝播がスライス内で収まる様子を示す図である。
【図１７】各ビデオフレームの表示持続時間を記述した拡張情報の例を示す図である。
【図１８】（ａ）はフレームスキップが発生したビデオフレーム群を模式的に示す図であり、（ｂ）は表示時間をすべてのフレームで均一に設定したときのビデオフレーム群を模式的に示す図である。
【図１９】ボックス４０のデータ構造を示す図である。
【図２０】（ａ）は基本部５０のデータ構造を示す図であり、（ｂ）はmoov５２のデータ構造を示す図である。
【図２１】（ａ）はtrak５３のデータ構造を示す図であり、（ｂ）はボックスstsd５６内の複数のエントリーに設定されたフィールドframe＿countを示す図である。
【図２２】基本部５０と拡張部６０とを含むＭＰ４ファイルのデータ構造を示す図である。
【図２３】moof６１のデータ構造を示す図である。
【図２４】実施形態２によるデータ処理装置１７０の記録機能に関するブロック図である。
【図２５】ヘッダ生成部１７５が復号開始時間の差分値、および、サンプルを構成するフレーム数の決定手順を示すフローチャートである。
【図２６】ヘッダ生成部１７５における、サンプルを構成するフレームの決定手順を示すフローチャートである。
【図２７】決定されたサンプルとフレームとの関係を示す図である。
【図２８】決定されたサンプルとフレームとの関係を示す他の例を示す図である。
【図２９】符号化データ内のフレームをサンプルに多重化する手順を示すフローチャートである。
【図３０】ＧＯＰ内のフレームが格納されたサンプルを示す図である。
【図３１】実施形態４によるデータ処理装置２００のブロック図である。
【図３２】（ａ）〜（ｃ）は、サンプルの構造、およびサンプルに含まれる各フレームに関しての、次フレームとの復号時間の差分値の例を示す図である。
【図３３】（ａ）〜（ｃ）は、ＭＰ４ファイルのサンプル構造を示す図である。
【図３４】（ａ）は表示時間およびアクセスユニットをまとめて格納したサンプルを示す図であり、（ｂ）は（ａ）のサンプル構造を実現するシンタックス例を示す図であり、（ｃ）は表示時間情報の次にアクセスユニットのサイズを示すフィールドを追加した例を示す図である。
【図３５】第５の実施形態によるデータ処理装置３００の構成を示すブロック図である。
【図３６】サンプル解析部３０７がサンプルからピクチャデータを取得する処理の手順を示すフローチャートである。
【図３７】アクセスユニットのデータ構造を示す図である。
【図３８】（ａ）はマルチＡＵヘッダボックス（Multi AU header Box）および複数のアクセスユニットを格納したサンプルのデータ構造を示す図であり、（ｂ）はサンプルヘッダのデータ構造を示す図である。
【図３９】サンプルヘッダをサンプル内の最終データとして配置する際の例を示す図である。
【図４０】（ａ）はmtszのデータ構造を示す図であり、（ｂ）はmdtaのデータ構造を示す図であり、（ｃ）はmctaのデータ構造を示す図である。
【図４１】（ａ）はボックスを使用したときのサンプルヘッダの初期値設定部分のシンタックス例を示す図であり、（ｂ）はボックスを使用しないときのサンプルヘッダの初期値設定部分のシンタックス例を示す図である。
【図４２】（ａ）〜（ｄ）は、それぞれmahd、mtsz、mdta、およびmctaの各シンタックスの例を示す図である。
【図４３】（ａ）〜（ｃ）は、サンプルヘッダにデータを格納するための第１の例を示す図である。
【図４４】（ａ）および（ｂ）は、サンプルヘッダにデータを格納するための第２の例を示す図である。
【図４５】（ａ）は１サンプル内のアクセスユニットの各々にサンプルヘッダを付加した例を示す図であり、（ｂ）はＮ未満の複数のアクセスユニットに１つのサンプルヘッダを付加した例を示す図である。
【図４６】（ａ）および（ｂ）は、ボックス構造を用いないときのサンプル構造およびシンタックス例を示す図である。
【図４７】サンプル解析部３０７がサンプルからピクチャデータを取得する処理の手順を示すフローチャートである。
【図４８】サンプルを構成するアクセスユニットのサイズを取得する動作を示すフローチャートである。
【図４９】一連のピクチャと各ピクチャの符号化タイプを示す図である。
【図５０】（ａ）〜（ｃ）は、ビデオストリームとビデオストリームを構成するレイヤ０および１を示す図である。
【図５１】（ａ）〜（ｃ）は、サブシーケンス、レイヤ関連SEIのシンタックスを示す図である。
【図５２】（ａ）〜（ｄ）は、ビデオストリームとビデオストリームを構成するレイヤ０、１、２を示す図である。
【図５３】（ａ）はレイヤ用sbgpのテーブルデータを示す図であり、図５３（ｂ）はサブシーケンス用sbgpのテーブルデータを示す図である。
【図５４】（ａ）〜（ｃ）は、AVC-GOPの構造を示す図である。
【図５５】（ａ）〜（ｄ）は、ビデオストリームとビデオストリームを構成するレイヤ０、１、２を示す図である。
【図５６】（ａ）〜（ｃ）は、図５５（ａ）に示すAVC-GOPに格納されるSSL、SSC、SSIの各SEIのフィールド値を示す図である。
【図５７】（ａ）および（ｂ）は、図５５のAVC-GOPデータをＭＰ４サンプルに格納したときのサンプル構造を示す図である。
【図５８】（ａ）はサンプル・ツー・レイヤ・サブシーケンスボックスstlsのシンタックス例を示す図であり、（ｂ）は図５５のAVC-GOPを１サンプルに格納したときのstlsのテーブル構造を示す図であり、（ｃ）は、サンプル・ツー・マルチグループボックスstmgのシンタックス例を示す図である。
【図５９】選択したピクチャのみを再生する際のサンプル解析部３０７および復号表示部３０８の処理の手順を示すフローチャートである。
【図６０】（ａ）は記録媒体の例としてフレキシブルディスク（ＦＤ）の物理フォーマットの例を示す図であり、（ｂ）はフレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す図であり、（ｃ）はフレキシブルディスクＦＤにプログラムの書き込みおよび読み出しを行うための機器構成を示す図である。
【符号の説明】
【０３４５】
１０  データ処理装置
１００  映像信号受信部
１０１  動画ストリーム生成部
１０２  音声信号受信部
１０３  付属情報生成部
１０４  拡張情報生成部
１０５  多重化部
１１０  映像信号出力部
１１１  動画ストリーム復号部
１１２  音声信号出力部
１１３  再生部
１１８  付属情報保持メモリ
１２０  記録部
１３０  光ピックアップ
【図１】
2004282703.tif 000003
【図２】
2004282703.tif 000004
【図３】
2004282703.tif 000005
【図４】
2004282703.tif 000006
【図５】
2004282703.tif 000007
【図６】
2004282703.tif 000008
【図７】
2004282703.tif 000009
【図８】
2004282703.tif 000010
【図９】
2004282703.tif 000011
【図１０】
2004282703.tif 000012
【図１１】
2004282703.tif 000013
【図１２】
2004282703.tif 000014
【図１３】
2004282703.tif 000015
【図１４】
2004282703.tif 000016
【図１５】
2004282703.tif 000017
【図１６】
2004282703.tif 000018
【図１７】
2004282703.tif 000019
【図１８】
2004282703.tif 000020
【図１９】
2004282703.tif 000021
【図２０】
2004282703.tif 000022
【図２１】
2004282703.tif 000023
【図２２】
2004282703.tif 000024
【図２３】
2004282703.tif 000025
【図２４】
2004282703.tif 000026
【図２５】
2004282703.tif 000027
【図２６】
2004282703.tif 000028
【図２７】
2004282703.tif 000029
【図２８】
2004282703.tif 000030
【図２９】
2004282703.tif 000031
【図３０】
2004282703.tif 000032
【図３１】
2004282703.tif 000033
【図３２】
2004282703.tif 000034
【図３３】
2004282703.tif 000035
【図３４】
2004282703.tif 000036
【図３５】
2004282703.tif 000037
【図３６】
2004282703.tif 000038
【図３７】
2004282703.tif 000039
【図３８】
2004282703.tif 000040
【図３９】
2004282703.tif 000041
【図４０】
2004282703.tif 000042
【図４１】
2004282703.tif 000043
【図４２】
2004282703.tif 000044
【図４３】
2004282703.tif 000045
【図４４】
2004282703.tif 000046
【図４５】
2004282703.tif 000047
【図４６】
2004282703.tif 000048
【図４７】
2004282703.tif 000049
【図４８】
2004282703.tif 000050
【図４９】
2004282703.tif 000051
【図５０】
2004282703.tif 000052
【図５１】
2004282703.tif 000053
【図５２】
2004282703.tif 000054
【図５３】
2004282703.tif 000055
【図５４】
2004282703.tif 000056
【図５５】
2004282703.tif 000057
【図５６】
2004282703.tif 000058
【図５７】
2004282703.tif 000059
【図５８】
2004282703.tif 000060
【図５９】
2004282703.tif 000061
【図６０】
2004282703.tif 000062