(57)【特許請求の範囲】
【請求項１】
１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置であって、
前記複数のパケットは、再生対象パケットと、前記番組に対応して生成され、対応の前記番組の前記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、
前記複数のパケットを１または複数のソースブロックとしてまとめるためのソースブロック作成部と、
前記ストリームの受信側の装置において前記ソースブロックを復元するための復元用パケットを、前記ソースブロックに基づいて作成するための復元用パケット作成部とを備え、
前記ソースブロック作成部は、前記複数のパケットから前記制御パケットを検索し、検索した結果に基づいて、前記ソースブロックの終端パケットを決定し、
前記ソースブロック作成部は、送信順に並べられた前記再生対象パケットおよび前記制御パケットについて、前記制御パケットから数えてｎ（ｎはゼロ以上の整数）個後のパケットである前記終端パケットまでを前記ソースブロックに含め、前記終端パケットより後のパケットを次の前記ソースブロックに含める、ストリーム送信装置。
【請求項２】
前記ソースブロック作成部は、送信順に並べられた前記再生対象パケットおよび前記制御パケットについて、前記制御パケットまでを前記ソースブロックに含め、前記制御パケットより後のパケットを次の前記ソースブロックに含める、請求項１に記載のストリーム送信装置。
【請求項３】
前記複数のパケットは、複数種類の制御パケットを含み、
前記ソースブロック作成部は、送信順に並べられた前記複数のパケットから前記制御パケットを検索し、検索した前記制御パケットから数えて所定個数以内に他の種類の前記制御パケットが存在する場合には、前記他の種類の制御パケットを前記終端パケットとし、検索した前記制御パケットから数えて前記所定個数以内に他の種類の前記制御パケットが存在しない場合には、検索した前記制御パケットを前記終端パケットとする、請求項１または請求項２に記載のストリーム送信装置。
【請求項４】
前記複数種類の制御パケットは、前記番組に対応して生成され、対応の前記番組の前記再生対象パケットの識別子を含む番組マップパケット、および１または複数の前記番組マップパケットの識別子を含む番組関連パケットである、請求項３に記載のストリーム送信装置。
【請求項５】
１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置におけるストリーム送信方法であって、
前記複数のパケットは、再生対象パケットと、前記番組に対応して生成され、対応の前記番組の前記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、
前記複数のパケットを１または複数のソースブロックとしてまとめるステップと、
前記ストリームの受信側の装置において前記ソースブロックを復元するための復元用パケットを、前記ソースブロックに基づいて作成するステップとを含み、
前記ソースブロックとしてまとめるステップにおいては、前記複数のパケットから前記制御パケットを検索し、検索した結果に基づいて、前記ソースブロックの終端パケットを決定し、
前記ソースブロックとしてまとめるステップにおいては、送信順に並べられた前記再生対象パケットおよび前記制御パケットについて、前記制御パケットから数えてｎ（ｎはゼロ以上の整数）個後のパケットである前記終端パケットまでを前記ソースブロックに含め、前記終端パケットより後のパケットを次の前記ソースブロックに含める、ストリーム送信方法。
【請求項６】
１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置において用いられるストリーム送信プログラムであって、
前記複数のパケットは、再生対象パケットと、前記番組に対応して生成され、対応の前記番組の前記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、
コンピュータに、
前記複数のパケットを１または複数のソースブロックとしてまとめるステップと、
前記ストリームの受信側の装置において前記ソースブロックを復元するための復元用パケットを、前記ソースブロックに基づいて作成するステップとを実行させるためのプログラムであり、
前記ソースブロックとしてまとめるステップにおいては、前記複数のパケットから前記制御パケットを検索し、検索した結果に基づいて、前記ソースブロックの終端パケットを決定し、
前記ソースブロックとしてまとめるステップにおいては、送信順に並べられた前記再生対象パケットおよび前記制御パケットについて、前記制御パケットから数えてｎ（ｎはゼロ以上の整数）個後のパケットである前記終端パケットまでを前記ソースブロックに含め、前記終端パケットより後のパケットを次の前記ソースブロックに含める、ストリーム送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム送信装置、ストリーム送信方法およびストリーム送信プログラムに関し、特に、番組の情報を含むストリームを送信するためのストリーム送信装置、ストリーム送信方法およびストリーム送信プログラムに関する。
【背景技術】
【０００２】
ＩＰＴＶ（Internet Protocol Television）規定（非特許文献１）には、ＩＰ（Internet Protocol）ネットワークを用いたＶＯＤ（Video On Demand）サービスによる番組の配信時における、パケットロスに対処するためのＦＥＣ（Forward Error Correction）について記載されている。すなわち、番組の情報を含むメディアパケットおよびＦＥＣパケット合わせてＴ個の中で、あるメディアパケットＸｉを復元する際に、まず、Ｔ個の中のメディアパケット毎にビット列(bit string)を生成する。次に、Ｔ個の中のＦＥＣパケットに対してビット列を生成する。これらのビット列の間で排他的論理和操作を実行し、リカバリビット列を生成する。そして、生成したリカバリビット列に基づいて、メディアパケットＸｉのヘッダおよびペイロードを復元する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＰＴＶ規定  ＶＯＤ仕様、ＩＰＴＶＦＪ  ＳＴＤ−０００２  １．１版、ＩＰＴＶフォーラム、２０１０年７月３０日
【発明の概要】
【発明が解決しようとする課題】
【０００４】
受信側の装置は、たとえば上記Ｔ個のメディアパケットおよびＦＥＣパケットの受信が完了した時点で、メディアパケットＸｉのパケットロスを検出する。また、非特許文献１に記載の技術では、受信側の装置は、ＦＥＣによりメディアパケットを復元する際に、上記Ｔ個のメディアパケットおよび上記ＦＥＣパケットを用いる。
【０００５】
従って、受信側の装置は、パケットロスの発生の有無に関わらず、上記Ｔ個のメディアパケットおよび上記ＦＥＣパケット全ての受信が少なくとも完了する時点まで上記パケットを蓄積しておく必要がある。このため、受信側の装置は、上記パケット全ての受信が完了する時点より早いタイミングで受信したパケットでも、少なくとも上記時点まで当該パケットを次の処理へ移すことができない。
【０００６】
すなわち、受信したパケットを次の処理へ移すまでの待機時間が発生してしまう。このため、受信側の装置において、受信したパケットを再生させるための動作が遅れてしまう場合がある。
【０００７】
この発明は、上述の課題を解決するためになされたもので、その目的は、番組の情報を含むストリームを受信し、ある範囲の複数パケットの受信が完了するまでパケットの復元処理を実行できない受信側の装置において、番組の再生までの遅延時間の増大を防ぐことが可能なストリーム送信装置、ストリーム送信方法およびストリーム送信プログラムを提供することである。
【課題を解決するための手段】
【０００８】
（１）上記課題を解決するために、この発明のある局面に係わるストリーム送信装置は、１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置であって、上記複数のパケットは、再生対象パケットと、上記番組に対応して生成され、対応の上記番組の上記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、上記複数のパケットを１または複数のソースブロックとしてまとめるためのソースブロック作成部と、上記ストリームの受信側の装置において上記ソースブロックを復元するための復元用パケットを、上記ソースブロックに基づいて作成するための復元用パケット作成部とを備え、上記ソースブロック作成部は、上記複数のパケットから上記制御パケットを検索し、検索した結果に基づいて、上記ソースブロックの終端パケットを決定する。
【０００９】
このような構成により、複数のパケットにおける制御パケットの位置に応じた適切な位置の終端パケットを決定することができる。
【００１０】
たとえば、ある制御パケットに対応する再生対象パケットより早いタイミングで当該制御パケットを送信できるようにソースブロックを作成することにより、受信側の装置は、先んじて受信した制御パケットに基づく番組の情報を再生させるための準備、および再生対象パケットの復元処理を並行して行うことができる。
【００１１】
これにより、ソースブロックに含まれるパケットの受信が完了するまでパケットの復元処理を実行できない受信側の装置において、パケットを受信してから、受信したパケットに含まれる番組の情報を再生するまでの遅延時間の増大を防ぐことができる。
【００１２】
（２）好ましくは、上記ソースブロック作成部は、送信順に並べられた上記再生対象パケットおよび上記制御パケットについて、上記制御パケットから数えてｎ（ｎはゼロ以上の整数）個後のパケットである上記終端パケットまでを上記ソースブロックに含め、上記終端パケットより後のパケットを次の上記ソースブロックに含める。
【００１３】
このような構成により、再生対象パケットを含むソースブロックを送信する前に、対応の制御パケットを含む別のソースブロックを送信することができる。
【００１４】
これにより、受信側の装置は、再生対象パケットに先んじて制御パケットを受信することができる。
【００１５】
（３）より好ましくは、上記ソースブロック作成部は、送信順に並べられた上記再生対象パケットおよび上記制御パケットについて、上記制御パケットまでを上記ソースブロックに含め、上記制御パケットより後のパケットを次の上記ソースブロックに含める。
【００１６】
このような構成により、複数のパケットを、制御パケットの直後の位置において区切られた、２つの連続したソースブロックにまとめることができる。
【００１７】
これにより、受信側の装置は、制御パケットを含むソースブロックから当該制御パケットを取得する場合に、当該ソースブロックの最後尾における１または複数のパケットを取得するだけで、制御パケットを容易に取得することができる。
【００１８】
（４）好ましくは、上記複数のパケットは、複数種類の制御パケットを含み、上記ソースブロック作成部は、送信順に並べられた上記複数のパケットから上記制御パケットを検索し、検索した上記制御パケットから数えて所定個数以内に他の種類の上記制御パケットが存在する場合には、上記他の種類の制御パケットを上記終端パケットとし、検索した上記制御パケットから数えて上記所定個数以内に他の種類の上記制御パケットが存在しない場合には、検索した上記制御パケットを上記終端パケットとする。
【００１９】
このような構成により、複数種類の制御パケットが連続している、または互いに近い位置に存在している場合において、上記複数種類の制御パケットを１つのソースブロックにまとめることができる。
【００２０】
これにより、ストリーム送信装置および受信側の装置は、一方の種類の制御パケットを含むソースブロック、およびもう一方の種類の制御パケットを含むソースブロックの、２つのソースブロックの処理を、１つのソースブロックの処理にまとめることができるので、処理を軽減することができる。
【００２１】
（５）より好ましくは、上記複数種類の制御パケットは、上記番組に対応して生成され、対応の上記番組の上記再生対象パケットの識別子を含む番組マップパケット、および１または複数の上記番組マップパケットの識別子を含む番組関連パケットである。
【００２２】
このように、番組関連パケットに基づいて番組マップパケットを特定し、特定した番組マップパケットに基づいて上記番組の情報を再生させるための準備をおこなうことができる。
【００２３】
これにより、受信側の装置は、上記番組マップパケットに基づく上記番組の再生の準備、および再生対象パケットの復元処理を並行して行うことができる。
【００２４】
（６）また、この発明のある局面に係わるストリーム送信方法は、１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置におけるストリーム送信方法であって、上記複数のパケットは、再生対象パケットと、上記番組に対応して生成され、対応の上記番組の上記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、上記複数のパケットを１または複数のソースブロックとしてまとめるステップと、上記ストリームの受信側の装置において上記ソースブロックを復元するための復元用パケットを、上記ソースブロックに基づいて作成するステップとを含み、上記ソースブロックとしてまとめるステップにおいては、上記複数のパケットから上記制御パケットを検索し、検索した結果に基づいて、上記ソースブロックの終端パケットを決定する。
【００２５】
このような構成により、複数のパケットにおける制御パケットの位置に応じた適切な位置の終端パケットを決定することができる。
【００２６】
たとえば、ある制御パケットに対応する再生対象パケットより早いタイミングで当該制御パケットを送信できるようにソースブロックを作成することにより、受信側の装置は、先んじて受信した制御パケットに基づく番組の情報を再生させるための準備、および再生対象パケットの復元処理を並行して行うことができる。
【００２７】
これにより、ソースブロックに含まれるパケットの受信が完了するまでパケットの復元処理を実行できない受信側の装置において、パケットを受信してから、受信したパケットに含まれる番組の情報を再生するまでの遅延時間の増大を防ぐことができる。
【００２８】
（７）また、この発明のある局面に係わるストリーム送信プログラムは、１または複数の番組の情報を複数のパケットに分割したストリームを送信するためのストリーム送信装置において用いられるストリーム送信プログラムであって、上記複数のパケットは、再生対象パケットと、上記番組に対応して生成され、対応の上記番組の上記再生対象パケットを再生するための制御情報を含む制御パケットとを含み、コンピュータに、上記複数のパケットを１または複数のソースブロックとしてまとめるステップと、上記ストリームの受信側の装置において上記ソースブロックを復元するための復元用パケットを、上記ソースブロックに基づいて作成するステップとを実行させるためのプログラムであり、上記ソースブロックとしてまとめるステップにおいては、上記複数のパケットから上記制御パケットを検索し、検索した結果に基づいて、上記ソースブロックの終端パケットを決定する。
【００２９】
このような構成により、複数のパケットにおける制御パケットの位置に応じた適切な位置の終端パケットを決定することができる。
【００３０】
たとえば、ある制御パケットに対応する再生対象パケットより早いタイミングで当該制御パケットを送信できるようにソースブロックを作成することにより、受信側の装置は、先んじて受信した制御パケットに基づく番組の情報を再生させるための準備、および再生対象パケットの復元処理を並行して行うことができる。
【００３１】
これにより、ソースブロックに含まれるパケットの受信が完了するまでパケットの復元処理を実行できない受信側の装置において、パケットを受信してから、受信したパケットに含まれる番組の情報を再生するまでの遅延時間の増大を防ぐことができる。
【発明の効果】
【００３２】
本発明によれば、番組の情報を含むストリームを受信し、ある範囲の複数パケットの受信が完了するまでパケットの復元処理を実行できない受信側の装置において、番組の再生までの遅延時間の増大を防ぐことが可能なストリーム送信装置、ストリーム送信方法およびストリーム送信プログラムを提供することである。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態に係る番組配信システムの構成を示す図である。
【図２】本発明の実施の形態に係る番組配信システムにおいて送信されるパケットの一例を示す図である。
【図３】本発明の実施の形態に係るパケットの欠損補償の一例を示す図である。
【図４】ＴＴＳパケットを含むＲＴＰパケットにより構成されるソースブロックおよびＦＥＣ符号化ブロックの一例を示す図である。
【図５】本発明の実施の形態に係るＴＴＳパケットを含むＲＴＰパケットにより構成されるソースブロックおよびＦＥＣ符号化ブロックの一例を示す図である。
【図６】本発明の実施の形態に係る配信装置の構成を示す図である。
【図７】本発明の実施の形態に係るＲＴＰパケットおよびソースブロックの対応関係の一例を示す図である。
【図８】本発明の実施の形態に係る配信装置におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理を行う際の動作手順の一例を定めたフローチャートである。
【図９】本発明の実施の形態に係る配信装置におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理を行う際の動作手順の他の一例を定めたフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００３５】
［番組配信システムの概要］
図１は、本発明の実施の形態に係る番組配信システムの構成を示す図である。
【００３６】
図２は、本発明の実施の形態に係る番組配信システムにおいて送信されるパケットの一例を示す図である。
【００３７】
図１を参照して、番組配信システム１０は、配信装置（ストリーム送信装置）２０と、番組受信装置４０とを備える。番組受信装置４０は、ネットワーク１１を介して配信装置２０と接続されている。
【００３８】
配信装置２０は、１または複数の番組の情報を複数のパケットに分割したストリームを送信する。配信装置２０は、たとえばＩＰＴＶに対応するサーバであり、番組受信装置４０を使用するユーザによりある番組の情報を要求されると、当該番組の情報を含むパケットを配信するＶＯＤサービスを行う。
【００３９】
配信装置２０は、たとえばＩＰを利用することにより、当該番組の情報を含むストリームを、インターネット等のネットワーク１１経由で番組受信装置４０へ配信する。
【００４０】
番組受信装置４０は、ユーザが要求した番組の情報を含むストリームを、たとえばＩＰによりネットワーク１１経由で配信装置２０から受信し、受信した上記ストリームを処理することにより、当該番組の情報を取得する。そして、番組受信装置４０は、取得した番組の情報を表示装置１２において再生する。なお、番組受信装置４０および表示装置１２は、一体であってもよい。
【００４１】
配信装置２０が配信する番組の情報は、ＭＰＥＧ２（Moving Picture Experts Group 2）またはＨ．２６４／ＡＶＣ（Advanced Video Coding）に従った方式により符号化される。符号化された番組の情報は、ＭＰＥＧ２−ＴＳ（Transport Stream）形式における、たとえば図２の（Ａ）に示す複数のＴＳパケットに格納される。
【００４２】
ＴＳパケットは、１８８バイトの大きさを持ち、ＴＳヘッダおよびＴＳペイロードを含む。番組の情報は、たとえば複数のＴＳパケットにおけるペイロードに分割して含められる。また、ＴＳヘッダは、当該ＴＳヘッダを含むＴＳパケットの識別子であるＰＩＤ（Packet Identifier）を含み、ＰＩＤは、当該ＴＳパケットのペイロードに含まれる情報に対応した値が割り当てられる。
【００４３】
ＴＳパケットには、再生対象であるビデオＴＳパケットおよびオーディオＴＳパケットと、番組に対応して生成され、対応の番組の再生対象パケットを再生するための制御情報を含むＰＳＩ（Program Specific Information）を示すパケット等がある。ビデオＴＳパケットは、番組の画像データを格納し、オーディオＴＳパケットは、番組の音声データを格納する。
【００４４】
配信装置２０は、上記ＴＳパケットを多重化した１つのデータ列であるストリームにより、番組の情報をたとえば番組受信装置４０へ配信する。なお、ストリームには、複数の番組の情報を含めてもよい。
【００４５】
ＰＳＩを示すパケットは、具体的にはＰＡＴ（Program Association Table）パケットおよびＰＭＴ（Program Map Table）パケットである。ＰＡＴパケットおよびＰＭＴパケットは、複数種類ある制御パケットの一例である。ＰＡＴパケットは、番組関連パケットであり、ストリームに含まれる１または複数の番組すなわち現在放送中である１または複数の番組の識別子であるチャンネルＩＤ、および各放送チャンネルの情報を含むＰＭＴパケットのＰＩＤ等を含む。また、ＰＡＴパケットのＰＩＤは、１６進数表記における０ｘ００００である。
【００４６】
ＰＭＴパケットは、番組マップパケットであり、番組に対応して生成され、対応の番組の再生対象パケットであるビデオＴＳパケットおよびオーディオＴＳパケットの識別子であるＰＩＤを含む。ＰＡＴパケットおよびＰＭＴパケットは、当該ＰＡＴパケットおよび当該ＰＭＴパケットの内容が切替わるまで、配信装置２０から繰り返し再送される場合がある。
【００４７】
そして、配信装置２０は、番組の情報を含むＴＳパケットにより構成されるストリームをＩＰにより送信する際に、上記ストリームに対して以下の処理を行う。すなわち、配信装置２０は、送信するストリームに含まれるＴＳパケットにおいて、当該ＴＳパケットがデコードタイミング調整用のヌルパケットである場合、当該ＴＳパケットを削除する。
【００４８】
また、配信装置２０がパケットを送信するタイミングを調節しながらパケットをＩＰにより番組受信装置４０へ送信しても、ＩＰではパケット毎に伝送時間のばらつきが生じるので、番組受信装置４０がパケットを受信するタイミングは、配信装置２０により調節されたタイミングと異なってしまう。
【００４９】
すなわち、ＩＰによるパケットの送信では、配信装置２０におけるパケットを送信するタイミングを、番組受信装置４０において再現することができない。これに対処するために、配信装置２０は、送信するストリームに含まれるＴＳパケットを、受信側の装置においてデコーダへ投入すべきタイミングを示すタイムスタンプ情報を含めたＴＴＳ（Timestamped TS）パケットへ変換する。このため、たとえば図２の（Ａ）に示す複数のＴＳパケットは、図２の（Ｂ）に示す複数のＴＴＳパケットへ変換される。
【００５０】
配信装置２０は、複数のＴＴＳパケットを、所定個数のＴＴＳパケットにより構成される複数のグループに分割し、各グループをＲＴＰ（Realtime Transport Protocol）パケットのペイロードに含める。なお、上記所定個数は、たとえば非特許文献１において７個が推奨されている。このため、たとえば図２の（Ｂ）に示す３５個のＴＴＳパケットは、図２の（Ｃ）に示すＲＴＰパケット１からＲＴＰパケット５までの５個のＲＴＰパケットに含められる。
【００５１】
ＲＴＰパケットのヘッダは、シーケンス番号を格納するフィールドを有する。配信装置２０は、たとえばＲＴＰパケット１からＲＴＰパケット５までのシーケンス番号のフィールドに連続した番号を付与した後、番組受信装置４０へ送信する。
【００５２】
なお、本発明の実施の形態では、配信装置２０は、上記のように複数のＴＴＳパケットを１つのＲＴＰパケットに含める。このため、以下では、ＰＡＴパケットまたはＰＭＴパケットを少なくとも１個含むＲＴＰパケットを制御パケットと称し、また、ＰＡＴパケットまたはＰＭＴパケットを含まないＲＴＰパケットを再生対象パケットと称する。
【００５３】
配信装置２０は、上記ＲＴＰパケットをたとえばネットワーク１１経由で番組受信装置４０へ送信することにより、番組の情報を番組受信装置４０へ送信する。番組受信装置４０は、上記ＲＴＰパケットを受信すると、受信したＲＴＰパケットからＴＴＳパケットを取得し、取得したＴＴＳパケットにおけるタイムスタンプ情報を参照することにより、当該ＴＴＳパケットを適切なタイミングでデコーダへ投入することができる。これにより、番組受信装置４０は、デコーダにおいて抽出した番組の情報を、たとえば表示装置１２において適切なタイミングで再生することができる。
【００５４】
また、番組受信装置４０は、配信装置２０からＲＴＰパケットを受信すると、受信したＲＴＰパケットのシーケンス番号を確認することにより、当該ＲＴＰパケットを受信した順序が逆転している場合における当該順序の回復、および当該ＲＴＰパケットの伝送経路での消失の検出を行うことができる。
【００５５】
［ＲＴＰパケットの欠損補償］
番組受信装置４０は、配信装置２０から受信したＲＴＰパケットの順序が逆転している場合には、ＲＴＰパケットの順序を並べ替えることにより、ＲＴＰパケットの順序を容易に回復することができる。
【００５６】
一方、番組受信装置４０は、配信装置２０から受信したＲＴＰパケットに欠損がある場合には、欠損したＲＴＰパケットを容易に復元することができない。このため、配信装置２０は、たとえばＰｒｏ−ＭＰＥＧ（the Professional-MPEG）  １Ｄ  ＦＥＣ方式に準拠した処理を行うことにより、伝送経路の途中で欠損したＲＴＰパケットを番組受信装置４０において復元できるようにする。
【００５７】
図３は、本発明の実施の形態に係るパケットの欠損補償の一例を示す図である。
【００５８】
図３を参照して、配信装置２０は、たとえばＲＴＰ０１からＲＴＰ２５までの２５個のＲＴＰパケットを送信する場合、シーケンス番号順に並べた当該２５個のＲＴＰパケットを構成要素とする、図３の（Ａ）に示すソースブロックを作成する。
【００５９】
そして、配信装置２０は、ソースブロックの各列におけるＲＴＰパケットのビットストリングに対して排他的論理和を計算し、計算した排他的論理和、すなわち各ビットストリングの冗長データをペイロードに含む復元用パケットであるＦＥＣパケットを作成する。以下、ソースブロックに対応する複数のＦＥＣパケットを、ＦＥＣ符号化ブロックと称する。
【００６０】
具体的には、配信装置２０は、図３の（Ａ）に示すソースブロックの１列目を構成するＲＴＰ０１、ＲＴＰ０６、ＲＴＰ１１、ＲＴＰ１６およびＲＴＰ２１の各ビットストリングに対して排他的論理和を計算することにより、冗長データを得る。そして、配信装置２０は、上記冗長データにＦＥＣヘッダおよびＲＴＰヘッダを付加することにより、ＦＥＣパケットである図３の（Ｂ）に示すＦＥＣ０１を作成する。ＦＥＣヘッダには、たとえばＰｒｏ−ＭＰＥＧ  １Ｄ  ＦＥＣといったＦＥＣ方式、ソースブロックのサイズおよびＦＥＣ符号化ブロックのサイズが含められる。
【００６１】
なお、上記サイズは、ソースブロックまたはＦＥＣ符号化ブロックの行数および列数の積を示す。従って、ソースブロックのサイズは、当該ソースブロックに収容されるＲＴＰパケットの個数を示す。また、ＦＥＣ符号化ブロックのサイズは、当該ＦＥＣ符号化ブロックに収容されるＦＥＣパケットの個数を示す。
【００６２】
配信装置２０は、図３の（Ａ）に示すソースブロックの２列目から５列目について同様の処理を行い、図３の（Ｂ）に示すＦＥＣ０２からＦＥＣ０５を作成する。図３の（Ｂ）に示すＦＥＣ０１からＦＥＣ０５までのＦＥＣパケットは、図３の（Ａ）に示すソースブロックに対応するＦＥＣ符号化ブロックを形成する。
【００６３】
配信装置２０は、たとえば図３の（Ａ）に示すソースブロックを構成するＲＴＰパケット、および図３の（Ｂ）に示すＦＥＣ符号化ブロックを構成するＦＥＣパケットを、それぞれ異なるポート番号を付与した別々のストリームに含めて番組受信装置４０へ送信する。
【００６４】
番組受信装置４０は、上記ＲＴＰパケットおよび上記ＦＥＣパケットを受信すると、まず、ＦＥＣパケットのヘッダを参照することにより、ＦＥＣ方式、ソースブロックのサイズおよびＦＥＣ符号化ブロックのサイズを取得する。そして、番組受信装置４０は、取得したブロックの大きさに基づいて、図３の（Ｃ）に示すソースブロック、および図３の（Ｄ）に示すＦＥＣ符号化ブロックを再生する。
【００６５】
番組受信装置４０は、図３の（Ｃ）に示すソースブロックを再生する際に、ＲＴＰ１１およびＲＴＰ１３の間のＲＴＰパケットが欠損していることを検出する。このような場合においても、番組受信装置４０は、図３の（Ｃ）に示すソースブロックにおいて「欠損１」により示される位置に対応する列に属するＲＴＰパケット、および当該列に対応するＦＥＣパケットに基づいて、欠損したＲＴＰパケットを復元する。
【００６６】
具体的には、番組受信装置４０は、図３の（Ｅ）に示すように、ＲＴＰパケットが欠損した列に属するＲＴＰ０２、ＲＴＰ０７、ＲＴＰ１７およびＲＴＰ２２の各ビットストリングおよび当該列に対応するＦＥＣパケットであるＦＥＣ０２のビットストリングに対して排他的論理和を計算する。計算した排他的論理和は、欠損したＲＴＰ１２のビットストリングと同じであるので、番組受信装置４０は、計算した排他的論理和に基づいて、欠損したＲＴＰパケットであるＲＴＰ１２を復元する。
【００６７】
上記のようなソースブロックおよび当該ソースブロックに対応するＦＥＣ符号化ブロックに基づいて、ＲＴＰパケットの欠損の検出処理および欠損したＲＴＰパケットの復元処理を、以下、ＦＥＣデコードと称する。
【００６８】
番組受信装置４０は、ＦＥＣデコードを行った、ＲＴＰ０１からＲＴＰ２５までのＲＴＰパケットから取得したＴＴＳパケットに基づいて、番組の画像を再生する。
【００６９】
なお、番組受信装置４０は、ＦＥＣデコードを完了するより以前に、ＲＴＰパケットを次の処理へ移すことは好ましくない。番組受信装置４０は、ソースブロックにおいて、たとえば１行目に属するＲＴＰパケットを復元するためには、当該ＲＴＰパケットと同一列に属するＲＴＰパケット全てが到着するまで待たなければならない。従って、番組受信装置４０は、最終行に属するＲＴＰパケットが到着するより以前に到着したＲＴＰパケットを次の処理へ移すことはできない。
【００７０】
また、番組受信装置４０は、ソースブロックにおいて、たとえば最終行に属するＲＴＰパケットを復元するためには、当該ＲＴＰパケットと同一列のＲＴＰパケット全てが必要となるので、最終行に属するＲＴＰパケットが到着するより以前に、当該ＲＴＰパケットと同一列のＲＴＰパケットを次の処理へ移すことはできない。
【００７１】
従って、番組受信装置４０は、ＲＴＰパケットの欠損の有無に関わらず、ＦＥＣデコードが完了するまでは、ＲＴＰパケットを次の処理へ移すことができない。また、番組受信装置４０は、ＲＴＰパケットの複製を作成することにより、ＦＥＣデコード処理を行いながらＲＴＰパケットを次の処理へ移すことも考えられるが、ＲＴＰパケットを複製するために余分なメモリが必要となるので、好ましくない。
【００７２】
［ＲＴＰパケットの欠損補償を行う際に生ずる問題点］
図４は、ＴＴＳパケットを含むＲＴＰパケットにより構成されるソースブロックおよびＦＥＣ符号化ブロックの一例を示す図である。
【００７３】
まず、非特許文献１に記載の技術による配信装置６０において作成されるソースブロックおよびＦＥＣ符号化ブロックを、比較例として説明する。
【００７４】
図４を参照して、図４の（Ａ）は、配信装置６０が作成するソースブロックの一例を示す。図４の（Ａ）において示される「Ｖ」、「Ａ」、「ＰＡＴ」および「ＰＭＴ」は、以下、それぞれビデオＴＴＳパケットを含むＲＴＰパケット、オーディオＴＴＳパケットを含むＲＴＰパケット、ＰＡＴパケットを含むＲＴＰパケットおよびＰＭＴパケットを含むＲＴＰパケットを示す。
【００７５】
この例では、「Ｖ」および「Ａ」は、再生対象パケットに相当し、また、「ＰＡＴ」および「ＰＭＴ」は、制御パケットに相当する。
【００７６】
図４の（Ｂ）は、配信装置６０が作成するＦＥＣ符号化ブロックの一例を示す。また、図４の（Ｂ）において示される「ＦＥＣ」は、以下、ＦＥＣパケットを示す。なお。「Ｖ」、「Ａ」および「ＦＥＣ」は、各パケットを識別するための添え字が付与されている。
【００７７】
配信装置６０は、たとえば図４の（Ａ）に示すソースブロック、および当該ソースブロックに対応する図４の（Ｂ）に示すＦＥＣ符号化ブロックを作成する。そして、配信装置６０は、作成したソースブロックに含まれるＲＴＰパケットおよびＦＥＣ符号化ブロックに含まれるＦＥＣパケットを番組受信装置４０へ送信する。
【００７８】
番組受信装置４０は、受信したＲＴＰパケットおよびＦＥＣパケットに基づいて、図４の（Ａ）に示すソースブロックおよび図４の（Ｂ）に示すＦＥＣ符号化ブロックを再生する。そして、番組受信装置４０は、ＦＥＣデコードを行うことにより、欠損したＲＴＰパケットを必要に応じて復元した後、上記ソースブロックに含まれるＲＴＰパケットからビデオＴＴＳパケット、オーディオＴＴＳパケット、ＰＡＴパケットおよびＰＭＴパケットを取得する。
【００７９】
そして、番組受信装置４０は、取得したＰＡＴパケットおよびＰＭＴパケットを解析し、たとえば再生する番組の情報を含むビデオＴＴＳパケットおよびオーディオＴＴＳパケットのＰＩＤ、およびビデオＴＴＳパケットに含まれる画像データの符号化方式を取得する。
【００８０】
番組受信装置４０は、解析した結果に基づいて、上記ＰＩＤを有するＴＴＳパケットが流れてきた際に当該ＴＴＳパケットを取得する条件の設定、および上記符号化方式に対応できるデコーダプログラムの読み出し等の番組を再生させるための準備を行う。
【００８１】
番組受信装置４０は、番組の情報を再生させるための準備が完了した後、上記条件に基づいてＴＴＳパケットを取得し、取得したＴＴＳパケットのタイムスタンプ情報に基づいたタイミングにおいて上記パケットをデコーダへ投入することにより、上記番組の情報を再生する。
【００８２】
上記のように、番組受信装置４０は、ＦＥＣデコードを行った後、ＰＭＴパケットに基づいて番組の情報を再生させるための準備を行う。たとえば、１０行１０列のサイズのソースブロックのＦＥＣデコードに用いるパケットを蓄積するために要する時間は、８Ｍｂｐｓの通信速度において概ね１００ミリ秒である。また、この番組の情報を再生させるための準備には、ある程度の時間が必要である。
【００８３】
従って、番組受信装置４０がＲＴＰパケットを受信してから当該ＲＴＰパケットに含まれるＴＴＳパケットをデコーダへ投入するまでの遅延時間が長くなってしまうという問題がある。
【００８４】
これに対して、本発明の実施の形態に係る配信装置２０は、たとえばＰＡＴパケットまたはＰＭＴパケットを含む制御パケットを、再生対象パケットに先んじて番組受信装置４０においてＦＥＣデコードし得るようにしておく。これにより、以下のように遅延時間を短縮することができる。
【００８５】
図５は、本発明の実施の形態に係るＴＴＳパケットを含むＲＴＰパケットにより構成されるソースブロックおよびＦＥＣ符号化ブロックの一例を示す図である。
【００８６】
図５において示される「Ｖ」、「Ａ」、「ＰＡＴ」、「ＰＭＴ」および「ＦＥＣ」の見方は、図４と同様である。
【００８７】
図５を参照して、図５の（Ａ）および（Ｂ）は、配信装置２０が作成するソースブロックの一例を示す。また、図５の（Ｃ）および（Ｄ）は、配信装置２０が作成するＦＥＣ符号化ブロックの一例を示す。
【００８８】
すなわち、再生対象パケットに先んじて制御パケットをＦＥＣデコードすることにより取得したＰＡＴパケットおよびＰＭＴパケットに基づいて番組の情報を再生させるための準備と、制御パケットに続く再生対象パケットのＦＥＣデコードとを並行して処理することにより、番組受信装置４０における上記遅延時間を短縮することができる。
【００８９】
具体的には、本実施の形態における配信装置２０は、「ＰＡＴ」または「ＰＭＴ」により示される制御パケットを「Ｖ」または「Ａ」により示される再生対象パケットに先んじて番組受信装置４０においてＦＥＣデコードできるように、図５の（Ａ）に示すソースブロック、および当該ソースブロックに対応する図５の（Ｃ）に示すＦＥＣ符号化ブロックを作成する。
【００９０】
そして、配信装置２０は、制御パケットに続く再生対象パケットにより構成される、図５の（Ｂ）に示すソースブロック、および当該ソースブロックに対応する図５の（Ｄ）に示すＦＥＣ符号化ブロックを作成する。配信装置２０は、このようなソースブロックおよびＦＥＣ符号化ブロックを作成することにより上記問題を解決する。
【００９１】
［配信装置の構成］
図６は、本発明の実施の形態に係る配信装置の構成を示す図である。
【００９２】
図６を参照して、配信装置２０は、番組配信制御部２１と、ストリーム作成部２２と、記憶部２３と、ＲＴＰパケット作成部２４と、ＦＥＣパケット作成部（ソースブロック作成部および復元用パケット作成部）２５と、通信部２６とを備える。なお、記憶部２３は、配信装置２０の外部に設けられていてもよい。
【００９３】
通信部２８は、たとえばインターネット等のネットワーク１１を介して番組受信装置４０とパケットの送受信を行う。
【００９４】
記憶部２３は、ＨＤＤ（Hard Disk Drive）等の記憶装置であり、番組の情報を含むストリームを保持する。
【００９５】
番組配信制御部２１は、番組の情報の配信の制御を行う。具体的には、番組配信制御部２１は、たとえばある番組の再生要求を通信部２８経由で番組受信装置４０から受信すると、当該番組の再生命令をストリーム作成部２２へ出力する。
【００９６】
ストリーム作成部２２は、番組配信制御部２１から再生命令を受けると、受けた再生命令に対応する番組を含む、ＭＰＥＧ２−ＴＳ形式のストリームを記憶部２３から読み出す。そして、ストリーム作成部２２は、読み出したストリームに基づいて、ＩＰによる配信に適した配信用ストリームを作成する。
【００９７】
より詳細には、ストリーム作成部２２は、読み出したストリームからＴＳパケットを取得する。そして、ストリーム作成部２２は、取得したＴＳパケットがデコードタイミング調整用のヌルパケットである場合、当該ヌルパケットを削除する。また、ストリーム作成部２２は、取得したＴＳパケットがヌルパケットでない場合、当該ＴＳパケットにタイムスタンプ情報を付加することによりＴＴＳパケットへ変換する。そして、ストリーム作成部２２は、上記ＴＴＳパケットをＲＴＰパケット作成部２４へ送信順に出力する。
【００９８】
ＲＴＰパケット作成部２４は、ストリーム作成部２２からＴＴＳパケットを送信順に受けると、当該ＴＴＳパケットがたとえば送信順に７個ずつペイロードに含まれるようにＲＴＰパケットを順次作成する。
【００９９】
そして、ＲＴＰパケット作成部２４は、作成したＲＴＰパケットのヘッダにパケット作成順すなわち送信順にシーケンス番号を付与し、当該ＲＴＰパケットをＦＥＣパケット作成部２５へ出力する。
【０１００】
ＦＥＣパケット作成部２５は、ＲＴＰパケット作成部２４からＲＴＰパケットを受けると、受けたＲＴＰパケットを図示しないバッファにシーケンス番号順すなわち送信順に蓄積する。この際、ＦＥＣパケット作成部２５は、制御パケットを検索し、検索した結果に基づいて、ソースブロックの終端パケットを決定する。
【０１０１】
具体的には、ＦＥＣパケット作成部２５は、たとえば所定サイズのソースブロックを満たすまでＲＴＰパケットをバッファに蓄積しながら検索を行い、当該検索の結果、バッファに蓄積されたＲＴＰパケットの中に制御パケットが存在しない場合、以下の処理を行う。
【０１０２】
すなわち、ＦＥＣパケット作成部２５は、最後にバッファに蓄積したＲＴＰパケットを終端パケットとして決定する。そして、ＦＥＣパケット作成部２５は、バッファにおいて送信順に並べられたＲＴＰパケットを１つのソースブロックとしてまとめる。
【０１０３】
また、ＦＥＣパケット作成部２５は、所定サイズのソースブロックを満たす個数までＲＴＰパケットをバッファに蓄積しながら検索を行い、当該検索の結果、バッファに蓄積されたＲＴＰパケットの中に制御パケットが存在することを把握すると、以下の処理を行う。
【０１０４】
すなわち、ＦＥＣパケット作成部２５は、当該制御パケットを終端パケットとして決定する。なお、ＦＥＣパケット作成部２５は、制御パケットが連続する場合は、連続した制御パケットにおける最後部の制御パケットを終端パケットとして決定する。
【０１０５】
そして、ＦＥＣパケット作成部２５は、バッファにおいて、最初に蓄積されたＲＴＰパケットから終端パケットまでを１つのソースブロックとしてまとめ、終端パケットより後ろのＲＴＰパケットを次のソースブロックに含める。
【０１０６】
上記のように、ＦＥＣパケット作成部２５は、送信順に並べられた再生対象パケットおよび制御パケットについて、制御パケットから数えてｎ（ｎはゼロ以上の整数）個後の終端パケットまでをソースブロックに含める。そして、ＦＥＣパケット作成部２５は、上記終端パケットより後のＲＴＰパケットを次のソースブロックに含める。
【０１０７】
図７は、本発明の実施の形態に係るＲＴＰパケットおよびソースブロックの対応関係の一例を示す図である。
【０１０８】
図７を参照して、（Ａ）から（Ｊ）において示される「Ｖ」、「Ａ」、「ＰＡＴ」および「ＰＭＴ」の見方は、図４と同様である。また、（Ａ）、（Ｅ）および（Ｈ）は、ＲＴＰパケット作成部２４が出力するＲＴＰパケットの一例を示す。
【０１０９】
具体的には、ＦＥＣパケット作成部２５は、たとえば図７の（Ａ）に示す送信順に並べられたＲＴＰパケットをＲＴＰパケット作成部２４から受けると、Ｖ０１からＶ１０までの１０個の再生対象パケットであるＲＴＰパケットをバッファに蓄積しながら検索を行う。
【０１１０】
次に、ＦＥＣパケット作成部２５は、ＰＡＴにより示されるＲＴＰパケットを受けると、検索により当該ＲＴＰパケットが制御パケットであることを把握し、当該制御パケットを終端パケットとして決定する。
【０１１１】
これにより、ＦＥＣパケット作成部２５は、図７の（Ｂ）に示すように上記１０個の再生対象パケットおよび当該制御パケットをソースブロック１としてまとめる。
【０１１２】
次に、ＦＥＣパケット作成部２５は、後続するＶ１１からＶ１４までの４個の再生対象パケットであるＲＴＰパケットをバッファに蓄積しながら検索を行い、更にＰＭＴにより示されるＲＴＰパケットを受けると、検索により当該ＲＴＰパケットが制御パケットであることを把握する。
【０１１３】
そして、ＦＥＣパケット作成部２５は、当該制御パケットを終端パケットとして決定し、図７の（Ｃ）に示すように、上記４個の再生対象パケットおよび当該制御パケットをソースブロック２としてまとめる。
【０１１４】
そして、ＦＥＣパケット作成部２５は、所定サイズのソースブロックを満たす個数まで、後続するＶ１５以降のＲＴＰパケットをバッファに蓄積しながら検索を行い、検索により制御パケットが存在しないことを把握すると、蓄積したＲＴＰパケットを図７の（Ｄ）に示すようにソースブロック３としてまとめる。
【０１１５】
また、ＦＥＣパケット作成部２５は、たとえば、検索により制御パケットの存在を把握するとさらに検索を継続し、当該制御パケットから数えて所定個数以内のＲＴＰパケットの中に他の種類の制御パケットが存在することを把握すると、当該他の種類の制御パケットを終端パケットとして決定する。
【０１１６】
この場合における、「他の種類の制御パケット」は、たとえば上記制御パケットすなわちＲＴＰパケットがＰＭＴパケットを含む場合、ＰＡＴパケットを含むＲＴＰパケットが該当し、また、上記制御パケットすなわちＲＴＰパケットがＰＡＴパケットを含む場合、ＰＭＴパケットを含むＲＴＰパケットが該当する。
【０１１７】
一方、ＦＥＣパケット作成部２５は、上記制御パケットから数えて所定個数以内のＲＴＰパケットにおいて他の種類の制御パケットが存在しない場合には、上記制御パケットを終端パケットとして決定する。
【０１１８】
そして、ＦＥＣパケット作成部２５は、終端パケットまでを１つのソースブロックとしてまとめ、当該終端パケットより後ろのＲＴＰパケットを次のソースブロックに含める。
【０１１９】
具体的には、ＦＥＣパケット作成部２５は、たとえば図７の（Ｅ）に示す送信順に並べられたＲＴＰパケットをＲＴＰパケット作成部２４から受けると、Ｖ０１からＡ０７までの７個の再生対象パケットであるＲＴＰパケットをバッファに蓄積しながら検索を行う。
【０１２０】
次に、ＦＥＣパケット作成部２５は、ＰＡＴにより示されるＲＴＰパケットを受けると、検索により当該ＲＴＰパケットが制御パケットであることを把握する。
【０１２１】
そして、ＦＥＣパケット作成部２５は、当該制御パケットから、たとえば所定個数としてＲＴＰパケット４個分の範囲においてさらに検索を継続し、他の種類の制御パケットであるＰＭＴパケットを含むＲＴＰパケットを検索する。
【０１２２】
ＦＥＣパケット作成部２５は、検索の結果、上記制御パケットから３個目においてＰＭＴパケットを含むＲＴＰパケットすなわち他の種類の制御パケットが存在することを把握すると、以下の処理を行う。
【０１２３】
すなわち、ＦＥＣパケット作成部２５は、当該他の種類の制御パケットを終端パケットとして決定し、図７の（Ｆ）に示すように、ＰＭＴにより示されるＲＴＰパケットまでをソースブロック４としてまとめる。
【０１２４】
そして、ＦＥＣパケット作成部２５は、後続するＶ１０以降のＲＴＰパケットを所定サイズのソースブロックを満たす個数までバッファに蓄積しながら検索を行い、検索により制御パケットが存在しないことを把握すると、蓄積したＲＴＰパケットを図７の（Ｇ）に示すようにソースブロック５としてまとめる。
【０１２５】
また、ＦＥＣパケット作成部２５は、ＰＡＴパケットまたはＰＭＴパケットを含む制御パケットの直後をソースブロックの区切りとすることに限定されない。たとえば、ＦＥＣパケット作成部２５は、上記区切りを数パケット分後方へずらすことにより、ソースブロックを満たすことができる場合、上記区切りを当該数パケット分後方へずらす構成であってもよい。
【０１２６】
すなわち、たとえばソースブロックのサイズが１２である場合、ＦＥＣパケット作成部２５は、図７の（Ｈ）に示す送信順に並べられたＲＴＰパケットをＲＴＰパケット作成部２４から受けると、Ｖ０１からＶ０９までの９個の再生対象パケットであるＲＴＰパケットをバッファに蓄積しながら検索を行う。
【０１２７】
次に、ＦＥＣパケット作成部２５は、ＰＡＴにより示されるＲＴＰパケットを受けると、検索により当該ＲＴＰパケットが制御パケットであることを把握する。そして、ＦＥＣパケット作成部２５は、当該制御ブロックを終端パケットとせずにバッファに蓄積し、さらに２個のＲＴＰパケットをバッファに蓄積する。
【０１２８】
すなわち、ＦＥＣパケット作成部２５は、当該制御パケットに続くＰＭＴで示されるＲＴＰパケットおよびＶ１０で示されるＲＴＰパケットをバッファに蓄積する。
【０１２９】
そして、ＦＥＣパケット作成部２５は、蓄積したＲＴＰパケットを図７の（Ｉ）に示すようにソースブロック６としてまとめる。これにより、ＦＥＣパケット作成部２５は、所定サイズのソースブロックに対応した個数のＲＴＰパケットを当該ソースブロックに含めることができる。
【０１３０】
ＦＥＣパケット作成部２５は、後続するＶ１１以降のＲＴＰパケットを、所定サイズのソースブロックを満たす個数までバッファに蓄積しながら検索を行い、検索により制御パケットが存在しないことを把握すると、蓄積したＲＴＰパケットを図７の（Ｊ）に示すようにソースブロック７としてまとめる。
【０１３１】
再び図６を参照して、ＦＥＣパケット作成部２５は、作成したソースブロックの各列に属するＲＴＰパケットに基づいて、番組受信装置４０においてソースブロックを復元するための復元用パケットであるＦＥＣパケットを作成する。ＦＥＣパケット作成部２５は、作成したＦＥＣパケットをまとめることによりＦＥＣ符号化ブロックを作成する。
【０１３２】
これにより、ＦＥＣパケット作成部２５は、ＰＡＴパケットまたはＰＭＴパケットを含む制御パケットであるＲＴＰパケットの送信順での後方を区切りとするソースブロックおよびＦＥＣ符号化ブロックを作成する。
【０１３３】
そして、ＦＥＣパケット作成部２５は、作成したＦＥＣ符号化ブロックに含まれるＦＥＣパケットおよびソースブロックに含まれるＲＴＰパケットを、通信部２６を介してたとえば番組受信装置４０へ送信する。
【０１３４】
［ＰＡＴまたはＰＭＴによりソースブロックを区切る場合における動作］
配信装置２０は、以下に示す各フローチャートの各ステップを図示しないメモリから読み出して実行する。このプログラムは、外部からインストールすることができる。このインストールされるプログラムは、たとえば記録媒体に格納された状態で流通する。
【０１３５】
図８は、本発明の実施の形態に係る配信装置におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理を行う際の動作手順の一例を定めたフローチャートである。
【０１３６】
図８を参照して、まず、ＦＥＣパケット作成部２５は、カウントしたパケット数を示す変数ＰＣＮＴを０に初期化する（ステップＳ１０２）。
【０１３７】
次に、ＦＥＣパケット作成部２５は、選択された番組のストリームに含まれるＴＳパケットを含むＲＴＰパケットを、ＲＴＰパケット作成部２４から１個取得し、図示しないバッファに蓄積する（ステップＳ１０４）。
【０１３８】
次に、ＦＥＣパケット作成部２５は、変数ＰＣＮＴをインクリメントする（ステップＳ１０６）。
【０１３９】
次に、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが示すパケット数が所定値未満、すなわち所定サイズのソースブロックに格納できるパケット数未満である場合（ステップＳ１０８でＮＯ）、取得したＲＴＰパケットに含まれるＴＳパケットの種別を確認する。
【０１４０】
次に、ＦＥＣパケット作成部２５は、確認したＴＳパケットの種別にＰＡＴパケットまたはＰＭＴパケットが含まれない場合（ステップＳ１１０でＮＯ）、次のＲＴＰパケットを１個取得する（ステップＳ１０４）。
【０１４１】
一方、ＦＥＣパケット作成部２５は、確認したＴＳパケットの種別にＰＡＴパケットまたはＰＭＴパケットが含まれる場合（ステップＳ１１０でＹＥＳ）、取得したＲＴＰパケットが制御パケットであると把握し、当該制御パケットが終端パケットとして適切であるかどうかを判断する（ステップＳ１１２）。
【０１４２】
ＦＥＣパケット作成部２５は、取得したＲＴＰパケットの次のＲＴＰパケットを参照し、当該ＲＴＰパケットがＰＡＴパケットまたはＰＭＴパケットを含む制御パケットである場合、取得したＲＴＰパケットが終端パケットとして適切でないと判断し（ステップＳ１１２でＮＯ）、次のＲＴＰパケットを１個取得する（ステップＳ１０４）。
【０１４３】
一方、ＦＥＣパケット作成部２５は、取得したＲＴＰパケットの次のＲＴＰパケットを参照し、当該ＲＴＰパケットがＰＡＴパケットまたはＰＭＴパケットを含まない再生対象パケットである場合、取得したＲＴＰパケットが終端パケットとして適切であると判断し（ステップＳ１１２でＹＥＳ）、以下の処理を行う。
【０１４４】
すなわち、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが示すパケット数に基づいてソースブロックのサイズを決定し、決定したサイズのソースブロックを作成する。そして、ＦＥＣパケット作成部２５は、作成したソースブロックにおいて、これまでにバッファに蓄積したＲＴＰパケットを割当てる（ステップＳ１１４）。
【０１４５】
一方、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが上記所定値である場合（ステップＳ１０８でＹＥＳ）、所定サイズのソースブロックを作成し、作成したソースブロックにおいて、これまでにバッファに蓄積したＲＴＰパケットを割当てる（ステップＳ１１４）。
【０１４６】
次に、ＦＥＣパケット作成部２５は、作成したソースブロックに基づいてＦＥＣパケットを算出し、算出したＦＥＣパケットを構成要素に持つＦＥＣ符号化ブロックを作成する（ステップＳ１１６）。
【０１４７】
次に、ＦＥＣパケット作成部２５は、ストリームの最後に到達していない場合（ステップＳ１１８でＮＯ）、変数ＰＣＮＴを０に初期化し（ステップＳ１０２）、次のＲＴＰパケットを１個取得する（ステップＳ１０４）。
【０１４８】
一方、ＦＥＣパケット作成部２５は、ストリームの最後に到達した場合（ステップＳ１１８でＹＥＳ）、ソースブロックおよびＦＥＣ符号化ブロックの作成処理を終了する。
【０１４９】
以上の動作により、配信装置２０におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理が行われる。
【０１５０】
ＦＥＣパケット作成部２５は、上記ステップＳ１１２において、ＰＡＴパケットまたはＰＭＴパケットを含む制御パケット、およびＰＡＴパケットまたはＰＭＴパケットを含まない再生対象パケットの間において、ソースブロックを区切る。
【０１５１】
これにより、ソースブロックに含まれるＲＴＰパケットを受信する番組受信装置４０は、ＰＡＴパケットまたはＰＭＴパケットを含むソースブロックを先んじてＦＥＣデコードすることができる。
【０１５２】
また、番組受信装置４０は、上記区切りより後ろに位置するソースブロックのＦＥＣデコード処理、および受信したＰＡＴパケットおよびＰＭＴパケットに基づく番組を再生させるための準備を並行して行うことができる。
【０１５３】
これにより、番組受信装置４０は、ＲＴＰパケットを受信してから当該ＲＴＰパケットに含まれるＴＳパケットをデコーダへ投入するまでの遅延時間が増大してしまうことを防ぐことができる。
【０１５４】
また、ＦＥＣパケット作成部２５は、ＰＡＴパケットまたはＰＭＴパケットを含む制御パケットの直後をソースブロックの区切りとせずに、たとえば、上記区切りを所定個数以内のＲＴＰパケットに相当する分後方へずらすことにより適切な区切りが得られる場合、上記区切りを後方へずらしてもよい。
【０１５５】
図９は、本発明の実施の形態に係る配信装置におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理を行う際の動作手順の他の一例を定めたフローチャートである。
【０１５６】
図９を参照して、まず、ＦＥＣパケット作成部２５は、カウントしたパケット数を示す変数ＰＣＮＴを０に初期化する（ステップＳ２０２）。
【０１５７】
次に、ＦＥＣパケット作成部２５は、選択された番組のストリームに含まれるＴＳパケットを含むＲＴＰパケットを、ＲＴＰパケット作成部２４から１個取得し、図示しないバッファに蓄積する（ステップＳ２０４）。
【０１５８】
次に、ＦＥＣパケット作成部２５は、変数ＰＣＮＴをインクリメントする（ステップＳ２０６）。
【０１５９】
次に、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが示すパケット数が所定値未満、すなわち所定サイズのソースブロックに格納できるパケット数未満である場合（ステップＳ２０８でＮＯ）、取得したＲＴＰパケットに含まれるＴＳパケットの種別を確認する。
【０１６０】
次に、ＦＥＣパケット作成部２５は、確認したＴＳパケットの種別にＰＡＴパケットまたはＰＭＴパケットが含まれない場合（ステップＳ２１０でＮＯ）、次のＲＴＰパケットを１個取得する（ステップＳ２０４）。
【０１６１】
一方、ＦＥＣパケット作成部２５は、確認したＴＳパケットの種別にＰＡＴパケットまたはＰＭＴパケットが含まれる場合（ステップＳ２１０でＹＥＳ）、取得したＲＴＰパケットが制御パケットであると把握し、当該制御パケットが終端パケットとして適切であるかどうかを判断する（ステップＳ２１２）。
【０１６２】
ＦＥＣパケット作成部２５は、取得したＲＴＰパケットの次のＲＴＰパケットを参照し、当該ＲＴＰパケットがＰＡＴパケットまたはＰＭＴパケットを含む制御パケットである場合、取得したＲＴＰパケットが終端パケットとして適切でないと判断し（ステップＳ２１２でＮＯ）、次のＲＴＰパケットを１個取得する（ステップＳ２０４）。
【０１６３】
一方、ＦＥＣパケット作成部２５は、取得したＲＴＰパケットの次のＲＴＰパケットを参照し、当該ＲＴＰパケットがＰＡＴパケットまたはＰＭＴパケットを含まない再生対象パケットである場合（ステップＳ２１２でＹＥＳ）、以下の処理を行う。
【０１６４】
すなわち、ＦＥＣパケット作成部２５は、所定個数以内のＲＴＰパケットに相当する分上記区切り位置を後方へ移すことにより、好ましい区切り位置が得られる場合（ステップＳ２１４でＹＥＳ）、以下の処理を行う。
【０１６５】
すなわち、ＦＥＣパケット作成部２５は、上記区切り位置から好ましい区切り位置までのＲＴＰパケットをＲＴＰパケット作成部２４から取得し、取得したＲＴＰパケットの最後部のＲＴＰパケットを終端パケットとして決定する（ステップＳ２１６）。この際、ＦＥＣパケット作成部２５は、取得したＲＴＰパケットの個数分変数ＰＣＮＴを増加させた後、当該ＲＴＰパケットをバッファに蓄積する。
【０１６６】
次に、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが示すパケット数に基づいてソースブロックのサイズを決定し、決定したサイズのソースブロックを作成する。そして、ＦＥＣパケット作成部２５は、作成したソースブロックにおいて、これまでにバッファに蓄積したＲＴＰパケットを割当てる（ステップＳ２１８）。
【０１６７】
一方、ＦＥＣパケット作成部２５は、所定個数以内のＲＴＰパケットに相当する分上記区切り位置を後方へ移しても、好ましい区切り位置が得られない場合（ステップＳ２１４でＮＯ）、上記制御パケットを終端パケットとし、変数ＰＣＮＴが示すパケット数に基づいてソースブロックのサイズを決定し、決定したサイズのソースブロックを作成する。そして、ＦＥＣパケット作成部２５は、作成したソースブロックにおいて、これまでにバッファに蓄積したＲＴＰパケットを割当てる（ステップＳ２１８）。
【０１６８】
一方、ＦＥＣパケット作成部２５は、変数ＰＣＮＴが上記所定値である場合（ステップＳ２０８でＹＥＳ）、所定サイズのソースブロックを作成し、作成したソースブロックにおいて、これまでにバッファに蓄積したＲＴＰパケットを割当てる（ステップＳ２１８）。
【０１６９】
次に、ＦＥＣパケット作成部２５は、作成したソースブロックに基づいてＦＥＣパケットを算出し、算出したＦＥＣパケットを構成要素に持つＦＥＣ符号化ブロックを作成する（ステップＳ２２０）。
【０１７０】
次に、ＦＥＣパケット作成部２５は、ストリームの最後に到達していない場合（ステップＳ２２２でＮＯ）、変数ＰＣＮＴを０に初期化し（ステップＳ２０２）、次のＲＴＰパケットを１個取得する（ステップＳ２０４）。
【０１７１】
一方、ＦＥＣパケット作成部２５は、ストリームの最後に到達した場合（ステップＳ２２２でＹＥＳ）、ソースブロックおよびＦＥＣ符号化ブロックの作成処理を終了する。
【０１７２】
以上の動作により、配信装置２０におけるソースブロックおよびＦＥＣ符号化ブロックの作成処理が行われる。
【０１７３】
ＦＥＣパケット作成部２５は、上記ステップＳ２１４において、ＰＡＴパケットまたはＰＭＴパケットを含む制御パケット、およびＰＡＴパケットまたはＰＭＴパケットを含まない再生対象パケットの間においてソースブロックを区切らずに、当該ソースブロックに更にＲＴＰパケットを加えるかどうかを判断する。
【０１７４】
たとえば、ＦＥＣパケット作成部２５は、当該制御パケットから数えて所定個数以内のＲＴＰパケットを検索し、検索により他の種類の制御パケットの存在を把握すると、当該他の種類の制御パケットを終端パケットとして決定する。
【０１７５】
これにより、複数種類の制御パケットが互いに近い位置に存在している場合において、上記複数種類の制御パケットを１つのソースブロックにまとめることができる。
【０１７６】
また、ＦＥＣパケット作成部２５は、たとえば所定個数以下のＲＴＰパケットを更に加えることにより所定サイズのソースブロックを埋めることができる場合、上記ソースブロックが埋まるまでＲＴＰパケットをバッファに蓄積する。これにより、配信装置２０は、ソースブロックのサイズを変更することなく、ソースブロックを作成することができる。
【０１７７】
また、上記ステップＳ２１２において設定した区切り位置に基づいて作成したソースブロックに含まれるＲＴＰパケットの個数がたとえば素数である場合、上記ソースブロックにおいて埋まらない領域が発生する場合がある。このような場合、上記埋まらない領域において、たとえばヌルパケットにより構成されるＲＴＰパケットが埋められる。
【０１７８】
ＦＥＣパケット作成部２５は、たとえば所定個数以下のＲＴＰパケットを更に加えることにより上記埋まらない領域にＲＴＰパケットを埋めることができると、ヌルパケットにより構成されるＲＴＰパケットを上記領域に埋めたり、ヌルパケットのビット列を計算に含めたりする余分な処理の発生を防ぐことができる。
【０１７９】
ところで、非特許文献１に記載の技術では、番組受信装置４０は、ある範囲のＲＴＰパケットの受信を完了するまで受信したＲＴＰパケットの復元処理を実行できない。このため、番組受信装置４０は、ＲＴＰパケットを受信してから当該ＲＴＰパケットに含まれるＴＴＳパケットをデコーダへ投入するまでの遅延時間が長くなってしまうという問題がある。
【０１８０】
これに対して、本発明の実施の形態に係るストリーム送信装置では、ＦＥＣパケット作成部２５は、再生対象パケットまたは制御パケットである複数のＲＴＰパケットを１または複数のソースブロックとしてまとめ、番組受信装置４０において上記ソースブロックを復元するためのＦＥＣパケットを、上記ソースブロックに基づいて作成する。そして、ＦＥＣパケット作成部２５は、上記複数のＲＴＰパケットから制御パケットを検索し、検索した結果に基づいて、上記ソースブロックの終端パケットを決定する。
【０１８１】
このような構成により、複数のＲＴＰパケットにおける制御パケットの位置に応じた適切な位置の終端パケットを決定することができる。
【０１８２】
たとえば、ある制御パケットに対応する再生対象パケットより早いタイミングで当該制御パケットを送信できるようにソースブロックを作成することにより、番組受信装置４０は、先んじて受信した制御パケットに基づく番組の情報を再生させるための準備、および再生対象パケットの復元処理を並行して行うことができる。
【０１８３】
これにより、ソースブロックに含まれるＲＴＰパケットの受信が完了するまでＲＴＰパケットの復元処理を実行できない番組受信装置４０において、ＲＴＰパケットを受信してから、受信したＲＴＰパケットに含まれる番組の情報を再生するまでの遅延時間の増大を防ぐことができる。
【０１８４】
また、本発明の実施の形態に係るストリーム送信装置では、ＦＥＣパケット作成部２５は、送信順に並べられた再生対象パケットおよび制御パケットについて、制御パケットから数えてｎ（ｎはゼロ以上の整数）個後のＲＴＰパケットである終端パケットまでを上記ソースブロックに含め、終端パケットより後のＲＴＰパケットを次のソースブロックに含める。
【０１８５】
このような構成により、再生対象パケットを含むソースブロックを送信する前に、対応の制御パケットを含む別のソースブロックを送信することができる。
【０１８６】
これにより、番組受信装置４０は、再生対象パケットに先んじて制御パケットを受信することができる。
【０１８７】
また、本発明の実施の形態に係るストリーム送信装置では、ＦＥＣパケット作成部２５は、送信順に並べられた再生対象パケットおよび制御パケットについて、制御パケットまでを上記ソースブロックに含め、制御パケットより後のＲＴＰパケットを次のソースブロックに含める。
【０１８８】
このような構成により、複数のＲＴＰパケットを、制御パケットの直後の位置において区切られた、２つの連続したソースブロックにまとめることができる。
【０１８９】
これにより、番組受信装置４０は、制御パケットを含むソースブロックから当該制御パケットを取得する場合に、当該ソースブロックの最後尾における１または複数のパケットを取得するだけで、制御パケットを容易に取得することができる。
【０１９０】
また、本発明の実施の形態に係るストリーム送信装置では、ＦＥＣパケット作成部２５は、送信順に並べられた複数のＲＴＰパケットから制御パケットを検索する。そして、ＦＥＣパケット作成部２５は、検索した制御パケットから数えて所定個数以内に他の種類の制御パケットが存在する場合には、当該他の種類の制御パケットを終端パケットとし、検索した制御パケットから数えて所定個数以内に他の種類の制御パケットが存在しない場合には、検索した制御パケットを終端パケットとする。
【０１９１】
このような構成により、複数種類の制御パケットが連続している、または互いに近い位置に存在している場合において、上記複数種類の制御パケットを１つのソースブロックにまとめることができる。
【０１９２】
これにより、配信装置２０および番組受信装置４０は、一方の種類の制御パケットを含むソースブロック、およびもう一方の種類の制御パケットを含むソースブロックの、２つのソースブロックの処理を、１つのソースブロックの処理にまとめることができるので、処理を軽減することができる。
【０１９３】
また、本発明の実施の形態に係るストリーム送信装置では、複数種類の制御パケットは、番組に対応して生成され、対応の番組の再生対象パケットの識別子を含むＰＭＴパケット、および１または複数のＰＭＴパケットの識別子を含むＰＡＴパケットを含む。
【０１９４】
このように、ＰＡＴパケットに基づいてＰＭＴパケットを特定し、特定したＰＭＴパケットに基づいて上記番組の情報を再生させるための準備をおこなうことができる。
【０１９５】
これにより、番組受信装置４０は、上記ＰＭＴパケットに基づく上記番組の再生の準備、および再生対象パケットの復元処理を並行して行うことができる。
【０１９６】
なお、本発明の実施の形態に係るストリーム送信装置は、１または複数の番組の情報を含む複数のＴＴＳパケットをＲＴＰパケットに含めた上で、当該ＲＴＰパケットを受信側の装置へ送信する構成であるとしたが、これに限定するものではない。たとえば、ストリーム送信装置は、複数のＴＴＳパケットをＲＴＰパケットに含めずに、当該ＴＴＳパケットを受信側の装置へ送信してもよい。この場合における制御パケットは、ＰＡＴパケットおよびＰＭＴパケットとなり、また、再生対象パケットは、ＰＡＴパケットおよびＰＭＴパケット以外のパケットとなる。
【０１９７】
また、本発明の実施の形態に係るストリーム送信装置は、ストリームの通常再生における処理を行なう構成であるとしたが、これに限定するものではない。ストリーム送信装置は、たとえばＩフレームＴＳ方式による早送り再生または巻き戻し再生等のトリック再生における処理を行う構成であってもよい。
【０１９８】
また、本発明の実施の形態に係るストリーム送信装置は、所定サイズのソースブロックを用いる構成であるとしたが、これに限定するものではない。ストリーム送信装置は、たとえば画像データの種類に応じてソースブロックのサイズを変更できるような構成であってもよい。
【０１９９】
また、本発明の実施の形態に係るストリーム送信装置は、ＩＰＴＶに対応するサーバであり、番組の情報を含むパケットを配信するＶＯＤサービスを行う構成であるとしたが、これに限定するものではない。ストリーム送信装置は、パケット単位でＦＥＣ処理が行われる系であれば、上記構成でなくてもよい。
【０２００】
また、本発明の実施の形態に係るストリーム送信装置は、ＰＡＴパケットまたはＰＭＴパケットに基づいてソースブロックを区切る位置を判断したが、これに限定するものではない。ストリーム送信装置は、たとえば同じ内容のＰＡＴパケットまたはＰＭＴパケットが再送される場合において、送信済みであるＰＡＴパケットまたはＰＭＴパケットを、ソースブロックを区切る位置の判断に用いない構成であってもよい。
【０２０１】
また、本発明の実施の形態に係るストリーム送信装置は、ＭＰＥＧ２−ＴＳ規格に従うストリームの処理を行なう構成であるとしたが、これに限定するものではない。他の規格に従うストリームの処理を行なう構成であってもよい。
【０２０２】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２０３】
１０  番組配信システム
１１  ネットワーク
１２  表示装置
２０  配信装置（ストリーム送信装置）
２１  番組配信制御部
２２  ストリーム作成部
２３  記憶部
２４  ＲＴＰパケット作成部
２５  ＦＥＣパケット作成部（ソースブロック作成部および復元用パケット作成部）
２６  通信部
４０  番組受信装置
【図１】
0005998599.tif 000002
【図２】
0005998599.tif 000003
【図３】
0005998599.tif 000004
【図４】
0005998599.tif 000005
【図５】
0005998599.tif 000006
【図６】
0005998599.tif 000007
【図７】
0005998599.tif 000008
【図８】
0005998599.tif 000009
【図９】
0005998599.tif 000010