JP3633542B2 - パケット受信回路およびパケット受信方法 - Google Patents
パケット受信回路およびパケット受信方法 Download PDFInfo
- Publication number
- JP3633542B2 JP3633542B2 JP2001324511A JP2001324511A JP3633542B2 JP 3633542 B2 JP3633542 B2 JP 3633542B2 JP 2001324511 A JP2001324511 A JP 2001324511A JP 2001324511 A JP2001324511 A JP 2001324511A JP 3633542 B2 JP3633542 B2 JP 3633542B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- delay time
- delay
- packet
- packet receiving
- 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 - Lifetime
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、音声パケット通信等のリアルタイム・データ( 画像、音声等) の受信技術に関し、特に、伝送ネットワークで発生するパケット到来間隔の揺らぎを吸収するパケット受信回路および受信方法の改良に関する。
【0002】
【従来の技術】
LANネットワークや複数のATM交換ノードを含むATMネットワークを介して伝送するATM通信システム等では、音声や映像等のリアルタイム・データが一定間隔でトラフィックが発生するCBRトラフィックとして搬送される。
【0003】
例えば図7に概略ブロック図で示す通信システムにおいて、画像、音声あるいはこれらの同時通信をパケット通信回線を用いて行う場合、送信側端末装置20´では、伝送すべき画像を画像入力部21´で取り込みこの画像信号を画像符号化部22´で、通信に適切な圧縮・符号化等を行った情報に変換し、この情報が送信部23´へ渡される。
【0004】
送信部23´では、RTPプロトコルを使用して受信側端末装置40´へ画像情報を伝送するために、まずRTPパケット組立部(明示なし)にて、該画像情報に必要なヘッダ等の情報を付与してRTPパケットを生成する。生成されたRTPパケットは、UDPパケット組立部(明示なし)にて、ヘッダ等の情報が付与されUDPパケットが生成される。生成されたUDPパケットは、パケット送信部(明示なし)より適宜のパケット通信回線30´へと送出される。
【0005】
インターネット等のパケット通信回線30´は、一般に複数の通信中継装置(ル−タ等)を含み構成されておりUDPパケットは、これらの通信中継装置を経由して所定経路で受信側端末装置40´へ搬送される。
【0006】
受信側端末装置40´では、パケット通信回線30´を介して到達したパケットを受信部41´で受け取る。受信部41´では、まず、パケット受信部(明示なし)が通信回線よりパケットを受信する。次に、UDPパケット分解部(明示なし)にて、受信したUDPパケット内よりRTPパケットを抽出する。更にRTPパケット分解部(明示なし)において抽出されたRTPパケットから画像情報部分のみを取り出し、画像復号化部42´にて、復号化・伸長をしてデータの復元を行い、画像出力部43´より画像信号が出力される。
ところで、インターネット等でCBRセルを搬送する上で大きな影響を及ぼすのは、受信側端末に到達するまでの時間(遅延)及び、そのジッタ(遅延の変化)である。遅延の増加は、リアルタイム性を損なう。また、ジッタが大きいとCBRセル受信側では音声等が再生できなくなることがある。
【0007】
遅延自体を抑える為に、LAN等のパケット通信回線を構成する個々のルータでは、例えばIPパケットを優先的に処理する技術が実用化されている。しかし、ネットワークの輻輳や同種の優先処理機能を有さないルータの介在等が原因でネットワーク内部でCDV(Cell Delay Variation :セル遅延揺らぎ)が発生する。上記パケットに対するCDV(ジッタ)が発生した場合、こうした優先処理技術をサポートしたルータでも、これを吸収することができない場合もあり、受信側端末装置にはジッタを伴ってデータが伝送される。
【0008】
ネットワーク上で発生したジッタにより、CBRセル受信側で音声等が再生できなくなるという問題を解決する一手段として、セル受信部にネットワーク内部で発生したCDVを吸収する為のバッファを用いて、一定時間セルの蓄積を行い付加遅延を加えることでCDVを吸収しCBR通信としての品質を保っている。
【0009】
一般にこの種のA/Vストリームの再生側装置は、再生側では、受信パケットストリームを揺らぎを吸収した連続データとして再生させるため、受信パケットを一定時間蓄積する多段のFIFOメモリ(以下では、単にバッファとも記載する)を備えている。
【0010】
ここで、ネットワークで発生するパケット到来間隔の揺らぎを抑制するための、同期化バッファを用いた従来方式について図8を用いて簡単に説明する。図8は、従来の音声パケットの再生側装置におけるFIFOメモリ1Aの動作を説明する図である。なお、同図は関連する要部のみを図示している。図中で、受信信号aは、パケット揺らぎが発生するネットワークから再生側装置が受信したパケットデータを図示しないヘッダ分離部でヘッダ情報と分離して得られる音声データである。FIFOメモリ1Aは、揺らぎ吸収用のバッファであり、順次入力される音声データを蓄積するとともに図示しない制御部により制御されて蓄積データを入力順に所定遅延を付加して出力する。FIFOメモリ1Aから音声再生部への送信信号cは、FIFOメモリ1Aのセンタ位置から出力される。送信信号cは、図示しない適宜の音声復号回路のD/A 変換器と同じ一定クロックに同期して送出されて、音声復号回路を経てアナログ音声が再生される。
【0011】
なお、同様の技術は、ネットワークを構成する中継装置にも適用されている。例えば、特開平8−163150号公報には、上記と同様のシェーピング手段を用いてATM交換ノード(ATMスイッチ)の出力段にてCBRセルのCDVを吸収する方式が提案されている。
【0012】
しかしながら、上に挙げた従来技術はいずれもCDV吸収の為に、常に一定時間だけ、セルをFIFOメモリ(バッファ)に蓄積するようになっている。一般的にATMネットワーク内部で発生するCDV値は受信装置では予測が困難であるため、従来はFIFOメモリに蓄積させるセルの量は、セル蓄積遅延によりアプリケーションにて不具合が発生しない程度の値が一律に決定されていた。
【0013】
受信装置に、例えば400ms のバッファを用いた場合には、パケット揺らぎ± 200msを吸収可能であるが、仮にパケット揺らぎが安定している場合でも一定の遅延が付加される。すなわち、この場合であれば、必ず再生遅延時間が200ms と大きくなってしまうという難点があった。
【0014】
また、データ送出してきた相手側のA/Dのサンプリングクロックが、再生側のD/Aクロックとは異なるような非同期クロックの場合には、そのクロック周波数の差に起因して、時間の経過に伴って送信データ数と受信データの数に差が出てしまうため、いずれある一定時間が経過するとFIFOメモリでのアンダーラン、もしくはオーバランが発生して音声データが不連続となり、ノイズや途切れを発生してしまう問題点がある。これらの問題点は、音声に限らずリアルタイム・データのパケット通信一般に共通する問題点である。
【0015】
【発明が解決しようとする課題】
従って、本発明は、音声等のリアルタイム・データのパケット通信において従来見られた、ネットワークで発生するパケット到来間隔の揺らぎによる、パケットを受信する再生側でのパケットのスリップに起因したデータの不連続性による品質劣化、例えば音声データであれば不連続な音声波形によるクリックノイズや音声の途切れを防止して、改善された良質なデータ再生が可能であり、且つ、データの再生遅延を最小最適値に制御して再生遅延時間を極力少なくするパケットの受信再生回路を提供することを目的としている。
【0016】
【課題を解決するための手段】
課題解決のために請求項1の発明では、パケット受信回路を、受信したパケット信号のデータを蓄積するデータバッファと、前記データバッファに蓄積された一連のデータ群を入力とし前記データ群から導かれるデータを出力するデジタルフィルタとしての積和演算器と、前記データバッファの受信データ数と出力データ数との比較により前記積和演算回路へ入力する前記データ群を指示するデータポインタの位置制御および前記積和演算器のデジタルフィルタ係数を可変して遅延量を制御する遅延制御器とを備えた構成とする。
【0017】
請求項2の発明では、請求項1に記載のパケット受信回路において、前記積和演算器は、その係数が、sinc関数に窓関数を乗じた係数であり、前記係数を前記遅延制御器により可変制御可能に構成され、1 サンプル未満の微少精度で遅延量が可変できる微少可変遅延器(遅延量=Nサンプル±δ)として機能するようにする。請求項3の発明では、請求項2記載の発明において、前記窓関数をハミング関数とする。
【0018】
請求項4の発明では、請求項1〜3のいずれかのパケット受信回路において、前記積和演算器が、前記データ受信開始時には、所定の遅延時間で機能し、遅延出力開始後には微少に遅延時間を短くしていき、予め設定した最小遅延時間値に到達したら遅延時間を当該最小遅延時間値に固定するようにする。
【0019】
請求項5の発明では、請求項4に記載のパケット受信回路において、前記積和演算器が、前記最小遅延時間値で動作中に受信データ数 < 送信データ数となった場合には、前記積和演算器は遅延時間を1データ分減らし、その後、微少に遅延時間を多くしていき、最小遅延値に戻るまで可変させるようにする。
【0020】
請求項6の発明では、請求項4に記載のパケット受信回路において、前記積和演算器が、前記最小遅延時間値で動作中に受信データ数 > 送信データ数となった場合には、前記積和演算器は遅延時間を1データ分増やし、その後、微少に遅延時間を少なくしていき、最小遅延値に戻るまで可変させるようにする。
る。
【0021】
また、請求項7の発明は、パケット受信回路の制御方法において、受信したパケット信号のデータを順次蓄積する過程と、前記蓄積された一連のデータ群を入力とし前記データ群をデジタルフィルタ処理した送信データを順次出力する過程と、受信したデータ数と出力したデータ数との比較に応じて前記入力とするデータ群を指示するとともにデジタルフィルタ処理の係数を処理毎に指定する過程とを含むことを特徴とする。
【0022】
請求項8の発明は、請求項7のパケット受信方法において、前記デジタルフィルタ処理の係数が、sinc関数に窓関数を乗じた係数であり、当該係数を可変制御して1 サンプル未満の微少精度で遅延量(遅延量=Nサンプル±δ)を可変して出力することを特徴とする。請求項9の発明は、請求項8に記載のパケット受信方法において、前記窓関数をハミング関数とする。
。
【0023】
請求項10の発明は、請求項7〜9のいずれかのパケット受信方法において、データ受信開始時には、デジタルフィルタ処理し所定の遅延時間で送信データを出力し、遅延出力開始後には微少に遅延時間を短くしてデジタルフィルタ処理して送信データを出力し、予め設定した最小遅延時間値に到達したら遅延時間を当該最小遅延時間値に固定してデジタルフィルタ処理して送信データを出力することを特徴とする。
【0024】
請求項11の発明は、請求項10に記載のパケット受信方法において前記最小遅延時間値で動作中に受信データ数 < 送信データ数となった場合には、遅延時間を1データ分減らし、その後、微少に遅延時間を多くしていき、最小遅延値に戻るまで可変させることを特徴とする。
【0025】
請求項11の発明は、請求項10に記載のパケット受信方法において、前記最小遅延時間値で動作中に受信データ数 > 送信データ数となった場合には、遅延時間を1データ分増やし、その後、微少に遅延時間を少なくしていき、最小遅延値に戻るまで可変させることを特徴とする。
【0026】
【発明の実施の形態】
〔実施例〕次に、実施例を挙げ図面に基づき本発明について詳細に説明する。以下では、音声パケット再生回路を例に本発明のパケット受信回路を説明する。図1は、本発明の一実施例である音声パケット再生回路の要部構成を示したブロック図である。
【0027】
この音声パケット再生回路は、FIFOメモリ1、バッファレジスタ2、制御器7、積和演算器10、D/A変換器5、およびスピーカ6を含み構成されている。制御器7は、カウンタ8および制御信号出力部9で構成されている。また積和演算器10は、乗算器部3および加算器4により構成されている。
【0028】
FIFOメモリ1は、レジスタ1−1〜1−nからなるシフトレジスタで構成されている。FIFOメモリ1の先頭のレジスタ1−1の入力には、受信信号aが入力される。レジスタ1−1の出力は、レジスタ1−2に入力される。レジスタ1−2の出力は、レジスタ1−3に入力される。以下同様に、レジスタ1−(i−1)の出力は、次段のレジスタ1−iに入力される。iは2以上でn以下である自然数である。
【0029】
FIFOメモリ1の任意の連続した複数(実施例では9)のレジスタの格納データは、バッファレジスタ2を介して積和演算器10に入力される。この積和演算器10における後述する所定処理による得られる結果に基づいて、FIFOメモリ1のデータが順に積和演算器10を介して送出信号cとして、D/A変換器5へと出力されスピーカ6により音声が再生される。
【0030】
FIFOメモリ1は、制御器7により生成される制御信号hに応答して、一部のデータ群を積和演算器10へと出力し、積和演算器10ではこれらデータ群を基に送信信号cに変換して、この送信信号cがD/A変換器5へと出力される。上記制御信号bは、受信信号aと送信側クロック信号dとに基づいて制御器7により生成される。
【0031】
積和演算器10は、バッファメモリ2および制御器7に接続されて、微少可変遅延を実現する機能を備えたものである。ここで微少可変遅延とは、1サンプルデータ単位の遅延ではなく、より細かい微少遅延の設定(遅延量=±δ)を可変できるものを指す(例えば、1/256 サンプルデータ刻みの遅延が可能なもの)。
【0032】
実施例の積和演算器10は、乗算器部3と加算器4で構成されている。積和演算器10も前記制御部7の制御信号bにより制御される。乗算器部3は、9つの乗算器3−1〜3−9を含み構成されている。FIFOメモリ1の格納データのうちで、制御部7からのポインタ指定で決まる所定位置から9つのデータが、バッファレジスタ2を介して前記9つの乗算器3−1〜3−9にそれぞれ入力される。
【0033】
例えば、バッファレジスタ2−1の出力は、乗算器3−1に入力される。レジスタ2−2の出力は、乗算器3−2に入力される。以下同様に、レジスタ2−jの出力は、乗算器3−j(jは9以下の自然数)に入力される。乗算器3−1〜3−9の各演算出力は、加算器4に入力される。加算器4の演算出力が、所定量遅延された送信信号cとして出力される。
【0034】
積和演算器(微少可変遅延器)10では、FIFOメモリ1から入力した一部のデータ群を元に、後で詳述するデジタルFIR フィルタリング処理を行う。すなわち、積和演算器4はr次のFIR(Finite Impulse Response)フィルタとして機能する。rは3以上の自然数であって、本実施例ではr=9である。
【0035】
乗算器3−1〜3−9は、制御信号bに応答して演算を行う。乗算器3−1は、データD1に係数A1(q)を乗じて加算器4に出力する。乗算器3−2は、データD2に係数A2(q)を乗じて加算器4に出力する。以下同様に、乗算器3−jは、データDjに係数Aj(q)を乗じて加算器4に出力する。
【0036】
乗算器3−1〜3−9のそれぞれが乗算に使用する係数A1(q)〜A9(q)は、制御信号bにより乗算器3−1〜3−9のそれぞれに伝達されるδ(q)により決定される。積和演算器(デジタルフィルタ)内のインパルス応答係数には、sinc関数を用いている。 sinc 関数とは次式のものである。
sinc(x)=sin(x)/x
グラフを図2に示す。
【0037】
ここでは、説明を簡単にするため、実施例に用いたFIR (Finite Impulse Response) を9次で構成した場合を考える。sinc関数(図2参照)において、FIR 係数初期値( 固定値) は、
A=(A1,A2,A3,A4,A5,A6,A7,A8,A9)=(0, 0, 0, 0, 1, 0, 0, 0, 0)
とする。図3の●印点それぞれの係数である。この係数は、シングルインパルスとなる係数であり、FIR 9 次の出力は、5サンプルディレイとなる。
【0038】
これを、例えば4.75サンプルデイレイにしたい場合であれば、δ= π/4ずらした係数を用いることで実現する。図2の×印点の係数である。
A=(sinc(−4π+ δ), sinc(−3π+ δ), ..., sinc(3π+ δ), sinc(4 π+ δ))
【0039】
また、sinc関数は左右に無限長の関数なので、有限長のFIR フィルタの係数として用いる場合には、さらに、この係数に窓掛け処理を行ったものを係数とすることで、周波数特性を保証できる。
【0040】
具体的には、窓関数h[i]は、ハミング関数であることが可能である。一般的なハミング窓は下式である。
h[i]=0.54 − 0.46 * cos( 2 π*i/n )
ここで、n は、FIR フィルタの次数である。
【0041】
図3に、サンプリング周波数16kHz の場合で、 FIR次数32、δ= π/8( ディレイ分解能1/8 サンプル) 、ハミング窓処理有りの条件での、周波数変動特性を示す。7kHz帯域までは、ほぼフラットな特性が保持されている。
【0042】
なお、h[i]は他の窓関数、であることが可能である。h[i]に窓関数、特に、ハミング関数を使用することにより、遮断周波数以下において積和演算器10の利得が周波数に依存しないようにすることができる。また、h[i]は、h[i]=1であることも可能である。
【0043】
積和演算器によるデジタルフィルタ係数により、遅延量=Nサンプル±δの遅延器を実現することができ、FIFOメモリ2の出力するデータポインタの位置と上述フィルタ係数とを可変にすることで、可変遅延器が構成される。
●●以下はどうするか↓↓
【0044】
ここで、積和演算器10が行う演算についてより詳細に説明する。乗算器3−1〜3−9が乗算する係数Aj(q)は、次式(1)で表される。
【0045】
【数1】
【0046】
係数Aj(q)は、窓関数を因数として有するが窓関数は周波数特性にのみ作用し、積和演算器(フィルタ)の動作の本質とは関係がない。簡単のため以下の説明では、窓関数は1であるとして説明を行う。
【0047】
δ(q)は、クロックパルスPq(qは0以上の任意の整数)がカウンタ8に入力される毎に更新される。そのため、前記乗算器3−1〜3−9のそれぞれが乗算に使用する係数A1(q)〜A9(q)もクロックパルスPqがカウンタ8に入力される毎に更新される。従って送信サンプルデータyもクロックパルスP0〜Pmがカウンタ8に入力される毎に更新される。クロックパルスPqがカウンタ8に入力されたときに生成される送信サンプルデータyを、以後y(q)と記載する。
【0048】
送信サンプルデータy(q)は、次式(2)で表される。
【0049】
【数2】
ここで、Dj(q)は、クロックパルスPqがカウンタ8に入力されたときに、レジスタ2−iが保持しているデータDjである。ここで、クロックパルスPqがカウンタ8に入力された時までに入力された受信サンプルデータx(p)のうち、最も直前にレジスタ2−1に入力された受信サンプルデータをx(p’)とする。
【0050】
このとき、D1(q)=x(p’)である。D2(q)=x(p’−1)である。以下、同様にして、Dj(q)=x(p’−{j−1})である。
即ち、次式(3)
【0051】
【数3】
となる。
【0052】
まず、δ(q)=0であるときを考察する。δ(q)=0のときの係数Aj(q)の値が図2に示されている。ただし、窓関数h[i]はh[i]=1、k=5である。j≠kのとき、Aj(q)=0である。j=kのとき、Aj(q)=1である。
【0053】
式(3)より、y(q)=x(p’−(k−1))、即ち、y(q)=x(p’−4)が得られる。この式の意味することは次のとおりである。
【0054】
δ(q)=0のまま、積和演算器10及びカウンタ8に、受信サンプルデータx(p−4)、x(p−3)、x(p−2)、x(p−1)、x(p)が順次入力されたとする。その直後に、クロックパルスPqがカウンタ8に入力されたとする。p’=pである。このとき、y(q)=x(p−4)となる。
【0055】
即ち、積和演算器10は受信サンプルデータx(p−4)を4サンプル遅延した後、受信サンプルデータx(p−4)を送信サンプルデータy(q)として出力する。このように、δ(q)=0の場合、積和演算器10は、送信サンプルデータを(k−1)サンプル遅延して送信サンプルデータy(q)として出力する。
【0056】
δ(q)=0の場合、各Aj(q)(jは1から9の自然数)は、受信サンプルデータx(p)を(k−1)サンプル遅延するように決定される。積和演算器10は、レジスタ2−1〜2−2、乗算器3−1〜3−9及び加算器4を用いて送信サンプルデータを演算する。演算の結果、送信サンプルデータは(k−1)サンプル遅延される。
【0057】
同様に、δ(q)=1であるときの係数Aj(q)の値が図4に示されている。ただし、窓関数h[i]はh[i]=1、k=5である。δ(q)=1である場合、j≠k+1(=6)のときAj(q)=0である。j=k+1(=6)のときAj(q)=1である。式(3)より、y(q)=x(p’−5)が得られる。すなわち、δ(q)=1のとき、積和演算器10は、受信サンプルデータx(p)を5サンプル遅延して送信サンプルデータy(q)として出力する。このとき、各Aj(q)(jは1から9の自然数)は、受信サンプルデータx(p)を5サンプル遅延するように決定されている。
【0058】
以上の議論はδ(q)が整数でない場合にも拡張される。δ(q)=0.25の場合の係数Aj(q)の値が図5に示されている。k=5である。このとき、各Aj(q)(jは1から9の自然数)は、受信サンプルデータx(p)が実質的に4.25サンプル遅延されるように決定される。積和演算器10は、受信サンプルデータx(p)を実質的に4.25サンプル遅延し、送信サンプルデータy(q)として出力する。
【0059】
以上に述べられたように、積和演算器10は、受信サンプルデータx(p)を(k−1)+δ(q)サンプルだけ遅延する遅延器である。δ(q)が整数でない場合、積和演算器10は、実質的に受信サンプルデータx(p)を(k−1)+δ(q)サンプル相当分だけ遅延したものに相当するデータを、送信サンプルデータy(q)として出力する。
【0060】
積和演算器10の遅延サンプル数(k−1)+δ(q)は、カウンタ8に入力され蓄積された受信サンプルデータx(p)の数と、カウンタ8に入力される送信側クロック信号dに含まれるクロックパルスPqの数に応答して調整される。
【0061】
制御器7は、カウンタ8とこのカウンタ8と入出力可能に接続された制御信号出力部9とで構成されている。カウンタ8には前記受信信号aと送信側クロック信号(再生クロックパルス)dが別個の入力端子より入力されている。またカウンタ8の別の入力には制御信号出力部9からの出力信号gが入力されている。カウンタ8の出力信号fは制御信号出力部9に接続されている。
【0062】
制御信号出力部9には、前記送信側クロック信号dも入力されている。制御信号出力部9の出力信号bは、前記バッファレジスタ群2および前記乗算器部3に接続されており、別の出力信号hは前記FIFOメモリ1に接続されている。出力信号hはFIFOメモリに出力ポインタ位置を指定して連続するデータ群を出力させる。
【0063】
制御器7における制御信号bの生成の過程を説明する。受信信号aがカウンタ8に入力される。カウンタ8は、カウンタ値K(整数でない値を取り得る)を保持し、受信サンプルデータx(p)(pは0以上の任意の整数)が入力されるたびにカウンタ値Kを1だけ増加する。
【0064】
カウンタ8には送信側クロック信号dも入力される。送信側クロック信号dは、図6に示されているように、クロックパルスP0、P1、P2…、Pq、…を含んでいる。qは0以上の任意の整数である。クロックパルスP0は、時刻t=t0’にカウンタ8に入力される。ここで、t0<t0’であるとする。クロックパルスP1は、時刻t=t1’にカウンタ8に入力される。以下同様に、クロックパルスPqは、それぞれ時刻t=tq’にカウンタ8に入力される。
【0065】
カウンタ8は、クロックパルスPq(qは0以上の任意の整数)のいずれかが入力される毎にカウンタ値Kを1だけ減じる。クロックパルスP0が入力され、その値を1だけ減じられた後のカウンタ値Kは、制御値δ(0)となる。同様に、クロックパルスPqが入力され、その値を1だけ減じられた後のカウンタ値Kは、制御値δ(q)となる。制御値δ(q)は、カウンタ信号fにより、制御信号出力部9に伝達される。
【0066】
制御信号出力部9には、送信側クロック信号dが入力されている。送信側クロック信号dの含むクロックパルスPq(nは0以上の任意の整数)が制御信号出力部9に入力される時刻は、カウンタ8に入力される時刻と実質的に同じである。
【0067】
制御信号出力部9は、クロックパルスP0が入力されると、制御値δ(0)を取り込む。同様に、クロックパルスPqが入力されると、制御値δ(q)を取り込む。qは0以上の任意の整数である。制御信号出力部9は、クロックパルスPqが入力されると、制御値δ(q)を制御信号bにより積和演算器10に伝達する。
【0068】
制御信号出力部9は、制御信号bにより積和演算器10にδ(q)(qは0以上の任意の整数)を伝達した後、カウンタ制御信号gをカウンタ8に出力する。このカウンタ制御信号gは、カウンタ値KをΔxだけ増加し、又は、Δxだけ減ずることをカウンタ8に指示する信号である。0<Δx<0.5である。
【0069】
カウンタ制御信号gに応答してカウンタ8は次のような動作を行う。−Km≦δ(q)≦Km(qは0以上の任意の整数)のとき、カウンタ8は、カウンタ値Kをそのまま保持する。Kmは0以上の整数である。δ(q)>Kmのとき、カウンタ8はカウンタ値KをΔxだけ減ずる。δ(q)<−Kmのとき、カウンタ8はカウンタ値KをΔxだけ増加する。Δxは、整数でない。従って、カウンタ値Kは整数でない値を取り得る。カウンタ値KがΔxだけ増加され、又は、Δxだけ減ぜられた結果(カウント値)は、次にクロックパルスPq+1が入力された時に制御信号bが伝達する制御値δ(q+1)に反映される。カウンタ8に保持されるカウンタ値Kは、整数以外の値を取り得るので、制御値δ(q+1)も(qは0以上の任意の整数)整数以外の値を取り得る。
【0070】
これまで説明した、音声パケット再生回路の各機能部は独立して個々に構成してもよいが、CPUあるいはDSP、およびメモリを中心としたLSI群と所定の実行プログラムで複数の機能部を複合させた形態で実現することができる。この場合FIFOメモリ1やバッファレジスタ2は、所定メモリのメモリ空間に割り当てた領域として実現することができる。
【0071】
続いて、実施例のパケット再生回路の動作について詳述する。受信信号aは、FIFOメモリ1と制御器7のカウンタ8に入力される。受信信号aは、デジタル音声信号である。受信信号aは、図6に示されているように、受信サンプルデータx(0)、x(1)、…、x(p)、…を含む(pは0以上の任意の整数)。各受信サンプルデータx(p)(pは0以上の任意の整数)のそれぞれは16ビットで構成される。なお、受信サンプルデータが構成されるビット数は、各部を対応する構成とすれば異なるビット数であっても良い。
【0072】
時刻t=t0において、受信サンプルデータx(0)がFIFOメモリ1に入力・蓄積されるとともに制御器7のカウンタ8に入力される。次に時刻t=t1において、受信サンプルデータx(1)がFIFOメモリ1と制御器7に入力される。以下同様に、時刻t=tpにおいて、受信サンプルデータx(p)はFIFOメモリ1に入力・蓄積されるとともに制御器7にも入力される。なお、t0<t1<…<tp<tp+1<…である。
【0073】
受信信号aは、FIFOメモリ1のレジスタ(1−1)〜(1−n)に順次蓄積される。本パケット再生回路の動作開始時には、FIFOメモリ1に入力される受信信号(入力データ)aの受信サンプルデータx(0)、x(1)、…、x(p)は、一旦所定個数まで蓄積される。
【0074】
最初に、受信サンプルデータx(p)がレジスタ1−1に入力されると、レジスタ1−1はx(p)を取り込んで記憶する(pは0以上の整数)。同レジスタ1−1の保持値D1=x(p)となる。同時に、レジスタ1−2の保持するデータD2はD2=x(p−1)となる。レジスタ1−3の保持するデータD(3)はD3=x(p−2)となる。以下同様に、受信サンプルデータx(p)がレジスタ1−1に入力されたとき、レジスタ1−jの保持するデータDjは、Dj=x(p−{j−1})となる。jは自然数である。即ち、受信サンプルデータx(p)がレジスタ1−1に入力されると、その他のレジスタ1−iは、受信サンプルデータx(p)がレジスタ1−1に入力された時点でレジスタ1−(i−1)が保持していたデータを取り込んで保持する。
【0075】
このようにして、受信サンプルデータx(0)、x(1)、…、x(p)、…が、先ず所定個数(蓄積初期値)まで蓄積される。この蓄積初期値には、パケット再生回路の遅延量が充分長くなる個数が設定されている。例えば、通話開始時には、パケット再生回路での遅延量が200ms (初期遅延時間値)となる個数の入力データがFIFOメモリ1に蓄積される。
【0076】
そして、入力データが蓄積初期値になると音声再生が開始される(通話開始)。すなわち、遅延量が初期遅延時間値となる個数の入力データがFIFOメモリ1に蓄積されると、FIFOメモリ1の蓄積データは、蓄積順(入力順)に、バッファレジスタ2に出力される。そして、レジスタ1−1は、保持するデータD1を乗算器3−1に出力する。レジスタ1−2は、保持するデータD2を乗算器3−2に出力する。以下同様に、レジスタ1−jは、保持するデータDjを対応する乗算器3−jに出力する。こうして、レジスタ(1−j)から、1−(j−8)が保持するデータ群が乗算器部へと入力される。加算器4は、乗算器3−1〜3−9それぞれの演算結果の和をとり、送信サンプルデータyとする。受信サンプルデータy(q)は受信信号cによりD/A変換器5に伝達される。こうして、蓄積された受信データが送信側クロックdに同期した制御信号bに応答しながら積和演算器10によって順に送信信号cに変換される。
【0077】
実施例では、上述変換過程での遅延量が制御される。まず、変換動作開始時には遅延時間が、微小ずつ連続的に短くなるように制御される。そして、予め設定した最小遅延時間値( 例えば40ms) に到達したら固定される。以降の変動に対しては、最小遅延時間を維持するように制御される。
【0078】
まず、通話開始時には、(受信データ数−最小蓄積データ数)> 送信データ数であるから、微少に(例えば、遅延分解能を1/256 サンプル分)遅延時間を減らしていき、最小遅延時間に戻るまで可変させる。そして遅延時間が最小遅延時間になると固定値A=(0, 0, 0, 0, 1, 0, 0, 0, 0) の5サンプルディレイとなる(定常状態)。この間、送信サンプルデータy(n)、y(n+1)、…は連続的に変化することになる。受信サンプルデータx(m)、x(m+1)…、及び、送信サンプルデータy(n)、y(n+1)、…がデジタル音声信号である場合、D/A変換器5により再生される音声信号eは、不連続になることがない。
【0079】
そして、定常状態になった後、(受信データ数−最小蓄積データ数)< 送信データ数、となった場合(FIR演算出力しようとした際に、1サンプル分データが少なかった場合) には、
(1.)δ= πとする。A=(0, 0, 0, 0, 0, 1, 0, 0, 0)
a3のみが1で他は0 となるので、FIR 9次の出力は、5サンプルディレイから4サンプルデイレイに変わる( 出力ポインタが−1されたのと同様の効果) 。
【0080】
(2.)その後、微少に遅延時間を増やしていき、最小遅延時間に戻るまで可変させる。例えば、遅延分解能を1/256 サンブルとしておけば、256 サンプル時間経過後に、固定値A =(0, 0, 0, 0, 1, 0, 0, 0, 0)の5サンプルディレイに戻る。この間、送信サンプルデータy(n)、y(n+1)、…は連続的に変化することになり、D/A変換器5により再生される音声信号eは、不連続にならない。
【0081】
また、定常状態になった後に、(受信データ数−最小蓄積データ数)> 送信データ数、となった場合 (FIR演算出力しようとした際に、1サンプル分以上データが多く来ていた場合) には、
(1.)δ=−πとする。A=(0, 0, 0, 1, 0, 0, 0, 0, 0)
a5のみが1で他は0となるので、FIR 9次の出力は、5サンプルディレイから6サンプルデイレイに変わる( 出力ポインタが+1されたのと同様の効果) 。
【0082】
(2.)その後、微少に遅延時間を減らしていき、最小遅延時間に戻るまで可変させる。例えば、遅延分解能を1/256 サンプルとしておけば、256 サンプル時間(サンプル周期×256 )経過後に、固定値A=(0, 0, 0, 0, 1, 0, 0, 0, 0) の5サンプルディレイに戻る。この間、送信サンプルデータy(n)、y(n+1)、…は連続的に変化し、D/A変換器5により再生される音声信号eは、不連続にならない。
【0083】
積和演算器10から出力される送信信号cは、D/A変換器5に入力される。D/A変換器5には、更に、送信側クロック信号dが入力されている。D/A変換器5は送信側クロック信号dに応答して送信信号cを処理する。
【0084】
D/A変換器5は、図6に示すように、クロックパルスP0がD/A変換器5に入力されると、送信信号cに含まれる送信サンプルデータy(0)を取り込む。同様に、クロックパルスPq(qは0以上の任意の整数)がD/A変換器5に入力されると、D/A変換器5は、送信サンプルデータy(q)を取り込む。このようにD/A変換器5は、一のクロックパルスが入力されるごとに一の送信サンプルデータyを受信する。
【0085】
D/A変換器5は、取り込んだ送信サンプルデータy(q)からアナログ音声信号eを生成して、このアナログ音声信号eをスピーカ6に出力する。スピーカ6は、アナログ音声信号eに応答して音声を出力する。
【0086】
なお、この種回路では、送信側端末のサンプリング周波数と、受信側端末のサンプリング周波数が微小に異なる場合に生じる不都合が生じる。このような場合には、カウンタ8に入力される受信サンプルデータx(p)の数とカウンタ8に入力される送信側クロック信号dに含まれるクロックパルスPqの数とが常時異なることになり、データの不連続が生じる。実施例回路は、上述した動作によってこの不都合を回避することができる。
【0087】
このとき、カウンタ8に入力される受信サンプルデータx(p)の数とカウンタ8に入力される送信側クロック信号dに含まれるクロックパルスPqの数との差が1となるのに要するクロックパルスPqの数をnPとする。本実施例のパケット再生回路は、nP>1/Δxである限り、受信する送信サンプルデータy(n)、y(n+1)、…を連続的に変化させる。
【0088】
例えば、16kHzのサンプリング周波数で送受信を行おうとする場合に、送信側端末のサンプリング周波数と受信側端末のサンプリング周波数とで、4Hzの差が生じたとする。受信側端末が約400回受信しようとする毎に、送信側端末が送信する送信サンプルデータの数と、受信側端末が受信しようとする受信サンプルデータの数との差が1だけ異なることになる。このとき、400>(1/Δx)、即ち、Δx>0.0025である限り、本実施例のパケット再生回路は、送信サンプルデータy(n)、y(n+1)、…を連続的に変化させることができる。
【0089】
これは、実施例のパケット再生回路の再生クロックと、送信側装置の基準クロックとに差があっても、再生音声に顕著な不連続性は現れないことを意味する。Δxは、nP>1/Δxの条件を満たす範囲内で、なるべく小さいことが望まれる。送信サンプルデータy(n)、y(n+1)、…をより連続的に変化することができるからである。具体的には、16kHzのサンプリング周波数で送受信を行うデジタル音声通信においては、(1/Δx)が256程度であることが望ましい。
【0090】
実施例によれば、上述したような構成と制御を用いることで、パケットの到達揺らぎによる音声波形不連続のノイズ音や音声途切れを出すことなく、且つ、最小遅延時間での声再生が可能となる。
【0091】
なお、実施例ではデジタル音声信号の信号受信回路として使用されているが、本発明はデジタル音声信号以外の信号受信回路として使用されることも可能である。例えば、非同期の通信端末間でのデジタル映像信号の信号受信回路として適用することが可能である。
【0092】
また、以上の説明では、受信側端末の再生装置を説明したが、同様の技術をネットワークの中継装置に応用することができる。この場合にも、当該装置へのパケットの到達揺らぎを吸収し、且つ、最小遅延時間でのデータセル伝送が可能となる。
【0093】
本発明の信号受信回路は、送信された信号を完全に再生する必要はないが、信号波形の連続性及び時間軸の連続性を要求されるような信号の信号受信回路として使用して好適である。
【0094】
【発明の効果】
本発明によれば、パケット受信回路において以上のような構成と制御を用いることにより、パケットの到達揺らぎによる音声波形不連続のノイズ音や音声途切れを出すことなく、且つ、最小遅延時間での声再生が可能となる。
また、遅延時間変更時には、単純な1サンプルの挿抜ではなく、微少遅延(1/256サンプル) 単位の可変が可能であるため、音声波形の連続性が保たれ、データ不連続によるノイズを発生するようなことがない。
【図面の簡単な説明】
【図1】本発明の一実施例の音声パケット再生回路の要部を示すブロック図である。
【図2】本発明に用いているデジタルFIR フィルタのインパルス応答係数(sinc関数)を示す説明図である。
【図3】本発明に用いているデジタルFIR フィルタ係数の変動周波数特性を示す図である。
【図4】本発明に用いているデジタルFIR フィルタのインパルス応答係数(sinc関数)を示す説明図である。
【図5】本発明に用いているデジタルFIR フィルタのインパルス応答係数(sinc関数)を示す説明図である。
【図6】受信サンプルデータx(p)、クロックパルスP0、送信サンプルデータy(q)を示す図である。
【図7】本発明に係る通信システムの一例を示す概略ブロック図である。
【図8】従来の音声パケットの再生側装置におけるFIFOメモリの動作を説明する図である。
【符号の説明】
1…FIFOメモリ
1−1〜1−n…レジスタ
2…バッファレジスタ
3…乗算器部
3−1〜3−9…乗算器
4…加算器
5…D/A変換器
6…スピーカ
7…制御器
8…カウンタ
9…制御信号出力部
10…積和演算器
a…受信信号
c…送信信号
Claims (12)
- 受信したパケット信号のデータを蓄積するデータバッファと、
前記データバッファに蓄積された一連のデータ群を入力とし前記データ群から導かれるデータを出力するデジタルフィルタとしての積和演算器と、
前記データバッファの受信データ数と出力データ数との比較により前記積和演算回路へ入力する前記データ群を指示するデータポインタの位置制御および前記積和演算器のデジタルフィルタ係数を可変して遅延量を制御する遅延制御器と、を備えたことを特徴とするパケット受信回路。 - 前記積和演算器は、その係数が、sinc関数に窓関数を乗じた係数であり、
前記係数を前記遅延制御器により可変制御可能に構成され、
1 サンプル未満の微少精度で遅延量が可変できる微少可変遅延器(遅延量=Nサンプル±δ)として機能する、ことを特徴とする請求項1に記載のパケット受信回路。 - 前記窓関数は、ハミング関数である請求項2に記載のパケット受信回路。
- 前記積和演算器が、前記データ受信開始時には、所定の遅延時間で機能し、遅延出力開始後には微少に遅延時間を短くしていき、予め設定した最小遅延時間値に到達したら遅延時間を当該最小遅延時間値に固定することを特徴とする請求項1〜3のいずれか1項に記載のパケット受信回路。
- 前記積和演算器が、前記最小遅延時間値で動作中に受信データ数 < 送信データ数となった場合には、前記積和演算器は遅延時間を1データ分減らし、その後、微少に遅延時間を多くしていき、最小遅延値に戻るまで可変させる、ことを特徴とする請求項4に記載のパケット受信回路。
- 前記積和演算器が、前記最小遅延時間値で動作中に受信データ数 > 送信データ数となった場合には、前記積和演算器は遅延時間を1データ分増やし、その後、微少に遅延時間を少なくしていき、最小遅延値に戻るまで可変させる、ことを特徴とする請求項4に記載のパケット受信回路。
- パケット受信回路の制御方法であって、
受信したパケット信号のデータを順次蓄積する過程と、
前記蓄積された一連のデータ群を入力とし前記データ群をデジタルフィルタ処理した送信データを順次出力する過程と、
受信したデータ数と出力したデータ数との比較に応じて前記入力とするデータ群を指示するとともにデジタルフィルタ処理の係数を処理毎に指定する過程と、を含むことを特徴とするパケット受信方法。 - 前記デジタルフィルタ処理の係数が、sinc関数に窓関数を乗じた係数であり、
当該係数を可変制御して1 サンプル未満の微少精度で遅延量(遅延量=Nサンプル±δ)を可変して出力することを特徴とする請求項7に記載のパケット受信方法。 - 前記窓関数は、ハミング関数である請求項8に記載のパケット受信方法。
- データ受信開始時には、デジタルフィルタ処理し所定の遅延時間で送信データを出力し、遅延出力開始後には微少に遅延時間を短くしてデジタルフィルタ処理して送信データを出力し、
予め設定した最小遅延時間値に到達したら遅延時間を当該最小遅延時間値に固定してデジタルフィルタ処理して送信データを出力することを特徴とする請求項7〜9のいずれか1項に記載のパケット受信方法。 - 前記最小遅延時間値で動作中に受信データ数 < 送信データ数となった場合には、遅延時間を1データ分減らし、その後、微少に遅延時間を多くしていき、最小遅延値に戻るまで可変させる、ことを特徴とする請求項10に記載のパケット受信方法。
- 前記最小遅延時間値で動作中に受信データ数 > 送信データ数となった場合には、遅延時間を1データ分増やし、その後、微少に遅延時間を少なくしていき、最小遅延値に戻るまで可変させる、ことを特徴とする請求項10に記載のパケット受信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001324511A JP3633542B2 (ja) | 2001-10-23 | 2001-10-23 | パケット受信回路およびパケット受信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001324511A JP3633542B2 (ja) | 2001-10-23 | 2001-10-23 | パケット受信回路およびパケット受信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003134159A JP2003134159A (ja) | 2003-05-09 |
JP3633542B2 true JP3633542B2 (ja) | 2005-03-30 |
Family
ID=19141229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001324511A Expired - Lifetime JP3633542B2 (ja) | 2001-10-23 | 2001-10-23 | パケット受信回路およびパケット受信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3633542B2 (ja) |
-
2001
- 2001-10-23 JP JP2001324511A patent/JP3633542B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003134159A (ja) | 2003-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3506960B2 (ja) | パケット処理装置及びパケット処理プログラムを記録した記憶媒体 | |
US7079486B2 (en) | Adaptive threshold based jitter buffer management for packetized data | |
EP1143671B1 (en) | Device and method for reducing delay jitter in data transmission | |
JP5174182B2 (ja) | 再生遅延推定 | |
US20050180405A1 (en) | Sub-packet insertion for packet loss compensation in voice over IP networks | |
US7949015B2 (en) | Clock skew compensation | |
JP2002505048A (ja) | パケットデータネットワークによる双方向ビデオ通信 | |
US20070008984A1 (en) | Buffer management system, digital audio receiver, headphones, loudspeaker, method of buffer management | |
Singh et al. | Jitter and clock recovery for periodic traffic in broadband packet networks | |
JP2000253014A (ja) | データ受信装置、これに用いられるソースクロック再生方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3633542B2 (ja) | パケット受信回路およびパケット受信方法 | |
JP3833490B2 (ja) | データ伝送において発生する遅延ジッタを吸収する装置および方法 | |
EP1340344B1 (en) | Latency management for a network | |
JP2004282692A (ja) | ネットワーク電話機および音声復号化装置 | |
JP2004264497A (ja) | 音声復号装置 | |
EP1142257A1 (en) | Response time measurement for adaptive playout algorithms | |
JPH0630043A (ja) | 音声パケット通信方式 | |
JP5330183B2 (ja) | パケット挿入削除方法及び通話システム | |
JP5234845B2 (ja) | パケット送受信装置、方法及びプログラム | |
JP2002051031A (ja) | 同期データ伝送装置 | |
JP2004320569A (ja) | データ伝送装置 | |
JP2001251368A (ja) | 信号受信回路及び信号受信方法 | |
JPH04362827A (ja) | パケット通信方式 | |
Çelikadam | Design and development of an internet telephony test device | |
JP2000092122A (ja) | 音声伝送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041201 |
|
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: 20041207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3633542 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 9 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |