(57)【特許請求の範囲】
【請求項１】
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段と、
前記データ量判定手段の判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御手段とを備えたパケット送受信装置であって、
前記データ量判定手段は、前記受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、
前記データ量制御手段は、前記データ量判定手段が前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、前記送信バッファ部に所定のデータを追加するように制御する
ことを特徴とするパケット送受信装置。
【請求項２】
データ量判定手段が所定の上限閾値より多いと判定すると、送信バッファ部が蓄積する複数のパケットを送信するように制御する上方送信制御手段を備えた
請求項１記載のパケット送受信装置。
【請求項３】
データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の下限閾値より少ないか否かを判定し、
データ量調整手段は、前記データ量判定手段が前記所定の下限閾値より少ないと判定すると、前記受信バッファ部に所定のデータを追加するとともに、送信バッファ部から所定のデータを廃棄するように制御する
請求項１または請求項２記載のパケット送受信装置。
【請求項４】
データ量判定手段が所定の下限閾値より少ないと判定すると、１パケットの送信を遅らせるように制御する下方送信制御手段を備えた
請求項３記載のパケット送受信装置。
【請求項５】
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定し、
判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するパケット送受信方法であって、
データ量が所定の範囲内であるか否かを判定する際に、前記受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、
前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、前記送信バッファ部に所定のデータを追加するように制御する
ことを特徴とするパケット送受信方法。
【請求項６】
コンピュータに、
受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定処理と、
判定結果に基づいて、前記受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御処理とを実行させるためのパケット送受信プログラムであって、
前記データ量判定処理で、前記受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定する処理を実行させ、
前記データ量制御処理で、前記所定の上限閾値より多いと判定すると、前記受信バッファ部から所定のデータを廃棄するとともに、前記送信バッファ部に所定のデータを追加するように制御する処理を実行させるためのパケット送受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット送受信装置、パケット送受信方法及びパケット送受信プログラムに関する。
【背景技術】
【０００２】
近年、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）網に代表されるように、データをある量の単位に小分けして送受信するパケット通信が盛んになっている。
【０００３】
それとともに、音声データや画像データ等のリアルタイムデータを、送信側と受信側とで同期を取らずに、パケット単位で転送する技術が、ＩＰ通信網を始め、ＵＳＢやＢｌｕｅｔｏｏｔｈ（登録商標）等でも広く用いられている。例えば、特許文献１〜４には、これらに関連する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１６５１４８号公報
【特許文献２】特開２００５−３０３８３１号公報
【特許文献３】特許第２８１９９７１号明細書
【特許文献４】特開２００８−００３３３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
送信側と受信側とで共通のクロックを用いずに非同期で通信する場合、送信側の符号化回路（エンコーダ）と受信側の復号化回路（デコーダ）とで用いられるクロックの周波数のずれ（偏差）によって、単位時間に受信するデータと再生されるデータとの量に差が生じる場合がある。この場合には、データのあふれ（オーバーフローまたはオーバーラン）によってデータが廃棄されたり、データの欠乏（アンダーラン）によって本来と異なるデータが挿入されたりすることで、音声や画像にノイズが生じ、品質が劣化するという問題がある。
【０００６】
この問題に対して、音声／画像データの伝送で一般的に用いられているＭＰＥＧ２−ＴＳ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２−Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）システムでは、送信するデータの中に、同期のためのデータを定期的に含め、その同期信号からクロックを生成して、送信装置と受信装置とのクロックを一致させるという技術が用いられている。
【０００７】
しかしながら、このような定期的に送信される同期のためのデータによってクロックを生成する方法は、ＩＰ通信網のようにデータ伝送のゆらぎ（ジッタ）の大きい通信網では用いることができないという課題がある。
【０００８】
これに対して、受信装置にバッファを設け、バッファのデータ量、またはバッファの時間当たりのデータの増加量や減少量に応じて、エンコーダのクロック周波数を変化させ、データのオーバーフローやアンダーランを防止するという方法が提案されている。
【０００９】
例えば、特許文献１に記載された装置は、ネットワークからデータを受け取る受信装置と受信データを蓄積する受信バッファと、受信バッファ監視回路と、ＡＶデコーダとそのデコーダにクロックを供給する受信クロック発生回路とを備えている。
【００１０】
そして、受信バッファのデータ量がある閾値を超えた場合、受信バッファ監視回路は、受信クロック発生回路をコントロールし、受信クロックの速度を増加させる。また、受信バッファのデータ量がある閾値を下回った場合、受信バッファ監視回路は、受信クロック発生回路をコントロールし、受信クロックの速度を低下させ、バッファのオーバーフローやアンダーランが生じないように制御する。図２５に特許文献１に記載された発明の代表図を示す。
【００１１】
特許文献１に記載された方法を用いれば、データのオーバーフローやアンダーランを防止することができるが、この場合、固定クロック発生回路に比べて、複雑で高価な可変クロック発生回路を用いなければならないという課題がある。
【００１２】
可変クロック発生回路を用いずに、送信側と受信側とのクロック周波数の偏差を解決する方法として、標本化（サンプリング）周波数変換方式がある。
【００１３】
これは、送信側エンコーダ（符号化回路）の単位時間当たりの標本数（サンプリング数）がＮ個、受信側のデコーダ（復号化回路）の単位時間当たりの標本数（サンプリング数）がＭ個である場合を想定する。この場合、Ｎ個のサンプリングデータをＭ個のサンプリングデータに変換し、受信側のデコーダに送信することで目的を達成する。
【００１４】
例えば、特許文献２に記載された方法では、ＵＳＢにおける非同期転送モードでオーディオデータを送受信するとき、ホスト機器とスレーブ機器とのクロック周波数の偏差によるデータのオーバーフローやアンダーランを解決するために、データバッファの増減に応じて、三角窓重み付け方式によって、早聞き／遅聞き処理を行いデータのサンプリング数を増減させる方法が提案されている。図２６に特許文献２に記載された発明の代表図を示す。
【００１５】
近年、ＩＰ通信網上でリアルタイムに音声を伝送するしくみとして、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）が広く用いられている。
【００１６】
ＶｏＩＰでは、音声をデジタル符号化してＲＴＰ（Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）パケットを用いて伝送している。ＲＴＰで音声を伝送する場合、例えば日本では、その符号化方式としてＧ．７１１のμ−ｌａｗが用いられるのが一般的であり、その場合、２０ｍｓｅｃ分の符号化データをＲＴＰの１パケットとして伝送することが多い。
【００１７】
送信側のクロック周波数と受信側のクロック周波数との偏差によって、データのオーバーフローやアンダーランが生じて、ＲＴＰの１パケットを廃棄したり、無音や前パケットの繰り返し等の任意の１パケットを挿入したりすることは、サンプリングデータ数を増加または減少させるという観点で言えば、標本化周波数変換の一方式とみなすことができる。
【００１８】
しかしながら、２０ｍｓｅｃ分のサンプリングデータを削除または挿入すると、音声通話では雑音やとぎれとなり、モデムやファクシミリ通信中であれば、データエラーや画像の乱れが発生し、最悪の場合、通信切断が発生することもあるという問題がある。
【００１９】
これを解決するために、ＲＴＰパケット単位ではなく、１サンプリングデータ単位で、データの廃棄や挿入を行う方法が考えられる。
【００２０】
１サンプリングデータの廃棄の方法としては、単純に１データを廃棄する方法や、前後の任意の数のサンプルデータに対して丸め処理を行うことでサンプル数を減らすという方法がある。また、１サンプリングデータの挿入の方法としては、単純に前後のデータの平均となる量のデータを挿入する方法や、前後の任意の数のサンプルデータに対して丸め処理を行うことでサンプル数を増やす方法がある。これらは広く知られた標本化周波数変換方式の一種である。
【００２１】
ＶｏＩＰのように、音声データの受信と送信とを同時に行う通信方式の場合、受信データに対しては、上記の標本化周波数変換により、送信側と受信側とのクロック周波数の偏差を解決することができる。
【００２２】
しかしながら、送信データに対しては、伝送遅延を少なくするため１パケット分のバッファしか持たないのが一般的であり、その場合、標本化周波数変換を行うことができず、通信相手が送信側と受信側のクロック周波数の偏差を解決する手段を持たないとき、送信データのオーバーフローやアンダーランを防ぐことができないという問題がある。
【００２３】
例えば、特許文献３に記載された方法では、送信バッファの遅延時間を測定し、受信側の装置に遅延時間を送信する。そして、受信側装置の受信バッファの遅延時間を測定し、送受信バッファの総合遅延時間を計算し、総合遅延時間が一定値を超えた場合、復号化を間引く。また、総合遅延時間が一定値を下回った場合、復号化を１フレーム間停止する。図２７に特許文献３に記載された発明の代表図を示す。
【００２４】
特許文献３に記載された方法では、送信バッファの遅延時間を、受信側の装置に送信するという手順を加えている。また、特許文献４に記載された方法では、送信データにサンプリング間隔情報を追加している。そのため、これらの方法を用いれば、一般的なパケット通信方法との互換性が失われることとなる。
【００２５】
また、特許文献３や特許文献４に記載された方法では、送信側の装置と受信側の装置とが、それぞれ所定の機能を備えている必要がある。そのため、このような送信側と受信側とのクロック偏差によるバッファ増減の問題を解決する手段を備えていない装置と通信を行う場合には、バッファオーバーフローやバッファアンダーランを予防することができない。
【００２６】
そこで、本発明は、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていなくても、送信データのオーバーフローやアンダーランを防ぐことができるパケット送受信装置、パケット送受信方法及びパケット送受信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２７】
本発明によるパケット送受信装置は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段と、データ量判定手段の判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御手段とを備えたパケット送受信装置であって、データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、データ量制御手段は、データ量判定手段が所定の上限閾値より多いと判定すると、受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御することを特徴とする。
【００２８】
本発明によるパケット送受信方法は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定し、判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するパケット送受信方法であって、データ量が所定の範囲内であるか否かを判定する際に、受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定し、所定の上限閾値より多いと判定すると、受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御することを特徴とする。
【００２９】
本発明によるパケット送受信プログラムは、コンピュータに、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定処理と、判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御するデータ量制御処理とを実行させるためのパケット送受信プログラムであって、データ量判定処理で、受信バッファ部が蓄積しているデータ量が所定の上限閾値より多いか否かを判定する処理を実行させ、データ量制御処理で、所定の上限閾値より多いと判定すると、受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御する処理を実行させることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていなくても、送信データのオーバーフローやアンダーランを防ぐことができる。
【図面の簡単な説明】
【００３１】
【図１】本発明によるパケット送受信方法を適用した通信装置の構成例を示すブロック図である。
【図２】送信バッファ部１２の構成の一例を詳細に示す説明図である。
【図３】受信バッファ部１５の構成の一例を詳細に示す説明図である。
【図４】符号化動作の動作例を示すフローチャートである。
【図５】パケット送信動作の一例を示すフローチャートである。
【図６】パケット受信動作の一例を示すフローチャートである。
【図７】音声復号化動作の一例を示すフローチャートである。
【図８】受信側標本化周波数変換動作の一例を示すフローチャートである。
【図９】送信側標本化周波数変換動作の一例を示すフローチャートである。
【図１０】受信バッファ減少処理の一例を示すフローチャートである。
【図１１】受信バッファ増加処理の一例を示すフローチャートである。
【図１２】送信バッファ減少処理の一例を示すフローチャートである。
【図１３】送信バッファ増加処理の一例を示すフローチャートである。
【図１４】パケット送信開始フラグ操作の一例を示すフローチャートである。
【図１５】バッファ異常処理の一例を示すフローチャートである。
【図１６】パケット送受信システムの構成の一例を示すブロック図である。
【図１７】パケット送受信装置Ｂが音声再生を開始した後に、パケット送受信装置Ａが１パケット分のデータを書き込んだときの状態を示す説明図である。
【図１８】パケット送受信装置Ｂが音声再生を開始した後に、１パケット分のデータを受信したときの状態を示す説明図である。
【図１９】パケット送受信装置Ａが通信網を介して外部からパケットを受信したときに、受信バッファが下方標本化周波数変換開始閾値を下回っている状態を示す説明図である。
【図２０】パケット送受信装置Ａの送信バッファにデータがなかった場合に、１パケット分のデータの送信を止めたため、４０ｍｓｅｃ経過後に、パケット送受信装置Ａの送信バッファが２パケット分−１バイトのデータを蓄積したときの状態を示す説明図である。
【図２１】パケット送受信装置Ａの送信バッファにデータを１５９バイト蓄積している場合に、１バイトデータを削除し、２０ｍｓｅｃ経過後の状態を示す説明図である。
【図２２】パケット送受信装置Ａが通信網を介して外部からパケットを受信したときに、受信バッファが上方標本化周波数変換開始閾値を上回っている状態を示す説明図である。
【図２３】パケット送受信装置Ａの送信バッファに１バイトのデータを挿入した状態を示す説明図である。
【図２４】パケット送受信装置Ａの送信バッファが３２０バイト分のデータを蓄積したために、パケット送受信装置Ａの送信バッファから２パケットを相次いで送信した後、パケット送受信装置Ｂがその２パケットを受信した状態を示す説明図である。
【図２５】特許文献１に記載された発明の代表図である。
【図２６】特許文献２に記載された発明の代表図である。
【図２７】特許文献３に記載された発明の代表図である。
【図２８】パケット送受信装置の最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００３２】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明によるパケット送受信方法を適用した通信装置の構成例を示すブロック図である。
【００３３】
図１に示すように、通信装置１は、送信部１１と、送信バッファ部１２と、符号化部１３と、受信部１４と、受信バッファ部１５と、復号化部１６と、制御部１７とを備えている。通信装置１は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。なお、通信装置１は、例えば、ルータ装置や通信ボード等によって実現されていてもよい。
【００３４】
送信部１１は、インターネット等の通信網２と、送信バッファ部１２とに接続されている。送信部１１は、送信バッファ部１２より出力されたデータからＲＴＰ等のパケットを生成し、通信網２を介して外部に送信する機能を備えている。送信部１１は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵおよびネットワークインタフェース部によって実現される。
【００３５】
送信バッファ部１２は、送信部１１と、符号化部１３と、制御部１７とに接続されている。送信バッファ部１２は、符号化部１３から出力されたデータを一時的に記憶する機能を備えている。また、送信バッファ部１２は、送信部１１にデータを出力する機能を備えている。また、送信バッファ部１２は、制御部１７から出力された制御情報に従って、記憶しているデータの削除や追加、その他の処理をする機能を備えている。送信バッファ部１２の詳細については後述する。
【００３６】
符号化部１３は、送信バッファ部１２と接続されている。符号化部１３は、音声等の信号を、Ｇ．７１１等の符号化方式に従って符号化し、符号化データを送信バッファ部１２に出力する機能を備えている。符号化部１３は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現されている。
【００３７】
受信部１４は、インターネット等の通信網２と、受信バッファ部１５とに接続されている。受信部１４は、通信網２を介して外部からＲＴＰ等のパケットを受信し、パケットの中からデータを抽出して、受信バッファ部１５に出力する機能を備えている。受信部１４は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵおよびネットワークインタフェース部によって実現される。
【００３８】
受信バッファ部１５は、受信部１４と、符号化部１６と、制御部１７とに接続されている。受信バッファ部１５は、受信部１４から出力されたデータを一時的に記憶する機能を備えている。また、受信バッファ部１５は、復号化部１６にデータを出力する機能を備えている。また、受信バッファ部１５は、制御部１７にバッファのデータ蓄積量を示す情報を出力する機能を備えている。また、受信バッファ部１５は、制御部１７から出力された制御情報に従って、記憶しているデータの削除や追加、その他の処理をする機能を備えている。受信バッファ部１５の詳細については後述する。
【００３９】
復号化部１６は、受信バッファ部１５と接続されている。復号化部１６は、送信バッファ１５から出力された符号化データを、Ｇ．７１１等の符号化方式に従って復号化し、音声等の信号を出力する機能を備えている。復号化部１６は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現されている。
【００４０】
制御部１７は、送信バッファ部１２と、受信バッファ部１５とに接続されている。制御部１７は、符号化部１３から出力されるデータの送信バッファ部１２への書き込みの制御や、送信バッファ部１２から送信部１１へのデータ送信の制御を行う機能を備えている。また、制御部１７は、受信部１４から出力されるデータの受信バッファ部１５への書き込みの制御や、受信バッファ部１５から復号化部１６へのデータ送信の制御を行う機能を備えている。制御部１７は、具体的には、プログラムに従って動作する情報処理装置のＣＰＵによって実現される。
【００４１】
次に、送信バッファ部１２の構成について説明する。図２は、送信バッファ部１２の構成の一例を詳細に示す説明図である。本実施形態では、パケット通信網を介した音声通信として、ＶｏＩＰを用いる例について説明する。
【００４２】
また、本実施形態では、ＶｏＩＰの符号化方式として一般的なＧ．７１１のμ−ｌａｗと、ＲＴＰパケットサイズとして一般的な２０ｍｓｅｃとを一例として用い、これに従って送信バッファ部１２の構成を決定する。
【００４３】
Ｇ．７１１のμ−ｌａｗでは、サンプリング周波数が８ｋＨｚで、１サンプリングの符号化データが８ビット（１バイト）である。また、ＲＴＰパケットサイズが２０ｍｓｅｃであるので、１つのＲＴＰパケット当たりのデータ量は１６０バイトとなる。
【００４４】
送信バッファ部１２は、送信メモリ１２１を備えている。また、送信メモリ１２１の容量はＲＴＰパケット２個分とする。よって、送信メモリ１２１の容量は３２０バイトとなる。また、本実施形態では、送信メモリ１２１を１バイト単位で区切って、そのアドレスをＴＡ１〜ＴＡ３２０とする。
【００４５】
次に、受信バッファ部１５の構成について説明する。図３は、受信バッファ部１５の構成の一例を詳細に示す説明図である。
【００４６】
受信バッファ部１５は、受信メモリ１５１を備えている。また、受信メモリ１５１の容量は、ＲＴＰパケットｎ個分とする。よって、受信メモリ１５１の容量は、１６０×ｎバイトとなる。
【００４７】
本実施形態では、受信メモリ１５１を１バイト単位で区切って、そのアドレスをＲＡ１〜ＲＡＥとする。また、ＲＡＥは１６０×ｎの値を保持する。また、ｎより小さい整数ｍを定め、音声再生開始アドレスＲＡＳ＝１６０×ｍとする。
【００４８】
次に、パケット送受信装置の動作について説明する。パケット送受信装置は、上記の通信装置１と同様の構成であるものとする。
【００４９】
送信バッファ部１２および受信バッファ部１５は、先に受信して記憶したデータから順に先に読み出して送信するため、ＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ）方式に従って動作する。ここでは、ＦＩＦＯ方式の実現方法として広く知られているリングバッファ（サーキュラーバッファ、または環状バッファ）を例として、送信バッファ部１２および受信バッファ部１５の動作を説明する。
【００５０】
また、本実施形態では、送信メモリ１２１をリングバッファとして用いるため、制御部１７は、送信データ書き込みアドレスＴＷＡと、送信データ読み出しアドレスＴＲＡとを記憶する記憶手段を備えている。
【００５１】
ここで、送信データ書き込みアドレスＴＷＡは、ＴＡ１〜ＴＡ３２０の値を持つ。また、送信データ読み出しアドレスＴＲＡは、ＴＡ１〜ＴＡ３２０の値を持つ。
【００５２】
送信データ書き込みアドレスＴＷＡの初期値はＴＡ１とする。また、送信データ読み出しアドレスＴＲＡの初期値はＴＡ１とする。
【００５３】
また、本実施形態では、制御部１７は、送信データ読み出しカウンタＴＲＣと、送信データ書き込みカウンタＴＷＣと、パケット送信開始フラグＴＳＦとを記憶する記憶手段を備えている。
【００５４】
送信データ読み出しカウンタＴＲＣは、０〜１６０の値を持つ。また、送信データ書き込みカウンタＴＷＣは、０〜１６０の値を持つ。また、パケット送信開始フラグＴＳＦは、０〜２の値を持つ。なお、送信データ読み出しカウンタＴＲＣ、送信データ書き込みカウンタＴＷＣおよびパケット送信開始フラグＴＳＦの初期値は、いずれも０とする。
【００５５】
また、本実施形態では、制御部１７は、送信バッファ増加フラグＴＩＦと、送信バッファ減少フラグＴＤＦとを記憶する記憶手段を備えている。
【００５６】
送信バッファ増加フラグＴＩＦは、０または１の値を持つ。また、送信バッファ減少フラグＴＤＦは、０または１の値を持つ。また、送信バッファ増加フラグＴＩＦおよび送信バッファ減少フラグＴＤＦの初期値は、いずれも０とする。
【００５７】
また、本実施形態では、受信メモリ１５１をリングバッファとして用いる。そのため、制御部１７は、受信データ書き込みアドレスＲＷＡと、受信データ読み出しアドレスＲＲＡと、復号化開始フラグＤＳＦと、受信バッファエンプティフラグＲＥＦとを記憶する記憶手段を備えている。
【００５８】
受信データ書き込みアドレスＲＷＡは、ＲＡ１〜ＲＡＥの値を持つ。また、受信データ読み出しアドレスＲＲＡは、ＲＡ１〜ＲＡＥの値を持つ。また、復号化開始フラグＤＳＦは、０または１の値を持つ。また、受信バッファエンプティフラグＲＥＦは、０または１の値を持つ。
【００５９】
受信データ書き込みアドレスＲＷＡおよび受信データ読み出しアドレスＲＲＡの初期値は、いずれもＲＡ１とする。また、復号化開始フラグＤＳＦおよび受信バッファエンプティフラグＲＥＦの初期値は、いずれも０とする。
【００６０】
また、本実施形態では、制御部１７は、受信データ書き込みカウンタＲＷＣを記憶する記憶手段を備えている。
【００６１】
受信データ書き込みカウンタＲＷＣは、０〜１６０の値を持つ。受信データ書き込みカウンタＲＷＣの初期値は０とする。
【００６２】
また、本実施形態では、制御部１７は標本化周波数の変換を開始する上方の閾値である上方標本化周波数変換開始閾値ＣＴＯと標本化周波数の変換を開始する下方の閾値である下方標本化周波数変換開始閾値ＣＴＵとを記憶手段に記憶している。例えば、予め統計値から求めた最適値を上方標本化周波数変換開始閾値ＣＴＯまたは下方標本化周波数変換開始閾値ＣＴＵとして設定しておく。
【００６３】
次に、符号化動作について説明する。図４は、符号化動作の動作例を示すフローチャートである。
【００６４】
ＶｏＩＰ等に従って音声データの通信を開始すると、符号化部１３は、入力された音声を８ｋＨｚの標本化周波数で標本化し、１２５μｓｅｃ毎に符号化データを生成する。
【００６５】
次いで、制御部１７は、送信データ書き込みカウンタＴＷＣを０に設定し（ステップＳ１０１）、送信側標本化周波数変換動作を行う（ステップＳ１０２）。
【００６６】
次いで、制御部１７は、符号化部１３から符号化データを読み出し、読み出した符号化データを送信メモリ１２１の送信データ書き込みアドレスＴＷＡで特定される領域に書き込む（ステップＳ１０３）。
【００６７】
次いで、制御部１７は、送信データ書き込みアドレスＴＷＡを１増加させるとともに、送信データ書き込みカウンタＴＷＣを１増加させる（ステップＳ１０４）。
【００６８】
次いで、制御部１７は、送信データ書き込みアドレスＴＷＡがＴＡ３２０＋１であるか否かを判定する（ステップＳ１０５）。そして、送信データ書き込みアドレスＴＷＡがＴＡ３２０＋１であると判定すると、制御部１７は、送信データ書き込みアドレスＴＷＡをＴＡ１に設定する（ステップＳ１０６）。
【００６９】
次いで、制御部１７は、送信データ書き込みカウンタＴＷＣが１６０であるか否かを判定する（ステップＳ１０７）。そして、送信データ書き込みカウンタＴＷＣが１６０であると判定すると、制御部１７は、パケット送信開始フラグ操作を行う（ステップＳ１０８）。
【００７０】
次いで、制御部１７は、通信が終了したか否かを判定し（ステップＳ１０９）、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部１７は、処理をステップＳ１０１に移行し、ステップＳ１０１以降の処理を実行する。
【００７１】
次に、パケット送信動作について説明する。図５は、パケット送信動作の一例を示すフローチャートである。
【００７２】
最初に、制御部１７は、パケット送信開始フラグＴＳＦが１以上であるか否かを判定する（ステップＳ２０１）。そして、パケット送信開始フラグＴＳＦが１以上であると判定すると、制御部１７は、送信データ読み出しカウンタＴＲＣを０に設定する（ステップＳ２０２）。一方、パケット送信開始フラグＴＳＦが１以上でないと判定すると、制御部１７は、処理をステップＳ２０９に移行する。
【００７３】
次いで、制御部１７は、送信メモリ１２１から、送信データ読み出しアドレスＴＲＡによって特定されるデータを読み出して、送信部１１に出力する（ステップＳ２０３）。
【００７４】
次いで、制御部１７は、送信データ読み出しアドレスＴＲＡを１増加させるとともに、送信データ読み出しカウンタＴＲＣを１増加させる（ステップＳ２０４）。
【００７５】
次いで、制御部１７は、送信データ読み出しアドレスＴＲＡがＴＡ３２０＋１であるか否かを判定する（ステップＳ２０５）。送信データ読み出しアドレスＴＲＡがＴＡ３２０＋１であると判定すると、制御部１７は、送信データ読み出しアドレスＴＲＡをＴＡ１に設定する（ステップＳ２０６）。
【００７６】
次いで、制御部１７は、送信データ読み出しカウンタＴＲＣが１６０になるまで、上記のステップＳ２０３以降の処理を繰り返す（ステップＳ２０７）。そして、送信データ読み出しカウンタＴＲＣが１６０になると、制御部１７は、パケット送信開始フラグＴＳＦを１減少させる（ステップＳ２０８）。
【００７７】
次いで、制御部１７は、ＲＴＰ１パケット分の１６０バイトの符号化データを送信部１１に出力する。そして、送信部１１は、出力されたＲＴＰ１パケット分の１６０バイトの符号化データにヘッダ情報等のデータを追加してＲＴＰパケットを構成し、通信網２を介して外部に送信する。
【００７８】
次いで、制御部１７は、通信が終了したか否かを判定し（ステップＳ２０９）、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部１７は、処理をステップＳ２０１に移行し、ステップＳ２０１以降の処理を実行する。
【００７９】
次に、パケット受信動作について説明する。図６は、パケット受信動作の一例を示すフローチャートである。
【００８０】
通信開始すると、受信部１４は、通信網２を介して、外部からＲＴＰパケットを受信する（ステップＳ３０１）。そして、受信部１４は、ヘッダ情報等のデータを削除して符号化データを生成し、制御部１７にパケット受信信号を出力する。
【００８１】
次いで、制御部１７は、受信部１４からパケット受信信号を受信すると、受信データ書き込みカウンタＲＷＣを０に設定し（ステップＳ３０２）、受信側標本化周波数変換動作を行う（ステップＳ３０３）。
【００８２】
次いで、制御部１７は、受信部１４から符号化データを１バイト読み出し、受信メモリ１５１の受信データ書き込みアドレスＲＷＡによって特定される領域に符号化データを書き込む（ステップＳ３０４）。
【００８３】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡを１増加させるとともに、受信データ書き込みカウンタＲＷＣを１増加させる（ステップＳ３０５）。
【００８４】
次いで、制御部１７は、復号化開始フラグＤＳＦが０か否かを判定する（ステップＳ３０６）。
【００８５】
ステップＳ３０６において、復号化開始フラグＤＳＦが０であると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡが音声再生開始アドレスＲＡＳに一致するか否かを判定する（ステップＳ３０７）。そして、一致すると判定すると、制御部１７は、復号化開始フラグＤＳＦを１に設定する（ステップＳ３０８）。
【００８６】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡがＲＡＥ＋１であるか否かを判定する（ステップＳ３０９）。そして、受信データ書き込みアドレスＲＷＡがＲＡＥ＋１であると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡをＲＡ１に設定する（ステップＳ３１０）。
【００８７】
次いで、制御部１７は、ＴＷＡとＴＲＡとが一致するか否かを判定する（ステップＳ３１１）。そして、ＴＷＡとＴＲＡとが一致すると判定すると、制御部１７は、受信バッファエンプティフラグＲＥＦを０に設定し（ステップＳ３１２）、バッファ異常処理を行う（ステップＳ３１３）。
【００８８】
次いで、制御部１７は、受信データ書き込みカウンタＲＷＣが１６０になるまで、上記のステップＳ３０４以降の処理を繰り返す（ステップＳ３１４）。
【００８９】
受信データ書き込みカウンタＲＷＣが１６０になると、制御部１７は、通信が終了したか否かを判定し（ステップＳ３１５）、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部１７は、処理をステップＳ３０１に移行し、ステップＳ３０１以降の処理を実行する。
【００９０】
次に、音声復号化動作について説明する。図７は、音声復号化動作の一例を示すフローチャートである。
【００９１】
制御部１７は、復号化開始フラグＤＳＦが１であるか否かを判定し（ステップＳ４０１）、１であると判定すると、１２５μｓｅｃ毎に、受信バッファ部１５から、受信データ読み出しアドレスＲＲＡのデータを１バイト読み出す（ステップＳ４０２）。
【００９２】
次いで、制御部１７は、復号化部１６に符号化データを出力するともに、受信データ読み出しアドレスＲＲＡを１増加させる（ステップＳ４０３）。次いで、復号化部１６は、受信した符号化データを復号し出力する。
【００９３】
次いで、制御部１７は、受信データ読み出しアドレスＲＲＡがＲＡＥ＋１であるか否かを判定する（ステップＳ４０４）。そして、受信データ読み出しアドレスＲＲＡがＲＡＥ＋１であると判定すると、制御部１７は、受信データ読み出しアドレスＲＲＡをＲＡ１に設定する（ステップＳ４０５）。
【００９４】
次いで、制御部１７は、受信データ読み出しアドレスＲＷＡと受信データ読み出しアドレスＲＲＡとが一致するか否かを判定する（ステップＳ４０６）。そして、一致すると判定すると、制御部１７は、受信バッファエンプティフラグＲＥＦを１と設定し（ステップＳ４０７）、バッファ異常処理を行う（ステップＳ４０８）。
【００９５】
次いで、制御部１７は、通信が終了したか否かを判定し（ステップＳ４０９）、通信が終了したと判定すると、処理を終了する。一方、通信が終了していないと判定すると、制御部１７は、処理をステップＳ４０１に移行し、ステップＳ４０１以降の処理を実行する。
【００９６】
次に、受信側での標本化周波数変換動作について説明する。図８は、受信側標本化周波数変換動作の一例を示すフローチャートである。
【００９７】
制御部１７は、受信データ書き込みアドレスＲＷＡと受信データ読み出しアドレスＲＲＡとの差の絶対値が上方標本化周波数変換開始閾値ＣＴＯを上回るか否かを判定する（ステップＳ５０１）。そして、上回ると判定すると、制御部１７は、送信バッファ増加フラグＴＩＦを１と設定し（ステップＳ５０２）、受信バッファ減少処理を行う（ステップＳ５０３）。
【００９８】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡと受信データ読み出しアドレスＲＲＡとの差の絶対値が下方標本化周波数変換開始閾値ＣＴＵを下回るか否かを判定する（ステップＳ５０４）。そして、下回ると判定すると、制御部１７は、送信バッファ減少フラグＴＤＦを１と設定し（ステップＳ５０５）、受信バッファ増加処理を行う（ステップＳ５０６）。
【００９９】
次に、送信側での標本化周波数変換動作について説明する。図９は、送信側標本化周波数変換動作の一例を示すフローチャートである。
【０１００】
制御部１７は、送信バッファ増加フラグＴＩＦが１であるか否かを判定する（ステップＳ６０１）。そして、送信バッファ増加フラグＴＩＦが１であると判定すると、制御部１７は、送信バッファ増加処理を行う（ステップＳ６０２）。
【０１０１】
次いで、制御部１７は、送信バッファ減少フラグＴＤＦが１であるか否かを判定する（ステップＳ６０３）。そして、送信バッファ減少フラグＴＤＦが１であると判定すると、制御部１７は、送信バッファ減少処理を行う（ステップＳ６０４）。
【０１０２】
次に、受信バッファ減少処理について説明する。図１０は、受信バッファ減少処理の一例を示すフローチャートである。
【０１０３】
制御部１７は、受信データ書き込みアドレスＲＷＡと受信データ読み出しアドレスＲＲＡとが一致するか否かを判定する（ステップＳ７０１）。そして、一致すると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡを１減らす（ステップＳ７０２）。
【０１０４】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡがＲＡ１−１であるか否かを判定する（ステップＳ７０３）。そして、受信データ書き込みアドレスＲＷＡがＲＡ１−１であると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡをＲＡＥに設定する。
【０１０５】
次に、受信バッファ増加処理について説明する。図１１は、受信バッファ増加処理の一例を示すフローチャートである。
【０１０６】
制御部１７は、受信部１４から符号化データの先頭データを１バイト読み出す（ステップＳ８０１）。
【０１０７】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡがＲＡ１であるか否かを判定する（ステップＳ８０２）。そして、ＲＡ１であると判定すると、制御部１７は、受信バッファ部１５のＲＡＥのアドレスのデータを１バイト読み出す（ステップＳ８０３）。一方、ＲＡ１でないと判定すると、制御部１７は、受信バッファ部１５のＲＷＡ−１のアドレスのデータを１バイト読み出す（ステップＳ８０４）。
【０１０８】
次いで、制御部１７は、受信バッファ部１５から読み出したデータと、先に読み出した符号化データの先頭データとの平均値を求め、受信バッファ部１５のＲＷＡのアドレスに書き込む（ステップＳ８０５）。
【０１０９】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡを１増加させ（ステップＳ８０６）、受信データ書き込みアドレスＲＷＡがＲＡＥ＋１であるか否かを判定する（ステップＳ８０７）。そして、ＲＡＥ＋１であると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡをＲＡ１に設定する（ステップＳ８０８）。
【０１１０】
次に、送信バッファ減少処理について説明する。図１２は、送信バッファ減少処理の一例を示すフローチャートである。
【０１１１】
制御部１７は、送信データ書き込みアドレスＴＷＡと送信データ読み出しアドレスＴＲＡとが等しいか否かを判定する（ステップＳ９０１）。そして、等しくないと判定した場合には、制御部１７は、送信データ書き込みアドレスＴＷＡを１減らす（ステップＳ９０２）。
【０１１２】
次いで、制御部１７は、送信データ書き込みアドレスＴＷＡがＴＡ１−１であるか否かを判定する（ステップＳ９０３）。そして、ＴＡ１−１であると判定すると、制御部１７は、送信データ書き込みアドレスＴＷＡをＴＡＥに設定する（ステップＳ９０４）。
【０１１３】
次に、送信バッファ増加処理について説明する。図１３は、送信バッファ増加処理の一例を示すフローチャートである。
【０１１４】
制御部１７は、符号化部１３から符号化データを１バイト読み出す（ステップＳ１００１）。
【０１１５】
次いで、制御部１７は、送信データ書き込みアドレスＴＷＡがＴＡ１であるか否かを判定する（ステップＳ１００２）。そして、ＴＡ１であれば、制御部１７は、送信バッファ部１２のＴＡＥのアドレスのデータを１バイト読み出す（ステップＳ１００３）。一方、ＴＡ１でなければ、制御部１７は、送信バッファ部１２のＴＷＡ−１のアドレスのデータを１バイト読み出す（ステップＳ１００４）。
【０１１６】
次いで、制御部１７は、送信バッファ部１２から読み出したデータと、先に読み出した符号化データとの平均値を求め、送信バッファ部１２の送信データ書き込みアドレスＴＷＡのアドレスに書き込む（ステップＳ１００５）。
【０１１７】
次いで、制御部１７は、送信データ書き込みアドレスＴＷＡを１増加させ（ステップＳ１００６）、送信データ書き込みアドレスＴＷＡがＴＡＥ＋１であるか否かを判定する（ステップＳ１００７）。そして、ＴＡＥ＋１であると判定すると、制御部１７は、送信データ書き込みアドレスＴＷＡをＴＡ１に設定する（ステップＳ１００８）。
【０１１８】
次に、パケット送信開始フラグ操作について説明する。図１４は、パケット送信開始フラグ操作の一例を示すフローチャートである。
【０１１９】
最初に、制御部１７は、パケット送信開始フラグＴＳＦを１と設定する（ステップＳ１１０１）。
【０１２０】
次いで、制御部１７は、送信バッファ減少フラグＴＤＦが１であるか否かを判定する（ステップＳ１１０２）。そして、ＴＤＦが１であると判定すると、制御部１７は、送信データ書き込みアドレスＴＷＡと送信データ読み出しアドレスＴＲＡとの差の絶対値が１６０であるか否かを判定する（ステップＳ１１０３）。
【０１２１】
ステップＳ１１０３において、絶対値が１６０であると判定すると、制御部１７は、パケット送信開始フラグＴＳＦを０に設定する（ステップＳ１１０４）。その後、制御部１７は、ＴＷＡを１減少させ、ＴＷＡがＴＡ１より小さくなった場合には、ＴＷＡをＴＡ３２０に設定する（ステップＳ１１０５）。その後、制御部１７は、送信バッファ減少フラグＴＤＦを０と設定する（ステップＳ１１０７）。
【０１２２】
一方、ステップＳ１１０３において、絶対値が１６０でないと判定すると、制御部１７は、パケット送信開始フラグＴＳＦを１と設定する（ステップＳ１１０６）。その後、制御部１７は、送信バッファ減少フラグＴＤＦを０と設定する（ステップＳ１１０７）。
【０１２３】
次いで、制御部１７は、送信バッファ増加フラグＴＩＦが１であるか否かを判定する（ステップＳ１１０８）。そして、１であると判定すると、制御部１７は、送信データ書き込みアドレスＴＷＡと送信データ読み出しアドレスＴＲＡとが一致するか否かを判定する（ステップＳ１１０９）。
【０１２４】
ステップＳ１１０９において、一致すると判定した場合には、制御部１７は、パケット送信開始フラグＴＳＦを２に設定し（ステップＳ１１１０）、その後、送信バッファ増加フラグＴＩＦを０と設定する（ステップＳ１１１２）。
【０１２５】
また、一致しないと判定した場合には、制御部１７は、パケット送信開始フラグＴＳＦを１に設定し（ステップＳ１１１１）、その後、送信バッファ増加フラグＴＩＦを０と設定する（ステップＳ１１１２）。
【０１２６】
また、制御部１７は、送信バッファ減少フラグＴＤＦと送信バッファ増加フラグＴＩＦがともに０であると判定した場合には、パケット送信開始フラグＴＳＦを１に設定する。
【０１２７】
次に、バッファ異常処理について説明する。図１５は、バッファ異常処理の一例を示すフローチャートである。
【０１２８】
受信データ書き込みアドレスＲＷＡと受信データ読み出しアドレスとが一致し、受信バッファエンプティフラグＲＥＦが０の場合には、バッファアンダーランが発生したことになる。
【０１２９】
制御部１７は、受信バッファエンプティフラグＲＥＦが０であるか否かを判定する（ステップＳ１２０１）。そして、０であると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡに１６０を加える（ステップＳ１２０２）。
【０１３０】
次いで、制御部１７は、受信データ書き込みアドレスＲＷＡがＲＡＥを超えているか否かを判定する（ステップＳ１２０３）。
【０１３１】
ステップＳ１２０３において、超えていると判定すると、制御部１７は、受信データ書き込みアドレスＲＷＡから１６０×ｎを減らす（ステップＳ１２０４）。そして、制御部１７は、ＲＡ１〜ＲＷＡと（ＲＷＡ−１６０＋１６０×ｎ）とに、無音データ等のデータを書き込む（ステップＳ１２０５）。
【０１３２】
一方、ステップＳ１２０３において、超えていないと判定すると、制御部１７は、受信バッファＲＷＡ−１６０〜ＲＷＡに、無音データ等のデータを書き込む。なお、本発明は、バッファアンダーランが発生したときに、いかなる音声データを挿入するかを限定するものではない。
【０１３３】
受信データ書き込みアドレスＲＷＡと受信データ読み出しアドレスとが一致し、受信バッファエンプティフラグＲＥＦが１のときは、バッファオーバーフローが発生したことになる。
【０１３４】
制御部１７は、受信バッファエンプティフラグＲＥＦが１であるか否かを判定する（ステップＳ１２０７）。そして、１であると判定すると、制御部１７は、受信データ読み出しアドレスＲＲＡに１６０を加える（ステップＳ１２０８）。
【０１３５】
次いで、制御部１７は、受信データ読み出しアドレスＲＲＡがＲＡＥを超えているか否かを判定する（ステップＳ１２０９）。そして、超えていると判定すると、制御部１７は、受信データ読み出しアドレスＲＲＡから１６０×ｎを減らす（ステップＳ１２１０）。なお、ここでは、バッファオーバーフローが発生したときに、古いデータを廃棄しているが、他のデータを廃棄してもよく、いかなるデータを廃棄するかを限定するものではない。
【０１３６】
次に、パケット送受信装置を適用したシステムについて具体的な例を用いて説明する。図１６は、パケット送受信システムの構成の一例を示すブロック図である。
【０１３７】
パケット送受信装置Ａは、本発明によるパケット送受信方法を適用した装置である。
【０１３８】
パケット送受信装置Ａが備えている送信バッファのメモリサイズは３２０バイトとする。また、パケット送受信装置Ａが備えている受信バッファのメモリサイズは１６０×５の８００バイトとする。
【０１３９】
音声再生開始アドレスは、１６０×３の４８０とする。また、パケット送受信装置Ａが記憶している上方標本化周波数変換開始閾値は４８０とする。また、パケット送受信装置Ａが記憶している下方標本化周波数変換開始閾値は１６０とする。
【０１４０】
パケット送受信装置Ｂは、送信側と受信側とのクロック周波数の偏差を解決する手段を備えていない一般的な装置である。
【０１４１】
パケット送受信装置Ｂが備えている送信バッファのメモリサイズは１６０バイトとする。また、パケット送受信装置Ｂが備えている受信バッファのメモリサイズは１６０×５の８００バイトとする。音声再生開始アドレスは１６０×３の４８０とする。
【０１４２】
通信開始時、パケット送受信装置Ａは、送信バッファに１６０バイトのサンプリングデータが書き込まれると、通信網を介してパケット送受信装置ＢにＲＴＰパケットを送信する。ここで生じる遅延は１パケット分つまり２０ｍｓｅｃである。
【０１４３】
パケット送受信装置Ｂは、受信バッファに３パケット分のサンプリングデータが書き込まれると、音声再生を開始する。ここで生じる遅延は３−１＝２パケット分つまり４０ｍｓｅｃである。したがって、通信網での遅延を除けば、送信側・受信側合わせると６０ｍｓｅｃの遅延が生じる。
【０１４４】
バッファによる遅延を分かりやすく説明するため、通信網が遅延０の理想的な回線であると仮定すると、送信バッファのデータの量と、受信バッファのデータの量とをあわせた値が全体の遅延となる。
【０１４５】
図１７は、パケット送受信装置Ｂが音声再生を開始した後に、パケット送受信装置Ａが１パケット分のデータを書き込んだときの状態を示す説明図である。図１８は、パケット送受信装置Ｂが音声再生を開始した後に、１パケット分のデータを受信したときの状態を示す説明図である。
【０１４６】
図１７および図１８に示すいずれの状態でも送信バッファのデータの量と、受信バッファのデータの量とをあわせた値は４８０バイト、つまり６０ｍｓｅｃ分のデータとなる。
【０１４７】
また、パケット送受信装置Ｂからパケット送受信装置Ａの方向の通信も同様に、通信開始時には６０ｍｓｅｃの遅延を持つ。
【０１４８】
このとき、パケット送受信装置Ａのクロック周波数＞パケット送受信装置Ｂのクロック周波数であれば、パケット送受信装置Ａの受信バッファのデータ量は徐々に減っていき、パケット送受信装置Ｂの受信バッファのデータ量は徐々に増えていく。
【０１４９】
パケット送受信装置Ａは、パケットを受信すると、そのパケットを受信バッファに書き込む前に、受信バッファのデータ量が下方標本化周波数変換開始閾値１６０を下回っているか否かを判定し、下回っていると判定した場合には、１バイトのデータを挿入する。
【０１５０】
図１９は、パケット送受信装置Ａが通信網を介して外部からパケットを受信したときに、受信バッファが下方標本化周波数変換開始閾値を下回っている状態を示す説明図である。
【０１５１】
パケット送受信装置Ａは、上記のように１バイトのデータを挿入すると同時に、パケット送受信装置Ａの送信バッファにデータがない場合には、次の送信タイミングで、１パケット分のデータの送信を止め、送信バッファに１パケット分のデータを蓄積させる。また、送信バッファにデータ量が１以上ある場合には、パケット送受信装置Ａは、１バイトのデータを削除する。
【０１５２】
図２０は、パケット送受信装置Ａの送信バッファにデータがなかった場合に、１パケット分のデータの送信を止めたため、４０ｍｓｅｃ経過後に、パケット送受信装置Ａの送信バッファに２パケット分−１バイトのデータを蓄積したときの状態を示す説明図である。
【０１５３】
図２１は、パケット送受信装置Ａの送信バッファにデータを１５９バイト蓄積している場合に、１バイトデータを削除し、２０ｍｓｅｃ経過後の状態を示す説明図である。
【０１５４】
以上のように、パケット送受信装置Ａのクロック周波数＞パケット送受信装置Ｂのクロック周波数の場合、パケット送受信装置Ａの受信バッファ量が下方標本化周波数変換開始閾値を下回らないように保ち、パケット送受信装置Ｂでもバッファ量が一定値を上回ることはない。そのため、パケット送受信装置Ａで、バッファアンダーランを予防すると同時に、パケット送受信装置Ａでバッファオーバーフローを予防することができる。
【０１５５】
また、パケット送受信装置Ａのクロック周波数＜パケット送受信装置Ｂのクロック周波数であれば、パケット送受信装置Ａの受信バッファのデータ量は徐々に増えていき、パケット送受信装置Ｂの受信バッファのデータ量は徐々に減っていく。
【０１５６】
パケット送受信装置Ａの受信バッファのデータ量が上方標本化周波数変換開始閾値４８０を上回ったとき、１バイトのデータを削除する。
【０１５７】
図２２は、パケット送受信装置Ａが通信網を介して外部からパケットを受信したときに、受信バッファが上方標本化周波数変換開始閾値を上回っている状態を示す説明図である。
【０１５８】
パケット送受信装置Ａは、上記のように１バイトのデータを削除すると同時に、パケット送受信装置Ａの送信バッファに１バイトのデータを挿入する。そして、パケット送受信装置Ａは、次の送信タイミングで、送信バッファのデータ量が２パケット分である場合には、２パケットを相次いで送信する。
【０１５９】
図２３は、パケット送受信装置Ａの送信バッファに１バイトのデータを挿入した状態を示す説明図である。
【０１６０】
図２４は、パケット送受信装置Ａの送信バッファが３２０バイト分のデータを蓄積したために、パケット送受信装置Ａの送信バッファから２パケットを相次いで送信した後、パケット送受信装置Ｂがその２パケットを受信した状態を示す説明図である。
【０１６１】
以上のように、パケット送受信装置Ａのクロック周波数＜パケット送受信装置Ｂのクロック周波数の場合、パケット送受信装置Ａの受信バッファ量は上方標本化周波数変換開始閾値＋１６０を上回らないように保たれ、パケット送受信装置Ｂでもバッファ量が一定値を下回らない。そのため、パケット送受信装置Ａで、バッファオーバーフローを予防すると同時に、パケット送受信装置Ａでバッファアンダーランを予防することができる。
【０１６２】
このようにして、本発明によるパケット送受信装置では、受信バッファのデータ量が所定の閾値を越えたときには、受信バッファの１サンプリングデータを廃棄すると同時に、送信バッファに１サンプリングデータを追加する。また、受信バッファのデータ量が所定の閾値を下回ったときには、受信バッファに１サンプリングデータを追加すると同時に、送信バッファからに１サンプリングデータを廃棄する。
【０１６３】
そのため、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を備えていないときにも、送信データのオーバーフローやアンダーランを防ぐことができる。また、特許文献３に記載された方法のように送信バッファの遅延時間を受信側の装置に送信するという手順がないため、一般的なパケット通信方法との互換性が失われることはない。
【０１６４】
さらに、通信開始時には、送信バッファに１パケット分のデータを蓄積すると同時にパケットを送信し、送信時には、パケット通信方式で必然的に生じる１パケット分の伝送遅延以上の遅延を生じないように制御する。このような制御により通信を継続した結果、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータ量が所定の閾値を越えたときには、送信バッファに１サンプリングデータを追加し、かつ、送信バッファに一定のデータが蓄積されたときに複数のパケットを送信するように制御する。また、受信バッファのデータ量が所定の閾値を下回ったときには、送信バッファから１サンプリングデータを削除し、または、１パケットの送信を遅らせるように制御する。そのため、送信装置から受信装置までの遅延を一定の値に保つことができる。
【０１６５】
以上のことから、本発明は課題を解決するための以下のような手段を備えているといえる。
【０１６６】
ＶｏＩＰのように、音声データを受信と送信とを同時に行う通信方式の場合、送信の符号化回路と受信の復号化回路に、同一のクロックを使用する場合が多い。
【０１６７】
そのため、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータが増加する傾向にあるとき、相手側の受信バッファのデータは減少する傾向にある。
【０１６８】
また、逆に、受信バッファのデータが減少する傾向にあるときには、相手側の受信バッファのデータが増加する傾向にある。
【０１６９】
そこで、本発明によるパケット送受信装置は、受信バッファのデータ量が所定の閾値を越えたときに、受信バッファの１サンプリングデータを廃棄すると同時に、送信バッファに１サンプリングデータを追加する。また、受信バッファのデータ量が所定の閾値を下回ったときには、受信バッファに１サンプリングデータを追加すると同時に、送信バッファからに１サンプリングデータを廃棄する。そのため、通信相手が送信側と受信側のクロック周波数の偏差を解決する手段を備えていないときにも、送信データのオーバーフローやアンダーランを防ぐことができる。
【０１７０】
さらに、通信開始時には、送信バッファに１パケット分のデータが蓄積されたと同時にパケットを送信し、送信時には、パケット通信方式で必然的に生じる１パケット分の伝送遅延以上の遅延を生じないように制御する。このような制御により通信を継続した結果、送信側のクロック周波数と受信側のクロック周波数との偏差によって、受信バッファのデータ量が所定の閾値を越えたときには、送信バッファに１サンプリングデータを追加し、かつ、送信バッファに一定のデータが蓄積されたときに複数のパケットを送信するように制御する。また、受信バッファのデータ量が所定の閾値を下回ったときには、送信バッファから１サンプリングデータを削除し、かつ、１パケットの送信を遅らせるように制御する。このことによって、パケット送受信プロトコルを変更せず、一般的な装置と互換性を保ったまま、送信装置から受信装置までの遅延を一定の値に保つことができるようにする。
【０１７１】
したがって、本発明によるパケット送受信装置は、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を持たないときにも、データのオーバーフローやアンダーランを予防するとともに、伝送遅延を一定に保つことができる。
【０１７２】
次に、本発明によるパケット送受信装置の最小構成について説明する。図２８は、パケット送受信装置の最小の構成例を示すブロック図である。図２８に示すように、パケット送受信装置１００は、最小の構成要素として、データ量判定手段１０１と、データ量制御手段１０２とを備えている。
【０１７３】
図２８に示す最小構成のパケット送受信装置１００では、データ量判定手段１０１は、受信バッファ部が蓄積しているデータ量が所定の範囲内であるか否かを判定する。そして、データ量制御手段１０２は、データ量判定手段１０１の判定結果に基づいて、受信バッファ部と送信バッファ部とが蓄積するデータ量を制御する。
【０１７４】
従って、最小構成のパケット送受信装置によれば、一般的なパケット通信方法との互換性を失うことなく、通信相手が送信側と受信側とのクロック周波数の偏差を解決する手段を持たないときにも、データのオーバーフローやアンダーランを予防するとともに、伝送遅延を一定に保つことができる。
【０１７５】
なお、本実施形態では、以下の（１）〜（５）に示すようなパケット送受信装置の特徴的構成が示されている。
【０１７６】
（１）パケット送受信装置は、受信バッファ部（例えば、受信バッファ部１５によって実現される）が蓄積しているデータ量が所定の範囲内であるか否かを判定するデータ量判定手段（例えば、制御部１７によって実現される）と、データ量判定手段の判定結果に基づいて、受信バッファ部と送信バッファ部（例えば、送信バッファ部１２によって実現される）とが蓄積するデータ量を制御するデータ量制御手段（例えば、制御部１７によって実現される）とを備えたことを特徴とする。
【０１７７】
（２）パケット送受信装置において、データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の上限閾値（例えば、上方標本化周波数変換開始閾値ＣＴＯ）より多いか否かを判定し、データ量制御手段は、データ量判定手段が多いと判定すると、受信バッファ部から所定のデータを廃棄するとともに、送信バッファ部に所定のデータを追加するように制御するように構成されていてもよい。
【０１７８】
（３）パケット送受信装置において、データ量判定手段が所定の上限閾値より多いと判定すると、送信バッファ部が蓄積する複数のパケットを送信するように制御する上方送信制御手段（例えば、送信部１１や制御部１７によって実現される）を備えるように構成されていてもよい。
【０１７９】
（４）パケット送受信装置において、データ量判定手段は、受信バッファ部が蓄積しているデータ量が所定の下限閾値（例えば、下方標本化周波数変換開始閾値ＣＴＵ）より少ないか否かを判定し、データ量調整手段は、データ量判定手段が少ないと判定すると、受信バッファ部に所定のデータを追加するとともに、送信バッファ部から所定のデータを廃棄するように制御するように構成されていてもよい。
【０１８０】
（５）パケット送受信装置において、データ量判定手段が所定の下限閾値より少ないと判定すると、１パケットの送信を遅らせるように制御する下方送信制御手段（例えば、送信部１１や制御部１７によって実現される）を備えるように構成されていてもよい。
【産業上の利用可能性】
【０１８１】
本発明は、仕様の異なる装置間でのパケット通信を制御する用途に適用可能である。
【符号の説明】
【０１８２】
１  通信装置
２  通信回線
１１  送信部
１２  送信バッファ部
１３  符号化部
１４  受信部
１５  受信バッファ部
１６  復号化部
１７  制御部
１００  パケット送受信装置
１０１  データ量判定手段
１０２  データ量制御手段
【図１】
0005234845.tif 000002
【図２】
0005234845.tif 000003
【図３】
0005234845.tif 000004
【図４】
0005234845.tif 000005
【図５】
0005234845.tif 000006
【図６】
0005234845.tif 000007
【図７】
0005234845.tif 000008
【図８】
0005234845.tif 000009
【図９】
0005234845.tif 000010
【図１０】
0005234845.tif 000011
【図１１】
0005234845.tif 000012
【図１２】
0005234845.tif 000013
【図１３】
0005234845.tif 000014
【図１４】
0005234845.tif 000015
【図１５】
0005234845.tif 000016
【図１６】
0005234845.tif 000017
【図１７】
0005234845.tif 000018
【図１８】
0005234845.tif 000019
【図１９】
0005234845.tif 000020
【図２０】
0005234845.tif 000021
【図２１】
0005234845.tif 000022
【図２２】
0005234845.tif 000023
【図２３】
0005234845.tif 000024
【図２４】
0005234845.tif 000025
【図２５】
0005234845.tif 000026
【図２６】
0005234845.tif 000027
【図２７】
0005234845.tif 000028
【図２８】
0005234845.tif 000029