(57)【要約】【課題】リアルタイム通信において付加データを用いることなく受信遅延および処理遅延の補正が可能であると共に、各遅延に応じた補正をすることができるデータ受信装置を提供する。【解決手段】受信装置１は、外部から受信した受信音声データを一時記憶するリアルタイムデータ蓄積部１３と、破棄判定部１７ｂの判定に従って受信音声データの少なくとも一部を破棄するデータ破棄部１６と、再生出力されるまで出力音声データを一時記憶する再生データ蓄積部１４と、受信音声データをリアルタイムデータ蓄積部１３から読み出し、出力音声データとして再生データ蓄積部１４に書き込む書き込み制御部１７ａと、データ破棄部１６により受信音声データの少なくとも一部を破棄するか否かを、受信音声データのデータ量と、出力音声データのデータ量とに基づいて判定する破棄判定部１７ｂとを備える。【選択図】  図１
2004289683.tif 000002
【特許請求の範囲】
【請求項１】
外部から受信した受信データを一時記憶する第１バッファ手段と、
上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄手段と、
出力されるまで出力データを一時記憶する第２バッファ手段と、
上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、
上記データ破棄手段により上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定手段とを備え、
上記データ破棄手段は、上記破棄判定手段の判定に従って上記受信データの少なくとも一部を破棄するものであることを特徴とするデータ受信装置。
【請求項２】
外部から受信した受信データを一時記憶する第１バッファ手段と、
出力されるまで出力データを一時記憶する第２バッファ手段と、
上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、
上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知手段とを備え、
上記書き込み制御手段は、上記第２バッファ手段に記憶されている上記出力データのデータ量が、予め定められた書込判定閾値より小さくなったことを上記出力データ量検知手段が検知すると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込むものであることを特徴とするデータ受信装置。
【請求項３】
上記破棄判定手段は、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量との和が、予め設定された破棄判定閾値以上の場合に、破棄すると判定するものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項４】
上記書き込み制御手段は、上記第２バッファ手段に記憶されている上記出力データのデータ量が予め定められた書込判定閾値より小さくなったとき、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込むものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項５】
上記書き込み制御手段は、上記第１バッファ手段から読み出し上記第２バッファ手段に書き込むデータ量を、上記第２バッファ手段の残り記憶容量に応じて変化させるものであることを特徴とする請求項１または２に記載のデータ受信装置。
【請求項６】
上記書き込み制御手段は、上記第２バッファ手段における出力データのデータ量が、予め設定された第１記憶閾値以下となるように、上記第２バッファ手段に書き込みを行うものであることを特徴とする請求項１または２に記載のデータ受信装置。
【請求項７】
上記書き込み制御手段は、上記第２バッファ手段における出力データのデータ量が、予め設定された第２記憶閾値以上となるように、上記第２バッファ手段に書き込みを行うものであることを特徴とする請求項１または２に記載のデータ受信装置。
【請求項８】
上記書き込み制御手段は、所定のデータ量単位で、上記第１記憶閾値以下の範囲において最大となるように、上記第２バッファ手段に書き込みを行うものであることを特徴とする請求項６に記載のデータ受信装置。
【請求項９】
上記書き込み制御手段は、所定のデータ量単位で、上記第２記憶閾値以上の範囲において最小となるように、上記第２バッファ手段に書き込みを行うものであることを特徴とする請求項７に記載のデータ受信装置。
【請求項１０】
上記破棄判定手段は、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量との和が、予め設定された第１破棄閾値以上となるように、上記データ破棄手段に、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１１】
上記破棄判定手段は、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量との和が、予め設定された第２破棄閾値以下となるように、上記データ破棄手段に、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１２】
上記破棄判定手段は、上記第１バッファ手段における受信データのデータ量が、予め設定された第３破棄閾値以上となるように、上記データ破棄手段に、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１３】
上記破棄判定手段は、上記第１バッファ手段における受信データのデータ量が、予め設定された第４破棄閾値以下となるように、上記データ破棄手段に、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１４】
上記破棄判定手段は、上記データ破棄手段が上記第１バッファ手段において破棄するデータ量を、上記第１バッファ手段における受信データのデータ量と上記第２バッファ手段における出力データのデータ量との和に応じて変化させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１５】
上記破棄判定手段は、上記データ破棄手段が上記第１バッファ手段において破棄するデータ量を、上記第１バッファ手段における受信データのデータ量に応じて変化させるものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１６】
外部からの受信遅延を検知する第１遅延検知手段を備え、
上記データ破棄手段は、上記受信遅延に応じて、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１７】
データ受信装置内における処理遅延を検知する第２遅延検知手段を備え、
上記データ破棄手段は、上記処理遅延に応じて、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１８】
上記外部からの受信遅延を検知する第１遅延検知手段と、データ受信装置内における処理遅延を検知する第２遅延検知手段と、上記データ破棄手段を制御する破棄制御手段とを備え、
上記破棄制御手段は、上記検知された受信遅延および処理遅延のうちいずれの遅延に基づいて、上記データ破棄手段が上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するか否かを決定するものであることを特徴とする請求項１に記載のデータ受信装置。
【請求項１９】
上記第２遅延検知手段は、上記第２バッファ手段に出力可能な出力データがあるか否かに基づいて、上記処理遅延を検知するものであることを特徴とする請求項１７または１８に記載のデータ受信装置。
【請求項２０】
第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、
外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、
上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄ステップと、
上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、出力データとして上記データ受信装置の第２バッファ手段に書き込む書き込みステップと、
出力されるまで上記出力データを第２バッファ手段に一時記憶する第２記憶ステップと、
上記データ破棄ステップにおいて上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定ステップとを有し、
上記データ破棄ステップは、上記破棄判定ステップにおいて破棄すると判定された場合に、上記受信データの少なくとも一部を破棄することを特徴とするデータ受信方法。
【請求項２１】
第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、
外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、
上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、出力データとしてデータ受信装置の第２バッファ手段に書き込む書き込みステップと、
出力されるまで上記出力データを上記第２バッファ手段に一時記憶する第２記憶ステップと、
上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知ステップと有し、
上記書き込みステップでは、上記出力データ量検知ステップにおいて上記第２バッファ手段に記憶されている上記出力データが、予め定められた書込判定閾値より小さくなったことが検知されると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込むことを特徴とするデータ受信方法。
【請求項２２】
請求項１ないし１９のいずれか１項に記載のデータ受信装置を動作させるデータ受信プログラムであって、コンピュータを上記の各手段として機能させるためのデータ受信プログラム。
【請求項２３】
請求項２２に記載のデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リアルタイム通信において伝送されるデータを受信するデータ受信装置、データ受信方法、データ受信プログラム、並びにそれを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【０００２】
【従来の技術】
近年、音声通信に代表されるようなリアルタイム通信をＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）上で実現するための開発がさかんに行われてきている。ＩＰを使用して通信を行う場合、トランスポート層のプロトコルとしてＴＣＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）とＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）が一般的に使用されるが、音声通信のようなリアルタイム通信にはＵＤＰをベースとしたプロトコルが用いられる。ＵＤＰをベースとしたプロトコルの代表的なものとしては、例えばＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）などがある。
【０００３】
ＴＣＰに比べてＵＤＰは、信頼性を確保するための機能を省いていることなどによりリアルタイム処理に向いているが、ＩＰそのものが、ベストエフォートを基本としたプロトコルであるため、送信側から連続送信されたデータが、伝送路を通って受信側に到着するまでの時間にバラツキが生じる。そのため、例えば音声のようなリアルタイム通信において送受信されるリアルタイムデータを受信側で逐次再生しようとした時、何らかの制御を用いない限り連続した音声として再生できない。
【０００４】
受信したリアルタイムデータを連続して再生するために、受信側に受信バッファを備え、受信したリアルタイムデータを一旦受信バッファ上に蓄積し、ある程度蓄積した後、再生処理を開始するという方法が従来からよく採用されている。
【０００５】
このように、受信バッファ上にデータがあれば、伝送路でバラツキが生じても所定の時間間隔でデータを取り出すことが可能となるので、連続性のある音声として再生できる。ただし、このような方法を用いてリアルタイム通信を行う場合は、受信バッファに溜まった分だけの遅延が発生する。
【０００６】
このような伝送路でのバラツキによる受信遅延を少なく抑えるために、単一の受信バッファとしての再生バッファ上のデータ量（再生待ち時間）の制御を行う音声再生装置がある（例えば、特許文献１参照）。
【０００７】
この音声再生装置は、伝送路から音声データを受信する受信部と再生バッファとの間にゆらぎ補正制御部を備えている。ゆらぎ補正制御部は、通知を受けると音声データから送信時刻情報を取得し、この値から最適な再生待ち時間を算出する。ゆらぎ補正制御部は、この再生待ち時間に基づき、受信部から再生バッファの補正された位置へ音声データを書き込む。これにより、最適な再生待ち時間を待つこととなり、受信遅延を少なくしつつ音声の劣化を抑えることができる。
【０００８】
また、音声データなどのリアルタイムデータと共に受信する再生時刻データを補正することにより、データの再生時刻を適応的に微調整することできる受信装置もある（例えば、特許文献２参照）。
【０００９】
この受信装置は、受信側において伝送路の遅延を検出し、この検出結果を考慮して再生時刻データを補正する。このように、受信側にて、受信遅延を考慮して、再生時刻を適応的に微調整するため、送信側がどのような再生時間データを付加したとしても、通信の破綻をきたすことなく、受信したリアルタイムデータを再生できる。なお、再生時刻データは、予め、受信装置における受信処理の遅延も考慮にいれた値となっている。
【００１０】
【特許文献１】
特開２０００−１５１６９４号公報（２０００年５月３０日公開）
【００１１】
【特許文献２】
特開２００１−２４４９６９号公報（２００１年９月７日公開）
【００１２】
【発明が解決しようとする課題】
しかしながら、上記特許文献１の構成は、再生バッファに蓄積されているデータを所定の時間間隔で再生処理を行えるという前提に基づいたものである。即ち、上記音声再生装置は、ハードウェア資源が複数の処理で共有されないような機器である。
【００１３】
例えば、ＩＰ電話専用の電話機であれば、そのハードウェア資源（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ等）はリアルタイム通信をすることのみに使用できるため、受信バッファに蓄積されているデータの処理は所定の時間間隔で行えるが、例えば、パーソナルコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）などのいわゆるマルチタスクで実行されている機器においては、ハードウェア資源は複数の処理によって共有して利用される。
【００１４】
このため、このようなマルチタスクを行う機器に対して特許文献１の構成を適用したとしても、再生バッファに蓄積されているデータの処理を所定の時間間隔で行うことができず、再生処理の最中に音声データがない状態が生じ、音声の劣化や遅延の蓄積が発生してしまうことがある。
【００１５】
また、特許文献２の構成では、再生時刻データが予め受信側での処理遅延を考慮して決定されていたとしても、受信側での補正は受信遅延に基づくものであるため、装置がマルチタスクを行うことにより発生する装置の処理の遅れによる処理遅延まではリアルタイムで調整できない。即ち、処理遅延は、ハードウェア資源が共有する処理の種類や数によって異なるが、特許文献２の構成では、そのとき発生している処理遅延に応じた補正をすることはできない。
【００１６】
また、特許文献２の構成では、送信側で設定された時刻情報と受信側での時刻情報とに基づいて再生時刻を決定することとしていまが、送信側での時間の進み方と受信側での時間の進み方とが異なる場合には、再生時刻を適正に補正することはできない。即ち、送信側と受信側とで共通な時計を持ち同期をとる必要があるが、インターネット網などのネットワークでは、同期をとることは困難である。このため、時刻データを付加データとして用いることは、ネットワーク環境には適用できない。
【００１７】
さらに、従来では、伝送路においてパケットの到着のバラツキによって引き起こされる受信遅延と、受信装置の処理の処理の遅れによって引き起こされる処理遅延との区別ができず、状況に応じた処理を行うことで音声の劣化と遅延の最適化をすることが困難であった。
【００１８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、リアルタイム通信において付加データを用いることなく受信遅延および処理遅延の補正が可能であると共に、各遅延に応じた補正をすることができるデータ受信装置、データ受信方法、データ受信プログラム、並びにそれを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【００１９】
【課題を解決するための手段】
本発明のデータ受信装置は、上記の課題を解決するために、外部（例えば、インターネットなどのネットワーク）から受信した受信データを一時記憶する第１バッファ手段と、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄手段と、出力されるまで出力データを一時記憶する第２バッファ手段と、上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、上記データ破棄手段により上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定手段とを備え、上記データ破棄手段は、上記破棄判定手段の判定に従って上記受信データの少なくとも一部を破棄するものであることを特徴としている。
【００２０】
具体的には、上記のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された破棄判定閾値以上の場合に、破棄すると判定するものであることが好ましい。
【００２１】
通常、送信側から連続送信されたデータが、伝送路を通って受信装置に到着するまでの時間には、バラツキが生じる。そのため、例えば音声のようなリアルタイム通信において送受信されるリアルタイムデータを受信装置側で逐次出力（例えば、再生）しようとした時、出力が途切れることがある。
【００２２】
また、ハードウェア資源が複数の処理によって共有して利用されることのあるマルチタスク機能を有する機器においては、データの出力処理が所定の一定時間間隔で行うことがでないことがある。このため、出力処理の最中に出力すべきデータがない状態が生じることがある。
【００２３】
しかしながら、上記の構成によれば、第１バッファ手段の受信データの少なくとも一部を破棄するか否かについて、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量とに基づいて判定することにより、受信遅延だけでなく、データ受信装置での処理遅延を検知することができ、これに基づいてリアルタイムデータの破棄を行うことができる。
【００２４】
従って、マルチタスク機能を有する受信装置においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【００２５】
また、第１バッファおよび第２バッファのデータ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【００２６】
さらに、第１バッファと第２バッファとにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化の防止および遅延の最適化をすることができる。
【００２７】
また、上記のデータ受信装置は、書き込み制御手段が、第２バッファ手段に記憶されている出力データのデータ量が予め定められた書込判定閾値以下となったとき、第１バッファ手段に記憶されている受信データの少なくとも一部を第１バッファ手段から読み出し、第２バッファ手段に書き込むものであることが好ましい。
【００２８】
上記の構成によれば、第２バッファ手段に残っている出力データ量から判断して、第２バッファ手段に書き込むデータ量を決定することとなる。
【００２９】
従って、予め第２バッファ手段に対して大きな処理遅延が発生しない範囲で多くのデータを書き込むことが可能となる。そのため、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができる。
【００３０】
本発明のデータ受信装置は、上記の課題を解決するために、外部から受信した受信データを一時記憶する第１バッファ手段と、出力されるまで出力データを一時記憶する第２バッファ手段と、上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知手段とを備え、上記書き込み制御手段は、上記第２バッファ手段に記憶されている上記出力データのデータ量が、予め定められた書込判定閾値より小さくなったことを上記出力データ量検知手段が検知すると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込むものであることを特徴としている。
【００３１】
上記の構成によれば、出力データ量が書込判定閾値以下となったときに、第１バッファ手段に記憶されている受信データの少なくとも一部を第１バッファ手段から読み出し、第２バッファ手段に書き込むことにより、第２バッファ手段に残っている出力データ量から判断して、第２バッファ手段に書き込むデータ量を決定することとなる。
【００３２】
従って、予め第２バッファ手段に対して大きな処理遅延が発生しない範囲で多くのデータを書き込むことが可能となる。そのため、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができる。
【００３３】
また、第２バッファ手段の出力データ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【００３４】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化および遅延の最適化をすることができる。
【００３５】
上記のデータ受信装置は、書き込み制御手段が、第１バッファ手段から読み出し第２バッファ手段に書き込むデータ量を、第２バッファ手段の残り記憶容量に応じて変化させるものであることが好ましい。
【００３６】
上記の構成によれば、そのときの状況に応じて、第２バッファ手段に出力データを書き込むことができる。従って、適正な処理遅延の補正を行うことができる。
【００３７】
上記のデータ受信装置は、書き込み制御手段が、第２バッファ手段における出力データのデータ量が、予め設定された第１記憶閾値以下となるように、第２バッファ手段に書き込みを行うものであることが好ましい。
【００３８】
上記の構成によれば、第１記憶閾値を、許容できる処理遅延（例えば、第２バッファ手段の記憶容量など）の最大値とすることにより、大きな処理遅延の発生を防止できる。
【００３９】
また、上記のデータ受信装置は、書き込み制御手段が、所定のデータ量単位で、第１記憶閾値以下の範囲において最大となるように、第２バッファ手段に書き込みを行うものであることが好ましい。
【００４０】
上記の構成によれば、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第１記憶閾値以下の範囲において最大となるように、第２バッファ手段に書き込みを行うことにより、許容できる処理遅延を第１記憶閾値に近い値とすることができる。従って、大きな処理遅延の発生を防止できる。
【００４１】
上記のデータ受信装置は、書き込み制御手段が、第２バッファ手段における出力データのデータ量が、予め設定された第２記憶閾値以上となるように、第２バッファ手段に書き込みを行うものであることが好ましい。
【００４２】
上記の構成によれば、第２記憶閾値を、例えば、出力データの出力が途切れないようにするための最低限の値とすることにより、出力データの出力が途切れないようにすることができる。従って、出力（例えば、音声や画像）の劣化を防止することができる。
【００４３】
また、上記のデータ受信装置は、書き込み制御手段が、所定のデータ量単位で、第２記憶閾値以上の範囲において最小となるように、第２バッファ手段に書き込みを行うものであることが好ましい。
【００４４】
上記の構成によれば、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第２記憶閾値以上の範囲において最小となるように、第２バッファ手段に書き込みを行うことにより、第２記憶閾値に近いデータ量の出力データが第２バッファ手段に蓄積されることとなる。従って、出力データの出力が途切れないようにすることができ、出力（例えば、音声や画像）の劣化を防止することができる。
【００４５】
上記のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された第１破棄閾値以上となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることが好ましい。
【００４６】
上記の構成によれば、第１破棄閾値を、受信データの到着に関する通常のバラツキを吸収できる値とすることにより、上記バラツキを吸収することができる。
【００４７】
上記のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された第２破棄閾値以下となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることが好ましい。
【００４８】
上記の構成によれば、第２破棄閾値を、受信装置において許容できる蓄積遅延（処理遅延・受信遅延）の最大値となるように設定することにより、蓄積遅延が大きくなりすぎて受信データのリアルタイム性を損なうことを防止することができる。
【００４９】
上記のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量が、予め設定された第３破棄閾値以上となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることが好ましい。
【００５０】
上記の構成によれば、第３破棄閾値を、例えば、出力データの出力が途切れないようにするための最低限の値とすることにより、蓄積遅延が大きくなりすぎないように受信データの少なくとも一部を破棄できると共に、出力データの出力が途切れないようにすることができる。従って、受信データのリアルタイム性は保持しつつ、出力（例えば、音声や画像）の劣化を防止することができる。
【００５１】
上記のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量が、予め設定された第４破棄閾値以下となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることが好ましい。
【００５２】
上記の構成によれば、第４記憶閾値を、許容できる受信遅延の最大値とすることにより、大きな受信遅延ひいては処理遅延の発生を防止できる。
【００５３】
上記のデータ受信装置は、破棄判定手段が、データ破棄手段が第１バッファ手段において破棄するデータ量を、第１バッファ手段における受信データのデータ量と第２バッファ手段における出力データのデータ量との和に応じて変化させるものであることが好ましい。
【００５４】
上記の構成によれば、破棄するデータ量を動的に変化させることにより、蓄積遅延を、リアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【００５５】
上記のデータ受信装置は、破棄判定手段が、データ破棄手段が第１バッファ手段において破棄するデータ量を、第１バッファ手段における受信データのデータ量に応じて変化させるものであることが好ましい。
【００５６】
上記の構成によれば、受信遅延を、リアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【００５７】
上記のデータ受信装置は、外部からの受信遅延を検知する第１遅延検知手段を備え、データ破棄手段が、受信遅延に応じて、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するものであることが好ましい。
【００５８】
上記の構成によれば、受信遅延について、適切に補正することができる。
【００５９】
上記のデータ受信装置は、受信装置内における処理遅延を検知する第２遅延検知手段を備え、データ破棄手段が、処理遅延に応じて、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するものであることが好ましい。
【００６０】
上記の構成によれば、処理遅延について、適切に補正することができる。
【００６１】
上記のデータ受信装置は、外部からの受信遅延を検知する第１遅延検知手段と、データ受信装置内における処理遅延を検知する第２遅延検知手段と、データ破棄手段を制御する破棄制御手段とを備え、破棄制御手段が、検知された受信遅延および処理遅延のうちいずれの遅延に基づいて、データ破棄手段が第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するか否かを決定するものであることが好ましい。
【００６２】
上記の構成によれば、受信遅延および処理遅延のいずれかに応じた量の受信データを破棄することができる。従って、状況に応じた適切な遅延回収処理を行うことができる。
【００６３】
上記のデータ受信装置は、第２遅延検知手段が、第２バッファ手段に出力可能な出力データがあるか否かに基づいて、処理遅延を検知するものであることが好ましい。
【００６４】
上記の構成によれば、簡単に処理遅延を検知することができる。
【００６５】
本発明のデータ受信方法は、第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄ステップと、上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、出力データとして上記データ受信装置の第２バッファ手段に書き込む書き込みステップと、出力されるまで上記出力データを第２バッファ手段に一時記憶する第２記憶ステップと、上記データ破棄ステップにおいて上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定ステップとを有し、上記データ破棄ステップは、上記破棄判定ステップにおいて破棄すると判定された場合に、上記受信データの少なくとも一部を破棄することを特徴としている。
【００６６】
上記の方法によれば、第１バッファ手段の受信データの少なくとも一部を破棄するか否かについて、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量とに基づいて判定することにより、受信遅延だけではなく、データ受信装置での処理遅延を検知することができ、これに基づいてリアルタイムデータの破棄を行うことができる。
【００６７】
従って、マルチタスク機能を有する受信装置においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【００６８】
また、第１バッファ手段および第２バッファ手段のデータ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【００６９】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化の防止および遅延の最適化をすることができる。
【００７０】
本発明のデータ受信方法は、第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、出力データとしてデータ受信装置の第２バッファ手段に書き込む書き込みステップと、出力されるまで上記出力データを上記第２バッファ手段に一時記憶する第２記憶ステップと、上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知ステップと有し、上記書き込みステップでは、上記出力データ量検知ステップにおいて上記出力にともない上記第２バッファ手段に記憶されている上記出力データが、予め定められた書込判定閾値より小さくなったことが検知されると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込むことを特徴としている。
【００７１】
上記の方法によれば、出力データ量が破棄判定閾値以下となったときに、第１バッファ手段に記憶されている受信データの少なくとも一部を第１バッファ手段から読み出し、第２バッファ手段に書き込むことにより、第２バッファ手段に残っている出力データ量から判断して、第２バッファ手段に書き込むデータ量を決定することとなる。
【００７２】
従って、予め第２バッファ手段に対して大きな処理遅延が発生しない範囲で多くのデータを書き込むことが可能となる。そのため、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができる。
【００７３】
また、第２バッファ手段の出力データ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【００７４】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化および遅延の最適化をすることができる。
【００７５】
本発明のデータ受信プログラムは、コンピュータを上記の各手段として機能させるデータ受信プログラムである。
【００７６】
上記の構成により、コンピュータで上記データ受信装置の各手段を実現することによって、上記データ受信装置を実現することができる。
【００７７】
従って、マルチタスク機能を有する受信装置においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【００７８】
また、第１バッファ手段および第２バッファ手段のデータ量を用いて蓄積遅延を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【００７９】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データの劣化の防止および遅延の最適化をすることができる。
【００８０】
本発明のデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体は、上記の各手段をコンピュータに実現させて、上記データ受信装置を動作させるデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００８１】
上記の構成により、上記記録媒体から読み出されたデータ受信プログラムによって、上記データ受信装置をコンピュータ上に実現することができる。
【００８２】
【発明の実施の形態】
〔実施の形態１〕
本発明の実施の一形態について図１ないし図５に基づいて説明すれば、以下の通りである。
【００８３】
図２は、本実施の形態に係る通信システムの全体の概略の構成を示す。同図に示すように、本通信システムは、リアルタイム通信を行うものであり、インターネット等のネットワークＮを介して、受信装置１と送信装置２とを備えている。
【００８４】
ネットワークＮは、例えば、音声データ、画像データあるいは演奏データといった時系列データ等（リアルタイムデータ）をリアルタイム伝送する。
【００８５】
なお、ネットワークＮは、リアルタイムデータを伝送するものであれば、特に限定されるものではない。ネットワークＮは、例えば、ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）のような形式でリアルタイムデータを伝送してもよい。
【００８６】
ここで、リアルタイムデータを伝送するリアルタイム通信の例としては、電話などの音声通信や、テレビ電話のような動画像を用いた通信が考えられる。
【００８７】
また、受信装置１は、マルチタスク方式を採用しており、１つのハードウェア資源を複数の処理によって共有して利用すること（いわゆるマルチタスク）が可能である。受信装置１は特に限定されるものではないが、例えば、ＰＤＡ（ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）やＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのいわゆる汎用機に、ソフトウェアをインストールすることによって実現される、電話端末などが考えられる。
【００８８】
以下、上記通信システムについて、リアルタイムデータを音声データとして説明する。
【００８９】
送信装置２は、例えば自動音声再生装置であり、音声データをリアルタイムにネットワークＮに送出する。送信装置２から送信された音声データは、ネットワークＮを介して、受信装置１に伝送される。
【００９０】
送信装置２は、図３に示すように、入力部２１、符号化部２２、および、データ送信部２３を備えている。
【００９１】
送信装置２は、入力部２１から音声データが入力される。即ち、入力部２１は、外部から音声データなどのリアルタイムデータが入力されるものであり、例えば、外部の音声データを読み込むマイクや、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）やハードディスクに蓄積されている音楽データをリアルタイムに読み出す読み出し部である。
【００９２】
符号化部２２は、音声データの符号化を行うものであり、例えば、Ｇ７１１やＧ７２９などの符号化方式を用いて音声データを符号化する。
【００９３】
データ送信部２３は、符号化されたデータを、ネットワークＮに適した通信形式にして、ネットワークＮに送出するものであり、例えば、符号化された音声データをＲＴＰパケットにして、ネットワークＮに送出する。
【００９４】
なお、送信装置２の構成については、上記構成に特に限定されるものではない。
【００９５】
受信装置１は、ネットワークＮを介して送信装置１から送信された音声データを受信し、リアルタイムに再生する機能を有する。受信装置１は、図１に示すように、データ受信部１１、復号化部１２、リアルタイムデータ蓄積部１３、再生データ蓄積部１４、再生部１５、データ破棄部１６、および、データ制御部１７を備えている。
【００９６】
データ受信部１１は、ネットワークＮによって伝送された音声データを受信する。例えば、インターネットからＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）パケットを受信し、ＲＴＰパケット内から音声データを取得する。
【００９７】
復号化部１２は、符号化された形で受信した音声データの復号化を行う。例えば、Ｇ７１１やＧ７２９の符号化方式で符号化された音声データを復号化する。
【００９８】
リアルタイムデータ蓄積部（第１バッファ手段）１３は、受信した音声データ（受信データ、以下、受信音声データと称する）を再生前に一旦蓄積するためのバッファである。また、リアルタイムデータ蓄積部１３には、受信装置１の処理の遅れによって処理できていないデータ（処理遅延）も蓄積される。
【００９９】
一般に、リアルタイム通信では、送信装置２から連続送信されたリアルタイムデータが、ネットワークＮを通って受信装置１に到着するまでの時間にバラツキが生じる。即ち、ネットワークＮにおける伝送により、受信装置１ではリアルタイムデータの受信において受信遅延が生じる。
【０１００】
しかしながら、リアルタイムデータ蓄積部１３の大きさを適当な大きさに調整することで、到着のバラツキをある程度吸収することができる。ただし、リアルタイムデータ蓄積部１３に溜まっている受信音声データは受信遅延として蓄積されることになる。
【０１０１】
再生データ蓄積部１４は、リアルタイムデータ蓄積部（第１バッファ手段）１３から移動された音声データ（出力データ、以下、出力音声データと称する）を、後述する再生部１５において再生（出力）されるまで一時記憶する。再生データ蓄積部１４は、例えば、音声出力スピーカ制御用のソフトウェアである音声ドライバ内にあるバッファである。なお、再生データ蓄積部１４は出力音声データを一時的に記憶するものであり、即ち、再生データ蓄積部１４のある領域に蓄積されていた出力音声データが出力されると、その領域の分、新たな出力音声データの書き込みに使用できる。
【０１０２】
再生部１５は、再生データ蓄積部１４にある出力音声データを、リアルタイムデータとして再生するスピーカーである。
【０１０３】
なお、再生部１５は、再生データ蓄積部１４に蓄積された出力音声データなどのデータを出力するものであれば特に限定されるものではなく、例えば、データを記録媒体に記録する記録装置の記録部や、ネットワークＮを介してデータを外部装置に出力する出力部であってもかまわない。
【０１０４】
データ破棄部１６はリアルタイムデータ蓄積部１３に蓄積されている受信音声データの少なくとも一部を、後述するデータ制御部１７の破棄判定部１７ｂの判定に応じて破棄する。データ破棄部１６は、例えば受信装置１の制御プログラムの１モジュールとして実現される。
【０１０５】
データ制御部１７は、書き込み制御部（書き込み制御手段）１７ａと、破棄判定部（破棄判定手段）１７ｂと、データ量検知部（再生データ量検知手段）１７ｃとを備えている。書き込み制御部１７ａ、破棄判定部１７ｂ、データ量検知部１７ｃは、それぞれ、受信装置１の制御プログラムの１モジュールとして実現される。
【０１０６】
データ制御部１７は、リアルタイムデータ蓄積部１３から再生データ蓄積部１４への音声データの移動、および、データ破棄部１６による音声データの破棄を制御するものである。
【０１０７】
書き込み制御部１７ａは、リアルタイムデータ蓄積部１３に記憶されている受信音声データを再生処理を行うためにリアルタイムデータ蓄積部１３から読み出し、出力音声データとして再生データ蓄積部１４に書き込む。
【０１０８】
破棄判定部１７ｂと、データ破棄部１６によりリアルタイムデータ蓄積部１３に蓄積された受信音声データの少なくとも一部を破棄するか否かを、リアルタイムデータ蓄積部１３に蓄積（一時記憶）されている受信音声データのデータ量と、再生データ蓄積部１４に蓄積（一時記憶）されている出力音声データのデータ量とに基づいて判定する。この破棄判定部１７ｂの判定に従って、上記データ破棄部１６は、リアルタイムデータ蓄積部１３に蓄積されている受信音声データの少なくとも一部を破棄する。
【０１０９】
再生データ量検知部１７ｃは、再生データ蓄積部１４に蓄積されている出力音声データのデータ量、および、リアルタイムデータ蓄積部１３に蓄積されている受信音声データのデータ量を検知する。
【０１１０】
なお、破棄判定部１７ｂによりリアルタイムデータ蓄積部１３から受信音声データが破棄される、あるいは、書き込み制御部１７ａによりリアルタイムデータ蓄積部１３から再生データ蓄積部１４に音声データが移動されると、その分、リアルタイムデータ蓄積部１３の領域を新しい書き込みに使用できることとなる。
【０１１１】
以下、受信装置１の動作について、図４のフローチャートを用いて詳細に説明する。
【０１１２】
受信装置１は、ネットワークＮを介して伝送されたリアルタイムデータ（受信データ、（例えば、受信音声データ））をデータ受信部１１で受信する（Ｓ１１）。受信データが、例えばＲＴＰのようなパケット形式になっているのであれば、ＲＴＰパケットから符号化された音声データを取得する。最初の受信データの受信に際しては、ネットワークＮの揺らぎを吸収するために数１０ミリ秒分の受信データを一度に受信するなどの処理を行ってもよい。
【０１１３】
符号化された受信データを取得したら、復号化部１２で、受信データの復号化を行う（Ｓ１２）。その後、復号化の処理が終わったら、復号化された受信データをリアルタイムデータ蓄積部１３に蓄積させる（Ｓ１３、第１記憶ステップ）。なお、Ｓ１１〜Ｓ１３の処理は、図示しない制御手段により制御されている。
【０１１４】
リアルタイムデータ蓄積部１３に受信データを蓄積したら、続いて、データ量検知部１７ｃは、再生データ蓄積部１３に未再生データとして残っている出力データ量Ｘを計算する（Ｓ１３）。次に、データ量検知部１７ｃは、リアルタイムデータ蓄積部１４に蓄積されている受信データ量Ｙを計算する（Ｓ１４）。このとき、データ量Ｘ（処理遅延）とデータ量Ｙ（受信遅延）との合計Ｘ＋Ｙが、受信装置１においてその時点で蓄積されている遅延となる。
【０１１５】
そして、破棄判定部１７ｂは、データ量検知部１７ｃにおいて取得したデータ量Ｘが、破棄判定部１７ｂにおいて予め設定された閾値Ａ（書込判定閾値）と比べて小さいか否かを判定する（Ｓ１６）。
【０１１６】
ここで、閾値Ａは、再生データ蓄積部１４に受信データを書き込むべきか否かを判断するために設定された値である。例えば、Ａ＝９６０バイト（６０ミリ秒分のデータ）に設定する。データ量Ｘが閾値Ａより小さい場合は（Ｓ１６でＹＥＳ）、書き込み制御部１７ａは、リアルタイムデータ蓄積部１３にある受信データを再生データ蓄積部１４に対して書き込む（Ｓ１７、書き込みステップ、第２記憶ステップ）。一方、データ量Ｘが閾値Ａ以上の場合は（Ｓ１６でＮＯ）、リアルタイムデータ蓄積部１３から再生データ蓄積部１４への書き込みは行わない。
【０１１７】
このとき、リアルタイムデータ蓄積部１３から再生データ蓄積部１４に書き込むデータ量の決定は特に限定されるものではないが、例えば、次のように行う。
【０１１８】
関数ｚ＝ｆ０（ｘ）にデータ量Ｘの値Ｘを代入して得られるＺ０＝ｆ０（Ｘ）分のデータ量Ｚ０を再生データ蓄積部１４に書き込むデータ量とする。例えば、ｆ０（ｘ）＝Ｃ−ｘとし、再生データ蓄積部１４への書き込み後は常に所定の値Ｃのデータが存在するようにする。
【０１１９】
また、再生データ蓄積部１４における出力データのデータ量が、予め設定された第１記憶閾値以下となるようにしてもかまわない。例えば、第１記憶閾値を、許容できる処理遅延（例えば、リアルタイムデータ蓄積部１３の記憶容量など）の最大値とすることにより、大きな処理遅延の発生を防止できる。
【０１２０】
また、予め設定された第２記憶閾値以上となるようにしてもかまわない。例えば、第２記憶閾値を、出力データの出力が途切れないようにするための最低限の値とすることにより、出力データの出力が途切れないようにすることができる。従って、出力（例えば、音声や画像）の劣化を防止することができる。
【０１２１】
あるいは、例えば、ｆ０（ｘ）＝Ｄ−［ｘ／２０］×２０とし（ここで、［ａ／ｂ］とは、ａをｂで割った商であり、小数点以下は切り捨てるものとする）、２０バイト単位で、再生データ蓄積部１４に含まれるデータ量が予め設定されたＤ（バイト）を超えるように書き込むようにしてもかまわない。即ち、所定のデータ量単位で、Ｄ（第２記憶閾値）以上の範囲において最小となるようにしてもかまわない。
【０１２２】
これにより、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第２記憶閾値以上の範囲において最小となるように、第２バッファ手段に書き込みを行うことにより、第２記憶閾値に近いデータ量の出力データが第２バッファ手段に蓄積されることとなる。従って、出力データの出力が途切れないようにすることができ、出力（例えば、音声や画像）の劣化を防止することができる。
【０１２３】
また、例えば、ｆ０（ｘ）＝Ｅ−（［ｘ／２０］＋１）×２０とし、２０バイト単位で再生データ蓄積部１４に含まれるデータ量が予め設定されたＥ（バイト）を超えないように書き込むようにしてもかまわない。即ち、所定のデータ量単位で、Ｅ（第１記憶閾値）以下の範囲において最大となるようにしてもかまわない。
【０１２４】
これにより、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第１記憶閾値以下の範囲において最大となるように、再生データ蓄積部１４に書き込みを行うことにより、許容できる処理遅延を第１記憶閾値に近い値とすることができる。従って、大きな処理遅延の発生を防止できる。
【０１２５】
あるいは、ｆ０（ｘ）＝Ｆ／ｘ（ｘ≧１），ｆ０（ｘ）＝Ｆ（ｘ＜１）とし、ｘが小さい場合は、予め設定された所定の値Ｆ（バイト）のデータを書き込む一方、ｘが大きい場合は、ｘに反比例するように書き込み量を徐々に少なくするように、書き込んでもかまわない。即ち、再生データ蓄積部１４の残り記憶容量に応じて変化させてもかまわない。
【０１２６】
これにより、そのときの状況に応じて、再生データ蓄積部１４に出力データを書き込むことができる。従って、適正な処理遅延の補正を行うことができる。
【０１２７】
なお、ｆ０（ｘ）に対応する関数は、上述したものに限定されるわけではない。
【０１２８】
ただし、すべての状況において、リアルタイムデータ蓄積部１３にあるデータ量を超えて書き込むことはできないため、ｆ０（ｘ）によって得られた数値がリアルタイムデータ蓄積部１３にあるデータ量より大きい場合は、リアルタイムデータ蓄積部１３にあるデータすべてを書き込む。また、上述したリアルタイムデータ蓄積部１３から再生データ蓄積部１４への書き込みに関する一連の処理は、書き込み制御部１７ａによって実行される。
【０１２９】
そして、再生データ蓄積部１４への出力データの書き込み終了後、または、書き込まないと判断されたら、破棄判定部１７ｂは、データ量Ｘ＋Ｙが、閾値Ｂ（破棄判定閾値）以上であるか否かを判定する（Ｓ１８、破棄判定ステップ）。
【０１３０】
ここで、閾値Ｂは、受信装置１の処理の処理遅延、および、ネットワークＮにおける遅延により蓄積されていく受信遅延を回収する処理を行うか否かの判定を行うために設定された閾値である。
【０１３１】
例えば、Ｂ＝１６００バイト（１００ミリ秒分）と設定する。この場合、リアルタイムデータ蓄積部１３および再生データ蓄積部１４に蓄積された遅延の合計が１００ミリ秒以上にならなければ、遅延回収処理は行われないこととなる。
【０１３２】
そして、データ量Ｘ＋Ｙが、閾値Ｂ以上である場合（Ｓ１８でＹＥＳ）、データ破棄部１６は、リアルタイムデータ蓄積部１３に蓄積されている受信データの少なくとも一部を破棄し（Ｓ１９、データ破棄ステップ）、閾値Ｂより小さい場合は（Ｓ１８でＮＯ）破棄は行わない。
【０１３３】
なお、ここでは、破棄判定部１７ｂは、リアルタイムデータ蓄積部１３における受信データ量Ｘと再生データ蓄積部１４の出力データ量Ｙとの和を用いてデータ破棄部１６ｂにリアルタイムデータ蓄積部１３における受信データを破棄させるか否かを判定しているが、この破棄判定方法は特に限定されるものではなく、例えば、リアルタイムデータ蓄積部１３に蓄積されている受信データ量Ｘを２倍し、再生データ蓄積部１４に蓄積されている出力データ量Ｙを０．５倍し、それらの和を用いてもかまわない。
【０１３４】
このとき、データ破棄部１６が、リアルタイムデータ蓄積部１３において破棄するデータ量の決定は特に限定されるものではないが、例えば、次のように行う。
【０１３５】
関数ｚ＝ｆ１（ｘ）に値Ｘ＋Ｙを代入して得られるＺ１＝ｆ１（Ｘ＋Ｙ）分のデータ量Ｚ１を破棄するデータ量とする。例えば、ｆ１（ｘ）＝ｘ−Ｇとし、蓄積された遅延の合計Ｘ＋ＹがＧになるようにデータを破棄してもかまわない。
【０１３６】
また、データ量Ｘ＋Ｙが、予め設定された第１破棄閾値以下となるように受信データを破棄してもかまわない。これにより、第１破棄閾値を、受信装置１への音声データの到着に関する通常のバラツキを吸収できる値とすることにより、上記バラツキを吸収することができる。
【０１３７】
また、予め設定された第２破棄閾値以上となるように受信データを破棄してもかまわない。これにより、第２破棄閾値を、受信装置１において許容できる蓄積遅延（処理遅延・受信遅延）の最大値となるように設定することにより、蓄積遅延が大きくなりすぎて受信装置１が受信した音声データのリアルタイム性を損なうことを防止することができる。
【０１３８】
あるいは、例えば、ｆ１（ｘ）＝（ｘ−［Ｈ／２０］）×２０とし、２０バイト単位で、リアルタイムデータ蓄積部１３から受信データを破棄するようにしてもかまわない。
【０１３９】
また、例えば、ｆ１（ｘ）＝ｘ−Ｉ（ｘ≧Ｉ）、ｆ１（ｘ）＝Ｊ（ｘ＜Ｉ）とし、ｘが閾値Ｉ以上の時は、破棄後の蓄積遅延の合計がＩになるように、それより小さい時は１所定の値のデータ量Ｊずつ破棄する。この場合、閾値Ｉは受信装置１で許容する最大遅延蓄積量である。例えば、Ｉ＝２４００バイト（１５０ミリ秒分）と設定する。また、例えば、Ｊ＝３２０バイト（２０ミリ秒分）と設定する。
【０１４０】
即ち、破棄判定部１７ｂは、データ破棄部１６がリアルタイムデータ蓄積部１３において破棄するデータ量を、リアルタイムデータ蓄積部１３における受信データのデータ量と再生データ蓄積部１４における出力データのデータ量との和Ｘ＋Ｙに応じて変化させる。
【０１４１】
これにより、破棄するデータ量を動的に変化させることにより、蓄積遅延を、リアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【０１４２】
また、Ｚ１＝ｆ１（Ｙ）とし、リアルタイムデータ蓄積部１３に蓄積されているデータ量Ｙのみから破棄するデータ量を決定してもよい。
【０１４３】
例えば、破棄判定部１７ｂは、リアルタイムデータ蓄積部１３における受信データのデータ量が、予め設定された第３破棄閾値Ｋ以上となるように、データ破棄部１６に、リアルタイムデータ蓄積部１３に蓄積されている受信データの少なくとも一部を破棄させるものであってもかまわない。
【０１４４】
これにより、第３破棄閾値Ｋを、例えば、出力データの出力が途切れないようにするための最低限の値とすることにより、蓄積遅延が大きくなりすぎないように受信データの少なくとも一部を破棄できると共に、出力データの出力が途切れないようにすることができる。従って、受信データのリアルタイム性は保持しつつ、出力（例えば、音声や画像）の劣化を防止することができる。
【０１４５】
あるいは、破棄判定部１７ｂは、リアルタイムデータ蓄積部１３における受信データのデータ量が、予め設定された第４破棄閾値Ｌ以下となるように、データ破棄部１６に、リアルタイムデータ蓄積部１３に蓄積されている受信データの少なくとも一部を破棄させるものであってもかまわない。
【０１４６】
また、破棄判定部１７ｂは、データ破棄部１６がリアルタイムデータ蓄積部１３において破棄するデータ量を、リアルタイムデータ蓄積部１３における受信データのデータ量に応じて変化させてもかまわない。
【０１４７】
そして、データ破棄部１６によるデータの破棄終了後、あるいは破棄判定部１７ｂは破棄しないと判定するとデータ制御部１７における制御手段が、処理を終了するか否かの判断を行う（Ｓ２０）。
【０１４８】
処理を終了すると判断されたら（Ｓ２０でＹＥＳ）、処理を終了する。処理を終了すると判断されなければ、Ｓ１１に戻り、Ｓ１１〜Ｓ２０の処理を繰り返し行う。
【０１４９】
なお、図４においては、再生処理を開始した時の、受信装置１側にある受信データを基準として破棄を行うため、Ｓ１８では、Ｓ１４・Ｓ１５で計算したときの値を用いているが、データ量Ｘ・Ｙの計算のタイミングについては特に限定されるものではない。
【０１５０】
また、図４に示すフローチャートにおける処理は、受信装置１の制御プログラムとして適用できる。
【０１５１】
以上のように、受信装置１は、再生データ蓄積部１４に蓄積されているデータ量Ｘから判断して、再生データ蓄積部１４に書き込むべきデータ量を決定し、また、再生データ蓄積部１４とリアルタイムデータ蓄積部１３に蓄積されているデータ量の合計Ｘ＋Ｙから、リアルタイムデータ蓄積部１３において破棄するデータ量を決定する。
【０１５２】
なお、再生データ蓄積部１４に書き込まれた出力データの再生は、再生部１５によって図５に示したフローチャートの処理とは独立に行われる。
【０１５３】
ところで、通常、マルチタスクで実行される機器上では、受信データを蓄積するリアルタイムデータ蓄積部１３から再生データ蓄積部１４への書き込み処理が、所定（一定）の時間間隔で行われる保証がない。
【０１５４】
そのため、再生データ蓄積部１４への書き込みを、予め設定された一定の値ごとに行うとすると、再生部１５によってデータの処理が行われるタイミングに、再生データ蓄積部１４に出力データがない場合が頻発し、結果として音声劣化につながる。
【０１５５】
また、再生データ蓄積部１４に書き込まれた出力データは、リアルタイムデータ蓄積部１３の受信データとは異なり、一般に破棄することはできない。従って、受信したすべての受信データを再生データ蓄積部１４に書き込むような処理を行えば、遅延の回収ができなくなる。
【０１５６】
しかしながら、本実施の形態の受信装置１は、ネットワークＮ（外部）から受信した受信データを一時記憶するリアルタイムデータ蓄積部１３と、リアルタイムデータ蓄積部１３に記憶されている受信データの少なくとも一部を破棄するデータ破棄部１６と、出力されるまで出力データを一時記憶する再生データ蓄積部１４と、リアルタイムデータ蓄積部１３に記憶されている受信データをリアルタイムデータ蓄積部１３から読み出し、出力データとして再生データ蓄積部１４に書き込む書き込み制御部１７ａと、データ破棄部１６により受信データの少なくとも一部を破棄するか否かを、リアルタイムデータ蓄積部１３における受信データのデータ量と、再生データ蓄積部１４における出力データのデータ量とに基づいて判定する破棄判定部１７ｂとを備える。
【０１５７】
また、データ破棄部１６は、破棄判定部１７ｂの判定に従って受信データの少なくとも一部を破棄する。具体的には、受信装置１は、破棄判定部１７ｂが、リアルタイムデータ蓄積部１３における受信データのデータ量と、再生データ蓄積部１４における出力データのデータ量との和が、予め設定された破棄判定閾値（Ｂ）以上の場合に、破棄すると判定する。
【０１５８】
従って、リアルタイムデータ蓄積部１３の受信データの少なくとも一部を破棄するか否かについて、破棄判定部１７ｂが、リアルタイムデータ蓄積部１３における受信データのデータ量と、再生データ蓄積部１４における出力データのデータ量とに基づいて判定することにより、受信装置１での処理遅延を検知することができ、リアルタイムデータの破棄を行うことができる。
【０１５９】
従って、マルチタスク機能を有する受信装置１においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【０１６０】
また、リアルタイムデータ蓄積部１３および再生データ蓄積部１４のデータ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、受信装置１と送信装置２とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【０１６１】
さらに、リアルタイムデータ蓄積部１３と再生データ蓄積部１４とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化の防止および遅延の最適化をすることができる。
【０１６２】
また、再生データ蓄積部１４に残っているデータ量から判断して、再生データ蓄積部１４への書き込み量を動的に変化させることで、遅延の回収を適切に行いつつ、再生データ蓄積部１４へデータを書き込む処理時間のバラツキを吸収することが可能となる。
【０１６３】
さらに、再生データ蓄積部１４に残っているデータ量とリアルタイムデータ蓄積部１３に残っているデータ量の合計で破棄するデータ量を決定することで、より正確な蓄積遅延を計算し、所定の値の範囲以下で受信装置１での遅延を抑えることができるようにデータの破棄を行うことが可能となる。
【０１６４】
従って、受信装置１を、マルチタスクによって実行可能な機器とすることができ、劣化の少ないリアルタイムデータ受信機器として実現するものである。
【０１６５】
ここでは復号化したデータを格納したリアルタイムデータ蓄積部１３と再生データ蓄積部１４とのデータ量に基づいて破棄するデータ量を決定する例で説明をしているが、特に限定されるものではなく、破棄するデータ量の判断に関して再生データ蓄積部１４との組み合わせを考慮するのはここで述べてきたリアルタイムデータ蓄積部１３に限るものではない。例えば、破棄するデータ量の判断に関して用いる受信データは、復号化されたデータに限定されるものではない。
【０１６６】
例えば、復号化前の受信データを蓄積する手段があればその中のデータ量と再生データ蓄積部１４のデータ量とを要素として求められる値を判断基準として破棄するデータ量を決めてもよい。その他これに限らずデータ受信部１１から再生データ蓄積部１４までに置かれる受信データを蓄積する手段の一つ、または複数個の蓄積手段を対象としてその中のデータ量と再生データ蓄積部１４とのデータ量とを要素として求められる値を判断基準として破棄するデータ量を決定してもよい。
【０１６７】
また、受信装置は、図５に示すように、例えば電話機のように、送信装置２（図２参照）と同様の入力部２１、符号化部２２、およびデータ送信部２３を備えることにより、送信機能を備えていてもかまわない。
【０１６８】
さらに、図５に示すように、送信機能も備えた受信装置３が、双方向通信が可能な送受信装置として構成されていてもよい。
【０１６９】
なお、受信装置３のように、送受信機能を備えている場合、送信にかかわる処理は、図４のフローチャートに示す受信処理とは独立して行われる。送信処理の方法については特に限定されるものではない。
【０１７０】
〔実施の形態２〕
本発明の他の実施の一形態について図１、図６および図７に基づいて説明すれば、以下の通りである。なお、本実施の形態において、実施の形態１における構成要素と同等の機能を有する構成要素については、同一の符号を付記してその説明を省略する。
【０１７１】
図６に示すように、本実施の形態に係る受信装置１０は、図１に示す受信装置１の構成の他に、さらに、ネットワーク遅延検知部（第１遅延検知手段）３１、処理遅延検知部（第２遅延検知手段）３２およびデータ破棄方法決定部（破棄制御部）３３を備えている。
【０１７２】
ネットワーク遅延検知部３１は、ネットワークＮを介して伝送されたリアルタイムデータの到着の遅れ（受信遅延）を検知する。
【０１７３】
一般にリアルタイム通信によって伝送されるリアルタイムデータは、その到着にバラツキがあるため、リアルタイムデータ蓄積部１３によって、バラツキの吸収を行う。そこで、リアルタイムデータ蓄積部１３において吸収できないような大きな遅れ（受信遅延）が生じた場合、ネットワーク遅延検知部３１によって、受信遅延が大きく発生していることが検知される。
【０１７４】
処理遅延検知部３２は、受信装置１０の再生データ蓄積部１４への書き込み処理が行えないことによって生じた、再生データ蓄積部１４に出力データがないために再生部１５により再生できなかった時間があったか否かの検知を行う。
【０１７５】
データ破棄方法決定部３３は、ネットワーク遅延検知部３１および処理遅延検知部３２で遅延が検知されているか否かに応じて、データ破棄部１６においてリアルタイムデータ蓄積部１３の受信データを破棄するための破棄方法を決定する。データ破棄部１６ではデータ破棄方法決定部３３で決定された破棄方法により受信データの破棄を行う。
【０１７６】
次に、受信装置１０の動作について、図６のフローチャートを用いて詳細に説明する。
【０１７７】
受信装置３は処理開始から、最初のリアルタイムデータを受信する前に、図示しないメモリに格納されている遅延検知用の変数Ｓ０の初期化を行い、変数Ｓ０の値をゼロに設定する（Ｓ４１）。
【０１７８】
その後、ネットワークＮを介して伝送された最初のリアルタイムデータをデータ受信部１１で受信する（Ｓ４２）。
【０１７９】
リアルタイムデータを受信したら、復号化部１２でその受信したデータを復号化する（Ｓ４３）。そして、復号化された受信データをリアルタイムデータ蓄積部１３に保存する（Ｓ４４）。
【０１８０】
リアルタイムデータ蓄積部１３に受信データを蓄積したら、続いて、データ量検知部１７ｃは、再生データ蓄積部１３に未再生データとして残っている出力データ量Ｘを計算する（Ｓ４５）。次に、データ量検知部１７ｃは、リアルタイムデータ蓄積部１４に蓄積されている受信データ量Ｙを計算する（Ｓ４６）。
【０１８１】
そして、実施の形態１と同様に、再生データ蓄積部１４に対してリアルタイムデータ蓄積部１３の受信データを出力データとして書き込む（Ｓ４７）。
【０１８２】
続いて、書き込みが終了したら、変数Ｓ０の値がゼロか否かを判定し、（Ｓ４８）。変数Ｓ０がゼロである場合は、先の書き込みが、処理を開始してから最初に再生データ蓄積部１４に対して行った書き込みであると判断できるので、初回書き込み時刻ｔ０を取得する（Ｓ４９）。ここで、書き込み時刻は、図示しないメモリなどに記憶されている。
【０１８３】
その後、変数Ｓ０の値がゼロか否かにかかわらず、再生データ蓄積部１４への書き込みが終了したら、書き込んだ時間を図示しないタイマー部から取得し、変数ｔ１として記憶すると共に、書き込んだデータ量を変数Ｓ０に加算して記憶する（Ｓ５０）。上記Ｓ４１、Ｓ４８〜Ｓ５０の処理は、例えば、データ制御部１７の図示しない制御部が行うようにしても、破棄判定部１７ｂが行うようにしてもかまわない。
【０１８４】
次に、破棄判定部１７ｂは、データ量Ｘ＋Ｙがゼロか否かを判定する（Ｓ５１）。データ量Ｘ＋Ｙの値がゼロであるということは、受信装置１０で、再生可能な出力データが存在しないことになる。これは、ネットワークＮでの遅延の大きさが、リアルタイムデータ蓄積部１３に蓄えたデータ量以上の遅れが発生し、再生部４１４によって音声再生ができなかった時間があったことを意味する。破棄判定部１７ｂにおいて、データ量Ｘ＋Ｙがゼロと判定されたら（Ｓ５１でＹＥＳ）、このことを次回以降の処理に通知するためのフラグＦを真に設定し、終了判定処理（Ｓ６１）に移る。
【０１８５】
一方、データ量Ｘ＋Ｙがゼロでないと判定した場合（Ｓ５１でＮＯ）、破棄判定部１７ｂは、前回までの処理でネットワークＮの遅延によって、再生部１５によって出力データを再生できなかった時間があったか否かを示すフラグＦの真偽を判定する（Ｓ５３）。
【０１８６】
そして、フラグＦが真であると判定されたら（Ｓ５３でＹＥＳ）、データ量Ｘ＋Ｙの値が、予め設定された閾値Ｂ０より大きいか否かを判定する（Ｓ５４）。
【０１８７】
ここで、閾値Ｂ０は、例えばネットワークＮの揺らぎを吸収するために、初回のデータの受信時に、一度に受信するデータ量であっても、受信装置１０が許容する最大の遅延の合計であってもよく、例えば、Ｂ０＝１６００バイト（１００ミリ秒分）のように設定される。
【０１８８】
データ量Ｘ＋Ｙの値が閾値Ｂ０より大きいと判断された場合には（Ｓ５４でＹＥＳ）、遅れていたデータが一度に到着したものと判断できる。このとき、フラグＦの値を偽に設定し（Ｓ５５）、書き込み制御部１７ａの制御によりデータ破棄部１６は、リアルタイムデータ蓄積部１３における受信データの破棄を行う（Ｓ５６）。ここで、リアルタイムデータ蓄積部１３から破棄する受信データのデータ量は、上述した実施の形態１のｆ（ｘ）と同様の関数ｈ０（ｘ）に従う。
【０１８９】
そして、破棄判定部１７ｂの判定に従った受信データの破棄が完了したら、破棄したデータ量Ｚ１を変数Ｓ０に加算し（Ｓ６０）、終了判定に移る（Ｓ６１）。
【０１９０】
一方、Ｓ５４で、データ量Ｘ＋Ｙの値が閾値Ｂ０より小さい場合は、一度生じた遅れが、継続して送れていると判断できる。例えば、ネットワークＮが込み合うことによって、それまで確保できていた帯域が確保できなくなったような場合である。そして、データ量Ｘ＋Ｙの値が閾値Ｂ０より小さい場合は（Ｓ５４でＮＯ）、終了判定処理（Ｓ６１）に移る。
【０１９１】
また、Ｓ５３でフラグＦが偽であると判定され、ネットワークＮの遅延により蓄積された受信遅延がないと判断された場合には、受信装置１０の処理の遅れによる、再生データ蓄積部１４への書き込み処理に遅れ（処理遅延）が生じているか否かの判定を行う（Ｓ５７）。
【０１９２】
この判定は、初回書き込み時刻ｔ０、前回の書き込み時刻ｔ１、および、再生データ蓄積部１４に書き込まれた出力データとリアルタイムデータ蓄積部１３から破棄されたデータとの和を表すＳ０（条件ｇ０（ｔ０，ｔ２，Ｓ０））を用いて行う。
【０１９３】
具体的な条件判定は次のように行う。
【０１９４】
まず、時間ｔ０と時間ｔ１との差ｔ２＝ｔ１−ｔ０を求める。これが、最初に再生データ蓄積部１４に書き込まれてから現在までにかかった処理時間である。また、変数Ｓ０から、合計処理データの再生時間ｔ３を求める。
【０１９５】
そして、ｔ２−ｔ３の値が閾値Ｔ１以上のときは、再生データ蓄積部１４への書き込み処理に遅れ（処理遅延）が生じていると判定し、一方、閾値Ｔ１より小さいときは、処理遅延は生じていないと判定する。例えば、Ｔ１の値は、５ミリ秒に設定する。ただし、Ｔ１の値はこれに限定されるものではない。
【０１９６】
Ｓ５７で、条件ｇ０（ｔ０，ｔ１，Ｓ０）にて真と判定され、再生データ蓄積部１４への書き込み処理に遅れが生じていると判断された場合は（Ｓ５７でＹＥＳ）、データ量Ｘ＋Ｙが予め設定された閾値Ｂ１と比べて大きいか否かを判定する（Ｓ５８）。
【０１９７】
ここで、閾値Ｂ１は、再生データ蓄積部１４への書き込み処理の遅れが発生している場合に処理遅延を回収するか否かを判定するために設定された閾値であり、例えば、Ｂ１＝１２８０バイト（８０ミリ秒分）と設定する。また、Ｓ５１〜Ｓ５５、Ｓ５７・Ｓ５８は、破棄判定部１７ｂにより行われるものとする。
【０１９８】
そして、データ量Ｘ＋Ｙが、閾値Ｂ１を超える場合（Ｓ５８でＹＥＳ）、データ破棄部１６は、リアルタイムデータ蓄積部１３に蓄積されている受信データから少なくともその一部を破棄し（Ｓ５９）、超えない場合は（Ｓ５９でＮＯ）破棄は行わず終了判定処理（Ｓ６１）に移る。
【０１９９】
ここで、リアルタイムデータ蓄積部１３において破棄するデータ量は、上述した実施の形態１のｆ０（ｘ）と同様の関数ｚ＝ｈ１（ｘ）にデータ量Ｘ＋Ｙを代入して得られるＺ１＝ｈ１（Ｘ＋Ｙ）分のデータ量Ｚ１とする。
【０２００】
受信データの破棄が完了したら、破棄したデータ量Ｚ１を変数Ｓ１に加算し（Ｓ６０）、終了判定に移る（Ｓ６１）。
【０２０１】
終了判定では、図示しない制御手段が、リアルタイムデータ受信に関連する処理を終了するか否かの判定を行う。終了すると判定された場合は（Ｓ６１でＹＥＳ）、処理を終了する。一方、終了しないと判定された場合は（Ｓ６１でＮＯ）、Ｓ６２の処理に移り、次に受信すべきデータがあるか否かの判定を行う。
【０２０２】
そして、次に受信すべきデータがあると判定された場合は（Ｓ６２でＹＥＳ）、Ｓ４２からの一連の処理を行い、受信すべきデータがないと判定された場合は（Ｓ６２でＮＯ）、Ｓ４５からの一連の処理を行う。
【０２０３】
以上のように、本実施の形態の受信装置１０は、図１に示す受信装置１の構成に加えて、ネットワークＮの遅れによりパケットの到着が遅れているか否かの判定（受信遅延の検知）と、受信装置１０の再生データ蓄積部１４への書き込み処理の遅れが生じているかの判定（処理遅延の検知）とを行うことができる。
【０２０４】
例えば、リアルタイムデータ蓄積部１３で対応できる以上の（対応できないほど大きな）ネットワークの遅れ（受信遅延）が生じた場合、再生処理を行う際に再生データ蓄積部１４内に出力データが存在しない状況が生まれてしまう。その後、一度により多くの受信データを受信した場合、結果として、リアルタイムデータ蓄積部１３に蓄積可される受信データが増え、蓄積遅延（受信遅延・処理遅延）は増加する。
【０２０５】
一方、処理遅延が生じた場合は、再生データ蓄積部１４に出力データが存在する間は問題ないが、それ以上の遅れが生じて再生データ蓄積部１４に出力データが存在しなくなると、ネットワークＮによる受信遅延が生じた場合と同様に、リアルタイムデータ蓄積部１３に蓄えられるデータは増え、蓄積遅延は増加する。
【０２０６】
いずれの遅延に対しても、結果として、蓄積遅延は増大するがその性質は異なるため、遅延を回収するための閾値をそれぞれ異なる値に設定する。これにより、生じた遅延に応じた適切な遅延の回収が可能となる。
【０２０７】
例えば、本実施の形態においては、Ｂ０＝１６００バイト，Ｂ１＝１２８０バイトに設定することで、受信装置１０の処理遅延よりもネットワークＮによる受信遅延に対して、余裕を持たせている。
【０２０８】
また、例えば、ｈ０（ｘ）＝ｘ−Ｍ（ｘ≧Ｍ），ｈ０＝Ｎ（ｘ＜Ｍ），Ｍ＝１８００，Ｎ＝５，ｈ１（ｘ）＝ｘ−Ｂ１のように設定し、ネットワークＮによる受信遅延に対しては、ある程度緩やかに回収し、受信装置１０の処理遅延に対しては遅れたと考えられるデータ量をその都度すべて回収するような処理を行うようにすることもできる。
【０２０９】
なお、上述した実施の形態１・２では、再生データ蓄積部１４に蓄積されている出力データ量を取得できる例を示したが、再生データ蓄積部１４の出力データは再生部１５によってリアルタイムに処理されており、正確なデータ量が算出できないことがある。その場合は、再生データ蓄積部１４を複数の領域に分割し、そのいずれの領域まで出力データが蓄えられているかによって再生データ蓄積部１４に含まれるデータ量を概算するような手法を用いてもよい。
【０２１０】
なお、受信装置１・１０の動作は、受信装置１・１０を構成する各手段としてコンピュータを機能プログラムにより行うこともできる。また、上記プログラムは、プロッピーディスクやＣＤ−ＲＯＭなどの記録媒体に読み取り可能に記録することもできる。
【０２１１】
本発明は上述した各実施の形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施の形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。
【０２１２】
【発明の効果】
本発明のデータ受信装置は、以上のように、外部（例えば、インターネットなどのネットワーク）から受信した受信データを一時記憶する第１バッファ手段と、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄手段と、出力されるまで出力データを一時記憶する第２バッファ手段と、上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、上記データ破棄手段により上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定手段とを備える。また、上記データ破棄手段は、上記破棄判定手段の判定に従って上記受信データの少なくとも一部を破棄するものである構成である。
【０２１３】
また、具体的には、本発明のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された破棄判定閾値以上の場合に、破棄すると判定するものである構成である。
【０２１４】
これにより、データ受信装置での処理遅延を検知することができ、リアルタイムデータの破棄を行うことができる。
【０２１５】
従って、マルチタスク機能を有する受信装置においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【０２１６】
また、第１バッファ手段および第２バッファ手段のデータ量を用いて蓄積遅延（処理遅延および受信遅延）を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【０２１７】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化の防止および遅延の最適化をすることができるといった効果を奏する。
【０２１８】
また、本発明のデータ受信装置は、書き込み制御手段が、第２バッファ手段に記憶されている出力データのデータ量が予め定められた書込判定閾値より小さくなったとき、第１バッファ手段に記憶されている受信データの少なくとも一部を第１バッファ手段から読み出し、第２バッファ手段に書き込むものである構成である。
【０２１９】
これにより、予め第２バッファ手段に対して大きな処理遅延が発生しない範囲で多くのデータを書き込むことが可能となる。そのため、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができるといった効果を奏する。
【０２２０】
本発明のデータ受信装置は、以上のように、外部から受信した受信データを一時記憶する第１バッファ手段と、出力されるまで出力データを一時記憶する第２バッファ手段と、上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記出力データとして上記第２バッファ手段に書き込む書き込み制御手段と、上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知手段とを備えている。また、上記書き込み制御手段は、上記第２バッファ手段に記憶されている上記出力データのデータ量が、予め定められた書込判定閾値より小さくなったことを上記出力データ量検知手段が検知すると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込む構成である。
【０２２１】
これにより、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができる。
【０２２２】
また、時刻データを付加データとして用いることがなく、従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【０２２３】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データ（例えば、音声データや画像データなど）の劣化および遅延の最適化をすることができるといった効果を奏する。
【０２２４】
本発明のデータ受信装置は、書き込み制御手段が、第１バッファ手段から読み出し第２バッファ手段に書き込むデータ量を、第２バッファ手段の残り記憶容量に応じて変化させるものである構成である。これにより、適正な処理遅延の補正を行うことができるといった効果を奏する。
【０２２５】
本発明のデータ受信装置は、書き込み制御手段が、第２バッファ手段における出力データのデータ量が、予め設定された第１記憶閾値以下となるように、第２バッファ手段に書き込みを行う構成である。これにより、大きな処理遅延の発生を防止できる。
【０２２６】
また、本発明のデータ受信装置は、書き込み制御手段が、所定のデータ量単位で、第１記憶閾値以下の範囲において最大となるように、第２バッファ手段に書き込みを行うものである構成である。
【０２２７】
これにより、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第１記憶閾値以下の範囲において最大となるように、第２バッファ手段に書き込みを行うことにより、許容できる処理遅延を第１記憶閾値に近い値とすることができる。従って、大きな処理遅延の発生を防止できるといった効果を奏する。
【０２２８】
本発明のデータ受信装置は、書き込み制御手段が、第２バッファ手段における出力データのデータ量が、予め設定された第２記憶閾値以上となるように、第２バッファ手段に書き込みを行うものである構成である。
【０２２９】
これにより、第２記憶閾値を、例えば、出力データの出力が途切れないようにするための最低限の値とすることにより、出力データの出力が途切れないようにすることができる。従って、出力（例えば、音声や画像）の劣化を防止することができるといった効果を奏する。
【０２３０】
また、本発明のデータ受信装置は、書き込み制御手段が、所定のデータ量単位で、第２記憶閾値以上の範囲において最小となるように、第２バッファ手段に書き込みを行う構成である。
【０２３１】
これにより、通常書き込みを行う際に所定のデータ単位（書き込み速度）で書き込みを行うとしても、第２記憶閾値以上の範囲において最小となるように、第２バッファ手段に書き込みを行うことにより、第２記憶閾値に近いデータ量の出力データが第２バッファ手段に蓄積されることとなる。従って、出力データの出力が途切れないようにすることができ、出力（例えば、音声や画像）の劣化を防止することができるといった効果を奏する。
【０２３２】
本発明のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された第１破棄閾値以上となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものであることが好ましい。
【０２３３】
これにより、第１破棄閾値を、受信データの到着に関する通常のバラツキを吸収できる値とすることにより、上記バラツキを吸収することができるといった効果を奏する。
【０２３４】
本発明のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量と、第２バッファ手段における出力データのデータ量との和が、予め設定された第２破棄閾値以下となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させる構成である。
【０２３５】
これにより、第２破棄閾値を、受信装置において許容できる蓄積遅延（処理遅延・受信遅延）の最大値となるように設定することにより、蓄積遅延が大きくなりすぎて受信データのリアルタイム性を損なうことを防止することができるといった効果を奏する。
【０２３６】
本発明のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量が、予め設定された第３破棄閾値以上となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させるものである構成である。
【０２３７】
これにより、第３破棄閾値を、例えば、出力データの出力が途切れないようにするための最低限の値とすることにより、蓄積遅延が大きくなりすぎないように受信データの少なくとも一部を破棄できると共に、出力データの出力が途切れないようにすることができる。従って、受信データのリアルタイム性は保持しつつ、出力（例えば、音声や画像）の劣化を防止することができるといった効果を奏する。
【０２３８】
本発明のデータ受信装置は、破棄判定手段が、第１バッファ手段における受信データのデータ量が、予め設定された第４破棄閾値以下となるように、データ破棄手段に、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄させる構成である。
【０２３９】
これにより、第４記憶閾値を、許容できる受信遅延の最大値とすることにより、大きな受信遅延ひいては処理遅延の発生を防止できるといった効果を奏する。
【０２４０】
本発明のデータ受信装置は、破棄判定手段が、データ破棄手段が第１バッファ手段において破棄するデータ量を、第１バッファ手段における受信データのデータ量と第２バッファ手段における出力データのデータ量との和に応じて変化させる構成である。
【０２４１】
これにより、破棄するデータ量を動的に変化させることができ、蓄積遅延を、リアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となるといった効果を奏する。
【０２４２】
本発明のデータ受信装置は、破棄判定手段が、データ破棄手段が第１バッファ手段において破棄するデータ量を、第１バッファ手段における受信データのデータ量に応じて変化させる構成である。
【０２４３】
これにより、受信遅延を、リアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となるといった効果を奏する。
【０２４４】
本発明のデータ受信装置は、外部からの受信遅延を検知する第１遅延検知手段を備え、データ破棄手段が、受信遅延に応じて、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄する構成である。これにより、受信遅延について、適切に補正することができるといった効果を奏する。
【０２４５】
本発明のデータ受信装置は、データ受信装置内における処理遅延を検知する第２遅延検知手段を備え、データ破棄手段が、処理遅延に応じて、第１バッファ手段に記憶されている受信データの少なくとも一部を破棄する構成である。これにより、処理遅延について、適切に補正することができるといった効果を奏する。
【０２４６】
本発明のデータ受信装置は、外部からの受信遅延を検知する第１遅延検知手段と、データ受信装置内における処理遅延を検知する第２遅延検知手段と、データ破棄手段を制御する破棄制御手段とを備え、破棄制御手段が、検知された受信遅延および処理遅延のうちいずれの遅延に基づいて、データ破棄手段が第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するか否かを決定する構成である。
【０２４７】
これにより、受信遅延および処理遅延のいずれかに応じた量の受信データを破棄することができる。従って、状況に応じた適切な遅延回収処理を行うことができるといった効果を奏する。
【０２４８】
本発明のデータ受信装置は、第２遅延検知手段が、第２バッファ手段に出力可能な出力データがあるか否かに基づいて、処理遅延を検知する構成である。これにより、簡単に処理遅延を検知することができるといった効果を奏する。
【０２４９】
本発明のデータ受信方法は、第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、上記第１バッファ手段に記憶されている受信データの少なくとも一部を破棄するデータ破棄ステップと、上記第１バッファ手段に記憶されている受信データを上記第１バッファ手段から読み出し、出力データとして上記データ受信装置の第２バッファ手段に書き込む書き込みステップと、出力されるまで上記出力データを第２バッファ手段に一時記憶する第２記憶ステップと、上記データ破棄ステップにおいて上記受信データの少なくとも一部を破棄するか否かを、上記第１バッファ手段における受信データのデータ量と、上記第２バッファ手段における出力データのデータ量とに基づいて判定する破棄判定ステップとを有し、上記データ破棄ステップは、上記破棄判定ステップにおいて破棄すると判定された場合に、上記受信データの少なくとも一部を破棄する構成である。
【０２５０】
これにより、データ受信装置での処理遅延をより正確に検知することができ、リアルタイムデータの破棄を行うことができる。
【０２５１】
従って、マルチタスク機能を有する受信装置においても、受信遅延のみならず処理遅延もリアルタイムにそのときの状況に応じた補正をすることができる。この結果、安定した出力データの出力が可能となる。
【０２５２】
また、第１バッファ手段および第２バッファ手段のデータ量を用いて蓄積遅延を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【０２５３】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、例えば、各遅延の検知が可能であり、各遅延に対して状況に応じた処理を行うことができる。これにより、出力データの劣化の防止および遅延の最適化をすることができる。
【０２５４】
本発明のデータ受信方法は、第１バッファ手段と第２バッファ手段とを備えたデータ受信装置のデータ受信方法であって、外部から受信した受信データを、データ受信装置の第１バッファ手段に一時記憶する第１記憶ステップと、上記受信データの少なくとも一部を上記第１バッファ手段から読み出し、出力データとしてデータ受信装置の第２バッファ手段に書き込む書き込みステップと、出力されるまで上記出力データを上記第２バッファ手段に一時記憶する第２記憶ステップと、上記第２バッファ手段に記憶されている出力データのデータ量を検知する出力データ量検知ステップと有し、上記書き込みステップでは、上記出力データ量検知ステップにおいて上記出力にともない上記第２バッファ手段に記憶されている上記出力データが、予め定められた書込判定閾値より小さくなったことが検知されると、上記第１バッファ手段に記憶されている受信データの少なくとも一部を上記第１バッファ手段から読み出し、上記第２バッファ手段に書き込む構成である。
【０２５５】
これにより、予め第２バッファ手段に対して大きな処理遅延が発生しない範囲で多くのデータを書き込むことが可能となる。そのため、マルチタスク機能を有するデータ受信装置において、第２バッファ手段に対する書き込み処理に処理遅延が生じた場合でも、出力データの劣化を軽減することができる。
【０２５６】
また、第２バッファ手段の出力データ量を用いて蓄積遅延を補正できるため、時刻データを付加データとして用いることがない。従って、データ受信装置とデータの送信側とで、時刻の同期をとる必要はなく、簡単かつ正確に、蓄積遅延を補正できる。
【０２５７】
さらに、第１バッファ手段と第２バッファ手段とにより、受信遅延と処理遅延とを分けることができる。従って、出力データの劣化および遅延の最適化をすることができるといった効果を奏する。
【０２５８】
本発明のデータ受信プログラムは、コンピュータを上記の各手段として機能させるデータ受信プログラムである。
【０２５９】
上記の構成により、コンピュータで上記データ受信装置の各手段を実現することによって、上記データ受信装置を実現することができる。
【０２６０】
本発明のデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体は、上記の各手段をコンピュータに実現させて、上記データ受信装置を動作させるデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【０２６１】
上記の構成により、上記記録媒体から読み出されたデータ受信プログラムによって、上記データ受信装置をコンピュータ上に実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係る受信装置の要部の構成を示すブロック図である。
【図２】上記受信装置を備えた通信システムの概略の構成を示す図である。
【図３】上記通信システムに備えられた送信装置の要部の構成を示すブロック図である。
【図４】図１に示す受信装置の動作を示すフローチャートである。
【図５】受信装置と送信装置とが一体的に構成された場合の装置の洋舞の構成について示すブロック図である。
【図６】本発明の実施の他の一形態に係る受信装置の要部の構成を示すブロック図である。
【図７】図６に示す受信装置の動作を示すフローチャートである。
【符号の説明】
１    受信装置（データ受信装置）
２    送信装置
３    受信装置（データ受信装置）
１０    受信装置（データ受信装置）
１１    データ受信部
１２    復号化部
１３    リアルタイムデータ蓄積部（第１バッファ手段）
１４    再生データ蓄積部（第２バッファ手段）
１５    再生部
１６    データ破棄部（データ破棄手段）
１７    データ制御部
１７ａ    書き込み制御部（書き込み制御手段）
１７ｂ    破棄判定部（破棄判定手段）
１７ｃ    データ量検知部（再生データ量検知手段）
２１    入力部
２２    符号化部
２３    データ送信部
３１    ネットワーク遅延検知部（第１遅延検知手段）
３２    処理遅延検知部（第２遅延検知手段）
３３    データ破棄方法決定部（破棄制御手段）
Ｎ    ネットワーク
【図１】
2004289683.tif 000003
【図２】
2004289683.tif 000004
【図３】
2004289683.tif 000005
【図４】
2004289683.tif 000006
【図５】
2004289683.tif 000007
【図６】
2004289683.tif 000008
【図７】
2004289683.tif 000009