JP4597826B2 - 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP4597826B2 JP4597826B2 JP2005269638A JP2005269638A JP4597826B2 JP 4597826 B2 JP4597826 B2 JP 4597826B2 JP 2005269638 A JP2005269638 A JP 2005269638A JP 2005269638 A JP2005269638 A JP 2005269638A JP 4597826 B2 JP4597826 B2 JP 4597826B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- amount
- transmission
- capture
- clock
- 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.)
- Active
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
(1)構成
図1は本発明の通信装置内での処理を制御するクロックを説明するための説明図である。一方の通信装置Aと相手方の通信装置Bとの間でパケットの送受信を行い、双方向通信を行っている。通信装置Aは、キャプチャ・送信処理を行う送信機能部1、受信・再生処理を行う受信機能部2、基準クロック発生部5及び制御クロック発生部6を含む。基準クロック発生部5は通信装置Aの送受信処理を制御する基準クロックを発生し、制御クロック発生部6は基準クロックに基づいて制御クロックを発生する。ここで、制御クロックとは、少なくとも第1読出クロック、第2読出クロック及び送信クロック(図1中イタリック体で記載された3つのクロック)を含む。つまり、少なくとも第1読出クロック、第2読出クロック及び送信クロックは基準クロックに基づいて生成される。
(2)基準クロックのずれ時間Δtの調整
相手方の通信装置Bは、自分の基準クロックに基づく送信クロックで通信装置Aにパケットを送信している。よって、通信装置Aは、相手方の通信装置Bの基準クロックに基づく送信クロックでパケットを受信して受信バッファ9に蓄積している。ここで、通信装置Aと通信装置Bとの基準クロックとにずれがある場合は、受信バッファ9内のデータ量が不安定となり受信機能部2において安定に出力することができない。そこで、通信装置Aは、自身の基準クロックと相手方の通信装置Bの基準クロックとのずれ時間Δtを算出して、ずれ時間Δtをなくすように基準クロック自体の調整又は受信バッファからのデータの読出量を調整する。
通信装置Aは、例えば通信装置Bとの通信開始時に通信装置Bによるパケットの送信に関連する送信情報を取得している。ここで、パケットの送信に関連する送信情報とは、パケットのシーケンシャル番号やパケットの送信間隔を含む情報である。また、パケットの送信間隔とは、相手方の通信装置のパケットの送信間隔そのもの、あるいは何個のパケットをどのような送信間隔で送信するかなどに関する情報などである。具体的に例を挙げると、通信装置A及びB間での通信開始時に、通信装置Aは、相手方の通信装置Bからデータのサンプリング周波数と、1パケットのデータサイズと、1サンプルあたりのバイト数smpと圧縮方式などを示すデータフォーマットとを送信情報として受信しているとする。例えば、サンプリング周波数が32kHz、1パケットのデータサイズが256バイト、データフォーマットが1サンプルあたり2バイトで圧縮無しである場合、パケット送信間隔は次のように算出される。
=256/(32000×2)=4ms
通信装置Aは、例えばパケット100個を受信するのに要する理論時間Trstdを、通信装置Bからのパケットの送信間隔に基づいて算出する。次に、通信装置Aは、実際にパケット100個を受信するに要した受信時間ΔTrを測定する。ここで、通信装置Aは、受信時間ΔTrを自分の基準クロックCLKaに基づいて取得している。一方、理論時間はTrstdは、相手方の通信装置Bのパケットの送信間隔に基づいて算出しているため、通信装置Bの基準クロックCLKbに基づいている。よって、受信間隔ΔTrと理論時間Trstdとの差分を算出することで、通信装置Aと相手方の通信装置Bとの基準クロックのずれ時間Δtを算出することができる。
次に、再生バッファ10からのデータの出力処理における通信装置Bの基準クロックとのずれ時間Δtを調整する方法について説明する。
前述のずれ時間Δtの調整により第1読出クロックを相手方の通信装置Bの基準クロックに合わせることができる。よって、再生バッファ10には、相手方の通信装置の基準クロックに基づいて受信バッファから読み出されたデータが書き込まれる。ここで、通信装置Aは、再生バッファ10内のデータ量を所定量に調整する。つまり、再生バッファ10から読み出されていくデータ量を調整することで再生スピードを調整する。これにより、再生スピードを相手方の基準クロックに対応するように調整することができる。再生スピードの調整としては、例えば再生クロックの調整、再生周波数の調整及び受信バッファ9から読み出したデータの間引き・補完等が挙げられる。
次に、キャプチャバッファ7でのデータのキャプチャ処理における通信装置Bの基準クロックとのずれ時間Δtを調整する方法について説明する。
前述のずれ時間Δtの調整により第2読出クロック及び送信クロックを相手方の通信装置の基準クロックに合わせることができる。よって、キャプチャバッファ7及び送信バッファ8からは相手方の通信装置Bの基準クロックに基づいてデータが読み出される。ここで、通信装置Aは、キャプチャバッファ7内のデータ量を所定量に調整する。つまり、キャプチャバッファへ蓄積されていくデータ量を調整することでキャプチャスピードを調整する。これにより、キャプチャスピードを相手方の基準クロックに対応するように調整することができる。キャプチャスピードの調整としては、例えばキャプチャクロックの調整、キャプチャ周波数の調整及び取得したデータの間引き・補完等が挙げられる。
このように基準クロックに基づいて送受信処理が制御されている場合には、受信側処理及び送信側処理をともに相手方の基準クロックに合わせて行うことができる。そのため、双方向通信におけるリアルタイム通信の品質を高めることができる。
また、受信側処理の第1読出クロック、送信側処理の送信クロック及び第2読出クロックが同一の基準クロックに基づいて形成されている。よって、自分の通信装置Aの基準クロックと相手方の通信装置Bの基準クロックとのずれ時間Δtが分かれば、受信機能部2と送信機能部1とが別個独立してずれ時間Δtの調整が可能である。
(6)ずれ時間Δtの調整方法の場合分け
図3はずれ時間Δtの調整方法の場合分けを示す説明図であり、パターンとしては例えば次の3種類が挙げられる。
パターンAの場合、基準クロック自体の調整によりいずれの制御クロックの調整もできない(ステップS1、S2参照)。ここで、第1読出クロック、第2読出クロック及び送信クロックが基準クロックに基づいて生成されている。しかし、基準クロック自体の調整ができず、基準クロックから生成される第1読出クロック、第2読出クロック及び送信クロックを調整することができない。また、再生クロック及びキャプチャクロックは、基準クロックに基づいて生成されていないため、基準クロック自体の調整ではそれらのクロックを調整することができない。
(6−2)パターンB
パターンBの場合、基準クロック自体の調整によりいずれの制御クロックの調整も可能である(ステップS1、S5参照)。よって、基準クロック自体の調整により、第1読出クロック、再生クロック、キャプチャクロック、第2読出クロック及び送信クロックにおける相手方の基準クロックとのずれを調整する。ここで、再生スピードの調整は再生クロックの調整により行われており、キャプチャスピードの調整はキャプチャクロックの調整により行われている。そのため、前述のステップS4の調整は行わなくても良い。
(6−3)パターンC
パターンCの場合、基準クロック自体の調整により、少なくとも第1読出クロック、第2読出クロック及び送信クロックにおいて、相手方の通信装置Bの基準クロックが調整されている(ステップS1、S2、S6参照)。しかし、再生クロック及びキャプチャクロックのクロック自体の調整が行われていないので、再生スピードの調整及びキャプチャスピードの調整により相手方の基準クロックとのずれを調整する必要がある(ステップS4参照)。
まず、上記パターンAの場合を例に挙げて第1実施形態例を説明する。つまり、第1実施形態例に係る通信装置では、基準クロック自体の調整により制御クロックの調整ができない。
(1)機能構成
図4は、本発明の第1実施形態例に係る通信装置の機能構成図である。通信装置Aは、通信の相手方の通信装置B(図示せず)とLANなどのネットワーク3を介して接続されている。通信装置Aは、送信機能部1、受信機能部2及びクロック機能部4を含む。送信機能部1は、キャプチャ処理及び送信処理を含む送信側処理を行う。受信機能部2は、受信処理及び再生処理を含む受信側処理を行う。クロック機能部4は、通信装置内の受信側処理及び送信側処理に用いられるクロックを制御する。以下に、送信機能部1、受信機能部2及びクロック機能部4の構成について説明する。
まず、クロック機能部4について説明する。クロック機能部4は、ずれ時間Δt算出部81、Tclk算出部82、基準クロック発生部83、制御クロック発生部84、キャプチャクロック発生部85及び再生クロック発生部86を含む。
(a)ずれ時間Δt算出部
図5は、ずれ時間Δtの算出方法を示す説明図である。ずれ時間Δt算出部81は、受信間隔取得部67から理論時間Trstd及び受信間隔ΔTrを取得し、その差分からずれ時間Δtを算出する。ここで、理論時間Trstdは、1つのパケット群を構成する所定数k(k自然数でk≧2)個のパケットを受信するのに要する理論時間である。受信間隔取得部67は、受信部41が相手方の通信装置Bから受信した送信間隔に関連する送信情報に基づいて理論時間Trstdを算出する。理論時間Trstdは、相手方の通信装置Bのパケットの送信間隔に基づいて算出しているため、通信装置Bの基準クロックCLKbに基づいている。一方、受信間隔ΔTrは、実際に受信部41が所定数k個のパケットを受信するのに要した時間であり、受信間隔取得部67が通信装置Aの基準クロックCLKaに基づいて取得する。
(b)Tclk算出部
Tclk算出部82は、ずれ時間Δt算出部81から取得したずれ時間Δtに基づいて、ずれ時間Δtが1msになる時間Tclkを算出する。そして、Tclk算出部82は、ずれ時間Δtを受信機能部2及び送信機能部1に送信する。
ここでは、Tclkの算出にあたって“1ms”を用いているが、単に計算の基準として最適な時間として1msを用いているだけであり、1msに限定されない。
(c)基準クロック発生部、制御クロック発生部
基準クロック発生部83は、通信装置Aの送受信処理を制御する基準クロックを発生する。制御クロック発生部84は基準クロックに基づいて各種の制御クロックを発生する。第1実施形態例の制御クロックとは、第1読出クロック、第2読出クロック及び送信クロックである。ここで、第1読出クロックとは、後述の受信バッファ43に蓄積されている符号化データを読み出す際に用いるクロックである。第2読出クロックとは、後述のキャプチャバッファ17に蓄積されているディジタルデータを読み出す際に用いるクロックである。送信クロックとは、後述の送信バッファ25に蓄積されている符号化データを読み出す際に用いるクロックである。
再生クロック発生部86は、後述のDAC53が再生バッファ51に蓄積されているディジタルデータを読み出して、アナログデータに変換する際に用いる再生クロックを発生する。キャプチャクロック発生部85は、後述のADC15がアナログデータをディジタルデータに変換する際に用いるキャプチャクロックを発生する。
次に、受信機能部2の構成について説明する。受信機能部2は、受信部41、受信バッファ43、受信バッファ読出部45、復号化部47、間引き・補完部49、再生バッファ51、DAC53、増幅器55、出力部57、受信バッファ量監視部59、受信バッファ読出制御部61、再生バッファ量監視部63、再生制御部65及び受信間隔取得部67を含む。
受信部41は、ネットワーク3を介して相手方の通信装置Bから送信されたパケットを受信する。パケットには、それぞれに含まれる符号化データの他に、パケットの送信に関連する送信情報やパケットのシーケンシャル番号が含まれている。ここで、パケットの送信に関連する送信情報とは、パケットのシーケンシャル番号やパケットの送信間隔を含む情報である。また、パケットの送信間隔とは、相手方の通信装置のパケットの送信間隔そのもの、あるいは何個のパケットをどのような送信間隔で送信するかなどに関する情報である。受信バッファ43は、受信部41が受信したパケットそれぞれに含まれる符号化データを一時的に蓄積する。受信バッファ量監視部59は、受信バッファ43に蓄積されている符号化データ量(以下、受信バッファ量という)を監視し、後述の受信バッファ読出制御部61に出力する。
受信バッファ読出部45は、制御クロック発生部84が生成した第1読出クロックに基づいて、受信バッファ43から符号化データを読み出す。なお、この第1読出クロックは、通信装置Aの基準クロックに基づいて生成されている。ここで、受信バッファ読出部45は、受信バッファ読出制御部61が決定した読出量に基づいて符号化データを読み出す。
復号化部47は、受信バッファ読出部45により受信バッファ43から読み出された符号化データを復号化及び伸長してディジタルデータとする。間引き・補完部49は、後述の再生制御部65において決定された間引き量及び補完量に基づいて、復号化部47により復号化されたディジタルデータを間引き又は補完する。再生バッファ51はこのディジタルデータを一時的に蓄積する。このように受信バッファ43から読み出されたディジタルデータを間引き又は補完することにより、再生バッファ量が所定量になるように調整する。これにより、相手方の基準クロックに応じた再生スピードに調整することができる。
なお、受信バッファ43及び再生バッファ51をともに設けることで、再生バッファ51への書き込み間隔を調整することができる。例えば、パケットの受信間隔は2msであるが、再生バッファ51への書き込み間隔を8msとする場合には、パケット4つ分を1グループとして受信バッファ43に蓄積しておき、1グループ毎に再生バッファ51へ書き込むことができる。特に、再生バッファ51への書き込み間隔に制限がかかった場合には、受信したデータを直接再生バッファ51に書き込むことができない場合がある。このような場合に受信したデータを一旦受信バッファ43に蓄積しておき、その後再生バッファ51に書き込むなどの処理を行うことができる。
(i)ずれ時間Δtの調整
受信バッファ読出制御部61は、受信バッファ量監視部59から受信バッファ量を取得するとともに、再生バッファ量監視部63から再生バッファ量を取得し、Tclk算出部82からずれ時間Δtに基づくTclkを取得する。そして、受信バッファ読出制御部61は、受信バッファ量、再生バッファ量及びずれ時間Δtに基づいて、通信装置Aと相手方の通信装置Bとの基準クロックのずれ調整するための受信バッファ43からの読出量を決定する。ここで、Tclk算出部81は、基準クロックのずれを表すずれ時間Δtが1msになる時間Tclkを算出し、受信バッファ読出制御部61はこのTclkを受信する。受信バッファ読出制御部61は、ずれ時間Δtに応じて読出量を増やしたり減らしたりする間隔Tpa(以下、読出量調整間隔Tpaという)をTclkに基づいて算出する。この受信バッファの読出量調整間隔Tpaは、次式で表すことができる。
ここで、第1読出クロック間隔Tread1とは、受信バッファ43から符号化データを読み出し再生バッファ51に書き込む間隔である。
通常、受信バッファ43からは第1読出クロック毎に符号化データが読み出される。基準クロックのずれ時間Δtを補正するために、第1読出クロック何回か毎、つまり読出量調整間隔Tpa毎にずれ時間Δt分だけ読出量を増減する。具体的に、受信バッファ読出制御部61は、まず通信装置Aの基準クロックと相手方の通信装置Bの基準クロックとのずれに基づいて、読出量を多くする(以下、プラス調整という)のか、減らす(以下、マイナス調整という)のか、プラスでもマイナス調整でもない(以下、ゼロ調整という)のかを決定する。例えば、ずれ時間Δtの正負に基づいて、又はずれ時間Δtに起因する受信バッファ量の増減に基づいてプラス調整又はマイナス調整を決定する。そして、受信バッファ読出制御部61は、プラス調整のときは+調整フラグFr+、−調整のときは−調整フラグFr−を立て、ゼロ調整のときはフラグを立てない。ここで、受信バッファ読出制御部61は、読出量調整間隔Tpaごとにプラス調整、マイナス調整又はゼロ調整を決定してフラグを設定する。そして、受信バッファ読出制御部61は、読出量調整間隔Tpa毎に、フラグの状態に基づいて読出量を決定する。
また、ずれ時間Δtが調整された第1読出クロックに基づいて受信バッファからデータを読み出していても、ネットワークのゆらぎ等によりパケットの到着が遅れたり、パケットは到着しているがパケットの受信処理が遅れるなどの状況により受信バッファ量が不安定となる場合がある。受信バッファ量を参照して受信バッファからの読出量を調整することで、このような状況が生じた場合であっても受信バッファ量を適正に保つことができる。よって、受信バッファにおけるオーバーフローやアンダーフローをさらに防止し、再生されるデータの品質を高めることができる。特に、上記構成によれば、通信装置内での処理が一定間隔で行われない可能性のあるマルチタスク環境であっても、受信バッファ量を一定に保つことができる。
また、受信バッファ読出制御部61は、受信バッファ量及び再生バッファ量に基づいて、再生バッファ量大フラグFpb、再生バッファ量小フラグFps及び逆転対策中フラグなど各種フラグを設定する。
(iii)再生スピード調整間隔
送受信バッファ読出制御部61は、再生バッファ量に基づいて再生スピードを調整する間隔である再生スピード調整間隔を調整する。後述のステップS59では、再生スピード調整間隔は規定数Nとして記述されており、例えば第1読出クロックのカウント数で表される。この規定数Nを大きくしたり小さくすることで、再生スピードを調整する間隔を調整する。例えば、再生スピード調整間隔を小さくすることで調整頻度を多くすることができる。
DAC53は、再生バッファ51に蓄積されているディジタルデータを再生クロックに応じて読み出して、アナログデータに変換する。本実施形態例においては、この再生クロックは、図4に示すように制御クロック発生部84の出力ではなく、基準クロックに基づいて生成されていないものとする。
このように、再生バッファ量を制御することで、再生バッファ51におけるオーバーフローやアンダーフローを防止し、再生されるデータの品質を高めることができる。例えば、通信装置においては、再生バッファ51へのデータの書き込み処理である再生処理自体が遅延したりする場合がある。このような状況が生じた場合であっても、再生バッファ量を参照して調整することで、再生バッファ量を適正に保つことができる。特に、通信装置に複数の機能が搭載されているために通信装置内での処理が一定間隔で行われない場合があるマルチタスク環境であっても、再生バッファ量を一定に保ち再生処理を安定に行うことができる。
DAC53により変換されたアナログデータは増幅器55により増幅され、スピーカなどの出力部57から空気中に拡声される。
(f)受信間隔取得部
受信間隔取得部67は、基準クロック発生部83から通信装置Aの基準クロックを受信している。そして、受信間隔取得部67は、1つのパケット群を構成する所定数k(k自然数でk≧2)個のパケットを受信するのに要した受信時間ΔTrを、通信装置Aの基準クロックに基づいて取得する。なお、受信部41がパケットそれぞれのシーケンス番号を取得しているため、受信間隔取得部67はこのシーケンス番号を参照して所定数k個分のパケットを受信したことを知ることができる。例えば、図5に示すように、通常のパケットはシーケンス番号順に送信されるため、シーケンス番号の間隔がk毎に、つまりシーケンス番号S0、Sk、S2k・・・のパケットを受信したときに受信時刻を取得する。そして、それぞれの受信時刻の差から1つのパケット群を構成する所定数k個のパケットを受信するのに要した時間として受信間隔ΔTrを算出する。また、受信間隔取得部67は、受信部41が受信した送信情報に基づいて、所定数k(k≧2)個のパケットを受信するのに要する理論時間Trstdを算出する。受信間隔取得部67は、例えば1つのパケットの送信間隔と所定数kとを掛け合わせることによって理論時間Trstdを算出する。
送信機能部1は、入力部11、増幅器13、ADC15、キャプチャバッファ17、キャプチャバッファ読出部19、間引き・補完部21、符号化部23、送信バッファ25、送信部27、キャプチャ制御部29、キャプチャバッファ量監視部31、キャプチャバッファ読出制御部33、送信バッファ量監視部35及び送信バッファ読出制御部37を含む。
マイクなどの入力部11に入力された音声は、アナログデータに変換される。増幅器13は、このアナログデータを増幅してADC15に出力する。
(b)ADC、間引き・補完部、キャプチャバッファ、キャプチャバッファ量監視部
ADC15は、増幅器13から入力されたアナログデータを、キャプチャクロックに応じてディジタルデータに変換してキャプチャバッファ17に出力する。本実施形態例においては、このキャプチャクロックは、図4に示すように制御クロック発生部84の出力ではなく、基準クロックに基づいて生成されていないものとする。また、ADC15は、後述のキャプチャ制御部29又はキャプチャクロック発生部85の制御に基づいて、アナログデータをディジタルデータに変換する。
(c)キャプチャバッファ読出部
キャプチャバッファ読出部19は、制御クロック発生部84が生成した第2読出クロックに基づいてキャプチャバッファ17からディジタルデータを読み出す。なお、この第2読出クロックは、通信装置Aの基準クロックに基づいて生成されている。ここで、キャプチャバッファ読出部19は、キャプチャバッファ読出制御部33が決定した読出量に基づいてディジタルデータを読み出す。
符号化部23は、読み出されたディジタルデータを符号化して符号化データとする。送信バッファ25はこの符号化データを蓄積する。送信バッファ量監視部35は、送信バッファ25に蓄積されている符号化データ量(以下、送信バッファ量という)を監視し、キャプチャバッファ読出制御部33に出力する。
送信部27は、送信バッファ25に蓄積されている符号化データを送信クロックに応じて読み出して、パケットを構成して相手方の通信装置Bに送信する。この送信クロックは、基準クロックに基づいて生成されている。
(f)送信バッファ読出制御部
(i)送信パケット数の決定
送信バッファ読出制御部37は、送信バッファ量及び/又は送信パケット調整数Npaに基づいて、送信バッファ25から相手方の通信装置Bへの送信パケット数を決定する。
送信バッファ読出制御部37は、送信バッファ量監視部35から送信バッファ量を取得し、Tclk算出部82からずれ時間Δtに基づくTclkを取得する。送信バッファ読出制御部37は、送信バッファ量及びずれ時間Δtに基づいて、通信装置Aと相手方の通信装置Bとの基準クロックのずれ調整するための送信バッファ25からの読出量を決定する。具体的には、送信バッファ25からの読み出すパケット数を決定する。
読出量調整間隔Tsa=Tclk×(送信クロック間隔Ts/1ms)
ここで、送信クロック間隔Tsとは、送信バッファ25から符号化データを読み出す間隔である。
(iii)送信バッファ量大フラグ、送信バッファ量小フラグ
送信バッファ読出制御部37は、送信バッファ量に基づいて送信バッファ量が大きいことを示す送信バッファ量大フラグFsb及び送信バッファ量が小さいことを示す送信バッファ量小フラグFssを設定する。
送信バッファ読出制御部37は、送信バッファ量に基づいてキャプチャスピードを調整する間隔であるキャプチャスピード調整間隔Nadjを調整する。このNadjを大きくしたり小さくすることで、キャプチャスピードを調整する間隔を調整する。例えば、キャプチャスピード調整間隔Nadjが第2読出クロックによる割り込み回数である。また、キャプチャスピード調整間隔Nadjを小さくすることで調整頻度を多くすることができる。
送信バッファ読出制御部37は、送信バッファ量及びキャプチャバッファ量に基づいてキャプチャスピードを調整するかしないかを示すキャプチャスピード調整フラグFadjを設定する。
(g)キャプチャバッファ読出制御部
キャプチャバッファ読出制御部33は、通信装置Aと相手方の通信装置Bとの基準クロックのずれ時間Δtをキャプチャバッファ17からの読出量により調整するためにその読出量を決定する。具体的に、キャプチャバッファ読出制御部33は、キャプチャバッファ量監視部31から取得したキャプチャバッファ量、送信バッファ量大フラグFsb及び送信バッファ量小フラグFssを参照して読出量を決定する。これにより、キャプチャバッファ17からの読み出しの処理における基準クロックのずれをキャプチャバッファ17からの読出量により補正する。
キャプチャ制御部29は、キャプチャバッファ量監視部31からキャプチャバッファ量を取得し、また送信バッファ読出制御部37が設定した送信バッファ量大フラグFsb、送信バッファ量小フラグFss、キャプチャスピード調整間隔Nadj、キャプチャスピード調整フラグFadjを参照してキャプチャバッファ量を所定量に調整する。上述の通り、キャプチャバッファ17からの読出量の調整により、キャプチャバッファ17からは相手方の通信装置Bの基準クロックに基づいてディジタルデータが読み出される。キャプチャ制御部29によってこのキャプチャバッファ17を所定量に調整することで、キャプチャバッファ17に書き込まれるディジタルデータ量を調整することができる。これにより、キャプチャスピードを相手方の通信装置Bの基準クロックに対応するように調整することができる。キャプチャスピードの調整としては、例えばキャプチャクロックの調整、キャプチャ周波数の調整及びキャプチャバッファ17から読み出したデータの間引き・補完等が挙げられる。
(2)パケット構成
図7は、送受信されるパケットの構成例である。パケットには、IPヘッダ、UDPヘッダ、RTPヘッダ及びディジタルデータが含まれている。IPヘッダには、送信元のIPアドレス、送信先のIPアドレスなどが記述されている。UDPヘッダには、送信元ポート番号、送信先ポート番号、メッセージ長などが記述されている。なお、IPパケットのデータ部にUDPパケットではなくTCPパケットを用いることもでき、その場合にはUDPヘッダに代えてTCPヘッダが用いられる。RTPヘッダには、例えば下記の情報が含まれている。
b)パディング
c)CSRC:CSRC識別子を何個含んでいるかを示す。
d)ペイロードタイプ
e)シーケンシャル番号:パケットの順番を示す。
h)CSRC:元の送信者の識別子リスト。
このようにパケットが構成されている場合、受信時間取得部67は、シーケンシャル番号に基づいて受信時間を取得する。
(3)処理
(3−1)受信側処理及びクロック制御処理
次に、前記構成を有する受信機能部2及びクロック機能部4が行う処理の流れについて詳細に説明する。
図8は、受信機能部2が行う受信処理の流れの一例を示すフローチャートである。通信装置Aの受信機能部2は、相手方の通信装置Bから通信の開始を示すコマンドを受信することにより、以下の処理を開始する。
ステップS11:受信部41は、通信の終了を示すコマンドを通信装置Bから受信したり、自装置での終了操作が行われたりするまで、以下の処理を行う。通信の終了を示すコマンドの受信や終了操作が行われると、処理を終了する。
ステップS13:受信部41は、受信したパケットが通信を開始したときの最初のパケットであるかを判断する。最初のパケットの場合ステップS14に進み、そうでない場合はステップS16に進む。
ステップS17:次に、受信バッファ量監視部59は、受信バッファ43に書き込み可能かを判断する。例えば経路中で複製されることなどにより受信パケットが重複していないかや、パケットの遅延等によりパケットの順番が入り替わってしまい、再生するタイミングに間に合うかどうかなどを判断する。書き込み可能である場合はステップS13に進み、書き込み不可である場合はステップS11に進む。ここで、再生タイミングを過ぎている場合にはパケットの破棄を行う。
ステップS19、S20:受信間隔取得部67は、シーケンシャル番号を参照してパケット群のうちk番目のパケットを受信していれば、受信部41において受信されたパケットの受信時刻Trnを、その通信装置A自身の基準クロックに基づいて取得する(S19)。ここで、受信間隔取得部67は、1番目のパケット群G1における所定数kカウント後の受信時刻としてTr1を取得する。また、この受信時刻Tr1は、2番目のパケット群G2における最初のパケットの受信時刻となる。つまり、n番目のパケット群Gnにおける最初のパケットの受信時刻としてTr(n-1)を取得し、それから所定数kカウント後の受信時刻としてTrnを取得する。前述のようにSN0=3である場合は、SNk=k+3となる。次に、後述のTclk算出処理及び読出量調整間隔の算出処理を行う(S20)。
ステップS22:受信部41は、受信したパケットに含まれる符号化データを受信バッファ43に書き込む。
(b)Tclk算出処理及び読出量調整間隔Tpaの算出処理
図9は、受信機能部2及びクロック機能部4が行うTclk算出処理及び読出量調整間隔Tpaの算出処理の流れの一例を示すフローチャートである。
(Tclk(n-1)−ΔTclk)≦Tclkn≦(Tclk(n-1)+ΔTclk)
この判断基準をΔTclkは、最初は大きい値に設定しておき、徐々に小さい値に設定していく。
ステップS36、S37:受信バッファ読出制御部61は、ずれ時間Δtに応じて読出量を増やしたり減らしたりする間隔である読出量調整間隔Tpaを、Tclkに基づいて算出し(S36)、再設定する(S37)。
図10は、受信バッファの読出量フラグ設定処理の流れの一例を示すフローチャートである。
ステップS41:受信部41は、通信装置Bからの通信の終了を示すコマンドの受信や自装置での終了操作が行われると、処理を終了する。
ステップS43:受信バッファ読出制御部61は、読出量調整間隔Tpaが経過するとずれ時間Δtが0かどうかを判断する。つまり、理論時間Trstdと受信時間ΔTrとの差が0であるかどうかを判断する。ずれ時間Δtが0でない場合は、ステップS44に進む。
ステップS45:ずれ時間Δt>0である場合、受信バッファ読出制御部61は、+調整フラグFr+を設定する。より具体的に説明すると、ずれ時間Δt>0である場合とは、時間軸上の1sという幅が相手方の通信装置Bよりも通信装置Aの方が大きく基準クロックが遅い場合である。そのため、同じ時間を測定する場合であっても、幅が狭い通信装置Bの基準クロックではより時間が長くなり、幅が広い通信装置Aの基準クロックでは短くなる。よって、通信装置Aの方が基準クロックが遅い分だけ受信バッファ43からの読出量を増やして基準クロックのずれを補うために、+調整フラグFr+を設定する。
(d)再生処理
図11は、受信機能部2が行う再生処理の流れの一例を示すフローチャートである。
ステップS53:第1読出クロックの割り込みがあれば、受信バッファ読出制御部61は、受信バッファ量監視部59から受信バッファ量Qrを取得するとともに、再生バッファ量監視部63から再生バッファ量Qpを取得する。また、再生制御部65も再生バッファ量監視部63から再生バッファ量Qpを取得する。
ステップS55:割り込みが初回である場合は、受信バッファ読出制御部61は、後述の再生スピード調整処理で用いる再生バッファ量比較基準Qpcmpとして、現在の再生バッファ量Qpを設定する。
ステップS57:受信バッファ読出制御部61は、受信バッファ43からの読出量算出処理を行う。この読出量算出処理では受信バッファ量及び再生バッファ量に基づいて、第1読出クロック毎の受信バッファ43からの読出量を決定する処理を行うとともに、受信バッファの読出量調整フラグに基づいて読出量調整間隔Tpaごとにずれ時間Δtをなくすための読出量を決定する処理を行う。
ステップS62:受信バッファ読出部45は、ステップS57で受信バッファ読出制御部61が決定した読出量に基づいて受信バッファ43から符号化データを読み出す。読み出された符号化データは、復号化されて再生バッファ51に書き込まれる。
図12は、受信機能部2が行う受信バッファ43からの符号化データの読出量算出処理の流れの一例を示すフローチャートである。
ステップS71:受信バッファ読出制御部61は、逆転対策中フラグFptが立っているかどうかによって再生バッファ逆転対策中かどうかを判断する。再生バッファ逆転対策中である場合はステップS72に進み、そうでない場合はステップS76に進む。
具体的に、受信バッファ読出制御部61は、再生バッファ51及び受信バッファ43において次のように処理を行うように指示する。受信バッファ読出制御部61は、再生バッファ51のWriteポインタがReadポインタより先の位置になるように進めるように再生制御部65に指示する。受信バッファ読出制御部61は、再生バッファ51においてWriteポインタを進めた分に対応するだけ、受信バッファ43のReadポインタを進めるように受信バッファ読出部45に指示する。つまり、Writeポインタを進めた分に対応するだけ受信した符号化データを破棄する。ここで、再生バッファ51及び受信バッファ43ともにポインタの位置関係が正常に戻ったら、再生バッファ逆転対策処理を終了する。ポインタが正常な位置関係に戻っていない場合は、再生バッファ逆転対策処理を継続する。
ステップS76:ステップS71において再生バッファ逆転対策中ではないと判断された場合は、再生バッファ逆転対策処理が必要かどうかを判定する。WriteポインタがReadポインタよりも先に来た場合は、再生バッファ量が最小になった後、急激に増加して逆転基準Qprvs以上となる。よって、受信バッファ読出制御部61は、再生バッファ量Qrが急に逆転基準Qprvs以上となった場合は、再生バッファ逆転対策処理が必要であると判断する。
ステップS79:ステップS76において再生バッファ逆転対策処理が必要でないと判断された場合は、受信バッファ読出制御部61は、再生バッファ量Qpが少ないかどうかを判定する。例えば、現在の再生バッファ量Qpと閾値である再生バッファ量最小Qpmin、再生バッファ量小Qps、再生バッファ量大Qpb及び最も好ましい量として基準量Qpstd等とを比較する。ここで、再生バッファ量Qpが少ないと判定された場合、つまり再生バッファ量Qpが例えば再生バッファ量最小Qpmin及び再生バッファ量小Qpsより小さい場合はステップS80に進み、そうでない場合はステップS86に進む。
受信バッファ読出制御部61は、受信バッファ量Qrがバッファ量小Qrsより小さい場合はステップS84に進み、受信バッファ量Qrがバッファ量小Qrsより大きい場合はステップS81に進む。
ステップS83:受信バッファ読出制御部61は、受信バッファ43から符号化データを複数段読み出すように受信バッファ読出部45に指示する。このように複数段読み出すことで、再生バッファ51への書込量を増やして再生バッファ量を適正に制御したり、相手方の通信装置Bとの基準クロックのずれを補正する。
ステップS86:受信バッファ読出制御部61は、再生バッファ量Qpが多いかどうかを判定する。例えば、現在の再生バッファ量Qpと再生バッファ量大Qpbとを比較する。ここで、再生バッファ量Qpが再生バッファ量大Qpbよりも多い場合はステップS87に進み、そうでない場合つまり再生バッファ量Qpが適切な量である場合はステップS93に進む。
ステップS88:受信バッファ読出制御部61は、読出量調整フラグとして−調整フラグFr−が立っているかどうかを判断する。この−調整フラグFr−は、通常よりも受信バッファ43からの読出量を少なくすることで相手方の通信装置Bとの基準クロックのずれを調整するためのものである。なお、この−調整フラグFr−は、読出量調整間隔Tpaごとに立てられている。
ステップS90:受信バッファ読出制御部61は、受信バッファ43からの読出量を0段と決定し、受信バッファ読出部45に読み出しを行わないように指示する。このように読出量を抑制することで、再生バッファ51への書込量を減らして再生バッファ量を適正に制御したり、相手方の通信装置Bとの基準クロックのずれを補正する。
ステップS92:受信バッファ量及び再生バッファ量がともに多いため、受信バッファ読出制御部61は、再生バッファ量が過剰とならないように受信バッファ43からの読出量を複数段ではなく1段と決定する。
図14は、受信機能部2が行う再生スピード調整処理の流れの一例を示すフローチャートである。
ステップS101:再生制御部65は、再生バッファ量小フラグFpsが立っているかどうかを判定し、立っている場合はステップS102に進み、そうでない場合はステップS104に進む。
ステップS104:再生制御部65は、再生バッファ量大フラグFpbが立っているかどうかを判定し、立っている場合はステップS105に進み、そうでない場合はステップS107に進む。
再生スピードを上げる方法としては、例えば再生クロックの間隔を小さく調整する、サンプリング周波数を大きくする、間引き・補完部49での間引き量を大きく設定するなどの方法が挙げられる。
ステップS108、S109:再生制御部65は、現在の再生バッファ量Qpが再生バッファ量比較基準Qpcmpより大きいどうかを判定する(S108)。大きい場合は、再生制御部65は再生スピードを上げるように調整する(S109)。そうでない場合は終了する。
ステップS111、S112:再生制御部65は、現在の再生バッファ量Qpが再生バッファ量比較基準Qpcmpより小さいかどうかを判定する(S111)。前回よりも小さい場合は、再生制御部65は再生スピードを下げるように調整する(S112)。そうでない場合は終了する。
つまり、受信バッファ43からは通常の読出量で符号化データが読み出され、また再生バッファ51からも通常の読出量でディジタルデータが読み出される。この状況において、現在の再生バッファ量Qpが再生バッファ量比較基準Qpcmpよりも小さいのでより、再生バッファ51からのデータの読出スピードを小さくする。
ステップS117、S118:再生制御部65は、現在の再生バッファ量Qpが再生バッファ量比較基準Qpcmpより大きいどうかを判定する(S117)。大きい場合は、再生制御部65は再生スピードを上げるように調整する(S118)。そうでない場合は終了する。
(3−2)送信側処理
(a)読出量調整間隔Tsaの算出処理
図15は、読出量調整間隔Tsaの算出処理の流れの一例を示すフローチャートである。
(b)送信バッファの読出量フラグ設定処理
図16は、送信バッファの読出量フラグ設定処理の流れの一例を示すフローチャートである。
ステップS132:送信バッファ読出制御部37は、読出量調整間隔Tsaが経過したか判断し、経過している場合はステップS133に進む。そうでない場合は読出量調整間隔Tsaが経過するまで待機する。
ステップS133:送信バッファ読出制御部37は、読出量調整間隔Tsaが経過するとずれ時間Δtが0かどうかを判断する。つまり、理論時間Trstdと受信時間ΔTrとの差が0であるかどうかを判断する。ずれ時間Δtが0でない場合は、ステップS134に進む。
ステップS135:ずれ時間Δt>0である場合、つまり理論時間Trstdが受信時間ΔTrより大きい場合、送信バッファ読出制御部37は、送信パケット調整数Npac=Npac+1と設定する。より具体的に説明すると、ずれ時間Δt>0である場合とは、時間軸上の1sという幅が相手方の通信装置Bよりも通信装置Aの方が大きく基準クロックが遅い場合である。よって、通信装置Aの方が基準クロックが遅い分だけ送信バッファ25からの読出量を増やして、つまり送信パケット数を増やして基準クロックのずれを補う。
(c)送信処理
図17は、送信機能部1が行う送信処理の流れの一例を示すフローチャートである。
ステップS143:送信クロックの割り込みがあれば、送信バッファ読出制御部37は、送信バッファ量監視部35から送信バッファ量Qsを取得する。また、キャプチャバッファ読出制御部33は、送信バッファ量Qs及びキャプチャバッファ量Qcを取得する。
ステップS145:割り込みが初回である場合は、キャプチャバッファ読出制御部33は、後述のキャプチャスピード調整処理で用いるキャプチャバッファ量比較基準Qccmpとして、現在のキャプチャバッファ量Qcを設定する。
ステップS147:送信バッファ読出制御部37は、送信バッファ量を判断するための送信バッファ量判断処理を行う。
ステップS151、S152:次に、キャプチャ制御部29はキャプチャスピード調整タイミングなったかどうかを判断する。第2読出クロックをカウントし、キャプチャスピード調整タイミングとなったかどうかを判断する。ここで、キャプチャスピード調整間隔Nadjは第2読出クロックによる割り込み回数により定義されている。よって、キャプチャ制御部29は、キャプチャスピード調整間隔Nadj分だけ第2読出クロックがカウントされたかどうかを判断する。キャプチャスピード調整間隔Nadj分をカウントしていればステップS153に進み、そうでなければステップS154に進む。
ステップS155:キャプチャバッファ読出部19は、ステップS150でキャプチャバッファ読出制御部33が決定した読出量に基づいてキャプチャバッファ17からディジタルデータを読み出す。読み出されたディジタルデータは、符号化されて送信バッファ25に書き込まれる。なお、キャプチャバッファ読出部19は、後述の無音挿入フラグが立っている場合は、キャプチャバッファ17からデータを読み出すことなく、送信バッファ25に無音データを出力する。
ステップS157:送信バッファ読出制御部37が決定した送信パケット数に基づいて、送信部27は送信バッファ25から読み出した符号化データをパケットに構成して送信する。
図18は、送信機能部1が行う送信バッファ量判断処理の流れの一例を示すフローチャートである。
ステップS161:送信バッファ読出制御部37は、取得した送信バッファ25の送信バッファ量Qsが送信バッファ量小Qssより小さいかどうかを判定する。
ステップS166:ステップS161において、送信バッファ量Qsが送信バッファ量小Qssより小さくないと判断した場合は、送信バッファ読出制御部37は、送信バッファ量Qsが送信バッファ量大Qsbより大きいかどうかを判定する。
ステップS170:また、送信バッファ読出制御部37は、送信バッファ量Qsが送信バッファ量大Qsbより大きいため、キャプチャ制御部29にADC15でのキャプチャスピードを下げるように指示する。
ステップS173:送信バッファ読出制御部37は、送信バッファ量が適量であるので、キャプチャスピードの調整間隔Nadjを元に戻してキャプチャスピードの調整頻度を通常に戻す。
図19は、送信機能部1が行うキャプチャバッファ17からのディジタルデータの読出量算出処理の流れの一例を示すフローチャートである。
ステップS181:キャプチャバッファ読出制御部33は、キャプチャバッファ量Qcが読み出し1段分の量Q1blkよりも小さいかどうかを判断する。読み出し1段分の量Q1blkより小さい場合はステップS182に進み、そうでない場合はステップS187に進む。
ステップS183、S184:キャプチャバッファ読出制御部33は、ステップS182において送信バッファ量Qsが送信バッファ量小Qssより小さいと判断した場合は無音挿入フラグを立てて(S183)、1段読み出しを決定する(S184)。ただし、この1段読み出しの決定は、キャプチャバッファ17からのデータの読み出しではなく、無音データを1段読み出すことを意味する。
ステップS188、S189:キャプチャバッファ読出制御部33は、キャプチャバッファ量Qcがキャプチャバッファ量大Qcb以上である場合は、キャプチャスピード調整フラグFadjをFALSEに設定して(S188)、キャプチャバッファ17から2段のデータを読み出すことを決定する(S189)。上記と同様の理由により、一時的な動作不良であり、かつキャプチャバッファ量が多い場合には、キャプチャバッファ17からの読み出しを通常の1段よりも多い2段にして、さらにキャプチャスピードの調整を行わないようにして、次のキャプチャバッファ量を監視する。
ステップS191:送信バッファ量小フラグFssがTRUEである場合は、キャプチャバッファ読出制御部33は、キャプチャバッファ量Qcが最も好ましい量として基準量Qcstdより大きいかどうかを判断する。
ステップS193:キャプチャバッファ量Qcが基準量Qcstd以下である場合は、キャプチャバッファ読出制御部33はキャプチャバッファ17からの読出量を通常の1段と決定する。このとき、キャプチャバッファ量Qcは1段以上基準量Qcstd以下であり、かつ送信バッファ量が少ない状態である。ここで、送信バッファ量が少ないと相手方の通信装置Bへのパケットの送信に影響が出るため、キャプチャバッファ量Qcが基準量Qcstd以下であっても読出量を1段と決定する。
ステップS195:送信バッファ量大フラグFsbがTRUEである場合は、キャプチャバッファ読出制御部33は、キャプチャバッファ量Qcが基準量Qcstdより小さいかどうかを判断する。
ステップS198:キャプチャバッファ量Qcが読み出し1段分の量Q1blk以上キャプチャバッファ量大Qcbより小さく、送信バッファ量が適量である場合は、キャプチャバッファ読出制御部33は、読出量を通常の読み出し段数である1段と決定する。
図20は、送信機能部1が行うキャプチャスピード調整処理の流れの一例を示すフローチャートである。前述の図17の送信処理におけるステップS152において、キャプチャスピード調整間隔Nadj分だけ第2読出クロックがカウントされた場合は、以下のキャプチャスピード調整処理を行う。そして、キャプチャスピード調整処理が終了すると、第2読出クロックのカウントNを0に戻して再度カウントを開始する。
ステップS202:キャプチャスピード調整フラグFadjがTRUEである場合は、さらに送信バッファ量大フラグFsbがTRUEであるかを判断する。
ステップS205:次に、送信バッファ量大フラグFsbがFALSEである場合は、キャプチャ制御部29は、送信バッファ量小フラグFssがTRUEであるかどうかを判断する。
キャプチャスピードを上げる方法としては、例えばキャプチャクロックの間隔を小さく調整する、サンプリング周波数を大きくする、間引き・補完部49での間引き量を大きく設定するなどの方法が挙げられる。
ステップS209、S210:さらに、キャプチャ制御部29は、現在のキャプチャバッファ量Qcがキャプチャバッファ量比較基準Qccmpより大きいかどうかを判定し(S209)、前回よりも大きい場合はキャプチャスピードを下げるように調整する(S210)。そうでない場合はテップS214に進む。
ステップS211:キャプチャ制御部29は現在のキャプチャバッファ量Qcが最も好ましい基準量Qcstdより小さいかどうかを判定する。小さい場合はステップS212に進み、そうでない場合はステップS214に進む。
つまり、送信バッファ量が適量である場合において、現在のキャプチャバッファ量Qcがキャプチャバッファ量比較基準Qccmpよりも小さいのでより、キャプチャバッファ17への書き込みのスピードを大きくする。
(g)送信パケット数算出処理
図21は、送信機能部1が行う送信パケット数算出処理の流れの一例を示すフローチャートである。
ステップS222、S223:送信バッファ量Qsが送信パケットの1個分のデータサイズQpacが小さい場合は、送信バッファ読出制御部37は、送信パケット調整数Npacを“+1”することで、次回の処理の際に用いる送信パケット調整数Npacを大きくする(S222)。そして、送信バッファ読出制御部37は、今の送信パケット数Msendを0と決定し、通常の送信パケット数1よりも小さくする(S223)。送信部27は、送信パケット数Msend=0に基づいて、パケットの送信を行わない。つまり、送信バッファ量が1パケット分に満たないため、今回の送信ではパケットの送信を行わず、次の送信の時に1パケット余分に送信するようにする。ここで、送信パケット調整数Npacは、送信クロックの割り込み毎に前述のステップS222、後述のステップS226、S230により調整される。さらに、送信パケット調整数Npacは、読出量調整間隔Tsa毎に、前述の図16に示される送信バッファの読出量調整フラグ設定処理などにおいても調整される。
ステップS225〜227:次に、送信バッファ読出制御部37は、送信バッファ量QsがQpacの2倍以上であるかどうかを判断する(S225)。そして、送信バッファ量QsがQpacの2倍以上である場合は、送信パケット調整数Npacを“−1”することで、次の送信パケット調整数Npacを小さくする(S226)。そして、送信バッファ読出制御部37は、今の送信パケット数Msendを2と決定し、通常の送信パケット数より大きくする(S227)。送信部27は、送信パケット数Msend=2に基づいてパケットの送信を行う。つまり、送信パケット調整数Npacが0より大きく、かつ送信バッファ量が2パケット分以上あるため、今回の送信では送信パケット数を多くし、次回以降の送信時は送信時の状況及び送信パケット調整数Npacに応じてパケットを送信するようにする。
ステップS229:送信バッファ読出制御部37は、送信パケット調整数Npacが0以下である場合は、Npacが0より小さいかどうかを判断する。そして、送信パケット調整数Npacが0より小さい場合はステップS230に進み、送信パケット調整数Npacが0である場合はステップS232に進む。
(4)作用効果
受信側処理では、自身の基準クロックと相手方の基準クロックとのずれ時間Δtがなくなるように受信バッファからの読出量を調整する。このような処理により、受信処理における相手方の通信装置との基準クロックのずれをなくすことができる。また、受信バッファからの読出量の調整により、再生バッファには相手方の通信装置の基準クロックに基づいてディジタルデータが書き込まれる。この再生バッファを所定量に調整することにより、再生バッファから読み出されていくデータ量を調整する。これにより、再生スピードを相手方の基準クロックに対応するように調整することができる。
また、上述のように、受信側処理の第1読出クロック、送信側処理の送信クロック及び第2読出クロックが同一の基準クロックに基づいて形成されている。よって、自分の基準クロックと相手方の通信装置の基準クロックとのずれ時間Δtが分かれば、受信機能部と送信機能部とが別個独立してずれ時間Δtの調整が可能である。つまり、受信側処理では、受信バッファからの読出処理においてずれ時間Δtを補正する処理を行う。これにより、相手方の基準クロックに適合するように再生バッファにデータが格納されていき、そのときの再生バッファ量に応じて再生スピードを調整する。送信側処理では、送信バッファからの送信処理及びキャプチャバッファからの読出処理においてずれ時間Δtを補正する処理を行う。これにより、相手方の基準クロックに適合するようにパケットが送信されるとともにキャプチャバッファからデータが読み出されていき、そのときのキャプチャバッファ量に応じてキャプチャスピードを調整する。このような方法によれば、再生クロックとキャプチャクロックとが異なるような例えばノートパソコンなどの通信装置においても、受信側処理及び送信側処理をともに相手方の通信装置の基準クロックに合わせることができ、多様な再生環境やキャプチャ環境においても双方向通信の品質を高めることができる。
(5)変形例
図22は、本発明の第1実施形態例に係る通信装置の別の機能構成図である。図22に示す通信装置は、上記図4に示す通信装置と同様にパターンAの場合の通信装置であり、基準クロック自体の調整により制御クロックの調整ができない。
次に、図3に示すパターンBの場合を例に挙げて第2実施形態例を説明する。つまり、第2実施形態例に係る通信装置では、基準クロック自体の調整によりいずれの制御クロックの調整も可能である。よって、基準クロック自体の調整により、第1読出クロック、再生クロック、キャプチャクロック、第2読出クロック及び送信クロックにおける相手方の基準クロックとのずれを調整することができる。
図23は、本発明の第2実施形態例に係る通信装置の機能構成図である。前述の図4に示される第1実施形態例に係る図4の通信装置の機能構成とは、クロック機能部4のTclk算出部82、キャプチャクロック発生部85及び再生クロック発生部86と、送信機能部1の間引き・補完部21、キャプチャ制御部29、キャプチャバッファ量監視部31、キャプチャバッファ読出制御部33、送信バッファ量監視部35及び送信バッファ読出制御部37と、受信機能部2の間引き・補完部49、再生制御部65、再生バッファ量監視部63、受信バッファ読出制御部61及び受信バッファ量監視部59とが設けられていない点で異なる。第1実施形態例と異なる機能構成及び処理を以下に説明する。
以上のように、第2実施形態例では、基準クロックの調整を行うことで各制御クロックを調整する。よって、調整された各制御クロックに基づいて受信側処理及び送信側処理を制御することで、受信側処理及び送信側処理をともに相手方の通信装置の基準クロックに合わせることができる。その他、前記第1実施形態例と同様の作用効果も有する。
受信バッファ43、再生バッファ51、キャプチャバッファ17及び送信バッファ25でのオーバーフローやアンダーフローを防止するために、各バッファ量を監視して制御する処理部を設けても良い。また、基準クロックにより各制御クロックを調整してもずれ時間Δt分の補正をすることができない場合もあるため、第1実施形態例の図4に示す間引き・補完部21、キャプチャ制御部29、キャプチャバッファ量監視部31、キャプチャバッファ読出制御部33、送信バッファ量監視部35、送信バッファ読出制御部37、間引き・補完部49、再生制御部65、再生バッファ量監視部63、受信バッファ読出制御部61及び受信バッファ量監視部59をさらに設けても良い。これらの各処理部での処理は、第1実施形態例と同様である。
次に、図3に示すパターンCの場合を例に挙げて第3実施形態例を説明する。つまり、第3実施形態例に係る通信装置では、基準クロック自体の調整により第1読出クロック、第2読出クロック及び送信クロックにおいて、相手方の通信装置Bの基準クロックとのずれをなくす。そして、再生スピードの調整及びキャプチャスピードの調整により、再生クロック及びキャプチャクロックにおいて相手方の通信装置Bの基準クロックとのずれをなくす。
図24は、本発明の第2実施形態例に係る通信装置の機能構成図である。前述の図4に示される第1実施形態例に係る図4の通信装置の機能構成とは、クロック機能部4のTclk算出部82と、送信機能部1のキャプチャバッファ読出制御部33、送信バッファ量監視部35及び送信バッファ読出制御部37と、受信機能部2の受信バッファ読出制御部61及び受信バッファ量監視部59とが設けられていない点で異なる。第1実施形態例と異なる機能構成及び処理を以下に説明する。
第3実施形態例では、以上のような処理により、受信側処理及び送信側処理をともに相手方の通信装置の基準クロックに合わせることができる。その他、前記第1実施形態例と同様の作用効果も有する。
各バッファでのオーバーフローやアンダーフローを防止するために、各バッファ量を監視して制御する処理部を設けても良い。また、基準クロックにより各制御クロックを調整してもずれ時間Δt分の補正をすることができない場合もあるため、第1実施形態例の図4に示すキャプチャバッファ読出制御部33、送信バッファ量監視部35、送信バッファ読出制御部37、受信バッファ読出制御部61及び受信バッファ量監視部59をさらに設けても良い。これらの各処理部での処理は、第1実施形態例と同様である。
前述した送受信方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blue−ray Disc)、半導体メモリを挙げることができる。
2:受信機能部
4:クロック機能部
13:増幅器
15:ADC
17:キャプチャバッファ
19:キャプチャバッファ読出部
21:間引き・補完部
25:送信バッファ
27:送信部
29:キャプチャ制御部
31:キャプチャバッファ量監視部
33:キャプチャバッファ読出制御部
35:送信バッファ量監視部
37:送信バッファ読出制御部
41:受信部
43:受信バッファ
45:受信バッファ読出部
49:間引き・補完部
51:再生バッファ
53:DAC
59:受信バッファ量監視部
61:受信バッファ読出制御部
63:再生バッファ量監視部
65:再生制御部
67:受信間隔取得部
81:ずれ時間Δt算出部
82:Tclk算出部
83:基準クロック発生部
84:制御クロック発生部
85:キャプチャクロック発生部
86:再生クロック発生部
Claims (7)
- 相手方の通信装置と通信網を介して接続され、前記相手方の通信装置との間で双方向通信を行うための通信装置であって、
所定の時間間隔で基準クロックを発生させる基準クロック発生手段と、
前記基準クロックとは別の複数の異なる制御クロックに従って読み出される各種データをそれぞれ一時蓄積する複数のバッファと、
相手方の通信装置から送信される所定数のパケット受信に要する受信間隔と、受信された所定数のパケット内の送信情報に基づいて得られる所定数のパケット受信に要する理論時間とのずれ時間を算出するずれ時間算出手段と、
送信処理時に、前記ずれ時間に基づいて少なくとも1つのバッファのデータ読出量、または、送信処理時又は再生処理時のいずれかのときに、前記ずれ時間と前記基準クロックおよび対応する制御クロックの関係とに基づいて当該対応する制御クロックを調整する調整手段と、
を含む通信装置。 - 前記複数のバッファとして、ディジタルデータを一時蓄積するキャプチャバッファ、および、前記ディジタルデータの符号化データを一時蓄積する送信バッファを含んでおり、
前記調整手段は、前記送信処理時に、前記ずれ時間に基づいて前記送信バッファのデータ読出量を調整する、
請求項1に記載の通信装置。 - 前記調整手段は、前記送信処理時に、前記ずれ時間に基づいて前記キャプチャバッファのデータ読出量も調整する、
請求項2に記載の通信装置。 - 前記複数の制御クロックの一つとして、アナログデータが前記ディジタルデータに変換されるときに用いられるキャプチャクロックを含んでおり、
前記調整手段は、前記送信処理時に、前記ずれ時間と、前記基準クロックおよび前記キャプチャクロックの関係とに応じてキャプチャクロックを調整する、
請求項1に記載の通信装置。 - 前記複数のバッファの一つとして、再生クロックに従って読み出されるディジタル信号を一時蓄積する再生バッファを含んでおり、
前記調整手段は、前記再生処理時に、前記ずれ時間と、前記基準クロックおよび前記再生クロックの関係とに応じて再生クロックを調整する、
請求項1に記載の通信装置。 - 請求項1ないし5のいずれかに記載の通信装置を機能させる通信プログラム。
- 請求項6に記載の通信プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005269638A JP4597826B2 (ja) | 2005-09-16 | 2005-09-16 | 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005269638A JP4597826B2 (ja) | 2005-09-16 | 2005-09-16 | 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007082045A JP2007082045A (ja) | 2007-03-29 |
JP4597826B2 true JP4597826B2 (ja) | 2010-12-15 |
Family
ID=37941837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005269638A Active JP4597826B2 (ja) | 2005-09-16 | 2005-09-16 | 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4597826B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5971550B2 (ja) * | 2011-03-28 | 2016-08-17 | ヤマハ株式会社 | オーディオデータ入力装置および出力装置 |
JP2013005064A (ja) * | 2011-06-13 | 2013-01-07 | Sony Corp | 送信装置、送信方法、及びプログラム |
JP2015106778A (ja) | 2013-11-29 | 2015-06-08 | ブラザー工業株式会社 | プログラム、通信端末装置及び遠隔会議方法 |
US9712198B1 (en) * | 2016-03-18 | 2017-07-18 | Samsung Electronics Co., Ltd | Apparatus and method for providing background real-time second order input intercept point calibration |
JP7409786B2 (ja) * | 2019-06-06 | 2024-01-09 | ミハル通信株式会社 | 伝送装置および伝送装置の制御方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000022678A (ja) * | 1998-06-30 | 2000-01-21 | Victor Co Of Japan Ltd | データ伝送端末装置 |
JP2001045065A (ja) * | 1999-08-03 | 2001-02-16 | Sharp Corp | パケット処理装置及びパケット処理プログラムを記録した記憶媒体 |
JP2001186180A (ja) * | 1999-12-24 | 2001-07-06 | Oki Electric Ind Co Ltd | Ip端末装置、周波数誤差範囲推定方法、周波数差推定方法及び推定所要時間算出方法 |
JP2002374319A (ja) * | 2001-06-18 | 2002-12-26 | Toa Corp | 受信装置及び受信再生方法 |
JP2004096239A (ja) * | 2002-08-29 | 2004-03-25 | Matsushita Electric Ind Co Ltd | オーディオ伝送システム、これに用いられる受信端末、送信端末及び復号化処理装置、並びにオーディオ伝送方法 |
JP2004282441A (ja) * | 2003-03-17 | 2004-10-07 | Nippon Telegr & Teleph Corp <Ntt> | 端末同期方法及び端末同期回路 |
JP2004320569A (ja) * | 2003-04-18 | 2004-11-11 | Sumitomo Electric Ind Ltd | データ伝送装置 |
JP2005184383A (ja) * | 2003-12-18 | 2005-07-07 | Sony Corp | リアルタイムデータ通信システム、リアルタイムデータ通信装置及びリアルタイムデータ通信方法 |
-
2005
- 2005-09-16 JP JP2005269638A patent/JP4597826B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000022678A (ja) * | 1998-06-30 | 2000-01-21 | Victor Co Of Japan Ltd | データ伝送端末装置 |
JP2001045065A (ja) * | 1999-08-03 | 2001-02-16 | Sharp Corp | パケット処理装置及びパケット処理プログラムを記録した記憶媒体 |
JP2001186180A (ja) * | 1999-12-24 | 2001-07-06 | Oki Electric Ind Co Ltd | Ip端末装置、周波数誤差範囲推定方法、周波数差推定方法及び推定所要時間算出方法 |
JP2002374319A (ja) * | 2001-06-18 | 2002-12-26 | Toa Corp | 受信装置及び受信再生方法 |
JP2004096239A (ja) * | 2002-08-29 | 2004-03-25 | Matsushita Electric Ind Co Ltd | オーディオ伝送システム、これに用いられる受信端末、送信端末及び復号化処理装置、並びにオーディオ伝送方法 |
JP2004282441A (ja) * | 2003-03-17 | 2004-10-07 | Nippon Telegr & Teleph Corp <Ntt> | 端末同期方法及び端末同期回路 |
JP2004320569A (ja) * | 2003-04-18 | 2004-11-11 | Sumitomo Electric Ind Ltd | データ伝送装置 |
JP2005184383A (ja) * | 2003-12-18 | 2005-07-07 | Sony Corp | リアルタイムデータ通信システム、リアルタイムデータ通信装置及びリアルタイムデータ通信方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2007082045A (ja) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4361561B2 (ja) | データ受信装置及びデータ受信方法 | |
US7061863B2 (en) | Data communication system, data receiving terminal and data sending terminal | |
KR100967377B1 (ko) | 데이터 통신 시스템, 데이터 송신 장치, 데이터 수신 장치, 데이터 통신 방법, 및 컴퓨터 프로그램을 기록한 매체 | |
JP5141197B2 (ja) | 符号化装置 | |
US8279884B1 (en) | Integrated adaptive jitter buffer | |
CN101971629B (zh) | 用于适配视频信号的目标速率的设备和方法 | |
US20040154460A1 (en) | Method and apparatus for enabling music error recovery over lossy channels | |
JP4597826B2 (ja) | 通信装置、その通信方法、通信プログラム及び通信プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
KR20040111669A (ko) | 프로토콜, 정보 처리 시스템 및 방법, 정보 처리 장치 및방법, 기록 매체, 및 프로그램 | |
KR20140025572A (ko) | 다중경로 레이트 적응 | |
WO2002047087A1 (fr) | Systeme et procede de reproduction, dispositif et procede de transmission de donnees | |
JP2001045067A (ja) | 音声伝送装置 | |
JP4076981B2 (ja) | 通信端末装置およびバッファ制御方法 | |
JP2007274369A (ja) | 通信システム、送信装置および受信装置 | |
JP4376165B2 (ja) | 受信装置,クロック調整方法および放送システム | |
JP4623867B2 (ja) | 受信装置及び受信再生方法 | |
KR102510865B1 (ko) | 신호 처리 장치 및 신호 처리 방법, 및 프로그램 | |
JP2005184383A (ja) | リアルタイムデータ通信システム、リアルタイムデータ通信装置及びリアルタイムデータ通信方法 | |
JP4299731B2 (ja) | 受信装置及び受信再生方法 | |
KR20060016809A (ko) | 미디어 신호의 수신장치, 송신장치 및 송수신 시스템 | |
KR101097140B1 (ko) | 전송망의 특성에 적응적인 영상 전송 시스템 및 방법 | |
TWI451722B (zh) | 位元率控制裝置及其方法 | |
US6636530B1 (en) | Digital audio telephony over IP network compression | |
JP3842269B2 (ja) | 受信装置、それを用いた通信システム、およびサンプリングレート変換手段 | |
JP2008113226A (ja) | 通信装置および通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100823 |
|
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: 20100907 |
|
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: 20100922 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4597826 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: 20131001 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131001 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |