(57)【要約】【課題】ＳＲ方式による再送制御を行う伝送システムにおいて、無線帯域の利用効率を向上させる。【解決手段】送信装置１−１の送信用データ生成・シーケンス番号付与部１０は、映像ファイルを分割した各データにシーケンス番号を付与し、データ記憶部１１に格納する。データ読出部１２は、データ記憶部１１からシーケンス番号の大きい順に全てのデータを読み出し、送信部１３は、シーケンス番号の大きい順にデータパケットを送信する。受信部１４は、Ｉ−ＮＡＣＫを受信し、Ｉ−ＮＡＣＫから受信済みシーケンス番号を抽出する。再送制御部１５は、受信済みシーケンス番号に基づいて再送データの有無を判定し、再送データがない場合、データ記憶部１１の全てのデータを削除し、再送データがある場合、再送シーケンス番号をデータ読出部１２に出力する。送信部１３は、再送シーケンス番号のデータパケットを再送する。【選択図】図２
2014039136.tif 000002
【特許請求の範囲】
【請求項１】
送信装置と受信装置との間で無線通信を行う伝送システムの下で、所定のファイルから複数のデータを生成し、前記データを格納したそれぞれのデータパケットを、前記受信装置へ連続して送信し、前記受信装置から再送要求を受信し、前記再送要求に基づいて、再送データをデータパケットに格納して前記受信装置へ送信する前記送信装置において、
前記ファイルから複数の送信用のデータを生成し、前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与する送信用データ生成・シーケンス番号付与部と、
前記送信用データ生成・シーケンス番号付与部によりシーケンス番号が付与された複数の送信用のデータをパケット化し、前記シーケンス番号の大きい順にデータパケットを送信する送信部と、
前記送信部により送信されたデータパケットを受信する前記受信装置から、受信したデータパケットのシーケンス番号が受信済みシーケンス番号として付加された再送要求を受信し、前記再送要求から受信済みシーケンス番号を抽出する受信部と、
前記受信部により抽出された受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定する再送制御部と、を備え、
前記送信部は、前記受信部が受信した再送要求に対し、前記再送制御部により特定されたシーケンス番号が付与された再送データのデータパケットを送信する、ことを特徴とする送信装置。
【請求項２】
請求項１に記載の送信装置において、
前記送信部は、前記シーケンス番号に加え、データパケットを送信する送信回数も含めて前記データをパケット化し、前記シーケンス番号の大きい順に前記データパケットを送信し、
前記受信部は、前記受信装置から、受信したデータパケットの送信回数及び受信済みシーケンス番号が付加された再送要求を受信し、前記再送要求から送信回数及び受信済みシーケンス番号を抽出し、
前記再送制御部は、前記受信部により抽出された送信回数及び受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定し、前記再送データの送信回数を更新し、
前記送信部は、新たなファイルから生成された複数の送信用のデータを、前記シーケンス番号に加え送信回数も含めてパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、その後、前記再送制御部により特定されたシーケンス番号に加え、前記再送制御部により更新された送信回数も含めた前記再送データのデータパケットを送信する、ことを特徴とする送信装置。
【請求項３】
請求項１に記載の送信装置において、
前記ファイルから生成される複数の送信用のデータを１つのブロックとした場合に、
前記送信用データ生成・シーケンス番号付与部は、前記ファイルから複数の送信用のデータを生成し、前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与すると共に、前記ファイルに対応した同一のブロック番号をそれぞれ付与し、
前記送信部は、前記シーケンス番号に加え、前記ブロック番号も含めて前記データをパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、
前記受信部は、前記受信装置から、受信したデータパケットのブロック番号及び受信済みシーケンス番号が付加された再送要求を受信し、前記再送要求からブロック番号及び受信済みシーケンス番号を抽出し、
前記再送制御部は、前記受信部により抽出されたブロック番号及び受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定し、
前記送信部は、新たなファイルから生成された複数の送信用のデータを、前記シーケンス番号に加えブロック番号も含めてパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、その後、前記再送制御部により特定されたシーケンス番号に加え前記ブロック番号も含めた前記再送データのデータパケットを送信する、ことを特徴とする送信装置。
【請求項４】
請求項１に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、
前記データパケットを受信し、前記受信したデータパケットからシーケンス番号を抽出する受信部と、
前記受信部により抽出されたシーケンス番号を格納するシーケンス番号記憶部と、
所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、
前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記シーケンス番号記憶部に格納されているシーケンス番号を受信済みシーケンス番号として読み出し、前記受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めるシーケンス番号読出部と、
前記シーケンス番号読出部により読み出された受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、
前記タイマ処理部は、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする受信装置。
【請求項５】
請求項２に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、
前記データパケットを受信し、前記受信したデータパケットから送信回数及びシーケンス番号を抽出する受信部と、
前記受信部により抽出された送信回数及びシーケンス番号を格納する送信回数・シーケンス番号記憶部と、
所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、
前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記送信回数・シーケンス番号記憶部に格納されている送信回数を読み出すと共にシーケンス番号を受信済みシーケンス番号として読み出し、前記送信回数及び受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求める送信回数・シーケンス番号読出部と、
前記送信回数・シーケンス番号読出部により読み出された送信回数及び受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、
前記タイマ処理部は、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記最初に受信されたデータパケットのシーケンス番号及び前記送信回数・シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする受信装置。
【請求項６】
請求項３に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、
前記データパケットを受信し、前記受信したデータパケットからブロック番号及びシーケンス番号を抽出する受信部と、
前記受信部により抽出されたブロック番号及びシーケンス番号を格納するブロック番号・シーケンス番号記憶部と、
所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、
前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記ブロック番号・シーケンス番号記憶部に格納されているブロック番号を読み出すと共にシーケンス番号を受信済みシーケンス番号として読み出し、前記ブロック番号及び受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めるブロック番号・シーケンス番号読出部と、
前記ブロック番号・シーケンス番号読出部により読み出されたブロック番号及び受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、
前記タイマ処理部は、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記最初に受信されたデータパケットのシーケンス番号及び前記ブロック番号・シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする受信装置。
【請求項７】
送信装置と受信装置との間で無線通信を行う伝送システムの下で、所定のファイルから複数のデータを生成し、前記データを格納したそれぞれのデータパケットを、前記受信装置へ連続して送信し、前記受信装置から再送要求を受信し、前記再送要求に基づいて、再送データをデータパケットに格納して前記受信装置へ送信する前記送信装置による送信方法において、
前記ファイルから複数の送信用のデータを生成するステップと、
前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与するステップと、
前記シーケンス番号をそれぞれ付与した複数の送信用のデータをパケット化し、データパケットをそれぞれ生成するステップと、
前記シーケンス番号の大きい順に前記データパケットを送信するステップと、
当該送信装置により送信されたデータパケットを受信する前記受信装置から、受信したデータパケットのシーケンス番号が受信済みシーケンス番号として付加された再送要求を受信するステップと、
前記再送要求から受信済みシーケンス番号を抽出するステップと、
前記抽出した受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定するステップと、
前記特定したシーケンス番号における再送データのデータパケットを送信するステップと、
を有することを特徴とする送信方法。
【請求項８】
請求項７に記載の送信方法により連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置による受信方法であって、
前記データパケットを受信し、前記受信したデータパケットからシーケンス番号を抽出する第１のステップと、
前記抽出したシーケンス番号をシーケンス番号記憶部に格納する第２のステップと、
所定のタイムアウトの時間を設定してタイマを起動する第３のステップと、
前記タイマがタイムアウトになったときに、前記シーケンス番号記憶部に格納されているシーケンス番号を受信済みシーケンス番号として読み出し、前記受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めると共に、前記読み出した受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する第４のステップと、を有し、
前記第３のステップは、
前記送信装置から送信されるべき再送データがない場合に、前記第１のステップにて抽出したシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信したデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記第４のステップにて求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする受信方法。
【請求項９】
コンピュータを、請求項１から３までのいずれか一項に記載の送信装置として機能させるためのプログラム。
【請求項１０】
コンピュータを、請求項４から６までのいずれか一項に記載の受信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信を行う送信装置、受信装置、送信方法、受信方法及びプログラムに関し、特に、無線通信における再送制御方式に関する。
【背景技術】
【０００２】
従来、ＴＶの生中継、緊急報道等の映像伝送で用いられている無線伝送システムとして、ＦＰＵ（Field Pick-up Unit）が知られており、ＶＴＲ及びカメラの映像はファイルベース化が進められている。ＦＰＵシステムによってファイルベース化された映像ファイルを伝送するためには、映像ファイルを映像の伝送信号に変換する必要があり（例えば、非特許文献１を参照）、映像伝送に実時間がかかってしまうという問題があった。また、ＦＰＵシステムは、地上での伝送だけでなくヘリコプター等からの伝送にも利用されることから、より強固な誤り制御システムが必要であるという問題もあった。
【０００３】
これらの問題を解決するために、映像ファイルを映像の伝送信号に変換することなく、映像ファイルの状態でそのまま伝送する新たな無線伝送システムとして、マイクロ波帯ＦＰＵシステムの開発が進められている（例えば、非特許文献２を参照）。
【０００４】
この新たなＦＰＵシステムは、ＦＤＤ（Frequency Division Duplex：周波数分割複信）のような方式ではなく、システムの周波数帯の変更を伴わずに送受信を行うＴＤＤ（Time Division Duplex：時分割複信）方式を基本とした半二重伝送を採用している。
【０００５】
図１８は、従来のＦＰＵシステムによるネットワークの全体構成を示す概略図である。この従来のＦＰＵシステムによるネットワークは、撮像装置１００、送信装置１０１、受信装置１０２及びデータ蓄積装置１０３を備えて構成される。このＦＰＵシステムによる映像ファイルの無線伝送は、ＴＤＤ方式を想定しており、映像ファイルの伝送誤りに対して再送制御を実現する。具体的には、カメラ等の撮像装置１００により撮影された映像がファイル化され、映像ファイルとして送信装置１０１及び受信装置１０２を介してデータ蓄積装置１０３へ伝送される。伝送した映像ファイルに伝送誤りが発生したときには、再送要求が返信され、再送処理が行われる。
【０００６】
撮像装置１００は、撮影した映像をファイル化し、映像ファイルのデータを送信装置１０１へ伝送する。また、撮像装置１００は、送信装置１０１から再送要求を受信した場合、再送要求の対象となる映像ファイルのデータを送信装置１０１へ伝送する。
【０００７】
送信装置１０１は、ＦＰＵを備えており、撮像装置１００から映像ファイルのデータを受信し、受信した映像ファイルのデータを無線媒体として受信装置１０２へ伝送すると共に、受信装置１０２から再送要求を受信した場合、再送要求の対象となる映像ファイルのデータを受信装置１０２へ伝送する。また、送信装置１０１は、撮像装置１００から映像ファイルのデータを受信できなかった場合、再送要求を撮像装置１００へ送信し、再送要求の対象となる映像ファイルのデータを撮像装置１００から受信する。
【０００８】
受信装置１０２は、ＦＰＵを備えており、送信装置１０１から映像ファイルのデータを受信し、受信した映像ファイルのデータをデータ蓄積装置１０３へ伝送すると共に、データ蓄積装置１０３から再送要求を受信した場合、再送要求の対象となる映像ファイルのデータをデータ蓄積装置１０３へ伝送する。また、受信装置１０２は、送信装置１０１から映像ファイルのデータを受信できなかった場合、再送要求を送信装置１０１へ送信し、再送要求の対象となる映像ファイルのデータを送信装置１０１から受信する。
【０００９】
データ蓄積装置１０３は、受信装置１０２から映像ファイルのデータを受信し、受信した映像ファイルのデータを記憶装置に格納すると共に、受信装置１０２から映像ファイルのデータを受信できなかった場合、再送要求を受信装置１０２へ送信し、再送要求の対象となる映像ファイルのデータを受信装置１０２から受信する。
【００１０】
図１９は、従来のＦＰＵシステムにおけるＳＲ（Selective-Repeat）方式による再送制御を説明するタイムチャートである。一般に、代表的な再送制御方式としてＳＲ方式が知られている（例えば、非特許文献３を参照）。このＳＲ方式では、図１９に示すように、送信側から受信側へ、連続した映像ファイルのデータパケットを伝送する。受信側は、送信側から最終パケットを受信したときに、または、最終パケットの受信完了がない場合は一定期間待機してタイムアウトになったときに、受信したデータパケットのシーケンス番号を付加したＮＡＣＫ（Negative Acknowledgment）を送信側へ通知する。このようにして、受信側から送信側へ再送要求が行われる。例えば、図１９の例では、受信側は、最終パケットの受信完了がなくタイムアウトになったときに、シーケンス番号＃１，＃４，・・・，＃ｎ−３のデータパケットを受信したことを判定し、当該シーケンス番号を付加したＮＡＣＫを送信側へ通知する。
【００１１】
送信側は、受信側からＮＡＣＫを受信すると、ＮＡＣＫに付加されたシーケンス番号から再送要求の対象となるデータパケットを特定し、特定したデータパケットのみを受信側へ再送する。前述の例では、送信側は、受信したＮＡＣＫに従って、再送要求の対象となるデータパケットがシーケンス番号＃１，＃４，・・・，＃ｎ−３以外のシーケンス番号＃２，＃３，＃ｎ−２，＃ｎ−１，＃ｎのデータパケットであると特定し、これらのデータパケットのみを受信側へ再送する。
【００１２】
受信側は、ＮＡＣＫを送信側へ通知した後に一定期間待機しても、再送要求の対象となるデータパケットの受信が確認されない場合、再度ＮＡＣＫを通知する。送信側は、受信したＮＡＣＫに付加されたシーケンス番号に基づいて、受信側が全てのシーケンス番号のデータパケットを受信したことを判定すると、当該映像ファイルについてデータパケットの再送を行わない。また、送信側は、最終パケットを送信した後にＮＡＣＫを受信しない場合には、データパケットの再送を行わない。以下、送信側を送信装置１０１とし、受信側を受信装置１０２として説明する。
【００１３】
図２０は、従来の送信装置１０１の処理を示すフローチャートである。まず、送信装置１０１は、映像ファイルから複数の送信用のデータを生成し（ステップＳ１）、各データにシーケンス番号をインクリメントして付与し（ｎ＝ｎ＋１，初期値ｎ＝０）、シーケンス番号を付与したデータをキュー（Ｑｕｅｕｅ）に格納する（ステップＳ２）。そして、送信装置１０１は、キューからデータを、小さいシーケンス番号から順番にコピーして読み出し（ステップＳ３）、読み出したデータをデータパケット化して無線媒体として受信装置１０２へ送信する（ステップＳ４）。
【００１４】
送信装置１０１は、最終シーケンス番号のデータ（最終パケット）を送信したか否かを判定し（ステップＳ５）、最終シーケンス番号のデータを送信するまで、前記ステップＳ３及びステップＳ４の処理を繰り返し、最終シーケンス番号のデータを送信した後、ＮＡＣＫの受信を待つ（ステップＳ６）。
【００１５】
送信装置１０１は、ＮＡＣＫを受信した後、再送データがあるか否かを判定する（ステップＳ７）。送信装置１０１は、ＮＡＣＫに付加された情報（受信装置１０２にて受信したデータのシーケンス番号）に基づいて、受信装置１０２が全てのデータの受信を完了しておらず、再送データがあると判定した場合、ＮＡＣＫに付加された情報が示すシーケンス番号以外のシーケンス番号のデータ（再送対象のデータ）をキューからコピーして読み出し（ステップＳ８）、読み出したデータをデータパケット化して受信装置１０２へ再送する（ステップＳ９）。そして、ステップＳ６へ移行してＮＡＣＫの受信を待つ。
【００１６】
送信装置１０１は、ステップＳ６において、ＮＡＣＫに付加された情報が示すシーケンス番号に基づいて、受信装置１０２が全てのデータの受信を完了しており、再送データがないと判定した場合、キューに格納されたデータを削除し（ステップＳ１０）、処理を終了する。
【００１７】
図２１は、従来の受信装置１０２の処理を示すフローチャートである。まず、受信装置１０２は、送信装置１０１から送信されたデータ（データパケット）の受信を開始し（ステップＳ１１）、連続でデータを受信しているか否かを判定する（ステップＳ１２）。受信装置１０２は、ステップＳ１２において、連続してデータを受信していると判定した場合、受信したデータに付与されたシーケンス番号を記憶手段に格納し（ステップＳ１３）、受信したデータに付与されたシーケンス番号が最終シーケンス番号であるか否か、または、再送データを受信したときに再送データの受信が完了したか否かを判定する（ステップＳ１４）。
【００１８】
受信装置１０２は、ステップＳ１４において、最終シーケンス番号でないと判定した場合、または、再送データを受信したときに再送データの受信が完了していないと判定した場合、ステップＳ１２へ移行する。一方、受信装置１０２は、ステップＳ１４において、最終シーケンス番号であると判定した場合、または、再送データを受信したときに再送データの受信が完了したと判定した場合、ステップＳ１９へ移行する。
【００１９】
受信装置１０２は、ステップＳ１２において、連続してデータを受信していないと判定した場合（受信誤りが生じた場合）、任意の一定期間のＮＡＣＫタイマを起動し（ステップＳ１５）、後続のデータを受信したか否かを判定する（ステップＳ１６）。受信装置１０２は、ステップＳ１６において、後続のデータを受信したと判定した場合、ＮＡＣＫタイマを停止し（ステップＳ１７）、ステップＳ１３へ移行する。一方、受信装置１０２は、ステップＳ１６において、後続のデータを受信していないと判定した場合、ＮＡＣＫタイマがタイムアウトするか否かを判定し（ステップＳ１８）、タイムアウトしていないと判定した場合、ステップＳ１６へ移行する。受信装置１０２は、ＮＡＣＫタイマがタイムアウトするまで待ち、タイムアウトした場合にはステップＳ１９へ移行する。
【００２０】
受信装置１０２は、ステップＳ１４から移行して（受信したデータに付与されたシーケンス番号が最終シーケンス番号であると判定した場合、または、再送データを受信したときに再送データの受信が完了したと判定した場合）、または、ステップＳ１８においてタイムアウトしたと判定した場合、ＮＡＣＫを送信装置１０１へ送信し（ステップＳ１９）、処理を終了する。具体的には、受信装置１０２は、ステップＳ１３にて記憶手段に格納したシーケンス番号（受信したデータに付与されていたシーケンス番号）をＮＡＣＫに付加し、ＮＡＣＫを送信装置１０１へ送信する。
【先行技術文献】
【非特許文献】
【００２１】
【非特許文献１】ARIB STD-B11、「テレビジョン放送番組素材伝送用可搬型マイクロ波帯デジタル無線伝送システム」、標準規格
【非特許文献２】鵜澤史貴，光山和彦，池田哲臣、「双方向ＦＰＵに向けた複信方式の検討」、映像情報メディア学会技術報告、BCT2011-63, Sep. 2011
【非特許文献３】S.Lin, D.Costello Jr., and M.Miller, “Automatic-repeat-request error-control schemes”, IEEE Commun.Mag., Vol.22, No.12, pp.5-17, Dec.1984
【発明の概要】
【発明が解決しようとする課題】
【００２２】
このように、従来のＳＲ方式による再送制御を行うＦＰＵシステムにおいて、送信装置１０１は、映像ファイルの各データをバースト送信する際に、小さいシーケンス番号のデータパケットから順番に受信装置１０２へ送信し、受信装置１０２は、伝送誤り等が生じたことにより、データパケットを受信することができない場合、受信できなかったデータパケットの再送を要求するためにＮＡＣＫを通知する。受信装置１０２がＮＡＣＫを通知するタイミングは、基本的には、送信装置１０１から最終パケットを受信したときであるから、最終パケットの受信がＮＡＣＫを通知する送信トリガーとなる。
【００２３】
しかしながら、受信装置１０２が最終パケットを受信できない場合には、ＮＡＣＫタイマのタイムアウトがＮＡＣＫを通知する送信トリガーとなる。これは、全てのデータパケットの受信完了のタイミングを判断することができないからである。このため、受信装置１０２では、ＮＡＣＫを通知してから、送信装置１０１から再送対象のデータパケットを受信するまでの間の待機時間がオーバヘッドとなり、また、送信装置１０１が再送を繰り返すことにより、待機時間がさらに増加してしまう。
【００２４】
このように、従来のＳＲ方式による再送制御を行うＦＰＵシステムでは、受信装置１０２が最終パケットを受信できない場合に、受信装置１０２では無駄な待機時間が発生し、無線帯域の利用効率が低下するという課題があった。
【００２５】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、ＳＲ方式による再送制御を行う伝送システムにおいて、無線帯域の利用効率を向上させることが可能な送信装置、受信装置、送信方法、受信方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００２６】
前記目的を達成するために、本発明による請求項１の送信装置は、送信装置と受信装置との間で無線通信を行う伝送システムの下で、所定のファイルから複数のデータを生成し、前記データを格納したそれぞれのデータパケットを、前記受信装置へ連続して送信し、前記受信装置から再送要求を受信し、前記再送要求に基づいて、再送データをデータパケットに格納して前記受信装置へ送信する前記送信装置において、前記ファイルから複数の送信用のデータを生成し、前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与する送信用データ生成・シーケンス番号付与部と、前記送信用データ生成・シーケンス番号付与部によりシーケンス番号が付与された複数の送信用のデータをパケット化し、前記シーケンス番号の大きい順にデータパケットを送信する送信部と、前記送信部により送信されたデータパケットを受信する前記受信装置から、受信したデータパケットのシーケンス番号が受信済みシーケンス番号として付加された再送要求を受信し、前記再送要求から受信済みシーケンス番号を抽出する受信部と、前記受信部により抽出された受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定する再送制御部と、を備え、前記送信部が、前記受信部が受信した再送要求に対し、前記再送制御部により特定されたシーケンス番号が付与された再送データのデータパケットを送信する、ことを特徴とする。
【００２７】
また、本発明による請求項２の送信装置は、請求項１に記載の送信装置において、前記送信部が、前記シーケンス番号に加え、データパケットを送信する送信回数も含めて前記データをパケット化し、前記シーケンス番号の大きい順に前記データパケットを送信し、前記受信部が、前記受信装置から、受信したデータパケットの送信回数及び受信済みシーケンス番号が付加された再送要求を受信し、前記再送要求から送信回数及び受信済みシーケンス番号を抽出し、前記再送制御部が、前記受信部により抽出された送信回数及び受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定し、前記再送データの送信回数を更新し、前記送信部が、新たなファイルから生成された複数の送信用のデータを、前記シーケンス番号に加え送信回数も含めてパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、その後、前記再送制御部により特定されたシーケンス番号に加え、前記再送制御部により更新された送信回数も含めた前記再送データのデータパケットを送信する、ことを特徴とする。
【００２８】
また、本発明による請求項３の送信装置は、請求項１に記載の送信装置において、前記ファイルから生成される複数の送信用のデータを１つのブロックとした場合に、前記送信用データ生成・シーケンス番号付与部が、前記ファイルから複数の送信用のデータを生成し、前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与すると共に、前記ファイルに対応した同一のブロック番号をそれぞれ付与し、前記送信部は、前記シーケンス番号に加え、前記ブロック番号も含めて前記データをパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、前記受信部が、前記受信装置から、受信したデータパケットのブロック番号及び受信済みシーケンス番号が付加された再送要求を受信し、前記再送要求からブロック番号及び受信済みシーケンス番号を抽出し、前記再送制御部が、前記受信部により抽出されたブロック番号及び受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定し、前記送信部が、新たなファイルから生成された複数の送信用のデータを、前記シーケンス番号に加えブロック番号も含めてパケット化し、前記シーケンス番号の大きい順にデータパケットを送信し、その後、前記再送制御部により特定されたシーケンス番号に加え前記ブロック番号も含めた前記再送データのデータパケットを送信する、ことを特徴とする。
【００２９】
さらに、本発明による請求項４の受信装置は、請求項１に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、前記データパケットを受信し、前記受信したデータパケットからシーケンス番号を抽出する受信部と、前記受信部により抽出されたシーケンス番号を格納するシーケンス番号記憶部と、所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記シーケンス番号記憶部に格納されているシーケンス番号を受信済みシーケンス番号として読み出し、前記受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めるシーケンス番号読出部と、前記シーケンス番号読出部により読み出された受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、前記タイマ処理部が、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする。
【００３０】
また、本発明による請求項５の受信装置は、請求項２に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、前記データパケットを受信し、前記受信したデータパケットから送信回数及びシーケンス番号を抽出する受信部と、前記受信部により抽出された送信回数及びシーケンス番号を格納する送信回数・シーケンス番号記憶部と、所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記送信回数・シーケンス番号記憶部に格納されている送信回数を読み出すと共にシーケンス番号を受信済みシーケンス番号として読み出し、前記送信回数及び受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求める送信回数・シーケンス番号読出部と、前記送信回数・シーケンス番号読出部により読み出された送信回数及び受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、前記タイマ処理部が、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記最初に受信されたデータパケットのシーケンス番号及び前記送信回数・シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする。
【００３１】
また、本発明による請求項６の受信装置は、請求項３に記載の送信装置から連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置であって、前記データパケットを受信し、前記受信したデータパケットからブロック番号及びシーケンス番号を抽出する受信部と、前記受信部により抽出されたブロック番号及びシーケンス番号を格納するブロック番号・シーケンス番号記憶部と、所定のタイムアウトの時間を設定してタイマを起動するタイマ処理部と、前記タイマ処理部により起動されたタイマがタイムアウトになったときに、前記ブロック番号・シーケンス番号記憶部に格納されているブロック番号を読み出すと共にシーケンス番号を受信済みシーケンス番号として読み出し、前記ブロック番号及び受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めるブロック番号・シーケンス番号読出部と、前記ブロック番号・シーケンス番号読出部により読み出されたブロック番号及び受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する送信部と、を備え、前記タイマ処理部が、前記送信装置から送信されるべき再送データがない場合に、前記受信部により抽出されたシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信されたデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記最初に受信されたデータパケットのシーケンス番号及び前記ブロック番号・シーケンス番号読出部により求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする。
【００３２】
さらに、本発明による請求項７の送信方法は、送信装置と受信装置との間で無線通信を行う伝送システムの下で、所定のファイルから複数のデータを生成し、前記データを格納したそれぞれのデータパケットを、前記受信装置へ連続して送信し、前記受信装置から再送要求を受信し、前記再送要求に基づいて、再送データをデータパケットに格納して前記受信装置へ送信する前記送信装置による送信方法において、前記ファイルから複数の送信用のデータを生成するステップと、前記複数の送信用のデータに対し、インクリメントしたシーケンス番号をそれぞれ付与するステップと、前記シーケンス番号をそれぞれ付与した複数の送信用のデータをパケット化し、データパケットをそれぞれ生成するステップと、前記シーケンス番号の大きい順に前記データパケットを送信するステップと、当該送信装置により送信されたデータパケットを受信する前記受信装置から、受信したデータパケットのシーケンス番号が受信済みシーケンス番号として付加された再送要求を受信するステップと、前記再送要求から受信済みシーケンス番号を抽出するステップと、前記抽出した受信済みシーケンス番号に基づいて、前記複数の送信用のデータの中から再送データのシーケンス番号を特定するステップと、前記特定したシーケンス番号における再送データのデータパケットを送信するステップと、を有することを特徴とする。
【００３３】
さらに、本発明による請求項８の受信方法は、請求項７に記載の送信方法により連続して送信された複数のデータパケットを受信し、再送要求を前記送信装置へ送信する受信装置による受信方法であって、前記データパケットを受信し、前記受信したデータパケットからシーケンス番号を抽出する第１のステップと、前記抽出したシーケンス番号をシーケンス番号記憶部に格納する第２のステップと、所定のタイムアウトの時間を設定してタイマを起動する第３のステップと、前記タイマがタイムアウトになったときに、前記シーケンス番号記憶部に格納されているシーケンス番号を受信済みシーケンス番号として読み出し、前記受信済みシーケンス番号に基づいて、前記送信装置から再送されるべき再送データの数を求めると共に、前記読み出した受信済みシーケンス番号を再送要求に付加し、前記再送要求を送信する第４のステップと、を有し、前記第３のステップが、前記送信装置から送信されるべき再送データがない場合に、前記第１のステップにて抽出したシーケンス番号であって、前記送信装置により連続して送信された複数のデータパケットのうち、最初に受信したデータパケットのシーケンス番号に基づいて、前記タイムアウトの時間を設定してタイマを起動し、前記再送データがある場合に、前記第４のステップにて求めた再送データ数に基づいて、前記タイムアウトの時間を設定してタイマを起動する、ことを特徴とする。
【００３４】
さらに、本発明による請求項９のプログラムは、コンピュータを、請求項１から３までのいずれか一項に記載の送信装置として機能させることを特徴とする。
【００３５】
また、本発明による請求項１０のプログラムは、コンピュータを、請求項４から６までのいずれか一項に記載の受信装置として機能させることを特徴とする。
【発明の効果】
【００３６】
以上のように、本発明によれば、受信装置は、最終パケットを受信できない場合であっても、再送要求を送信するタイミングを、先頭パケットのシーケンス番号から最終パケットを受信する予定の時間を考慮して予め設定することができる。これにより、再送要求を送信するタイミングが遅くなることがなく、無線帯域の利用効率が低下することがない。したがって、ＳＲ方式による再送制御を行う伝送システムにおいて、無線帯域の利用効率を向上させることが可能となる。
【図面の簡単な説明】
【００３７】
【図１】実施例１の再送制御を説明するタイムチャートである。
【図２】実施例１による送信装置の構成を示すブロック図である。
【図３】実施例１による送信装置の処理を示すフローチャートである。
【図４】実施例１による受信装置の構成を示すブロック図である。
【図５】実施例１による受信装置の処理を示すフローチャートである。
【図６】実施例２の再送制御を説明するタイムチャートである。
【図７】実施例２による送信装置の構成を示すブロック図である。
【図８】実施例２において、データ記憶部に格納されたデータの送信回数及びシーケンス番号の遷移を説明する図である。
【図９Ａ】実施例２による送信装置の処理を示すフローチャートである。
【図９Ｂ】図９Ａの処理の続きを示すフローチャートである。
【図１０】実施例２による受信装置の構成を示すブロック図である。
【図１１】実施例２において、送信回数・シーケンス番号記憶部に格納された送信回数及びシーケンス番号の遷移を説明する図である。
【図１２】実施例２による受信装置の処理を示すフローチャートである。
【図１３】実施例３の再送制御を説明するタイムチャートである。
【図１４】実施例３による送信装置の構成を示すブロック図である。
【図１５Ａ】実施例３による送信装置の処理を示すフローチャートである。
【図１５Ｂ】図１５Ａの処理の続きを示すフローチャートである。
【図１６】実施例３による受信装置の構成を示すブロック図である。
【図１７】実施例３による受信装置の処理を示すフローチャートである。
【図１８】従来のＦＰＵシステムによるネットワークの全体構成を示す概略図である。
【図１９】従来のＦＰＵシステムにおけるＳＲ方式による再送制御を説明するタイムチャートである。
【図２０】従来の送信装置の処理を示すフローチャートである。
【図２１】従来の受信装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００３８】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明による第１の実施形態（実施例１）は、送信装置が、映像ファイルのデータパケットの順序を逆にし、最終パケットから先頭パケットの順番にデータパケットを送信し、受信装置が、最初のデータパケットを受信した際に、最後のデータパケットを受信する受信終了時間を予測し、受信終了時間に再送要求（Ｉ（Instantaneous）−ＮＡＣＫ）を通知することを特徴とする。また、第２の実施形態（実施例２）は、実施例１において、送信装置が、データパケットを送信する際に、シーケンス番号に加えて送信回数も送信し、再送の際に、新規の映像ファイルのデータパケットを送信した後に再送対象のデータパケットを送信し、受信装置が、最初のデータパケットを受信した際に、再送対象のデータパケットも含めた受信終了時間を予測する。また、第３の実施形態（実施例３）は、実施例２における送信回数の代わりに、映像ファイルに対応するブロック番号を送信する。尚、ブロックとは、映像ファイルのデータをデータパケット化して送信する際に、映像ファイルに対する１回のバースト送信の単位をいう。
【００３９】
〔実施例１〕
まず、実施例１について説明する。図１は、実施例１の再送制御を説明するタイムチャートである。送信装置１−１は、映像ファイルを構成する各データにシーケンス番号＃１〜＃ｎを付与し、最終のシーケンス番号＃ｎのデータパケット（最終パケット）から最初のシーケンス番号＃１のデータパケット（先頭パケット）までを順番に、受信装置２−１へ連続してバースト送信する。
【００４０】
受信装置２−１は、送信装置１−１から最初のデータパケットを受信した際に、そのデータパケットのデータに付与されたシーケンス番号＃ｎから、送信装置１−１から送信される全てのデータパケットの数を検知し、最終のデータパケットを受信する受信終了時間を予測する。そして、受信装置２−１は、Ｉ−ＮＡＣＫタイマを起動して受信終了時間になったときに、受信した全てのデータパケットのシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−１へ送信する。受信装置２−１は、再送対象のデータパケットの数を記憶する。
【００４１】
送信装置１−１は、受信装置２−１からＩ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されたシーケンス番号から再送対象のデータパケットを特定し、特定したデータパケットを再送する。
【００４２】
受信装置２−１は、送信装置１−１から再送対象のデータパケットを受信すると、記憶していた再送対象のデータパケットの数から、最終のデータパケットを受信する受信終了時間を予測し、前述と同様に、受信終了時間になったときに、Ｉ−ＮＡＣＫを送信装置１−１へ送信する。
【００４３】
図１に示した例では、送信装置１−１から合計ｎ個のデータパケットが送信され、シーケンス番号＃ｎ−１，＃ｎ−２，＃３，＃２，＃１のデータパケットに受信誤りが生じた場合を示している。受信装置２−１は、送信装置１−１から最初のシーケンス番号＃ｎを受信した際に、シーケンス番号＃ｎから全てのデータパケットの数ｎを検知し、受信終了時間を予測する。そして、受信装置２−１は、受信終了時間になったときに、受信済みのデータパケットのシーケンス番号＃ｎ，＃ｎ−３，・・・，＃４を付加したＩ−ＮＡＣＫを送信装置１−１へ送信する。送信装置１−１は、Ｉ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されていないシーケンス番号＃ｎ−１，＃ｎ−２，＃３，＃２，＃１のデータパケットに受信誤りが生じたと判定し、これらのデータパケットを再送する。再送するデータパケットの順番は、同様に、シーケンス番号の大きい順である。受信装置２−１は、送信装置１−１から最初のデータパケットを受信した際に、記憶していた再送対象のデータパケットの数から受信終了時間を予測する。そして、受信装置２−１は、受信終了時間になったときに、受信済みのデータパケットのシーケンス番号＃ｎ−１，＃ｎ−２，＃３，＃２，＃１を付加したＩ−ＮＡＣＫを送信装置１−１へ送信する。このように、受信装置２−１が全てのデータパケットを受信するまで、これらの処理が繰り返される。
【００４４】
このように、実施例１の再送制御によれば、送信装置１−１は、データにシーケンス番号を付与し、シーケンス番号の大きい順にデータパケットを送信するようにした。これにより、受信装置２−１は、Ｉ−ＮＡＣＫを送信するタイミングを、最初に受信したデータパケットのシーケンス番号に基づいて設定することができる。したがって、受信装置２−１において、Ｉ−ＮＡＣＫを送信するための待機時間の短縮を図ることができ、Ｉ−ＮＡＣＫを送信するまでの時間が延びることなく、データ伝送時間を低減し、無線帯域の利用効率を向上させることが可能となる。
【００４５】
また、受信装置２−１は、送信装置１−１から送信された最終のパケットに受信誤りが生じた場合であっても、既に受信している最初のデータパケットから受信終了時間を予測しているから、Ｉ−ＮＡＣＫを送信するタイミングが遅れることはなく、無線帯域の利用効率が低下することがない。
【００４６】
また、受信装置２−１は、送信装置１−１から再送対象のデータパケットを受信すると、Ｉ−ＮＡＣＫを送信するタイミングを、記憶していた再送対象のデータパケットの数から設定するようにした。これにより、前述と同様に、Ｉ−ＮＡＣＫを送信するための待機時間の短縮を図ることができ、Ｉ−ＮＡＣＫを送信するまでの時間が延びることなく、データ伝送時間を低減し、無線帯域の利用効率を向上させることが可能となる。
【００４７】
（送信装置の構成／実施例１）
次に、実施例１による送信装置１−１の構成について説明する。図２は、送信装置１−１の構成を示すブロック図である。この送信装置１−１は、送信用データ生成・シーケンス番号付与部１０、データ記憶部１１、データ読出部１２、送信部１３、受信部１４及び再送制御部１５を備えている。
【００４８】
送信用データ生成・シーケンス番号付与部１０は、送信対象の映像ファイルを入力し、映像ファイルを複数のデータに分割して送信用のデータを生成し、生成した各データにシーケンス番号を付与する。送信用データ生成・シーケンス番号付与部１０は、シーケンス番号を付与した各データをデータ記憶部１１に格納する。
【００４９】
データ記憶部１１には、シーケンス番号が付与された各データが記憶される。図２の例では、映像ファイルがｎ個のデータに分割され、シーケンス番号＃１〜＃ｎが付与されたデータが順番にデータ記憶部１１のキューに格納されている。
【００５０】
データ読出部１２は、データ記憶部１１から、シーケンス番号の大きい順に全てのデータを読み出す。図２の例では、シーケンス番号＃ｎ〜＃１の順にデータが読み出される。また、データ読出部１２は、再送制御部１５から再送シーケンス番号を入力した場合には、データ記憶部１１から、再送シーケンス番号の大きい順に再送シーケンス番号の示す全てのデータを読み出す。
【００５１】
送信部１３は、データ読出部１２からデータを入力し、データパケットを生成し、シーケンス番号の大きい順にデータパケットを受信装置２−１へ送信する。図２の例では、シーケンス番号＃ｎ〜＃１の順にデータパケットが送信される。
【００５２】
受信部１４は、受信装置２−１からＩ−ＮＡＣＫを受信し、Ｉ−ＮＡＣＫに付加されているシーケンス番号（受信済みシーケンス番号）を抽出する。この受信済みシーケンス番号は、受信装置２−１が受信した全てのデータパケットのシーケンス番号を示している。
【００５３】
再送制御部１５は、受信部１４から受信済みシーケンス番号を入力し、受信済みシーケンス番号から、映像ファイルの各データに付与されたシーケンス番号のうち受信済みでないシーケンス番号を再送シーケンス番号として特定する。この場合、再送制御部１５は、映像ファイルから生成された各データの全てのシーケンス番号及び受信済みシーケンス番号を管理している。再送制御部１５は、再送シーケンス番号を特定できない場合、受信装置２−１が全てのデータパケットを受信したと判定し、データ記憶部１１に格納された全てのデータを削除する。一方、再送制御部１５は、再送シーケンス番号を特定した場合、受信装置２−１が受信していないデータパケットがあると判定し、再送シーケンス番号をデータ読出部１２に出力する。これにより、再送シーケンス番号のデータパケットが再送される。
【００５４】
（送信装置の処理／実施例１）
次に、実施例１による送信装置１−１の処理について説明する。図３は、送信装置１−１の処理を示すフローチャートである。送信装置１−１による映像ファイルの送信処理が開始すると、送信用データ生成・シーケンス番号付与部１０は、映像ファイルから複数の送信用のデータを生成し（ステップＳ３０１）、各データにシーケンス番号をインクリメントして付与し（ｎ＝ｎ＋１，初期値ｎ＝０）、シーケンス番号を付与したデータをデータ記憶部１１のキューに格納する（ステップＳ３０２）。そして、データ読出部１２は、キューから、大きいシーケンス番号順にデータをコピーして読み出し（ステップＳ３０３）、送信部１３は、データ読出部１２により読み出されたデータをデータパケット化し、無線媒体として受信装置２−１へ送信する（ステップＳ３０４）。
【００５５】
送信部１３は、最も小さいシーケンス番号＃１のデータを送信したか否を判定し（ステップＳ３０５）、最も小さいシーケンス番号＃１のデータを送信したと判定した場合（ステップＳ３０５：ＹＥＳ）、ステップＳ３０６へ移行し、最も小さいシーケンス番号＃１のデータを送信していないと判定した場合（ステップＳ３０５：ＮＯ）、ステップＳ３０３へ移行する。このように、送信装置１−１は、最も小さいシーケンス番号＃１のデータを送信するまで、データ読出部１２によるステップＳ３０３の処理及び送信部１３によるステップＳ３０４の処理を繰り返す。
【００５６】
受信部１４は、ステップＳ３０５から移行して（送信部１３により最も小さいシーケンス番号＃１のデータが送信された後）、受信装置２−１からＩ−ＮＡＣＫを受信したか否かを判定する（ステップＳ３０６）。受信部１４は、Ｉ−ＮＡＣＫを受信していないと判定した場合（ステップＳ３０６：ＮＯ）、Ｉ−ＮＡＣＫを受信するまで待つ。
【００５７】
受信部１４は、ステップＳ３０６において、Ｉ−ＮＡＣＫを受信したと判定した場合（ステップＳ３０６：ＹＥＳ）、再送制御部１５は、Ｉ−ＮＡＣＫに付加された受信済みシーケンス番号から受信済みでないシーケンス番号を特定し、再送データがあるかないかを判定する（ステップＳ３０７）。
【００５８】
再送制御部１５は、ステップＳ３０７において、受信装置２−１が全てのデータの受信を完了しておらず、再送データがあると判定した場合（ステップＳ３０７：ＹＥＳ）、データ読出部１２は、キューから、受信済みでないシーケンス番号が示す全てのデータを、大きいシーケンス番号順にコピーして読み出し（ステップＳ３０８）、送信部１３は、データ読出部１２により読み出されたデータをデータパケット化し、無線媒体として受信装置２−１へ再送する（ステップＳ３０９）。そして、ステップＳ３０６へ移行し、Ｉ−ＮＡＣＫの受信を待つ。このように、再送データがなくなるまで、ステップＳ３０８、ステップＳ３０９、ステップＳ３０６及びステップＳ３０７の処理を繰り返す。
【００５９】
再送制御部１５は、ステップＳ３０７において、受信装置２−１が全てのデータの受信を完了しており、再送データがないと判定した場合（ステップＳ３０７：ＮＯ）、キューのデータを削除する（ステップＳ３１０）。これにより、送信装置１−１による映像ファイルの送信処理は終了し、開始から繰り返される。
【００６０】
（受信装置の構成／実施例１）
次に、実施例１による受信装置２−１の構成について説明する。図４は、受信装置２−１の構成を示すブロック図である。この受信装置２−１は、受信部２０、データ記憶部２１、データ読出部２２、Ｉ−ＮＡＣＫタイマ処理部２３、シーケンス番号記憶部２４、シーケンス番号読出部２５及び送信部２６を備えている。
【００６１】
受信部２０は、送信装置１−１からデータパケットを受信すると、データパケットからデータを抽出し、データに付与されたシーケンス番号を抽出する。受信部２０は、送信装置１−１によるデータパケットの連続したバースト送信の中で、最初に受信したデータパケットのシーケンス番号をＩ−ＮＡＣＫタイマ処理部２３に出力する。また、受信部２０は、抽出したデータ（シーケンス番号が付与されたデータ）をデータ記憶部２１に格納すると共に、抽出したシーケンス番号をシーケンス番号記憶部２４に格納する。
【００６２】
データ記憶部２１には、受信したデータパケットの各データが記憶される。図４の例では、受信したデータパケットについてのシーケンス番号＃ｎ，＃ｎ−３，・・・，＃４の各データが順番にデータ記憶部２１のキューに格納されている。この例は、図１に示したように、送信装置１−１から合計ｎ個のデータパケットが送信され、シーケンス番号＃ｎ−１，＃ｎ−２，＃３，＃２，＃１のデータパケットに受信誤りが生じ、シーケンス番号＃ｎ，＃ｎ−３，・・・，＃４のデータパケットを正しく受信した場合を示している。
【００６３】
データ読出部２２は、データ記憶部２１に映像ファイルを構成する全てのデータが格納された場合、データ記憶部２１から、シーケンス番号の小さい順に全てのデータを読み出し、これらのデータを合成して元の映像ファイルを生成し、生成した映像ファイルを出力する。
【００６４】
Ｉ−ＮＡＣＫタイマ処理部２３は、受信部２０から最初に受信したデータパケットのシーケンス番号を入力し、シーケンス番号読出部２５から再送データ数を入力し、入力した再送データ数が０であり、受信データが再送データでないと判定した場合、入力したシーケンス番号に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。一方、Ｉ−ＮＡＣＫタイマ処理部２３は、入力した再送データ数が０でなく、受信データが再送データであると判定した場合、再送データ数に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。Ｉ−ＮＡＣＫタイマ処理部２３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたときに、タイムアウトをシーケンス番号読出部２５に出力する。
【００６５】
シーケンス番号記憶部２４には、受信したデータパケットについてのシーケンス番号が記憶される。図４の例では、受信したデータパケットについてのシーケンス番号＃ｎ，＃ｎ−３，・・・，＃４が順番にデータ記憶部２４のキューに格納されている。この例は、データ記憶部２１に格納されたデータに対応している。
【００６６】
シーケンス番号読出部２５は、Ｉ−ＮＡＣＫタイマ処理部２３からタイムアウトを入力したとき、シーケンス番号記憶部２４に格納されたシーケンス番号を読み出して受信済みシーケンス番号に設定し、受信済みシーケンス番号を送信部２６に出力する。また、シーケンス番号読出部２５は、シーケンス番号記憶部２４からシーケンス番号を読み出した後、シーケンス番号記憶部２４のシーケンス番号を削除する。シーケンス番号読出部２５は、受信済みシーケンス番号に基づいて、送信装置１−１から送信された全てのデータの受信が完了していないと判定した場合、受信が完了していないデータ数を再送データ数としてＩ−ＮＡＣＫタイマ処理部２３に出力する。一方、シーケンス番号読出部２５は、送信装置１−１から送信された全てのデータの受信が完了していると判定した場合、再送データ数０をＩ−ＮＡＣＫタイマ処理部２３に出力する。この場合、シーケンス番号読出部２５は、送信装置１−１から送信された全てのデータのシーケンス番号及び受信済みシーケンス番号を管理している。
【００６７】
送信部２６は、シーケンス番号読出部２５から受信済みシーケンス番号を入力し、入力した受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−１へ送信する。この受信済みシーケンス番号は、受信装置２−１が受信した全てのデータパケットのシーケンス番号を示している。図４の例では、シーケンス番号＃ｎ，＃ｎ−３，・・・，＃４が付加されたＩ−ＮＡＣＫが送信される。
【００６８】
（受信装置の処理／実施例１）
次に、実施例１による受信装置２−１の処理について説明する。図５は、その処理を示すフローチャートである。受信装置２−１による映像ファイルの受信処理が開始すると、受信部２０は、送信装置１−１からのデータパケットの送信に伴って、データパケットの受信を開始する（ステップＳ５０１）。Ｉ−ＮＡＣＫタイマ処理部２３は、再送データ数に基づいて、受信データが再送データであるか否かを判定する（ステップＳ５０２）。
【００６９】
Ｉ−ＮＡＣＫタイマ処理部２３は、ステップＳ５０２において、受信データが再送データでないと判定した場合（ステップＳ５０２：ＮＯ）、最初に受信したデータパケットのシーケンス番号を取得し（ステップＳ５０３）、取得したシーケンス番号及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ５０４）。一方、Ｉ−ＮＡＣＫタイマ処理部２３は、ステップＳ５０２において、受信データが再送データであると判定した場合（ステップＳ５０２：ＹＥＳ）、再送データ数及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ５０５）。受信終了時間は、シーケンス番号または再送データ数に１データの伝送時間を乗算することにより算出される。
【００７０】
受信部２０は、ステップＳ５０４またはステップＳ５０５から移行して、受信したデータパケットのシーケンス番号をシーケンス番号記憶部２４に格納する（ステップＳ５０６）。これにより、データパケットを受信する毎に、シーケンス番号がシーケンス番号記憶部２４に格納される。
【００７１】
Ｉ−ＮＡＣＫタイマ処理部２３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたか否かを判定し（ステップＳ５０７）、タイムアウトしていないと判定した場合（ステップＳ５０７：ＮＯ）、ステップＳ５０６へ移行し、タイムアウトするまで待つ。一方、Ｉ−ＮＡＣＫタイマ処理部２３は、ステップＳ５０７において、タイムアウトしていると判定した場合（ステップＳ５０７：ＹＥＳ）、シーケンス番号読出部２５は、シーケンス番号記憶部２４からシーケンス番号を読み出して受信済みシーケンス番号に設定し、送信部２６は、受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−１へ送信する（ステップＳ５０８）。これにより、受信装置２−１による映像ファイルの受信処理は終了し、開始から繰り返される。
【００７２】
〔実施例２〕
次に、実施例２について説明する。図６は、実施例２の再送制御を説明するタイムチャートである。送信装置１−２は、映像ファイルを構成する各データにシーケンス番号＃１〜＃ｎを付与すると共に、送信回数１を付与し、最終のシーケンス番号＃ｎのデータパケット（最終パケット）から最初のシーケンス番号＃１のデータパケット（先頭パケット）までを順番に、受信装置２−２へ連続してバースト送信する。尚、送信装置１−２は、データパケットを再送する際にも、再送するデータパケットに送信回数（２，３，・・・）を付与する。受信装置２−２は、受信したデータパケットの送信回数に基づいて、新規の映像ファイルのデータパケットであるか再送のデータパケットであるかを判定することができる。
【００７３】
受信装置２−２は、送信装置１−２から新規の映像ファイルのデータパケットのみを受信した場合（送信回数１のデータパケットを受信した場合）、最初に受信したデータパケットのデータに付与されたシーケンス番号＃ｎから、送信装置１−２から送信される全てのデータパケットの数を検知し、最終のデータパケットを受信する受信終了時間を予測する。そして、受信装置２−２は、Ｉ−ＮＡＣＫタイマを起動して受信終了時間になったときに、受信した全てのデータパケットについての送信回数及びシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。受信装置２−２は、再送対象のデータパケットの数を記憶する。
【００７４】
送信装置１−２は、受信装置２−２からＩ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加された送信回数及びシーケンス番号から再送対象のデータパケットを特定し、再送対象のデータパケットに対して送信回数を付与し（例えば、２回目の送信のときは送信回数２を付与し）、新規の映像ファイルのデータパケットをシーケンス番号の大きい順に送信し、続いて再送対象のデータパケットをシーケンス番号の大きい順に送信する。
【００７５】
受信装置２−２は、新規のデータパケットに加え再送のデータパケットを受信すると、最初に受信した新規のデータパケットのデータに付与されたシーケンス番号＃ｎ及び再送データ数から、送信装置１−２から送信される全てのデータパケットの数を検知し、最終のデータパケットを受信する受信終了時間を予測する。そして、受信装置２−２は、Ｉ−ＮＡＣＫタイマを起動して受信終了時間になったときに、受信した全てのデータパケットについての送信回数及びシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。この場合、受信装置２−２は、再送対象のデータパケットの数を記憶する。
【００７６】
図６に示した例では、送信装置１−２から第１ブロックとして送信回数１を付与した合計ｎ個のデータパケットが送信され、シーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じた場合を示している。受信装置２−２は、受信終了時間になったときに、受信済みのデータパケットの送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。送信装置１−２は、Ｉ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されていない送信回数１のシーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じたと判定し、これらのデータパケットに送信回数２を付与する。そして、送信装置１−２は、第２ブロックとして送信回数１を付与した合計ｍ個のデータパケットを送信した後に、送信回数２を付与したデータパケット（第１ブロックのシーケンス番号＃ｎ−１，＃１のデータパケット）を再送する。再送するデータパケットの順番は、同様に、シーケンス番号の大きい順であり、受信装置２−２が全てのデータパケットを受信するまで、これらの処理が繰り返される。
【００７７】
このように、実施例２の再送制御によれば、送信装置１−２は、データに送信回数及びシーケンス番号を付与し、新規のデータパケットをシーケンス番号の大きい順に送信し、その後に、再送対象のデータパケットをシーケンス番号の大きい順に送信するようにした。これにより、受信装置２−２は、Ｉ−ＮＡＣＫを送信するタイミングを、新規に受信したデータパケットのシーケンス番号及び再送されたデータパケットの再送データ数に基づいて設定することができる。したがって、受信装置２−２において、実施例１と同様に、Ｉ−ＮＡＣＫを送信するための待機時間の短縮を図ることができ、Ｉ−ＮＡＣＫを送信するまでの時間が延びることなく、データ伝送時間を低減し、無線帯域の利用効率を向上させることが可能となる。
【００７８】
また、受信装置２−２は、実施例１と同様に、送信装置１−２から送信された最終のパケットに受信誤りが生じた場合であっても、最初のデータパケットを受信したときに既に受信終了時間を予測しているから、Ｉ−ＮＡＣＫを送信するタイミングが遅れることはなく、無線帯域の利用効率が低下することがない。
【００７９】
また、受信装置２−２は、再送データの受信を待つことなく、次の映像ファイルのデータを受信することができるから、無線帯域の利用効率を一層向上させることが可能となる。また、データに送信回数を付与したデータパケット、及び送信回数を付加したＩ−ＮＡＣＫを送受信するようにしたから、再送回数を簡易に管理することができる。例えば、異なるアプリケーションまたはコンテンツをキュー毎に格納することで、複数のアプリケーションまたはコンテンツの送受信処理を容易に実現することが可能となる。
【００８０】
（送信装置の構成／実施例２）
次に、実施例２による送信装置１−２の構成について説明する。図７は、送信装置１−２の構成を示すブロック図である。この送信装置１−２は、送信用データ生成・シーケンス番号付与部１６、データ記憶部１７、データ読出部１２、送信部１３、受信部１８及び再送制御部１９を備えている。送信用データ生成・シーケンス番号付与部１６は送信回数付与部１６０を備え、再送制御部１９は送信回数付与部１９０を備えている。
【００８１】
送信用データ生成・シーケンス番号付与部１６は、送信対象の映像ファイルを入力し、映像ファイルを複数のデータに分割して送信用のデータを生成し、生成した各データにシーケンス番号を付与する。また、送信用データ生成・シーケンス番号付与部１６の送信回数付与部１６０は、生成した各データに送信回数１を付与する。送信回数は、当該送信装置１−２が分割したデータをデータパケットに格納して送信する回数を示す、再送する場合は、再送の送信回数に応じて送信回数２，３，・・・が付与される。受信装置２−２は、データに付与された送信回数に基づいて、新規のデータであるか再送対象のデータであるかを判定することができる。送信用データ生成・シーケンス番号付与部１６は、送信回数及びシーケンス番号を付与した各データをデータ記憶部１７に格納する。
【００８２】
データ記憶部１７には、送信回数及びシーケンス番号が付与された各データが記憶される。図７の例では、第１ブロックのキューに、映像ファイルがｎ個のデータに分割され、送信回数１及びシーケンス番号＃１〜＃ｎが付与されたデータが順番に格納されている。また、第２ブロックのキューに、映像ファイルがｍ個のデータに分割され、送信回数１及びシーケンス番号＃１〜＃ｍが付与されたデータが順番に格納されている。データ記憶部１７に格納されたデータの送信回数は、データが再送される際に再送制御部１９の送信回数付与部１９０により更新される。
【００８３】
データ読出部１２は、図２に示した実施例１の送信装置１−１と同様に、データ記憶部１７から、所定ブロックについて、シーケンス番号の大きい順に全てのデータを読み出す。図７の例では、第１ブロックにおいてシーケンス番号＃ｎ〜＃１の順にデータが読み出され、第２ブロックにおいてシーケンス番号＃ｍ〜＃１の順にデータが読み出される。また、データ読出部１２は、再送制御部１９から送信回数及び再送シーケンス番号を入力した場合には、データ記憶部１７から、当該送信回数及び再送シーケンス番号が付与された全てのデータを再送シーケンス番号の大きい順に読み出す。
【００８４】
送信部１３は、図２に示した実施例１の送信装置１−１と同様に、データ読出部１２からデータを入力し、データパケットを生成し、シーケンス番号の大きい順にデータパケットを受信装置２−２へ送信する。図６の例では、第１ブロックのバースト送信において、シーケンス番号＃ｎ〜＃１の順にデータパケットが送信され、第２ブロックのバースト送信において、新規のデータについてシーケンス番号＃ｍ〜＃１の順にデータパケットが送信され、その後に、第１ブロックの再送対象のデータパケットが送信される。
【００８５】
受信部１８は、受信装置２−２からＩ−ＮＡＣＫを受信し、Ｉ−ＮＡＣＫに付加されている送信回数及びシーケンス番号（受信済みシーケンス番号）を抽出する。この受信済みシーケンス番号は、当該送信回数のブロックにおいて、受信装置２−２が受信した全てのデータパケットのシーケンス番号を示している。送信回数及び受信済みシーケンス番号によって、再送対象のデータが特定される。
【００８６】
再送制御部１９は、受信部１８から送信回数及び受信済みシーケンス番号を入力し、送信回数からブロックを特定し、受信済みシーケンス番号から、そのブロックの各データに付与されたシーケンス番号のうち受信済みでないシーケンス番号を再送シーケンス番号として特定する。再送制御部１９は、そのブロックの受信済みシーケンス番号のデータをデータ記憶部１７から削除する。再送制御部１９は、再送シーケンス番号を特定できない場合、受信装置２−２がそのブロックにおける全てのデータパケットを受信したと判定し、データ記憶部１７に格納されたそのブロックのデータを削除する。一方、再送制御部１９は、再送シーケンス番号を特定した場合、受信装置２−２が受信していないデータパケットがあると判定し、送信回数付与部１９０が、再送対象のデータに新たな送信回数を付与する。具体的には、送信回数付与部１９０は、データ記憶部１７に格納された当該ブロックの再送対象のデータに付与された送信回数をインクリメントして更新する。そして、再送制御部１９は、更新した送信回数及び再送シーケンス番号をデータ読出部１２に出力する。これにより、当該ブロックの再送シーケンス番号のデータパケットが再送される。再送されるデータに対し、例えば２回目の送信の場合は送信回数２に更新され、３回目の送信の場合は送信回数３に更新される。
【００８７】
図８は、図７に示したデータ記憶部１７に格納されたデータの送信回数及びシーケンス番号の遷移を説明する図である。この遷移は、図６に示した再送制御の例に対応している。まず、データ記憶部１７には、第１ブロックのデータとして、送信回数１及びシーケンス番号＃１〜＃ｎの新規データが格納されており、送信部１３は、シーケンス番号の大きい順に、送信回数及びシーケンス番号が付与されたデータをデータパケット化し、受信装置２−２へ送信する。
【００８８】
そして、送信したデータパケットのうち送信回数１及びシーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じ、受信装置２−２から（送信回数，受信済みシーケンス番号）＝（１，＃ｎ）（１，＃ｎ−２）・・・（１，＃３）（１，＃２）が付加されたＩ−ＮＡＣＫが送信されたとする。
【００８９】
再送制御部１９は、Ｉ−ＮＡＣＫから抽出された送信回数１から第１ブロックを特定し、受信済みシーケンス番号＃ｎ，＃ｎ−２，・・・，＃３，＃２から、第１ブロックのシーケンス番号＃ｎ〜＃１のうち受信済みでないデータのシーケンス番号＃ｎ−１，＃１を再送シーケンス番号として特定する。再送制御部１９は、受信装置２−２がシーケンス番号＃ｎ−１，＃１のデータパケットを受信しておらず、第１ブロックについて再送データがあると判定し、送信回数付与部１９０が、データ記憶部１７に格納された第１ブロックのデータについて、シーケンス番号＃ｎ−１，＃１における送信回数１を送信回数２に更新する。また、再送制御部１９は、データ記憶部１７に格納された第１ブロックのデータについて、受信済みのシーケンス番号＃ｎ，＃ｎ−２，・・・，＃３，＃２のデータを削除する。
【００９０】
一方、データ記憶部１７には、第２ブロックのデータとして、送信回数１及びシーケンス番号＃１〜＃ｍの新規データが格納されている。送信部１３は、第２ブロックの新規データについて、シーケンス番号の大きい順に、送信回数１及びシーケンス番号＃ｍ〜＃１が付与されたデータをデータパケット化し、受信装置２−２へ送信し、さらに、第１ブロックの再送対象のデータについて、シーケンス番号の大きい順に、送信回数２及びシーケンス番号＃ｎ−１，＃１が付与されたデータをデータパケット化し、受信装置２−２へ送信する。
【００９１】
そして、送信したデータパケットのうち送信回数１及びシーケンス番号＃ｍ−１のデータパケットに受信誤りが生じ、受信装置２−２から（送信回数，受信済みシーケンス番号）＝（１，＃ｍ）（１，＃ｍ−２）・・・（１，＃１）（２，＃ｎ−１）（２，＃１）が付加されたＩ−ＮＡＣＫが送信されたとする。
【００９２】
再送制御部１９は、Ｉ−ＮＡＣＫから抽出された送信回数１から第２ブロックを特定すると共に、送信回数２から第１ブロックを特定し、送信回数１の受信済みシーケンス番号＃ｍ，＃ｍ−２，・・・，＃１及び送信回数２の受信済みシーケンス番号＃ｎ−１，＃１のうち受信済みでない第１ブロックのデータのシーケンス番号＃ｍ−１を再送シーケンス番号として特定する。再送制御部１９は、受信装置２−２が第２ブロックにおけるシーケンス番号＃ｍ−１のデータパケットを受信しておらず、第２ブロックについて再送データがあると判定し、送信回数付与部１９０が、データ記憶部１７に格納された第２ブロックのデータについて、シーケンス番号＃ｍ−１における送信回数１を送信回数２に更新する。また、再送制御部１９は、データ記憶部１７に格納された第２ブロックのデータについて、受信済みシーケンス番号＃ｍ，＃ｍ−２，・・・，＃１のデータを削除する。また、再送制御部１９は、第１ブロックについて、受信済みのシーケンス番号＃ｎ−１，＃１のデータを削除する。
【００９３】
一方、データ記憶部１７には、第３ブロックのデータとして、送信回数１及びシーケンス番号＃１〜＃ｉの新規データが格納されている。送信部１３は、第３ブロックの新規データについて、シーケンス番号の大きい順に、送信回数１及びシーケンス番号＃ｉ〜＃１が付与されたデータをデータパケット化し、受信装置２−２へ送信し、さらに、第２ブロックの再送対象のデータについて、シーケンス番号の大きい順に、送信回数２及びシーケンス番号＃ｍ−１が付与されたデータをデータパケット化し、受信装置２−２へ送信する。
【００９４】
（送信装置の処理／実施例２）
次に、実施例２による送信装置１−２の処理について説明する。図９Ａ及び図９Ｂは、送信装置１−２の処理を示すフローチャートである。送信装置１−２による映像ファイルの送信処理が開始すると、送信用データ生成・シーケンス番号付与部１６は、映像ファイルから複数の送信用のデータを生成し（ステップＳ９０１）、各データにシーケンス番号をインクリメントして付与すると共に（ｎ＝ｎ＋１，初期値ｎ＝０）、送信回数１を付与し、送信回数１及びシーケンス番号を付与したデータをデータ記憶部１７のキューに格納する（ステップＳ９０２）。そして、データ読出部１２は、キューから、大きいシーケンス番号順にデータをコピーして読み出し（ステップＳ９０３）、送信部１３は、データ読出部１２により読み出されたデータをデータパケット化し、無線媒体として受信装置２−２へ送信する（ステップＳ９０４）。
【００９５】
送信部１３は、最も小さいシーケンス番号＃１のデータを送信したか否かを判定し（ステップＳ９０５）、最も小さいシーケンス番号＃１のデータを送信したと判定した場合（ステップＳ９０５：ＹＥＳ）、ステップＳ９０６へ移行し、最も小さいシーケンス番号＃１のデータを送信していないと判定した場合（ステップＳ９０５：ＮＯ）、ステップＳ９０３へ移行する。このように、送信装置１−２は、最も小さいシーケンス番号＃１のデータを送信するまで、データ読出部１２によるステップＳ９０３の処理及び送信部１３によるステップＳ９０４の処理を繰り返す。
【００９６】
受信部１８は、ステップＳ９０５から移行して（送信部１３により最も小さいシーケンス番号＃１のデータが送信された後）、受信装置２−２からＩ−ＮＡＣＫを受信したか否かを判定する（ステップＳ９０６）。受信部１８は、Ｉ−ＮＡＣＫを受信していないと判定した場合（ステップＳ９０６：ＮＯ）、Ｉ−ＮＡＣＫを受信するまで待つ。
【００９７】
受信部１８は、ステップＳ９０６において、Ｉ−ＮＡＣＫを受信したと判定した場合（ステップＳ９０６：ＹＥＳ）、再送制御部１９は、Ｉ−ＮＡＣＫに付加された送信回数及び受信済みシーケンス番号から、送信回数に対応したブロックについて、受信済みでないシーケンス番号を特定し、再送データがあるかないかを判定する（ステップＳ９０７）。
【００９８】
再送制御部１９は、ステップＳ９０７において、受信装置２−２が当該ブロックの全てのデータの受信を完了しておらず、再送データがあると判定した場合（ステップＳ９０７：ＹＥＳ）、キューから受信済みシーケンス番号のデータを削除する（ステップＳ９０８）。また、再送制御部１９は、再送データに対する新たな送信回数を付与し、キューに格納する（ステップＳ９０９）。
【００９９】
送信用データ生成・シーケンス番号付与部１６は、新たな映像ファイルから生成した新規の送信用のデータがあるか否かを判定し（ステップＳ９１０）、新規データがあると判定した場合（ステップＳ９１０：ＹＥＳ）、送信用データ生成・シーケンス番号付与部１６、データ読出部１２及び送信部１３は、ステップＳ９０２〜ステップＳ９０５と同様の処理を行う（ステップＳ９１１〜ステップＳ９１４）。このように、送信部１３は、新たな映像ファイル（新たなブロック）について、最も大きいシーケンス番号から順に、送信回数及びシーケンス番号を付与したデータパケットを送信する。また、送信用データ生成・シーケンス番号付与部１６は、ステップＳ９１０において、新規データがないと判定した場合（ステップＳ９１０：ＮＯ）、ステップＳ９１５へ移行する。
【０１００】
データ読出部１２は、キューから、ステップＳ９０７にて特定した当該ブロックについての再送データ（受信済みでないシーケンス番号が示す全てのデータ）を、大きいシーケンス番号順にコピーして読み出し（ステップＳ９１５）、送信部１３は、ステップＳ９１３における新たな映像ファイルの送信に続いて、ステップＳ９１５にてデータ読出部１２により読み出された再送データをデータパケット化し、無線媒体として受信装置２−２へ再送する（ステップＳ９１６）。そして、ステップＳ９０６へ移行する。
【０１０１】
再送制御部１９は、ステップＳ９０７において、受信装置２−２が当該ブロックの全てのデータの受信を完了しており、再送データがないと判定した場合（ステップＳ９０７：ＮＯ）、当該ブロックについて、キューのデータを削除する（ステップＳ９１７）。これにより、送信装置１−２による映像ファイルの送信処理は終了し、開始から繰り返される。
【０１０２】
（受信装置の構成／実施例２）
次に、実施例２による受信装置２−２の構成について説明する。図１０は、受信装置２−２の構成を示すブロック図である。この受信装置２−２は、受信部３０、データ記憶部３１、データ読出部３２、Ｉ−ＮＡＣＫタイマ処理部３３、送信回数・シーケンス番号記憶部３４、送信回数・シーケンス番号読出部３５及び送信部３６を備えている。
【０１０３】
受信部３０は、送信装置１−２からデータパケットを受信すると、データパケットからデータを抽出し、データに付与された送信回数及びシーケンス番号を抽出する。受信部３０は、送信装置１−２によるデータパケットの連続したバースト送信の中で、最初に受信したデータパケットの送信回数及びシーケンス番号をＩ−ＮＡＣＫタイマ処理部３３に出力する。また、受信部３０は、抽出したデータ（送信回数及びシーケンス番号が付与されたデータ）をデータ記憶部３１に格納すると共に、抽出した送信回数及びシーケンス番号を送信回数・シーケンス番号記憶部３４に格納する。
【０１０４】
データ記憶部３１には、受信したデータパケットの各データが記憶される。図１０の例では、所定ブロックにおいて、受信したデータパケットについての送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２の各データが順番にデータ記憶部３１のキューに格納されている。この例は、図６に示したように、送信装置１−２から合計ｎ個のデータパケットが送信され、シーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じ、シーケンス番号＃ｎ，＃ｎ−２，・・・，＃２のデータパケットを正しく受信した場合を示している。
【０１０５】
データ読出部３２は、データ記憶部３１に、所定ブロックの全てのシーケンス番号のデータが格納されたときに、データ記憶部３１から、所定ブロックの全てのデータを、シーケンス番号の小さい順に読み出し、これらのデータを合成して元の映像ファイルを生成し、生成した映像ファイルを出力する。
【０１０６】
Ｉ−ＮＡＣＫタイマ処理部３３は、受信部３０から最初に受信したデータパケットの送信回数及びシーケンス番号を入力し、送信回数・シーケンス番号読出部３５から再送データ数を入力し、入力した再送データ数が０であり、受信データに再送データが含まれていないと判定した場合、入力したシーケンス番号に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。一方、Ｉ−ＮＡＣＫタイマ処理部３３は、入力した再送データ数が０でなく、受信データに再送データが含まれていると判定した場合、入力したシーケンス番号及び再送データ数に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。Ｉ−ＮＡＣＫタイマ処理部３３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたときに、タイムアウトを送信回数・シーケンス番号読出部３５に出力する。
【０１０７】
送信回数・シーケンス番号記憶部３４には、受信したデータパケットについての送信回数及びシーケンス番号が記憶される。図１０の例では、受信したデータパケットについて、所定ブロックにおける送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２が順番にデータ記憶部３４のキューに格納されている。この例は、データ記憶部３１に格納されたデータに対応している。
【０１０８】
送信回数・シーケンス番号読出部３５は、Ｉ−ＮＡＣＫタイマ処理部３３からタイムアウトを入力したとき、送信回数・シーケンス番号記憶部３４から送信回数及びシーケンス番号を読み出し、読み出したシーケンス番号を受信済みシーケンス番号に設定し、送信回数及び受信済みシーケンス番号を送信部３６に出力する。また、送信回数・シーケンス番号読出部３５は、送信回数・シーケンス番号記憶部３４から送信回数等を読み出した後、送信回数・シーケンス番号記憶部３４の送信回数等を削除する。送信回数・シーケンス番号読出部３５は、送信回数からブロックを特定し、そのブロックの受信済みシーケンス番号に基づいて、送信装置１−２から送信された全てのデータの受信が完了していないと判定した場合、受信が完了していないデータ数（特定した全てのブロックにおいて受信が完了していないデータ数の合計）を再送データ数としてＩ−ＮＡＣＫタイマ処理部３３に出力する。一方、送信回数・シーケンス番号読出部３５は、送信装置１−２から送信された全てのデータの受信が完了していると判定した場合、再送データ数０をＩ−ＮＡＣＫタイマ処理部３３に出力する。この場合、送信回数・シーケンス番号読出部３５は、送信装置１−２から送信された各ブロックにおける全てのデータのシーケンス番号及び受信済みシーケンス番号を管理している。
【０１０９】
送信部３６は、送信回数・シーケンス番号読出部３５から送信回数及び受信済みシーケンス番号を入力し、入力した送信回数及び受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。図１０の例では、送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２が付加されたＩ−ＮＡＣＫが送信される。
【０１１０】
図１１は、図１０に示した送信回数・シーケンス番号記憶部３４に格納された送信回数及びシーケンス番号の遷移を説明する図である。この遷移は、図６に示した再送制御の例及び図８に示したデータ記憶部１７の遷移に対応している。送信装置１−２から第１ブロックにおける送信回数１及びシーケンス番号＃ｎ〜＃１のデータパケットが送信され、送信回数１及びシーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じ、受信装置２−２は、送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・＃２のデータパケットを受信したとする。そうすると、送信回数・シーケンス番号記憶部３４には、送信回数１及びシーケンス番号＃ｎ，＃ｎ−２，・・・＃２が格納される。そして、送信部３６は、（送信回数，受信済みシーケンス番号）＝（１，＃ｎ）（１，＃ｎ−２）・・・（１，＃２）を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。
【０１１１】
そして、送信装置１−２から第２ブロックにおける送信回数１及びシーケンス番号＃ｍ〜＃１のデータパケット及び再送データである第１ブロックにおける送信回数２及びシーケンス番号＃ｎ−１，＃１のデータパケットが送信され、送信回数１及びシーケンス番号＃ｍ−１のデータパケットに受信誤りが生じ、受信装置２−２は、第２ブロックにおける送信回数１及びシーケンス番号＃ｍ，＃ｍ−２，・・・＃１のデータパケット及び第１ブロックにおける送信回数２及びシーケンス番号＃ｎ−１，＃１のデータパケットを受信したとする。そうすると、送信回数・シーケンス番号記憶部３４には、送信回数２及びシーケンス番号＃ｎ−１，＃１、並びに送信回数１及びシーケンス番号＃ｍ，＃ｍ−２，・・・＃１が格納される。そして、送信部３６は、（送信回数，受信済みシーケンス番号）＝（１，＃ｍ）（１，＃ｍ−２）・・・（１，＃１）（２，＃ｎ−１）（２，＃１）を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。
【０１１２】
そして、送信装置１−２から第３ブロックにおける送信回数１及びシーケンス番号＃ｉ〜＃１のデータパケット及び再送データである第２ブロックにおける送信回数２及びシーケンス番号＃ｍ−１のデータパケットが送信され、受信装置２−２は、第３ブロックにおける送信回数１及びシーケンス番号＃ｉ，・・・＃１のデータパケット及び第２ブロックにおける送信回数２及びシーケンス番号＃ｍ−１のデータパケットを受信したとする。そうすると、送信回数・シーケンス番号記憶部３４には、送信回数２及びシーケンス番号＃ｍ−１、並びに送信回数１及びシーケンス番号＃ｉ，・・・＃１が格納される。そして、送信部３６は、（送信回数，受信済みシーケンス番号）＝（１，＃ｉ）・・・（１，＃１）（２，＃ｍ−１）を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する。
【０１１３】
（受信装置の処理／実施例２）
次に、実施例２による受信装置２−２の処理について説明する。図１２は、その処理を示すフローチャートである。受信装置２−２による映像ファイルの受信処理が開始すると、受信部３０は、送信装置１−２からのデータパケットの送信に伴って、データパケットの受信を開始する（ステップＳ１２０１）。Ｉ−ＮＡＣＫタイマ処理部３３は、受信データに再送データが含まれているか否かを判定する（ステップＳ１２０２）。受信データに再送データが含まれているか否かは、送信回数・シーケンス番号読出部３５から入力した再送データ数が０であるか否か（０の場合は再送データが含まれておらず、０以外の場合は再送データが含まれている。）により判定される。
【０１１４】
Ｉ−ＮＡＣＫタイマ処理部３３は、ステップＳ１２０２において、受信データに再送データが含まれていないと判定した場合（ステップＳ１２０２：ＮＯ）、最初に受信したデータパケットのシーケンス番号を取得し（ステップＳ１２０３）、取得したシーケンス番号及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ１２０４）。一方、Ｉ−ＮＡＣＫタイマ処理部３３は、ステップＳ１２０２において、受信データに再送データが含まれると判定した場合（ステップＳ１２０２：ＹＥＳ）、最初に受信したデータパケットのシーケンス番号、再送データ数及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ１２０５）。受信終了時間は、ステップＳ１２０４において、シーケンス番号から得られるデータ数に１データの伝送時間を乗算することにより算出され、ステップＳ１２０５において、シーケンス番号から得られるデータ数に再送データ数を加算し、この加算結果に１データの伝送時間を乗算することにより算出される。
【０１１５】
受信部３０は、ステップＳ１２０４またはステップＳ１２０５から移行して、受信したデータパケットの送信回数及びシーケンス番号を送信回数・シーケンス番号記憶部３４に格納する（ステップＳ１２０６）。これにより、データパケットを受信する毎に、送信回数及びシーケンス番号が送信回数・シーケンス番号記憶部３４に格納される。
【０１１６】
Ｉ−ＮＡＣＫタイマ処理部３３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたか否かを判定し（ステップＳ１２０７）、タイムアウトしていないと判定した場合（ステップＳ１２０７：ＮＯ）、ステップＳ１２０６へ移行し、タイムアウトするまで待つ。一方、Ｉ−ＮＡＣＫタイマ処理部３３は、ステップＳ１２０７において、タイムアウトしていると判定した場合（ステップＳ１２０７：ＹＥＳ）、送信回数・シーケンス番号読出部３５は、送信回数・シーケンス番号記憶部３４から送信回数及びシーケンス番号を読み出し、シーケンス番号を受信済みシーケンス番号に設定し、送信部３６は、送信回数及び受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−２へ送信する（ステップＳ１２０８）。これにより、受信装置２−２による映像ファイルの受信処理は終了し、開始から繰り返される。
【０１１７】
〔実施例３〕
次に、実施例３について説明する。図１３は、実施例３の再送制御を説明するタイムチャートである。送信装置１−３は、映像ファイルを構成する各データにシーケンス番号＃１〜＃ｎを付与すると共に、映像ファイルのＩＤ番号であるブロック番号を付与し、最終のシーケンス番号＃ｎのデータパケット（最終パケット）から最初のシーケンス番号＃１のデータパケット（先頭パケット）までを順番に、受信装置２−３へ連続してバースト送信する。尚、送信装置１−３は、データパケットを再送する際にも同様に、再送するデータパケットに映像ファイルのブロック番号を付与する。受信装置２−３は、受信したデータパケットのブロック番号に基づいて、新規のデータパケットであるか再送のデータパケットであるかを判定することができる。
【０１１８】
受信装置２−３は、送信装置１−３から新規の映像ファイルについて新規のブロックのデータパケットのみを受信した場合、そのデータパケットのデータに付与されたシーケンス番号＃ｎから、送信装置１−３から送信される全てのデータパケットの数を検知し、最終のデータパケットを受信する受信終了時間を予測する。そして、受信装置２−３は、Ｉ−ＮＡＣＫタイマを起動して受信終了時間になったときに、受信した全てのデータパケットについてのブロック番号及びシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する。受信装置２−３は、再送対象のデータパケットの数を記憶する。
【０１１９】
送信装置１−３は、受信装置２−３からＩ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されたブロック番号及びシーケンス番号から再送対象のデータパケットを特定し、新規の映像ファイルについて新規のブロックのデータパケットをシーケンス番号の大きい順に送信し、続いて再送対象のデータパケットをシーケンス番号の大きい順に送信する。
【０１２０】
受信装置２−３は、新規のデータパケットに加え再送のデータパケットを受信すると、最初に受信したデータパケットのデータに付与されたシーケンス番号＃ｎ及び再送データ数から、送信装置１−３から送信される全てのデータパケットの数を検知し、最終のデータパケットを受信する受信終了時間を予測する。そして、受信装置２−３は、Ｉ−ＮＡＣＫタイマを起動して受信終了時間になったときに、受信した全てのデータパケットについてのブロック番号及びシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する。この場合、受信装置２−３は、再送対象のデータパケットの数を記憶する。
【０１２１】
図１３に示した例では、それぞれの映像ファイルが、ブロックＡ，Ｂ，Ｃの３つのキューに、ｎ，ｍ，ｉ個のデータとしてそれぞれ格納されている。各データには、１〜ｎ，１〜ｍ，１〜ｉのシーケンス番号が付与され、ブロックに対応したＩＤ情報であるブロック番号Ａ，Ｂ，Ｃも付与されている。例えば、データには、ブロック番号及びシーケンス番号を示すＡ１，Ａ２・・・Ａｎが付与される。送信装置１−３からブロック番号Ａを付与した合計ｎ個のデータパケットがバースト送信され、シーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じたとする。受信装置２−３は、受信終了時間になったときに、受信済みのデータパケットのブロック番号Ａ及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する。送信装置１−３は、Ｉ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されていないブロック番号Ａのシーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じたと判定する。そして、送信装置１−３は、ブロックＢのキューからブロック番号Ｂを付与した合計ｍ個のデータを読み出してバースト送信した後に、ブロックＡのキューから再送データであるブロック番号Ａのシーケンス番号＃ｎ−１，＃１のデータを読み出して再送する。再送するデータパケットの順番は、同様に、シーケンス番号の大きい順である。ブロック番号Ｂのシーケンス番号＃ｍ−１のデータパケットに受信誤りが生じたとする。受信装置２−３は、受信終了時間になったときに、受信済みのデータパケットのブロック番号Ｂ及びシーケンス番号＃ｍ，＃ｍ−２，・・・，＃１並びにブロック番号Ａ及びシーケンス番号＃ｎ−１，＃１を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する。送信装置１−３は、Ｉ−ＮＡＣＫを受信すると、Ｉ−ＮＡＣＫに付加されていないブロック番号Ｂのシーケンス番号＃ｍ−１のデータパケットに受信誤りが生じたと判定する。そして、送信装置１−３は、ブロックＣのキューからブロック番号Ｃを付与した合計ｉ個のデータを読み出してバースト送信する。このように、受信装置２−３が全てのデータパケットを受信するまで、これらの処理が繰り返される。
【０１２２】
このように、実施例３の再送制御によれば、送信装置１−３は、データにブロック番号及びシーケンス番号を付与し、新規のデータパケットをシーケンス番号の大きい順に送信し、その後に、再送対象のデータパケットをシーケンス番号の大きい順に送信するようにした。これにより、受信装置２−３は、Ｉ−ＮＡＣＫを送信するタイミングを、新規に受信したデータパケットのシーケンス番号及び再送されたデータパケットの再送データ数に基づいて設定することができる。これにより、受信装置２−３において、実施例１，２と同様に、Ｉ−ＮＡＣＫを送信するための待機時間の短縮を図ることができ、Ｉ−ＮＡＣＫを送信するまでの時間が延びることなく、データ伝送時間を低減し、無線帯域の利用効率を向上させることが可能となる。
【０１２３】
また、受信装置２−３は、実施例１，２と同様に、送信装置１−３から送信された最終のパケットに受信誤りが生じた場合であっても、最初のデータパケットを受信したときに既に受信終了時間を予測しているから、Ｉ−ＮＡＣＫを送信するタイミングが遅れることはなく、無線帯域の利用効率が低下することがない。
【０１２４】
また、受信装置２−３は、再送データの受信を待つことなく、次の映像ファイルのデータを受信することができるから、無線帯域の利用効率を一層向上させることが可能となる。また、ブロック毎にデータパケットの送受信を行うようにしたから、再送データのブロックを直接特定することができ、簡易な処理を実現することができる。例えば、異なるアプリケーションまたはコンテンツをキュー毎に格納することで、複数のアプリケーションまたはコンテンツの送受信処理を一層容易に実現することが可能となる。
【０１２５】
（送信装置の構成／実施例３）
次に、実施例３による送信装置１−３の構成について説明する。図１４は、送信装置１−３の構成を示すブロック図である。この送信装置１−３は、送信用データ生成・シーケンス番号付与部４０、データ記憶部４１、データ読出部１２、送信部１３、受信部４２及び再送制御部４３を備えている。送信用データ生成・シーケンス番号付与部４０はブロック番号付与部１４０を備えている。
【０１２６】
送信用データ生成・シーケンス番号付与部４０は、送信対象の映像ファイルを入力し、映像ファイルを複数のデータに分割して送信用のデータを生成し、生成した各データにシーケンス番号を付与する。また、送信用データ生成・シーケンス番号付与部４０のブロック番号付与部１４０は、生成した各データにブロック番号を付与する。ブロック番号は、映像ファイルのアプリケーションまたはコンテンツに対応した番号であり、映像ファイルのアプリケーションまたはコンテンツ毎に異なる番号が付与される。送信用データ生成・シーケンス番号付与部４０は、ブロック番号及びシーケンス番号を付与した各データをデータ記憶部４１に格納する。
【０１２７】
データ記憶部４１には、ブロック番号及びシーケンス番号が付与された各データが記憶される。図１４の例では、ブロックＡのキューに、映像ファイルがｎ個のデータに分割され、ブロック番号Ａ及びシーケンス番号＃１〜＃ｎが付与されたデータが順番に格納されている。また、ブロックＢのキューに、映像ファイルがｍ個のデータに分割され、ブロック番号Ｂ及びシーケンス番号＃１〜＃ｍが付与されたデータが順番に格納されている。
【０１２８】
データ読出部１２は、図２に示した実施例１の送信装置１−１及び図７に示した実施例２の送信装置１−２と同様に、データ記憶部４１から、所定ブロックについて、シーケンス番号の大きい順に全てのデータを読み出す。図１４の例では、ブロックＡのキューから、シーケンス番号＃ｎ〜＃１の順にデータが読み出され、ブロックＢのキューから、シーケンス番号＃ｍ〜＃１の順にデータが読み出される。また、データ読出部１２は、再送制御部４３からブロック番号及び再送シーケンス番号を入力した場合には、データ記憶部４１から、当該ブロック番号及び再送シーケンス番号が付与された全てのデータを再送シーケンス番号の大きい順に読み出す。
【０１２９】
送信部１３は、図２に示した実施例１の送信装置１−１及び図７に示した実施例２の送信装置１−２と同様に、データ読出部１２からデータを入力し、データパケットを生成し、シーケンス番号の大きい順にデータパケットを受信装置２−３へ送信する。図１４の例では、ブロックＡのバースト送信において、シーケンス番号＃ｎ〜＃１の順にデータパケットが送信され、ブロックＢのバースト送信において、シーケンス番号＃ｍ〜＃１の順にデータパケットが送信され、その後に、ブロックＡの再送対象のデータパケットが送信される。
【０１３０】
受信部４２は、受信装置２−３からＩ−ＮＡＣＫを受信し、Ｉ−ＮＡＣＫに付加されているブロック番号及びシーケンス番号（受信済みシーケンス番号）を抽出する。この受信済みシーケンス番号は、当該ブロック番号において、受信装置２−３が受信した全てのデータパケットのシーケンス番号を示している。ブロック番号及び受信済みシーケンス番号によって、再送対象のデータが特定される。
【０１３１】
再送制御部４３は、受信部４２からブロック番号及び受信済みシーケンス番号を入力し、ブロック番号からブロックを特定し、受信済みシーケンス番号から、そのブロックの各データに付与されたシーケンス番号のうち受信済みでないシーケンス番号を再送シーケンス番号として特定する。再送制御部４３は、当該ブロック番号の受信済みシーケンス番号のデータをデータ記憶部４１から削除する。再送制御部４３は、再送シーケンス番号を特定できない場合、受信装置２−３がそのブロックにおける全てのデータパケットを受信したと判定し、データ記憶部４１に格納されたそのブロックのデータを削除する。一方、再送制御部４３は、再送シーケンス番号を特定した場合、受信装置２−３が受信していないデータパケットがあると判定し、再送対象のデータを特定するためのブロック番号及び再送シーケンス番号をデータ読出部１２に出力する。これにより、当該ブロックの再送シーケンス番号のデータパケットが再送される。
【０１３２】
（送信装置の処理／実施例３）
次に、実施例３による送信装置１−３の処理について説明する。図１５Ａ及び図１５Ｂは、送信装置１−３の処理を示すフローチャートである。送信装置１−３による映像ファイルの送信処理が開始すると、送信用データ生成・シーケンス番号付与部４０は、映像ファイルから複数の送信用のデータを生成し（ステップＳ１５０１）、各データにシーケンス番号をインクリメントして付与すると共に（ｎ＝ｎ＋１，初期値ｎ＝０）、ブロック番号を付与し、ブロック番号及びシーケンス番号を付与したデータをデータ記憶部４１のキューに格納する（ステップＳ１５０２）。そして、データ読出部１２は、キューから、大きいシーケンス番号順にデータをコピーして読み出し（ステップＳ１５０３）、送信部１３は、データ読出部１２により読み出されたデータをデータパケット化し、無線媒体として受信装置２−３へ送信する（ステップＳ１５０４）。
【０１３３】
送信部１３は、最も小さいシーケンス番号＃１のデータを送信したか否を判定し（ステップＳ１５０５）、最も小さいシーケンス番号＃１のデータを送信したと判定した場合（ステップＳ１５０５：ＹＥＳ）、ステップＳ１５０６へ移行し、最も小さいシーケンス番号＃１のデータを送信していないと判定した場合（ステップＳ１５０５：ＮＯ）、ステップＳ１５０３へ移行する。このように、送信装置１−３は、最も小さいシーケンス番号＃１のデータを送信するまで、データ読出部１２によるステップＳ１５０３の処理及び送信部１３によるステップＳ１５０４の処理を繰り返す。
【０１３４】
受信部４２は、ステップＳ１５０５から移行して（送信部１３により最も小さいシーケンス番号＃１のデータが送信された後）、受信装置２−３からＩ−ＮＡＣＫを受信したか否かを判定する（ステップＳ１５０６）。受信部４２は、Ｉ−ＮＡＣＫを受信していないと判定した場合（ステップＳ１５０６：ＮＯ）、Ｉ−ＮＡＣＫを受信するまで待つ。
【０１３５】
受信部４２は、ステップＳ１５０６において、Ｉ−ＮＡＣＫを受信したと判定した場合（ステップＳ１５０６：ＹＥＳ）、再送制御部４３は、Ｉ−ＮＡＣＫに付加されたブロック番号及び受信済みシーケンス番号から、ブロック番号が示すブロックについて、受信済みでないシーケンス番号を特定し、再送データがあるかないかを判定する（ステップＳ１５０７）。
【０１３６】
再送制御部４３は、ステップＳ１５０７において、受信装置２−３が当該ブロックの全てのデータの受信を完了しておらず、再送データがあると判定した場合（ステップＳ１５０７：ＹＥＳ）、当該ブロックのキューから受信済みシーケンス番号のデータを削除する（ステップＳ１５０８）。
【０１３７】
送信用データ生成・シーケンス番号付与部４０は、新たなブロックの映像ファイルから生成した新規の送信用のデータがあるか否かを判定し（ステップＳ１５０９）、新規データがあると判定した場合（ステップＳ１５０９：ＹＥＳ）、送信用データ生成・シーケンス番号付与部４０、データ読出部１２及び送信部１３は、ステップＳ１５０２〜ステップＳ１５０５と同様の処理を行う（ステップＳ１５１０〜ステップＳ１５１３）。このように、送信部１３は、新たなブロックの映像ファイルについて、最も大きいシーケンス番号から順に、ブロック番号及びシーケンス番号を付与したデータパケットを送信する。また、送信用データ生成・シーケンス番号付与部４０は、新規データがないと判定した場合（ステップＳ１５０９：ＮＯ）、ステップＳ１５１４へ移行する。
【０１３８】
データ読出部１２は、キューから、ステップＳ１５０７にて特定した当該ブロックについての再送データ（受信済みでないシーケンス番号が示す全てのデータ）を、大きいシーケンス番号順にコピーして読み出し（ステップＳ１５１４）、送信部１３は、ステップＳ１５１２における新たな映像ファイルの送信に続いて、ステップＳ１５１４にてデータ読出部１２により読み出された再送データをデータパケット化し、無線媒体として受信装置２−３へ再送する（ステップＳ１５１５）。そして、ステップＳ１５０６へ移行する。
【０１３９】
再送制御部４３は、ステップＳ１５０７において、受信装置２−３が当該ブロックの全てのデータの受信を完了しており、再送データがないと判定した場合（ステップＳ１５０７：ＮＯ）、当該ブロックについて、キューのデータを削除する（ステップＳ１５１６）。これにより、送信装置１−３による映像ファイルの送信処理は終了し、開始から繰り返される。
【０１４０】
（受信装置の構成／実施例３）
次に、実施例３による受信装置２−３の構成について説明する。図１６は、受信装置２−３の構成を示すブロック図である。この受信装置２−３は、受信部５０、データ記憶部５１、データ読出部５２、Ｉ−ＮＡＣＫタイマ処理部５３、ブロック番号・シーケンス番号記憶部５４、ブロック番号・シーケンス番号読出部５５及び送信部５６を備えている。
【０１４１】
受信部５０は、送信装置１−３からデータパケットを受信すると、データパケットからデータを抽出し、データに付与されたブロック番号及びシーケンス番号を抽出する。受信部５０は、最初に受信したデータパケットのブロック番号及びシーケンス番号をＩ−ＮＡＣＫタイマ処理部５３に出力する。また、受信部５０は、ブロック番号及びシーケンス番号を付与したデータをデータ記憶部５１に格納すると共に、抽出したブロック番号及びシーケンス番号をブロック番号・シーケンス番号記憶部５４に格納する。
【０１４２】
データ記憶部５１には、受信したデータパケットの各データが記憶される。図１６の例では、ブロックＡにおいて、受信したデータパケットについてのブロック番号Ａ及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２の各データが順番にデータ記憶部５１のキューに格納されている。この例は、図１４に示したように、送信装置１−３から、ブロック番号Ａにおける合計ｎ個のデータパケットが送信され、シーケンス番号＃ｎ−１，＃１のデータパケットに受信誤りが生じ、シーケンス番号＃ｎ，＃ｎ−２，・・・，＃２のデータパケットを正しく受信した場合を示している。
【０１４３】
データ読出部５２は、データ記憶部５１に、所定ブロックの全てのシーケンス番号のデータが格納されたときに、データ記憶部５１から、所定ブロックの全てのデータを、シーケンス番号の小さい順に読み出し、これらのデータを合成して元の映像ファイルを生成し、生成した映像ファイルを出力する。
【０１４４】
Ｉ−ＮＡＣＫタイマ処理部５３は、受信部５０から最初に受信したデータパケットのブロック番号及びシーケンス番号を入力し、ブロック番号・シーケンス番号読出部５５から再送データ数を入力し、入力した再送データ数が０であり、受信データに再送データが含まれていないと判定した場合、入力したシーケンス番号に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。一方、Ｉ−ＮＡＣＫタイマ処理部５３は、入力した再送データ数が０でなく、受信データに再送データが含まれていると判定した場合、入力したシーケンス番号及び再送データ数に基づいて受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定してＩ−ＮＡＣＫタイマを起動する。Ｉ−ＮＡＣＫタイマ処理部５３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたときに、タイムアウトをブロック番号・シーケンス番号読出部５５に出力する。
【０１４５】
ブロック番号・シーケンス番号記憶部５４には、受信したデータパケットについてのブロック番号及びシーケンス番号が記憶される。図１６の例では、受信したデータパケットについて、ブロック番号Ａのシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２が順番にブロック番号・シーケンス番号記憶部５４のキューに格納されている。この例は、データ記憶部５１に格納されたデータに対応している。
【０１４６】
ブロック番号・シーケンス番号読出部５５は、Ｉ−ＮＡＣＫタイマ処理部５３からタイムアウトを入力したとき、ブロック番号・シーケンス番号記憶部５４からブロック番号及びシーケンス番号を読み出し、読み出したシーケンス番号を受信済みシーケンス番号に設定し、ブロック番号及び受信済みシーケンス番号を送信部５６に出力する。また、ブロック番号・シーケンス番号読出部５５は、ブロック番号・シーケンス番号記憶部５４からブロック番号等を読み出した後、ブロック番号・シーケンス番号記憶部５４のブロック番号等を削除する。ブロック番号・シーケンス番号読出部５５は、ブロック番号からブロックを特定し、そのブロックの受信済みシーケンス番号に基づいて、送信装置１−３から送信された全てのデータの受信が完了していないと判定した場合、受信が完了していないデータ数（特定した全てのブロックにおいて受信が完了していないデータ数）を再送データ数としてＩ−ＮＡＣＫタイマ処理部５３に出力する。一方、ブロック番号・シーケンス番号読出部５５は、送信装置１−３から送信された全てのデータの受信が完了していると判定した場合、再送データ数０をＩ−ＮＡＣＫタイマ処理部５３に出力する。この場合、ブロック番号・シーケンス番号読出部５５は、送信装置１−３から送信された各ブロックにおける全てのデータのシーケンス番号及び受信済みシーケンス番号を管理している。
【０１４７】
送信部５６は、ブロック番号・シーケンス番号読出部５５からブロック番号及び受信済みシーケンス番号を入力し、入力したブロック番号及び受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する。図１６の例では、ブロック番号Ａ及びシーケンス番号＃ｎ，＃ｎ−２，・・・，＃２が付加されたＩ−ＮＡＣＫが送信される。
【０１４８】
（受信装置の処理／実施例３）
次に、実施例３による受信装置２−３の処理について説明する。図１７は、その処理を示すフローチャートである。受信装置２−３による映像ファイルの受信処理が開始すると、受信部５０は、送信装置１−３からのデータパケットの送信に伴って、データパケットの受信を開始する（ステップＳ１７０１）。Ｉ−ＮＡＣＫタイマ処理部５３は、受信データに再送データが含まれているか否かを判定する（ステップＳ１７０２）。受信データに再送データが含まれているか否かは、ブロック番号・シーケンス番号読出部５５から入力した再送データ数が０であるか否か（０の場合は再送データが含まれておらず、０以外の場合は再送データが含まれている。）により判定される。
【０１４９】
Ｉ−ＮＡＣＫタイマ処理部５３は、ステップＳ１７０２において、受信データに再送データが含まれていないと判定した場合（ステップＳ１７０２：ＮＯ）、最初に受信したデータパケットのシーケンス番号を取得し（ステップＳ１７０３）、図１２に示したステップＳ１２０４と同様に、取得したシーケンス番号及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ１７０４）。一方、Ｉ−ＮＡＣＫタイマ処理部５３は、ステップＳ１７０２において、受信データに再送データが含まれると判定した場合（ステップＳ１７０２：ＹＥＳ）、図１２に示したステップＳ１２０５と同様に、最初に受信したデータパケットのシーケンス番号、再送データ数及び予め設定された１データの伝送時間から、受信終了時間を予測し、予測した受信終了時間をＩ−ＮＡＣＫタイマの設定値に設定し、Ｉ−ＮＡＣＫタイマを起動する（ステップＳ１７０５）。
【０１５０】
受信部５０は、ステップＳ１７０４またはステップＳ１７０５から移行して、受信したデータパケットのブロック番号及びシーケンス番号をブロック番号・シーケンス番号記憶部５４に格納する（ステップＳ１７０６）。これにより、データパケットを受信する毎に、ブロック番号及びシーケンス番号がブロック番号・シーケンス番号記憶部５４に格納される。
【０１５１】
Ｉ−ＮＡＣＫタイマ処理部５３は、Ｉ−ＮＡＣＫタイマがタイムアウトしたか否かを判定し（ステップＳ１７０７）、タイムアウトしていないと判定した場合（ステップＳ１７０７：ＮＯ）、ステップＳ１７０６へ移行し、タイムアウトするまで待つ。一方、Ｉ−ＮＡＣＫタイマ処理部５３は、ステップＳ１７０７において、タイムアウトしていると判定した場合（ステップＳ１７０７：ＹＥＳ）、ブロック番号・シーケンス番号読出部５５は、ブロック番号・シーケンス番号記憶部５４からブロック番号及びシーケンス番号を読み出し、シーケンス番号を受信済みシーケンス番号に設定し、送信部５６は、ブロック番号及び受信済みシーケンス番号を付加したＩ−ＮＡＣＫを送信装置１−３へ送信する（ステップＳ１７０８）。これにより、受信装置２−３による映像ファイルの受信処理は終了し、開始から繰り返される。
【０１５２】
以上、実施例を挙げて本発明を説明したが、本発明は前記実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。前記実施例では、映像ファイルを例にして説明したが、映像ファイルの他、音声ファイル、テキストデータファイル等であってもよい。
【０１５３】
尚、本発明の実施形態による送信装置１−１〜１−３及び受信装置２−１〜２−３のハードウェア構成としては、通常のコンピュータを使用することができる。送信装置１−１〜１−３及び受信装置２−１〜２−３は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。送信装置１−１に備えた送信用データ生成・シーケンス番号付与部１０、データ記憶部１１、データ読出部１２、送信部１３、受信部１４及び再送制御部１５の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。送信装置１−２に備えた送信用データ生成・シーケンス番号付与部１６、データ記憶部１７、データ読出部１２、送信部１３、受信部１８及び再送制御部１９も同様であり、送信装置１−３に備えた送信用データ生成・シーケンス番号付与部４０、データ記憶部４１、データ読出部１２、送信部１３、受信部４２及び再送制御部４３も同様である。また、受信装置２−１に備えた受信部２０、データ記憶部２１、データ読出部２２、Ｉ−ＮＡＣＫタイマ処理部２３、シーケンス番号記憶部２４、シーケンス番号読出部２５及び送信部２６の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。受信装置２−２に備えた受信部３０、データ記憶部３１、データ読出部３２、Ｉ−ＮＡＣＫタイマ処理部３３、送信回数・シーケンス番号記憶部３４、送信回数・シーケンス番号読出部３５及び送信部３６も同様であり、受信装置２−３に備えた受信部５０、データ記憶部５１、データ読出部５２、Ｉ−ＮＡＣＫタイマ処理部５３、ブロック番号・シーケンス番号記憶部５４、ブロック番号・シーケンス番号読出部５５及び送信部５６も同様である。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【０１５４】
１，１０１  送信装置
２，１０２  受信装置
１０，１６，４０  送信用データ生成・シーケンス番号付与部
１１，１７，２１，３１，４１，５１  データ記憶部
１２，２２，３２，５２  データ読出部
１３，２６，３６，５６  送信部
１４，１８，２０，３０，４２，５０  受信部
１５，１９，４３  再送制御部
２３，３３，５３  Ｉ−ＮＡＣＫタイマ処理部
２４  シーケンス番号記憶部
２５  シーケンス番号読出部
３４  送信回数・シーケンス番号記憶部
３５  送信回数・シーケンス番号読出部
５４  ブロック番号・シーケンス番号記憶部
５５  ブロック番号・シーケンス番号読出部
１００  撮像装置
１０３  データ蓄積装置
１４０  ブロック番号付与部
１６０，１９０  送信回数付与部
【図１】
2014039136.tif 000003
【図２】
2014039136.tif 000004
【図３】
2014039136.tif 000005
【図４】
2014039136.tif 000006
【図５】
2014039136.tif 000007
【図６】
2014039136.tif 000008
【図７】
2014039136.tif 000009
【図８】
2014039136.tif 000010
【図９Ａ】
2014039136.tif 000011
【図９Ｂ】
2014039136.tif 000012
【図１０】
2014039136.tif 000013
【図１１】
2014039136.tif 000014
【図１２】
2014039136.tif 000015
【図１３】
2014039136.tif 000016
【図１４】
2014039136.tif 000017
【図１５Ａ】
2014039136.tif 000018
【図１５Ｂ】
2014039136.tif 000019
【図１６】
2014039136.tif 000020
【図１７】
2014039136.tif 000021
【図１８】
2014039136.tif 000022
【図１９】
2014039136.tif 000023
【図２０】
2014039136.tif 000024
【図２１】
2014039136.tif 000025