(57)【要約】【課題】簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供すること。【解決手段】ＣＰＵ１０４内のバッファに格納されているオーディオデータの量を検出してクロック誤差があるか否かを判定し（ステップＳ２０２）、ステップＳ２０２の判定の結果、オーバーランが発生している場合には、オーバーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を削減し（ステップＳ２０４）、アンダーランが発生している場合には、アンダーラン検出時のオーディオデータ出力処理によりバッファ内のデータ量を増加する（ステップＳ２０８）処理を行う。【選択図】図２
2005303831.tif 000002
【特許請求の範囲】
【請求項１】
外部送信装置から送信されたデータを受信するデータ受信装置において、
上記外部送信装置のシステムクロックに基づく所定のレートで上記外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出す読み出し手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第２の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第４の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うよう制御する制御手段と、
を具備することを特徴とするデータ受信装置。
【請求項２】
上記一時格納手段は、上記格納を行う際に、上記受信手段によって受信されたデータを所定のデータブロック毎に複数格納し、
上記制御手段による上記データ量の削減処理は、上記複数格納されたデータブロックの一部の隣接するデータブロックを合成することにより行い、上記制御手段による上記データ量の増加処理は、上記複数格納されたデータブロックの一部の隣接するデータブロックから新たなデータブロックを生成することにより行うことを特徴とする請求項１に記載のデータ受信装置。
【請求項３】
上記データ量の削減処理は早聞き再生処理であり、上記データ量の増加処理は遅聞き再生処理であることを特徴とする請求項２に記載のデータ受信装置。
【請求項４】
外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを読み出して再生する再生手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記一時格納手段に格納されているデータ量に基づいて上記再生手段による上記再生時の再生速度を制御する制御手段と、
を具備することを特徴とするデータ受信装置。
【請求項５】
上記制御手段による上記再生速度の制御は、上記一時格納手段に格納されているデータ量が所定の範囲内に入るように上記再生速度を制御することであることを特徴とする請求項４に記載のデータ受信装置。
【請求項６】
外部送信装置から送信されたデータを受信するデータ受信装置において、
外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信する受信手段と、
上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、
上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出して再生する再生手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記一時格納手段に格納されているデータ量が第２の所定閾値以下となるまで上記再生手段によるデータの再生速度を通常速度よりも速くするように再生し、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記一時格納手段に格納されているデータ量が第４の所定閾値以上となるまで上記再生手段によるデータの再生速度を通常速度よりも遅くするように再生するように制御する制御手段と、
を具備することを特徴とするデータ受信装置。
【請求項７】
上記制御手段による上記再生速度の制御は、三角窓かけ演算法を用いて行う或いは再生速度の時間軸を変更することにより行うことを特徴とする請求項６に記載のデータ受信装置。
【請求項８】
外部送信装置から送信されたデータを受信するデータ受信装置において、
外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信し、
上記受信したデータを上記データ受信装置のバッファに一時的に格納し、
上記バッファに格納されているデータを上記データ受信装置のシステムクロックに基づく所定のレートで読み出し、
上記バッファに格納されているデータ量を検出し、
上記バッファに格納されているデータ量が第１の所定閾値以上であったときには、上記バッファに格納されているデータ量が第２の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第３の所定閾値以下であったときには、上記バッファに格納されているデータ量が第４の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とするデータ受信方法。
【請求項９】
外部受信装置に対してデータの送信を行うデータ送信装置において、
該データ送信装置のシステムクロックに基づく所定のレートで送信するデータを一時的に格納しておく一時格納手段と、
上記外部受信装置からの要求に基づいて上記一時格納手段に格納されているデータを読み出す読み出し手段と、
上記読み出し手段で読み出したデータを上記外部受信装置に対して送信する送信手段と、
上記一時格納手段に格納されているデータ量を検出する検出手段と、
上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第２の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第４の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うように制御する制御手段と、
を具備することを特徴とするデータ送信装置。
【請求項１０】
外部受信装置に対してデータの送信を行うデータ送信方法において、
上記データ送信装置のシステムクロックに基づく所定のレートで送信するデータを上記データ送信装置のバッファに一時的に格納し、
上記外部受信装置からの要求に基づいて上記バッファに格納されているデータを読み出し、
上記読み出したデータを上記外部受信装置に対して送信するとともに、
上記バッファに格納されているデータ量を検出し、
上記バッファに格納されているデータ量が第１の所定閾値以上であったときには、上記バッファに格納されているデータ量が第２の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第３の所定閾値以下であったときには、上記バッファに格納されているデータ量が第４の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とするデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信装置、データ受信方法、データ送信装置、及びデータ送信方法データ受信装置に関する。
【背景技術】
【０００２】
近年、デジタル機器間でデータの送受信を行うための規格が数多く提案されており、このような規格のなかに例えばＵＳＢなどがある。ＵＳＢの転送モードには１ｍｓｅｃの周期で発生するバスクロックをトリガとしてパケットデータの送受信を行うアイソクロナス転送があり、また、アイソクロナス転送の利用例として、ＵＳＢオーディオと呼ばれるものがある。これはホストコンピュータ（以下、ホストと称する）とホストに接続されたデバイスとの間でオーディオデータをリアルタイムに転送するものである。このようなＵＳＢオーディオの機能を利用すれば、デバイスをスピーカーやマイクロフォンの代わりに用いる事ができる。
【０００３】
ここでオーディオデータ転送の手法としては、ホストのクロック周波数にデバイスが同期する同期転送と、ホストのクロック周波数にデバイスのクロック周波数が同期せず、デバイス側が独自のクロック周波数でオーディオデータの処理を行う非同期転送がある。非同期転送においては、ホストとデバイスとの間のクロック周波数が異なるため、ホストのデータ転送量とデバイスのデータ処理量とが異なることになる。この誤差を修正するために、オーディオデータを破棄したり、挿入したりしている。しかしながら、この場合は、クロック周波数のズレが大きくなると、破棄、挿入の頻度が多くなり、データの質が劣化してしまう。
【０００４】
また、特許文献１にはデバイス側のクロック周波数を補正する事により、上記誤差を修正する手法が提案されている。
【特許文献１】特開２００２−１５２３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法は、クロック周波数を変更する事ができないデバイスで適用する事ができない。
【０００６】
本発明は上記の事情に鑑みてなされたものであり、簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の第１の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信するデータ受信装置において、上記外部送信装置のシステムクロックに基づく所定のレートで上記外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出す読み出し手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第２の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第４の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うよう制御する制御手段とを具備することを特徴とする。
【０００８】
また、上記の目的を達成するために、本発明の第２の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを読み出して再生する再生手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記一時格納手段に格納されているデータ量に基づいて上記再生手段による上記再生時の再生速度を制御する制御手段とを具備することを特徴とする。
【０００９】
また、上記の目的を達成するために、本発明の第３の態様によるデータ受信装置は、外部送信装置から送信されたデータを受信するデータ受信装置において、外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信する受信手段と、上記受信手段で受信したデータを一時的に格納しておく一時格納手段と、上記一時格納手段に格納されているデータを該データ受信装置のシステムクロックに基づく所定のレートで読み出して再生する再生手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記一時格納手段に格納されているデータ量が第２の所定閾値以下となるまで上記再生手段によるデータの再生速度を通常速度よりも速くするように再生し、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記一時格納手段に格納されているデータ量が第４の所定閾値以上となるまで上記再生手段によるデータの再生速度を通常速度よりも遅くするように再生するように制御する制御手段とを具備することを特徴とする。
【００１０】
これら、第１〜第３の態様によれば、一時格納手段のデータ量に応じて、データ処理を行うことで簡単にデータの質の劣化を抑えることができる。
【００１１】
また、上記の目的を達成するために、本発明の第４の態様によるデータ受信方法は、外部送信装置から送信されたデータを受信するデータ受信装置において、外部送信装置のシステムクロックに基づく所定のレートで外部送信装置から送信されたデータを受信し、上記受信したデータを上記データ受信装置のバッファに一時的に格納し、上記バッファに格納されているデータを上記データ受信装置のシステムクロックに基づく所定のレートで読み出し、上記バッファに格納されているデータ量を検出し、上記バッファに格納されているデータ量が第１の所定閾値以上であったときには、上記バッファに格納されているデータ量が第２の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第３の所定閾値以下であったときには、上記バッファに格納されているデータ量が第４の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とする。
【００１２】
この第４の態様によれば、バッファのデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
【００１３】
また、上記の目的を達成するために、本発明の第５の態様によるデータ送信装置は、外部受信装置に対してデータの送信を行うデータ送信装置において、該データ送信装置のシステムクロックに基づく所定のレートで送信するデータを一時的に格納しておく一時格納手段と、上記外部受信装置からの要求に基づいて上記一時格納手段に格納されているデータを読み出す読み出し手段と、上記読み出し手段で読み出したデータを上記外部受信装置に対して送信する送信手段と、上記一時格納手段に格納されているデータ量を検出する検出手段と、上記検出手段によって検出されたデータ量が第１の所定閾値以上であったときには、上記検出手段によって検出されるデータ量が第２の所定閾値以下となるまで上記一時格納手段に格納されているデータの一部に対してデータ量の削減処理を行い、上記検出手段によって検出されたデータ量が第３の所定閾値以下であったときには、上記検出手段によって検出されるデータ量が第４の所定閾値以上となるまで上記一時格納手段に格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うように制御する制御手段とを具備することを特徴とする。
【００１４】
この第５の態様によれば、一時格納手段のデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
【００１５】
また、上記の目的を達成するために、本発明の第６の態様によるデータ送信方法は、外部受信装置に対してデータの送信を行うデータ送信方法において、上記データ送信装置のシステムクロックに基づく所定のレートで送信するデータを上記データ送信装置のバッファに一時的に格納し、上記外部受信装置からの要求に基づいて上記バッファに格納されているデータを読み出し、上記読み出したデータを上記外部受信装置に対して送信するとともに、上記バッファに格納されているデータ量を検出し、上記バッファに格納されているデータ量が第１の所定閾値以上であったときには、上記バッファに格納されているデータ量が第２の所定閾値以下となるまで上記バッファに格納されているデータの一部に対してデータ量の削減処理を行い、上記バッファに格納されているデータ量が第３の所定閾値以下であったときには、上記バッファに格納されているデータ量が第４の所定閾値以上となるまで上記バッファに格納されているデータの一部から新たにデータを生成してデータ量の増加処理を行うことを特徴とする。
【００１６】
この第６の態様によれば、バッファのデータ量に応じてデータ処理を行うことで、簡単にデータの質の劣化を抑えることができる。
【発明の効果】
【００１７】
本発明によれば、簡単な方法でデータ転送時のデータの質の劣化を極力抑えることができるデータ受信装置、データ受信方法、データ送信装置、及びデータ送信方法を提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施形態を説明する。  
まず、本発明の第１の実施形態のデータ受信装置及び第２の実施形態のデータ送信装置の一例として用いられるＵＳＢオーディオデバイスの構成について説明する。ここで、本ＵＳＢオーディオデバイスは、ホストとの通信接続を行うことで、データ受信装置としてのＵＳＢスピーカー、又はデータ送信装置としてのＵＳＢマイクロフォンとして機能する。
【００１９】
図１は、ＵＳＢオーディオデバイスの構成について示す図である。図１において、本ＵＳＢオーディオデバイス１００には、マイクロフォン１０１、スピーカー１０２、コーデック１０３、ＣＰＵ１０４、ＤＳＰ（Digital Signal Processor）１０５、クロック発振器１０６、ＵＳＢドライバ１０７、電源回路１０８、表示駆動回路１０９、及び表示部１１０が設けられている。
【００２０】
ＣＰＵ１０４は、本ＵＳＢオーディオデバイス１００全体の制御を司る制御回路である。ＣＰＵ１０４には、クロック発振器１０６、ＵＳＢドライバ１０７、及びＤＳＰ１０５を介してコーデック１０３に接続されている。また、ＣＰＵ１０４内部にはデータを一時的に格納しておくためのバッファが設けられている。ここで、バッファには、データがブロック毎に分割されて格納される。
【００２１】
クロック発振器１０６は、ＣＰＵ１０４にクロックを供給するものであり、ＣＰＵ１０４はクロック発振器１０６から供給されるクロックのクロック周波数に基づいて動作する。また、クロック発振器１０６からのクロックは、ＣＰＵ１０４を介して、ＤＳＰ１０５及びコーデック１０３にも供給されている。
【００２２】
ＵＳＢドライバ１０７は、ホスト１１１との通信制御を行うものである。
【００２３】
ＤＳＰ１０５は、ＣＰＵ１０４を介してクロック発振器１０６から供給されるクロックに基づいて動作しており、ＣＰＵ１０４の制御のもとで、コーデック１０３内のＡ/Ｄコンバータ１０３ｃから入力されたデータや、コーデック１０３のＤ/Ａコンバータ１０３ｄに出力するデータの信号処理を行っている。コーデック１０３は入力アンプ１０３ａ、ローパスフィルター１０３ｂ、Ａ/Ｄコンバータ１０３ｃ、Ｄ/Ａコンバータ１０３ｄ、ローパスフィルター１０３ｅ、出力アンプ１０３ｆを有している。Ａ/Ｄコンバータ１０３ｃはマイクロフォン１０１を介して入力されたアナログのオーディオ信号をデジタルのオーディオデータに変換するためのものである。Ｄ/Ａコンバータ１０３ｄはデジタルのオーディオデータをアナログのオーディオ信号に変換するためのものである。
【００２４】
またコーデック１０３は、マイクロフォン１０１、スピーカー１０２に接続されている。マイクロフォン１０１は、音声をアナログのオーディオ信号に変換するものであり、スピーカー１０２はＤ/Ａコンバータ１０３ｄから入力されたアナログのオーディオ信号を音声として出力するためのものである。
【００２５】
この他、ＣＰＵ１０４は、電源回路１０８に接続されると共に、表示駆動回路１０９を介して表示部１１０に接続されている。電源回路１０８は、本ＵＳＢオーディオデバイス１００を駆動するための電力を供給する回路である。表示部１１０は、表示駆動回路１０９の制御の下、本ＵＳＢオーディオデバイスの動作状態を表示するためのものである。
【００２６】
［第１の実施形態］
本発明の第１の実施形態について説明する。本発明の第１の実施形態は、ＵＳＢオーディオデバイス１００をＵＳＢスピーカーとして利用する例である。ＵＳＢスピーカーは、ホスト１１１から送信されてきたオーディオデータをスピーカー１０２を介して再生するものである。
【００２７】
まずＵＳＢスピーカーの全体の処理の流れを図２を参照して説明する。ＵＳＢスピーカーとしての処理が開始されると、後述するＵＳＢスピーカーの初期処理が行われ（ステップＳ２０１）、次にホスト１１１と本ＵＳＢオーディオデバイス１００との間のクロック誤差検出処理が行われる（ステップＳ２０２）。この処理についても後述する。このクロック誤差検出処理の検出結果からＣＰＵ１０４内のバッファのオーバーランが発生しているか否かの判定が行われる（ステップＳ２０３）。ここでオーバーランが発生していればステップＳ２０４に進み、オーバーランを抑制するために、後述するオーバーラン検出時の出力処理が行われ（ステップＳ２０４）、次にオーバーラン処理停止閾値の判定が行われる（ステップＳ２０５）。ここでバッファに格納されているデータの量が第２の所定閾値であるバッファオーバラン処理停止閾値よりも大きければ、まだオーバーラン検出時出力処理を行う必要がある。この場合には、ステップＳ２０６に進んで、ＵＳＢスピーカーの終了判定が行われる（ステップＳ２０６）。ステップＳ２０６において、終了と判定されなければ、ステップＳ２０４に戻りオーバーラン検出時出力処理が繰り返される。
【００２８】
また、ステップＳ２０３においてオーバーランが発生していなければステップＳ２０７に進む。この場合には、ステップＳ２０２の検出結果からバッファのアンダーランが発生したか否かの判定が行われる（ステップＳ２０７）。ここでアンダーランが発生していればステップＳ２０８に進み、アンダーランを抑制するために、後述するアンダーラン検出時の出力処理が行われ（ステップＳ２０８）、次にアンダーラン処理停止閾値の判定が行われる（ステップＳ２０９）。ここでバッファに格納されているデータの量が第４の所定閾値であるバッファアンダーラン停止閾値よりも小さければ、まだアンダーラン検出時出力処理を行う必要がある。この場合には、ステップＳ２１０に進んで、ＵＳＢスピーカーの終了判定が行われる（ステップＳ２１０）。ステップＳ２１０において、終了と判定されなければステップＳ２０８に戻りアンダーラン検出時出力処理が繰り返される。
【００２９】
また、ステップＳ２０７において、アンダーランが発生していなければステップＳ２１１に進み、後述する通常のオーディオデータ出力処理が行われる（ステップＳ２１１）。
【００３０】
ステップＳ２１１の処理の後、ステップＳ２０５においてバッファに格納されているデータの量がバッファオーバラン停止閾値以下の場合、及びステップＳ２０９においてバッファに格納されているデータの量がバッファアンダーラン停止閾値以上の場合には、オーバーランやアンダーランが抑制されているので、ステップＳ２１２に進んでＵＳＢスピーカーの終了判定が行われる（ステップＳ２１２）。ステップＳ２１２において、終了と判定されなければステップＳ２０２に戻る。
【００３１】
また、ステップＳ２０６、ステップＳ２１０、ステップＳ２１２において、終了と判定されれば、処理が終了される。なお、上述のオーバーラン停止閾値及びアンダーラン停止閾値は、例えば後述する図３のフローチャートに示されるＵＳＢスピーカーの初期処理時のステップＳ３０４におけるオーディオデータ送信開始時と同じ総バッファ容量の５割程度とする。しかしながら、両停止閾値が必ずしも同じ値でなくても良く、場合に応じて両停止閾値を適宜変更しても良い。
【００３２】
次に図３を参照して、図２のステップＳ２０１におけるＵＳＢスピーカーの初期処理について説明する。
【００３３】
ＵＳＢスピーカーのホスト１１１からオーディオデータの受信が開始されると（ステップＳ３０１）、ホストからのオーディオデータの受信処理が行われ（ステップＳ３０２）、次にバッファの半分の量までオーディオデータを格納したか否かの判定が行われる（ステップＳ３０３）。半分の量まで格納していれば、ＤＳＰ１０５へのオーディオデータの送信が開始される（ステップＳ３０４）。これにより、初期の送信から、バッファのオーバーランやアンダーランが起きることがない。
【００３４】
一方、ステップＳ３０３において、バッファの半分までオーディオデータを保存していなければ、ステップＳ３０２からの処理が繰り返される。
【００３５】
次に図４を参照して、図２のステップＳ２０２におけるクロック誤差検出処理について説明する。
【００３６】
まず、バッファに格納されているデータの量が第１の所定閾値であるオーバーラン検出閾値（例えば、総バッファ容量の８割程度）以上か否かの判定が行われる（ステップＳ４０１）。オーバーラン検出閾値以上であればステップＳ４０２に進み、オーバーランであると決定される（ステップＳ４０２）。この結果が図２のステップＳ２０３の判定に用いられる。
【００３７】
一方、ステップＳ４０１において、バッファに格納されているデータの量がオーバーラン検出閾値よりも大きければステップＳ４０３に進み、バッファに格納されているデータの量が第３の所定閾値であるアンダーラン検出閾値（例えば、総バッファ容量の２割程度）以下か否かの判定が行われる（ステップＳ４０３）。アンダーラン検出閾値閾値以下であればステップＳ４０４に進み、アンダーランであると決定される（ステップＳ４０４）。
【００３８】
一方、ステップＳ４０３において、バッファに格納されているデータの量がアンダーラン検出閾値よりも小さければステップＳ４０５に進む。この場合には、オーバーランやアンダーランが発生しておらず、クロック誤差が未検出であると決定される（ステップＳ４０５）。
【００３９】
次に図５を参照して、図２のステップ２０４におけるオーバーラン検出時オーディオデータ出力処理について説明する。なお、ＵＳＢスピーカーにおけるバッファの概念図は図１７のようになっている。ここで、バッファＴ、Ｔ＋１、Ｔ＋２、…、は、ＤＳＰ１０５への送信側のバッファである。ステップＳ５０２でオーディオデータが送信可能であると判定されると、送信バッファ位置に設定されているバッファＴに格納されているオーディオデータのブロックから、順次ＤＳＰ１０５に送信される。その後、次のバッファＴ＋１がバッファＴに設定される。また、Ｕ（＝Ｔ＋ｎ）、Ｕ＋１（＝Ｔ＋ｎ＋１）、Ｕ＋２（Ｔ＋ｎ＋２）…、は、ホスト１１１からの受信側のバッファである。ホスト１１１から受信したオーディオデータは、所定のブロック毎に受信側のバッファに格納される。
【００４０】
図５において、ホスト１１１からのオーディオデータの受信処理が行われた後（ステップＳ５０１）、ＤＳＰ１０５ヘオーディオデータを送信することが可能であるか否かの判定が行われる（ステップＳ５０２）。オーディオデータを送信することが可能でなければ処理を終了する。
【００４１】
一方、ステップＳ５０２において、オーディオデータを送信することが可能であれば、ステップＳ５０３に進んでオーディオデータの送信が行われる（ステップＳ５０３）。
【００４２】
オーディオデータが送信された後、早聞き再生処理を行うタイミングであるか否かの判定が行われる（ステップＳ５０４）。早聞き再生処理を行うタイミングでなければ処理が終了する。
【００４３】
一方、早聞き再生処理を行うタイミングである場合にはステップＳ５０５に進み、次のバッファＴ＋１のオーディオデータとその次のバッファＴ＋２のオーディオデータとの合成が行われ（ステップＳ５０５）、合成後のデータが次の次のバッファＴ＋２に格納される（ステップＳ５０６）。次に、送信バッファ位置がバッファＴの２つ先、即ち合成後のデータが格納されているバッファＴ＋２の位置に設定されて（ステップＳ５０７）、処理が終了する。
【００４４】
ここで、ステップＳ５０５の早聞き再生処理におけるオーディオデータの合成について図６を参照して説明する。ここでは、例として三角窓かけ演算法を用いた合成を行う例について説明するが、これに限るものではない。三角窓かけ演算法を用いた早聞き再生処理においては、隣接するバッファＴ＋１、Ｔ＋２のオーディオデータに対して、図６（ａ）に示すような三角窓によるおもみ付けを行い、これらおもみ付けした２つのオーディオデータを合成してバッファＴ＋２に格納する。そして、送信バッファＴをＴ＋２に設定すれば、バッファＴに格納されたオーディオデータが送信された後、合成オーディオデータが送信され、その次に、図示しないバッファＴ＋３に格納されているオーディオデータが送信される。即ち、データ量が図６（ｂ）に示すように削減され、音声は、１個分だけ早く再生されることになる。
【００４５】
次に図７を参照して、図２のステップＳ２０８におけるアンダーラン検出時出力処理について説明する。
【００４６】
ホスト１１１からのオーディオデータの受信処理が行われると（ステップＳ６０１）、次にＤＳＰ１０５ヘオーディオデータが送信可能か否かの判定が行われる（ステップＳ６０２）。オーディオデータが送信可能でなければ、処理が終了する。
【００４７】
一方、ステップＳ６０２においてオーディオデータが送信可能であればステップＳ６０３に進んでオーディオデータの送信が行われる（ステップＳ６０３）。次に遅聞き再生処理を行うタイミングであるか否かの判定が行われる（ステップＳ６０４）。遅聞き再生処理を行うタイミングでなければ処理が終了する。
【００４８】
一方、遅聞き再生処理を行うタイミングである場合にはステップＳ６０５に進み、送信バッファＴのオーディオデータと次のバッファＴ＋１のオーディオデータとの合成が行われ（ステップＳ６０５）、合成後のオーディオデータが送信バッファＴに格納されて（ステップＳ６０６）、処理が終了する。ここで送信バッファ位置は変わらない。
【００４９】
ここで、ステップＳ６０５の遅聞き再生処理におけるオーディオデータの合成について図８を参照して説明する。三角窓かけ演算法を用いた遅聞き再生処理においては、隣接するバッファＴ、Ｔ＋１のオーディオデータに対して、図８（ａ）に示すようなおもみ付けを行い、これらおもみ付けした２つのオーディオデータを合成して、送信バッファＴに格納する。これにより、図８（ｂ）に示すようにデータ量が合成オーディオデータの分だけ増加し、音声は、合成オーディオデータ１個分だけ遅く再生される。
【００５０】
次に図９を参照して、図２のステップＳ２１１における通常時オーディオデータ出力処理について説明する。
【００５１】
ホスト１１１からのオーディオデータの受信処理が行われると（ステップＳ７０１）、次にＤＳＰ１０５ヘオーディオデータが送信可能か否かの判定が行われる（ステップＳ７０２）。オーディオデータが送信可能でなければ処理が終了する。
【００５２】
一方、ステップＳ７０２においてオーディオデータ送信可能であればステップＳ７０３に進んでオーディオデータの送信が行われ（ステップＳ７０３）。その後、送信バッファ位置がインクリメントされて（ステップＳ７０４）、処理が終了する。
【００５３】
次に図１０を参照して、図５のステップＳ５０１、図７のステップＳ６０１、図９のステップＳ７０１におけるホストからのオーディオデータ受信処理について説明する。
【００５４】
ホスト１１１からオーディオデータを受信したか否かの判定が行われ（ステップＳ８０１）、受信していなければ処理が終了する。一方、ステップＳ８０１において、オーディオデータを受信したならばステップＳ８０２に進んで、受信したオーディオデータがバッファに格納されて（ステップＳ８０２）、受信バッファ位置のインクリメントが行われ（ステップＳ８０３）、受信処理が終了する。
【００５５】
以上説明したように、第１の実施形態によれば、ホスト側とデバイス側とのクロック誤差が検出された場合でも、デバイス側のクロック周波数を変えることなく簡単な方法で、ソフトウェア的な処理によって音質の劣化を防止できるデータ受信装置及びデータ受信方法を提供することができる。
【００５６】
［第２の実施形態］
本発明の第２の実施形態について説明する。本発明の第２の実施形態は、ＵＳＢオーディオデバイスをＵＳＢマイクロフォンとして利用する例である。ＵＳＢマイクロフォンは、マイクロフォン１０１を介して入力された音声をオーディオデータに変換してホスト１１１に送信するものである。
【００５７】
まずＵＳＢマイクロフォンの全体の流れを図１１を参照して説明する。ＵＳＢマイクロフォンで録音が開始されると、後述するＵＳＢマイクロフォンの初期処理が行われ（ステップＳ９０１）、次に図４で説明したのと同様のクロック誤差の検出処理が行われる（ステップＳ９０２）。ここでの検出結果からバッファのオーバーランが発生しているか否かの判定が行われる（ステップＳ９０３）。ここでオーバーランが発生していればＳ９０４に進み、後述するオーバーラン検出時の入力処理が行われ（ステップＳ９０４）、次にオーバーラン処理停止閾値の判定が行われる（ステップＳ９０５）。ここで、バッファに格納されているデータの量がオーバーラン停止閾値よりも大きければ、まだオーバーラン検出時入力処理を行う必要がある。この場合には、ステップＳ９０６に進んでＵＳＢマイクロフォンの終了判定が行われ（ステップＳ９０６）、終了でなければステップＳ９０４からのオーバーラン検出時入力処理が繰り返される。
【００５８】
また、ステップＳ９０３において、オーバーランが発生していなければ、ステップＳ９０７に進んで、アンダーランが発生したか否かの判定が行われる（ステップＳ９０７）。ここでアンダーランが発生していればステップＳ９０８に進み、アンダーラン検出時の入力処理が行われ（ステップＳ９０８）、次にアンダーラン処理停止閾値の判定が行われる（ステップＳ９０９）。ここで、バッファに格納されているデータの量がアンダーラン停止閾値よりも小さければ、まだアンダーラン検出時入力処理を行う必要がある。この場合には、ステップＳ９１０に進んでＵＳＢマイクロフォンの終了判定が行われ（ステップＳ９１０）、終了でなければステップＳ９０８からのオーバーラン検出時入力処理が繰り返される。
【００５９】
また、ステップＳ９０７において、アンダーランが発生していなければステップＳ９１１に進み、後述する通常のオーディオデータ入力処理が行われる（ステップＳ９１１）。
【００６０】
ステップＳ９１１の処理の後、ステップＳ９０５においてバッファに格納されているデータの量がバッファオーバラン停止閾値以下の場合、及びステップＳ９０９においてバッファに格納されているデータの量がバッファアンダーラン停止閾値以上の場合には、オーバーランやアンダーランが抑制されているので、ステップＳ９１２に進んでＵＳＢマイクロフォンの終了判定が行われる（ステップＳ９１２）。ステップＳ９１２において、終了と判定されなければステップＳ９０２に戻る。
【００６１】
また、ステップＳ９０６、ステップＳ９１０、ステップＳ９１２において、終了と判定されれば、処理が終了される。
【００６２】
次に図１２を参照して、図１１のステップＳ９０１におけるＵＳＢマイクロフォンの初期処理について説明する。
【００６３】
ＤＳＰ１０５からオーディオデータの受信が開始されると（ステップＳ１００１）、ＤＳＰ１０５からオーディオデータを受信したか否かの判定が行われ（ステップＳ１００２）、受信していない場合はステップＳ１００２の処理が繰り返される。
【００６４】
一方、ステップＳ１００２において、オーディオデータを受信した場合は、ステップＳ１００３に進んで、受信したオーディオデータがバッファに格納される（ステップＳ１００３）。次にバッファの半分までオーディオデータが格納されたか否かの判定が行われ（ステップＳ１００４）、半分まで格納されていた場合には、ホスト１１１ヘのオーディオデータの送信が開始されて（ステップＳ１００５）、処理が終了する。
【００６５】
一方、ステップＳ１００４において、半分まで格納されていなかった場合は、ステップＳ１００２からの処理が繰り返される。
【００６６】
次に図１３を参照して、図１１のステップＳ９０４におけるオーバーラン検出時オーディオデータ入力処理について説明する。なお、ＵＳＢマイクロフォンにおけるバッファの概念図は図１８のようになっている。この図１８では、バッファＵ、Ｕ＋１、Ｕ＋２、…が送信側のバッファであり、Ｔ−１（＝Ｕ＋ｎ−１）、Ｔ（＝Ｕ＋ｎ）、Ｔ＋１（＝Ｕ＋ｎ＋１）…が受信側のバッファである。
【００６７】
ホスト１１１ヘのオーディオデータの送信処理が行われると（ステップＳ１１０１）、次にＤＳＰ１０５からオーディオデータを受信したか否かの判定が行われる（ステップＳ１１０２）。オーディオデータを受信していなければ、処理が終了する。
【００６８】
一方、ステップ１１０２においてオーディオデータを受信していれば、ステップＳ１１０３に進んで、受信したオーディオデータがバッファに格納され（ステップＳ１１０３）、次に早聞き再生処理を行うタイミングであるか否かの判定が行われる（ステップＳ１１０４）。早聞き再生処理を行うタイミングであれば、ステップＳ１１０５に進んで、上記した図６と同様の三角窓かけ演算法を用いて、１つ前の送信バッファＴ−１のオーディオデータと現在の送信バッファＴのオーディオデータが合成され（ステップＳ１１０５）、この合成オーディオデータが１つ前のバッファＴ−１に格納されて（ステップＳ１１０６）、処理が終了する。
【００６９】
一方、ステップＳ１１０４において、早聞き再生処理を行うタイミングでなければ、受信バッファ位置がインクリメントされて（ステップＳ１１０７）、処理が終了する。
【００７０】
次に、図１４を参照して、図１１のステップＳ９０８におけるアンダーラン検出時オーディオデータ入力処理について説明する。
【００７１】
ホスト１１１ヘのオーディオデータの送信処理が行われると（ステップＳ１２０１）、次にＤＳＰ１０５からオーディオデータを受信したか否かの判定が行われる（ステップＳ１２０２）。オーディオデータを受信していなければ、処理が終了する
一方、ステップＳ１２０２において、オーディオデータを受信していれば、ステップＳ１２０３に進んで遅聞き再生処理を行うタイミングであるか否かの判定が行われる（ステップＳ１２０３）。遅聞き再生処理を行うタイミングであれば、ステップＳ１２０４に進んで、上記した図８と同様の三角窓かけ演算法を用いて１つ前のバッファＴ−１のオーディオデータとＤＳＰ１０５から受信したオーディオデータとが合成され（ステップＳ１２０４）、合成後のデータが受信バッファＴに格納される（ステップＳ１２０５）。次に・受信バッファの位置がインクリメントされて（ステップＳ１２０６）、ＤＳＰ１０５から受信したオーディオデータがバッファに格納される（ステップＳ１２０７）。最後に受信バッファの位置が更にインクリメントされて（ステップＳ１２０８）、処理が終了する。
【００７２】
一方、ステップＳ１２０３において遅聞き再生処理を行うタイミングでなければ、ステップＳ１２０７に進んで上記と同様の処理が行われる。
【００７３】
次に図１５を参照して、図１１のステップＳ９１１における通常時オーディオデータ入力処理について説明する。
【００７４】
ホスト１１１ヘのオーディオデータの送信処理が行われると（ステップＳ１３０１）、次にＤＳＰ１０５からオーディオデータを受信したか否かの判定が行われる（ステップＳ１３０２）。オーディオデータを受信していなければ、処理が終了する。
【００７５】
一方、ステップＳ１３０２において、オーディオデータを受信していればステップＳ１３０３に進み、受信したオーディオデータがバッファＴに格納される（ステップＳ１３０３）。その後、受信バッファの位置がインクリメントされて（ステップＳ１３０４）、処理が終了する。
【００７６】
次に図１６を参照して、図１３のステップＳ１１０１、図１４のステップＳ１２０１、図１５のステップＳ１３０１のホストヘのオーディオデータ送信処理について説明する。
【００７７】
まず、ホスト１１１ヘオーディオデータを送信可能か否かの判定が行われ（ステップＳ１４０１）、送信可能でなければ処理が終了する。
【００７８】
一方、ステップＳ１４０１において、オーディオデータを送信可能であれば、ステップＳ１４０２に進んで、ホスト１１１ヘのオーディオデータの送信が行われる（ステップＳ１４０２）。その後、送信バッファ位置のインクリメントが行われ（ステップＳ１４０３）、処理が終了する。
【００７９】
以上説明したように、第２の実施形態によれば、ホスト側とデバイス側とのクロック誤差が検出された場合でも、デバイス側のクロック周波数を変えることなく簡単に、ソフトウェア的な処理によって音質の劣化を防止できるデータ送信装置及びデータ送信方法を提供することができる。
【００８０】
以上実施形態に基づいて本発明を説明したが、本発明は上記した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。例えば、上記した各実施形態では、早聞き再生処理または遅聞き再生処理に、三角窓かけ演算法を用いているが、これに限らず再生速度の時間軸を変更するようにしても同様の効果が得られる。また、上記した各実施形態では、オーバーラン及びアンダーランはバッファに格納されているデータ量で判定しているが、これに限らず、バッファの空き容量に基づいて判定するようにしてもよい。
【００８１】
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。
【図面の簡単な説明】
【００８２】
【図１】ＵＳＢオーディオデバイスの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るデータ受信装置の一例としてのＵＳＢスピーカーの動作処理について示すフローチャートである。
【図３】ＵＳＢスピーカーの初期処理について示すフローチャートである。
【図４】誤差検出処理について示すフローチャートである。
【図５】ＵＳＢスピーカーのオーバーフロー検出時出力処理について示すフローチャートである。
【図６】三角窓かけ演算法による早聞き再生処理について説明するための図である。
【図７】ＵＳＢスピーカーのアンダーフロー検出時出力処理について示すフローチャートである。
【図８】三角窓かけ演算法による遅聞き再生処理について説明するための図である。
【図９】ＵＳＢスピーカーの通常オーディオデータ出力処理について示すフローチャートである。
【図１０】ＵＳＢスピーカーのデータ受信処理について示すフローチャートである。
【図１１】本発明の第２の実施形態に係るデータ送信装置の一例としてのＵＳＢマイクロフォンの動作処理について示すフローチャートである。
【図１２】ＵＳＢマイクロフォンの初期処理について示すフローチャートである。
【図１３】ＵＳＢマイクロフォンのオーバーフロー検出時入力処理について示すフローチャートである。
【図１４】ＵＳＢマイクロフォンのアンダーフロー検出時入力処理について示すフローチャートである。
【図１５】ＵＳＢマイクロフォンの通常オーディオデータ入力処理について示すフローチャートである。
【図１６】ＵＳＢマイクロフォンのデータ送信処理について示すフローチャートである。
【図１７】ＵＳＢスピーカーのバッファの様子を示す図である。
【図１８】ＵＳＢマイクロフォンのバッファの様子を示す図である。
【符号の説明】
【００８３】
１００…ＵＳＢオーディオデバイス、１０１…マイクロフォン、１０２…スピーカー、１０３…コーデック、１０３ａ…入力アンプ、１０３ｂ，１０３ｅ…ローパスフィルター、１０３ｃ…Ａ/Ｄコンバータ、１０３ｄ…Ｄ/Ａコンバータ、１０３ｆ…出力アンプ、１０４…ＣＰＵ、１０５…ＤＳＰ、１０６…クロック発振器、１０７…ＵＳＢドライバ、１０８…電源回路、１０９…表示駆動回路、１１０…表示部、１１１…ホスト
【図１】
2005303831.tif 000003
【図２】
2005303831.tif 000004
【図３】
2005303831.tif 000005
【図４】
2005303831.tif 000006
【図５】
2005303831.tif 000007
【図６】
2005303831.tif 000008
【図７】
2005303831.tif 000009
【図８】
2005303831.tif 000010
【図９】
2005303831.tif 000011
【図１０】
2005303831.tif 000012
【図１１】
2005303831.tif 000013
【図１２】
2005303831.tif 000014
【図１３】
2005303831.tif 000015
【図１４】
2005303831.tif 000016
【図１５】
2005303831.tif 000017
【図１６】
2005303831.tif 000018
【図１７】
2005303831.tif 000019
【図１８】
2005303831.tif 000020