(57)【特許請求の範囲】
【請求項１】
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調するように構成した電話通信装置において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントするように構成した第１のカウンタと、
使用する前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタと、
前記第２のカウンタを制御するために、受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する遅延時間設定手段と、
前記第１のカウンタのカウンタ値が、前記遅延時間設定手段で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる前記第２のカウンタの第１制御手段と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる前記第２のカウンタの第２制御手段と、
で構成したことを特徴とする電話通信装置。
【請求項２】
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調する電話通信装置において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントする第１のカウンタと、
前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタと、
前記第２のカウンタを制御するために、受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する遅延時間設定手段と、
前記第１のカウンタのカウンタ値が、前記遅延時間設定手段で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる前記第２のカウンタの第１制御手段と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる前記第２のカウンタの第２制御手段と、
受信した音声データをデコードし、デコードした音声データを前記ジッタバッファに格納するデコーダと、
前記デコーダでデコードされた音声データが前記ジッタバッファに格納され、音声データが格納されたジッタバッファの数が、前記第２のカウンタで示されるジッタバッファの数以上になった時、前記ジッタバッファ内の音声データを再生する音声再生手段と、
を少なくとも含むことを特徴とする電話通信装置。
【請求項３】
前記電話通信装置が、ＩＰ電話装置であることを特徴とする請求項１又は２記載の電話通信装置。
【請求項４】
前記電話通信装置が、携帯通信端末装置であることを特徴とする請求項１乃至３の何れかに記載の電話通信装置。
【請求項５】
前記電話通信装置が、ＰＤＡ装置であることを特徴とする請求項４記載の電話通信装置。
【請求項６】
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調する電話通信装置の受信部であって、
前記受信部は、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントする第１のカウンタと、
前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタとを備えた電話通信装置の音声データの処理方法において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、音声データを含むパケットが到着した時、前記第１のカウンタをリセット状態にする第１の工程と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる第２の工程と、
受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する第３の工程と、
受信した音声データをデコードし、デコードした音声データを前記ジッタバッファに格納する第４の工程と、
前記第４の工程でデコードされた音声データがジッタバッファに格納され、音声データが格納されたジッタバッファの数が、前記第２のカウンタで示されるジッタバッファの数以上になった時、前記ジッタバッファ内の音声データを再生する第５の工程と、
前記所定の時間内に音声データを含むパケットが到着しない時、前記第１のカウンタをインクリメントする第６の工程と、
前記第１のカウンタのカウンタ値が、前記第３の工程で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる第７の工程と、
を少なくとも含むことを特徴とする電話通信装置の音声データの処理方法。
【請求項７】
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調する電話通信装置の受信部であって、
前記受信部は、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントする第１のカウンタと、
前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタとを備えた電話通信装置の音声データの処理プログラムにおいて、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、音声データを含むパケットが到着した時、前記第１のカウンタをリセット状態にする第１の工程と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる第２の工程と、
受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する第３の工程と、
受信した音声データをデコードし、デコードした音声データを前記ジッタバッファに格納する第４の工程と、
前記第４の工程でデコードされた音声データがジッタバッファに格納され、音声データが格納されたジッタバッファの数が、前記第２のカウンタで示されるジッタバッファの数以上になった時、前記ジッタバッファ内の音声データを再生する第５の工程と、
前記所定の時間内に音声データを含むパケットが到着しない時、前記第１のカウンタをインクリメントする第６の工程と、
前記第１のカウンタのカウンタ値が、前記第３の工程で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる第７の工程と、
をコンピュータに実行させることを特徴とする電話通信装置の音声データの処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電話通信装置と音声データの処理方法に関わり、特に、遅延が少なく且つ音飛び（音切れ）を少なくして再生音質を向上させたＩＰ電話装置とその音声データの処理方法に関する。
【０００２】
【従来の技術】
従来より、ＶｏＩＰ技術においては、ジッタ吸収バッファ（ジッタバッファともいう）を用いたバッファリング技術が知られている。
【０００３】
このバッファリング技術は、ネットワークの状況によりパケットの遅延が発生しても、バッファメモリ内にプールされているパケットを再生しているために、音飛びの発生を少なくして、スムーズな再生を可能にした技術である。
【０００４】
しかしながら、バッファメモリの容量を多くした時、音飛びは起きにくくなるが、その分遅延時間も増加し、遅延量が多くなると、会話が不自然になる。
【０００５】
一方、バッファメモリの容量が小さい時、十分なバッファ効果が得られず、このために、再生するデータがない場合が発生し、音飛びが発生する。
【０００６】
従って、上記した従来のジッタ吸収バッファを用いた従来の装置では、音飛びをなくすようにジッタ吸収バッファの容量を大きくすると遅延量が増加し、一方、バッファの容量を小さくして遅延時間を少なくすると、音飛びが発生しやすくなるという欠点があった。
【０００７】
具体的に、音飛びをなくしたものとしては、ジッタバッファのメモリの残量が少なくなると、再生スピードを上げ、又、メモリの残量が多い時、再生スピードを下げることで、バッファ内のデータ量をほぼ一定に保ち、このように構成することで、音飛びを少なくしたものが提案されている（例えば、特許文献１参照）。
【０００８】
しかしながら、この技術の場合、再生速度が変わるから、再生した音声が不自然になるという欠点があった。
【０００９】
【特許文献１】
米国特許第６３７７９３１号明細書
【発明が解決しようとする課題】
本発明の目的は、上記した従来技術の欠点を改良し、特に、パケットが遅延なく到着する状態においては、ジッタ吸収バッファの数を少なくして再生の遅延を可能な限り少なくし、又、パケットの遅延が多い通信状態においては、ジッタ吸収バッファの数を増加するように制御することで、音飛びをなくして再生することを可能にした新規な電話通信装置と音声データの処理方法を提供するものである。
【００１０】
【課題を解決するための手段】
本発明は上記した目的を達成するため、基本的には、以下に記載されたような技術構成を採用するものである。
【００１１】
即ち、本発明に係わる電話通信装置の第１態様は、
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調するように構成した電話通信装置において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントするように構成した第１のカウンタと、
使用する前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタと、
前記第２のカウンタを制御するために、受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する遅延時間設定手段と、
前記第１のカウンタのカウンタ値が、前記遅延時間設定手段で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる前記第２のカウンタの第１制御手段と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる前記第２のカウンタの第２制御手段と、
で構成したことを特徴とするものであり、
叉、第２態様は、
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調する電話通信装置において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントする第１のカウンタと、
前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタと、
前記第２のカウンタを制御するために、受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する遅延時間設定手段と、
前記第１のカウンタのカウンタ値が、前記遅延時間設定手段で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる前記第２のカウンタの第１制御手段と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる前記第２のカウンタの第２制御手段と、
受信した音声データをデコードし、デコードした音声データを前記ジッタバッファに格納するデコーダと、
前記デコーダでデコードされた音声データが前記ジッタバッファに格納され、音声データが格納されたジッタバッファの数が、前記第２のカウンタで示されるジッタバッファの数以上になった時、前記ジッタバッファ内の音声データを再生する音声再生手段と、
を少なくとも含むことを特徴とするものであり、
叉、第３態様は、
前記電話通信装置が、ＩＰ電話装置であることを特徴とするものであり、
叉、第４態様は、
前記電話通信装置が、携帯通信端末装置であることを特徴とするものであり、
叉、第５態様は、
前記電話通信装置が、ＰＤＡ装置であることを特徴とするものである。
【００１２】
又、本発明に係わる音声データの処理方法の態様は、
受信したパケットを組み立て、受信した音声データをジッタバッファを用いて復調する電話通信装置の受信部であって、
前記受信部は、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントする第１のカウンタと、
前記ジッタバッファの数をリアルタイムに制御するための第２のカウンタとを備えた電話通信装置の音声データの処理方法において、
所定の時間毎に音声データを含むパケットが到着したかしていないかを検出し、音声データを含むパケットが到着した時、前記第１のカウンタをリセット状態にする第１の工程と、
音声データを含むパケットを受信した時、前記第１のカウンタの値が所定の値以下で、且つ、前記第２のカウンタの値が所定の値以上の時、前記第２のカウンタをデクリメントし、使用するジッタバッファの数を減少せしめる第２の工程と、
受信した音声データのデータサイズを基に、次回の音声データを含む受信パケットの許容可能な遅延時間を設定する第３の工程と、
受信した音声データをデコードし、デコードした音声データを前記ジッタバッファに格納する第４の工程と、
前記第４の工程でデコードされた音声データがジッタバッファに格納され、音声データが格納されたジッタバッファの数が、前記第２のカウンタで示されるジッタバッファの数以上になった時、前記ジッタバッファ内の音声データを再生する第５の工程と、
前記所定の時間内に音声データを含むパケットが到着しない時、前記第１のカウンタをインクリメントする第６の工程と、
前記第１のカウンタのカウンタ値が、前記第３の工程で設定した遅延時間に達した時、前記第２のカウンタをインクリメントし、使用する前記ジッタバッファの数を増加せしめる第７の工程と、
を少なくとも含むことを特徴とするものである。
【００１３】
【発明の実施の形態】
以下に、本発明に係わる電話通信装置と音声データの処理方法の具体例を図面を参照しながら詳細に説明する。
【００１４】
図１は、本発明の電話通信装置の送信部のブロック図、図２は、本発明の電話通信装置の受信部のブロック図、図３は、パケットの構成を示す図、図４は、音声データの再生処理を説明する図、図５は、ジッタバッファ内にデコードされたデータが格納された状態を示す図、図６、７は、パケットを送信する送信部の動作を示すフローチャート、図８〜１１は、パケットを受信する受信部の動作を示すフローチャートであり、図８は、パケットを受信する受信部の全体の動作を示すフローチャート、図９は、図８の「ループＢ」部分の詳細なフローチャート、図１０は、図８の「有音２無音処理ルーチン」部分の詳細なフローチャート、図１１は、図８の「無音処理ルーチン」部分の詳細なフローチャートである。
【００１５】
始めに、本発明の特徴について説明する。
【００１６】
本発明は、ジッタバッファを用いて到着した音声データを復調するようにしたＩＰ電話装置において、パケットが遅延なく到着する状態においては、ジッタバッファの数を少なくして再生の遅延を可能な限り少なくし、又、パケットの遅延が多い通信状態においては、ジッタバッファの数を増加するように制御することで、遅延が少なく且つ音飛びを少なくし、以て、再生音質を向上せしめたものである。
【００１７】
図１は、本発明のＩＰ電話装置の送信部のブロック図であり、送信部１１は、送信音声をエンコードするエンコーダ１２と、エンコーダ１２でエンコードしたデータを図３に示す様なパケットに組み立てるパケット組立部１３と、パケット組立部１３で組み立てられたパケットをネットワークに送出する送信部１４とで構成している。パケット組立部１３の動作は、図６及び図７のフローチャートに詳細に示されている。
【００１８】
又、図２は、本発明のＩＰ電話装置の受信部のブロック図であり、受信部２１は、受信したパケットを処理するために受信パケットを分解するパケット分解部２２と、パケット分解部２２でヘッダから分離された音声データをデコードするためのデコーダ２３と、デコードした音声データを格納するジッタバッファ２４と、デコーダ２３とジッタバッファ２４とをリアルタイムに制御する受信データ処理制御部２５とから構成されている。この受信データ処理制御部２５の動作は、図８〜１１のフローチャートに詳細に示されている。
【００１９】
（１）送信部の説明
始めに、図６及び図７のフローチャートを用いて、無音圧縮を用いて送信データを作成する流れについて説明する。
【００２０】
図６に示されているように、本発明のＩＰ電話装置（以下、装置という）の電源が入れられると、各部の変数の定義と初期化が行われ（ステップＳ１）、更にコーデックの初期化、コーデックオプションの設定、ＲＴＰヘッダの初期値設定が行われて（ステップＳ２〜Ｓ６）、通信可能な状態になる。
【００２１】
そして、通話が始まると、始めにハードウエアの初期化が行われる（ステップＳ７、８）。装置のマイクロフォン入力がミュート状態の時には、無音状態とし、ＲＴＰヘッダの同期設定を行う（ステップＳ９〜１１）。又、マイクロフォン入力がミュート状態出ない時には、音のレベルが所定のレベル以上の有音状態か、音のレベルが前記した所定のレベル以下の無音状態であるかを検出した後、ＲＴＰヘッダの同期設定を行う（ステップＳ９、１２Ａ、１１）。
【００２２】
そして、有音状態であれば、音声データをフレームサイズ毎に分割して、エンコードし、処理結果を送信一時バッファの末端に追加する処理をバッファ内の最後のデータまで繰り返し実行し（ステップＳ１２〜１５）、その後、ペイロードタイプの設定をＲＴＰヘッダに行う。
【００２３】
ペイロードタイプの設定は、前回のペイロードタイプが無音タイプであるならば、無音フラグを「１」に設定し、ペイロードタイプの設定を行い、作成した音声データの送信を行う（ステップＳ１６〜１９）。一方、前回のペイロードタイプが有音タイプであるならば、無音フラグを「０」に設定し、ペイロードタイプの設定を行い、作成した音声データの送信を行う（ステップＳ１６、２０、１８、１９）。
【００２４】
その後、ＲＴＰヘッダのシーケンシャル番号、タイムスタンプを更新し、waveform-audio bufferヘッダの更新を行い、更に、次回のオーディオバッファの用意を行う（ステップＳ２１〜２３）。
【００２５】
又、ステップＳ１２において、今回送信するデータが無音で、前回の送信音が有音であった時、ＲＴＰヘッダのペイロードタイプを無音タイプにすると共に無音フラグを「０」に設定し、ＩＰヘッダにＲＴＰヘッダのみを付けて送信する（ステップＳ２４〜２６）。また、前回の送信音が無音である場合、即ち、前回、今回とも無音である場合、何もせずに（ステップＳ２４、ルートＲ１）、ＲＴＰヘッダのシーケンシャル番号、タイムスタンプを更新し、waveform-audio bufferヘッダの更新を行い、更に、次回のオーディオバッファの用意を行う（ステップＳ２１〜２３）。
【００２６】
やがて、通信が終了すると、コーデックを廃棄して、送信動作を終了する（ステップＳ２４〜２６）。
【００２７】
（２）受信部の説明
次に、受信部の動作について説明する。
【００２８】
本発明は、既に説明したように、パケットが遅延なく到着する状態においては、ジッタバッファの数を少なくして再生の遅延を可能な限り少なくし、又、パケットの遅延が多い通信状態においては、ジッタバッファの数を増加するように制御している。
【００２９】
このために、（ａ）Tick カウント（第１のカウンタ）、（ｂ）ジッタカウント（第２のカウンタ）、（ｃ）Pool カウントの三つのカウンタを用いている。
【００３０】
Tick カウント（第１のカウンタ）は、所定の時間（具体的には５ｍｓ）毎に音声データを含むパケットが到着したかしていないかを検出し、前記音声データを含むパケットが到着した時リセット状態にセットし、再び前回音声データを含むパケットを受信してからの経過時間をカウントする。したがって、音声データを含むパケットが到着しない時、インクリメントすることで、音声データを含むパケットを受信した後の経過時間をカウントすることができるようになっている。
【００３１】
又、ジッタカウント（第２のカウンタ）は、使用するジッタバッファの数をリアルタイムに制御するために設けられたパラメータであり、このジッタカウントは、Tick カウントのカウンタ値が、前回に設定した遅延時間値（後述する）に達した時、即ち、大きな遅延時間を以て音声データを受信するような通信状態の時、ジッタカウントをインクリメントし、使用するジッタバッファの数を増加させて、音飛びが起こりにくい状態にし、一方、音声データを含むパケットを受信した時、Tick カウントの値が前回に設定した遅延時間値以下で、且つ、ジッタカウントの値が「２」以上の時、即ち、遅延が少ない状態で順調に音声データを連続して受信可能な状態では、デクリメントし、使用するジッタバッファの数を減少させ、遅延を少なくするように制御するパラメータである。
【００３２】
更に、Pool カウントは、デコードされた音声データがジッタバッファに格納されるが、音声データが格納されたジッタバッファの数をカウントするパラメータである。
【００３３】
図４に示したように、受信部で受信したデータＰ（１）、Ｐ（２）は、デコーダ２３でデコーダされた後、ジッタバッファ２４に格納される。
【００３４】
本発明で用いられるジッタバッファ２４は、８個のジッタバッファ２４１〜２４８からなるリングバッファであり、基本的には４つのジッタバッファをデータ格納用に用い、残りのジッタバッファを再生用に用いるようにしている。各ジッタバッファの容量は、６４０バイト（再生時間が４０ｍｓｅｃ）である。
【００３５】
従って、本発明の場合、ジッタカウントは、１〜４の値を取るように構成している。
【００３６】
又、ジッタバッファを制御するために、本発明では、データ格納用に格納位置ポインタＫｐと再生位置ポインタｔｐの２つのポインタを用い、ジッタバッファ内のデータ格納位置と再生位置とをそれぞれ制御している。
【００３７】
図５は、ジッタバッファ内に音声データが格納されていく様子が示されており、Ｔ＝０〜１２０ｍｓ迄は、ポーズ状態であり、順にジッタバッファ内にデータが格納され、データ格納位置が順にインクリメントされていく様子が示されている。
【００３８】
そして、音声データが格納されたジッタバッファの数、即ち、Pool カウントの値がジッタカウントの数になると、再生開始となる。従って、Ｔ＝１６０ｍｓの状態においては、再生位置ポインタｔｐは、一番下のジッタバッファを指し示し、格納位置ポインタＫｐは、次の格納位置を指し示している。そして、Ｔ＝２００ｍｓの状態においては、次の６４０バイト分の音声データがジッタバッファ内に格納されるから、格納位置ポインタＫｐはインクリメントされ、また、一番下のジッタバッファ内のデータが再生完了するから再生位置ポインタｔｐもインクリメントされ、共に次のジッタバッファを指し示すようになっている。
【００３９】
又、Ｔ＝４００〜５２０ｍｓにおいては、データの受信がない。従って、格納位置ポインタＫｐは停止しているが、再生データがある限り、再生動作のみは継続されているから、再生位置ポインタｔｐは、再生データがなくなるまで、順にインクリメントされている。
【００４０】
なお、上記説明では、ジッタカウントが４の場合として説明した。しかしながら、ジッタカウントは、データの受信状態により、１〜４の間の値を取るので、これについては、後述する。
【００４１】
次に、図８〜図１１を用いて、受信部の処理の流れについて説明する。
【００４２】
（ａ）受信部の全体の動作（図８）
先ず、ジッタカウントを「１」にセットすると共に、Poolカウント、Tickカウントを共に「０」にセットして、変数の初期化を行い、次に、音声データを再生可能にし、更に、受信用バッファの領域を取り、この状態で再生位置を停止させておき（ステップＳ３１〜３４）、ループＡの実行に入る。本発明では、ループＡは、ほぼ５ｍｓ毎に実行されるようになっている。
【００４３】
ループＡでは、パケットを受信し、受信したデータがヘッダサイズ以上の大きさでなければ、無音の状態もしくは受信データが空の状態であるから、図１１の無音処理ルーチンの実行を行う（ステップＳ３５、Ｓ３６、Ｓ８０）。
【００４４】
又、パケットを受信した時、受信したデータがヘッダサイズ以上の大きさであり、且つ、Tickカウントの値が「１」以下であり、ジッタカウントの値が「２」以上であれば、即ち、データが順調に受信できる状態であれば、ジッタカウントをデクリメントし、更に、データを受信したので、Tickカウントを「０」にリセットし、次に、ＲＴＰヘッダの同期設定を行う（ステップＳ３５〜Ｓ４０）。なお、ステップＳ３７において、ジッタカウントの値が「２」以上でない時には、ジッタカウントをデクリメントしないように構成している（ルートＲ２）。
【００４５】
ここで、前回受信したペイロードタイプが有音で、今回受信したペイロードタイプが無音に変わっているならば、図１０の「有音２無音処理ルーチン」を実行するが（ステップＳ４１、Ｓ７０）、前回受信したペイロードタイプと今回受信したペイロードタイプとが共に有音であるならば、無音進行フラグを「０」に設定し、更に、スピーカがミュート状態であるかどうか調べる（ステップＳ４１、ＳＳ４２、Ｓ４３）。
【００４６】
スピーカがミュート状態でなければ、デコーダに応じてデコード後のサイズを算出し（ステップＳ４６）、受信サイズを基に次回の遅延許容範囲値を設定する（ステップＳ４７）。
【００４７】
ステップＳ４７の意味は、例えば、５ｍｓ分の音声データを受信し、その後１０ｍｓしてから次のパケットを受信するような通信状態では、音切れが起きる可能性がある通信状態であり、従って、このような場合、ジッタバッファの数を増加する必要があるから、次回の音声データを含む受信パケットの許容可能な遅延時間を設定しているのである。
【００４８】
その後、音声データのデコード、再生を行うループＢ（ステップＳ５０）を実行し、ループＢの実行後、５ｍｓ停止した（ステップＳ５１）後、再びルームＢを実行を繰り返す。
【００４９】
なお、ステップＳ４３で、スピーカがミュート状態であれば、５ｍｓ停止した後、ジッタカウントを「１」にセットした後、ループＡの実行を再び繰り返す（ステップＳ４４、Ｓ４５）。
【００５０】
このように、本発明の装置では、５ｍｓ毎にループＡが実行され、５ｍｓを単位として制御が行われるようになっている。
【００５１】
（ｂ）ループＢの動作（図９）
ループＢでは、先ず、フレームサイズ毎にバッファを分割してデコードを実行し、処理結果をバッファ位置ポインタ（図示していない）の制御に基づき、ジッタバッファの格納位置の終端に追加する（ステップＳ５４、ステップＳ５５）。ここで、ジッタバッファにデコードしたデータを追加しても、現在格納中のジッタバッファのサイズを越えなければ、そのままループＢの実行を終了する（ステップＳ５６、ルートＲ４）。
【００５２】
又、ジッタバッファにデコードしたデータを追加した時、現在格納中のジッタバッファのサイズを越えた場合（ステップＳ５６）、データを格納し終えたジッタバッファのデータをオーディオデバイスに出力予約し、格納位置ポインタＫｐをインクリメントしておく（ステップＳ５７、ステップＳ５８）。ここで、格納位置ポインタＫｐをインクリメントした結果、格納位置ポインタＫｐの値が「９」になったとすれば、格納位置ポインタＫｐの値を「０」に戻し、Poolカウンタをインクリメントする（ステップＳ５９〜６１）。ここで、Poolカウンタの値が、ジッタカウントの値に等しいか、ジッタカウントの値以上の時、即ち、デコーダされたデータが格納されているジッタバッファの数が、現在設定されているジッタバッファの数以上になった時は、デコーダされたデータが十分ある状態であるから、音声の再生を再開すると共に、Poolカウンタの値を「０」に戻す（ステップＳ６２〜６４）。なお、音声の再生が始まると、再生位置ポインタｔｐの位置は、ステップＳ６３のルーチン内で自動的に制御されるようになっている。
【００５３】
なお、デコーダされたデータが格納されているジッタバッファの数が、現在設定されているジッタバッファの数にならない時は、十分に音声データがジッタバッファ内にない状態であるから、音声の再生を行うことなく、ループＢの実行を再び行う（ステップＳ６２、ルートＲ５）。
【００５４】
従って、パケットの遅延がなく、しかも、有音状態が連続するような通信状態では、ループＢで、受信したデータがデコードされ、デコーダされたデータが再生される。
【００５５】
（ｃ）有音２無音処理（図１０）
図１０のルーチンは、有音のデータを受信中に、受信データが無音データに変化した場合の処理を行うルーチンである。
【００５６】
通話時において、会話がとぎれるような無音状態になった時、無音進行フラグを「１」にセットする。このとき、バッファ位置ポインタ（ステップＳ５５参照）が、「０」の位置であれば、ループＡを終了するが（ステップＳ７２、ルートＲ６）、バッファ位置ポインタが「０」以外の位置にあれば、バッファ位置ポインタまでのデータを現在のデータとして完成させ、現在格納位置のデータをオーディオデバイスに出力予約し、格納位置ポインタＫｐを次の位置にセットし、更に、Poolカウンタを「０」にセットして、ループＡを終了する（ステップＳ７２〜７６）。
【００５７】
（ｄ）無音処理ルーチン（図１１）
また、パケットを受信し、無音の状態又は受信データが空の時、即ち、前回音声データを含むパケットを受信した後、５ｍｓ経過しても正常なデータが受信できない状態であるから、Tickカウントをインクリメントし、次に、無音進行フラグの状態をみる（ステップＳ８１、８２）。
【００５８】
無音進行フラグが、有音を示しているならば、パケットの到着が遅延していることになる。
【００５９】
ここで、Tickカウントの値が、予め設定した無応答許容範囲値（本実施例では、３分に設定した）内であれば、Tickカウントの値が、ステップＳ５３で設定した遅延許容範囲値に等しくなった時点で、ジッタカウントをインクリメントする（ステップＳ８３〜８５）。このとき、ジッタカウントの値が「５」になったとすれば、ジッタカウントの値を「４」にセットする。なお、ステップＳ８４において、Tickカウントの値が、ステップＳ５３で設定した遅延許容範囲値に等しくない時は、何もせずに、ループＡの実行を再び繰り返す（ステップＳ８４、ルートＲ７）。
【００６０】
また、Tickカウントの値が、予め設定した無応答許容範囲値を越えていれば、異常状態が発生した状態であるから、図８の全ての処理を終了させる（ステップＳ８３、ルートＲ８）。
【００６１】
また、ステップＳ８４において、無音状態であり、Tickカウントの値が４０、即ち、即ち、前回音声データを含むパケットを受信した後、２００ｍｓ経過している状態であれば、現在の再生位置を停止させておくと共に、poolカウンタを「０」にして、ループＡを再び実行する（ステップＳ８８〜Ｓ９０）。
【００６２】
従って、例えば、有音状態において、受信パケットが何かの原因で到着しなかった場合、ジッタカウントが５ｍｓ毎にインクリメントされ、ジッタカウントの値が増加する。そして、音声データを含むパケットを再び受信すると、ステップＳ３８でデクリメントされ、やがて、正常な通信状態では、ジッタカウントが「１」となって、通信が行われる（ステップＳ８３〜Ｓ８７）。このように、ジッタカウントの値、即ち、用いられるジッタバッファの数は、通信状態で変化する。
【００６３】
一方、図５のＴ＝５２０ｍｓの場合のように、無音状態で、Tickカウントの値が４０、即ち、即ち、前回音声データを含むパケットを受信した後、２００ｍｓ経過している状態では、再生状態が停止され、ループＡを再び実行するようになっている（ステップＳ８２〜Ｓ９０）。
【００６４】
また、長時間会話がとぎれたような状態においては、始め、図１０の「有音２無音処理」が実行された後、図１１のステップＳ８２〜Ｓ９０が実行されることになる。
【００６５】
なお、上記説明では、本発明をＩＰ電話装置に適用した例を示したが、ＰＤＡ装置等の携帯通信端末装置に適用しても良い。
【００６６】
【発明の効果】
本発明に係わる電話通信装置とその音声データの処理方法は、上述のように構成したので、遅延が少なく且つ音飛び（音切れ）を少なくすることができ、このため、再生音質が向上した。
【図面の簡単な説明】
【図１】図１は、本発明の電話通信装置の送信部のブロック図である。
【図２】図２は、本発明の電話通信装置の受信部のブロック図である。
【図３】図３は、パケットの構成を示す図である。
【図４】図４は。音声データの再生処理を説明する図である。
【図５】図５は、ジッタバッファ内にデコードされたデータが格納された状態を示す図である。
【図６】図６、パケットを送信する送信部の動作を示すフローチャートである。
【図７】図７は、図６と共に、パケットを送信する送信部の動作を示すフローチャートである。
【図８】図８は、パケットを受信する受信部の全体の動作を示すフローチャートである。
【図９】図８の「ループＡ」部分の詳細なフローチャートである。
【図１０】図８の「有音２無音処理ルーチン」部分の詳細なフローチャートである。
【図１１】図８の「無音処理ルーチン」部分の詳細なフローチャートである。
【符号の説明】
１１  送信部
１２  エンコーダ
１３  パケット組立部
１４  送信回路
２１  受信部
２２  パケット分解部
２３  デコーダ
２４  ジッタバッファ
２５  受信データ処理制御部
【図１】
0003648231.tif 000002
【図２】
0003648231.tif 000003
【図３】
0003648231.tif 000004
【図４】
0003648231.tif 000005
【図５】
0003648231.tif 000006
【図６】
0003648231.tif 000007
【図７】
0003648231.tif 000008
【図８】
0003648231.tif 000009
【図９】
0003648231.tif 000010
【図１０】
0003648231.tif 000011
【図１１】
0003648231.tif 000012