(57)【要約】  データパケットストリーミング用のシステムであって、無線トランシーバ１０を有する送信元装置２、および無線トランシーバ１４を有する受信装置４を含む。送信元装置２は、データパケットのストリームを所定のストリーム速度で受信または生成するように構成され、一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケット２２ａが含まれるものを無線で送信するように構成される。  受信装置４は、データフレームを受信し、そのデータフレーム内の一個以上のデータパケット２２ａが正しく受信されたか誤って受信されたかを決定するように構成され、一個以上のデータパケット２２ａが正しく受信されたことを示す確認メッセージ２２ｃを無線で送信するように構成されるものと、一個以上のデータパケットが誤って受信されたことを示す確認メッセージを無線で送信するように構成されるものとの両方もしくは一方で構成される。  送信元装置２はまた、あるデータパケット２２ａが受信装置に正しく受信されていないと判断した場合、ストリームから取り出した一個以上の未送信データパケット２４ａと共にデータパケット２４ｂを一個の後続データフレームで再送信するように構成される。送信元装置２はさらに、あるデータフレームを送信した後の確認期間内に確認メッセージ２４ｃを受信しない場合、データフレームから取り出した一個以上のデータパケット２６ｂを、ストリームから取り出したそれぞれ一個以上の未送信データパケット２６ａと共に一個以上の後続データフレームで再送信するように構成される。【選択図】図２
2014520443.tif 000002
【特許請求の範囲】
【請求項１】
無線トランシーバを有する送信元装置、および無線トランシーバを有する受信装置を含む、データパケットストリーミング用のシステムであって、
前記送信元装置は、 データパケットのストリームを所定のストリーム速度で受信または生成するように構成され、
前記送信元装置は、一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するように構成され、
前記受信装置は、データフレームを受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するように構成され、
前記受信装置は、一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するように構成されるものと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するように構成されるものとの両方もしくは一方で構成され、
前記送信元装置は、あるデータパケットが前記受信装置に正しく受信されていないと判断した場合、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信するように構成され、
前記送信元装置は、あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信するように構成される
ことを特徴とするシステム。
【請求項２】
各データパケットは、識別子を含むか、または識別子を伴う
ことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記送信元装置は、前記ストリームから生じる順に各データパケットに通し番号を付けるように構成される
ことを特徴とする、請求項１または請求項２に記載のシステム。
【請求項４】
前記送信元装置は、前記識別子となる一連の通し番号を生成するように構成されたカウンタを含む
ことを特徴とする、請求項２または請求項３に記載のシステム。
【請求項５】
前記受信装置もまたカウンタを含む
ことを特徴とする、請求項４に記載のシステム。
【請求項６】
前記受信装置は、データフレームを受信するたびにそのカウンタを漸増するように構成される
ことを特徴とする、請求項５に記載のシステム。
【請求項７】
前記送信元装置は、前記ストリームの先頭から新たに取り出した一定数のデータパケットを各データフレームで送信するように構成され、前記受信装置は、各データフレームを受信するたびに前記一定数のデータパケット分だけそのカウンタを漸増するように構成される
ことを特徴とする、請求項６に記載のシステム。
【請求項８】
前記送信元装置は、前記データフレームを一定のフレーム速度で周期的に送信するように構成される
ことを特徴とする、請求項１乃至請求項７のいずれか一項に記載のシステム。
【請求項９】
前記受信装置は、特定のデータフレームを受信しない場合でも、前記フレーム速度に基づいて経時的にそのカウンタを漸増するように構成される
ことを特徴とする、請求項８が請求項５、請求項６または請求項７に従属するときの請求項８に記載のシステム。
【請求項１０】
前記確認メッセージはそれぞれのデータパケットに関連付けられた一連のフラグを含み、対応する前記データパケットが正しく受信されたか否かを各フラグが示している
ことを特徴とする、請求項１乃至請求項９のいずれか一項に記載のシステム。
【請求項１１】
前記確認メッセージは、共通かつ一定数の前記フラグを含み、前記一定数は、前記データパケットに適用される固有な識別子の個数と同じである
ことを特徴とする、請求項１０に記載のシステム。
【請求項１２】
前記送信元装置は、一個以上のデータパケットを含むデータフレームを送信するときに、送信される前記データパケットに関する一連のフラグを、前記データパケットが正しく受信されていないことを示すように更新するよう構成される
ことを特徴とする、請求項１０または請求項１１に記載のシステム。
【請求項１３】
前記確認期間は、前記データフレームの終了によって決まる一定の持続時間である
ことを特徴とする、請求項１乃至請求項１２のいずれか一項に記載のシステム。
【請求項１４】
まだ所定の待ち時間期間内にある限り、再送すべきデータパケットのうち最も古いものの再送優先順位が最も高くなり、再送用のフラグが立ったデータパケットのうち最新のものの優先順位が最も低くなるように構成される
ことを特徴とする、請求項１乃至請求項１３のいずれか一項に記載のシステム。
【請求項１５】
直近に送信されたｋ個のデータパケットのうちどれに再送フラグが立てられたか判断するように構成され、ここでｋはデータパケットの個数で表されるシステムの待ち時間である
ことを特徴とする、請求項１乃至請求項１４のいずれか一項に記載のシステム。
【請求項１６】
無線トランシーバを有する送信元装置から、無線トランシーバを有する受信装置へデータパケットを通信する方法であって、
前記送信元装置が、 データパケットのストリームを所定のストリーム速度で受信または生成するステップと、
前記送信元装置が、一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するステップと、
前記受信装置が、データフレームを受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するステップと、
前記受信装置が、一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するステップと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するステップとの両方もしくは一方を含み、
前記送信元装置は、あるデータパケットが前記受信装置に正しく受信されていないと判断した場合、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信し、
前記送信元装置は、あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信する
ことを特徴とする方法。
【請求項１７】
各データパケットは、識別子を含むか、または識別子を伴う
ことを特徴とする、請求項１６に記載の方法。
【請求項１８】
前記送信元装置は、前記ストリームから生じる順に各データパケットに通し番号を付ける
ことを特徴とする、請求項１６または請求項１７に記載の方法。
【請求項１９】
前記送信元装置は、前記識別子となる一連の通し番号を生成するように構成されたカウンタを含む
ことを特徴とする、請求項１７または請求項１８に記載の方法。
【請求項２０】
前記受信装置もまたカウンタを含む
ことを特徴とする、請求項１９に記載の方法。
【請求項２１】
前記受信装置は、データフレームを受信するたびにそのカウンタを漸増する
ことを特徴とする、請求項２０に記載の方法。
【請求項２２】
前記送信元装置は、前記ストリームの先頭から新たに取り出した一定数のデータパケットを各データフレームとして送信し、前記受信装置は、各データフレームを受信するたびに前記一定数のデータパケット分だけそのカウンタを漸増する
ことを特徴とする、請求項２１に記載の方法。
【請求項２３】
前記送信元装置は、前記データフレームを一定のフレーム速度で周期的に送信する
ことを特徴とする、請求項１６乃至請求項２２のいずれか一項に記載の方法。
【請求項２４】
前記受信装置は、特定のデータフレームを受信しない場合でも、前記フレーム速度に基づいて経時的にそのカウンタを漸増する
ことを特徴とする、請求項２０、請求項２１または請求項２２に従属するときの請求項２３に記載の方法。
【請求項２５】
前記確認メッセージはそれぞれのデータパケットに関連付けられた一連のフラグを含み、対応する前記データパケットが正しく受信されたか否かを各フラグが示している
ことを特徴とする、請求項１６乃至請求項２４のいずれか一項に記載の方法。
【請求項２６】
前記確認メッセージは、共通かつ一定数の前記フラグを含み、前記一定数は、前記データパケットに適用される固有な識別子の個数と同じである
ことを特徴とする、請求項２５に記載の方法。
【請求項２７】
前記送信元装置は、一個以上のデータパケットを含むデータフレームを送信するときに、送信する前記データパケットに関する一連のフラグを、前記データパケットが正しく受信されていないことを示すように更新する
ことを特徴とする、請求項２５または請求項２６に記載の方法。
【請求項２８】
前記確認期間は、前記データフレームの終了によって決まる一定の持続時間である
ことを特徴とする、請求項１６乃至請求項２７のいずれか一項に記載の方法。
【請求項２９】
まだ所定の待ち時間期間内にある限り、再送すべきデータパケットのうち最も古いものの再送優先順位が最も高くなり、再送用のフラグが立ったデータパケットのうち最新のものの優先順位が最も低くなる
ことを特徴とする、請求項１６乃至請求項２８のいずれか一項に記載の方法。
【請求項３０】
直近に送信されたｋ個のデータパケットのうちどれに再送フラグが立てられたか判断し、ここでｋはデータパケットの個数で表されるシステムの待ち時間である
ことを特徴とする、請求項１６乃至請求項２９のいずれか一項に記載の方法。
【請求項３１】
無線トランシーバを有する送信元装置であって、
データパケットのストリームを所定のストリーム速度で受信または生成するように構成され、
一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するように構成され、
あるデータパケットが受信装置に正しく受信されていないかを判断し、それに応じて、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信するように構成され、
あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信するように構成される
ことを特徴とする送信元装置。
【請求項３２】
無線トランシーバを有する受信装置であって、
一個以上の未送信データパケットを含むデータフレームを無線でデータパケットのストリームから受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するように構成され、
一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するように構成されるものと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するように構成されるものとの両方もしくは一方で構成され、
前記ストリームから取り出した一個以上の未送信データパケットと共に一個の後続データフレームで再送信された一個のデータパケットを受信するように構成され、
受信したデータパケットの前記ストリームを出力するように構成される
ことを特徴とする受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線によるデータパケットのストリーミング通信に関するものである。
【背景技術】
【０００２】
一過性のデータパケットを送信機から受信機へ無線で確実にストリーム送信する必要のある場合がある。
【０００３】
例えば、ワイヤレスマイクをデジタル無線リンクで拡声装置に接続することがある。マイクからの音声データは、ユーザが満足感を得られるように、最小限の待ち時間で、受信し、復元し、増幅しなければならない。別の例として、音声データを無線リンクによってホームシネマシステム内の無線サブウーファーへストリーミングする場合が挙げられ、その際にはサブウーファーからの信号を他の（おそらく有線の）スピーカからのオーディオ信号と同期させる必要がある。さらに別の例として、テレビカメラが、音声映像データを無線リンクにより生放送状況下で処理センタにストリーミングする場合が挙げられる。
【０００４】
これらの例ではすべて、受信したデータはごく最小限の一時データ保存しか許されない（例えば、数ミリ秒または数十ミリ秒のオーダーであり、例として挙げれば約２５ミリ秒）。
【０００５】
デジタル無線リンクでは、他の近くの無線送信機および環境ノイズからの干渉を受けて、送信中の一個以上のデータパケットが破損したり失われたりする。この結果、受信機において情報が失われ不完全な出力となる。音声の場合、データが無くなると受信機コーデックはその間は無声出力するしかなくなる。
【０００６】
デジタル無線リンクを介してデータをストリーミングする際には、受信機は受信したパケットを一時保管し、干渉により破損したパケットがあれば再送を要求することが知られている。無線リンク上に十分な予備容量があれば、音声送信機は指示されたパケットを再送信する。
【０００７】
しかし、このメカニズムは、干渉が著しいかもしくは長期である場合には、受信機では依然としてバッファアンダーフローを起こしやすい。本発明は、より信頼性の高いアプローチを提供することを目的とするものである。
【発明の概要】
【０００８】
一態様では、本発明は、無線トランシーバを有する送信元装置、および無線トランシーバを有する受信装置を含む、データパケットストリーミング用のシステムを提供するものであって、
前記送信元装置は、 データパケットのストリームを所定のストリーム速度で受信または生成するように構成され、
前記送信元装置は、一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するように構成され、
前記受信装置は、データフレームを受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するように構成され、
前記受信装置は、一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するように構成されるものと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するように構成されるものとの両方もしくは一方で構成され、
前記送信元装置は、あるデータパケットが前記受信装置に正しく受信されていないと判断した場合、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信するように構成され、
前記送信元装置は、あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信するように構成される。
【０００９】
別の態様では、本発明は、無線トランシーバを有する送信元装置から、無線トランシーバを有する受信装置へデータパケットを通信する方法を提供するものであって、前記方法は、
前記送信元装置が、 データパケットのストリームを所定のストリーム速度で受信または生成するステップと、
前記送信元装置が、一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するステップと、
前記受信装置が、データフレームを受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するステップと、
前記受信装置が、一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するステップと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するステップとの両方もしくは一方を含み、
前記送信元装置は、あるデータパケットが前記受信装置に正しく受信されていないと判断した場合、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信し、
前記送信元装置は、あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信する。
【００１０】
本発明はまた、無線トランシーバを有する送信元装置にも拡張されて、
データパケットのストリームを所定のストリーム速度で受信または生成するように構成され、
一連のデータフレームであって各データフレームには前記ストリームから取り出した連続する一個以上の未送信データパケットが含まれるものを無線で送信するように構成され、
あるデータパケットが受信装置に正しく受信されていないかを判断し、それに応じて、前記ストリームから取り出した一個以上の未送信データパケットと共に前記データパケットを一個の後続データフレームで再送信するように構成され、
あるデータフレームを送信した後の確認期間内に確認メッセージを受信しない場合、前記データフレームから取り出した前記一個以上のデータパケットを、前記ストリームから取り出したそれぞれ一個以上の未送信データパケットと共に一個以上の後続データフレームで再送信するように構成される。
【００１１】
本発明はさらに、無線トランシーバを有する受信装置にも拡張されて、
一個以上の未送信データパケットを含むデータフレームを無線でデータパケットのストリームから受信し、前記データフレーム内の前記一個以上のデータパケットが正しく受信されたか誤って受信されたかを決定するように構成され、
一個以上の前記データパケットが正しく受信されたことを示す確認メッセージを無線で送信するように構成されるものと、一個以上の前記データパケットが誤って受信されたことを示す確認メッセージを無線で送信するように構成されるものとの両方もしくは一方で構成され、
前記ストリームから取り出した一個以上の未送信データパケットと共に一個の後続データフレームで再送信された一個のデータパケットを受信するように構成され、
受信したデータパケットの前記ストリームを出力するように構成される。
【００１２】
従って、当業者は理解できるであろうが、本発明によれば、受信装置は破損したデータパケットの再送信を要求することができ、確認メッセージが送信元装置に届かなかった場合もやはり、送信元装置は影響を受けたデータパケットをすべて再送信する。これは破損したデータパケットがこのような状況で再送されることがなく、音声ストリーミングの適用例で言えば可聴出力が思わぬ結果となってしまうことがある従来のアプローチとは対照的である。
【００１３】
各データパケットは、番号などの識別子を含むか、または識別子を伴うのが好ましい。送信元装置は、ストリームから生じる順に各データパケットに通し番号を付けてもよい。送信元装置は、識別子となる一連の通し番号を生成するように構成されたカウンタを含んでもよい。通し番号が最大数に達すると折り返せばよく、例えば、送信元装置は６ビットのカウンタを用いて０から６３までの通し番号を周期的に生成するようにしてもよい。最大カウント数は、少なくともシステム待ち時間と同じ大きさであることが好ましく、ストリーミング速度でのデータパケット数として表わされる。
【００１４】
システム待ち時間とは、送信元装置がデータパケットのストリームを伝送する時と、ストリームの内容が受信装置により出力されるかさもなければ処理される時との間に生じる設定値もしくは平均値としての遅れのことを指す。送信時および受信時の遅延を無視すると、システム待ち時間は、受信装置内のバッファサイズによって決定される。受信したデータは、受信データストリームとして出力されるかさもなければ処理されるが、その前にバッファに一時保管される。この待ち時間の値は設定可能であって、通常はより長い待ち時間にすると受信データストリームにおけるエラー確率を減少できるが、伝送してから出力するまでの遅延がより長くなり、特定の状況下では望ましくないこともある。
【００１５】
受信装置もまた、カウンタを含んでもよい。このカウンタは送信元装置内のカウンタと同一の最大数に達した後は折り返せばよい。 二台のカウンタは初期化プロセスの間に同期化（例えば、両方ともゼロに設定）すればよい。
【００１６】
受信装置は、データフレームを受信するたびにそのカウンタを漸増してもよい。送信元装置は、ストリームの先頭から新たに取り出した一定数のデータパケットを各データフレームとして送信するのが好ましい。この場合、受信装置は、各データフレームを受信するたびにこの一定数のデータパケット分だけそのカウンタを漸増すればよい。たとえデータフレームの内容の一部または全部が誤って受信されていても、例えば干渉により破損したとしても、このようにしてよい。こうすることで、データフレームが完全に失われない限り、送信元装置と受信装置のそれぞれのカウンタ間の同期が保持される。もしデータフレームが完全に失われた場合、後述するように、受信装置が、追加でまたは代替策として、経過時間に基づいてそのカウンタを漸増するように配置されていない限り、再初期化の処理が必要となる。
【００１７】
データフレームは、不規則な間隔で送信されてもよいが、一定のフレーム速度で周期的に送信されるのが好ましい。このフレーム速度は、通常、各フレーム内のデータパケットの個数で表されるストリーム速度と関係付けられる。
【００１８】
データパケットは、一個のデータフレーム内で任意の順番で送信されてもよい。特に、新たなデータパケットは再送データパケットの前または後に来るようにする。データパケットは、ヘッダー情報と、送信元アドレスと、宛先アドレスと、通し番号と、データ本体と、チェックサムとのうち一つ以上含む。一つのデータ本体は、ストリーミングデータまたはコマンドデータのいずれか一方もしくは両方を含む。例えば、音声データと、音量増減、再生・停止、ミュート等の命令のいずれか一方もしくは両方を含むことがある。
【００１９】
チェックサム、識別子などのいずれかがデータフレーム内で占める位置と属性は、特定の構成に限定されるものではない。実施形態によっては、そうした情報は、データパケット自体とは別の無線周波数のように、異なるチャネルで送信することさえできる。
【００２０】
一定のフレーム速度が用いられる場合、受信装置はフレーム速度に基づいて、特定のデータフレームを受信しないときでも、経時的にそのカウンタを漸増するように構成してもよい。このように、受信装置は、一個以上のデータフレームが送信中に完全に失われた場合でも（例えば、フレーム内のデータパケットがすべて失われた場合）、送信元装置のカウンタとの同期を保持することができる。同様にして、受信装置は、識別子が最後に受信したデータフレームの識別子と不連続であるデータフレームを受信した場合も、（データフレームが完全に失われたことを推測して）そのカウンタを新たな識別子で設定し直してもよい。
【００２１】
データパケットは、受信装置がそれを使ってデータパケットの内容を正しく受信したのか誤って受信したのかを検出できる情報を含むか、またはその情報を伴うのが好ましい。チェックサムやハッシュ値がこれに相当する。
【００２２】
確認メッセージは、正しく受信された一個以上のデータパケットを識別する情報を含んでもよい。あるいは、またはそれに加えて、誤って受信された（例えば、干渉により破損した）一個以上のパケットを識別する情報を含んでもよい。
【００２３】
確認メッセージは、例えば、正しく受信されなかった（または正しく受信された）データパケットの識別子リストを含んでもよい。しかし、そのことは潜在的に長い確認メッセージにつながる可能性があり、非常に効率的というわけではない。従って、好ましい実施形態によっては、確認メッセージはそれぞれのデータパケットに関連付けられた一連のフラグ（例えば、ブール値）を含み、対応するデータパケットが正しく受信されたか否かを各フラグが示している。
【００２４】
その一連のフラグは確認メッセージ内のビット配列として伝達することができ、例えば、対応するデータパケットが正しく受信された場合は特定の位置を「０ 」ビットとし、それがまったく受信できなかったか破損して受信された場合は「１」ビットとして（またはその逆）示すことができる。
【００２５】
確認メッセージは、共通かつ一定数のフラグを含んでもよい。好ましい実施形態によっては、これは、データパケットに適用される固有な識別子の個数と同じであり、例えば、送信元装置内のカウンタによって生成される固有な値の個数（例えば、６ビットカウンタであれば６４フラグ）と同じである 。そのような配置とすることにより、各フラグの位置は常に特定のカウンタ値に対応する（例えば、パケット識別子ゼロはビット配列の左端の位置を占め、パケット識別子６３はビット配列の右端の位置を占める）ので、受信装置は、確認メッセージを非常に効率的に構築することができる。
【００２６】
しかしながら、他の実施形態では、確認メッセージ内のフラグ数をシステムの設定待ち時間または最大待ち時間と等しくすることができ、データパケットの個数として表わされる。こうすることで、待ち時間が固有な識別子の個数より少ない場合、確認メッセージは短くなるが、受信装置にとって確認メッセージを作成するためにより大きな処理労力を必要とすることになる。例えば、ビット配列の右端の位置は、直近に送信されたデータフレーム内の最新のデータパケットに対応し、左端の位置は、影響が残る待ち時間内の最も古いデータパケットに対応するものとできる。しかし、最大カウンタ値が正確に待ち時間（パケットの個数として表される）に等しくない限り、パケット識別子がビット配列内の特定の位置と固定的に関連付けられることはない。
【００２７】
受信装置は、マスターとなる一連のフラグを、例えばＲＡＭ内またはレジスタ内に保持し、各データフレームを受信した後に更新する。そして、各確認メッセージはこのマスターとなる一連のフラグの一部または全部のコピーを含むことになる。
【００２８】
送信元装置もまた、マスターとなる一連のフラグを、例えばＲＡＭ内またはレジスタ内に保持し、各確認メッセージを受信した後に、確認メッセージ内のフラグ値に対応するように更新するのが好ましい。
【００２９】
送信元装置は、一個以上のデータパケットを含むデータフレームを送信するときに、送信するデータパケットに関してその一連のフラグを、データパケットが（まだ）正しく受信されていないことを示すように更新してもよい。これは、データフレームを送信する前であれ送信した後であれデータフレームを送信するたびに行なってもよいし、確認期間内に当該データフレームに対して確認メッセージを受信しない場合にのみ行なってもよい。
【００３０】
このようにして、データパケットは、対応する確認メッセージが送信元装置に正しく届かないか、送信元装置が一個以上のデータパケットが正常に届かなかったことを示す確認メッセージを受信した場合に、再送の印が付けられる。
【００３１】
一個以上のデータパケットが正しくもしくは誤って受信されたことを示すと共に、確認メッセージは、ヘッダー情報と、送信元アドレスと、宛先アドレスと、通し番号と、データ本体と、チェックサムとのうち一つ以上含んでいてもよい。一つのデータ本体は、例えば、音量増減、再生・停止、ミュート等の命令であるコマンドデータを含んでもよいし、音声データ等のストリーミングデータを含んでいてもよい。
【００３２】
確認期間は、一定の持続時間であって、送信元装置によって計時されてもよい。これは、フレーム持続時間よりも短くても長くてもよい。しかし、確認期間はデータフレームの終了によって決まるのが好ましく、例えば、送信元装置が次のデータフレームを組み立て始めるか送信し始める時に、またはその直前に、終了するのが好ましい。これは、無線トランシーバが半二重で通信する実施形態において好ましい。
【００３３】
確認メッセージを受信すると、再送データパケットがある場合、送信元装置はどのデータパケットが再送されるべきかを決定する。
【００３４】
各データフレームには、限られた数の再送データパケット（つまり、ストリームの先頭から新たに取り出されたものに加えるデータパケット）分しか空きスペースがないこともある。この再送信容量はシステムの待ち時間より少ないかもしれず、相当の干渉がある場合には、再送パケットを複数のデータ・フレームに分割する必要があるかもしれない。
【００３５】
好ましい実施形態によっては、まだ待ち時間（一時保管）期間内にある限り、再送すべきデータパケットのうち最も古いものの再送優先順位が最も高くなり、再送用のフラグが立ったデータパケットのうち最新のものの優先順位が最も低くなる。送信元装置は、そのデータフレームの再送容量に達するまで、優先順位の高い順にデータパケットをデータフレーム内に入れるようにしてもよい。
【００３６】
データパケットは、再送中に破損するかもしれず、したがって、システムは、（パケットの待ち時間限度内に）同一のデータパケットを複数回再送することもある。
【００３７】
前述したように、送信元装置が一連のフラグを保持する場合、データフレームを組み立てる際に、直近に送信されたｋ個のデータパケットのうちどれに再送フラグが立てられたか判断するのが好ましく、ここでｋはシステムの待ち時間である（データパケットの個数で表される）。そして、送信元装置は、これらのデータパケットのうち古いものから順にｍ個をデータフレームに含める、ここでｍはデータフレーム内の再伝送容量である。
【００３８】
待ち時間よりも古いデータパケットに関連するフラグを無視すれば、期限切れのデータパケットを再送信してチャネル容量を浪費せずに済む。
【００３９】
このように再送の優先順位付けを行なうことにより、受信装置においてバッファアンダーランを回避できて特に有益な性能が得られるはずである。
【００４０】
データフレームは、異なる再送信容量を有していてもよいが、典型的には、すべてのデータフレームが同じ再送信容量（例えば、ストリームの先頭から順に１４個の再送データパケット容量と、追加で４個の新たなデータパケット容量）を有する。
【００４１】
データパケットは、任意の種類の情報を含んでよいが、実施形態によっては、音声または映像データを含む。送信元装置は、データストリームを受信し、データパケットのストリームに変換する。受信装置は、受信したデータパケットを組み合わせ（例えば、バッファから読み込んで）データストリームとして出力する。出力データストリームは、バッファアンダーランが不可避であるような大きな干渉が起こっていなければ、送信元装置が受信したデータストリームと同じはずである。
【００４２】
送信元装置は、例えばラジオ・オン・チップのような集積回路であることが好ましく、集積回路化されたアンテナを有してもよいし外部アンテナを有してもよい。同様に、受信装置も、例えば、ラジオ・オン・チップのような集積回路であることが好ましく、集積回路化されたアンテナを有してもよいし外部アンテナを有してもよい。
【図面の簡単な説明】
【００４３】
ほんの一例として、本発明の好適な実施形態のいくつかを下記の添付図面を参照しながら説明する。
【図１】本発明を具体化した無線通信システムの概略図である。
【図２】データ交換例のタイミング図である。
【発明を実施するための形態】
【００４４】
図１は、リモートにある拡声装置４に無線で接続されているワイヤレスマイクロホン装置２を示している。ワイヤレスマイクロホン装置２は、アナログデジタル変換器（ＡＤＣ）８に接続されたマイクロホン素子６を備えている。ＡＤＣ８のデジタル出力は、無線音声送信器チップ（ＡＴＸ）１０に送られる。ＡＤＣ８およびＡＴＸ１０は、同じくワイヤレスマイクロホン装置２内に収容されるマイクロコントローラユニット（ＭＣＵ）１２によって制御されている。
【００４５】
拡声装置４は、無線音声受信器チップ（ＡＲＸ）１４を備えており、後者の出力はデジタルアナログ変換器（ＤＡＣ）１８に接続されている。ＡＲＸ１４とＤＡＣ１８はマイクロコントローラ（ＭＣＵ）１６によって制御される。ＤＡＣ１８のアナログ出力は、拡声装置４内のスピーカ２０に接続されている。
【００４６】
それ以外の増幅器、フィルタ、電源などの部品は、図を見やすくするため示していないが、従来の態様で配置されて動作する。
【００４７】
使用中は、可聴音がマイクロホン６により連続して受信される。この信号は、ＡＤＣ８によりデジタル化され、ＡＴＸ１０にデータストリームとして送信される。ＡＴＸ１０は、データストリームを離散データパケットとしてストリーミングし、無線により送信する。データ送信プロトコルの詳細については後述する。
【００４８】
データパケットが拡声装置４内のＡＲＸ１４で受信されると、当該データパケットは正しい順序に組み立てられ、パケット内のデータが抽出されて、ワイヤレスマイクロホン装置２内のＡＤＣ８によって生成された元のストリームと同じ内容のデータストリームが形成される。著しく干渉が発生する状況下ではデータストリームが破損するかもしれないが、データ交換プロトコルはこのようなことはめったに起こらないはずであるとの想定で設計されている。データストリームは、ＤＡＣ１８を経由して連続したアナログ出力となり、このアナログ出力は増幅され、スピーカ２６を介して再生される。
【００４９】
図２は、時間が左から右に流れるとして、時間軸に沿って、連続した三個のデータフレームを示している。時間軸の上の長方形はＡＴＸ１０が送信したデータを表し、時間軸の下の長方形はＡＲＸ１４が送信したデータを表す。図は実寸ではない。
【００５０】
従来の無線初期化手順を使用し、特定のデータのフレーム速度（またはバースト速度）でＡＴＸ１０とＡＲＸ１４との間に時間同期された無線リンクを確立する。例えば、長さ３ミリ秒のデータフレームは３３３Ｈｚで送信される。
【００５１】
ＡＴＸ１０とＡＲＸ１４はどちらも内部カウンタを有し、初期時にゼロに同期される。両方のカウンタは、例えば二進数１１１１１１（十進数６３）のような最大値に達した後はゼロに戻る。
【００５２】
ＡＲＸ１４内にあるユーザ設定可能なレジスタによってデータフローの待ち時間、つまりＤＡＣ１８に出力される前にＡＲＸ１４にはデータパケットをいくつ一時保管できるか、が決まる。この例における待ち時間は九個のデータフレームであるが、七個でも他の適当な任意の値であってもよい。この値はＡＴＸ１０と共有され、ＡＴＸ１０はそれを使用してデータパケットが古すぎて再送信できなくなる時を決定する。
【００５３】
通常の、干渉のない動作では、ＡＴＸ１０は各データフレームで四個のデータパケット２２ａを送信する。これらのデータパケットには、ＡＤＣ８から直近に出力されたデータが含まれる。最小限でも、各データパケットには、音声データ本体と、チェックサムと、ＡＴＸ１０内のパケットカウンタによって生成されたデータパケットの通し番号とが、含まれる。
【００５４】
四個のデータパケットを送信する際に、ＡＴＸ１０は、レジスタまたはメモリ内にあって、各データパケットに対してＡＲＸ１４から安全受信の確認を受信していないことを示すフラグを各パケット用にそれぞれ設定する。その結果、データパケットが再送されることを前提とし効果的に印をつけられるが、これについては以下でより詳細に説明する。
【００５５】
ＡＲＸ１４は、４つのデータパケット２２ａを含むデータ送信を受信する。ＡＲＸ１４は、各データパケットのチェックサムをチェックし、パケットの通し番号または内部カウンタ（例えば、通し番号が壊れていた場合）を使用して、受信すべきはずの４つのデータパケットの各々が正しく受信されたかどうかを示すビットフラグをセットする。ＡＲＸ１４は内部カウンタを４だけ増加する。
【００５６】
一連の六十四個の二値フラグが、最後に送信された六十四個のデータパケットに対応して保持される。同数のフラグを固有なカウンタ値として持つことにより、各フラグは、その対応するデータ・パケットの通し番号によって容易にアドレス指定可能となる。
【００５７】
受信されたデータパケットは、ＡＲＸ１４内のバッファメモリに格納される。もし同一のデータパケットが何度も正しく受信されると、二番目以降のコピーは破棄してもよいし、それ以前のものを上書きしてもよい。
【００５８】
ＡＲＸ１４は、データフレームの終了時にＡＴＸ１０に確認メッセージ２２ｃを返す。このメッセージ２２ｃには、最小限でも、例えばバイナリ配列形式で表された六十四個のブールフラグのコピーと、チェックサムとが含まれる。
【００５９】
通常の動作では、ＡＴＸ１０は確認メッセージ２２ｃを受信する。チェックサムが有効であると仮定すると、ＡＴＸ１０は、ローカルメモリ内にある一連の六十四ビットフラグを確認メッセージ２２ｃに含まれる値で更新する。
【００６０】
全てのデータパケット２２ａが正しく受信され、確認メッセージ２２ｃが正しく受信されると、処理がまた繰り返され、ＡＴＸ１０がストリームから次の四個のデータパケットを取り出し次のデータフレームで送信する。ＡＲＸ１４は、同一の平均データ速度でバッファからデータを読み出し、それをＤＡＣ１８へ出力する。
【００６１】
データパケット２２ａのいずれかが正しく受信されなかった場合、ＡＲＸ１４により確認メッセージ２２ｃにはその旨フラグが付けられる。次のデータフレームで、ＡＴＸ１０は、入力してくるストリームの先頭から次の四個のデータパケット２４ａを送信するが、さらに、二値フラグのコピーで正しく受信されなかったものとして示される、以前の三十六個のデータパケット２４ｂがあればそれを再送信する。三十六個のパケットとは、システム待ち時間の長さ（各々四個のデータパケットを有する九個のデータフレーム）である。
【００６２】
データフレームは、たとえば、合計十八個のデータ・パケットの容量しか有しないとすると、四個の新しいデータパケット２４ａと共に十四個のデータパケットまでは再送する空きスペースが存在することを意味する。もし十四個よりも多い個数のデータ・パケットに再送フラグが設定されていると、最後の三十六個のパケットのうち古い順から十四個がデータフレームとして送信される。
【００６３】
再送データパケットを受信すると、ＡＲＸ１４はそのチェックサムをチェックし、正常に受信された場合、このことを示すために対応する二値フラグをセットする。ＡＲＸ１４は、パケットの通し番号を使用してバッファメモリ内の適当な位置にパケット（またはそのデータ本体）を挿入する。
【００６４】
本システムは、例えば干渉によってメッセージが破損されたために、確認メッセージ２４ｃがＡＴＸ１０に正しく受信されない状況のとき特に有効に機能する。もしＡＴＸ１０が、例えば次のデータフレームの組み立てが始まる前など、時間切れとなる期間内に特定のデータフレームに対する確認メッセージ２４ｃを受信しなかったり、または（例えば、無効なチェックサムを有する）破損した確認メッセージのみを受信したりすると、ＡＴＸ１０内の二値フラグは変更されない。
【００６５】
したがって、ＡＴＸ１０内の一連のフラグセットは、正常に受信された最後の確認メッセージ２２ｃから取り出されたフラグの値を反映するものであり、その確認メッセージはその正常に受信された最後の確認メッセージ２２ｃに先だって送信されたすべてのデータパケットに対するものであって、その最後のメッセージ２２ｃのあとから送信されたすべてのデータパケットに対するそれぞれのフラグは、それらのデータパケットに対する受領の確認がまだ到着していないことを示している（つまり、それらには再送信の印が付けられている）。したがって、次のデータフレームでは、ＡＴＸ１０は、ストリームの先頭から取り出した四個の新たなデータパケット２６ａに加えて、再送の印が付いたデータパケット２６ｂを古い順から送信する。データフレームの容量に達していない限り、再送データパケット２６ｂには、「新しい」再送データパケットと前のデータフレームからの再送データパケット２４ａ，２４ｂとが含まれる。
【００６６】
確認メッセージが九個連続して失われるという極端な状況では、ＡＴＸ１０は、再送データパケットを古い順から送信することを停止する必要がある。その理由は、その古い再送データパケットが六十四個の二値フラグを動き回る三十六パケット分のスライド区間の最後からこぼれ落ちるからである。しかし、これは必ずしもＡＲＸ１４でバッファアンダーフローが発生することを意味するものではない。ストリーム速度で流れる各データフレームには四個の新たなデータパケットが含まれるので、確認メッセージが失われているにもかかわらず、データパケットが全て到着することはあり得る。
【００６７】
このアルゴリズムの概要を擬似コードで示すと以下のようになる。ここで、
ＮＰＦ＝フレームあたりの新しいパケット数（例：４）
ＰＩＤ２＝ストリームの先頭パケットのパケットＩＤ。ストリーミング開始時に、ＡＴＸとＡＲＸでＰＩＤ２は同じ値に設定され、ストリーミング中にはＡＴＸとＡＲＸは時間同期しているので、ＡＴＸとＡＲＸでＰＩＤ２は全く同じく漸増する。ＰＩＤ２は、実用的なビット数を使用して実装される（例：６ビット）
ＡＣＫ＝パケットＩＤごとに一つのエントリからなる配列であって、パケットがＡＲＸに正しく受信されたか（否か）を示す（例：６４ビット配列）
ＴＤ＝リンクの事前定義された送信遅延、単位はパケット（例：３６）
ｍｐｓ＝一個のフレームで送信できるパケットの最大数（例：１８ ）
ＰＩＤ１＝最も古いパケット（ ＰＩＤ１＝ＰＩＤ２−ＴＤ）
ｎｐｓ＝現在のフレーム内のパケット数
フレームの構成：ＡＴＸ送信／ＡＲＸ受信 ―（休止）−ＡＲＸ送信／ＡＴＸ受信−（休止）
理解を容易にするために、ｎビットのパケットＩＤカウンタがゼロからまた繰り返すことは無視した。実際には、当業者であればよく理解されようが、モジュロ演算が必要となる。
// ATX transmit process, concurrent with ARX receive process 
begin
PID2=PID2+NPF
PID1=PID2-TD
nps=0
for i=PID1,i?PID2,i=i+1 {
if {nps ? mps) {
if (ACK[i]=1) transmit packet(i)
nps=nps+1
} else exit // no time for more packets in this frame
}
end
// ATX receive process, concurrent with ARX transmit process 
begin
if (ACK-packet successfully received)
ACK[PID1:PID2+NPF]="as received from ARX"
else {
ACK[PID1:PID2-NPF]=ACK[PID1:PID2-NPF] // unchanged
ACK[PID2-NPF+1:PID2]=1  // assume lost; retransmit
ACK[PID2+1:PID2+NPF]=1  // send next frame
}
end
// ARX receive process, concurrent with ATX transmit process 
begin
PID2=PID2+NPF
PID1=PID2-TD
for i=PID1,i?PID2,i=i+1 {
if (packet[i] successfully received) ACK[i]=0
else ACK[i]=1   // mark for retransmission
}
end
// ARX transmit process, concurrent with ATX receive process 
begin
ACK[PID2:PID2+NPF]=1  // request next frame
send ACK[PID1: PID2+NPF]
end
このように、両方向に移動するデータに対する干渉の影響に負けないストリーミング無線通信システムが記載されていることが理解されるであろう。
【図１】
2014520443.tif 000003
【図２】
2014520443.tif 000004
【国際調査報告】
2014520443.tif 000005
2014520443.tif 000006