JP2005303831A - データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 - Google Patents
データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 Download PDFInfo
- Publication number
- JP2005303831A JP2005303831A JP2004119329A JP2004119329A JP2005303831A JP 2005303831 A JP2005303831 A JP 2005303831A JP 2004119329 A JP2004119329 A JP 2004119329A JP 2004119329 A JP2004119329 A JP 2004119329A JP 2005303831 A JP2005303831 A JP 2005303831A
- Authority
- JP
- Japan
- Prior art keywords
- data
- amount
- buffer
- temporary storage
- stored
- 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.)
- Pending
Links
Images
Abstract
【課題】簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供すること。
【解決手段】CPU104内のバッファに格納されているオーディオデータの量を検出してクロック誤差があるか否かを判定し(ステップS202)、ステップS202の判定の結果、オーバーランが発生している場合には、オーバーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を削減し(ステップS204)、アンダーランが発生している場合には、アンダーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を増加する(ステップS208)処理を行う。
【選択図】図2
【解決手段】CPU104内のバッファに格納されているオーディオデータの量を検出してクロック誤差があるか否かを判定し(ステップS202)、ステップS202の判定の結果、オーバーランが発生している場合には、オーバーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を削減し(ステップS204)、アンダーランが発生している場合には、アンダーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を増加する(ステップS208)処理を行う。
【選択図】図2
Description
本発明は、データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法データ受信装置に関する。
近年、デジタル機器間でデータの送受信を行うための規格が数多く提案されており、このような規格のなかに例えばUSBなどがある。USBの転送モードには1msecの周期で発生するバスクロックをトリガとしてパケットデータの送受信を行うアイソクロナス転送があり、また、アイソクロナス転送の利用例として、USBオーディオと呼ばれるものがある。これはホストコンピュータ(以下、ホストと称する)とホストに接続されたデバイスとの間でオーディオデータをリアルタイムに転送するものである。このようなUSBオーディオの機能を利用すれば、デバイスをスピーカーやマイクロフォンの代わりに用いる事ができる。
ここでオーディオデータ転送の手法としては、ホストのクロック周波数にデバイスが同期する同期転送と、ホストのクロック周波数にデバイスのクロック周波数が同期せず、デバイス側が独自のクロック周波数でオーディオデータの処理を行う非同期転送がある。非同期転送においては、ホストとデバイスとの間のクロック周波数が異なるため、ホストのデータ転送量とデバイスのデータ処理量とが異なることになる。この誤差を修正するために、オーディオデータを破棄したり、挿入したりしている。しかしながら、この場合は、クロック周波数のズレが大きくなると、破棄、挿入の頻度が多くなり、データの質が劣化してしまう。
また、特許文献1にはデバイス側のクロック周波数を補正する事により、上記誤差を修正する手法が提案されている。
特開2002−152304号公報
しかしながら、特許文献1の手法は、クロック周波数を変更する事ができないデバイスで適用する事ができない。
本発明は上記の事情に鑑みてなされたものであり、簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供することを目的とする。
上記の目的を達成するために、本発明の第1の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信するデータ受信装置において、上記外部送信装置のシステムクロックに基づく所定のレートで上記外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出す読み出し手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第2の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第4の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うよう制御する制御手段とを具備することを特徴とする。
また、上記の目的を達成するために、本発明の第2の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを読み出して再生する再生手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記一時格納手段に格納されているデータ量に基づいて上記再生手段による上記再生時の再生速度を制御する制御手段とを具備することを特徴とする。
また、上記の目的を達成するために、本発明の第3の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信するデータ受信装置において、外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出して再生する再生手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記一時格納手段に格納されているデータ量が第2の所定閾値以下となるまで上記再生手段によるデータの再生速度を通常速度よりも速くするように再生し、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記一時格納手段に格納されているデータ量が第4の所定閾値以上となるまで上記再生手段によるデータの再生速度を通常速度よりも遅くするように再生するように制御する制御手段とを具備することを特徴とする。
これら、第1〜第3の態様によれば、一時格納手段のデータ量に応じて、データ処理を行うことで簡単にデータの質の劣化を抑えることができる。
また、上記の目的を達成するために、本発明の第4の態様によるデータ受信方法は、外部送信装置から送信されたデータを受信するデータ受信装置において、外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信し、上記受信したデータを上記データ受信装置のバッファに一時的に格納し、上記バッファに格納されているデータを上記データ受信装置のシステムクロックに基づく所定のレートで読み出し、上記バッファに格納されているデータ量を検出し、上記バッファに格納されているデータ量が第1の所定閾値以上であったときには、上記バッファに格納されているデータ量が第2の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第3の所定閾値以下であったときには、上記バッファに格納されているデータ量が第4の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とする。
この第4の態様によれば、バッファのデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
また、上記の目的を達成するために、本発明の第5の態様によるデータ送信装置は、外部受信装置に対してデータの送信を行うデータ送信装置において、該データ送信装置のシステムクロックに基づく所定のレートで送信するデータを一時的に格納しておく一時格納手段と、上記外部受信装置からの要求に基づいて上記一時格納手段に格納されているデータを読み出す読み出し手段と、上記読み出し手段で読み出したデータを上記外部受信装置に対して送信する送信手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第2の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第4の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うように制御する制御手段とを具備することを特徴とする。
この第5の態様によれば、一時格納手段のデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
また、上記の目的を達成するために、本発明の第6の態様によるデータ送信方法は、外部受信装置に対してデータの送信を行うデータ送信方法において、上記データ送信装置のシステムクロックに基づく所定のレートで送信するデータを上記データ送信装置のバッファに一時的に格納し、上記外部受信装置からの要求に基づいて上記バッファに格納されているデータを読み出し、上記読み出したデータを上記外部受信装置に対して送信するとともに、上記バッファに格納されているデータ量を検出し、上記バッファに格納されているデータ量が第1の所定閾値以上であったときには、上記バッファに格納されているデータ量が第2の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第3の所定閾値以下であったときには、上記バッファに格納されているデータ量が第4の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とする。
この第6の態様によれば、バッファのデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
本発明によれば、簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供することができる。
以下、図面を参照して本発明の実施形態を説明する。
まず、本発明の第1の実施形態のデータ受信装置及び第2の実施形態のデータ送信装置の一例として用いられるUSBオーディオデバイスの構成について説明する。ここで、本USBオーディオデバイスは、ホストとの通信接続を行うことで、データ受信装置としてのUSBスピーカー、又はデータ送信装置としてのUSBマイクロフォンとして機能する。
まず、本発明の第1の実施形態のデータ受信装置及び第2の実施形態のデータ送信装置の一例として用いられるUSBオーディオデバイスの構成について説明する。ここで、本USBオーディオデバイスは、ホストとの通信接続を行うことで、データ受信装置としてのUSBスピーカー、又はデータ送信装置としてのUSBマイクロフォンとして機能する。
図1は、USBオーディオデバイスの構成について示す図である。図1において、本USBオーディオデバイス100には、マイクロフォン101、スピーカー102、コーデック103、CPU104、DSP(Digital Signal Processor)105、クロック発振器106、USBドライバ107、電源回路108、表示駆動回路109、及び表示部110が設けられている。
CPU104は、本USBオーディオデバイス100全体の制御を司る制御回路である。CPU104には、クロック発振器106、USBドライバ107、及びDSP105を介してコーデック103に接続されている。また、CPU104内部にはデータを一時的に格納しておくためのバッファが設けられている。ここで、バッファには、データがブロック毎に分割されて格納される。
クロック発振器106は、CPU104にクロックを供給するものであり、CPU104はクロック発振器106から供給されるクロックのクロック周波数に基づいて動作する。また、クロック発振器106からのクロックは、CPU104を介して、DSP105及びコーデック103にも供給されている。
USBドライバ107は、ホスト111との通信制御を行うものである。
DSP105は、CPU104を介してクロック発振器106から供給されるクロックに基づいて動作しており、CPU104の制御のもとで、コーデック103内のA/Dコンバータ103cから入力されたデータや、コーデック103のD/Aコンバータ103dに出力するデータの信号処理を行っている。コーデック103は入力アンプ103a、ローパスフィルター103b、A/Dコンバータ103c、D/Aコンバータ103d、ローパスフィルター103e、出力アンプ103fを有している。A/Dコンバータ103cはマイクロフォン101を介して入力されたアナログのオーディオ信号をデジタルのオーディオデータに変換するためのものである。D/Aコンバータ103dはデジタルのオーディオデータをアナログのオーディオ信号に変換するためのものである。
またコーデック103は、マイクロフォン101、スピーカー102に接続されている。マイクロフォン101は、音声をアナログのオーディオ信号に変換するものであり、スピーカー102はD/Aコンバータ103dから入力されたアナログのオーディオ信号を音声として出力するためのものである。
この他、CPU104は、電源回路108に接続されると共に、表示駆動回路109を介して表示部110に接続されている。電源回路108は、本USBオーディオデバイス100を駆動するための電力を供給する回路である。表示部110は、表示駆動回路109の制御の下、本USBオーディオデバイスの動作状態を表示するためのものである。
[第1の実施形態]
本発明の第1の実施形態について説明する。本発明の第1の実施形態は、USBオーディオデバイス100をUSBスピーカーとして利用する例である。USBスピーカーは、ホスト111から送信されてきたオーディオデータをスピーカー102を介して再生するものである。
本発明の第1の実施形態について説明する。本発明の第1の実施形態は、USBオーディオデバイス100をUSBスピーカーとして利用する例である。USBスピーカーは、ホスト111から送信されてきたオーディオデータをスピーカー102を介して再生するものである。
まずUSBスピーカーの全体の処理の流れを図2を参照して説明する。USBスピーカーとしての処理が開始されると、後述するUSBスピーカーの初期処理が行われ(ステップS201)、次にホスト111と本USBオーディオデバイス100との間のクロック誤差検出処理が行われる(ステップS202)。この処理についても後述する。このクロック誤差検出処理の検出結果からCPU104内のバッファのオーバーランが発生しているか否かの判定が行われる(ステップS203)。ここでオーバーランが発生していればステップS204に進み、オーバーランを抑制するために、後述するオーバーラン検出時の出力処理が行われ(ステップS204)、次にオーバーラン処理停止閾値の判定が行われる(ステップS205)。ここでバッファに格納されているデータの量が第2の所定閾値であるバッファオーバラン処理停止閾値よりも大きければ、まだオーバーラン検出時出力処理を行う必要がある。この場合には、ステップS206に進んで、USBスピーカーの終了判定が行われる(ステップS206)。ステップS206において、終了と判定されなければ、ステップS204に戻りオーバーラン検出時出力処理が繰り返される。
また、ステップS203においてオーバーランが発生していなければステップS207に進む。この場合には、ステップS202の検出結果からバッファのアンダーランが発生したか否かの判定が行われる(ステップS207)。ここでアンダーランが発生していればステップS208に進み、アンダーランを抑制するために、後述するアンダーラン検出時の出力処理が行われ(ステップS208)、次にアンダーラン処理停止閾値の判定が行われる(ステップS209)。ここでバッファに格納されているデータの量が第4の所定閾値であるバッファアンダーラン停止閾値よりも小さければ、まだアンダーラン検出時出力処理を行う必要がある。この場合には、ステップS210に進んで、USBスピーカーの終了判定が行われる(ステップS210)。ステップS210において、終了と判定されなければステップS208に戻りアンダーラン検出時出力処理が繰り返される。
また、ステップS207において、アンダーランが発生していなければステップS211に進み、後述する通常のオーディオデータ出力処理が行われる(ステップS211)。
ステップS211の処理の後、ステップS205においてバッファに格納されているデータの量がバッファオーバラン停止閾値以下の場合、及びステップS209においてバッファに格納されているデータの量がバッファアンダーラン停止閾値以上の場合には、オーバーランやアンダーランが抑制されているので、ステップS212に進んでUSBスピーカーの終了判定が行われる(ステップS212)。ステップS212において、終了と判定されなければステップS202に戻る。
また、ステップS206、ステップS210、ステップS212において、終了と判定されれば、処理が終了される。なお、上述のオーバーラン停止閾値及びアンダーラン停止閾値は、例えば後述する図3のフローチャートに示されるUSBスピーカーの初期処理時のステップS304におけるオーディオデータ送信開始時と同じ総バッファ容量の5割程度とする。しかしながら、両停止閾値が必ずしも同じ値でなくても良く、場合に応じて両停止閾値を適宜変更しても良い。
次に図3を参照して、図2のステップS201におけるUSBスピーカーの初期処理について説明する。
USBスピーカーのホスト111からオーディオデータの受信が開始されると(ステップS301)、ホストからのオーディオデータの受信処理が行われ(ステップS302)、次にバッファの半分の量までオーディオデータを格納したか否かの判定が行われる(ステップS303)。半分の量まで格納していれば、DSP105へのオーディオデータの送信が開始される(ステップS304)。これにより、初期の送信から、バッファのオーバーランやアンダーランが起きることがない。
一方、ステップS303において、バッファの半分までオーディオデータを保存していなければ、ステップS302からの処理が繰り返される。
次に図4を参照して、図2のステップS202におけるクロック誤差検出処理について説明する。
まず、バッファに格納されているデータの量が第1の所定閾値であるオーバーラン検出閾値(例えば、総バッファ容量の8割程度)以上か否かの判定が行われる(ステップS401)。オーバーラン検出閾値以上であればステップS402に進み、オーバーランであると決定される(ステップS402)。この結果が図2のステップS203の判定に用いられる。
一方、ステップS401において、バッファに格納されているデータの量がオーバーラン検出閾値よりも大きければステップS403に進み、バッファに格納されているデータの量が第3の所定閾値であるアンダーラン検出閾値(例えば、総バッファ容量の2割程度)以下か否かの判定が行われる(ステップS403)。アンダーラン検出閾値閾値以下であればステップS404に進み、アンダーランであると決定される(ステップS404)。
一方、ステップS403において、バッファに格納されているデータの量がアンダーラン検出閾値よりも小さければステップS405に進む。この場合には、オーバーランやアンダーランが発生しておらず、クロック誤差が未検出であると決定される(ステップS405)。
次に図5を参照して、図2のステップ204におけるオーバーラン検出時オーディオデータ出力処理について説明する。なお、USBスピーカーにおけるバッファの概念図は図17のようになっている。ここで、バッファT、T+1、T+2、…、は、DSP105への送信側のバッファである。ステップS502でオーディオデータが送信可能であると判定されると、送信バッファ位置に設定されているバッファTに格納されているオーディオデータのブロックから、順次DSP105に送信される。その後、次のバッファT+1がバッファTに設定される。また、U(=T+n)、U+1(=T+n+1)、U+2(T+n+2)…、は、ホスト111からの受信側のバッファである。ホスト111から受信したオーディオデータは、所定のブロック毎に受信側のバッファに格納される。
図5において、ホスト111からのオーディオデータの受信処理が行われた後(ステップS501)、DSP105ヘオーディオデータを送信することが可能であるか否かの判定が行われる(ステップS502)。オーディオデータを送信することが可能でなければ処理を終了する。
一方、ステップS502において、オーディオデータを送信することが可能であれば、ステップS503に進んでオーディオデータの送信が行われる(ステップS503)。
オーディオデータが送信された後、早聞き再生処理を行うタイミングであるか否かの判定が行われる(ステップS504)。早聞き再生処理を行うタイミングでなければ処理が終了する。
一方、早聞き再生処理を行うタイミングである場合にはステップS505に進み、次のバッファT+1のオーディオデータとその次のバッファT+2のオーディオデータとの合成が行われ(ステップS505)、合成後のデータが次の次のバッファT+2に格納される(ステップS506)。次に、送信バッファ位置がバッファTの2つ先、即ち合成後のデータが格納されているバッファT+2の位置に設定されて(ステップS507)、処理が終了する。
ここで、ステップS505の早聞き再生処理におけるオーディオデータの合成について図6を参照して説明する。ここでは、例として三角窓かけ演算法を用いた合成を行う例について説明するが、これに限るものではない。三角窓かけ演算法を用いた早聞き再生処理においては、隣接するバッファT+1、T+2のオーディオデータに対して、図6(a)に示すような三角窓によるおもみ付けを行い、これらおもみ付けした2つのオーディオデータを合成してバッファT+2に格納する。そして、送信バッファTをT+2に設定すれば、バッファTに格納されたオーディオデータが送信された後、合成オーディオデータが送信され、その次に、図示しないバッファT+3に格納されているオーディオデータが送信される。即ち、データ量が図6(b)に示すように削減され、音声は、1個分だけ早く再生されることになる。
次に図7を参照して、図2のステップS208におけるアンダーラン検出時出力処理について説明する。
ホスト111からのオーディオデータの受信処理が行われると(ステップS601)、次にDSP105ヘオーディオデータが送信可能か否かの判定が行われる(ステップS602)。オーディオデータが送信可能でなければ、処理が終了する。
一方、ステップS602においてオーディオデータが送信可能であればステップS603に進んでオーディオデータの送信が行われる(ステップS603)。次に遅聞き再生処理を行うタイミングであるか否かの判定が行われる(ステップS604)。遅聞き再生処理を行うタイミングでなければ処理が終了する。
一方、遅聞き再生処理を行うタイミングである場合にはステップS605に進み、送信バッファTのオーディオデータと次のバッファT+1のオーディオデータとの合成が行われ(ステップS605)、合成後のオーディオデータが送信バッファTに格納されて(ステップS606)、処理が終了する。ここで送信バッファ位置は変わらない。
ここで、ステップS605の遅聞き再生処理におけるオーディオデータの合成について図8を参照して説明する。三角窓かけ演算法を用いた遅聞き再生処理においては、隣接するバッファT、T+1のオーディオデータに対して、図8(a)に示すようなおもみ付けを行い、これらおもみ付けした2つのオーディオデータを合成して、送信バッファTに格納する。これにより、図8(b)に示すようにデータ量が合成オーディオデータの分だけ増加し、音声は、合成オーディオデータ1個分だけ遅く再生される。
次に図9を参照して、図2のステップS211における通常時オーディオデータ出力処理について説明する。
ホスト111からのオーディオデータの受信処理が行われると(ステップS701)、次にDSP105ヘオーディオデータが送信可能か否かの判定が行われる(ステップS702)。オーディオデータが送信可能でなければ処理が終了する。
一方、ステップS702においてオーディオデータ送信可能であればステップS703に進んでオーディオデータの送信が行われ(ステップS703)。その後、送信バッファ位置がインクリメントされて(ステップS704)、処理が終了する。
次に図10を参照して、図5のステップS501、図7のステップS601、図9のステップS701におけるホストからのオーディオデータ受信処理について説明する。
ホスト111からオーディオデータを受信したか否かの判定が行われ(ステップS801)、受信していなければ処理が終了する。一方、ステップS801において、オーディオデータを受信したならばステップS802に進んで、受信したオーディオデータがバッファに格納されて(ステップS802)、受信バッファ位置のインクリメントが行われ(ステップS803)、受信処理が終了する。
以上説明したように、第1の実施形態によれば、ホスト側とデバイス側とのクロック誤差が検出された場合でも、デバイス側のクロック周波数を変えることなく簡単な方法で、ソフトウェア的な処理によって音質の劣化を防止できるデータ受信装置及びデータ受信方法を提供することができる。
[第2の実施形態]
本発明の第2の実施形態について説明する。本発明の第2の実施形態は、USBオーディオデバイスをUSBマイクロフォンとして利用する例である。USBマイクロフォンは、マイクロフォン101を介して入力された音声をオーディオデータに変換してホスト111に送信するものである。
本発明の第2の実施形態について説明する。本発明の第2の実施形態は、USBオーディオデバイスをUSBマイクロフォンとして利用する例である。USBマイクロフォンは、マイクロフォン101を介して入力された音声をオーディオデータに変換してホスト111に送信するものである。
まずUSBマイクロフォンの全体の流れを図11を参照して説明する。USBマイクロフォンで録音が開始されると、後述するUSBマイクロフォンの初期処理が行われ(ステップS901)、次に図4で説明したのと同様のクロック誤差の検出処理が行われる(ステップS902)。ここでの検出結果からバッファのオーバーランが発生しているか否かの判定が行われる(ステップS903)。ここでオーバーランが発生していればS904に進み、後述するオーバーラン検出時の入力処理が行われ(ステップS904)、次にオーバーラン処理停止閾値の判定が行われる(ステップS905)。ここで、バッファに格納されているデータの量がオーバーラン停止閾値よりも大きければ、まだオーバーラン検出時入力処理を行う必要がある。この場合には、ステップS906に進んでUSBマイクロフォンの終了判定が行われ(ステップS906)、終了でなければステップS904からのオーバーラン検出時入力処理が繰り返される。
また、ステップS903において、オーバーランが発生していなければ、ステップS907に進んで、アンダーランが発生したか否かの判定が行われる(ステップS907)。ここでアンダーランが発生していればステップS908に進み、アンダーラン検出時の入力処理が行われ(ステップS908)、次にアンダーラン処理停止閾値の判定が行われる(ステップS909)。ここで、バッファに格納されているデータの量がアンダーラン停止閾値よりも小さければ、まだアンダーラン検出時入力処理を行う必要がある。この場合には、ステップS910に進んでUSBマイクロフォンの終了判定が行われ(ステップS910)、終了でなければステップS908からのオーバーラン検出時入力処理が繰り返される。
また、ステップS907において、アンダーランが発生していなければステップS911に進み、後述する通常のオーディオデータ入力処理が行われる(ステップS911)。
ステップS911の処理の後、ステップS905においてバッファに格納されているデータの量がバッファオーバラン停止閾値以下の場合、及びステップS909においてバッファに格納されているデータの量がバッファアンダーラン停止閾値以上の場合には、オーバーランやアンダーランが抑制されているので、ステップS912に進んでUSBマイクロフォンの終了判定が行われる(ステップS912)。ステップS912において、終了と判定されなければステップS902に戻る。
また、ステップS906、ステップS910、ステップS912において、終了と判定されれば、処理が終了される。
次に図12を参照して、図11のステップS901におけるUSBマイクロフォンの初期処理について説明する。
DSP105からオーディオデータの受信が開始されると(ステップS1001)、DSP105からオーディオデータを受信したか否かの判定が行われ(ステップS1002)、受信していない場合はステップS1002の処理が繰り返される。
一方、ステップS1002において、オーディオデータを受信した場合は、ステップS1003に進んで、受信したオーディオデータがバッファに格納される(ステップS1003)。次にバッファの半分までオーディオデータが格納されたか否かの判定が行われ(ステップS1004)、半分まで格納されていた場合には、ホスト111ヘのオーディオデータの送信が開始されて(ステップS1005)、処理が終了する。
一方、ステップS1004において、半分まで格納されていなかった場合は、ステップS1002からの処理が繰り返される。
次に図13を参照して、図11のステップS904におけるオーバーラン検出時オーディオデータ入力処理について説明する。なお、USBマイクロフォンにおけるバッファの概念図は図18のようになっている。この図18では、バッファU、U+1、U+2、…が送信側のバッファであり、T−1(=U+n−1)、T(=U+n)、T+1(=U+n+1)…が受信側のバッファである。
ホスト111ヘのオーディオデータの送信処理が行われると(ステップS1101)、次にDSP105からオーディオデータを受信したか否かの判定が行われる(ステップS1102)。オーディオデータを受信していなければ、処理が終了する。
一方、ステップ1102においてオーディオデータを受信していれば、ステップS1103に進んで、受信したオーディオデータがバッファに格納され(ステップS1103)、次に早聞き再生処理を行うタイミングであるか否かの判定が行われる(ステップS1104)。早聞き再生処理を行うタイミングであれば、ステップS1105に進んで、上記した図6と同様の三角窓かけ演算法を用いて、1つ前の送信バッファT−1のオーディオデータと現在の送信バッファTのオーディオデータが合成され(ステップS1105)、この合成オーディオデータが1つ前のバッファT−1に格納されて(ステップS1106)、処理が終了する。
一方、ステップS1104において、早聞き再生処理を行うタイミングでなければ、受信バッファ位置がインクリメントされて(ステップS1107)、処理が終了する。
次に、図14を参照して、図11のステップS908におけるアンダーラン検出時オーディオデータ入力処理について説明する。
ホスト111ヘのオーディオデータの送信処理が行われると(ステップS1201)、次にDSP105からオーディオデータを受信したか否かの判定が行われる(ステップS1202)。オーディオデータを受信していなければ、処理が終了する
一方、ステップS1202において、オーディオデータを受信していれば、ステップS1203に進んで遅聞き再生処理を行うタイミングであるか否かの判定が行われる(ステップS1203)。遅聞き再生処理を行うタイミングであれば、ステップS1204に進んで、上記した図8と同様の三角窓かけ演算法を用いて1つ前のバッファT−1のオーディオデータとDSP105から受信したオーディオデータとが合成され(ステップS1204)、合成後のデータが受信バッファTに格納される(ステップS1205)。次に・受信バッファの位置がインクリメントされて(ステップS1206)、DSP105から受信したオーディオデータがバッファに格納される(ステップS1207)。最後に受信バッファの位置が更にインクリメントされて(ステップS1208)、処理が終了する。
一方、ステップS1202において、オーディオデータを受信していれば、ステップS1203に進んで遅聞き再生処理を行うタイミングであるか否かの判定が行われる(ステップS1203)。遅聞き再生処理を行うタイミングであれば、ステップS1204に進んで、上記した図8と同様の三角窓かけ演算法を用いて1つ前のバッファT−1のオーディオデータとDSP105から受信したオーディオデータとが合成され(ステップS1204)、合成後のデータが受信バッファTに格納される(ステップS1205)。次に・受信バッファの位置がインクリメントされて(ステップS1206)、DSP105から受信したオーディオデータがバッファに格納される(ステップS1207)。最後に受信バッファの位置が更にインクリメントされて(ステップS1208)、処理が終了する。
一方、ステップS1203において遅聞き再生処理を行うタイミングでなければ、ステップS1207に進んで上記と同様の処理が行われる。
次に図15を参照して、図11のステップS911における通常時オーディオデータ入力処理について説明する。
ホスト111ヘのオーディオデータの送信処理が行われると(ステップS1301)、次にDSP105からオーディオデータを受信したか否かの判定が行われる(ステップS1302)。オーディオデータを受信していなければ、処理が終了する。
一方、ステップS1302において、オーディオデータを受信していればステップS1303に進み、受信したオーディオデータがバッファTに格納される(ステップS1303)。その後、受信バッファの位置がインクリメントされて(ステップS1304)、処理が終了する。
次に図16を参照して、図13のステップS1101、図14のステップS1201、図15のステップS1301のホストヘのオーディオデータ送信処理について説明する。
まず、ホスト111ヘオーディオデータを送信可能か否かの判定が行われ(ステップS1401)、送信可能でなければ処理が終了する。
一方、ステップS1401において、オーディオデータを送信可能であれば、ステップS1402に進んで、ホスト111ヘのオーディオデータの送信が行われる(ステップS1402)。その後、送信バッファ位置のインクリメントが行われ(ステップS1403)、処理が終了する。
以上説明したように、第2の実施形態によれば、ホスト側とデバイス側とのクロック誤差が検出された場合でも、デバイス側のクロック周波数を変えることなく簡単に、ソフトウェア的な処理によって音質の劣化を防止できるデータ送信装置及びデータ送信方法を提供することができる。
以上実施形態に基づいて本発明を説明したが、本発明は上記した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。例えば、上記した各実施形態では、早聞き再生処理または遅聞き再生処理に、三角窓かけ演算法を用いているが、これに限らず再生速度の時間軸を変更するようにしても同様の効果が得られる。また、上記した各実施形態では、オーバーラン及びアンダーランはバッファに格納されているデータ量で判定しているが、これに限らず、バッファの空き容量に基づいて判定するようにしてもよい。
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。
100…USBオーディオデバイス、101…マイクロフォン、102…スピーカー、103…コーデック、103a…入力アンプ、103b,103e…ローパスフィルター、103c…A/Dコンバータ、103d…D/Aコンバータ、103f…出力アンプ、104…CPU、105…DSP、106…クロック発振器、107…USBドライバ、108…電源回路、109…表示駆動回路、110…表示部、111…ホスト
Claims (10)
- 外部送信装置から送信されたデータを受信するデータ受信装置において、
上記外部送信装置のシステムクロックに基づく所定のレートで上記外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出す読み出し手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第2の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第4の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うよう制御する制御手段と、
を具備することを特徴とするデータ受信装置。 - 上記一時格納手段は、上記格納を行う際に、上記受信手段によって受信されたデータを所定のデータブロック毎に複数格納し、
上記制御手段による上記データ量の削減処理は、上記複数格納されたデータブロックの一部の隣接するデータブロックを合成することにより行い、上記制御手段による上記データ量の増加処理は、上記複数格納されたデータブロックの一部の隣接するデータブロックから新たなデータブロックを生成することにより行うことを特徴とする請求項1に記載のデータ受信装置。 - 上記データ量の削減処理は早聞き再生処理であり、上記データ量の増加処理は遅聞き再生処理であることを特徴とする請求項2に記載のデータ受信装置。
- 外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを読み出して再生する再生手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記一時格納手段に格納されているデータ量に基づいて上記再生手段による上記再生時の再生速度を制御する制御手段と、
を具備することを特徴とするデータ受信装置。 - 上記制御手段による上記再生速度の制御は、上記一時格納手段に格納されているデータ量が所定の範囲内に入るように上記再生速度を制御することであることを特徴とする請求項4に記載のデータ受信装置。
- 外部送信装置から送信されたデータを受信するデータ受信装置において、
外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出して再生する再生手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記一時格納手段に格納されているデータ量が第2の所定閾値以下となるまで上記再生手段によるデータの再生速度を通常速度よりも速くするように再生し、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記一時格納手段に格納されているデータ量が第4の所定閾値以上となるまで上記再生手段によるデータの再生速度を通常速度よりも遅くするように再生するように制御する制御手段と、
を具備することを特徴とするデータ受信装置。 - 上記制御手段による上記再生速度の制御は、三角窓かけ演算法を用いて行う或いは再生速度の時間軸を変更することにより行うことを特徴とする請求項6に記載のデータ受信装置。
- 外部送信装置から送信されたデータを受信するデータ受信装置において、
外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信し、
上記受信したデータを上記データ受信装置のバッファに一時的に格納し、
上記バッファに格納されているデータを上記データ受信装置のシステムクロックに基づく所定のレートで読み出し、
上記バッファに格納されているデータ量を検出し、
上記バッファに格納されているデータ量が第1の所定閾値以上であったときには、上記バッファに格納されているデータ量が第2の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第3の所定閾値以下であったときには、上記バッファに格納されているデータ量が第4の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とするデータ受信方法。 - 外部受信装置に対してデータの送信を行うデータ送信装置において、
該データ送信装置のシステムクロックに基づく所定のレートで送信するデータを一時的に格納しておく一時格納手段と、
上記外部受信装置からの要求に基づいて上記一時格納手段に格納されているデータを読み出す読み出し手段と、
上記読み出し手段で読み出したデータを上記外部受信装置に対して送信する送信手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第1の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第2の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第3の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第4の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うように制御する制御手段と、
を具備することを特徴とするデータ送信装置。 - 外部受信装置に対してデータの送信を行うデータ送信方法において、
上記データ送信装置のシステムクロックに基づく所定のレートで送信するデータを上記データ送信装置のバッファに一時的に格納し、
上記外部受信装置からの要求に基づいて上記バッファに格納されているデータを読み出し、
上記読み出したデータを上記外部受信装置に対して送信するとともに、
上記バッファに格納されているデータ量を検出し、
上記バッファに格納されているデータ量が第1の所定閾値以上であったときには、上記バッファに格納されているデータ量が第2の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第3の所定閾値以下であったときには、上記バッファに格納されているデータ量が第4の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とするデータ送信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004119329A JP2005303831A (ja) | 2004-04-14 | 2004-04-14 | データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004119329A JP2005303831A (ja) | 2004-04-14 | 2004-04-14 | データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005303831A true JP2005303831A (ja) | 2005-10-27 |
Family
ID=35334816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004119329A Pending JP2005303831A (ja) | 2004-04-14 | 2004-04-14 | データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005303831A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012215861A (ja) * | 2011-03-28 | 2012-11-08 | Yamaha Corp | オーディオデータ入力装置および出力装置 |
US11322162B2 (en) | 2017-11-01 | 2022-05-03 | Razer (Asia-Pacific) Pte. Ltd. | Method and apparatus for resampling audio signal |
-
2004
- 2004-04-14 JP JP2004119329A patent/JP2005303831A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012215861A (ja) * | 2011-03-28 | 2012-11-08 | Yamaha Corp | オーディオデータ入力装置および出力装置 |
US11322162B2 (en) | 2017-11-01 | 2022-05-03 | Razer (Asia-Pacific) Pte. Ltd. | Method and apparatus for resampling audio signal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7228059B2 (en) | Audio reproducing apparatus and audio reproduction control method for use in the same | |
JP3417392B2 (ja) | 同期制御装置 | |
TWI648732B (zh) | 聲音同步存取方法以及使用其之聲音播放系統 | |
JP7201033B2 (ja) | 音データ処理装置、音データ処理方法及びプログラム | |
US8369456B2 (en) | Data processing apparatus and method and encoding device | |
JP2005303831A (ja) | データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法 | |
JPWO2008142874A1 (ja) | 音声符号化及び再生装置 | |
JP7087779B2 (ja) | 端末装置、会議システム、端末装置の制御方法、及びプログラム | |
US20080084936A1 (en) | Data Communication System, Data Reproducing Device, and Method of Reproducing Data | |
JP2004354677A (ja) | 情報処理装置、その方法、そのプログラム、そのプログラムを記録した記録媒体、および、再生装置 | |
JP3377401B2 (ja) | 再生同期装置 | |
JP2006135657A (ja) | データ受信装置及びデータ受信方法 | |
US20070248170A1 (en) | Transmitting Apparatus, Receiving Apparatus, and Reproducing Apparatus | |
WO2005104125A1 (ja) | 記録再生装置、同時記録再生制御方法、および同時記録再生制御プログラム | |
JP4610302B2 (ja) | 記録再生装置 | |
JP5119933B2 (ja) | 音声出力装置 | |
JP5234845B2 (ja) | パケット送受信装置、方法及びプログラム | |
JP2011071833A (ja) | 通信端末装置、端末制御方法、及び端末制御プログラム | |
JP4541191B2 (ja) | データ処理装置及びデータ処理方法 | |
JP2000004423A (ja) | 情報再生装置及び方法 | |
JP4975694B2 (ja) | ストリーミングデータのノイズ低減処理方法およびデジタル信号受信装置 | |
JP2008084382A (ja) | 圧縮データ再生方法 | |
JP4888865B2 (ja) | ストリーミングデータ補償方法およびデジタル信号受信装置 | |
JP2022007110A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP4211928B2 (ja) | 通信モジュール、これを有する再生装置、ナビゲーション装置及びディスプレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091222 |