(57)【特許請求の範囲】
【請求項１】
映像及び／または音声のデータがパケット化されたパケットのストリームであるＡＶストリームからタイムスタンプ付ＡＶストリームを生成するコンテンツ生成装置であって、
少なくとも１のマルチメディアデータファイルをパケット化するパケット化手段と、
前記マルチメディアデータファイルの送信時間とデータ送信ビットレートと前記ＡＶストリームのタイムスタンプ、または前記マルチメディアデータファイルの送信時刻と前記ＡＶストリームのタイムスタンプとに基づいて、前記パケット化手段によりパケット化された各パケットの再生タイミングを示すタイムスタンプを生成するタイムスタンプ生成手段と、
前記タイムスタンプ生成手段が生成したタイムスタンプをそのタイムスタンプに対応する各パケットに付与し、前記タイムスタンプ付きＡＶストリームと時間軸を共有するタイムスタンプ付マルチメディアデータストリームを生成するマルチメディアデータストリーム生成手段と、
前記タイムスタンプ付ＡＶストリーム及び前記タイムスタンプ付マルチメディアデータストリームのタイムスタンプに基づいて前記タイムスタンプ付ＡＶストリームと前記タイムスタンプ付マルチメディアデータストリームとを結合し、タイムスタンプ付コンテンツストリームを生成するタイムスタンプ付コンテンツストリーム生成手段と、
を備え、
前記ＡＶストリームの全パケットのうち複数のパケットにはそれらのパケットの再生タイミングを示す時刻情報が記録され、前記ＡＶストリームのタイムスタンプは前記時刻情報に基づいて生成されており、
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのあるパケットＰ１nに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰ２mに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付ＡＶストリームのパケットＰ１nのタイムスタンプ値Ｔ１n及びその時刻情報を変更する、
コンテンツ生成装置。
【請求項２】
前記マルチメディアデータファイルが複数ある場合、前記マルチメディアデータストリーム生成手段は、マルチメディアデータファイルの送信順序の設定を受け付けることを特徴とする、請求項１に記載のコンテンツ生成装置。
【請求項３】
送信時間が指定された前記マルチメディアデータファイルが複数ある場合、前記マルチメディアデータストリーム生成手段は、マルチメディアデータファイルの送信順序を決定し、その送信順序でタイムスタンプ付マルチメディアデータストリームを生成した場合に、各マルチメディアデータファイルから生成されたパケットのタイムスタンプが示す時間がそのマルチメディアデータファイルの送信時間内か否かを判定することを特徴とする、請求項１記載のコンテンツ生成装置。
【請求項４】
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰ１nのタイムスタンプ値Ｔ１nとその時刻情報とを、前記コンテンツストリームの時間軸に対して同じだけ変更することを特徴とする、請求項１に記載のコンテンツ生成装置。
【請求項５】
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰnの直前のパケットＰa及び直後のパケットＰbのタイムスタンプ値Ｔa、Ｔbを抽出し、パケットＰnのタイムスタンプ値Ｔnを前記タイムスタンプ値Ｔa、Ｔbに基づいて変更することを特徴とする、請求項１または４に記載のコンテンツ生成装置。
【請求項６】
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰaとＰnとのタイムスタンプ値の差ΔＴａ（ΔＴａ＝Ｔn−Ｔa）と、パケットＰnとＰbとのタイムスタンプ値の差ΔＴｂ（ΔＴｂ＝Ｔb−Ｔn）との差が小さくなるように、パケットＰnのタイムスタンプ値Ｔnを変更することを特徴とする、請求項５に記載のコンテンツ生成装置。
【請求項７】
前記ＡＶストリームはＭＰＥＧ２の規格に準じており、前記時刻情報はＰＣＲ(Program Clock Reference)であることを特徴とする、請求項１〜６のいずれかに記載のコンテンツ生成装置。
【請求項８】
映像及び／または音声のデータがパケット化されたパケットのストリームであるＡＶストリームからタイムスタンプ付ＡＶストリームを生成するコンテンツ生成装置であって、
少なくとも１のマルチメディアデータファイルをパケット化するパケット化手段と、
前記マルチメディアデータファイルの送信時間とデータ送信ビットレートと前記ＡＶストリームのタイムスタンプ、または前記マルチメディアデータファイルの送信時刻と前記ＡＶストリームのタイムスタンプとに基づいて、前記パケット化手段によりパケット化された各パケットの再生タイミングを示すタイムスタンプを生成するタイムスタンプ生成手段と、
前記タイムスタンプ生成手段が生成したタイムスタンプをそのタイムスタンプに対応する各パケットに付与し、前記タイムスタンプ付きＡＶストリームと時間軸を共有するタイムスタンプ付マルチメディアデータストリームを生成するマルチメディアデータストリーム生成手段と、
前記タイムスタンプ付ＡＶストリーム及び前記タイムスタンプ付マルチメディアデータストリームのタイムスタンプに基づいて前記タイムスタンプ付ＡＶストリームと前記タイムスタンプ付マルチメディアデータストリームとを結合し、タイムスタンプ付コンテンツストリームを生成するタイムスタンプ付コンテンツストリーム生成手段と、
を備え、
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのあるパケットＰnに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰmに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付マルチメディアデータストリームのパケットＰmのタイムスタンプ値Ｔmを変更する、
コンテンツ生成装置。
【請求項９】
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付マルチメディアデータストリームのパケットＰmの直前のパケットＰｃ及び直後のパケットＰｄのタイムスタンプ値Ｔｃ、Ｔｄを抽出し、パケットＰmのタイムスタンプ値Ｔmを前記タイムスタンプ値Ｔｃ、Ｔｄに基づいて変更することを特徴とする、請求項８に記載のコンテンツ生成装置。
【請求項１０】
前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付マルチメディアデータストリームのパケットＰｃとＰmとのタイムスタンプ値の差ΔＴｃ（ΔＴｃ＝Ｔm−Ｔｃ）と、パケットＰｍとＰｄとのタイムスタンプ値の差ΔＴｄ（ΔＴｄ＝Ｔｄ−Ｔm）との差が小さくなるように、パケットＰmのタイムスタンプ値Ｔmを変更することを特徴とする、請求項９に記載のコンテンツ生成装置。
【請求項１１】
前記マルチメディアデータファイルは、送信時間を指定されているマルチメディアデータファイル（以下、単にデータモジュールという）と送信時刻を指定されているマルチメディアデータファイル（以下、単にイベントメッセージという）とを含んでおり、
前記マルチメディアデータストリーム生成手段は、前記データモジュールと前記イベントメッセージとに同一の送信識別子を割り当てる場合、１以上のパケットからなる所定長のセクション単位で前記データモジュールをストリーム化し、前記イベントメッセージの送信時刻がいずれかのセクションの送信時間に含まれる場合、前記イベントメッセージの送信時刻がそのセクションの送信時間外となるように、そのセクションを構成する全パケットのタイムスタンプまたは前記イベントメッセージのタイムスタンプを変更することを特徴とする、請求項１又は８に記載のコンテンツ生成装置。
【請求項１２】
映像及び／または音声のデータがパケット化されたパケットのストリームであるＡＶストリームからタイムスタンプ付ＡＶストリームを生成するコンテンツ生成方法であって、
少なくとも１のマルチメディアデータファイルをパケット化するパケット化ステップと、
前記マルチメディアデータファイルの送信時間とデータ送信ビットレートと前記ＡＶストリームのタイムスタンプ、または前記マルチメディアデータファイルの送信時刻と前記ＡＶストリームのタイムスタンプとに基づいて、前記パケット化ステップによりパケット化された各パケットの再生タイミングを示すタイムスタンプを生成するタイムスタンプ生成ステップと、
前記タイムスタンプ生成ステップで生成したタイムスタンプをそのタイムスタンプに対応する各パケットに付与し、前記タイムスタンプ付きＡＶストリームと時間軸を共有するタイムスタンプ付マルチメディアデータストリームを生成するマルチメディアデータストリーム生成ステップと、
前記タイムスタンプ付ＡＶストリーム及び前記タイムスタンプ付マルチメディアデータストリームのタイムスタンプに基づいて前記タイムスタンプ付ＡＶストリームと前記タイムスタンプ付マルチメディアデータストリームとを結合し、タイムスタンプ付コンテンツストリームを生成するタイムスタンプ付コンテンツストリーム生成ステップと、
を含み、
前記ＡＶストリームの全パケットのうち複数のパケットにはそれらのパケットの再生タイミングを示す時刻情報が記録され、前記ＡＶストリームのタイムスタンプは前記時刻情報に基づいて生成されており、
前記タイムスタンプ付コンテンツストリーム生成ステップにおいては、前記タイムスタンプ付ＡＶストリームのあるパケットＰ１nに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰ２mに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付ＡＶストリームのパケットＰ１nのタイムスタンプ値Ｔ１n及びその時刻情報を変更する、
コンテンツ生成方法。
【請求項１３】
映像及び／または音声のデータがパケット化されたパケットのストリームであるＡＶストリームからタイムスタンプ付ＡＶストリームを生成するコンテンツ生成方法であって、
少なくとも１のマルチメディアデータファイルをパケット化するパケット化ステップと、
前記マルチメディアデータファイルの送信時間とデータ送信ビットレートと前記ＡＶストリームのタイムスタンプ、または前記マルチメディアデータファイルの送信時刻と前記ＡＶストリームのタイムスタンプとに基づいて、前記パケット化手段によりパケット化された各パケットの再生タイミングを示すタイムスタンプを生成するタイムスタンプ生成ステップと、
前記タイムスタンプ生成ステップで生成したタイムスタンプをそのタイムスタンプに対応する各パケットに付与し、前記タイムスタンプ付きＡＶストリームと時間軸を共有するタイムスタンプ付マルチメディアデータストリームを生成するマルチメディアデータストリーム生成ステップと、
前記タイムスタンプ付ＡＶストリーム及び前記タイムスタンプ付マルチメディアデータストリームのタイムスタンプに基づいて前記タイムスタンプ付ＡＶストリームと前記タイムスタンプ付マルチメディアデータストリームとを結合し、タイムスタンプ付コンテンツストリームを生成するタイムスタンプ付コンテンツストリーム生成ステップと、
を備え、
前記タイムスタンプ付コンテンツストリーム生成ステップにおいては、前記タイムスタンプ付ＡＶストリームのあるパケットＰnに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰmに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付マルチメディアデータストリームのパケットＰmのタイムスタンプ値Ｔmを変更する、
コンテンツ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像及び／または音声を含むＡＶデータとマルチメディアデータとを含むコンテンツ生成装置に関する。
【背景技術】
【０００２】
近年、映像や音声をデジタル化し、放送や通信により配信するのが主流になっている。例えば、ＢＳ（Ｂｒｏａｄｃａｓｔ  Ｓａｔｅｌｌｉｔｅ）デジタル放送や、ＣＳ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ）デジタル放送では、ＭＰＥＧ２規格により映像や音声がデジタル化されて配信されているし、地上デジタル放送においても同規格で映像や音声を含むＡＶデータが配信されている。また、デジタル化されて配信されるＡＶデータを記録媒体に記録した後に再生する視聴形態も盛んに行われている。例えば、テレビジョンで受信したＡＶデータがＤＶＤレコーダやＨＤＤレコーダに記録されたり、ＰＣで受信したＡＶデータがＨＤＤに記録されたりしている。特許文献１には、ＭＰＥＧ２規格によるＡＶビットストリームの記録再生方法に関する技術が開示されている。より具体的には、特許文献１には、ＡＶビットストリームに予め記録されている時刻情報に基づいて実質上固定した基準クロックを生成し、その固定基準クロックに従って生成したタイムスタンプを各パケットに付与する技術が記載されている。これにより、固定の基準クロックに従ったタイムスタンプに基づいてＡＶビットストリームを再生することができる。
【０００３】
一方、映像音声のデジタル化に伴い、ハイパーテキスト文書や画像データといったマルチメディアデータを映像や音声と共に配信するコンテンツ配信形態も盛んに行われている。ＢＳデジタル放送のデータ放送がその一例として挙げられる。ＢＳデジタル放送におけるデータ放送では、マルチメディアデータである複数のデータモジュールを、映像や音声の送信タイミングに合わせて送信している。また、所望の時刻に何らかのイベントを通知したい場合に使用する、イベントメッセージと呼ばれるメッセージデータも、ＢＳデジタル放送のデータ放送で送信される。
【特許文献１】特開２０００−１５６８３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１はＡＶビットストリームのみを対象としたものであり、マルチメディアデータを扱うことを想定していない。また、マルチメディアデータの中には、その処理を映像・音声の再生に同期させる必要があるものが存在する。
【０００５】
本発明は、記録した後に再生することを前提とし、ＡＶデータとマルチメディアデータとを含むコンテンツの生成技術であって、マルチメディアデータの再生を映像や音声の再生に同期させることができるコンテンツの生成技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、発明１は、映像及び／または音声のデータがパケット化されたパケットのストリームであるＡＶストリームからタイムスタンプ付ＡＶストリームを生成するコンテンツ生成装置を提供する。この装置は、下記の手段を有している。
・少なくとも１のマルチメディアデータファイルをパケット化するパケット化手段、
・前記マルチメディアデータファイルの送信時間とデータ送信ビットレートと前記ＡＶストリームのタイムスタンプ、及び／または前記マルチメディアデータファイルの送信時刻と前記ＡＶストリームのタイムスタンプとに基づいて、前記パケット化手段によりパケット化された各パケットの再生タイミングを示すタイムスタンプを生成するタイムスタンプ生成手段、
・前記タイムスタンプ生成手段が生成したタイムスタンプをそのタイムスタンプに対応する各パケットに付与し、前記タイムスタンプ付きＡＶストリームと時間軸を共有するタイムスタンプ付マルチメディアデータストリームを生成するマルチメディアデータストリーム生成手段、
・前記タイムスタンプ付ＡＶストリーム及び前記タイムスタンプ付マルチメディアデータストリームのタイムスタンプに基づいて前記タイムスタンプ付ＡＶストリームと前記タイムスタンプ付マルチメディアデータストリームとを結合し、タイムスタンプ付コンテンツストリームを生成するタイムスタンプ付コンテンツストリーム生成手段。
【０００７】
この装置により、ＡＶストリームとマルチメディアデータとの再生を同期させることができる。マルチメディアデータがある時間に渡り送信されるデータモジュールであっても、またマルチメディアデータがある瞬間の時刻を指定して送信されるイベントメッセージであっても、ＡＶストリームと同期させて再生することが出来る。
【０００８】
発明２は、前記発明１において、前記マルチメディアデータファイルが複数ある場合、前記マルチメディアデータストリーム生成手段は、マルチメディアデータファイルの送信順序の設定を受け付けることを特徴とするコンテンツ生成装置を提供する。
【０００９】
データモジュールをコンテンツ制作者の意図する順序で再生することが出来る。
【００１０】
発明３は、発明１において、送信時間が指定された前記マルチメディアデータファイルが複数ある場合、前記マルチメディアデータストリーム生成手段は、マルチメディアデータファイルの送信順序を決定し、その送信順序でタイムスタンプ付マルチメディアデータストリームを生成した場合に、各マルチメディアデータファイルから生成されたパケットのタイムスタンプが示す時間がそのマルチメディアデータファイルの送信時間内か否かを判定することを特徴とするコンテンツ生成装置を提供する。
【００１１】
この構成によると、再生できないデータモジュールが存在するということが無くなる。
【００１２】
発明４は、前記発明１において、前記ＡＶストリームの全パケットのうち複数のパケットにはそれらのパケットの再生タイミングを示す時刻情報が記録され、前記ＡＶストリームのタイムスタンプは前記時刻情報に基づいて生成されているコンテンツ生成装置を提供する。この装置において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのあるパケットＰ１nに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰ２mに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付ＡＶストリームのパケットＰ１nのタイムスタンプ値Ｔ１n及びその時刻情報を変更する。
【００１３】
この構成によると、タイムスタンプ値が同値であってもコンテンツを矛盾なく生成することが出来る。
【００１４】
発明５は、前記発明４において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰ１nのタイムスタンプ値Ｔ１nとその時刻情報とを、前記コンテンツストリームの時間軸に対して同じだけ変更することを特徴とするコンテンツ生成装置を提供する。
【００１５】
ＡＶデータストリームのタイムスタンプを変更しても、ＡＶデータストリームの再生タイミングを示す時刻情報とタイムスタンプとを一致させることができる。
【００１６】
発明６は、発明４または５において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰnの直前のパケットＰa及び直後のパケットＰbのタイムスタンプ値Ｔa、Ｔbを抽出し、パケットＰnのタイムスタンプ値Ｔnを前記タイムスタンプ値Ｔa、Ｔbに基づいて変更することを特徴とするコンテンツ生成装置を提供する。
【００１７】
発明７は、発明６において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのパケットＰaとＰnとのタイムスタンプ値の差ΔＴａ（ΔＴａ＝Ｔn−Ｔa）と、パケットＰnとＰbとのタイムスタンプ値の差ΔＴｂ（ΔＴｂ＝Ｔb−Ｔn）との差が小さくなるように、パケットＰnのタイムスタンプ値Ｔnを変更することを特徴とするコンテンツ生成装置を提供する。
【００１８】
発明８は、発明４〜７のいずれかにおいて、前記ＡＶストリームはＭＰＥＧ２の規格に準じており、前記時刻情報はＰＣＲ(Program Clock Reference)であることを特徴とするコンテンツ生成装置を提供する。
【００１９】
発明９は、発明１において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付ＡＶストリームのあるパケットＰnに付与されたタイムスタンプ値と前記タイムスタンプ付マルチメディアデータストリームのあるパケットＰmに付与されたタイムスタンプ値とを比較し、両者が等しい場合、前記タイムスタンプ付マルチメディアデータストリームのパケットＰmのタイムスタンプ値Ｔmを変更することを特徴とするコンテンツ生成装置を提供する。
【００２０】
ＡＶストリームとマルチメディアデータストリームとでタイムスタンプ値が同じであっても、コンテンツを矛盾なく生成することが出来る。
【００２１】
発明１０は、発明９において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付マルチメディアデータストリームのパケットＰmの直前のパケットＰｃ及び直後のパケットＰｄのタイムスタンプ値Ｔｃ、Ｔｄを抽出し、パケットＰmのタイムスタンプ値Ｔmを前記タイムスタンプ値Ｔｃ、Ｔｄに基づいて変更することを特徴とするコンテンツ生成装置を提供する。
【００２２】
発明１１は、発明１０において、前記タイムスタンプ付コンテンツストリーム生成手段は、前記タイムスタンプ付マルチメディアデータストリームのパケットＰaとＰmとのタイムスタンプ値の差ΔＴｃ（ΔＴｃ＝Ｔm−Ｔｃ）と、パケットＰnとＰｄとのタイムスタンプ値の差ΔＴｄ（ΔＴｄ＝Ｔｄ−Ｔm）との差が小さくなるように、パケットＰmのタイムスタンプ値Ｔmを変更することを特徴とするコンテンツ生成装置を提供する。
【００２３】
発明１２は、発明１において、前記マルチメディアデータファイルは、送信時間を指定されているマルチメディアデータファイル（以下、単にデータモジュールという）と送信時刻を指定されているマルチメディアデータファイル（以下、単にイベントメッセージという）とを含んでいるコンテンツ生成装置を提供する。この装置において、前記マルチメディアデータストリーム生成手段は、前記データモジュールと前記イベントメッセージとに同一の送信識別子を割り当てる場合、１以上のパケットからなる所定長のセクション単位で前記データモジュールをストリーム化し、前記イベントメッセージの送信時刻がいずれかのセクションの送信時間に含まれる場合、前記イベントメッセージの送信時刻がそのセクションの送信時間外となるように、そのセクションを構成する全パケットのタイムスタンプまたは前記イベントメッセージのタイムスタンプを変更する。
【００２４】
この構成によると、メッセージデータを所望の時間からずらすことなく再生でき、かつ、データモジュールとの結合において規格違反を防ぐことが出来る。また、イベントメッセージのための通信帯域をとらずにすみ、通信帯域を有効に活用することができる。
【００２５】
発明１３は、前記発明１の装置が実行するコンテンツ生成方法を提供する。この方法は、発明１と同様の作用効果を奏する。
【発明の効果】
【００２６】
本発明を用いれば、映像や音声の出力とマルチメディアデータの出力とを同期させることが出来る。
【発明を実施するための最良の形態】
【００２７】
以下本発明の実施の形態について、図面を参照しながら説明する。なお、本発明において、ＡＶデータとは、映像データ及び音声データの両方、映像データのみ、または音声データのみを含む。また、コンテンツとは、ＡＶデータとマルチメディアデータとを含む。マルチメディアデータには、動画像、静止画像、音声、テキストなどが含まれる。タイムスタンプとは、パケットの再生タイミングを示す時刻情報であればよい。時刻情報とは、日時を分や秒の単位で表される情報だけでなく、振動子の振動回数などであってもよい。
【００２８】
＜第１実施形態＞
［全体構成］
図１は、本発明の第１実施形態に係るコンテンツ生成装置の機能構成図である。コンテンツ生成装置１００は、コンテンツ制作者が管理し、ＡＶデータストリームとマルチメディアデータストリームとを含むコンテンツストリームを生成する。その際、ＡＶデータの出力とマルチメディアデータの出力とが同期するよう、コンテンツストリームが生成される。生成されたコンテンツストリームは、コンテンツ記録手段２００に配信されて一旦記録され、コンテンツ再生手段３００により再生される。また、生成されたコンテンツストリームは、コンテンツ再生手段３００に配信され、記録されることなく直接再生されることもある。
【００２９】
コンテンツ生成装置１００は、例えばデジタルＴＶの放送局に設置される。コンテンツ記録手段２００及びコンテンツ再生手段３００は、デジタルＴＶの視聴者の受信機などと接続されるか、または受信機に設けられる。コンテンツ記録手段２００及びコンテンツ再生手段３００は、それぞれ異なるコンピュータシステムで実現されても良いし、一部または全部が同一のコンピュータシステムで実現されても良い。
【００３０】
コンテンツ生成装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニットなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが前記コンピュータプログラムに従って動作することにより、コンテンツ生成装置１００は、その機能を達成する。
【００３１】
［コンテンツ生成装置］
再度図１を参照し、コンテンツ生成装置１００の構成について詳細に説明する。コンテンツ生成装置１００は、ＡＶストリーム生成手段１０１、データストリーム生成手段１０２、コンテンツストリーム生成手段１０３を含んで構成される。
【００３２】
以下、各部構成について説明する。
【００３３】
（１）ＡＶストリーム生成手段
ＡＶストリーム生成手段１０１は、ＡＶストリームの入力を受け付け、ＡＶストリームを構成する各パケットにタイムスタンプを付与する。タイムスタンプは、各パケットが再生されるべきタイミングと実質上一致するタイミングを示すように生成される。この例では、ＭＰＥＧ２規格に従ったＡＶストリームがＡＶストリーム生成手段１０１に入力される場合を考える。このＡＶストリームの中の複数のパケットには、それらの再生タイミングを示す時刻情報であるＰＣＲ(Program Clock Reference、基準時刻信号)が記録されている。ＰＣＲは、約１００ｍｓ間に少なくとも１個が存在するように、ＡＶストリームのパケットに記録される。ＰＣＲの値は、２７ＭＨｚ±３ｐｐｍの周波数の振動を基準クロックとして記録される。
【００３４】
より具体的には、ＡＶストリーム生成手段１０１は、ＡＶストリームからＰＣＲを抽出する。始めてＰＣＲを抽出すると、その抽出と実質上同じタイミングに、そのＰＣＲと同じ値をカウンタ（図示せず）に設定する。例えば、最初に抽出したＰＣＲの値が“０”であれば、カウンタには“０”が設定される。カウンタの値は、ＡＶストリーム生成手段１０１が内部に有する振動子（図示せず）からの信号に従い積算される。この振動子は、ＰＣＲの基準クロックよりも若干ずれた周波数、例えば２７ＭＨｚ近傍の周波数で振動する。そのため、ＰＣＲが周期的、例えば１００ｍｓ間隔で記録されていれば、カウンタの積算値は次第にＰＣＲとずれてくる。そこで、そのずれを検出し、ずれが少なくなるように、振動子の周波数を調整する。これにより、振動子に基づくカウンタの積算値は、ＡＶストリームの各パケットが再生されるべきタイミングと実質上一致するタイミングを示す。ＡＶストリーム生成手段１０１は、入力されたＡＶストリームの各パケットのヘッダにカウンタの積算値をタイムスタンプとして記録し、コンテンツストリーム生成手段１０３に出力する。
【００３５】
（２）データストリーム生成手段
データストリーム生成手段１０２は、一つ以上のマルチメディアファイルの入力を受け付け、これをパケット化する。本実施形態では、マルチメディアファイルとして、ＡＶストリームの時間軸に対する送信時間が指定されたもの（以下、データモジュールという）を考える。マルチメディアファイルをパケット化する方法は、ＡＲＩＢ (Association of Radio Industries and Business)規格とＭＰＥＧ２規格とに順ずる。
【００３６】
データストリーム生成手段１０２は、各データモジュールの送信時間とデータ送信ビットレートとの入力をさらに受け付け、タイムスタンプを生成し、タイムスタンプ付マルチメディアデータストリームをコンテンツストリーム出力手段１０３へ出力する。
【００３７】
図２は、入力されるデータモジュールの送信時間の一例を示す。送信時間は、ＡＶストリームの時間軸上における時間の範囲を特定する。この例では、ＡＶストリームの先頭を基準とする相対時間を秒単位で指定することにより、データモジュールの送信時間を特定している。例えば、データモジュールＩＤ“０”の送信時間は、ＡＶストリームの開始から３００秒間である。同様に、データモジュールＩＤ“１”の送信時間は、バージョンが“０”のものがＡＶストリームの開始から１２０秒間である。データモジュールＩＤ“１”、バージョン“１”の送信時間は、ＡＶストリームの開始後１２０秒〜３００秒の１８０秒間である。なお、データモジュールＩＤ及びデータモジュールバージョンは、両者の組み合わせによりデータモジュールを特定する。
【００３８】
タイムスタンプは、データモジュールの各パケットがＡＶストリームの各パケットと同期するタイミングを示すように生成される。基本的には、１つのデータモジュールの先頭パケットの値は下式で表される。
【００３９】
（先頭パケットの値）＝（ＡＶストリームのタイムスタンプの初期値）＋（データモジュールの送信開始時間をＡＶストリームの送信開始からの相対時間で表した値）
また１つのデータモジュールのパケットに付与されるタイムスタンプの最大値は下式で表される。
【００４０】
（タイムスタンプの最大値）≦（ＡＶストリームのタイムスタンプの初期値）＋（データモジュールの送信終了時間をＡＶストリームの送信開始からの相対時間で表した値）
例えば、ＡＶストリームのタイムスタンプの初期値が“０”であり、ＡＶストリームの開始から３００秒間の間送信されるデータモジュールにタイムスタンプを付与する場合を考える。そのデータモジュールには、“０”から始まりＴｉずつ３００まで増加するタイムスタンプが順に付与される。タイムスタンプ値の変化幅Ｔｉは一定であり、下式で算出される。
【００４１】
Ｔｉ＝（パケットサイズ）÷（データ送信ビットレート）
説明を容易にするため、この例では各データモジュールのデータ送信ビットレートは同一であるものとする。パケットサイズは、生成するコンテンツストリームの規格に準じ、例えばデジタルテレビ放送用のコンテンツストリームであれば１８８バイトまたは２０４バイトである。
【００４２】
図３は、生成されるタイムスタンプ付マルチメディアデータストリームの概念説明図である。複数のデータモジュールはパケット化されて１つのマルチメディアストリームに合成される。各データモジュールは、カルーセル方式で、すなわち繰り返し送信されるように、マルチメディアストリームが生成される。各パケットのヘッダには、Ｔｉ間隔の値をもつタイムスタンプが付与される。
【００４３】
複数のデータモジュールの送信時間が重複する場合、何らかの方法によりデータモジュールの送信順序を決め、その順序に従いタイムスタンプを付与する。この図では、２つのデータモジュール（ＩＤ＝０，１）の送信時間が重複し、データモジュールＩＤ“０”、“１”の順に両者を送信する場合を示す。この場合、まずデータモジュール（ＩＤ“０”）のパケットにタイムスタンプを付与する。データモジュール（ＩＤ“０”）１つ分に相当するパケット全部にタイムスタンプを付与し終わったら、次にデータモジュール（ＩＤ“１”）１つ分に相当する全パケットにタイムスタンプを付与する。データストリーム生成手段１０２は、データモジュールのパケットにタイムスタンプを付与する度に、そのデータモジュールの送信終了時間をタイムスタンプが越えていないかどうかを判断する。複数のデータモジュールへのタイムスタンプの付与をそれらの送信順序に従って繰り返し、いずれかの送信時間、この例ではデータモジュール（ＩＤ“１”）の送信時間が早く終了する場合、その後は他方のデータモジュール（ＩＤ“０”）のパケットにタイムスタンプを付与する。
【００４４】
（３）コンテンツストリーム生成手段
コンテンツストリーム生成手段１０３は、ＡＶストリームとマルチメディアストリームとをタイムスタンプに基づいて結合し、コンテンツストリームを生成する。またコンテンツストリーム生成手段１０３は、生成したコンテンツストリームを、放送ネットワークや通信ネットワークなどを介してコンテンツ記録手段２００に配信する。
【００４５】
図４は、コンテンツストリームの生成方法を示す概念説明図である。コンテンツストリーム生成手段１０３は、タイムスタンプの値の小さい順にＡＶストリーム及びマルチメディアデータストリームのパケットを並べ、１つのコンテンツストリームを生成する。両者のタイムスタンプの値が同じ場合、いずれかのタイムスタンプの値を書き換える。図４では、ＡＶストリームのパケットのタイムスタンプ値を書き換える場合を示している。
【００４６】
図５は、タイムスタンプ値の変更方法の説明図である。例えばＡＶストリームのパケットのタイムスタンプを書き換える場合を考える。対象となるパケットＰnの直前のパケットＰa及びそのタイムスタンプ値Ｔaと、直後のパケットＰb及びそのタイムスタンプ値Ｔbとに基づいて、タイムスタンプ値Ｔｎを変更することができる。具体的には、ΔＴa＝Ｔn−Ｔa、ΔＴb＝Ｔb−Ｔnとすると、ΔＴaとΔＴbとの差が小さくなるように、タイムスタンプ値Ｔnを変更すると良い。図５（ａ）は、ΔＴａ＜ΔＴｂの場合に、タイムスタンプ値Ｔnを大きくすることを示す。図５（ｂ）は、ΔＴａ≧ΔＴｂの場合に、タイムスタンプ値Ｔnを小さくすることを示す。この方法は、マルチメディアデータストリームのパケットのタイムスタンプ値を変更する場合にも適用可能である。
【００４７】
ところで、ＡＶストリームのパケットＰnのタイムスタンプＴnの値を変更する場合、そのパケットＰnの時刻情報ＰＣＲの値も変更する。タイムスタンプＴnの値を増やす場合、ＰＣＲの増加量は、増やした後にＴbを上回らない数で任意としてよい。あるいは、ＰＣＲの値をタイムスタンプの最小変化分Ｔｉだけ増やしてもよい。またあるいは、ＰＣＲの値を、（パケットサイズ÷（ＡＶストリームのビットレート＋データストリームのビットレート））だけ増やしてもよい。タイムスタンプＴnの値を減少する場合も同様である。
【００４８】
［処理の流れ］
（１）メインルーチン
図６は、コンテンツ生成装置１００が行うメインルーチンの流れの一例を示すフローチャートである。
【００４９】
ステップＳ１０１：コンテンツ生成装置１００は、ＡＶストリーム及びマルチメディアデータファイル、この例ではデータモジュールの入力を受け付ける。また、データモジュールの送信時間やデータ送信ビットレートの入力を受け付ける。
【００５０】
ステップＳ１０２：コンテンツ生成装置１００は、ＡＶストリーム生成手段１０１により、タイムスタンプ付ＡＶストリームを生成する。
【００５１】
ステップＳ１０３：コンテンツ生成装置１００は、データストリーム生成手段１０２が実行するデータストリーム生成サブルーチンにより、タイムスタンプ付マルチメディアデータストリームを生成する。この処理については詳細を後述する。
【００５２】
ステップＳ１０４：コンテンツ生成装置１００は、コンテンツストリーム生成手段１０３が実行するコンテンツストリーム生成サブルーチンにより、タイムスタンプ付コンテンツストリームを生成する。この処理については詳細を後述する。
【００５３】
ステップＳ１０５：コンテンツ生成装置１００は、コンテンツストリーム生成手段１０３により生成したコンテンツストリームを出力する。
【００５４】
（２）データストリーム生成処理サブルーチン
図７は、前記メインルーチンにおいて起動されるデータストリーム生成サブルーチンの処理の流れの一例を示すフローチャートである。この処理は、データストリーム生成手段１０２により実行される。この処理により、各データモジュールを構成するパケットにそれぞれ異なるタイムスタンプが付与される。
【００５５】
ステップＳ２０１：データストリーム生成手段１０１は、下式に基づいてタイムスタンプの付与間隔Ｔｉを算出する。
【００５６】
Ｔｉ＝（パケットサイズ）÷（データ送信ビットレート）
ステップＳ２０２：データストリーム生成手段１０１は、データモジュールの送信順序を決定し、それに基づいて先頭パケットを決定する。先頭パケットとは、先頭データモジュールをパケット化した際の最初のパケットである。データモジュールの送信順序は任意でもよいし、所定のルールを予め決めておきそのルールに従って決定しても良い。例えばモジュールＩＤ及びバージョンＩＤの小さい方から昇順に送信順序を決定してもよい。また、全データモジュールが一通り送信される１周期の順番だけを決め、各データモジュールの２回目以降の送信を開始する２周期目からは１周期と同じ順番で送信するとしてもよい。
【００５７】
ステップＳ２０３：データストリーム生成手段１０１は、タイムスタンプＴｓの初期値Ｔｓ0を決定する。前述したように、タイムスタンプＴｓの初期値Ｔｓ0は、ＡＶストリームのタイムスタンプの初期値と各データモジュールの送信開始時間とにより決まる。
【００５８】
ステップＳ２０４，Ｓ２０５：データストリーム生成手段１０１は、タイムスタンプの初期値Ｔｓ0が示す時間が、先頭データモジュールの送信終了時間を過ぎているか否かを判定する（Ｓ２０４）。過ぎている場合はそのデータモジュールの送信が不可能であるので、そのことを示す画面や音声などを出力してユーザに通知し（Ｓ２０５）、処理を終了する。タイムスタンプの初期値Ｔｓ0が示す時間が、先頭データモジュールの送信終了時間を過ぎていなければ、処理を続行する。
【００５９】
ステップＳ２０６：データストリーム生成手段１０１は、先頭パケットのヘッダにタイムスタンプ値Ｔｓ0を記録する。
【００６０】
ステップＳ２０７：データストリーム生成手段１０１は、次パケットを決定する。次パケットは、パケット化されたデータモジュールのパケットから、データモジュール送信順序に基づいて選択される。
【００６１】
ステップＳ２０８：データストリーム生成手段１０１は、次パケット用タイムスタンプ値Ｔｓmを決定する。Ｔｓmは前回パケットに付与したタイムスタンプ値にＴｉを加算した値である。ただし、次パケットがあるデータモジュールの送信開始パケットにあたる場合、そのタイムスタンプ値Ｔｓmは、そのデータモジュールの送信開始時刻とＡＶストリームのタイムスタンプ初期値とデータモジュール送信順序とに基づいて決まる。
【００６２】
ステップＳ２０９，Ｓ２１０：データストリーム生成手段１０１は、次パケットが属するデータモジュールの送信終了時間をタイムスタンプ値Ｔｓmが超えていないか否かを判定する（Ｓ２０９）。超えている場合はデータモジュールの送信ができないので、その旨をユーザに通知すると共に処理を終了する（Ｓ２１０）。超えていない場合は処理を続行する。なお、タイムスタンプ値Ｔｓｍが次パケットの属するデータモジュールの送信終了時間を超えている場合でも、送信時間が終了していない別のデータモジュールがあるかどうかを判断し、ある場合には送信時間が終了していないデータモジュールの送信順序に基づいて次のパケットを決定してもよい。
【００６３】
ステップＳ２１１：データストリーム生成手段１０１は、次パケットのヘッダにタイムスタンプ値Ｔｓmを書き込む。
【００６４】
ステップＳ２１２：データストリーム生成手段１０１は、タイムスタンプ値Ｔｓmにタイムスタンプの間隔Ｔｉを足した値（Ｔｓｍ＋Ｔｉ）が全データモジュールの送信終了時間のうち最も遅いものを超えているかどうか判断する。超えていなければ、再度ステップＳ２０７に戻り上述の処理を実行する。Ｔｓｍ＋Ｔｉが送信終了時間の最も遅いものを超えている場合にはデータを送信できないので処理を終了する。
【００６５】
以上のように、少なくとも１つのデータモジュールをパケット化し、その全パケットについてデータモジュールの送信順にタイムスタンプを付与する。これらのパケットをタイムスタンプ順に結合し、タイムスタンプ付マルチメディアデータストリームを生成する。
【００６６】
（３）コンテンツストリーム生成処理
図８は、前記メインルーチンにおいて起動されるコンテンツストリーム生成サブルーチンの流れの一例を示すフローチャートである。この処理は、コンテンツストリーム生成手段１０３により実行される。この処理により、ＡＶストリームとマルチメディアストリームとが１つのコンテンツストリームに合成される。
【００６７】
ステップＳ３０１：コンテンツストリーム生成手段１０３は、タイムスタンプ付ＡＶストリーム及びタイムスタンプ付マルチメディアデータストリームの先頭パケットを、それぞれのストリームのカレントパケットとして選択する。
【００６８】
ステップＳ３０２：コンテンツストリーム生成手段１０３は、それぞれのストリームで選択されたカレントパケットのタイムスタンプ値を比較する。
【００６９】
ステップＳ３０３：コンテンツストリーム生成手段１０３は、比較したタイムスタンプ値が等しいかどうかを判定する。
【００７０】
ステップＳ３０４：コンテンツストリーム生成手段１０３は、比較したタイムスタンプ値が等しくない場合、タイムスタンプが小さい方のカレントパケットをタイムスタンプ付コンテンツストリームの次パケットとして決定する。比較したタイムスタンプ値が等しい場合、後述するステップＳ３１０に移行する。
【００７１】
ステップＳ３０５：コンテンツストリーム生成手段１０３は、次パケットに決定したパケットを、タイムスタンプ付コンテンツストリームの最後に結合する。
【００７２】
ステップＳ３０６：コンテンツストリーム生成手段１０３は、決定したパケットが属していたストリームに次のパケットがあるか否かを判定する。例えばタイムスタンプ付ＡＶストリームのカレントパケットがコンテンツストリームの次パケットに決定した場合、ＡＶストリームのカレントパケットの次にパケットがあるか否かを判定する。
【００７３】
ステップＳ３０７：コンテンツストリーム生成手段１０３は、コンテンツストリームの次パケットに決定したカレントパケットが属していたストリームについて、カレントパケットの次のパケットをカレントパケットに選択する。その後再びステップＳ３０２に戻り、前述の処理を繰り返す。これにより、ＡＶストリームのパケットとマルチメディアデータストリームのパケットとが、タイムスタンプ順に並べられる。
【００７４】
ステップＳ３０８：コンテンツストリーム生成手段１０３は、コンテンツストリームの次パケットに決定したカレントパケットが属していない方のストリームについて、残りの全パケットをタイムスタンプ付コンテンツストリームの最後に結合する。例えば、ＡＶストリームのカレントパケットをコンテンツストリームの最後に結合した後にその次のパケットがＡＶストリームにない場合、マルチメディアデータストリームの残り全てのパケットをコンテンツストリームの最後に結合する。その後前記メインルーチンに戻る。なお、このステップを行うことなくメインルーチンに戻っても良い。
【００７５】
ステップＳ３０９：コンテンツストリーム生成手段１０３は、タイムスタンプ付ＡＶストリーム及びタイムスタンプ付マルチメディアデータストリームのカレントパケットのタイムスタンプ値が同じである場合、２つのカレントパケットのいずれかのタイムスタンプを変更する。この例では、コンテンツストリームのパケット修正サブルーチンを実行することにより、タイムスタンプ付ＡＶストリームのカレントパケットのタイムスタンプ及び時刻情報を変更する。この処理の詳細については、図９を参照して後述する。
【００７６】
以上の処理により、タイムスタンプ付ＡＶストリーム及びタイムスタンプ付マルチメディアストリームのパケットがタイムスタンプ順に並べられたコンテンツストリームが生成される。
【００７７】
（４）コンテンツストリームのパケット修正処理
図９は、コンテンツストリーム生成サブルーチンで起動されるコンテンツストリームのパケット修正サブルーチンの処理の一例を示すフローチャートである。
【００７８】
ステップＳ４０１：コンテンツストリーム生成手段１０３は、タイムスタンプ付ＡＶストリームのカレントパケットＰｎの直前のパケットＰａ及び直後のパケットＰｂについて、それぞれのタイムスタンプの値Ｔａ、Ｔｂを取得する。
【００７９】
ステップＳ４０２：コンテンツストリーム生成手段１０３は、カレントパケットのタイムスタンプ値ＴｎとＴａとの差ΔＴａ及びＴｎとＴｂとの差ΔＴｂを比較する（ΔＴａ＝Ｔｎ−Ｔａ、ΔＴｂ＝Ｔｂ−Ｔｎ）。
【００８０】
ステップＳ４０３：コンテンツストリーム生成手段１０３は、ΔＴａ＞ΔＴｂかどうかを判定する。
【００８１】
ステップＳ４０４：コンテンツストリーム生成手段１０３は、ΔＴａ＞ΔＴｂの場合、タイムスタンプＴｎの値を増加させる。さらに、パケットに記述されているＰＣＲの値も同じだけ増加させる。
【００８２】
ステップＳ４０５：コンテンツストリーム生成手段１０３は、ΔＴａ≦ΔＴｂの場合、タイムスタンプＴｎの値を減少させる。さらに、パケットに記述されているＰＣＲの値も同じだけ減少させる。
【００８３】
［効果］
以上のようにして、タイムスタンプ付ＡＶストリーム及びタイムスタンプ付マルチメディアデータストリームのタイムスタンプが競合した場合でも、例えばＡＶストリームのカレントパケットのタイムスタンプと時刻情報とを変更することにより、タイムスタンプの競合を解消することができる。また、同様の方法でマルチメディアデータストリームのカレントパケットのタイムスタンプ値を変更することにより、競合を解消することができる。
【００８４】
＜第２実施形態＞
第２実施形態に係るコンテンツ生成装置１００は、データモジュールの送信順序の変更を受け付ける。このコンテンツ生成装置１００は、データストリーム生成手段１０２の機能にデータモジュールの送信順序の変更を受け付ける機能が付加されていることを除き、第１実施形態と同様の機能構成を有する。
【００８５】
図１０は、第２実施形態のデータストリーム生成手段１０２の付加機能を示す概念説明図である。データストリーム生成手段１０２は、送信時間が指定されたデータモジュールの送信順序を決定し、その順序で全てのデータモジュールを送信できない場合には送信順序の変更を受け付ける。例えば、図１０は、送信時間が全て重複するデータモジュール（ＩＤ＝０、１、２）の送信順序を変更する例を示す。最初に送信順序として“０”、“０”、“１”、“０”、“０”、“２”を決定したが、この送信順序ではデータモジュール（ＩＤ＝２）に対して送信時間内のタイムスタンプを付与できない。これでは、データモジュール（ＩＤ＝２）を送信時間内に送信することができなくなる。そこで、例えば新たな送信順序“０”、“１”、“２”、“０”、“１”、“２”を決定する。新たな送信順序により、全モジュールに対し、送信時間内のタイムスタンプを付与することができる。新たな送信順序は、データストリーム生成手段１０２が設定しても良いし、ユーザが設定しても良い。
【００８６】
図１１は、データモジュールの送信順序の変更を受け付ける画面例である。データストリーム生成手段１０２は、送信時間内のタイムスタンプをいずれかのデータモジュールに付与できないと判断した場合、この画面を出力する。ここで「設定を変更する」ボタンが押下されると、データストリーム生成手段１０２は新たな送信順序を生成する。もしくは、データモジュールの送信順序の変更受付画面を表示し（図示せず）、ユーザによる送信順序の設定を受け付けても良い。
【００８７】
図１２は、第２実施形態におけるデータストリーム生成サブルーチンの処理の流れの一例を示すフローチャートである。第２実施形態におけるコンテンツ生成処理装置１００は、前記第１実施形態のコンテンツ生成処理装置１００が行う処理において、データストリーム生成サブルーチンを以下の処理に置き換えた処理を実行する。
【００８８】
ステップＳ５０１：データストリーム生成手段１０２は、第１実施形態と同様にタイムスタンプの付与間隔Ｔｉを算出する。
【００８９】
ステップＳ５０２：データストリーム生成手段１０２は、第１実施形態と同様にデータモジュールの送信順序を決定する。
【００９０】
ステップＳ５０３：データストリーム生成手段１０２は、決定したデータモジュールの送信順序で各データモジュールの送信時間内にそのデータモジュールを最低一回送信可能かどうか判定する。
【００９１】
ステップＳ５０４：データストリーム生成手段１０２は、いずれかのデータモジュールに対しその送信時間内のタイムスタンプを付与できない場合、データモジュールの送信順序を変更するかどうかをユーザに問い合わせる。この問い合わせは、例えば前記図１１に例示する画面を表示することにより行う。送信順序に変更がある場合はステップＳ５０５に移行し、変更がない場合は後述するステップＳ５０６に移行する。
【００９２】
ステップＳ５０５：データストリーム生成手段１０２は、ユーザの指示に従い、または第１実施形態と同様にして、新たな送信順序を生成し、前記ステップＳ５０３の判断を再度繰り返す。
【００９３】
ステップＳ５０６：データストリーム生成手段１０２は、全てのデータモジュールに対しそれぞれの送信時間内のタイムスタンプを付与できる場合、もしくは送信順序の変更がない場合、データモジュールの送信順序を確定し、第１実施形態と同様に先頭パケットを決定する。
【００９４】
ステップＳ５０７〜Ｓ５１６：送信順序が決定した後の処理は、前記第１実施形態におけるステップＳ２０３〜Ｓ２１２における処理と同様である。すなわち、データストリーム生成手段１０２は、送信順序に従ってデータモジュールから生成されたパケットを並べ、順番にタイムスタンプを付与していく。
【００９５】
この処理により、ユーザは、タイムスタンプ付コンテンツストリームにデータモジュールすべてが含まれるかどうかを、コンテンツストリーム生成前に知ることができる。
【００９６】
＜第３実施形態＞
第３実施形態では、マルチメディアデータファイルとして、送信時刻が指定されているもの（以下、単にイベントメッセージという）が入力される場合を考える。コンテンツ生成装置１００の機能構成は、以下に説明する点を除き第１実施形態と同様である。
【００９７】
図１３は、入力されるイベントメッセージの送信時刻の一例を示す。送信時刻は、ＡＶストリームの時間軸上における時刻を特定する。この例では、ＡＶストリームの先頭を基準とする相対時刻を秒単位で指定することにより、イベントメッセージの送信時刻を特定している。例えば、イベントメッセージＩＤ“１”の送信時刻は、ＡＶストリームの開始から１００秒後の時点である。なお、イベントメッセージＩＤ及びイベントメッセージバージョンは、両者の組み合わせによりイベントメッセージを特定する。
【００９８】
図１４は、第３実施形態におけるデータストリーム生成処理サブルーチンの流れの一例を示すフローチャートである。第３実施形態におけるコンテンツ生成処理装置１００は、前記第１実施形態のコンテンツ生成処理装置１００が行う処理において、データストリーム生成サブルーチンを以下の処理に置き換えた処理を実行する。
【００９９】
ステップＳ６０１：データストリーム生成手段１０１は、第１実施形態と同様にしてタイムスタンプの付与間隔Ｔｉを算出する。
【０１００】
ステップＳ６０２：データストリーム生成手段１０１は、イベントメッセージの送信順序を決定し、それに基づいて先頭パケットを決定する。イベントメッセージの送信順序は、各イベントメッセージの送信時刻順である。先頭パケットとは、先頭イベントメッセージをパケット化した際の最初のパケットである。
【０１０１】
ステップＳ６０３：データストリーム生成手段１０２は、タイムスタンプの初期値（Ｔｓ0）を決定する。タイムスタンプ初期値Ｔｓ0は、ＡＶストリームのタイムスタンプの初期値と先頭イベントメッセージの送信時刻とにより決まる。
【０１０２】
ステップＳ６０４：データストリーム生成手段１０２は、先頭パケットのパケットヘッダにタイムスタンプ値Ｔｓ0を記録する。
【０１０３】
ステップＳ６０５：データストリーム生成手段１０２は、次のパケットを決定する。次のパケットは、イベントメッセージの送信順寿に基づいて、パケット化されたイベントメッセージのパケットの中から選択される。
【０１０４】
ステップＳ６０６：データストリーム生成手段１０２は、次パケット用タイムスタンプ値Ｔｓmを決定する。次パケットがその直前のパケットと同一のイベントメッセージから生成されている場合、この値Ｔｓmは前回パケットに付与したタイムスタンプ値にタイムスタンプの付与間隔Ｔｉを加算した値である（Ｔｓm＝（前パケットのタイムスタンプ値）＋Ｔｉ）。次パケットとその直前パケットとが異なるイベントメッセージから生成されている場合、次パケット用タイムスタンプ値Ｔｓは、そのパケットの元となっているイベントメッセージの送信時刻とＡＶストリームのタイムスタンプの初期値とにより決まる。
【０１０５】
ステップＳ６０７：データストリーム生成手段１０２は、次パケットのパケットヘッダにタイムスタンプ値Ｔｓを記録する。
【０１０６】
ステップＳ６０８：データストリーム生成手段１０２は、次のパケットがあるかどうかを判定する。次のパケットがある場合、前記ステップＳ６０５に戻り、次パケットにタイムスタンプを付与する処理を繰り返す。次のパケットがない場合、処理を終了し、メインルーチンに戻る。
【０１０７】
以上のように、全イベントメッセージについてタイムスタンプを付与し、イベントメッセージの送信順に結合することにより、マルチメディアデータストリームを生成することができる。
【０１０８】
＜第4実施形態＞
前記第１〜第２実施形態では、全てのデータモジュールのデータ送信ビットレートが同一である場合を例に取り説明している。しかし、データモジュール毎にデータ送信ビットレートが異なる場合もあり得る。その場合、図７に示すデータストリーム生成サブルーチンにおいて、データモジュール送信順序の決定及び先頭パケットの決定（Ｓ２０２）は不要である。その代わり、データストリーム生成手段１０１は、ステップＳ２０２を省いたデータストリーム生成処理を、各データモジュール毎に独立に行う。
【０１０９】
図１５は、第４実施形態のコンテンツ生成装置が行うメインルーチンの処理の流れの一例を示すフローチャートである。この図では、３つのデータモジュールのデータ送信ビットレートが異なる場合を例に取っている。コンテンツ生成装置１００は、ＡＶストリーム及びデータモジュールの入力を受け付けると（Ｓ７０１）、第１実施形態と同様にタイムスタンプ付ＡＶストリームを生成する（Ｓ７０２）。データストリーム生成手段１０２は、各データモジュールからタイムスタンプ付ストリームをそれぞれ生成する（Ｓ７０３〜Ｓ７０４）。さらにデータストリーム生成手段１０２は、これらのストリームをタイムスタンプに基づいて結合し、タイムスタンプ付結合データストリームを生成する（Ｓ７０６）。このときタイムスタンプの競合がある場合、第１実施形態で述べたように競合するタイムスタンプ値のいずれかを変更する。結合データストリームはコンテンツストリーム生成手段１０３に出力され、第１実施形態で述べたようにＡＶストリームと結合されて１つのコンテンツストリームが生成・出力される（Ｓ７０７，Ｓ７０８）。
【０１１０】
以上の処理により、複数のデータモジュールのデータ送信ビットレートが異なっていても、ＡＶストリームとそれらのデータモジュールとの同期出力が可能なコンテンツストリームを生成することができる。
【０１１１】
＜第５実施形態＞
［全体構成］
図１６は、第５実施形態に係るコンテンツ生成装置を含む、デジタル放送システムの構成例である。このデジタル放送システムは、デジタルＴＶ放送を行う放送局１０００と、視聴者の宅内に設置された機器とを含んでいる。視聴者の宅内には、コンテンツ生成装置１００、コンテンツ記録手段２００、コンテンツ再生手段３００及びコンテンツ受信手段４００が設置されている。コンテンツ生成装置１００、コンテンツ記録手段２００、コンテンツ再生手段３００及びコンテンツ受信手段４００は、別々の機器であってもよいし、一部または全てが同一のコンピュータシステム上に設けられていてもよい。
【０１１２】
このデジタル放送システムは、次のように動作する。放送局１０００は、タイムスタンプ付きＡＶストリームと、データモジュールなどのマルチメディアファイルと、を送信する。放送局１０００から送信されたデータは、コンテンツ受信手段４００により受信される。コンテンツ受信手段４００が受信したデータは、コンテンツ記録手段２００に記録され、記録されたデータがコンテンツ生成装置１００に入力される。コンテンツ生成装置１００は、前記第１実施形態で述べたようにコンテンツストリームを生成する。生成されたコンテンツストリームは、コンテンツ再生手段３００により再生出力される。
【０１１３】
コンテンツ受信手段４００は、データモジュールなどのマルチメディアデータを、必ずしもＡＶストリームと同じネットワークで受信しなくてもよい。例えば、インターネット上のサーバ２０００からマルチメディアデータを受信することも考えられる。例えば、デジタル放送ネットワーク上でデータモジュールを受信できなかった場合、コンテンツ受信手段４００は、インターネット上のサーバ２０００にマルチメディアデータの送信を要求し、これを取得してもよい。
【０１１４】
なお、この例では、放送局１０００は、タイムスタンプ付きＡＶストリームを送信するが、タイムスタンプのついていないＡＶストリームを送信してもよい。以下では、タイムスタンプ付きＡＶストリームとタイムスタンプの付いていないＡＶストリームとを特に区別しない場合、まとめてＡＶストリームと呼ぶ。
【０１１５】
［コンテンツ生成装置］
（１）機能
基本的に、コンテンツ生成装置１００の機能は、第１〜３実施形態と同様である。つまり、コンテンツ生成装置１００は、ＡＶストリームにタイムスタンプをつけ、マルチメディアデータストリームを生成し、これらに基づいてコンテンツストリームを生成する。
【０１１６】
本実施形態のように、コンテンツ受信手段４００が受信するＡＶストリームには必ずタイムスタンプが含まれる場合、コンテンツ生成装置１００からＡＶストリーム生成手段１０１を省略することもできる。逆に、タイムスタンプが付いていないＡＶストリームを受信する場合、コンテンツ生成装置１００は、ＡＶストリームの各パケットにタイムスタンプを付与する。両方のタイプのＡＶストリームを受信するシステムでは、受信したＡＶストリームにタイムスタンプが付いているか否かを判断する機能が、ＡＶストリーム生成手段１０１にあるとよい。
【０１１７】
マルチメディアデータストリーム及びコンテンツストリームの生成方法は、前記第１実施形態と同様である。
【０１１８】
（２）コンテンツストリームの生成タイミング
ＡＶストリーム、マルチメディアデータストリーム及びコンテンツストリームを生成するタイミングは、様々な態様が考えられる。以下にその一例を列記する。
【０１１９】
（２−１）生成タイミング１
コンテンツ再生手段３００がデータを再生するタイミングで、ＡＶストリーム、マルチメディアデータストリーム及びコンテンツストリームを生成する。まず、コンテンツ受信手段４００が受信したデータを、そのままコンテンツ記録手段２００により記録しておく。その後、例えば、コンテンツ再生手段３００がユーザから再生の指示を受け付けると、コンテンツ生成装置１００は、ＡＶストリームとデータモジュールとをコンテンツ記録手段２００から読み出し、マルチメディアデータストリームを生成し、コンテンツストリームの合成を行う。さらにコンテンツ記録手段２００は、生成したコンテンツストリームを記録してもよい。再生の指示から再生の実行までの間、コンテンツストリームの合成のための処理時間がかかる場合があるので、ユーザに対して何らかのメッセージや待ち時間に関する表示を出力するようにしてもよい。
【０１２０】
この方法は、データの受信とコンテンツストリームの生成とを別々のタイミングで行うので、各手段２００，３００，４００及びコンテンツ生成装置１００のどこかに処理の負荷が集中するのを避けることができる。なかでも、各手段２００，３００，４００及びコンテンツ生成装置１００が同一のコンピュータシステム上に設けられている場合には、ＣＰＵの負荷が少なくて済むという利点がある。
【０１２１】
（２−２）生成タイミング２
コンテンツ生成装置１００は、ＡＶストリーム及びデータモジュールを受信すると、すぐにコンテンツストリームの生成を行うこともできる。つまり、コンテンツ生成装置１００は、再生の指示を待つことなく、受信が完了したＡＶストリーム及びデータモジュールから、コンテンツストリームを合成することもできる。この方法では、ユーザがコンテンツの再生を指示してから再生を開始するまでのユーザの待ち時間が短くなる利点がある。
【０１２２】
さらに、ＡＶストリーム及びデータモジュールの受信のタイミングにより、以下に述べる２つの生成方法がある。１つは、ＡＶストリーム及びデータモジュールを別々のタイミングで、すなわち非同期で受信する場合の方法である。この場合、タイムスタンプのないＡＶストリームの受信が完了したらタイムスタンプ付きＡＶストリームの生成を行い、データモジュールの受信を完了したらマルチメディアデータストリームの生成を行う。ここで、ＡＶストリーム及びデータモジュールの受信の完了とは、ＡＶストリームの最初から最後まで及び１カルーセル分のデータモジュールを受信した場合とするのがよい。データモジュールを１カルーセル分受信すればデータモジュールの受信が完了したと見なすことで、最小限の時間とデータ量でマルチメディアデータストリームを生成できる。タイムスタンプ付きＡＶストリーム及びマルチメディアデータストリームを生成した後は、前述と同様にコンテンツストリームを合成する。この方法を行う場合、コンテンツ生成装置１００は、ＡＶストリーム及びマルチメディアデータストリームの両方の生成が終了したか否かを監視する機能を有しているとよい。
【０１２３】
もう１つの方法は、ＡＶストリーム及びデータモジュールを同時に、つまり同期して受信する場合である。この場合、タイムスタンプのないＡＶストリームの受信を完了したらタイムスタンプ付きＡＶストリームの生成を行い、データモジュールの受信を完了したらマルチメディアデータストリームの生成を行うとよい。この方法では、ＡＶストリームの生成開始とマルチメディアデータストリームの生成開始とがずれる場合がある。例えば、ＡＶストリームの受信中に、マルチメディアデータストリームの生成を行うことがある。この方法では、ＡＶストリームの受信完了まで待つことなく、マルチメディアデータストリームの生成を開始するので、コンテンツストリームの生成完了までの時間を短縮できる。この方法を行う場合も、コンテンツ生成装置１００は、ＡＶストリーム及びマルチメディアデータストリームの両方の生成が終了したか否かを監視する機能を有しているとよい。
【０１２４】
（２−３）生成タイミング３
コンテンツ生成装置１００は、コンテンツ受信手段４００によるデータの受信が完了し、コンテンツ記録手段２００によるデータの記録が完了した後、いずれの手段２００，３００，４００も動作していないときに、コンテンツストリームの合成を行うこともできる。この方法を実行する場合、コンテンツ生成装置１００には、各手段２００，３００，４００の動作状況を判断する機能があることが好ましい。
【０１２５】
この方法は、データの受信とコンテンツストリームの生成とデータの再生とを別々のタイミングで行うので、各手段２００，３００，４００及びコンテンツ生成装置１００のどこかに処理の負荷が集中するのを避けることができ、ＣＰＵを効率的に使用することができる。なかでも、各手段２００，３００，４００及びコンテンツ生成装置１００が同一のコンピュータシステム上に設けられている場合には、ＣＰＵの負荷を押さえつつＣＰＵを効率的に利用できる利点がある。
【０１２６】
（３）処理の流れ
図１７は、本実施形態のコンテンツ生成装置１００が行うメインルーチンの流れの一例を示すフローチャートである。この例では、コンテンツ受信手段４００がタイムスタンプ付きＡＶストリームを受信する場合を説明する。また、前述の生成タイミング２におけるコンテンツストリームの生成を例にとり、説明する。すなわち、コンテンツ記録手段２００にタイムスタンプ付きＡＶストリーム及びデータモジュールが記録され、受信や再生が行われていない状態における生成を説明する。
【０１２７】
ステップＳ８０１：コンテンツ生成装置１００は、ＡＶストリーム及びマルチメディアデータファイル、この例ではデータモジュールを、コンテンツ記録手段２００から読み出す。また、コンテンツ生成装置１００は、データモジュールの送信時間やデータ送信ビットレートを、コンテンツ記録手段２００から読み出す。データモジュールの送信時間やデータ送信ビットレートは、データモジュールとともにコンテンツ記録手段２００に記録されている。
【０１２８】
ステップＳ８０２：コンテンツ生成装置１００は、前述したデータストリーム生成サブルーチンにより、タイムスタンプ付マルチメディアデータストリームを生成する。
【０１２９】
ステップＳ８０３：コンテンツ生成装置１００は、前述したコンテンツストリーム生成サブルーチンにより、タイムスタンプ付コンテンツストリームを生成する。
【０１３０】
ステップＳ８０４：コンテンツ生成装置１００は、コンテンツストリーム生成手段１０３により生成したコンテンツストリームを、コンテンツ記録手段２００に渡し、ハードディスクなどに書き込んでもらう。
【０１３１】
本実施形態のコンテンツ生成装置１００を、コンテンツ受信装置やコンテンツ記録装置、コンテンツ再生装置などとともにユーザ側に設けておくことにより、ユーザ側でコンテンツストリームを合成することができる。
【０１３２】
＜その他の実施形態＞
（Ａ）マルチメディアデータファイルとして、データモジュールとイベントメッセージとを入力する場合、データモジュールのパケットとイベントメッセージのパケットとでタイムスタンプが競合することもある。データモジュールのストリームとイベントメッセージのストリームとに別々の送信識別子を割り当てることを前提にコンテンツストリームを生成するのであれば、前記第１実施形態で述べた方法によりいずれかのタイムスタンプ値を変更すればよい。
【０１３３】
逆に、データモジュールのストリームとイベントメッセージのストリームとに同じ送信識別子を割り当てることを前提にコンテンツストリームを生成することがある。具体的には、デジタルテレビ放送において、データモジュールのストリームとイベントメッセージのストリームとに同一ＰＩＤを付与する場合である。このとき、イベントメッセージのパケットの結合位置が、データモジュールのストリームの１セクション中になってしまう場合、次の２つの解決方法が考えられる。１つは、このセクションを構成する全パケットのタイムスタンプ値を、イベントメッセージのタイムスタンプより大きい値にずらす方法である。もう１つは、イベントメッセージのタイムスタンプ値を、このセクションを構成する全パケットの後ろにずらす方法である。前者の方法は、イベントメッセージを所望のタイミングからずらすことなく再生できるという利点がある。また、データモジュールとイベントメッセージとの結合をデジタルテレビ放送の規格の範囲で行うことができる利点がある。
【０１３４】
ここで、セクションとは、データモジュールを送信する単位であり、複数のパケットで構成される。デジタルテレビ放送の場合、１セクションは４０９６バイトである。
【０１３５】
（Ｂ）コンテンツ生成装置は、放送局及びユーザの宅内の両方に設けてもよい。両方にコンテンツ生成装置を設けることで、例えば次のような処理が可能となる。放送局からはコンテンツストリームを放送する。それを受信したユーザ側で、コンテンツストリームをタイムスタンプ付きＡＶストリームとマルチメディアデータストリームとに分解し、コンテンツ記録手段２００に記録しておく。ユーザ側は、例えば再生時など所定のタイミングで、タイムスタンプ付きＡＶストリームとマルチメディアデータストリームとを合成し、出力する。
【０１３６】
（Ｃ）上記実施形態は、必要に応じ、それぞれ組み合わせて用いることができる。
【０１３７】
（Ｄ）前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０１３８】
前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【産業上の利用可能性】
【０１３９】
記録を前提とするコンテンツ生成において、ＡＶストリームとマルチメディアデータとの同期を可能とするコンテンツ生成装置に利用可能であり、特に、タイムスタンプ付ストリームを生成する装置に好適である。
【図面の簡単な説明】
【０１４０】
【図１】第１実施形態に係るコンテンツ生成装置の機能構成図
【図２】入力されるデータモジュールの送信時間の一例を示す説明図
【図３】生成されるタイムスタンプ付マルチメディアデータストリームの概念説明図
【図４】コンテンツストリームの生成方法を示す概念説明図
【図５】（ａ）タイムスタンプ値の変更方法の説明図（ΔＴａ＜ΔＴｂ）  （ｂ）タイムスタンプ値の変更方法の説明図（ΔＴａ≧ΔＴｂ）
【図６】コンテンツ生成装置が行うメインルーチンの流れの一例を示すフローチャート
【図７】図６のメインルーチンにおいて起動されるデータストリーム生成サブルーチンの処理の流れの一例を示すフローチャート
【図８】図６のメインルーチンにおいて起動されるコンテンツストリーム生成サブルーチンの流れの一例を示すフローチャート
【図９】図８のコンテンツストリーム生成サブルーチンで起動されるコンテンツストリームのパケット修正サブルーチンの処理の一例を示すフローチャート
【図１０】第２実施形態のデータストリーム生成手段１０２の付加機能を示す概念説明図
【図１１】データモジュールの送信順序の変更を受け付ける画面例
【図１２】第２実施形態におけるデータストリーム生成サブルーチンの処理の流れの一例を示すフローチャート
【図１３】入力されるイベントメッセージの送信時刻の一例を示す説明図
【図１４】第３実施形態におけるデータストリーム生成サブルーチンの処理の流れの一例を示すフローチャート
【図１５】第４実施形態におけるメインルーチンの流れの一例を示すフローチャート
【図１６】第５実施形態に係るコンテンツ生成装置を含むデジタル放送システムの構成図
【図１７】図１６に示すコンテンツ生成装置が行うメインルーチンの流れの一例を示すフローチャート
【図１】
0004767165.tif 000002
【図２】
0004767165.tif 000003
【図３】
0004767165.tif 000004
【図４】
0004767165.tif 000005
【図５】
0004767165.tif 000006
【図６】
0004767165.tif 000007
【図７】
0004767165.tif 000008
【図８】
0004767165.tif 000009
【図９】
0004767165.tif 000010
【図１０】
0004767165.tif 000011
【図１１】
0004767165.tif 000012
【図１２】
0004767165.tif 000013
【図１３】
0004767165.tif 000014
【図１４】
0004767165.tif 000015
【図１５】
0004767165.tif 000016
【図１６】
0004767165.tif 000017
【図１７】
0004767165.tif 000018