(57)【要約】【課題】動画像などのリアルタイムに送信するデータについて、誤り訂正符号を効率的に算出する。【解決手段】再生単位が可変のデータを連続して順次送信する送信装置であって、送信すべきデータを一部ずつ順次取得する取得部と、送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するためのバッファと、取得したその部分のデータが予め定められたサイズに達する毎に、既に前記バッファに格納された前記誤り訂正符号と、新たに取得したその部分のデータとの排他的論理和を算出して、当該排他的論理和で前記バッファを更新する算出部と、取得したその部分のデータを順次送信すると共に、前記再生単位に対応するサイズのデータについて前記算出部が排他的論理和を算出する毎に、前記バッファから前記誤り訂正符号を読み出して送信する送信部とを備える送信装置を提供する。【選択図】図３
2009118244.tif 000002
【特許請求の範囲】
【請求項１】
再生単位が可変のデータを連続して順次送信する送信装置であって、
送信すべきデータを部分データずつ順次取得する取得部と、
送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するためのバッファと、
前記送信すべきデータのうち新たに取得した部分データが予め定められたサイズに達する毎に、既に前記バッファに格納された前記誤り訂正符号と、当該新たに取得した部分データとの排他的論理和を算出して、当該排他的論理和で前記誤り訂正符号を更新する算出部と、
前記順次取得した部分データを順次送信すると共に、前記再生単位分に対応するデータの内で最後に取得された部分データについて前記算出部が排他的論理和を算出して前記誤り訂正符号を更新する毎に、前記バッファから当該更新された誤り訂正符号を読み出して送信する送信部と
を備える送信装置。
【請求項２】
前記送信すべきデータは動画像を示し、前記再生単位は動画像の１フレームであり、前記予め定められたサイズは、前記送信部が送信する１つの通信パケットにより送信されるデータのサイズである、請求項１に記載の送信装置。
【請求項３】
前記取得部は、前記送信すべきデータとして、フレーム毎にデータサイズの異なるデータを取得し、
前記送信部は、前記算出部が前記送信すべきデータの１フレーム分に対応するデータの内で最後に取得された部分データについて排他的論理和を算出して前記誤り訂正符号を更新する毎に、前記バッファから当該更新された誤り訂正符号を読み出して送信する、請求項２に記載の送信装置。
【請求項４】
前記送信部は、前記順次取得した部分データを順次送信し、かつ、前記バッファから読み出した前記誤り訂正符号を送信しても、送信したデータの合計サイズが、１フレームについて送信可能な予め定められた上限サイズに満たないことを条件に、前記順次取得した部分データの少なくとも一部の部分データを、送信したデータの合計サイズが当該上限サイズ以下となる限度内で再送する、請求項２に記載の送信装置。
【請求項５】
前記送信部は、前記順次取得した部分データを順次送信し、および、前記バッファから読み出した前記誤り訂正符号を送信しても、送信したデータの合計サイズが、１フレームについて送信可能な予め定められた上限サイズに満たないことを条件に、前記順次取得した部分データの内で先に取得した部分データから順に再送する、請求項４に記載の送信装置。
【請求項６】
前記算出部は、前回に排他的論理和を算出した後に新たに取得した部分データのサイズが、前記予め定められたサイズに満たずに、前記順次取得した部分データの合計が前記再生単位に達したことを条件に、当該新たに取得した部分データと、既に前記バッファに格納されていた前記誤り訂正符号との排他的論理和を算出して、当該排他的論理和で前記誤り訂正符号を更新する、請求項１に記載の送信装置。
【請求項７】
再生単位が可変のデータを連続して順次受信する受信装置であって、
再生すべきデータを受信すると共に、当該再生すべきデータを予め定められたサイズ毎に分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信する受信部と、
受信した当該再生すべきデータのサイズが、前記再生単位に満たないことを条件に、受信した当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正する誤り訂正部と、
受信した当該再生すべきデータのサイズが、前記再生単位に達することを条件に、または、受信した当該再生すべきデータを当該誤り訂正符号によって誤り訂正することで当該再生すべきデータのサイズが前記再生単位に達したことを条件に、当該再生すべきデータを出力する出力部と
を備える受信装置。
【請求項８】
前記再生すべきデータは動画像を示し、前記再生単位は動画像の１フレームであり、前記予め定められたサイズは前記受信部が受信する通信パケットにより転送されるデータのサイズである、請求項７に記載の受信装置。
【請求項９】
受信した当該再生すべきデータを、フレーム毎、かつ、当該データを転送した通信パケット毎に格納するためのバッファを備え、
前記受信部は、受信した当該再生すべきデータを、受信した通信パケット毎に前記バッファに順次格納し、
前記誤り訂正部は、前記バッファを走査して、ある１つの通信パケットを除きあるフレーム分の再生すべきデータが前記バッファに格納されたことを条件に、格納されている当該再生すべきデータを、受信した前記誤り訂正符号によって誤り訂正する、請求項８に記載の受信装置。
【請求項１０】
送信装置によって、再生単位が可変のデータを連続して順次送信する方法であって、
前記送信装置は、送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するためのバッファを有し、
送信すべきデータを部分データずつ順次取得するステップと、
前記送信すべきデータのうち新たに取得した部分データが予め定められたサイズに達する毎に、既に前記バッファに格納された前記誤り訂正符号と、当該新たに取得した部分データとの排他的論理和を算出して、当該排他的論理和で前記誤り訂正符号を更新するステップと、
前記順次取得した部分データを順次送信すると共に、前記再生単位分に対応するデータの内で最後に取得された部分データについて前記算出するステップにおいて排他的論理和が算出されて前記誤り訂正符号が更新される毎に、前記バッファから当該更新された誤り訂正符号を読み出して送信するステップと
を備える方法。
【請求項１１】
受信装置によって、再生単位が可変のデータを連続して順次受信する方法であって、
再生すべきデータを受信すると共に、当該再生すべきデータを予め定められたサイズ毎に分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信するステップと、
受信した当該再生すべきデータのサイズが、前記再生単位に満たないことを条件に、受信した当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正するステップと、
受信した当該再生すべきデータのサイズが前記再生単位に達することを条件に、または、受信した当該再生すべきデータを当該誤り訂正符号によって誤り訂正することで当該再生すべきデータのサイズが前記再生単位に達したことを条件に、当該再生すべきデータを出力するステップと
を備える方法。
【請求項１２】
再生単位が可変のデータを連続して順次送信する送信装置として、コンピュータを機能させるプログラムであって、
前記コンピュータは、送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するためのバッファを有し、
前記コンピュータを、
送信すべきデータを部分データずつ順次取得する取得部と、
前記送信すべきデータのうち新たに取得した部分データが予め定められたサイズに達する毎に、既に前記バッファに格納された前記誤り訂正符号と、当該新たに取得した部分データとの排他的論理和を算出して、当該排他的論理和で前記誤り訂正符号を更新する算出部と、
前記順次取得した部分データを順次送信すると共に、前記再生単位分に対応するデータの内で最後に取得された部分データについて前記算出部が排他的論理和を算出して前記誤り訂正符号を更新する毎に、前記バッファから当該更新された誤り訂正符号を読み出して送信する送信部
として機能させるプログラム。
【請求項１３】
再生単位が可変のデータを連続して順次受信する受信装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
再生すべきデータを受信すると共に、当該再生すべきデータを予め定められたサイズ毎に分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信する受信部と、
受信した当該再生すべきデータのサイズが、前記再生単位に満たないことを条件に、受信した当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正する誤り訂正部と、
受信した当該再生すべきデータのサイズが、前記再生単位に達することを条件に、または、受信した当該再生すべきデータを当該誤り訂正符号によって誤り訂正することで当該再生すべきデータのサイズが前記再生単位に達したことを条件に、当該再生すべきデータを出力する出力部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再生単位が可変のデータを送信する技術に関する。特に、本発明は、動画像などのフレームあたりのデータサイズが可変のデータを送信する技術に関する。
【背景技術】
【０００２】
動画像などのデータを送受信するシステムにおいては、リアルタイム性を確保するためにＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などのプロトコルが用いられる。このようなプロトコルでは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などのプロトコルとは異なり、通信パケットの到達性が保証されない。このため、時には通信パケットの欠落が生じる。
データの誤り訂正については下記の特許文献を参照されたい。
【特許文献１】特開２００５−１３６５４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
通信パケットが欠落しても正しく動画像を再生するためには、誤り訂正符号を利用することが有効である。例えば、動画像をリアルタイムに送信する場合において、送信装置は、映像を順次キャプチャしてデータ圧縮すると共に、圧縮されたそのデータに基づいて誤り訂正符号を算出する。そして、送信装置は、圧縮されたそのデータにその誤り訂正符号を付加して送信する。
【０００４】
データをリアルタイムに送信するためには、１フレームのデータ送信に費やすことのできる時間は予め定められている。このため、あるフレームについて画像が複雑でデータ圧縮の圧縮率が低い場合には、誤り訂正符号を算出するために充分な時間が確保できず、誤り訂正符号を送信できない場合がある。通常このような場合は、送信バッファを大きくとり、誤り訂正符号を算出に伴う遅延時間を吸収する手段がとられるが、そうした場合、レイテンシーが大きくなり、リアルタイム性が損なわれることになる。一方、利用する誤り訂正符号の種類を変更して計算時間を短縮しようとすると、充分な誤り訂正能力を得られない場合がある。
【０００５】
そこで本発明は、上記の課題を解決することのできる送信装置、受信装置、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、再生単位が可変のデータを連続して順次送信する送信装置であって、送信すべきデータを部分データずつ順次取得する取得部と、送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するためのバッファと、前記送信すべきデータのうち新たに取得した部分データが予め定められたサイズに達する毎に、既に前記バッファに格納された前記誤り訂正符号と、当該新たに取得した部分データとの排他的論理和を算出して、当該排他的論理和で前記誤り訂正符号を更新する算出部と、前記順次取得した部分データを順次送信すると共に、前記再生単位分に対応するデータの内で最後に取得された部分データについて前記算出部が排他的論理和を算出して排他的論理和を更新する毎に、前記バッファから当該更新された前記誤り訂正符号を読み出して送信する送信部とを備える送信装置を提供する。また、当該送信装置としてコンピュータを機能させるプログラムおよび当該送信装置によりデータを送信させる方法を提供する。
【０００７】
また、本発明の第２の形態においては、再生単位が可変のデータを連続して順次受信する受信装置であって、再生すべきデータを受信すると共に、当該再生すべきデータを予め定められたサイズ毎に分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信する受信部と、受信した当該再生すべきデータのサイズが、前記再生単位に満たないことを条件に、受信した当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正する誤り訂正部と、受信した当該再生すべきデータのサイズが前記再生単位に達することを条件に、または、受信した当該再生すべきデータを当該誤り訂正符号によって誤り訂正することで当該再生すべきデータのサイズが前記再生単位に達したことを条件に、当該再生すべきデータを出力する出力部とを備える受信装置を提供する。また、当該受信装置としてコンピュータを機能させるプログラムおよび当該受信装置によりデータを送信させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る通信システム１０の全体構成を示す。通信システム１０は、送信装置２０と、受信装置３０とを備える。送信装置２０は、入力した映像信号をエンコードしてデジタルデータとしてリアルタイムに送信する。受信装置３０は、受信したデジタルデータをデコードして映像を復元し、利用者に表示する。送信装置２０は、パーソナル・コンピュータなどの汎用のコンピュータの他、映像送信用の専用の装置であってもよい。また、受信装置３０は、パーソナル・コンピュータなどの汎用のコンピュータの他、デジタルテレビ受像機またはセットトップボックスなどの専用の装置であってよい。
【００１０】
送信装置２０および受信装置３０間の通信の信頼性が低い場合には、通信パケットの到達性が保証されていない場合がある。このため、送信装置２０は、キャプチャ部２００およびエンコーダ２１０に加えて、誤り訂正符号を生成するための符号生成部２２０を有する。キャプチャ部２００は、入力した映像信号に基づく映像をキャプチャする。キャプチャされた映像は、フレームごとの画像データに変換される。このデータのことをキャプチャデータと呼ぶ。
【００１１】
エンコーダ２１０は、このキャプチャデータをエンコードする。エンコードは、例えばデータサイズの圧縮を目的とする。即ち例えば、エンコーダ２１０は、ＪＰＥＧ、ＪＰＥＧ２０００またはモーションＪＰＥＧなどの規格に従って、キャプチャデータをデータ圧縮してよい。これに加えて、エンコーダ２１０は、ＭＰＥＧなどのフレーム間圧縮の規格に従って、キャプチャデータをＧＯＰ（Group of Picture）単位でデータ圧縮してよい。ＧＯＰとは、MPEGにおいて定められている動画を構成している最小の単位構造のことで、編集やランダムアクセスが可能なMPEGの映像単位のことである。これらのデータ圧縮により生成されるデータをエンコードデータと呼ぶ。
【００１２】
符号生成部２２０は、このエンコードデータに誤り訂正符号を付加して受信装置３０に送信する。受信装置３０は、データ復元部３００と、デコーダ３１０と、表示部３２０とを有する。データ復元部３００は、受信した誤り訂正符号に基づいて、受信したエンコードデータの送信により生じた誤りを訂正する。デコーダ３１０は、誤りを訂正したそのエンコードデータをデコードする。この結果、上記キャプチャデータが生成される。表示部３２０は、そのキャプチャデータを順次表示することで、利用者に映像を提供する。
【００１３】
図２は、送信装置２０において各種データが出力されるタイミング及びそのデータサイズを示す。キャプチャ部２００は、予め定められた時間間隔（Ｔ）ごとに映像をキャプチャして、キャプチャデータを生成する。この時間間隔（Ｔ）は、例えば、フレーム間隔と同様の約３３ｍｓ（ミリ秒）である。従って、例えば３３ｍｓごとに、キャプチャ部２００からキャプチャデータが出力される。
【００１４】
エンコーダ２１０は、そのキャプチャデータをエンコードする。エンコードによる圧縮率は、そのキャプチャデータの内容によって異なる。例えばキャプチャデータが画像データの場合において、黒色などの単色部分が多い単純な映像では、圧縮率は高い。一方、画像データのある部分と他の部分とで輝度や色差が大きく異なる複雑な映像では、圧縮率は低くなる傾向がある。従って、エンコーダ２１０により出力されるエンコードデータのサイズは、フレームごとに異なっている。
【００１５】
符号生成部２２０は、そのエンコードデータに誤り訂正符号を付加する。また、エンコードデータは、通信パケットにより送信可能なサイズごとに分割されて、その分割されたデータにはパケットヘッダなどのデータが付加される。従って、符号生成部２２０から出力されるデータは、エンコーダ２１０により出力されるキャプチャデータより多い。また、符号生成部２２０から出力されるデータは、キャプチャデータのサイズに応じて、フレーム毎に異なっている。
【００１６】
以上のように、送信装置２０が送信すべきデータは、その再生単位であるフレームごとに可変のサイズを有する。従って、データをリアルタイムに送信する場合において、あるフレームについてはそのデータを送信するべき時間内にそのデータを送信終えても時間が充分に余るが、他のフレームについてはそのデータを送信し終えると時間が殆んど余らない。このため、符号生成部２２０が誤り訂正符号として例えばリードソロモン符号などを用いると、その計算に時間がかかって誤り訂正符号を送りきれない場合がある。一方、計算時間の少ない他の符号化方式を使用すると、充分な量の誤りを訂正できない場合がある。
【００１７】
これに対し、本実施形態に係る符号生成部２２０は、１フレーム分のデータを取得し終える前に、取得したデータを通信パケットのサイズごとに順次分割して、それらの排他的論理和を順次算出する。そして、符号生成部２２０は、１フレーム分のデータを取得し終えると直ちにその排他的論理和を誤り訂正符号として送信する。この誤り訂正符号は、１フレームあたり１パケットの誤りを訂正できる。このように、本実施形態によれば、１フレーム分のデータを取得し終えてからそのデータを送信するまでの待ち時間を短くすることで、充分な訂正能力を有する誤り訂正符号を算出してもデータをリアルタイムに送信できる。以下、詳細な説明を続ける。
【００１８】
図３は、本実施形態に係る符号生成部２２０の機能構成を示す。符号生成部２２０は、取得部２３０と、算出部２４０と、バッファ２５０と、送信部２６０とを有する。取得部２３０は、送信すべきデータとして、フレーム毎にデータサイズの異なる動画像データを部分データずつ順次取得する。この動画像データは、例えば１フレームを再生単位としてよい。
【００１９】
なお、送信すべきデータは、動画像データに限らず、例えば音声データなどの、リアルタイムに連続して順次送信すべき他の種類のデータであってよい。また、送信すべきデータの種類によっては、再生単位は１フレームに限らず、予め定められた数のフレームであってもよいし、例えば予め定められた期間（例えば数十ミリ秒など）内に再生すべきデータ単位であってもよい。
【００２０】
バッファ２５０は、送信によりデータに生じる誤りを訂正する誤り訂正符号を格納するために設けられている。バッファ２５０は、例えば後述のＲＡＭ１０２０などの記憶装置によって実現されてよい。バッファ２５０は、送信部２６０が１フレーム分のデータを送信する毎に、バッファ２５０の内容を初期化する。例えば、バッファ２５０は、記憶している誤り訂正符号をクリアしてもよい。誤り訂正符号をゼロでクリアするのに代えて、バッファ２５０は、誤り訂正符号を予め定められたパターンのデータによって上書きしてもよい。
【００２１】
算出部２４０は、取得部２３０が前回に１フレーム分のデータを取得してから、新たに取得した部分データが予め定められたサイズに達する毎に、既にバッファ２５０に格納された誤り訂正符号と、当該新たに取得した部分データとの排他的論理和を算出する。例えば、算出部２４０は、当該新たに取得した部分データ、および、誤り訂正符号の、ビット毎の排他的論理和を、バイト単位で算出してよい。
【００２２】
また、この予め定められたサイズは、例えば、送信部２６０が送信する１つの通信パケットにより送信されるデータのサイズである。一例として、送信部２６０がＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）に準拠した通信を行う場合において、この通信パケットはＵＤＰの通信パケットである。従って、算出部２４０は、１つのＵＤＰパケットにより送信されるサイズのデータを取得する毎に、排他的論理和を算出する。
【００２３】
なお、この予め定められたサイズは、１つの通信パケットにより送信されるサイズに限らず、予め定められた複数の通信パケットにより送信されるサイズであってもよい。但し、ＵＤＰなどの通信プロトコルは通信パケット毎の欠落を許容しているので、それに対応して適切に誤り訂正をするためには、上記予め定められたサイズは１つの通信パケットにより送信されるサイズであることが好ましい。
【００２４】
そして、算出部２４０は、算出した当該排他的論理和により、バッファ２５０に格納された誤り訂正符号を更新する。送信部２６０は、取得部２３０が順次取得した部分データを順次送信する。これと共に、送信部２６０は、算出部２４０が１フレームに対応するデータの内で最後に取得された部分データについて排他的論理和を算出して誤り生成符号を更新する毎に、バッファ２５０からその更新された誤り訂正符号を読み出して受信装置３０に送信する。
【００２５】
また、送信部２６０は、順次取得した部分データを順次送信し、かつ、当該誤り訂正符号を送信しても、送信したデータの合計サイズが、１フレームについて送信可能な予め定められた上限サイズに満たないかどうかを判断する。当該合計のサイズが当該上限サイズに満たない場合には、送信部２６０は、当該順次取得した部分データの少なくとも一部の部分データを、送信したデータの合計サイズが当該上限サイズ以下となる限度内で再送する。これにより、リアルタイム性を確保できる限度内で通信帯域を有効活用して、欠落した通信パケットを復元し易くできる。
【００２６】
図４は、本実施形態に係る符号生成部２２０による処理の概念図である。エンコーダ２１０により出力される１フレーム分のエンコードデータは、算出部２４０によって、１つの通信パケットにより送信されるデータのサイズごとに分割される。分割された複数のデータをデータ１−６とする。
【００２７】
そして、分割されたそれぞれのデータの排他的論理和が算出部２４０により算出されて、誤り訂正符号としてバッファ２５０に格納される。その誤り訂正符号をデータ７とする。送信部２６０は、分割されたデータ１−６に、誤り訂正符号であるデータ７を付加して受信装置３０に送信する。
【００２８】
図５は、本実施形態に係るデータ復元部３００の機能構成を示す。データ復元部３００は、受信部３３０と、誤り訂正部３４０と、バッファ３５０と、出力部３６０とを有する。受信部３３０は、再生すべきデータを送信装置２０から受信する。この再生すべきデータは動画像を示し、その再生単位は例えば動画像の１フレームである。
【００２９】
これと共に、受信部３３０は、当該再生すべきデータを予め定められたサイズごとに分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信する。この予め定められたサイズは、例えば、受信部３３０が受信する１つの通信パケットにより転送されるデータのサイズである。
【００３０】
バッファ３５０は、受信部３３０が受信した当該再生すべきデータを、フレーム毎、かつ、当該データを転送した通信パケット毎に格納するために設けられている。そして、受信部３３０は、受信した当該再生すべきデータを、受信した通信パケット毎、かつ、フレーム毎に、バッファ３５０に順次格納する。
【００３１】
受信部３３０による処理の具体例は以下の通りである。まず、受信部３３０は、受信した通信パケットのヘッダからパケット番号を読み出す。このパケット番号は、同一フレーム内でその通信パケットが何番目のデータを転送しているかを示す。また、受信部３３０は、受信した通信パケットの内容を解析することで、その通信パケットが転送するデータが含まれるフレームの番号を特定する。
【００３２】
そして、受信部３３０は、バッファ３５０中の特定したそのパケット番号およびフレーム番号に対応する記憶領域にその通信パケットを格納する。また、受信部３３０は、受信した通信パケットを解析することで、その通信パケットが誤り訂正符号を含むことが判明した場合には、その受信した誤り訂正符号を、フレーム毎に、バッファ３５０中のＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）フィールドに格納する。
【００３３】
あまり多くのフレームについて通信パケットを格納しようとするとバッファ３５０の必要容量が大きくなり過ぎる。このため、バッファ３５０は、例えば、予め定められた数のフレームについての当該再生すべきデータを記憶する容量のみを有してよい。そして、バッファ３５０は、新たなフレームについて受信部３３０が当該送信すべきデータを受信した場合には、バッファ３５０にデータが記憶されたフレームのうち格納してから最も長い時間が経過したフレームについてのデータを、当該新たなフレームについてのデータで上書きしてよい。
【００３４】
誤り訂正部３４０は、受信した当該再生すべきデータのサイズが、再生単位である１フレームに達したかどうかを判断する。この判断は、例えばバッファ３５０を走査することで実現される。具体的には、誤り訂正部３４０は、バッファ３５０を走査して、あるフレームに対応する全ての通信パケットがバッファ３５０に格納されたかどうかを判断する。
【００３５】
そのフレームの通信パケットの数は、例えば、通信パケットのヘッダ部分などに記録されている。即ち、誤り訂正部３４０は、そのフレームに対応する通信パケットの総数をその通信パケットのヘッダ部分などから読み出して、その読み出した数の通信パケットがバッファ３５０に格納されたかを判断する。
【００３６】
格納されていない場合には、誤り訂正部３４０は、そのフレームについて、ある１つの通信パケットを除き他の全ての通信パケットがバッファ３５０に格納されたかどうかを判断する。そして、誤り訂正部３４０は、格納されたことを条件に、格納されている当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正する。
【００３７】
出力部３６０は、それぞれのフレームについて、当該再生すべきデータのサイズが当該フレームのサイズに達したことを条件に、受信した当該再生すべきデータを出力する。また、出力部３６０は、受信した当該再生すべきデータを誤り訂正部３４０により誤り訂正できたことを条件に、誤り訂正した当該再生すべきデータを出力する。
【００３８】
図６は、本実施形態に係る符号生成部２２０による処理の流れの一例を示す。取得部２３０は、エンコーダ２１０により順次出力されるデータを、送信すべきデータとして部分データずつ順次取得する（Ｓ６００）。そして、算出部２４０は、送信すべきデータのうち新たに取得した部分データが１つの通信パケットにより転送されるサイズに達したかどうかを判断する（Ｓ６１０）。
【００３９】
当該送信すべきデータのうち新たに取得した部分データが、１つの通信パケットにより送信されるサイズに満たない場合には（Ｓ６１０：ＮＯ）、取得部２３０は、Ｓ６００に処理を戻して送信すべきデータを更に取得する。但し、この場合であっても、順次取得した当該部分データの合計サイズが１フレーム分のデータのサイズに達した場合には、取得部２３０は、Ｓ６２０に処理を移して排他的論理和を算出する。
【００４０】
取得した当該送信すべきデータのサイズが、１つの通信パケットにより送信されるサイズに達した場合（Ｓ６１０：ＹＥＳ）、または、１フレーム分のデータを取得した場合には、算出部２４０は、排他的論理和を算出する（Ｓ６２０）。具体的には、算出部２４０は、既にバッファ２５０に格納された誤り訂正符号、および、新たに取得した当該送信すべきデータの排他的論理和を算出して、その排他的論理和により、バッファ２５０に格納されていた誤り訂正符号を更新する（Ｓ６３０）。
【００４１】
送信部２６０は、取得部２３０が順次取得した当該送信すべきデータを順次送信する（Ｓ６４０）。なお、送信部２６０が当該送信すべきデータを送信するタイミングはこのＳ６４０のタイミングに限定されない。即ち例えば、取得部２３０が１パケット分のデータを取得した後であれば、算出部２４０が排他的論理和を算出する前に、送信部２６０は当該データを送信してよい。また、算出部２４０が排他的論理和を算出している間に、送信部２６０は当該データを送信してよい。
【００４２】
また、送信部２６０は、算出部２４０が１フレーム分の当該送信すべきデータについて排他的論理和を算出したかどうかを判断する（Ｓ６５０）。算出部２４０が１フレーム分の当該送信すべきデータについて排他的論理和を算出していなければ（Ｓ６５０：ＮＯ）、取得部２３０は、Ｓ６００に処理を戻して次のデータを取得する。
【００４３】
算出部２４０が１フレーム分の当該送信すべきデータについて排他的論理和を算出する毎に（Ｓ６５０：ＹＥＳ）、送信部２６０は、バッファ２５０から誤り訂正符号を読み出して受信装置３０に送信する（Ｓ６６０）。誤り訂正符号を読み出した後には、バッファ２５０の内容はクリアされることが望ましい。
【００４４】
また、送信部２６０は、当該送信すべきデータ、および、当該誤り訂正符号を送信しても、送信したデータのサイズの合計が、１フレームについて送信可能な予め定められた上限サイズに満たないかどうかを判断する（Ｓ６７０）。当該合計のサイズが当該上限サイズに満たない場合には（Ｓ６７０：ＹＥＳ）、送信部２６０は、当該送信すべきデータの少なくとも一部を、送信したデータの合計が当該上限サイズ以下となる限度内で再送する（Ｓ６８０）。
【００４５】
好ましくは、送信部２６０は、順次取得した当該送信すべきデータを、そのデータが属するフレームの内で先に取得した部分データから順に再送する。例えば、エンコーダ２１０によりデータがフレームごとに圧縮されている場合においては、先頭側の方が画像の復元のために重要な情報を含むからである。その一例を図７に示す。
【００４６】
図７は、本実施形態に係る取得部２３０が取得するデータの一例を示す。図７（ａ）に示すように、取得する送信すべきデータは、インデックスデータと、エンコードデータとを含む場合がある。インデックスデータは、圧縮前のデータ列をそのデータ列を圧縮したデータ列に対応付けたデータである。
【００４７】
例えば、インデックスデータは、１が５回連続するデータ列「１１１１１」を、そのデータ列を圧縮した圧縮後のデータ列「１＊５」に対応付けて記録している。即ち例えば、インデックスデータを参照すれば、デコーダ３１０が、エンコードデータ中に出現する「１＊５」を「１１１１１」に変換すればよいことが分かる。
【００４８】
図７（ｂ）に示すように、取得する送信すべきデータは、末尾側のデータが、先頭側のデータを参照する場合がある。例えば、「１１１１１」というデータ列が２回出現し、出現箇所が７バイト離れている場合において、エンコーダ２１０は、２回目に出現するデータ列「１１１１１」を、「＊７」に変換することで、データサイズを圧縮する。この場合、デコーダ３１０は、エンコードデータ中に出現する「＊７」を、そのデータから７バイト前のデータ「１１１１１」に変換すれば、データをデコードできる。
【００４９】
以上の図７（ａ）（ｂ）に示すように、先頭側のデータは、それより末尾側にある多数のデータにより参照されている場合がある。この場合において、先頭側のデータが欠落してしまうと、後尾側にある多数のデータをデコードできなくなってしまう。一方、後尾側のデータが一部欠落しても、先頭側のデータが適切に転送されれば、大部分のデータは適切にデコードされる。
【００５０】
このように、送信部２６０は、リアルタイム性を確保できる限度内でフレームの先頭側から通信パケットを順次再送することで、受信装置３０においてデータを復元し易くすることができる。なお、符号化または圧縮アルゴリズムによっては、同一フレームの先頭側により重要なデータが含まれるとは限らない。このような場合には、送信部２６０は、先頭側に限らず、より重要なデータが含まれることが予め判明している通信パケットを選択して再送してもよい。
【００５１】
図８は、本実施形態に係る送信装置２０により送信されるデータを他の形態と対比して示す。図８（ａ）に示すように、送信部２６０が、送信すべきデータおよび誤り訂正符号を送信しても、送信したデータのサイズの合計が、１フレームについて送信可能な予め定められた上限サイズに満たない場合がある。
【００５２】
これに対し、図８（ｂ）に示すように、送信部２６０は、送信するデータのサイズの合計が、１フレームについて送信可能な予め定められた上限サイズ以下となる限度内で、同一フレームの先頭側から順に順次通信パケットを再送する。これにより、受信装置３０において元のデータを一層復元し易くすることができる。
【００５３】
図９は、本実施形態に係るデータ復元部３００による処理の流れの一例を示す。受信部３３０は、再生すべきデータとして、複数の通信パケットを送信装置２０から順次受信する（Ｓ９００）。これと共に、受信部３３０は、当該再生すべきデータを通信パケットのサイズごとに分割したそれぞれのデータの排他的論理和を、当該再生すべきデータの誤りを訂正するための誤り訂正符号として受信する。
【００５４】
受信部３３０は、受信した当該再生すべきデータを、受信した通信パケット毎、かつ、フレーム毎に、バッファ３５０に順次格納する（Ｓ９１０）。また、受信部３３０は、受信した通信パケットを解析することで、その通信パケットが誤り訂正符号を含むことが判明した場合には、その受信した誤り訂正符号を、フレーム毎に、バッファ３５０中のＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）フィールドに格納する。
【００５５】
誤り訂正部３４０は、何れかのフレームについて、ある１つの通信パケットを除き他の全ての通信パケットを受信できたかどうかを判断する（Ｓ９２０）。そして、誤り訂正部３４０は、あるフレームについて、ある１つの通信パケットを除き他の全ての通信パケットを受信できた場合には（Ｓ９２０：ＹＥＳ）、格納されている当該再生すべきデータを、受信した当該誤り訂正符号によって誤り訂正する（Ｓ９３０）。
【００５６】
例えば、誤り訂正部３４０は、そのフレームについて受信した当該他の全ての通信パケット、および、当該誤り訂正符号の、ビット毎の排他的論理和を算出する。そして、誤り訂正部３４０は、算出したその排他的論理和を、受信できていない当該１つの通信パケットとして、バッファ３５０に格納する。
【００５７】
そして、出力部３６０は、受信した当該再生すべきデータを誤り訂正部３４０により誤り訂正できたことを条件に、誤り訂正した当該再生すべきデータを出力する（Ｓ９４０）。
なお、出力部３６０は、あるフレームについて、受信した当該再生すべきデータが、再生単位である１フレームに達した場合には、誤り訂正を待つことなく当該再生すべきデータをバッファ３５０から読み出してよい。この場合、出力部３６０は、読み出した当該再生すべきデータを出力する（Ｓ９４０）。
【００５８】
図１０は、本実施形態に係る送信装置２０または受信装置３０として機能するコンピュータ７００のハードウェア構成の一例を示す。コンピュータ７００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５９】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００６０】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ７００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００６１】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ７００の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ７００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６２】
コンピュータ７００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ７００にインストールされて実行される。プログラムがコンピュータ７００等に働きかけて行わせる動作は、図１から図９において説明した送信装置２０または受信装置３０における動作と同一であるから、説明を省略する。
【００６３】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ７００に提供してもよい。
【００６４】
以上、図１から図１０を参照して説明したように、本実施形態に係る送信装置２０によれば、動画像などのデータをリアルタイムで送信する場合において、再生単位である１フレームのデータを取得してから、そのデータの誤り訂正符号を送信するまでのレイテンシを短縮できる。これにより、データ送信のリアルタイム性を維持すべく、通信パケットの到達性は保証されていないが転送速度が高速な通信プロトコルを利用しても、受信装置３０においてデータを復元し易くすることができる。さらに、送信装置２０は、リアルタイム性を損なわない限度内で通信パケットを再送するので、受信装置３０においてデータを一層復元し易くすることができる。
【００６５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６６】
【図１】図１は、本実施形態に係る通信システム１０の全体構成を示す。
【図２】図２は、送信装置２０において各種データが出力されるタイミング及びそのデータサイズを示す。
【図３】図３は、本実施形態に係る符号生成部２２０の機能構成を示す。
【図４】図４は、本実施形態に係る符号生成部２２０による処理の概念図である。
【図５】図５は、本実施形態に係るデータ復元部３００の機能構成を示す。
【図６】図６は、本実施形態に係る符号生成部２２０による処理の流れの一例を示す。
【図７】図７は、本実施形態に係る取得部２３０が取得するデータの一例を示す。
【図８】図８は、本実施形態に係る送信装置２０により送信されるデータを他の形態と対比して示す。
【図９】図９は、本実施形態に係るデータ復元部３００による処理の流れの一例を示す。
【図１０】図１０は、本実施形態に係る送信装置２０または受信装置３０として機能するコンピュータ７００のハードウェア構成の一例を示す。
【符号の説明】
【００６７】
１０  通信システム
２０  送信装置
３０  受信装置
２００  キャプチャ部
２１０  エンコーダ
２２０  符号生成部
２３０  取得部
２４０  算出部
２５０  バッファ
２６０  送信部
３００  データ復元部
３１０  デコーダ
３２０  表示部
３３０  受信部
３４０  誤り訂正部
３５０  バッファ
３６０  出力部
７００  コンピュータ
【図１】
2009118244.tif 000003
【図２】
2009118244.tif 000004
【図３】
2009118244.tif 000005
【図４】
2009118244.tif 000006
【図５】
2009118244.tif 000007
【図６】
2009118244.tif 000008
【図７】
2009118244.tif 000009
【図８】
2009118244.tif 000010
【図９】
2009118244.tif 000011
【図１０】
2009118244.tif 000012