説明

パケット送受信装置、方法及びプログラム

【課題】一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていなくても、送信データのオーバーフローやアンダーランを防ぐことができるパケット送受信装置を提供する
【解決手段】受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段101と、データ量判定手段101の判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御手段102とを備えたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット送受信装置、パケット送受信方法及びパケット送受信プログラムに関する。
【背景技術】
【0002】
近年、IP(Internet Protcol)網に代表されるように、データをある量の単位に小分けして送受信するパケット通信が盛んになっている。
【0003】
それとともに、音声データや画像データ等のリアルタイムデータを、送信側と受信側とで同期を取らずに、パケット単位で転送する技術が、IP通信網を始め、USBやBluetooth(登録商標)等でも広く用いられている。例えば、特許文献1〜4には、これらに関連する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−165148号公報
【特許文献2】特開2005−303831号公報
【特許文献3】特許第2819971号明細書
【特許文献4】特開2008−003338号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
送信側と受信側とで共通のクロックを用いずに非同期で通信する場合、送信側の符号化回路(エンコーダ)と受信側の復号化回路(デコーダ)とで用いられるクロックの周波数のずれ(偏差)によって、単位時間に受信するデータと再生されるデータとの量に差が生じる場合がある。この場合には、データのあふれ(オーバーフローまたはオーバーラン)によってデータが廃棄されたり、データの欠乏(アンダーラン)によって本来と異なるデータが挿入されたりすることで、音声や画像にノイズが生じ、品質が劣化するという問題がある。
【0006】
この問題に対して、音声/画像データの伝送で一般的に用いられているMPEG2−TS(Moving Picture Experts Group 2−Transport Stream)システムでは、送信するデータの中に、同期のためのデータを定期的に含め、その同期信号からクロックを生成して、送信装置と受信装置とのクロックを一致させるという技術が用いられている。
【0007】
しかしながら、このような定期的に送信される同期のためのデータによってクロックを生成する方法は、IP通信網のようにデータ伝送のゆらぎ(ジッタ)の大きい通信網では用いることができないという課題がある。
【0008】
これに対して、受信装置にバッファを設け、バッファのデータ量、またはバッファの時間当たりのデータの増加量や減少量に応じて、エンコーダのクロック周波数を変化させ、データのオーバーフローやアンダーランを防止するという方法が提案されている。
【0009】
例えば、特許文献1に記載された装置は、ネットワークからデータを受け取る受信装置と受信データを蓄積する受信バッファと、受信バッファ監視回路と、AVデコーダとそのデコーダにクロックを供給する受信クロック発生回路とを備えている。
【0010】
そして、受信バッファのデータ量がある閾値を超えた場合、受信バッファ監視回路は、受信クロック発生回路をコントロールし、受信クロックの速度を増加させる。また、受信バッファのデータ量がある閾値を下回った場合、受信バッファ監視回路は、受信クロック発生回路をコントロールし、受信クロックの速度を低下させ、バッファのオーバーフローやアンダーランが生じないように制御する。図25に特許文献1に記載された発明の代表図を示す。
【0011】
特許文献1に記載された方法を用いれば、データのオーバーフローやアンダーランを防止することができるが、この場合、固定クロック発生回路に比べて、複雑で高価な可変クロック発生回路を用いなければならないという課題がある。
【0012】
可変クロック発生回路を用いずに、送信側と受信側とのクロック周波数の偏差を解決する方法として、標本化(サンプリング)周波数変換方式がある。
【0013】
これは、送信側エンコーダ(符号化回路)の単位時間当たりの標本数(サンプリング数)がN個、受信側のデコーダ(復号化回路)の単位時間当たりの標本数(サンプリング数)がM個である場合を想定する。この場合、N個のサンプリングデータをM個のサンプリングデータに変換し、受信側のデコーダに送信することで目的を達成する。
【0014】
例えば、特許文献2に記載された方法では、USBにおける非同期転送モードでオーディオデータを送受信するとき、ホスト機器とスレーブ機器とのクロック周波数の偏差によるデータのオーバーフローやアンダーランを解決するために、データバッファの増減に応じて、三角窓重み付け方式によって、早聞き/遅聞き処理を行いデータのサンプリング数を増減させる方法が提案されている。図26に特許文献2に記載された発明の代表図を示す。
【0015】
近年、IP通信網上でリアルタイムに音声を伝送するしくみとして、VoIP(Voice over Internet Protcol)が広く用いられている。
【0016】
VoIPでは、音声をデジタル符号化してRTP(Real−time Transport Protocol)パケットを用いて伝送している。RTPで音声を伝送する場合、例えば日本では、その符号化方式としてG.711のμ−lawが用いられるのが一般的であり、その場合、20msec分の符号化データをRTPの1パケットとして伝送することが多い。
【0017】
送信側のクロック周波数と受信側のクロック周波数との偏差によって、データのオーバーフローやアンダーランが生じて、RTPの1パケットを廃棄したり、無音や前パケットの繰り返し等の任意の1パケットを挿入したりすることは、サンプリングデータ数を増加または減少させるという観点で言えば、標本化周波数変換の一方式とみなすことができる。
【0018】
しかしながら、20msec分のサンプリングデータを削除または挿入すると、音声通話では雑音やとぎれとなり、モデムやファクシミリ通信中であれば、データエラーや画像の乱れが発生し、最悪の場合、通信切断が発生することもあるという問題がある。
【0019】
これを解決するために、RTPパケット単位ではなく、1サンプリングデータ単位で、データの廃棄や挿入を行う方法が考えられる。
【0020】
1サンプリングデータの廃棄の方法としては、単純に1データを廃棄する方法や、前後の任意の数のサンプルデータに対して丸め処理を行うことでサンプル数を減らすという方法がある。また、1サンプリングデータの挿入の方法としては、単純に前後のデータの平均となる量のデータを挿入する方法や、前後の任意の数のサンプルデータに対して丸め処理を行うことでサンプル数を増やす方法がある。これらは広く知られた標本化周波数変換方式の一種である。
【0021】
VoIPのように、音声データの受信と送信とを同時に行う通信方式の場合、受信データに対しては、上記の標本化周波数変換により、送信側と受信側とのクロック周波数の偏差を解決することができる。
【0022】
しかしながら、送信データに対しては、伝送遅延を少なくするため1パケット分のバッファしか持たないのが一般的であり、その場合、標本化周波数変換を行うことができず、通信相手が送信側と受信側のクロック周波数の偏差を解決する手段を持たないとき、送信データのオーバーフローやアンダーランを防ぐことができないという問題がある。
【0023】
例えば、特許文献3に記載された方法では、送信バッファの遅延時間を測定し、受信側の装置に遅延時間を送信する。そして、受信側装置の受信バッファの遅延時間を測定し、送受信バッファの総合遅延時間を計算し、総合遅延時間が一定値を超えた場合、復号化を間引く。また、総合遅延時間が一定値を下回った場合、復号化を1フレーム間停止する。図27に特許文献3に記載された発明の代表図を示す。
【0024】
特許文献3に記載された方法では、送信バッファの遅延時間を、受信側の装置に送信するという手順を加えている。また、特許文献4に記載された方法では、送信データにサンプリング間隔情報を追加している。そのため、これらの方法を用いれば、一般的なパケット通信方法との互換性が失われることとなる。
【0025】
また、特許文献3や特許文献4に記載された方法では、送信側の装置と受信側の装置とが、それぞれ所定の機能を備えている必要がある。そのため、このような送信側と受信側とのクロック偏差によるバッファ増減の問題を解決する手段を備えていない装置と通信を行う場合には、バッファオーバーフローやバッファアンダーランを予防することができない。
【0026】
そこで、本発明は、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていなくても、送信データのオーバーフローやアンダーランを防ぐことができるパケット送受信装置、パケット送受信方法及びパケット送受信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0027】
本発明によるパケット送受信装置は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段と、データ量判定手段の判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御手段とを備えたことを特徴とする。
【0028】
本発明によるパケット送受信方法は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定し、判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御することを特徴とする。
【0029】
本発明によるパケット送受信プログラムは、コンピュータに、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定処理と、判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御処理とを実行させることを特徴とする。
【発明の効果】
【0030】
本発明によれば、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていなくても、送信データのオーバーフローやアンダーランを防ぐことができる。
【図面の簡単な説明】
【0031】
【図1】本発明によるパケット送受信方法を適用した通信装置の構成例を示すブロック図である。
【図2】送信バッファ部12の構成の一例を詳細に示す説明図である。
【図3】受信バッファ部15の構成の一例を詳細に示す説明図である。
【図4】符号化動作の動作例を示すフローチャートである。
【図5】パケット送信動作の一例を示すフローチャートである。
【図6】パケット受信動作の一例を示すフローチャートである。
【図7】音声復号化動作の一例を示すフローチャートである。
【図8】受信側標本化周波数変換動作の一例を示すフローチャートである。
【図9】送信側標本化周波数変換動作の一例を示すフローチャートである。
【図10】受信バッファ減少処理の一例を示すフローチャートである。
【図11】受信バッファ増加処理の一例を示すフローチャートである。
【図12】送信バッファ減少処理の一例を示すフローチャートである。
【図13】送信バッファ増加処理の一例を示すフローチャートである。
【図14】パケット送信開始フラグ操作の一例を示すフローチャートである。
【図15】バッファ異常処理の一例を示すフローチャートである。
【図16】パケット送受信システムの構成の一例を示すブロック図である。
【図17】パケット送受信装置Bが音声再生を開始した後に、パケット送受信装置Aが1パケット分のデータを書き込んだときの状態を示す説明図である。
【図18】パケット送受信装置Bが音声再生を開始した後に、1パケット分のデータを受信したときの状態を示す説明図である。
【図19】パケット送受信装置Aが通信網を介して外部からパケットを受信したときに、受信バッファが下方標本化周波数変換開始閾値を下回っている状態を示す説明図である。
【図20】パケット送受信装置Aの送信バッファにデータがなかった場合に、1パケット分のデータの送信を止めたため、40msec経過後に、パケット送受信装置Aの送信バッファが2パケット分−1バイトのデータを蓄積したときの状態を示す説明図である。
【図21】パケット送受信装置Aの送信バッファにデータを159バイト蓄積している場合に、1バイトデータを削除し、20msec経過後の状態を示す説明図である。
【図22】パケット送受信装置Aが通信網を介して外部からパケットを受信したときに、受信バッファが上方標本化周波数変換開始閾値を上回っている状態を示す説明図である。
【図23】パケット送受信装置Aの送信バッファに1バイトのデータを挿入した状態を示す説明図である。
【図24】パケット送受信装置Aの送信バッファが320バイト分のデータを蓄積したために、パケット送受信装置Aの送信バッファから2パケットを相次いで送信した後、パケット送受信装置Bがその2パケットを受信した状態を示す説明図である。
【図25】特許文献1に記載された発明の代表図である。
【図26】特許文献2に記載された発明の代表図である。
【図27】特許文献3に記載された発明の代表図である。
【図28】パケット送受信装置の最小の構成例を示すブロック図である。
【発明を実施するための形態】
【0032】
以下、本発明の実施形態について図面を参照して説明する。図1は、本発明によるパケット送受信方法を適用した通信装置の構成例を示すブロック図である。
【0033】
図1に示すように、通信装置1は、送信部11と、送信バッファ部12と、符号化部13と、受信部14と、受信バッファ部15と、復号化部16と、制御部17とを備えている。通信装置1は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。なお、通信装置1は、例えば、ルータ装置や通信ボード等によって実現されていてもよい。
【0034】
送信部11は、インターネット等の通信網2と、送信バッファ部12とに接続されている。送信部11は、送信バッファ部12より出力されたデータからRTP等のパケットを生成し、通信網2を介して外部に送信する機能を備えている。送信部11は、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。
【0035】
送信バッファ部12は、送信部11と、符号化部13と、制御部17とに接続されている。送信バッファ部12は、符号化部13から出力されたデータを一時的に記憶する機能を備えている。また、送信バッファ部12は、送信部11にデータを出力する機能を備えている。また、送信バッファ部12は、制御部17から出力された制御情報に従って、記憶しているデータの削除や追加、その他の処理をする機能を備えている。送信バッファ部12の詳細については後述する。
【0036】
符号化部13は、送信バッファ部12と接続されている。符号化部13は、音声等の信号を、G.711等の符号化方式に従って符号化し、符号化データを送信バッファ部12に出力する機能を備えている。符号化部13は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現されている。
【0037】
受信部14は、インターネット等の通信網2と、受信バッファ部15とに接続されている。受信部14は、通信網2を介して外部からRTP等のパケットを受信し、パケットの中からデータを抽出して、受信バッファ部15に出力する機能を備えている。受信部14は、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。
【0038】
受信バッファ部15は、受信部14と、符号化部16と、制御部17とに接続されている。受信バッファ部15は、受信部14から出力されたデータを一時的に記憶する機能を備えている。また、受信バッファ部15は、復号化部16にデータを出力する機能を備えている。また、受信バッファ部15は、制御部17にバッファのデータ蓄積量を示す情報を出力する機能を備えている。また、受信バッファ部15は、制御部17から出力された制御情報に従って、記憶しているデータの削除や追加、その他の処理をする機能を備えている。受信バッファ部15の詳細については後述する。
【0039】
復号化部16は、受信バッファ部15と接続されている。復号化部16は、送信バッファ15から出力された符号化データを、G.711等の符号化方式に従って復号化し、音声等の信号を出力する機能を備えている。復号化部16は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現されている。
【0040】
制御部17は、送信バッファ部12と、受信バッファ部15とに接続されている。制御部17は、符号化部13から出力されるデータの送信バッファ部12への書き込みの制御や、送信バッファ部12から送信部11へのデータ送信の制御を行う機能を備えている。また、制御部17は、受信部14から出力されるデータの受信バッファ部15への書き込みの制御や、受信バッファ部15から復号化部16へのデータ送信の制御を行う機能を備えている。制御部17は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。
【0041】
次に、送信バッファ部12の構成について説明する。図2は、送信バッファ部12の構成の一例を詳細に示す説明図である。本実施形態では、パケット通信網を介した音声通信として、VoIPを用いる例について説明する。
【0042】
また、本実施形態では、VoIPの符号化方式として一般的なG.711のμ−lawと、RTPパケットサイズとして一般的な20msecとを一例として用い、これに従って送信バッファ部12の構成を決定する。
【0043】
G.711のμ−lawでは、サンプリング周波数が8kHzで、1サンプリングの符号化データが8ビット(1バイト)である。また、RTPパケットサイズが20msecであるので、1つのRTPパケット当たりのデータ量は160バイトとなる。
【0044】
送信バッファ部12は、送信メモリ121を備えている。また、送信メモリ121の容量はRTPパケット2個分とする。よって、送信メモリ121の容量は320バイトとなる。また、本実施形態では、送信メモリ121を1バイト単位で区切って、そのアドレスをTA1〜TA320とする。
【0045】
次に、受信バッファ部15の構成について説明する。図3は、受信バッファ部15の構成の一例を詳細に示す説明図である。
【0046】
受信バッファ部15は、受信メモリ151を備えている。また、受信メモリ151の容量は、RTPパケットn個分とする。よって、受信メモリ151の容量は、160×nバイトとなる。
【0047】
本実施形態では、受信メモリ151を1バイト単位で区切って、そのアドレスをRA1〜RAEとする。また、RAEは160×nの値を保持する。また、nより小さい整数mを定め、音声再生開始アドレスRAS=160×mとする。
【0048】
次に、パケット送受信装置の動作について説明する。パケット送受信装置は、上記の通信装置1と同様の構成であるものとする。
【0049】
送信バッファ部12および受信バッファ部15は、先に受信して記憶したデータから順に先に読み出して送信するため、FIFO(First in First out)方式に従って動作する。ここでは、FIFO方式の実現方法として広く知られているリングバッファ(サーキュラーバッファ、または環状バッファ)を例として、送信バッファ部12および受信バッファ部15の動作を説明する。
【0050】
また、本実施形態では、送信メモリ121をリングバッファとして用いるため、制御部17は、送信データ書き込みアドレスTWAと、送信データ読み出しアドレスTRAとを記憶する記憶手段を備えている。
【0051】
ここで、送信データ書き込みアドレスTWAは、TA1〜TA320の値を持つ。また、送信データ読み出しアドレスTRAは、TA1〜TA320の値を持つ。
【0052】
送信データ書き込みアドレスTWAの初期値はTA1とする。また、送信データ読み出しアドレスTRAの初期値はTA1とする。
【0053】
また、本実施形態では、制御部17は、送信データ読み出しカウンタTRCと、送信データ書き込みカウンタTWCと、パケット送信開始フラグTSFとを記憶する記憶手段を備えている。
【0054】
送信データ読み出しカウンタTRCは、0〜160の値を持つ。また、送信データ書き込みカウンタTWCは、0〜160の値を持つ。また、パケット送信開始フラグTSFは、0〜2の値を持つ。なお、送信データ読み出しカウンタTRC、送信データ書き込みカウンタTWCおよびパケット送信開始フラグTSFの初期値は、いずれも0とする。
【0055】
また、本実施形態では、制御部17は、送信バッファ増加フラグTIFと、送信バッファ減少フラグTDFとを記憶する記憶手段を備えている。
【0056】
送信バッファ増加フラグTIFは、0または1の値を持つ。また、送信バッファ減少フラグTDFは、0または1の値を持つ。また、送信バッファ増加フラグTIFおよび送信バッファ減少フラグTDFの初期値は、いずれも0とする。
【0057】
また、本実施形態では、受信メモリ151をリングバッファとして用いる。そのため、制御部17は、受信データ書き込みアドレスRWAと、受信データ読み出しアドレスRRAと、復号化開始フラグDSFと、受信バッファエンプティフラグREFとを記憶する記憶手段を備えている。
【0058】
受信データ書き込みアドレスRWAは、RA1〜RAEの値を持つ。また、受信データ読み出しアドレスRRAは、RA1〜RAEの値を持つ。また、復号化開始フラグDSFは、0または1の値を持つ。また、受信バッファエンプティフラグREFは、0または1の値を持つ。
【0059】
受信データ書き込みアドレスRWAおよび受信データ読み出しアドレスRRAの初期値は、いずれもRA1とする。また、復号化開始フラグDSFおよび受信バッファエンプティフラグREFの初期値は、いずれも0とする。
【0060】
また、本実施形態では、制御部17は、受信データ書き込みカウンタRWCを記憶する記憶手段を備えている。
【0061】
受信データ書き込みカウンタRWCは、0〜160の値を持つ。受信データ書き込みカウンタRWCの初期値は0とする。
【0062】
また、本実施形態では、制御部17は標本化周波数の変換を開始する上方の閾値である上方標本化周波数変換開始閾値CTOと標本化周波数の変換を開始する下方の閾値である下方標本化周波数変換開始閾値CTUとを記憶手段に記憶している。例えば、予め統計値から求めた最適値を上方標本化周波数変換開始閾値CTOまたは下方標本化周波数変換開始閾値CTUとして設定しておく。
【0063】
次に、符号化動作について説明する。図4は、符号化動作の動作例を示すフローチャートである。
【0064】
VoIP等に従って音声データの通信を開始すると、符号化部13は、入力された音声を8kHzの標本化周波数で標本化し、125μsec毎に符号化データを生成する。
【0065】
次いで、制御部17は、送信データ書き込みカウンタTWCを0に設定し(ステップS101)、送信側標本化周波数変換動作を行う(ステップS102)。
【0066】
次いで、制御部17は、符号化部13から符号化データを読み出し、読み出した符号化データを送信メモリ121の送信データ書き込みアドレスTWAで特定される領域に書き込む(ステップS103)。
【0067】
次いで、制御部17は、送信データ書き込みアドレスTWAを1増加させるとともに、送信データ書き込みカウンタTWCを1増加させる(ステップS104)。
【0068】
次いで、制御部17は、送信データ書き込みアドレスTWAがTA320+1であるか否かを判定する(ステップS105)。そして、送信データ書き込みアドレスTWAがTA320+1であると判定すると、制御部17は、送信データ書き込みアドレスTWAをTA1に設定する(ステップS106)。
【0069】
次いで、制御部17は、送信データ書き込みカウンタTWCが160であるか否かを判定する(ステップS107)。そして、送信データ書き込みカウンタTWCが160であると判定すると、制御部17は、パケット送信開始フラグ操作を行う(ステップS108)。
【0070】
次いで、制御部17は、通信が終了したか否かを判定し(ステップS109)、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部17は、処理をステップS101に移行し、ステップS101以降の処理を実行する。
【0071】
次に、パケット送信動作について説明する。図5は、パケット送信動作の一例を示すフローチャートである。
【0072】
最初に、制御部17は、パケット送信開始フラグTSFが1以上であるか否かを判定する(ステップS201)。そして、パケット送信開始フラグTSFが1以上であると判定すると、制御部17は、送信データ読み出しカウンタTRCを0に設定する(ステップS202)。一方、パケット送信開始フラグTSFが1以上でないと判定すると、制御部17は、処理をステップS209に移行する。
【0073】
次いで、制御部17は、送信メモリ121から、送信データ読み出しアドレスTRAによって特定されるデータを読み出して、送信部11に出力する(ステップS203)。
【0074】
次いで、制御部17は、送信データ読み出しアドレスTRAを1増加させるとともに、送信データ読み出しカウンタTRCを1増加させる(ステップS204)。
【0075】
次いで、制御部17は、送信データ読み出しアドレスTRAがTA320+1であるか否かを判定する(ステップS205)。送信データ読み出しアドレスTRAがTA320+1であると判定すると、制御部17は、送信データ読み出しアドレスTRAをTA1に設定する(ステップS206)。
【0076】
次いで、制御部17は、送信データ読み出しカウンタTRCが160になるまで、上記のステップS203以降の処理を繰り返す(ステップS207)。そして、送信データ読み出しカウンタTRCが160になると、制御部17は、パケット送信開始フラグTSFを1減少させる(ステップS208)。
【0077】
次いで、制御部17は、RTP1パケット分の160バイトの符号化データを送信部11に出力する。そして、送信部11は、出力されたRTP1パケット分の160バイトの符号化データにヘッダ情報等のデータを追加してRTPパケットを構成し、通信網2を介して外部に送信する。
【0078】
次いで、制御部17は、通信が終了したか否かを判定し(ステップS209)、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部17は、処理をステップS201に移行し、ステップS201以降の処理を実行する。
【0079】
次に、パケット受信動作について説明する。図6は、パケット受信動作の一例を示すフローチャートである。
【0080】
通信開始すると、受信部14は、通信網2を介して、外部からRTPパケットを受信する(ステップS301)。そして、受信部14は、ヘッダ情報等のデータを削除して符号化データを生成し、制御部17にパケット受信信号を出力する。
【0081】
次いで、制御部17は、受信部14からパケット受信信号を受信すると、受信データ書き込みカウンタRWCを0に設定し(ステップS302)、受信側標本化周波数変換動作を行う(ステップS303)。
【0082】
次いで、制御部17は、受信部14から符号化データを1バイト読み出し、受信メモリ151の受信データ書き込みアドレスRWAによって特定される領域に符号化データを書き込む(ステップS304)。
【0083】
次いで、制御部17は、受信データ書き込みアドレスRWAを1増加させるとともに、受信データ書き込みカウンタRWCを1増加させる(ステップS305)。
【0084】
次いで、制御部17は、復号化開始フラグDSFが0か否かを判定する(ステップS306)。
【0085】
ステップS306において、復号化開始フラグDSFが0であると判定すると、制御部17は、受信データ書き込みアドレスRWAが音声再生開始アドレスRASに一致するか否かを判定する(ステップS307)。そして、一致すると判定すると、制御部17は、復号化開始フラグDSFを1に設定する(ステップS308)。
【0086】
次いで、制御部17は、受信データ書き込みアドレスRWAがRAE+1であるか否かを判定する(ステップS309)。そして、受信データ書き込みアドレスRWAがRAE+1であると判定すると、制御部17は、受信データ書き込みアドレスRWAをRA1に設定する(ステップS310)。
【0087】
次いで、制御部17は、TWAとTRAとが一致するか否かを判定する(ステップS311)。そして、TWAとTRAとが一致すると判定すると、制御部17は、受信バッファエンプティフラグREFを0に設定し(ステップS312)、バッファ異常処理を行う(ステップS313)。
【0088】
次いで、制御部17は、受信データ書き込みカウンタRWCが160になるまで、上記のステップS304以降の処理を繰り返す(ステップS314)。
【0089】
受信データ書き込みカウンタRWCが160になると、制御部17は、通信が終了したか否かを判定し(ステップS315)、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部17は、処理をステップS301に移行し、ステップS301以降の処理を実行する。
【0090】
次に、音声復号化動作について説明する。図7は、音声復号化動作の一例を示すフローチャートである。
【0091】
制御部17は、復号化開始フラグDSFが1であるか否かを判定し(ステップS401)、1であると判定すると、125μsec毎に、受信バッファ部15から、受信データ読み出しアドレスRRAのデータを1バイト読み出す(ステップS402)。
【0092】
次いで、制御部17は、復号化部16に符号化データを出力するともに、受信データ読み出しアドレスRRAを1増加させる(ステップS403)。次いで、復号化部16は、受信した符号化データを復号し出力する。
【0093】
次いで、制御部17は、受信データ読み出しアドレスRRAがRAE+1であるか否かを判定する(ステップS404)。そして、受信データ読み出しアドレスRRAがRAE+1であると判定すると、制御部17は、受信データ読み出しアドレスRRAをRA1に設定する(ステップS405)。
【0094】
次いで、制御部17は、受信データ読み出しアドレスRWAと受信データ読み出しアドレスRRAとが一致するか否かを判定する(ステップS406)。そして、一致すると判定すると、制御部17は、受信バッファエンプティフラグREFを1と設定し(ステップS407)、バッファ異常処理を行う(ステップS408)。
【0095】
次いで、制御部17は、通信が終了したか否かを判定し(ステップS409)、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部17は、処理をステップS401に移行し、ステップS401以降の処理を実行する。
【0096】
次に、受信側での標本化周波数変換動作について説明する。図8は、受信側標本化周波数変換動作の一例を示すフローチャートである。
【0097】
制御部17は、受信データ書き込みアドレスRWAと受信データ読み出しアドレスRRAとの差の絶対値が上方標本化周波数変換開始閾値CTOを上回るか否かを判定する(ステップS501)。そして、上回ると判定すると、制御部17は、送信バッファ増加フラグTIFを1と設定し(ステップS502)、受信バッファ減少処理を行う(ステップS503)。
【0098】
次いで、制御部17は、受信データ書き込みアドレスRWAと受信データ読み出しアドレスRRAとの差の絶対値が下方標本化周波数変換開始閾値CTUを下回るか否かを判定する(ステップS504)。そして、下回ると判定すると、制御部17は、送信バッファ減少フラグTDFを1と設定し(ステップS505)、受信バッファ増加処理を行う(ステップS506)。
【0099】
次に、送信側での標本化周波数変換動作について説明する。図9は、送信側標本化周波数変換動作の一例を示すフローチャートである。
【0100】
制御部17は、送信バッファ増加フラグTIFが1であるか否かを判定する(ステップS601)。そして、送信バッファ増加フラグTIFが1であると判定すると、制御部17は、送信バッファ増加処理を行う(ステップS602)。
【0101】
次いで、制御部17は、送信バッファ減少フラグTDFが1であるか否かを判定する(ステップS603)。そして、送信バッファ減少フラグTDFが1であると判定すると、制御部17は、送信バッファ減少処理を行う(ステップS604)。
【0102】
次に、受信バッファ減少処理について説明する。図10は、受信バッファ減少処理の一例を示すフローチャートである。
【0103】
制御部17は、受信データ書き込みアドレスRWAと受信データ読み出しアドレスRRAとが一致するか否かを判定する(ステップS701)。そして、一致すると判定すると、制御部17は、受信データ書き込みアドレスRWAを1減らす(ステップS702)。
【0104】
次いで、制御部17は、受信データ書き込みアドレスRWAがRA1−1であるか否かを判定する(ステップS703)。そして、受信データ書き込みアドレスRWAがRA1−1であると判定すると、制御部17は、受信データ書き込みアドレスRWAをRAEに設定する。
【0105】
次に、受信バッファ増加処理について説明する。図11は、受信バッファ増加処理の一例を示すフローチャートである。
【0106】
制御部17は、受信部14から符号化データの先頭データを1バイト読み出す(ステップS801)。
【0107】
次いで、制御部17は、受信データ書き込みアドレスRWAがRA1であるか否かを判定する(ステップS802)。そして、RA1であると判定すると、制御部17は、受信バッファ部15のRAEのアドレスのデータを1バイト読み出す(ステップS803)。一方、RA1でないと判定すると、制御部17は、受信バッファ部15のRWA−1のアドレスのデータを1バイト読み出す(ステップS804)。
【0108】
次いで、制御部17は、受信バッファ部15から読み出したデータと、先に読み出した符号化データの先頭データとの平均値を求め、受信バッファ部15のRWAのアドレスに書き込む(ステップS805)。
【0109】
次いで、制御部17は、受信データ書き込みアドレスRWAを1増加させ(ステップS806)、受信データ書き込みアドレスRWAがRAE+1であるか否かを判定する(ステップS807)。そして、RAE+1であると判定すると、制御部17は、受信データ書き込みアドレスRWAをRA1に設定する(ステップS808)。
【0110】
次に、送信バッファ減少処理について説明する。図12は、送信バッファ減少処理の一例を示すフローチャートである。
【0111】
制御部17は、送信データ書き込みアドレスTWAと送信データ読み出しアドレスTRAとが等しいか否かを判定する(ステップS901)。そして、等しくないと判定した場合には、制御部17は、送信データ書き込みアドレスTWAを1減らす(ステップS902)。
【0112】
次いで、制御部17は、送信データ書き込みアドレスTWAがTA1−1であるか否かを判定する(ステップS903)。そして、TA1−1であると判定すると、制御部17は、送信データ書き込みアドレスTWAをTAEに設定する(ステップS904)。
【0113】
次に、送信バッファ増加処理について説明する。図13は、送信バッファ増加処理の一例を示すフローチャートである。
【0114】
制御部17は、符号化部13から符号化データを1バイト読み出す(ステップS1001)。
【0115】
次いで、制御部17は、送信データ書き込みアドレスTWAがTA1であるか否かを判定する(ステップS1002)。そして、TA1であれば、制御部17は、送信バッファ部12のTAEのアドレスのデータを1バイト読み出す(ステップS1003)。一方、TA1でなければ、制御部17は、送信バッファ部12のTWA−1のアドレスのデータを1バイト読み出す(ステップS1004)。
【0116】
次いで、制御部17は、送信バッファ部12から読み出したデータと、先に読み出した符号化データとの平均値を求め、送信バッファ部12の送信データ書き込みアドレスTWAのアドレスに書き込む(ステップS1005)。
【0117】
次いで、制御部17は、送信データ書き込みアドレスTWAを1増加させ(ステップS1006)、送信データ書き込みアドレスTWAがTAE+1であるか否かを判定する(ステップS1007)。そして、TAE+1であると判定すると、制御部17は、送信データ書き込みアドレスTWAをTA1に設定する(ステップS1008)。
【0118】
次に、パケット送信開始フラグ操作について説明する。図14は、パケット送信開始フラグ操作の一例を示すフローチャートである。
【0119】
最初に、制御部17は、パケット送信開始フラグTSFを1と設定する(ステップS1101)。
【0120】
次いで、制御部17は、送信バッファ減少フラグTDFが1であるか否かを判定する(ステップS1102)。そして、TDFが1であると判定すると、制御部17は、送信データ書き込みアドレスTWAと送信データ読み出しアドレスTRAとの差の絶対値が160であるか否かを判定する(ステップS1103)。
【0121】
ステップS1103において、絶対値が160であると判定すると、制御部17は、パケット送信開始フラグTSFを0に設定する(ステップS1104)。その後、制御部17は、TWAを1減少させ、TWAがTA1より小さくなった場合には、TWAをTA320に設定する(ステップS1105)。その後、制御部17は、送信バッファ減少フラグTDFを0と設定する(ステップS1107)。
【0122】
一方、ステップS1103において、絶対値が160でないと判定すると、制御部17は、パケット送信開始フラグTSFを1と設定する(ステップS1106)。その後、制御部17は、送信バッファ減少フラグTDFを0と設定する(ステップS1107)。
【0123】
次いで、制御部17は、送信バッファ増加フラグTIFが1であるか否かを判定する(ステップS1108)。そして、1であると判定すると、制御部17は、送信データ書き込みアドレスTWAと送信データ読み出しアドレスTRAとが一致するか否かを判定する(ステップS1109)。
【0124】
ステップS1109において、一致すると判定した場合には、制御部17は、パケット送信開始フラグTSFを2に設定し(ステップS1110)、その後、送信バッファ増加フラグTIFを0と設定する(ステップS1112)。
【0125】
また、一致しないと判定した場合には、制御部17は、パケット送信開始フラグTSFを1に設定し(ステップS1111)、その後、送信バッファ増加フラグTIFを0と設定する(ステップS1112)。
【0126】
また、制御部17は、送信バッファ減少フラグTDFと送信バッファ増加フラグTIFがともに0であると判定した場合には、パケット送信開始フラグTSFを1に設定する。
【0127】
次に、バッファ異常処理について説明する。図15は、バッファ異常処理の一例を示すフローチャートである。
【0128】
受信データ書き込みアドレスRWAと受信データ読み出しアドレスとが一致し、受信バッファエンプティフラグREFが0の場合には、バッファアンダーランが発生したことになる。
【0129】
制御部17は、受信バッファエンプティフラグREFが0であるか否かを判定する(ステップS1201)。そして、0であると判定すると、制御部17は、受信データ書き込みアドレスRWAに160を加える(ステップS1202)。
【0130】
次いで、制御部17は、受信データ書き込みアドレスRWAがRAEを超えているか否かを判定する(ステップS1203)。
【0131】
ステップS1203において、超えていると判定すると、制御部17は、受信データ書き込みアドレスRWAから160×nを減らす(ステップS1204)。そして、制御部17は、RA1〜RWAと(RWA−160+160×n)とに、無音データ等のデータを書き込む(ステップS1205)。
【0132】
一方、ステップS1203において、超えていないと判定すると、制御部17は、受信バッファRWA−160〜RWAに、無音データ等のデータを書き込む。なお、本発明は、バッファアンダーランが発生したときに、いかなる音声データを挿入するかを限定するものではない。
【0133】
受信データ書き込みアドレスRWAと受信データ読み出しアドレスとが一致し、受信バッファエンプティフラグREFが1のときは、バッファオーバーフローが発生したことになる。
【0134】
制御部17は、受信バッファエンプティフラグREFが1であるか否かを判定する(ステップS1207)。そして、1であると判定すると、制御部17は、受信データ読み出しアドレスRRAに160を加える(ステップS1208)。
【0135】
次いで、制御部17は、受信データ読み出しアドレスRRAがRAEを超えているか否かを判定する(ステップS1209)。そして、超えていると判定すると、制御部17は、受信データ読み出しアドレスRRAから160×nを減らす(ステップS1210)。なお、ここでは、バッファオーバーフローが発生したときに、古いデータを廃棄しているが、他のデータを廃棄してもよく、いかなるデータを廃棄するかを限定するものではない。
【0136】
次に、パケット送受信装置を適用したシステムについて具体的な例を用いて説明する。図16は、パケット送受信システムの構成の一例を示すブロック図である。
【0137】
パケット送受信装置Aは、本発明によるパケット送受信方法を適用した装置である。
【0138】
パケット送受信装置Aが備えている送信バッファのメモリサイズは320バイトとする。また、パケット送受信装置Aが備えている受信バッファのメモリサイズは160×5の800バイトとする。
【0139】
音声再生開始アドレスは、160×3の480とする。また、パケット送受信装置Aが記憶している上方標本化周波数変換開始閾値は480とする。また、パケット送受信装置Aが記憶している下方標本化周波数変換開始閾値は160とする。
【0140】
パケット送受信装置Bは、送信側と受信側とのクロック周波数の偏差を解決する手段を備えていない一般的な装置である。
【0141】
パケット送受信装置Bが備えている送信バッファのメモリサイズは160バイトとする。また、パケット送受信装置Bが備えている受信バッファのメモリサイズは160×5の800バイトとする。音声再生開始アドレスは160×3の480とする。
【0142】
通信開始時、パケット送受信装置Aは、送信バッファに160バイトのサンプリングデータが書き込まれると、通信網を介してパケット送受信装置BにRTPパケットを送信する。ここで生じる遅延は1パケット分つまり20msecである。
【0143】
パケット送受信装置Bは、受信バッファに3パケット分のサンプリングデータが書き込まれると、音声再生を開始する。ここで生じる遅延は3−1=2パケット分つまり40msecである。したがって、通信網での遅延を除けば、送信側・受信側合わせると60msecの遅延が生じる。
【0144】
バッファによる遅延を分かりやすく説明するため、通信網が遅延0の理想的な回線であると仮定すると、送信バッファのデータの量と、受信バッファのデータの量とをあわせた値が全体の遅延となる。
【0145】
図17は、パケット送受信装置Bが音声再生を開始した後に、パケット送受信装置Aが1パケット分のデータを書き込んだときの状態を示す説明図である。図18は、パケット送受信装置Bが音声再生を開始した後に、1パケット分のデータを受信したときの状態を示す説明図である。
【0146】
図17および図18に示すいずれの状態でも送信バッファのデータの量と、受信バッファのデータの量とをあわせた値は480バイト、つまり60msec分のデータとなる。
【0147】
また、パケット送受信装置Bからパケット送受信装置Aの方向の通信も同様に、通信開始時には60msecの遅延を持つ。
【0148】
このとき、パケット送受信装置Aのクロック周波数>パケット送受信装置Bのクロック周波数であれば、パケット送受信装置Aの受信バッファのデータ量は徐々に減っていき、パケット送受信装置Bの受信バッファのデータ量は徐々に増えていく。
【0149】
パケット送受信装置Aは、パケットを受信すると、そのパケットを受信バッファに書き込む前に、受信バッファのデータ量が下方標本化周波数変換開始閾値160を下回っているか否かを判定し、下回っていると判定した場合には、1バイトのデータを挿入する。
【0150】
図19は、パケット送受信装置Aが通信網を介して外部からパケットを受信したときに、受信バッファが下方標本化周波数変換開始閾値を下回っている状態を示す説明図である。
【0151】
パケット送受信装置Aは、上記のように1バイトのデータを挿入すると同時に、パケット送受信装置Aの送信バッファにデータがない場合には、次の送信タイミングで、1パケット分のデータの送信を止め、送信バッファに1パケット分のデータを蓄積させる。また、送信バッファにデータ量が1以上ある場合には、パケット送受信装置Aは、1バイトのデータを削除する。
【0152】
図20は、パケット送受信装置Aの送信バッファにデータがなかった場合に、1パケット分のデータの送信を止めたため、40msec経過後に、パケット送受信装置Aの送信バッファに2パケット分−1バイトのデータを蓄積したときの状態を示す説明図である。
【0153】
図21は、パケット送受信装置Aの送信バッファにデータを159バイト蓄積している場合に、1バイトデータを削除し、20msec経過後の状態を示す説明図である。
【0154】
以上のように、パケット送受信装置Aのクロック周波数>パケット送受信装置Bのクロック周波数の場合、パケット送受信装置Aの受信バッファ量が下方標本化周波数変換開始閾値を下回らないように保ち、パケット送受信装置Bでもバッファ量が一定値を上回ることはない。そのため、パケット送受信装置Aで、バッファアンダーランを予防すると同時に、パケット送受信装置Aでバッファオーバーフローを予防することができる。
【0155】
また、パケット送受信装置Aのクロック周波数<パケット送受信装置Bのクロック周波数であれば、パケット送受信装置Aの受信バッファのデータ量は徐々に増えていき、パケット送受信装置Bの受信バッファのデータ量は徐々に減っていく。
【0156】
パケット送受信装置Aの受信バッファのデータ量が上方標本化周波数変換開始閾値480を上回ったとき、1バイトのデータを削除する。
【0157】
図22は、パケット送受信装置Aが通信網を介して外部からパケットを受信したときに、受信バッファが上方標本化周波数変換開始閾値を上回っている状態を示す説明図である。
【0158】
パケット送受信装置Aは、上記のように1バイトのデータを削除すると同時に、パケット送受信装置Aの送信バッファに1バイトのデータを挿入する。そして、パケット送受信装置Aは、次の送信タイミングで、送信バッファのデータ量が2パケット分である場合には、2パケットを相次いで送信する。
【0159】
図23は、パケット送受信装置Aの送信バッファに1バイトのデータを挿入した状態を示す説明図である。
【0160】
図24は、パケット送受信装置Aの送信バッファが320バイト分のデータを蓄積したために、パケット送受信装置Aの送信バッファから2パケットを相次いで送信した後、パケット送受信装置Bがその2パケットを受信した状態を示す説明図である。
【0161】
以上のように、パケット送受信装置Aのクロック周波数<パケット送受信装置Bのクロック周波数の場合、パケット送受信装置Aの受信バッファ量は上方標本化周波数変換開始閾値+160を上回らないように保たれ、パケット送受信装置Bでもバッファ量が一定値を下回らない。そのため、パケット送受信装置Aで、バッファオーバーフローを予防すると同時に、パケット送受信装置Aでバッファアンダーランを予防することができる。
【0162】
このようにして、本発明によるパケット送受信装置では、受信バッファのデータ量が所定の閾値を越えたときには、受信バッファの1サンプリングデータを廃棄すると同時に、送信バッファに1サンプリングデータを追加する。また、受信バッファのデータ量が所定の閾値を下回ったときには、受信バッファに1サンプリングデータを追加すると同時に、送信バッファからに1サンプリングデータを廃棄する。
【0163】
そのため、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていないときにも、送信データのオーバーフローやアンダーランを防ぐことができる。また、特許文献3に記載された方法のように送信バッファの遅延時間を受信側の装置に送信するという手順がないため、一般的なパケット通信方法との互換性が失われることはない。
【0164】
さらに、通信開始時には、送信バッファに1パケット分のデータを蓄積すると同時にパケットを送信し、送信時には、パケット通信方式で必然的に生じる1パケット分の伝送遅延以上の遅延を生じないように制御する。このような制御により通信を継続した結果、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータ量が所定の閾値を越えたときには、送信バッファに1サンプリングデータを追加し、かつ、送信バッファに一定のデータが蓄積されたときに複数のパケットを送信するように制御する。また、受信バッファのデータ量が所定の閾値を下回ったときには、送信バッファから1サンプリングデータを削除し、または、1パケットの送信を遅らせるように制御する。そのため、送信装置から受信装置までの遅延を一定の値に保つことができる。
【0165】
以上のことから、本発明は課題を解決するための以下のような手段を備えているといえる。
【0166】
VoIPのように、音声データを受信と送信とを同時に行う通信方式の場合、送信の符号化回路と受信の復号化回路に、同一のクロックを使用する場合が多い。
【0167】
そのため、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータが増加する傾向にあるとき、相手側の受信バッファのデータは減少する傾向にある。
【0168】
また、逆に、受信バッファのデータが減少する傾向にあるときには、相手側の受信バッファのデータが増加する傾向にある。
【0169】
そこで、本発明によるパケット送受信装置は、受信バッファのデータ量が所定の閾値を越えたときに、受信バッファの1サンプリングデータを廃棄すると同時に、送信バッファに1サンプリングデータを追加する。また、受信バッファのデータ量が所定の閾値を下回ったときには、受信バッファに1サンプリングデータを追加すると同時に、送信バッファからに1サンプリングデータを廃棄する。そのため、通信相手が送信側と受信側のクロック周波数の偏差を解決する手段を備えていないときにも、送信データのオーバーフローやアンダーランを防ぐことができる。
【0170】
さらに、通信開始時には、送信バッファに1パケット分のデータが蓄積されたと同時にパケットを送信し、送信時には、パケット通信方式で必然的に生じる1パケット分の伝送遅延以上の遅延を生じないように制御する。このような制御により通信を継続した結果、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータ量が所定の閾値を越えたときには、送信バッファに1サンプリングデータを追加し、かつ、送信バッファに一定のデータが蓄積されたときに複数のパケットを送信するように制御する。また、受信バッファのデータ量が所定の閾値を下回ったときには、送信バッファから1サンプリングデータを削除し、かつ、1パケットの送信を遅らせるように制御する。このことによって、パケット送受信プロトコルを変更せず、一般的な装置と互換性を保ったまま、送信装置から受信装置までの遅延を一定の値に保つことができるようにする。
【0171】
したがって、本発明によるパケット送受信装置は、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を持たないときにも、データのオーバーフローやアンダーランを予防するとともに、伝送遅延を一定に保つことができる。
【0172】
次に、本発明によるパケット送受信装置の最小構成について説明する。図28は、パケット送受信装置の最小の構成例を示すブロック図である。図28に示すように、パケット送受信装置100は、最小の構成要素として、データ量判定手段101と、データ量制御手段102とを備えている。
【0173】
図28に示す最小構成のパケット送受信装置100では、データ量判定手段101は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定する。そして、データ量制御手段102は、データ量判定手段101の判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御する。
【0174】
従って、最小構成のパケット送受信装置によれば、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を持たないときにも、データのオーバーフローやアンダーランを予防するとともに、伝送遅延を一定に保つことができる。
【0175】
なお、本実施形態では、以下の(1)〜(5)に示すようなパケット送受信装置の特徴的構成が示されている。
【0176】
(1)パケット送受信装置は、受信バッファ部(例えば、受信バッファ部15によって実現される)が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段(例えば、制御部17によって実現される)と、データ量判定手段の判定結果に基づいて、受信バッファ部と送信バッファ部(例えば、送信バッファ部12によって実現される)とが蓄積するデータ量を制御するデータ量制御手段(例えば、制御部17によって実現される)とを備えたことを特徴とする。
【0177】
(2)パケット送受信装置において、データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の上限閾値(例えば、上方標本化周波数変換開始閾値CTO)より多いか否かを判定し、データ量制御手段は、データ量判定手段が多いと判定すると、受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御するように構成されていてもよい。
【0178】
(3)パケット送受信装置において、データ量判定手段が所定の上限閾値より多いと判定すると、送信バッファ部が蓄積する複数のパケットを送信するように制御する上方送信制御手段(例えば、送信部11や制御部17によって実現される)を備えるように構成されていてもよい。
【0179】
(4)パケット送受信装置において、データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の下限閾値(例えば、下方標本化周波数変換開始閾値CTU)より少ないか否かを判定し、データ量調整手段は、データ量判定手段が少ないと判定すると、受信バッファ部に所定のデータを追加するとともに、送信バッファ部から所定のデータを廃棄するように制御するように構成されていてもよい。
【0180】
(5)パケット送受信装置において、データ量判定手段が所定の下限閾値より少ないと判定すると、1パケットの送信を遅らせるように制御する下方送信制御手段(例えば、送信部11や制御部17によって実現される)を備えるように構成されていてもよい。
【産業上の利用可能性】
【0181】
本発明は、仕様の異なる装置間でのパケット通信を制御する用途に適用可能である。
【符号の説明】
【0182】
1 通信装置
2 通信回線
11 送信部
12 送信バッファ部
13 符号化部
14 受信部
15 受信バッファ部
16 復号化部
17 制御部
100 パケット送受信装置
101 データ量判定手段
102 データ量制御手段

【特許請求の範囲】
【請求項1】
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段と、
前記データ量判定手段の判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御手段とを
備えたことを特徴とするパケット送受信装置。
【請求項2】
データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、
データ量制御手段は、前記データ量判定手段が前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御する
請求項1記載のパケット送受信装置。
【請求項3】
データ量判定手段が所定の上限閾値より多いと判定すると、送信バッファ部が蓄積する複数のパケットを送信するように制御する上方送信制御手段を備えた
請求項2記載のパケット送受信装置。
【請求項4】
データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の下限閾値より少ないか否かを判定し、
データ量調整手段は、前記データ量判定手段が前記所定の下限閾値より少ないと判定すると、前記受信バッファ部に所定のデータを追加するとともに、送信バッファ部から所定のデータを廃棄するように制御する
請求項1から請求項3のうちのいずれか1項に記載のパケット送受信装置。
【請求項5】
データ量判定手段が所定の下限閾値より少ないと判定すると、1パケットの送信を遅らせるように制御する下方送信制御手段を備えた
請求項4記載のパケット送受信装置。
【請求項6】
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定し、
判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御する
ことを特徴とするパケット送受信方法。
【請求項7】
受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、
前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御する
請求項6記載のパケット送受信方法。
【請求項8】
コンピュータに、
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定処理と、
判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御処理とを
実行させるためのパケット送受信プログラム。
【請求項9】
コンピュータに、
データ量判定処理で、受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定する処理を実行させ、
データ量制御処理で、前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御する処理を実行させる
請求項8記載のパケット送受信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2012−90170(P2012−90170A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−236547(P2010−236547)
【出願日】平成22年10月21日(2010.10.21)
【出願人】(000197366)NECアクセステクニカ株式会社 (1,236)
【Fターム(参考)】