JP4174017B2 - ジッタバッファ制御方法及びip電話機 - Google Patents

ジッタバッファ制御方法及びip電話機 Download PDF

Info

Publication number
JP4174017B2
JP4174017B2 JP2003292671A JP2003292671A JP4174017B2 JP 4174017 B2 JP4174017 B2 JP 4174017B2 JP 2003292671 A JP2003292671 A JP 2003292671A JP 2003292671 A JP2003292671 A JP 2003292671A JP 4174017 B2 JP4174017 B2 JP 4174017B2
Authority
JP
Japan
Prior art keywords
buffer
packet
decimation
jitter
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003292671A
Other languages
English (en)
Other versions
JP2005064873A (ja
Inventor
知子 荒木
元康 大野
好博 野口
主識 加藤
百々子 相見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003292671A priority Critical patent/JP4174017B2/ja
Publication of JP2005064873A publication Critical patent/JP2005064873A/ja
Application granted granted Critical
Publication of JP4174017B2 publication Critical patent/JP4174017B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、インターネットプロトコルを利用したパケットネットワークにおける受信パケットのバッファリングシステムに適用可能なジッタバッファ制御方法及びIP電話機に関する。
パケット通信システムを用いて音声伝達を行う場合、受信パケットの到達時間のバラツキを吸収するために受信パケットをバッファリングする処理が必要となる。一般には、ジッタバッファを用いた対策が考えられている。例えば、パケットの到着時間から回線の分散(遅延時間)を求め、求めた分散結果からジッタバッファへの格納場所(ジッタを吸収するために最適と思われる遅延効果を持たせ得る場所)を決めてジッタバッファに格納することで、ジッタを吸収する方法がある(例えば、特許文献1参照)。
特表2002−535885号公報
従来のジッタバッファは、パケット受信動作に同期してジッタ調整(格納位置の計算及び格納)することでフレーム(パケットで運ばれる音声データ)の間引き/間延び処理を行った後、音声復号化部の再生速度に応じた速度でバッファから間引き/間延び処理後の音声データを読み出して音声復号化部へ出力する。
しかしながら、音声復号化部ではジッタバッファから供給される音声データのどこで間引き/間延び処理が加えられたのか判らないため、音声データの再生を実行したときに間引き/間延び処理の位置で音が滑らかに繋がらずに音声劣化が発生する不具合があった。
本発明は、以上のような実情に鑑みてなされたもので、ジッタを吸収するためにフレームの間引き/間延び処理が必要な場合であっても復号化側で音を滑らかに繋ぐことのできるジッタバッファ制御方法及びIP電話機を提供することを目的とする。
本発明は、受信パケットから取り出された音声データをバッファへ格納し、前記受信パケットのジッタ値から間延び又は間引きの要否を判定する。間延び又は間引き「要」と判定した場合に間延び又は間引き依頼を発生する。間延び又は間引き依頼を受けて前記バッファ内の音声データに対して間延び又は間引き処理を実行する一方、間延び又は間引き処理を実行した後の音声データが音声復号化部へ受け渡される前までに当該音声データに間延び又は間引き処理が行われたことを知らせる間延び又は間引き処理の発生を音声復号化部へ通知するものとした。
本発明によれば、ジッタを吸収するためにフレームの間引き/間延び処理が必要な場合であっても復号化側で音を滑らかに繋ぐことのできるジッタバッファ制御方法及びIP電話機を提供できる。
本発明の第1の態様は、パケット通信網からパケットを受信する受信部と前記受信したパケットの音声データを復号化する音声復号化部との間で、前記音声データの間延び又は間引き処理を行うジッタバッファ部のジッタバッファ制御方法であって、前記ジッタバッファ部の判定部において、受信パケットから取り出されてバッファに格納された音声データに対して前記受信パケットのジッタ値から間延び又は間引きの要否を判定する工程と、間延び又は間引き「要」と判定した場合間延び又は間引き依頼を発生する工程とを、パケット受信動作に同期して実行し、前記ジッタバッファ部の制御部において、前記判定部から間延び又は間引き依頼を受けて前記バッファ内の音声データに対して間延び又は間引き処理を実行する工程と、間延び又は間引き処理を実行した後の音声データが前記バッファから前記音声復号化部へ受け渡される前までに、当該音声データに間延び又は間引き処理が行われたことを知らせる間延び又は間引き処理の発生を前記音声復号化部へ通知する工程とを、前記音声復号化部における音声データの音声復号化動作に同期して実行することを特徴とするジッタバッファ制御方法である。
このようなジッタバッファ制御方法によれば、受信パケットのジッタ値から間延び又は間引きの要否を判定する工程から、間延び又は間引き処理を実行する工程及び間延び又は間引きが発生したことを音声復号化部へ通知する工程を分離したので、パケット受信動作に同期してジッタ値を計算して間延び又は間引きの要否を判定でき、且つ、音声復号化動作に同期してジッタ調整及び間延び又は間引きが発生したことの通知ができる。この結果、音声復号化部において通知に基づいて間延び又は間引き位置を判別して適切な処理を実行すれば自然な音声調整が実現される。
本発明の第2の態様は、第1の態様のジッタバッファ制御方法において、間延び処理では、バッファ領域が拡大するようにバッファポインタを操作し、間引き処理では、バッファ領域が縮小するようにバッファポインタを操作するものとした。
これにより、間延び処理の必要があれば、ジッタバッファ内においてポインタ操作によりバッファ拡大処理をすることができ、且つ、間延び処理されたことの通知を前記音声復号化部へ出すので、バッファ拡大によりフレームロスを効率的に抑制することができ、廃棄フレームの削減による音質改善が実現される。また、間引き処理の必要があれば、ジッタバッファ内においてポインタ操作によりバッファ領域を縮小することができ、且つ、間引き処理されたことの通知を前記音声復号化部へ出すので、バッファ領域の縮小によりバッファ内での滞留時間を短縮でき伝搬遅延を短縮して音声遅延を防止することができる。
本発明の第3の態様は、第2の態様のジッタバッファ制御方法において、バッファ拡大用変数Aを認容ロス係数αに基づいて任意の初期値から減じていき、バッファ拡大用変数Aがしきい値に到達する前にデータ廃棄が発生するジッタ値を検出したら間延び「要」と判定するものである。
これにより、簡単な計算で廃棄フレーム量を任意の値(例えば1%)以内に収めて音声の劣化を防止することができる。
本発明の第4の態様は、第2の態様のジッタバッファ制御方法において、バッファ縮小用変数Bをバッファ縮小係数βに基づいて任意の初期値から減じていき、バッファ縮小用変数Bがしきい値に到達したら間引き「要」と判定する。
これにより、間引き処理が短時間で連続して音声が劣化されることを防止できる。また、音声データがバッファ内で滞留時間を短縮できるので、音声の遅延を小さくすることができる。
本発明の第5の態様は、第4の態様のジッタバッファ制御方法において、受信パケットの到着順位の入れ替えが検出された場合、前記バッファ縮小係数βをバッファ縮小がかかりづらい方向に調整するものである。
これにより、バッファ縮小係数βをバッファ縮小がかかりづらい方向に調整するので、間引き処理が不用意に間引きして音声が劣化されることを防止できる。
本発明の第6の態様は、パケット通信網からパケットを受信する受信部と前記受信したパケットの音声データを復号化する音声復号化部との間で、前記音声データの間延び又は間引き処理を行うジッタバッファであって、受信パケットから取り出された音声データが格納されるバッファと、パケット受信動作に同期して、前記受信パケットのジッタ値から間延び又は間引きの要否を判定すると共に間延び又は間引き「要」と判定した場合、間延び又は間引き依頼を発生する判定部と、前記音声復号化部における音声データの音声復号化動作に同期して、前記判定部から間延び又は間引き依頼を受けて前記バッファ内の音声データに対して間延び又は間引き処理を実行すると共に間延び又は間引き処理を実行した後の音声データが前記バッファから前記音声復号化部へ受け渡される前までに、当該音声データに間延び又は間引き処理が行われたことを知らせる間延び又は間引き処理の発生を前記音声復号化部へ通知する制御部と、を具備するジッタバッファである。
このようなジッタバッファによれば、受信パケットのジッタ値から間延び又は間引きの要否を判定する判定部と、間延び又は間引き処理を実行し間延び又は間引きが発生したことを音声復号化部へ通知する制御部とを分離したので、パケット受信動作に同期してジッタ値を計算して間延び又は間引きの要否を判定でき、且つ、音声復号化動作に同期してジッタ調整及び間延び又は間引きが発生したことの通知ができる。この結果、音声復号化部において間延び又は間引き位置を判別して適切な処理を実行すれば自然な音声調整が実現される。
本発明の第7の態様は、パケット通信網に対してパケットの送受信を行うパケット送受信部と、入力音声をパケット化して前記パケット送受信部へ渡して送信させる送信部と、前記パケット送受信部が受信した受信パケットから音声データを取り出して復号化し音声出力する受信部と、を備え、前記受信部に上記ジッタバッファを備えたIP電話機である。
以上のようなジッタバッファを用いることにより、音声品質が改善され、音声遅延の少ない良好な音声通信を実現できる。
以下、本発明の一実施の形態について図面を参照して具体的に説明する。
図1は、本発明を適用可能なパケット通信システムの一例としてIP電話網のネットワーク構成図が示されている。IP電話機において後述するジッタバッファ制御が実行される。IP電話機はルーティング機能を備えたゲートウェイ(GW)を介してIP網に接続される。IP網は、インターネットプロトコルにしたがってIPパケットを送受信する通信網であり、パケット通信網の一つである。
図2にIP電話機の機能ブロック図を示す。IP電話機の音声インターフェース部は、マイク等で構成される音声入力部10とスピーカ等で構成される音声出力部11とで構成される。また、IP電話機の通信インターフェース部は、パケット通信網12との間でパケットの送受信を行うパケット送受信部13で構成されている。図1のネットワーク構成であれば、パケット送受信部13はインターネットプロトコルにしたがって動作することになる。なお、ゲートウェイGWがプロトコル変換サービスを提供してローカルなプロトコルを使用する特殊な形態も可能である。
かかるIP電話機において、音声入力部10から入力された音声は、音声符号化部14で符号化(圧縮)されて例えば10ms単位の音声データ(以下、「フレーム」という)に変換される。パケット形成部15において所定フォーマットのパケットが形成される。例えば、RTPのようなプロトコルを利用してデータパケットをネットワーク上で送信する場合、RTPパケットのヘッダにタイムスタンプ、シーケンス番号が記述される。1パケットには、1つ又は複数のフレームが詰め込まれる。音声データはフレームとして送信されることになる。パケット形成部15が生成したパケットはパケット送受信部13がパケット通信網12へ送信する。また、パケット送受信部13はパケット通信網12からパケットを受信する。受信パケットはパケット解析部16においてヘッダが解析されると共にフレームが取り出される。フレームはジッタバッファ部17に書き込まれる。ジッタバッファ部17の動作制御については後述する。音声復号化部18はジッタバッファ部17からフレームを読み出して音声復号化処理し、音声データを復元し、音声出力部11から音声出力する。
図3はジッタバッファ部17の構成を示すブロック図である。ジッタバッファ部17は、受信パケットから取り出されたフレームデータが格納されるバッファ21、受信パケットのジッタ値からフレームデータの間延び又は間引きの要否を判定するジッタバッファ拡大・縮小判定部22、バッファ領域の拡大又はバッファ領域の縮小判定結果によりフレームデータの間延び又は間引きを実行すると共に間引き/間延び処理の発生を外部へ通知するジッタバッファ制御部23を備えている。特に、ブロック24はパケット受信動作に同期した部分であり、ジッタ値の計算、格納、間延び/間引き要否判定が行われる。ブロック25は音声復号化動作に同期した部分であり、バッファ21に対するポインタ操作による間延び/間引きを実行し、間延び/間引きが行われたことの通知をする部分である。このように、ジッタバッファ17の内部を、パケット受信動作に同期したジッタバッファ拡大・縮小判定部22と、音声復号化動作に同期してバッファポインタ操作及び通知を行うジッタバッファ制御部23とに分離している。
図4(a)(b)を参照してジッタバッファ部17の動作の概略について説明する。
図4(a)はパケット受信時のフロー図である。パケット解析部16が受信したパケット内の音声データ(フレーム)(A)はバッファ21に格納される(B)。ジッタバッファ拡大・縮小判定部22はデータ格納位置等の情報(C)からパケット個々のジッタを見て間延び又は間引き要否の判定を行う(D)。間延び又は間引きの必要が生じた場合はジッタバッファ制御部23に対して間延び又は間引き処理を依頼する(E)。
図4(b)はCODEC起動タイミングのフロー図である。音声復号化部の起動は、システムによるが、例えば10ms間隔で起動されるものとする。ジッタバッファ制御部23は、間延び又は間引き処理の依頼があれば、間延び又は間引き処理の発生を音声復号化部18へ通知する(F)。これにより、音声復号化部18では、ジッタバッファ部17において間延び処理(バッファ領域の拡大による空フレームの挿入)又は間引き処理(バッファ領域の縮小によるフレームの削除)が行われた場合であっても、間延び又は間引き処理が行われた通知を受けて音声を滑らかにつなげる処理を実現することができる。ジッタバッファ制御部23は、後述するポインタ操作によるバッファ拡大又はバッファ縮小処理をバッファ21に対して行う(G)。そして、間延び又は間引き処理が発生したことの通知及びバッファ拡大又はバッファ縮小処理による間延び又は間引き処理が完了したことを依頼元のジッタバッファ拡大・縮小判定部22へ伝え(H)、バッファ21はデータ(I)を音声復号化部18へ渡す。なお、間延び・間引き処理発生の通知(F)はCODECデータ受け渡し処理(I)の前までに実行されればよく、間延び・間引きバッファ処理(G)の前に限定されるものではない。
次に、ジッタバッファ拡大・縮小判定部22におけるバッファ領域の拡大・縮小処理の計算内容について詳しく説明する。
図5(a)に示すように、バッファ21はフレーム単位で構成され、整列順序は復号化順とする。サイズは有限のリングバッファ(Buffer size max)であるとする。かかる構成のバッファ21を2つのポインタで制御する。図5(b)に示すように、1つは受信フレームを格納するバッファ21上の格納位置を示すIN Pointerであり、もう一つはバッファ21から音声復号化部へ受信フレームを受け渡す位置を示すOUT Pointerである。本明細書では、到着パケットのIN PointerとそのときのOUT Pointerとの差を、個々のパケットのジッタ(pck jitter)と呼ぶこととする。この[pck jitter]をバッファ領域の拡大・縮小処理に使用する。図5(c)に示す例では、Aパケット(データはフレームデータ)のジッタは、pckA jitter=OUT Pointer−IN Pointer=1−7=−6で計算され、6フレーム分のジッタが発生していることを示している。また、ジッタバッファ遅延は、OUT Pointerと最も復号処理の遅い受信フレームの差をそのときのジッタバッファ遅延とする。図5(d)に示す例では、ジッタバッファ遅延は、pckA jitter=1−6=−5となり、5フレーム分であると計算される。
いま、図6に示すような分散を持つパケットを受信した場合を考える。パケット構成は2フレーム/1パケットで、遅延分布は正規分布(中心遅延:2ms、標準偏差:9.1390ms)、遅延幅は59msである。パケットロスは0%であるとする。
最初に、バッファ領域の拡大による間延び処理について説明する。本実施の形態では、容認ロス係数αとバッファ拡大用変数Aとを用いて、ジッタバッファ内部で廃棄されるデータの発生頻度すなわちロス率を基に間延びの要否を判断し、ロス量をα内に収めるようにジッタバッファ内での遅延を大きくする。
図7に横軸に受信フレーム数をとり、縦軸に受信パケットジッタ値をとったある区間のグラフを示す。ジッタ値=0の状態では、OUT Pointer−IN Pointer=0であるので、バッファ21に格納した受信フレームをそのまま遅延無く音声復号化部18へ渡している状態である。この状態では、音声復号化部18へ渡すデータが途切れることはないが、後続パケットが1パケットでも遅れるとパケットロスが発生することになる。ジッタ値≧1の状態ではロスが発生する状態である。一方、ジッタ値≦−1の状態では正常に復号できる状態であり、ロスは発生しない。
ジッタバッファの処理に起因する認容ロス係数α=1/100にした場合のバッファ拡大用変数Aと受信フレーム数との関係を図8に示す。認容ロス係数α=1/100に設定するとことはパケットロスの発生を1%以内に収めることを意味する。
図8は横軸に受信フレーム数をとり、縦軸にバッファ拡大用変数Aをとったグラフであり、横軸は図7のグラフに対応している。バッファ拡大用変数Aの傾きがαであり、ジッタ値=1になると、バッファ拡大用変数AがA=1となり、そこから200フレーム(100パケット)経過したところで、A=0となるようにαが設定されている。200フレーム経過してA=0になる前にジッタ値が1になった場合、ロス頻度が高いと判断できるので、バッファ領域の拡張が必要であると判定する。
図9はバッファ領域の拡大による間延び処理のフロー図である。バッファ拡大用変数Aの初期値は「0」であり、ジッタ値を次式より計算する。
pck jitter=OUT Pointer−IN Pointer
最新の計算されたジッタ値の極性が0以下か否か判定する(S101)。図7の例ではK番目の受信フレームのジッタ値が+1になっている。そのK番目の受信フレームはジッタ値が+1であるので、正常に復号できないためジッタバッファ内部の処理で廃棄される(ロス発生)。ステップS101の判定ではpck jitter = 1であるのでステップS102へ進み、現在のバッファ拡大用変数Aの値がA>0で有るか否か判定する。例えば、K番目のフレームまでは、初期値=0から変化していないとすれば、ステップS104へ進み、K番目の受信フレームのバッファ格納時に計算されたジッタ値=+1をバッファ拡大用変数Aとする更新が行われる。再び、ステップS101へ戻る。図7の例では(K+1)番目の受信フレームのジッタ値は0であるので、ステップS105へ進みバッファ拡大用変数AがA≧0であるか判定する。今、A=+1であるのでステップS106へ進んでバッファ拡大用変数Aをαで減じる修正が行われる。図7の例では、その後はジッタ値が+1になる受信フレームがL番目の受信フレーム数まで存在しないので、図8に示すようにバッファ拡大用変数Aがフレーム受信の度にαで減じられていき200フレーム連続して減じられるとA=0となる。バッファ拡大用変数Aが0まで戻った後は、ステップS105からステップS107を経由してステップS101へ戻るのでバッファ拡大用変数AはA=0を維持することになる。
一方、図7の例ではL番目で再びジッタ値が+1に変化している。この結果、次のタイミングではステップS101からステップS102に進み、ステップS104でバッファ拡大用変数AがA=+1に更新される。その後は、上記したようにステップS106でαだけ減じられる処理が繰り返される。ところが、今回はバッファ拡大用変数AがA=0になる前、すなわち前回ジッタ値が+1になってから200フレーム受信する前に、再びジッタ値が+1になってしまっている。200フレーム期間前に再びロスが発生したことを意味する。このような場合には、ジッタが大きくなってフレームを廃棄することとなる事態を防止するために、バッファ拡大処理を行う。そのために、図7に示す(L + 200)番目の手前でジッタ値が+1になったならば、ステップS101,S102を経由してステップS103へ進み、1フレーム分の間延び処理を依頼することになる。この間延び処理の依頼は、ジッタバッファ拡大・縮小判定部22からジッタバッファ制御部23に対して間延び処理依頼(E)として出される。なお、間延び処理を行う条件は、200フレーム期間経過前にパケットロス(又はフレームロス)が発生するといったことに限定されるものではなく、認容ロス係数αを調整して許容期間を長くしたり短くしたりすることができる。
ジッタバッファ制御部23は、前述したようにバッファ21のポインタを操作して、図10に示すように空フレームが1フレーム追加されるようなバッファ領域の拡大による間延び処理を実行する一方、間延び処理が発生したことの通知(F)を音声復号化部18へ出す。具体的には、音声復号化部18へ出力するフレームに空フレームを1つ追加することにより、1フレーム余分にバッファ21に蓄積できるようにする。または、音声復号化部18へ間延び処理が発生したことの通知(F)を出しているので、実際に空フレームを音声復号化部18へ渡さずに音声復号化部18において同じフレームを2回使う又はからフレームを用意して音をつなげるようにしても良い。
このように、ジッタバッファ部17で間延び処理が発生した場合には、間延び処理が発生したことを音声復号化部18に通知できるので、音声復号化部18において音声データの間延び処理位置に対して滑らかに音を繋げるような処理を行うことができ、自然な音声調整が実現される。また、簡単な計算で廃棄パケット(フレーム)量を所望の範囲内に収めて音声劣化を防止することができる。
次に、バッファ領域の縮小による間引き処理について説明する。本実施の形態では、ジッタ値に余裕のある状況(例えばジッタ値≦−2)が所定期間連続したらバッファ縮小処理を行うようにしている。
図11に横軸に受信フレーム数をとり、縦軸に受信パケットジッタ値をとったある区間(2600番付付近から3000番付近)のグラフを示す。同図に示すように、2640番目付近から2830番目付近の受信フレームは、ジッタ値が−2以下の状態で安定している。ジッタ値が小さい(マイナス)ということは、バッファ21に格納されてから出力されるまでの時間を短くできる余地があること意味する。すなわち、ジッタバッファでの伝送遅延を抑制する目的でIN pointer とOUT pointerの差を縮めることができる。そこで、ジッタバッファ縮小用変数Bとバッファ縮小係数βを用いて、ジッタ値が−2以下の状態が一定期間続いたらIN pointer とOUT pointerの差を縮める間引き処理を依頼し、ジッタ値を0近くまで縮めるものとした。
図12はバッファ縮小用変数Bを初期値からバッファ縮小係数βに応じて減じていき、しきい値(B=−1.8)に達したところでバッファ縮小処理を発生させた状態を示すグラフであり、横軸は図11に対応している。2640番目付近から2830番目付近は、ジッタ値が−2以下なので、B値が減じられている状態が判る。そして、B値がしきい値=−1.8に到達したところでB値がリセットされている。B値の初期値に応じてB値がしきい値=−1.8に到達するまでの時間(フレーム数)が異なる。すなわち、バッファ縮小処理が発生するまでの時間が異なる。
図13にB値の初期値としきい値(−1.8)に達するまでの時間との関係が示されている。初期値=0にするとしきい値(−1.8)に達するまで約140パケット(フレーム)分の時間を要することが判る。もちろん、バッファ縮小係数βも時間に影響している。
図14はバッファ縮小処理のフロー図である。バッファ縮小用変数Bの初期値は−1.5、バッファ縮小係数βの初期値は0.017を設定する。最初にジッタ値が−1以上であるか否か判定する(S201)。図11に示す区間Lにおいてはジッタ値≦−2のフレームが続いている。かかる区間では、ジッタ値≦−2であるのでステップS201からステップS202に進んでバッファ縮小係数βに基づいてB値を減じる計算を行う。図11の区間LではステップS201からステップS202へ進み、ステップS203を経由して繰り返しB値を減じていくことになる。そして、ステップS203の判断でB値がしきい値(−1.8)に到達したことが検出されたならば、その時点でジッタバッファ拡大・縮小判定部22は間引き「要」と判定してバッファ縮小処理依頼として間引き依頼(E)をジッタバッファ制御部23に出す(S204)。
ジッタバッファ制御部23は、ジッタバッファ拡大・縮小判定部22から出力された間引き依頼(E)を受けて、バッファ21のポインタを操作して、図15に示すように1フレームを除去するようなバッファ領域の縮小による間引き処理を実行する一方、音声復号化部18へ間引き処理が発生したことの通知(F)を出力する。
ステップS201の判定でジッタ値が−1以上であれば、B値の初期値設定ルーチンに入る。すなわち、B値がジッタ値以下か否か判定し(S205)、B値がジッタ値以下ならばB値の初期値としてジッタ値を設定する(S206)。この結果、B値が+1より大きい値に更新されたか否か判断する(S207)。B値が+1より大きい値であれば、B値の初期値を+1まで下げる操作を行う(S208)。
これにより、バッファ縮小用変数Bが小さすぎるためにバッファ縮小処理が頻繁に発生して音質が劣化する不具合を防止できる。
次に、パケットの入れ替えが発生した場合のバッファ縮小係数βの調整処理について説明する。本実施の形態では、現在の受信データと1つ過去の受信データの各シーケンス番号を比較して、パケットの入れ替えが検出されたときにバッファ縮小係数βを調整するものである。
バッファ縮小係数βは、初期値=0.017とし、バッファ縮小係数変更用変数をSとして、次式で計算する。
β=0.017−S×0.002
図16はバッファ縮小係数変更用変数Sによるバッファ縮小タイミングの変化を示す図である。S値が大きいほどバッファ縮小処理がかかりづらくなっている。なお、S値は通常はS=1に設定されている。
図17はバッファ縮小係数βの調整処理を示すフロー図である。同図に示すように、今回受信したパケットのシーケンス番号(N1)と前回受信したパケットのシーケンス番号(N0)とを比較する(S301)。パケットの入れ替えが発生していなければ、シーケンス番号は連続するはずであるので、常にN1−N0=1となるはずである。しかし、パケットの入れ替えにより1番目のパケットの後に3番目のパケットが受信され、次に2番目のパケットが受信されると、N1−N0の値が、2,−1,2となることになる。2パケット以上の入れ替えが発生すればさらに大きな数値を示すことになる。
そこで、ステップS301において、N1−N0≧2の判定を行っている。1パケット数以上の入れ替えが発生していれば、2以上の数値が現れる。N1−N0≧2と判定した場合は、バッファ縮小係数変更用変数SをS=N1−N0で更新する(S302)。しかし、S値が6以上であれば(S303)、S=6を最大値としてS=6を設定する(S304)。そして、更新したS値を使用してバッファ縮小係数βを更新する(S305)。
このように、パケットの入れ替えが発生したときにはパケット遅れの量に応じたS値にてバッファ縮小係数βを更新することにより、バッファ縮小処理をかかりづらくすることができる。
次に、パケット受信時処理の詳細について、図18のフロー図を参照して説明する。最初にジッタバッファ部17を初期化するか否か判断する(S401)。最初のパケットを受信したときに初期化することになる。次に、ジッタバッファ部17を初期化しなかった場合は、音声復号化部に連続nフレーム以上空のフレームを渡しているか否か判定し(S402)、nフレーム以上空のフレームを渡していればバッファ21のポインタを初期化する(S404)。また、ステップS401でジッタバッファ部17を初期化すると判定した場合はジッタバッファ部17の初期化を実行する(S403)。
次に、受信フレームの格納場所を決定する(S405)。これはパケット解析部16から受信パケットのタイムスタンプとフレーム数とを取得し、受信開始時又はリセット時を基準にして、タイムスタンプとフレーム数とから計算で求めることができる。
ステップS405で計算した格納場所がバッファ格納エリアの範囲内か否か判定する(S406)。OUT pointerとIN pointerとを比較し、格納位置(IN pointer)が最大バッファサイズを越えていれば、バッファ範囲外であると判断する。
また、格納場所にすでにデータが格納されているか否か判定する(407)。システムによっては同じデータを2回送信するので、タイムスタンプとフレーム数とから格納場所を計算すると同じデータは同じ格納場所が指定されることになるので2回目の受信時には同じデータがすでに存在することになる。そこで、同じデータがすでに格納されていれば当該データは廃棄し、格納場所にデータが格納されていなければ当該格納場所に格納する(S408)。
次に、フィルタ係数のリセットの必要性の有無を判定する(S409)。フィルタ係数とはバッファ縮小係数βのことである。バッファ縮小係数βはパケット毎にリセットされるので、例えばタイマで計測してパケット毎にバッファ縮小係数βを初期値に戻す処理を行っている(S410)。
次に、パケットの入れ替えが発生しているか否か判定し(S411)、パケットの入れ替えが検出された場合はバッファ縮小係数βの調整を行う(S412)。このステップS411、S412の処理の詳細は図17に示す通りである。
次に、バッファ拡大処理及びバッファ縮小処理を実行する(S413)。ステップS413におけるバッファ拡大処理の詳細は図9に示す通りであり、バッファ縮小処理の詳細は図14に示す通りである。
ステップS413の処理でバッファ拡大又はバッファ縮小判定がされていれば、それに応じて間延び処理依頼又は間引き処理依頼をジッタバッファ制御部23へ出力する(S414)。
次に、CODEC起動タイミングでの処理の詳細について、図19のフロー図を参照して説明する。
最初に、初期化後の最小遅延時間が経過したか否か判断する(S501)。本実施の形態では、初期遅延として30msを確保し、且つ2パケット目を受信したことを条件に、最小遅延時間が経過したと判断する。2パケット目を受信する前に1パケット目のフレームだけを音声復号化部へ渡すと、2パケット目の到着が遅れたときに音声データが途切れるのを防止するためである。最小遅延時間が経過するまでは空フレームを音声復号化部18へ出力する(S502)。
最小遅延時間経過した場合は、間延び処理又は間引き処理の依頼があるか否か判定し(S503)、依頼がきていればバッファ21のポインタを調整してバッファ拡大又はバッファ縮小処理を実行する(S504)。バッファ拡大又はバッファ縮小処理が完了したら、ジッタバッファ拡大・縮小判定部22へ完了を通知する(S505)。その後、バッファ21からOUT pointerで指示された格納場所のフレームを読み出して音声復号化部18に対して出力する(S506)。
本発明は、ジッタを吸収するためにフレームの間引き/間延び処理が必要な場合であっても復号化側で音を滑らかに繋ぐことができ、インターネットプロトコルを利用したパケットネットワークにおける受信パケットのバッファリングシステムに適用可能である。
IP電話網のネットワーク構成図 図1に示すIP電話機の構成図 図2に示すジッタバッファ部の構成図 (a)ジッタバッファ部におけるパケット受信後のフロー図、(b)ジッタバッファ部におけるCODEC起動時のフロー図 (a)バッファ構成図、(b)OUT pointerとIN pointerによるバッファ管理を示す図、(c)パケットジッタを説明するための図、(d)ジッタバッファ遅延を示す図 分散を持つパケットを受信した場合の測定遅延の頻度を示す図 受信フレーム数とパケットジッタ値との関係を示す図 受信フレーム数とバッファ拡大用変数との関係を示す図 バッファ拡大処理の詳細を示すフロー図 バッファ拡大処理の概念図 受信フレームとジッタ値との関係を示す図 受信フレームとバッファ縮小用変数との関係を示す図 受信パケット数とバッファ縮小用変数との関係を示す図 バッファ縮小処理の詳細を示すフロー図 バッファ縮小処理の概念図 受信パケット数とバッファ縮小係数変更用変数との関係を示す図 バッファ縮小係数の変更処理の詳細を示すフロー図 パケット受信処理時の詳細を示すフロー図 CODEC起動時の詳細を示すフロー図
符号の説明
10 音声入力部
11 音声出力部
13 パケット送受信部
14 音声符号化部
15 パケット形成部
16 パケット解析部
17 ジッタバッファ部
18 音声復号化部
21 バッファ
22 ジッタバッファ拡大・縮小判定部
23 ジッタバッファ制御部

Claims (7)

  1. パケット通信網からパケットを受信する受信部と前記受信したパケットの音声データを復号化する音声復号化部との間で、前記音声データの間延び又は間引き処理を行うジッタバッファ部のジッタバッファ制御方法であって、
    前記ジッタバッファ部の判定部において、受信パケットから取り出されてバッファに格納された音声データに対して前記受信パケットのジッタ値から間延び又は間引きの要否を判定する工程と、間延び又は間引き「要」と判定した場合、間延び又は間引き依頼を発生する工程とを、パケット受信動作に同期して実行し、
    前記ジッタバッファ部の制御部において、前記判定部から間延び又は間引き依頼を受けて前記バッファ内の音声データに対して間延び又は間引き処理を実行する工程と、間延び又は間引き処理を実行した後の音声データが前記バッファから前記音声復号化部へ受け渡される前までに、当該音声データに間延び又は間引き処理が行われたことを知らせる間延び又は間引き処理の発生を前記音声復号化部へ通知する工程とを、前記音声復号化部における音声データの音声復号化動作に同期して実行することを特徴とするジッタバッファ制御方法。
  2. 間延び処理では、バッファ領域が拡大するようにバッファポインタを操作し、間引き処理では、バッファ領域が縮小するようにバッファポインタを操作することを特徴とする請求項1記載のジッタバッファ制御方法。
  3. バッファ拡大用変数Aを認容ロス係数αに基づいて任意の初期値から減じていき、バッファ拡大用変数Aがしきい値に到達する前にデータ廃棄が発生するジッタ値を検出したら間延び「要」と判定することを特徴とする請求項2記載のジッタバッファ制御方法。
  4. バッファ縮小用変数Bをバッファ縮小係数βに基づいて任意の初期値から減じていき、バッファ縮小用変数Bがしきい値に到達したら間引き「要」と判定することを特徴とする請求項2記載のジッタバッファ制御方法。
  5. 受信パケットの到着順位の入れ替えが検出された場合、前記バッファ縮小係数βをバッファ縮小がかかりづらい方向に調整することを特徴とする請求項4記載のジッタバッファ制御方法。
  6. パケット通信網からパケットを受信する受信部と前記受信したパケットの音声データを復号化する音声復号化部との間で、前記音声データの間延び又は間引き処理を行うジッタバッファであって、
    受信パケットから取り出された音声データが格納されるバッファと、
    パケット受信動作に同期して、前記受信パケットのジッタ値から間延び又は間引きの要否を判定すると共に間延び又は間引き「要」と判定した場合、間延び又は間引き依頼を発生する判定部と、
    前記音声復号化部における音声データの音声復号化動作に同期して、前記判定部から間延び又は間引き依頼を受けて前記バッファ内の音声データに対して間延び又は間引き処理を実行すると共に間延び又は間引き処理を実行した後の音声データが前記バッファから前記音声復号化部へ受け渡される前までに、当該音声データに間延び又は間引き処理が行われたことを知らせる間延び又は間引き処理の発生を前記音声復号化部へ通知する制御部と、を具備するジッタバッファ。
  7. パケット通信網に対してパケットの送受信を行うパケット送受信部と、入力音声をパケット化して前記パケット送受信部へ渡して送信させる送信部と、前記パケット送受信部が受信した受信パケットから音声データを取り出して復号化し音声出力する受信部と、を備え、前記受信部に請求項6記載のジッタバッファを備えたIP電話機。
JP2003292671A 2003-08-12 2003-08-12 ジッタバッファ制御方法及びip電話機 Expired - Fee Related JP4174017B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003292671A JP4174017B2 (ja) 2003-08-12 2003-08-12 ジッタバッファ制御方法及びip電話機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003292671A JP4174017B2 (ja) 2003-08-12 2003-08-12 ジッタバッファ制御方法及びip電話機

Publications (2)

Publication Number Publication Date
JP2005064873A JP2005064873A (ja) 2005-03-10
JP4174017B2 true JP4174017B2 (ja) 2008-10-29

Family

ID=34369910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003292671A Expired - Fee Related JP4174017B2 (ja) 2003-08-12 2003-08-12 ジッタバッファ制御方法及びip電話機

Country Status (1)

Country Link
JP (1) JP4174017B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4800250B2 (ja) * 2007-03-27 2011-10-26 Kddi株式会社 必要十分な受信バッファサイズを決定するパケット受信装置、方法及びプログラム
WO2008142736A1 (ja) 2007-05-21 2008-11-27 Fujitsu Limited 中継装置、及び中継方法
JP5836733B2 (ja) 2011-09-27 2015-12-24 沖電気工業株式会社 バッファ制御装置、バッファ制御プログラム及び通信装置
CN114640754B (zh) * 2022-03-08 2024-06-14 京东科技信息技术有限公司 视频抖动检测方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
JP2005064873A (ja) 2005-03-10

Similar Documents

Publication Publication Date Title
EP2936770B1 (en) Apparatus and methods for controlling jitter buffer
US7457282B2 (en) Method and apparatus providing smooth adaptive management of packets containing time-ordered content at a receiving terminal
US20050180405A1 (en) Sub-packet insertion for packet loss compensation in voice over IP networks
US20050243846A1 (en) Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
EP0921666A2 (en) Speech reception via a packet transmission facility
JP2005269632A (ja) 通信端末装置、電話データ受信方法、通信システムおよびゲートウェイ
JP2007511939A5 (ja)
JP2008085798A (ja) 音声伝送装置
US7450593B2 (en) Clock difference compensation for a network
JP4699947B2 (ja) 通信端末装置
JP2008005392A (ja) 通信端末装置およびバッファ制御方法
JP4174017B2 (ja) ジッタバッファ制御方法及びip電話機
JP2006050488A (ja) 通信端末装置およびバッファ制御方法
KR100346008B1 (ko) 지연 요동 흡수 장치 및 방법
JP3833490B2 (ja) データ伝送において発生する遅延ジッタを吸収する装置および方法
EP1340344B1 (en) Latency management for a network
JP2000151694A (ja) 音声ゆらぎ補正制御方法、並びに音声再生装置および音声中継装置
JP4400571B2 (ja) 異種通信網間接続における符号化データの処理方法及びゲートウェイ装置
JP3910083B2 (ja) 音声パケット通信装置、トラフィック予測方法、及び音声パケット通信装置の制御方法
JP4050961B2 (ja) パケット型音声通信端末
JP2007116283A (ja) パケット送受信システム、パケット送受信装置および経過時間測定方法
JP5330183B2 (ja) パケット挿入削除方法及び通話システム
Cho et al. Performance analysis of reconstruction algorithms for packet voice communications
KR101418354B1 (ko) 음성 통신 시스템에서 플레이아웃 스케줄링 방법 및 장치
JPH10200580A (ja) 音声パケット再生方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080422

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080722

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080815

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees