<本技術を適用した無線通信システムの一実施の形態>
図1は、本技術を適用した無線通信システムの一実施の形態の構成例を示すブロック図である。
図1において、無線通信システムは、送信機器10と受信機器20とを有する。
送信機器10は、供給装置11と送信装置12とを有する。
供給装置11は、無線通信で送信する対象のデータである、例えば、コンテンツの画像データや音響データを、送信装置12に供給する。供給装置11としては、例えば、画像データや音響データを再生する携帯機器(例えば、携帯電話機や、スマートフォン、携帯型音楽プレーヤ等)や、据え置き型の機器(例えば、据え置き型の音楽プレーヤやPC(Personal Computer)等)を採用することができる。
送信装置12は、受信装置21との間で無線通信を行い、供給装置11から供給される音響データ等を、無線で、受信装置21に送信する。
なお、供給装置11と送信装置12とは、1個の筐体に収納した1個の装置(送信機器10)として構成することもできるし、別個の筐体の収納された別個の装置として構成することもできる。
受信機器20は、受信装置21と出力装置22とを有する。
受信装置21は、送信装置12との間で無線通信を行い、送信装置12から無線通信で送信されてくる画像データや音響データ等を受信し、出力装置22に供給する。
出力装置22は、受信装置21から供給される画像データや音響データに対応する画像や音響を出力する。出力装置22としては、例えば、電気信号である画像データに対応する画像を視覚で認識する画像(光)に変換するディスプレイ、電気信号である音響データを聴覚で認識することができる音響に変換するヘッドフォン(イヤフォンを含む)や、スピーカ(スピーカ等を内蔵するTV(テレビジョン受像機)等の装置を含む)を採用することができる。
なお、受信装置21と出力装置22とは、1個の筐体に収納した1個の装置(受信機器20)として構成することもできるし、別個の筐体の収納された別個の装置として構成することもできる。
以上のように構成される無線通信システムでは、送信機器10において、供給装置11は、音響データを、送信装置12に供給する。送信装置12は、供給装置11からの音響データを、無線通信で、受信装置21に送信する。
受信機器20では、受信装置21が、送信装置12から無線通信で送信されてくる音響データを受信し、出力装置22に供給する。出力装置22は、受信装置21からの音響データに対応する音響を出力する。
以下、送信装置12と受信装置21と間の無線通信として、例えば、Bluetooth(登録商標)を利用して、音響データの送受信(伝送)を行う場合を例に、送信装置12及び受信装置21の詳細について説明する。
なお、送信装置12と受信装置21と間の無線通信としては、Bluetooth(登録商標)以外の通信方式を採用することができる。また、送信装置12と受信装置21と間で送受信を行うデータとしては、音響データ以外のデータ、すなわち、例えば、画像データ等のコンテンツのデータ等を採用することができる。
Bluetooth(登録商標)では、音響データを送信する送信装置12は、ソース(source)と呼ばれ、音響データを受信する受信装置21は、シンク(sink)と呼ばれる。
Bluetooth(登録商標)では、音響データの送受信を行うためのプロファイルとして、例えば、A2DP(Advanced Audio Distribution Profile)等が規定されている。
A2DPでは、SBC(Subband Codec)と呼ばれる必須のコーデック(Mandatory Codec)が定められている。SBCでは、変換符号化方式の一種であり、音響データであるLPCM(Linear Pulse Code Modulation)データが圧縮され、送信装置12から受信装置21に送信される。
図1の無線通信システムでは、受信装置21は、バッファを内蔵し、送信装置12から送信されてくる音響データをバッファにバッファリングしてから再生する。受信装置21は、音響(データ)の再生中でない場合は勿論、再生中であっても、送信装置12との接続を切断することなく、バッファのバッファリング量(蓄積量)、ひいては、遅延時間を切り替える(調整する)ことができる。すなわち、遅延時間の切り替えを容易に行うことができる。
ここで、特に断らない限り、受信装置21の遅延時間に関する遅延モードには、受信装置21での音響データの再生が安定する通常遅延モード(第1の遅延モード)と、通常遅延モードよりも遅延時間が短い低遅延モード(第2の遅延モード)との2種類があることとする。そして、遅延モードの切り替えとしては、通常遅延モードと低遅延モードとの切り替えが行われることとする。
低遅延モードでは、通常遅延モードに比較して、受信装置21のバッファのバッファリング量が小になる。
受信装置21での遅延時間が問題にならない場合、すなわち、例えば、受信機器20で、音響としての楽曲等を聴くだけの場合、遅延モードは、通常遅延モードにされる。また、遅延時間が問題になる場合、すなわち、例えば、画像を送信機器10で見つつ、その画像に付随する音響を、送信機器10から受信機器20に送信して、受信機器20で聴く場合、遅延モードは、低遅延モードにされる。
遅延モードは、送信装置12で設定され、その遅延モードを示す遅延制御情報が、送信装置12から受信装置21に送信される。送信装置12において、遅延モードの切り替え(設定)は、ユーザの操作や、アプリケーション(App)からの要求、OS(Operating System)からの要求等に応じて行われる。
送信装置12は、遅延モードの切り替えが要求されると、切り替え後の遅延モードを示す遅延制御情報を生成し、受信装置21に送信する。すなわち、例えば、遅延モードを低遅延モードから通常遅延モードに切り替える要求がされると、送信装置12は、通常遅延モードを示す遅延制御情報を生成し、受信装置21に送信する。また、例えば、遅延モードを通常モードから低遅延モードに切り替える要求がされると、送信装置12は、低遅延モードを示す遅延制御情報を生成し、受信装置21に送信する。
受信装置21は、送信装置12からの遅延制御情報を受信し、その遅延制御情報が示す遅延モードに応じて、その遅延モードの遅延時間が生じるように、受信装置21のバッファのバッファリング量を切り替える(調整する)準備を行う。
すなわち、受信装置21は、遅延制御情報が示す遅延モードの遅延時間が生じるように、バッファリング量を即座に調整するのではなく、音響を聴いているユーザに違和感をなるべく感じさせずに調整することができるタイミングを迎えたときに、バッファリング量を調整する。
ユーザに違和感をなるべく感じさせずに、バッファリング量を調整するバッファリング量の調整方法としては、例えば、特許文献1に記載の技術を利用することができる。
特許文献1に記載の技術では、送信側(ソース)において、音響データの処理単位であるフレームの挿入や破棄を行った場合に、そのフレームの挿入や破棄が感知される程度を表す感知特徴量が、フレームごとに求められる。
そして、感知特徴量に応じて、フレームの挿入や破棄の許可する旨、又は、禁止する旨を表すフラグや、挿入や破棄の許可と禁止の程度を表すレベルが、フレームの制御情報として生成され、送信側から受信側(シンク)に送信される。
受信側では、音響データをバッファリングするバッファのバッファリング量と、制御情報とに応じて、例えば、バッファのアンダーフローやオーバーフローが生じやすい状態である場合に、挿入や破棄が許可されているフレームの挿入や破棄が行われ、ユーザに違和感をなるべく感じさせずに、バッファのアンダーフローやオーバーフローに起因する音切れが抑制される。
特許文献1に記載の技術では、フレームの挿入や破棄によって、受信側のバッファのバッファリング量が、バッファのアンダーフローやオーバーフローが生じにくい一定値になるように調整される。
図1の無線通信システムは、受信装置21のバッファのバッファリング量を、低遅延モードの遅延時間、又は、通常遅延モードの遅延時間に対応するバッファリング量に調整する仕組みに、特許文献1に記載の技術を利用する。
<送信装置12及び受信装置21の第1の構成例>
図2は、図1の送信装置12及び受信装置21の第1の構成例を示すブロック図である。
図2において、送信装置12は、遅延制御情報生成部31、データ生成部32、(送信)バッファ33、パケット化部34、及び、通信部35を有する。
遅延制御情報生成部31には、遅延モード(遅延時間)の切り替えの要求が、外部、すなわち、例えば、ユーザや、アプリケーション(App)、OS等から供給される。
遅延制御情報生成部31は、そこに供給される遅延モードの切り替えの要求に応じて、受信装置21で音響データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報を生成し、データ生成部32に供給する。
ここでは、遅延制御情報生成部31は、低遅延モード又は通常遅延モードを示す遅延制御情報を生成し、データ生成部32に供給する。
なお、遅延制御情報としては、例えば、通常遅延モードを0で表すとともに、低遅延モードを1で表す2値の情報を採用することができる。
また、遅延時間として、3種類以上の遅延時間を採用する場合には、すなわち、例えば、5種類の遅延時間を採用する場合には、その5種類の遅延時間の遅延モードを、例えば、0ないし5の値で表す情報を、遅延制御情報として採用することができる。
ここでは、説明を簡単にするため、遅延制御情報生成部31は、低遅延モード及び通常遅延モードの2種類のうちのいずれかを示す遅延制御情報を生成することとする。
データ生成部32には、遅延制御情報生成部31から遅延制御情報が供給される他、供給装置11から音響データであるLPCMデータが供給される。
データ生成部32は、例えば、SBCのエンコーダを含み、供給装置11からのLPCMデータを、64サンプルや128サンプル等のフレームと呼ばれる単位で、1/4以下のデータ量に圧縮する符号化を行う符号化部として機能する。
また、データ生成部32は、符号化データに対応するLPCMデータのフレームに対して、受信装置21においてデータの使用方法を制御するためのデータ制御情報を生成するデータ制御情報生成部として機能する。
すなわち、データ生成部32は、LPCMデータのフレームについて、受信装置21においてフレームの挿入又は破棄を行った場合に、そのフレームの挿入又は破棄が感知される程度を表す感知特徴量を取得する。感知特徴量は、フレームの挿入や破棄の感知のされやすさを表すものであってもよいし、フレームの挿入や破棄の感知のされにくさを表すものであってもよい。
そして、データ生成部32は、LPCMデータのフレームの感知特徴量に基づいて、そのフレームに対するデータ制御情報を生成する。
感知特徴量は、例えば、データ生成部32でSBCの符号化が行われるときに得られるLPCMデータのフレームの処理結果(例えば、周波数成分)から生成することができる。
また、感知特徴量は、例えば、データ生成部32において、データ生成部32で得られるLPCMデータのフレームを処理することにより生成することができる。
感知特徴量としては、LPCMデータのトーナリティ(Tonality)を表す物理量としての、例えば、周波数成分の最大値と平均値との比を採用することができる。LPCMデータがトーン性の音響である場合には、トーナリティが大になり、LPCMデータがノイズ性の音響である場合には、トーナリティが小になる。LPCMデータのトーナリティが小さい場合には、そのLPCMデータの挿入や破棄は、感知されにくい。したがって、トーナリティが小さいLPCMデータのフレームを、そのフレームの直後に挿入し、又は、破棄しても、ユーザが音響を聴いたときの音質には、ほとんど影響がない。なお、本実施の形態では、LPCMデータのフレームそのものの挿入や破棄ではなく、LPCMデータのフレームを符号化した符号化データの挿入や破棄が行われることで、その符号化データに対応するフレームの挿入や破棄が実質的に行われる。
感知特徴量としては、トーナリティの他、例えば、狭周波数帯域ごとの周波数成分を正規化したSF(Scale Factor)と呼ばれる正規化係数の分散等を採用することができる。
データ生成部32は、LPCMデータのフレームの感知特徴量を取得した後、例えば、その感知特徴量と所定の閾値との大小関係に基づいて、LPCMデータのフレームに対応する符号化データ(フレームを符号化した符号化データ)のデータ制御情報を生成する。
いま、例えば、LPCMデータのフレームの感知特徴量が小であるほど、そのフレームに対応する符号化データの挿入や破棄が感知されにくいこととすると、データ生成部32は、LPCMデータのフレームの感知特徴量を、所定の閾値と比較し、感知特徴量が所定の閾値より小さい(又は以下である)符号化データ、すなわち、挿入や破棄が感知されにくい符号化データに対しては、受信装置21での符号化データの挿入及び破棄を許可する旨のデータ制御情報を生成する。
また、データ生成部32は、感知特徴量が所定の閾値以上である(フレームに対応する)符号化データ、すなわち、挿入や破棄が感知されにくいとはいえない符号化データに対しては、受信装置21での符号化データの挿入及び破棄を禁止する旨のデータ制御情報を生成する。
なお、データ制御情報としては、符号化データの挿入や破棄の許可又は禁止に関する情報を広く採用することができる。
すなわち、データ制御情報としては、例えば、符号化データの挿入や破棄の許可する旨、又は、禁止する旨を表す1ビット(以上)のフラグを採用することができる。
また、データ制御情報としては、例えば、符号化データの挿入や破棄の許可と禁止のレベルを表す情報を採用することができる。
ここで、符号化データの挿入や破棄の許可と禁止のレベルを表す情報としては、例えば、音切れ防止に必要であれば、符号化データの挿入や破棄を許可する旨を表す完全許可レベル、音切れ防止のために必要性が高い場合に、符号化データの挿入や破棄を許可する旨を表す準許可レベル、音切れ防止にどうしても必要である場合にのみ、符号化データの挿入や破棄を許可する旨を表す準禁止レベル、及び、どのような場合でも、符号化データの挿入や破棄を禁止する旨を表す禁止レベルの4レベルを採用することができる。
データ制御情報として、完全許可レベル、準許可レベル、準禁止レベル、及び、禁止レベルの4レベルを採用する場合には、データ制御情報は、2ビット(以上)の情報となる。
なお、データ制御情報としては、符号化データの挿入及び破棄の両方に関する情報の他、符号化データの挿入に関する情報と、破棄に関する情報とを、別個に生成することができる。
また、感知特徴量としては、値が小であるほど、符号化データの挿入や破棄が感知されにくい物理量を採用する他、値が大であるほど、符号化データの挿入や破棄が感知されにくい物理量を採用することもできる。
以下では、説明を簡単にするため、データ制御情報としては、符号化データの挿入及び破棄の両方の許可又は禁止を表す1ビットのフラグを採用し、感知特徴量としては、値が小であるほど、符号化データの挿入及び破棄が感知されにくい物理量を採用することとする。
ここで、符号化データの挿入や破棄は、符号化データの使用方法であり、したがって、符号化データの挿入や破棄の許可又は禁止を表すデータ制御情報は、受信装置21での符号化データの使用方法を制御する情報であるということができる。
データ生成部32は、供給装置11から音響データのフレームの符号化により得られる符号化データと、そのフレームのデータ制御情報、及び、そのフレームに対する、遅延制御情報生成部31からの遅延制御情報とをセットにした送信対象データを生成し、バッファ33に供給する。
バッファ33は、例えば、FIFO(First in first out)メモリで構成され、データ生成部32から供給される送信対象データを一時記憶する。
バッファ33に記憶された符号化データは、適宜読み出され、パケット化部34に供給される。
パケット化部34は、バッファ33からの送信対象データを、伝送(送受信)単位であるパケットに格納することでパケット化し、通信部35に供給する。
なお、送信対象データが、パケットサイズ(パケットのペイロードのサイズ)よりも大である場合には、パケット化部34は、送信対象データを分割して、複数のパケットに格納することで、送信対象データをパケット化する。
また、パケット化部34は、パケット及び送信対象データのサイズによっては、複数の送信対象データを、1パケットに格納する。
パケット化部34では、送信対象データを構成する遅延制御情報が示す遅延モードに応じて、サイズの異なるパケットを採用することができる。すなわち、遅延モードが通常遅延モードである場合には、(低遅延モードの場合より)大きなサイズのパケットを採用し、遅延モードが低遅延モードである場合には、(通常遅延モードの場合より)小さなサイズのパケットを採用することができる。この場合、低遅延モードでは、パケットの送信(再送)時間を短くすることができる。
通信部35は、パケット化部34からのパケットをRF(Radio Frequency)信号に変調し、無線通信で送信する送信部である。
受信装置21は、通信部41、パケット(Packet)分解部42、遅延制御情報解析部43、バッファ44、データ制御部45、データ出力部46、及び、LPCMバッファ47を有する。
通信部41は、通信部35からのRF信号を受信する受信部であり、ベースバンドのパケットを復調して、パケット分解部42に供給する。
パケット分解部42は、通信部41からのパケットを分解し、そのパケットから送信対象データを抽出して、遅延制御情報解析部43に供給する。なお、パケット分解部42は、1つの送信対象データが、複数のパケットに分割して格納されているかどうかを検出する。1つの送信対象データが、複数のパケットに分割して格納されていることが検出された場合、パケット分解部42は、その複数のパケットを取得し、その複数のパケットから、元の1つの送信対象データを再構成して、遅延制御情報解析部43に供給する。
遅延制御情報解析部43は、パケット分解部42からの送信対象データを、遅延制御情報、データ制御情報、及び、(フレームの)符号化データに分解する。そして、遅延制御情報解析部43は、符号化データを、バッファ44に供給するとともに、遅延制御情報及びデータ制御情報を、データ制御部45に供給する。
(受信)バッファ44は、例えば、FIFOメモリで構成され、パケット分解部42から供給される符号化データを一時記憶する。
データ制御部45は、遅延制御情報解析部43からの遅延制御情報及びデータ制御情報、並びに、バッファ44の蓄積量(バッファ44に記憶されている符号化データの数(符号化データになっているフレーム数))(バッファリング量)に応じて、バッファ44に記憶された符号化データの使用方法を制御し、その使用方法が制御された符号化データを、データ出力部46に供給する。
すなわち、データ制御部45は、遅延制御情報及びデータ制御情報、並びに、バッファ44の蓄積量に応じて、バッファ44に記憶された符号化データの挿入や破棄を、その符号化データの使用方法の制御として行う。
ここで、データ制御部45において、符号化データの挿入は、例えば、その符号化データをバッファ44内に複製することにより行うことができる。
バッファ44に記憶された符号化データの複製は、バッファ44から符号化データが読み出されるときに、その符号化データを、バッファ44に記憶させたままにすることで行うことができる。バッファ44に記憶させたままの符号化データを、符号化データの複製ということとすると、符号化データの複製が、バッファ44から読み出されることにより、符号化データの挿入が行われる。
また、データ制御部45において、符号化データの破棄は、バッファ44からの符号化データの読み出しをスキップすることで行うことができる。
データ制御部45は、遅延制御情報解析部43からの遅延制御情報に変化(変更)がない場合、バッファ44に記憶された最古の(時間的に最も先行する)1フレーム分の符号化データを読み出し、データ出力部46に供給する。
また、データ制御部45は、遅延制御情報解析部43からの遅延制御情報に変化がある場合、その遅延制御情報(の変化)に応じて、バッファ44に記憶された符号化データの挿入や破棄を行う。
すなわち、データ制御部45は、遅延制御情報解析部43からの遅延制御情報が示す遅延モードが通常遅延モードから低遅延モードに変更された(変化した)場合、遅延時間を短くするために、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で破棄する。
具体的には、データ制御部45は、バッファ44に記憶された最古の符号化データのデータ制御情報としてのフラグが符号化データの挿入及び破棄の両方の禁止を表す、例えば0である場合、バッファ44に記憶された最古の符号化データを破棄せずに読み出し、データ出力部46に供給する。
一方、バッファ44に記憶された最古の符号化データのデータ制御情報としてのフラグが符号化データの挿入及び破棄の両方の許可を表す、例えば1である場合、データ制御部45は、バッファ44に記憶された最古の符号化データを破棄する。
データ制御部45は、バッファ44に記憶された符号化データのうちの、最古の符号化データの破棄によって、新たに最古の符号化データとなった符号化データについて、以下、同様の処理を繰り返す。
例えば、無音に対応する符号化データが続いている場合、連続する複数のフレームの符号化データのデータ制御情報としてのフラグは1になり、その複数のフレームの符号化データは、連続して破棄される。
バッファ44に記憶された符号化データの破棄によって、バッファ44の蓄積量が、低遅延モードの蓄積量の基準値(低遅延モードの遅延時間として、適切な時間としてあらかじめ決められた時間分のフレーム数)(例えば、18フレーム等)に近い値になると、データ制御部45は、低遅延モードの(バッファ44の)蓄積量の閾値と、データ制御情報とに応じて、バッファ44からの符号化データの読み出しを制御する。
ここで、低遅延モードの蓄積量の閾値は、範囲を表す閾値であり、その範囲の最小値と最大値との2つの値を有する。範囲の最大値を、上限閾値ともいい、範囲の最小値を、下限閾値ともいう。例えば、低遅延モードの蓄積量の上限閾値及び下限閾値としては、その上限閾値及び下限閾値の平均値が、低遅延モードの蓄積量の基準値に等しくなる値を採用することができる。
データ制御部45は、バッファ44の蓄積量が、低遅延モードの蓄積量の下限閾値以上で上限閾値以下である場合には、バッファ44に記憶された最古の1フレーム分の符号化データを読み出し、データ出力部46に供給する。
バッファ44の蓄積量が、低遅延モードの蓄積量の上限閾値より大である場合、バッファ44の蓄積量を減少させるために、データ制御部45は、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で破棄する。
バッファ44の蓄積量が、低遅延モードの蓄積量の下限閾値より小である場合、バッファ44の蓄積量を増加させるために、データ制御部45は、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で複製(挿入)する。
一方、データ制御部45は、遅延制御情報解析部43からの遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更された場合、遅延時間を長くするために、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で複製(挿入)する。
具体的には、データ制御部45は、バッファ44に記憶された最古の符号化データのデータ制御情報としてのフラグが符号化データの挿入及び破棄の両方の禁止を表す0である場合、バッファ44に記憶された最古の符号化データを複製せずに読み出し、データ出力部46に供給する。
一方、バッファ44に記憶された最古の符号化データのデータ制御情報としてのフラグが符号化データの挿入及び破棄の両方の許可を表す1である場合、データ制御部45は、バッファ44に記憶された最古の符号化データを複製して読み出し、データ出力部46に供給する。
データ制御部45は、次の符号化データの読み出しでは、バッファ44に記憶された符号化データのうちの、最古の符号化データの複製を読み出し、以下、同様の処理を繰り返す。
例えば、無音に対応する符号化データが続いている場合、連続する複数のフレームの符号化データのデータ制御情報としてのフラグは1になり、その複数のフレームの符号化データそれぞれは、連続して複製される。
バッファ44に記憶された符号化データの複製によって、バッファ44の蓄積量が、通常遅延モードの蓄積量の基準値(通常遅延モードの遅延時間として、適切な時間としてあらかじめ決められた時間分のフレーム数)(例えば、64フレーム等)に近い値になると、データ制御部45は、通常遅延モードの(バッファ44の)蓄積量の閾値と、データ制御情報とに応じて、バッファ44からの符号化データの読み出しを制御する。
ここで、通常遅延モードの遅延時間は、低遅延モードの遅延時間よりも大であり、したがって、通常遅延モードの蓄積量の基準値は、低遅延モードの蓄積量の基準値よりも大である。
また、通常遅延モードの蓄積量の閾値は、低遅延モードの蓄積量の閾値と同様に、範囲を表す閾値であり、その範囲の最小値である下限閾値と最大値である上限閾値との2つの値を有する。例えば、通常遅延モードの蓄積量の上限閾値及び下限閾値としては、その上限閾値及び下限閾値の平均値が、通常遅延モードの蓄積量の基準値に等しくなる値を採用することができる。
データ制御部45は、バッファ44の蓄積量が、通常遅延モードの蓄積量の下限閾値以上で上限閾値以下である場合には、バッファ44に記憶された最古の1フレーム分の符号化データを読み出し、データ出力部46に供給する。
バッファ44の蓄積量が、通常遅延モードの蓄積量の上限閾値より大である場合、バッファ44の蓄積量を減少させるために、データ制御部45は、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で破棄する。
バッファ44の蓄積量が、通常遅延モードの蓄積量の下限閾値より小である場合、バッファ44の蓄積量を増加させるために、データ制御部45は、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で複製する。
なお、通常遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲と、低遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲とは、重なりを有しない範囲であってもよいし、一部が重なる範囲であってもよい。低遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲、並びに、通常遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲としては、低遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲の少なくとも一部が、通常遅延モードの蓄積量の上限閾値及び下限閾値で規定される範囲よりも小さくなる範囲を採用することができる。
データ出力部46には、データ制御部45から使用方法が制御された符号化データが供給される。
データ出力部46は、データ制御部45から供給される符号化データを、LPCMバッファ47を介して、出力装置22に出力する。
すなわち、データ出力部46は、例えば、SBCのデコーダであり、データ制御部45から供給される符号化データを、音響データとしてのLPCMデータに復号し、LPCMバッファ47に出力する。
LPCMバッファ47は、データ出力部46から供給されるLPCMデータを一時記憶する。
LPCMバッファ47に記憶されたLPCMデータは、リアルタイム再生に必要なレートで読み出され、出力装置22に供給される。
出力装置22では、LPCMバッファ47からのLPCMデータに対応する音響が出力される。
以上のような送信装置12と受信装置21との間での無線通信によるデータの送受信は、送信装置12と受信装置21との間の伝送路の状態(電波状況)等によって、必ずしも成功するとは限らない。
送信装置12と受信装置21との間での無線通信によるデータの送受信が失敗した場合、送信装置12から受信装置21に対して、データを再び送信する再送が行われる。
この再送のために、送信側である送信装置12がバッファ33を有するとともに、受信側である受信装置21がバッファ44を有する。
また、データの送受信に失敗した場合には、受信装置21において、データ出力部46での復号の対象となる符号化データがなくなり、その結果、出力装置22へのデータ(音響データ)の出力が途切れ、音切れが生じる。かかる音切れを抑制するために、受信装置21は、符号化データをバッファ44に一時記憶し、バッファ44の蓄積量が、音切れを抑制するのに十分な所定値になってから、バッファ44からの符号化データの読み出しを開始する。例えば、バッファ44に符号化データを記憶し始めてからバッファ44の蓄積量が所定値になるまでの時間が、遅延時間となる。
<送信処理>
図3は、図2の送信装置12が行う、音響データを送信する送信処理の例を説明するフローチャートである。
ステップS11において、データ生成部32は、供給装置11から供給される音響データとしてのLPCMデータをフレーム単位で符号化し、処理は、ステップS12に進む。
すなわち、データ生成部32は、供給装置11から供給される音響データを、フレームに分割し、最古のフレームの音響データを圧縮する符号化を行う。
ステップS12では、データ生成部32は、直前に符号化を行った音響データのフレームから、そのフレームの挿入や破棄が感知される程度を表す感知特徴量としてのSFやトーナリティを求め、処理は、ステップS13に進む。
ステップS13では、データ生成部32は、直前に符号化を行った音響データのフレームの感知特徴量と閾値とを比較し、その比較結果に応じて、直前に符号化を行った音響データのフレームの符号化データに対するデータ制御情報を生成する。
すなわち、直前に符号化を行った音響データのフレーム(以下、注目フレームともいう)の感知特徴量が閾値未満である場合、例えば、注目フレームが、ノイズ性の音響データであり、注目フレームの挿入(複製)や破棄が感知されにくい場合、データ生成部32は、注目フレームに対して、挿入及び破棄を許可する旨を表す1のデータ制御情報としてのフラグを生成し、処理は、ステップS13からステップS14に進む。
また、注目フレームの感知特徴量が閾値未満でない場合、例えば、注目フレームが、トーン性の音響データであり、注目フレームの挿入や破棄が感知されにくくない場合、データ生成部32は、注目フレームに対して、挿入及び破棄を禁止する旨を表す0のデータ制御情報としてのフラグを生成し、処理は、ステップS13からステップS14に進む。
ステップS14では、データ生成部32は、注目フレームの符号化により得られる符号化データと、注目フレームのデータ制御情報(フラグ)、及び、注目フレームに対する、遅延制御情報生成部31から供給される遅延制御情報とを統合して送信対象データを生成し、処理は、ステップS15に進む。
ステップS15では、データ生成部32は、送信対象データを、バッファ33に供給して記憶させる。
バッファ33に記憶された送信対象データは、適宜読み出され、パケット化部34に供給される。
パケット化部34は、バッファ44から送信対象データが供給されると、ステップS16において、その送信対象データをパケットにパケット化し、通信部35に供給する。
さらに、ステップS16では、通信部35は、パケット化部34からのパケットをRF信号に変調し、無線通信で送信(伝送)し、送信処理は終了する。
なお、ステップS11ないしS16の処理は、必要に応じて、パイプラインで行われる。
<受信処理>
図4は、図2の受信装置21が行う、音響データを受信する受信処理の例を説明するフローチャートである。
ステップS21において、通信部41は、通信部35からパケットのRF信号が送信されてくるのを待って受信し、RF信号からパケットを復調する。そして、通信部41は、パケットを、パケット分解部42に供給する。パケット分解部42は、通信部41からのパケットを分解し、そのパケットから、送信対象データを抽出する。そして、パケット分解部42は、送信対象データを、遅延制御情報解析部43に供給し、処理は、ステップS21からS22に進む。
ステップS22では、遅延制御情報解析部43は、パケット分解部42からの送信対象データを、遅延制御情報、データ制御情報(フラグ)、及び、符号化データに分解し、処理は、ステップS23に進む。
ステップS23では、遅延制御情報解析部43は、符号化データを、バッファ44に供給して記憶させるとともに、遅延制御情報及びデータ制御情報を、データ制御部45に供給し、処理は、ステップS24に進む。
ステップS24では、データ制御部45は、バッファ44に記憶された最新の符号化データ(直前に行われたステップS23で処理された符号化データ)(以下、注目データともいう)の遅延制御情報に応じて、バッファ44の蓄積量の上限閾値及び下限閾値を設定し、処理は、ステップS25に進む。
これにより、注目データの遅延制御情報が示す遅延モードが通常遅延モードである場合、バッファ44の蓄積量の上限閾値及び下限閾値は、通常遅延モードの上限閾値及び下限閾値にそれぞれ設定される。また、注目データの遅延制御情報が示す遅延モードが低遅延モードである場合、バッファ44の蓄積量の上限閾値及び下限閾値は、低遅延モードの上限閾値及び下限閾値にそれぞれ設定される。
ステップS25では、データ制御部45は、バッファ44の蓄積量(バッファ44に記憶されている符号化データとなっているフレーム数)(バッファ量)を確認し、処理は、ステップS26に進む。
ステップS26では、データ制御部45は、バッファ44の蓄積量が、下限閾値以上で、かつ、上限閾値以下であるかどうかを判定する。
ステップS26において、バッファ44の蓄積量が、下限閾値以上で、かつ、上限閾値以下であると判定された場合、データ制御部45は、バッファ44から最古の符号化データ(となっているフレーム)を読み出し、データ出力部46に供給して、処理は、ステップS30に進む。
ここで、バッファ44の蓄積量が、下限閾値以上で、かつ、上限閾値以下である場合に行われる、バッファ44からの最古の符号化データの読み出しを、以下、通常読み出しともいう。通常読み出しでは、バッファ44から読み出された符号化データは、読み出し後にバッファ44から消去される。
ステップS30では、データ出力部46は、バッファ44から供給される符号化データを復号し、その結果得られるLPCMデータを、LPCMバッファ47を介して、出力装置22に出力して、受信処理は終了する。
一方、ステップS26において、バッファ44の蓄積量が、下限閾値以上でないと判定された場合、すなわち、バッファ44の蓄積量が少ない場合(不足している場合)、処理は、ステップS27に進む。
ステップS27では、データ制御部45は、バッファ44に記憶された最古の符号化データのデータ制御情報としてのフラグが、挿入及び破棄を許可する旨を表す1になっているかどうかを判定する。
ステップS27において、最古の符号化データのデータ制御情報が、挿入及び破棄を許可する旨を表す1になっていないと判定された場合、すなわち、最古の符号化データのデータ制御情報が、挿入及び破棄を禁止する旨を表す0になっている場合、データ制御部45は、バッファ44からの最古の符号化データの通常読み出しを行う。そして、データ制御部45は、通常読み出しを行った符号化データを、データ出力部46に供給して、処理は、ステップS30に進み、以下、上述した処理が行われる。
また、ステップS27において、最古の符号化データのデータ制御情報が、挿入及び破棄を許可する旨を表す1になっていると判定された場合、処理は、ステップS28に進む。
ステップS28では、データ制御部45は、内蔵するカウンタ(図示せず)のカウント値が、カウント値の閾値以上であるかどうかを判定する。
ここで、データ制御部45は、内蔵するカウンタにおいて、通常読み出しを連続して行った回数を、カウント値としてカウントしている。カウンタのカウント値は、通常読み出しが連続して行われている間、通常読み出しが行われるごとに1だけインクリメントされ、通常読み出しが行われなかった場合、すなわち、符号化データの複製(挿入)又は破棄が行われた場合、リセットされる。
ステップS28において、カウント値が、閾値以上でないと判定された場合、すなわち、前回の符号化データの複製又は破棄が行われてから、通常読み出しが、閾値以上の回数だけ連続して行われておらず、前回の符号化データの複製又は破棄が行われてから、それほど間があいていない場合、データ制御部45は、バッファ44からの最古の符号化データの通常読み出しを行う。そして、データ制御部45は、通常読み出しを行った符号化データを、データ出力部46に供給して、処理は、ステップS30に進み、以下、上述した処理が行われる。
また、ステップS28において、カウント値が、閾値以上であると判定された場合、すなわち、前回の符号化データの複製又は破棄が行われてから、通常読み出しが、閾値以上の回数だけ連続して行われ、前回の符号化データの複製又は破棄が行われてから、ある程度の間があいている場合、処理は、ステップS29に進む。
ステップS29では、データ制御部45は、バッファ44に記憶された最古の符号化データの複製を行う。
すなわち、データ制御部45は、最古の符号化データを、バッファ44から読み出し、データ出力部46に供給するとともに、その最古の符号化データの複製をそのまま、バッファ44に保持させることにより、最古の符号化データの後に、その最古の符号化データの複製を挿入する。
その後、データ制御部45は、カウント値を0にリセットして、処理は、ステップS30に進み、以下、上述した処理が行われる。
一方、ステップS26において、バッファ44の蓄積量が、上限閾値以下でないと判定された場合、すなわち、バッファ44の蓄積量が多い場合(過剰である場合)、処理は、ステップS31に進む。
ステップS31及びS32では、ステップS27及びS28と同様の処理が行われる。
すなわち、ステップS31では、データ制御部45は、バッファ44に記憶された最古の符号化データのデータ制御情報が、(符号化データの)複製及び破棄を許可する旨を表す1になっているかどうかを判定する。
ステップS31において、最古の符号化データのデータ制御情報が、複製及び破棄を許可する旨を表す1になっていないと判定された場合、すなわち、最古の符号化データのデータ制御情報が、挿入及び破棄を禁止する旨を表す0になっている場合、データ制御部45は、バッファ44からの最古の符号化データの通常読み出しを行う。そして、データ制御部45は、通常読み出しを行った符号化データを、データ出力部46に供給して、処理は、ステップS30に進み、以下、上述した処理が行われる。
また、ステップS31において、最古の符号化データのデータ制御情報が、複製及び破棄を許可する旨を表す1になっていると判定された場合、処理は、ステップS32に進む。
ステップS32では、データ制御部45は、内蔵するカウンタのカウント値が、カウント値の閾値以上であるかどうかを判定する。
ステップS32において、カウント値が、閾値以上でないと判定された場合、データ制御部45は、バッファ44からの最古の符号化データの通常読み出しを行う。そして、データ制御部45は、通常読み出しを行った符号化データを、データ出力部46に供給して、処理は、ステップS30に進み、以下、上述した処理が行われる。
また、ステップS32において、カウント値が、閾値以上であると判定された場合、処理は、ステップS33に進む。
ステップS33では、データ制御部45は、バッファ44に記憶された最古の符号化データの破棄を行う。
すなわち、データ制御部45は、バッファ44に記憶された最古の符号化データの読み出しをスキップすることにより、その最古の符号化データを破棄し、2番目に古い符号化データを、バッファ44から読み出して、データ出力部46に供給する。
その後、データ制御部45は、カウント値を0にリセットして、処理は、ステップS30に進み、以下、上述した処理が行われる。
なお、ステップS21ないしS33の処理は、必要に応じて、パイプラインで行われる。
また、図4に示した受信処理の順番は例であり、例えば、受信装置21において、送信装置12からのパケット(のRF信号)を正常に受信することができない場合等には、ステップS25からステップS30までの処理を繰り返し行い、バッファ44に記憶されている符号化データを使って、音響の再生を行う等、様々なバリエーションをとることができる。
以上のように、送信装置12は、受信装置21で音響データ(の符号化データ)の使用方法を制御するためのデータ制御情報を生成するとともに、受信装置で音響データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報を生成し、音響データ、データ制御情報、及び、遅延制御情報を、無線通信で送信する。
一方、受信装置21は、無線通信で送信されてくる音響データと、データ制御情報と、遅延制御情報とを受信し、データ制御情報及び遅延制御情報とに応じて、音響データの使用方法を制御し、使用方法が制御されたデータを出力する。具体的には、例えば、受信装置21では、データ制御部45が、遅延制御情報に応じて、バッファ44の蓄積量と比較する上限閾値及び下限閾値を設定し、バッファの蓄積量と上限閾値及び下限閾値との比較結果と、データ制御情報とに応じて、バッファ44にバッファリング(記憶)された音響データの符号化データの挿入及び破棄を制御する。
したがって、受信装置21での音響データの遅延時間の切り替えを、無線通信を切断せずに、容易に行うことができる。
さらに、遅延時間の切り替えにあたり、符号化データの挿入や破棄が、感知特徴量を用いて得られるデータ制御情報に応じて制御されるので、ユーザに違和感を感じさせずに、遅延時間の切り替えを行うことができる。
<送信装置12及び受信装置21の第2の構成例>
図5は、図1の送信装置12及び受信装置21の第2の構成例を示すブロック図である。
なお、図中、図2の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図5において、送信装置12は、遅延制御情報生成部31、バッファ33、パケット化部34、通信部35、データ生成部51、受信装置バッファ監視部52、及び、圧縮率制御部53を有する。
したがって、図5の送信装置12は、遅延制御情報生成部31、バッファ33、パケット化部34、及び、通信部35を有する点で、図2の場合と共通する。但し、図5の送信装置12は、データ生成部32に代えて、データ生成部51が設けられている点、並びに、受信装置バッファ監視部52及び圧縮率制御部53が新たに設けられている点で、図2の場合と相違する。
また、図5において、受信装置21は、通信部41、パケット分解部42、遅延制御情報解析部43、バッファ44、データ制御部45、データ出力部46、及び、LPCMバッファ47を有する。
したがって、図5の受信装置21は、図2の場合と同様に構成される。
図5では、送信装置12及び受信装置21が、図2の場合と同様に、遅延時間を制御する(切り替える)他、送信装置12が、伝送路の状態(通信状況)に応じて、音響データを符号化するときの圧縮率を適応的に制御(調整)する。
圧縮率の制御には、例えば、特開2016-208215号公報に記載されている技術を利用することができる。
すなわち、送信装置12において、バッファ33に記憶された送信対象データは、パケット化部34及び通信部35を介して送信され、受信装置21から再送が要求された場合(受信装置21から正常受信を表す旨のメッセージを受信することができなかった場合)を除き、バッファ33から削除される。
一方、受信装置21から再送が要求された場合、バッファ33に記憶された送信対象データは、そのままバッファ33に維持され、再送される。
したがって、伝送路の状態が悪く、受信装置21から再送が要求される頻度が高いと、バッファ33の蓄積量は、大になる。
その他、送信装置12で行われる処理の負荷が高い場合にも、バッファ33の蓄積量は、大になる。
一方、伝送路の状態が良好で、受信装置21から再送が要求されない場合、バッファ33の蓄積量は、小になる。
したがって、バッファ33の蓄積量によれば、伝送路の状態を推定することができる。
図5では、送信装置12が、バッファ33の蓄積量を伝送路の状態とみなして、その伝送路の状態としてのバッファ33の蓄積量に応じて、圧縮率を適応的に制御する。
すなわち、伝送路の状態が悪く、再送が行われる頻度が高い場合、送信装置12のバッファ33の蓄積量が上昇傾向になり、また、閾値以上になる。さらに、受信装置21のバッファ44の蓄積量は減少し、音切れを生じる可能性が高くなる。
そこで、送信装置12のバッファ33の蓄積量が上昇傾向である場合や、閾値以上である場合には、送信装置12は、圧縮率を高くし、音響データを高圧縮率で符号化することにより、例えば、1フレームあたり、229kbps(Kilo Bit Per Second)のレート等に対応する少ないビットを割り当てて、音響データ(の符号化データ)を送信する。
この場合、単位時間あたり、多数のフレームを送信することができるので、受信装置21のバッファ44の蓄積量が増加しやすくなるとともに、再送の時間を確保しやすくなる。
すなわち、圧縮率が高い場合には、より多くのフレーム数の音響データの符号化データを1パケットで送信することができるので、受信装置21が1パケットを受信することによる、バッファ44の蓄積量の増加量が大になる。
さらに、パケットの送信に要する送信時間に対して、そのパケットに符号化データが含まれる音響データのフレームの再生に要する再生時間が長くなるので、その再生時間が長くなる分だけ、再送の時間を確保しやすくなる。
ここで、パケットに符号化データが含まれる音響データのフレームの再生時間から、パケットの送信時間を減算した値が、再送に使用可能な再送可能時間であり、再送可能時間を、再生時間で除算した値を、再送可能回数、又は、通信(伝送)の成功確率と呼ぶこととする。
伝送路の状態が良好で、再送がほとんど行われない場合、送信装置12のバッファ33の蓄積量が下降傾向になり、また、ほぼ0になる。さらに、受信装置21のバッファ44の蓄積量は、ある程度の値に維持され、音切れを生じる可能性が低くなる。
そこで、送信装置12のバッファ33の蓄積量が下降傾向である場合や、ほぼ0である場合には、送信装置12は、出力装置22から出力される音響の音質を向上させるために、圧縮率を低くし、音響データを低圧縮率で符号化することにより、例えば、1フレームあたり、384kbpsのレート等に対応する多数のビットを割り当てて、音響データを送信する。
圧縮率が低い場合には、1パケットで送信することができる音響データのフレーム数が少なくなり、受信装置21が1パケットを受信することによる、バッファ44の蓄積量の増加量が小になる。但し、伝送路の状態が良好である場合には、再送がほとんど行われないので、受信装置21のバッファ44の蓄積量は、ある程度の値に維持され、音切れを生じる可能性は低くなる。
さらに、音響データをより低圧縮率で符号化できる符号化方式であれば、再接続することなく、出力装置22から出力される音響の音質をより向上させることができる。
なお、圧縮率の値は、符号化前のデータのデータ量D1に対する、符号化後のデータ(符号化データ)のデータ量D2の割合D2/D1で表される。したがって、高圧縮であるほど、圧縮率を表す値D2/D1は小になり、低圧縮であるほど、圧縮率を表す値D2/D1は大になる。
例えば、圧縮率1/5は、その圧縮率1/5を表す値1/5が圧縮率1/6を表す値1/6より大であるが、圧縮率1/6より低圧縮である。
したがって、例えば、圧縮率1/5が最低圧縮率であり、その圧縮率1/5以上の圧縮率とは、値が1/5以下の圧縮率1/5や、1/6,1/7等である。
ところで、遅延モードが低遅延モードである場合、受信装置21のバッファ44の蓄積量が小になる。バッファ44の蓄積量が小である場合、バッファ44が空になりやすくなり、ひいては、音切れが生じやすくなるので、送信装置12から受信装置21へのパケット(のRF信号)の伝送エラーに対する耐性は低い。
したがって、低遅延モードでは、受信装置21のバッファ44が空にならないように、送信装置12において、圧縮率を高くして、より多くのフレーム数の音響データの符号化データを1パケットで送信し、受信装置21が1パケットを受信することによる、バッファ44の蓄積量の増加量を大にすることが望ましい。
一方、通常遅延モードでは、受信装置21のバッファ44の蓄積量がある程度の値になるので、音切れが生じる可能性は小さい。したがって、通常遅延モードでは、圧縮率を低くして、出力装置22から出力される音響の音質を向上させることが望ましい。
そこで、図5の送信装置12では、低遅延モードでは、圧縮率が高くなるように制御が行われ、通常遅延モードでは、圧縮率が低くなるように制御が行われる。
但し、低遅延モードでは、受信装置21のバッファ44の蓄積量が小になっているため、遅延モードが低遅延モードから通常遅延モードに切り替えられる場合に、圧縮率を、即座に、低圧縮率に変更すると、1パケットで送信することができる音響データのフレーム数が少なくなり、そのため、バッファ44が空になる可能性、すなわち、音切れが生じる可能性が高くなる。
そこで、図5の送信装置12は、受信装置21のバッファ44の状況である受信バッファ状況を監視し、遅延モードが、低遅延モードから通常遅延モードに切り替えられる場合には、受信バッファ状況が、音切れが生じる可能性が低い状況になっていることを確認してから、圧縮率を、高圧縮率から低圧縮率に変更する。
すなわち、送信装置12において、データ生成部51には、遅延制御情報生成部31から遅延制御情報が供給されるとともに、供給装置11から音響データであるLPCMデータが供給される。
データ生成部51は、図2のデータ生成部32と同様に、供給装置11からの音響データをフレームごとに符号化する符号化部として機能する。但し、データ生成部51は、圧縮率制御部53の制御に従った圧縮率(圧縮率制御部53から供給される圧縮率)で、音響データのフレームを符号化する。
また、データ生成部51は、図2のデータ生成部32と同様に、符号化データに対応する音響データのフレームに対して、データ制御情報を生成するデータ制御情報生成部として機能する。
すなわち、データ生成部51は、音響データのフレームについて、感知特徴量を求め、その感知特徴量に基づいて、データ制御情報を生成する。
データ生成部51は、図2のデータ生成部32と同様に、供給装置11から音響データのフレームの符号化により得られる符号化データと、そのフレームのデータ制御情報、及び、そのフレームに対する、遅延制御情報生成部31からの遅延制御情報とをセットにした送信対象データを生成し、バッファ33に供給する。
さらに、データ生成部51は、音響データの各フレームのデータ制御情報及び遅延制御情報を、受信装置バッファ監視部52に供給する。
受信装置バッファ監視部52は、データ生成部51からのデータ制御情報から、受信装置21のバッファ44の受信バッファ状況を推定し、その受信バッファ状況を監視する。
すなわち、受信装置バッファ監視部52は、データ生成部51からのデータ制御情報を順次記憶することで、最新の一定数のデータ制御情報を記憶する。
受信装置バッファ監視部52は、データ生成部51からの最新の遅延制御情報が示す遅延モードと、前回の遅延制御情報が示す遅延モードとを比較し、その比較結果と受信バッファ状況とに応じて、通常遅延モード又は低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
ここで、受信装置バッファ監視部52の動作状態には、受信装置21のバッファ44の受信バッファ状況を監視する監視状態と、監視状態でない通常状態とがある。
最新の遅延制御情報が示す遅延モードが、前回の遅延制御情報が示す遅延モードから変更されておらず、かつ、受信装置バッファ監視部52の動作状態が通常状態である場合、受信装置バッファ監視部52は、最新の遅延制御情報を、圧縮率制御部53に供給する。
最新の遅延制御情報が示す遅延モードが低遅延モードであり、前回の遅延制御情報が示す遅延モードが通常遅延モードである場合、すなわち、遅延モードが通常遅延モードから低遅延モードに変更された(変化した)場合、受信装置バッファ監視部52は、最新の遅延制御情報、すなわち、低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
最新の遅延制御情報が示す遅延モードが通常遅延モードであり、前回の遅延制御情報が示す遅延モードが低遅延モードである場合、すなわち、遅延モードが低遅延モードから通常遅延モードに変更された場合、受信装置バッファ監視部52は、動作状態を監視状態に移行する。
監視状態では、受信装置バッファ監視部52は、記憶しているデータ制御情報の系列(履歴)から、受信装置21のバッファ44の受信バッファ状況を推定し、その受信バッファ状況を監視する。そして、受信装置バッファ監視部52は、受信バッファ状況から、受信装置21のバッファ44に記憶されている符号化データについて、データ制御情報に基づく複製(挿入)を行った場合に、再生可能なフレームの数(以下、再生可能フレーム数ともいう)を算出(推定)する。
さらに、受信装置バッファ監視部52は、再生可能フレーム数を、音切れが生じにくい値としてあらかじめ決められた閾値(例えば、通常遅延モードの蓄積量の基準値等)と比較する。
そして、再生可能フレーム数が閾値を超えている場合、すなわち、受信バッファ状況が通常遅延モードに移行しても音切れが生じにくい状況になっている場合、受信装置バッファ監視部52は、監視状態を解除して、動作状態を通常状態に移行し、通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
一方、再生可能フレーム数が閾値を超えていない場合、すなわち、受信バッファ状況が通常遅延モードに移行しても音切れが生じにくい状況になっていない場合、受信装置バッファ監視部52は、動作状態を監視状態のままにして、最新の遅延制御情報に代えて、低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
なお、受信装置バッファ監視部52は、動作状態が監視状態である場合に、最新の遅延制御情報が示す遅延モードが低遅延モードであり、前回の遅延制御情報が示す遅延モードが通常遅延モードであったときには、すなわち、遅延モードが通常遅延モードから低遅延モードに変更されたときには、受信装置バッファ監視部52は、監視状態を解除して、動作状態を通常状態に移行し、最新の遅延制御情報、すなわち、低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
以上のように、データ生成部51から供給される遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更された場合は、受信装置バッファ監視部52は、受信バッファ状況を監視し、受信バッファ状況が音切れが生じにくい状況になっているかどうかを確認する。そして、受信バッファ状況が音切れが生じにくい状況になっていない場合には、受信装置バッファ監視部52は、変更前の遅延モード、すなわち、低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。さらに、受信装置バッファ監視部52は、受信バッファ状況が通常遅延モードに移行しても音切れが生じにくい状況になるのを待って、変更後の遅延モード、すなわち、通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
以上により、遅延モードが低遅延モードから通常遅延モードに変更された直後に、受信装置21のバッファ44の蓄積量が小になっている(遅延時間が小になっている)ことに起因して、音切れが生じることを抑制することができる。
ここで、上述の場合には、遅延モードが低遅延モードから通常遅延モードに変更された場合に、受信装置バッファ監視部52の動作状態が監視状態となって、受信装置21のバッファ44の受信バッファ状況を監視することとしたが、その他、例えば、遅延モードが通常遅延モードから低遅延モードに変更された場合にも、受信装置バッファ監視部52の動作状態を監視状態にすることができる。
遅延モードが通常遅延モードから低遅延モードに変更された場合の監視状態では、受信装置バッファ監視部52は、変更前の遅延モードである通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給するとともに、受信装置21のバッファ44の受信バッファ状況を監視し、その受信バッファ状況から、受信装置21のバッファ44に記憶されている符号化データについて、データ制御情報に基づく削減を行いながら音響データのフレームを再生した場合に再生する必要がある最小のフレーム数(以下、最小再生フレーム数ともいう)を算出する。
そして、例えば、遅延モードが通常遅延モードから低遅延モードに変更された場合に、受信装置21のバッファ44がオーバーフローしないような値の最小再生フレーム数が算出された場合、受信装置バッファ監視部52は、監視状態を解除し、変更後の遅延モードである低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
圧縮率制御部53は、例えば、特開2016-208215号公報に記載されている技術と同様に、間欠的に、バッファ33の蓄積量(状況)を取得し、そのバッファ33の蓄積量(の系列)に応じて、データ生成部51が符号化を行うときの圧縮率を求める。
但し、圧縮率制御部53で求められる圧縮率の最大値(最大圧縮率)や、最小値(最小圧縮率)、取り得る値は、受信装置バッファ監視部52から圧縮率制御部53に供給される遅延制御情報が示す遅延モードによって切り替えられる。
したがって、圧縮率制御部53は、バッファ33の蓄積量に応じて、圧縮率を制御するということもできるし、遅延制御情報に応じて、圧縮率を制御するということもできる。さらに、圧縮率制御部53は、遅延制御情報、及び、バッファの蓄積量に応じて、圧縮率を制御するということもできる。
ここで、本実施の形態では、例えば、圧縮率として求められる、圧縮率の複数の候補(以下、圧縮率候補ともいう)があらかじめ用意されている。また、圧縮率候補は、遅延モードごと、すなわち、ここでは、通常遅延モードと低遅延モードとのそれぞれについて用意されている。
例えば、通常遅延モードの複数の圧縮率候補としては、{1/2,1/3,1/6}等が用意されており、低遅延モードの複数の圧縮率候補としては、{1/4,1/5,1/10}等が用意されている。なお、通常遅延モードの圧縮率候補{1/2,1/3,1/6}の中では、値が最大の1/2が、最も"低"圧縮率であり、値が最小の1/6が、最も"高"圧縮率である。同様に、低遅延モードの圧縮率候補{1/4,1/5,1/10}の中では、値が最大の1/4が、最も"低"圧縮率であり、値が最小の1/10が、最も"高"圧縮率である。
通常遅延モードの圧縮率候補、及び、低遅延モードの圧縮率候補は、例えば、通常遅延モードの圧縮率候補の最小圧縮率から最大圧縮率までの範囲に比較して、低遅延モードの圧縮率候補の最小圧縮率から最大圧縮率までの範囲が、高圧縮率の範囲になるように設定することができる。
圧縮率制御部53は、受信装置バッファ監視部52から供給される遅延制御情報が示す遅延モードの圧縮率候補の中から、バッファ33の蓄積量(の系列)に応じて、圧縮率を選択することで求める。
すなわち、圧縮率制御部53は、例えば、受信装置バッファ監視部52から供給される遅延制御情報が示す遅延モードが通常遅延モードである場合、通常遅延モードの圧縮率候補{1/2,1/3,1/6}の中から、バッファ33の蓄積量に応じて、圧縮率を選択し、データ生成部51に供給する。
バッファ33の蓄積量に応じた圧縮率の選択は、例えば、特開2016-208215号公報に記載されている技術と同様に行うことができる。すなわち、例えば、バッファ33の蓄積量が閾値より大である場合や、増加傾向にある場合には、現在の圧縮率よりも高い圧縮率が選択される。また、例えば、バッファ33の蓄積量が減少傾向にあり、閾値以下の小さい値が継続した場合には、現在の圧縮率よりも低い圧縮率が選択される。
その後、受信装置バッファ監視部52から圧縮率制御部53に供給される遅延制御情報が示す遅延モードが通常遅延モードから低遅延モードに変更されると、圧縮率制御部53は、圧縮率の選択に用いる圧縮率候補を、通常遅延モードの圧縮率候補{1/2,1/3,1/6}から、低遅延モードの圧縮率候補{1/4,1/5,1/10}に切り替える。
そして、圧縮率制御部53は、低遅延モードの圧縮率候補{1/4,1/5,1/10}の中から、バッファ33の蓄積量に応じて、圧縮率を選択し、データ生成部51に供給する。
なお、受信装置バッファ監視部52から圧縮率制御部53に供給される遅延制御情報が示す遅延モードが変更された直後においては、圧縮率制御部53は、例えば、変更後の遅延モードの圧縮率候補の中から、遅延モードの変更直前の圧縮率に近い圧縮率候補を、圧縮率に選択することができる。また、圧縮率制御部53は、例えば、変更後の遅延モードの圧縮率候補の中から、遅延モードの変更直前の圧縮率の場合と上述の成功確率が近い圧縮率候補を、圧縮率に選択することができる。
ここで、上述したように、遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更された場合、受信装置バッファ監視部52は、動作状態を監視状態に移行して、受信バッファ状況を監視し、受信バッファ状況が音切れが生じにくい状況になっているかどうかを確認する。そして、受信バッファ状況が音切れが生じにくい状況になっていない場合には、受信装置バッファ監視部52は、変更前の遅延モード、すなわち、低遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。さらに、受信装置バッファ監視部52は、受信バッファ状況が音切れが生じにくい状況になるのを待って、変更後の遅延モード、すなわち、通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
したがって、遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更されても、受信装置バッファ監視部52は、即座に、変更後の通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給するとは限らない。すなわち、遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更された場合、受信装置バッファ監視部52は、受信バッファ状況が音切れが生じにくい状況になるのを待って、変更後の遅延モードである通常遅延モードを示す遅延制御情報を、圧縮率制御部53に供給する。
そして、圧縮率制御部53は、以上のように、受信装置バッファ監視部52から変更後の遅延モードである通常遅延モードを示す遅延制御情報が供給された直後のタイミングから、通常遅延モードの圧縮率候補の中から圧縮率を選択することにより、データ生成部51での符号化の圧縮率を制御する。
したがって、受信装置バッファ監視部52は、遅延制御情報が示す遅延モードが低遅延モードから通常遅延モードに変更された場合には、受信バッファ状況に応じて、圧縮率制御部53による圧縮率の制御のタイミングを制御するタイミング制御部として機能する。
なお、上述の場合には、通常遅延モードの圧縮率候補、及び、低遅延モードの圧縮率候補として、異なる圧縮率候補を採用することとしたが、通常遅延モードの圧縮率候補、及び、低遅延モードの圧縮率候補としては、同一の圧縮率候補を採用することができる。
<送信処理>
図6は、図5の送信装置12が行う、音響データを送信する送信処理の例を説明するフローチャートである。
ステップS51において、受信装置バッファ監視部52は、データ生成部51から供給される最新の遅延制御情報を取得して、その最新の遅延制御情報が示す遅延モードが、前回の遅延制御情報が示す遅延モードから変更されたかどうか、すなわち、遅延モードの変更があったかどうかを確認し、処理は、ステップS52に進む。
ステップS52では、受信装置バッファ監視部52は、遅延モードの変更が、動作状態を監視状態に移行する監視状態移行条件を満たすかどうかを判定する。ここで、監視状態移行条件としては、遅延制御情報が示す遅延モードが、低遅延モードから通常遅延モードに変更されたことを採用することができる。
ステップS52において、監視状態移行条件が満たされると判定された場合、すなわち、遅延制御情報が示す遅延モードが、低遅延モードから通常遅延モードに変更された場合、処理は、ステップS53に進む。
ステップS53では、受信装置バッファ監視部52は、動作状態が通常状態である場合には、動作状態を通常状態から監視状態に移行し、受信バッファ状況の監視を開始して、処理は、ステップS54に進む。
ステップS54では、受信装置バッファ監視部52は、受信バッファ状況から、再生可能フレーム数を算出し、処理は、ステップS55に進む。
ステップS55では、受信装置バッファ監視部52は、再生可能フレーム数が、音切れが生じにくい値としてあらかじめ決められた閾値(例えば、通常遅延モードの蓄積量の基準値等)未満であるかどうかを判定する。
ステップS55において、再生可能フレーム数が、閾値未満でないと判定された場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっている場合、処理は、ステップS59に進む。
また、ステップS55において、再生可能フレーム数が、閾値未満であると判定された場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっていない場合、処理は、ステップS56に進む。
ステップS56では、受信装置バッファ監視部52は、データ生成部51からの最新の遅延制御情報を、低遅延モードを示す遅延制御情報に設定(変更)し、圧縮率制御部53に供給して、処理は、ステップS60に進む。
一方、ステップS52において、監視状態移行条件が満たされないと判定された場合、すなわち、データ生成部51から受信装置バッファ監視部52に供給された遅延制御情報が示す遅延モードが、低遅延モードから通常遅延モードに変更されていない場合、処理は、ステップS57に進む。
ステップS57では、受信装置バッファ監視部52は、動作状態が監視状態であるかどうかを判定する。
ステップS57において、動作状態が監視状態でないと判定された場合、すなわち、動作状態が通常状態である場合、受信装置バッファ監視部52は、データ生成部51からの遅延制御情報を、圧縮率制御部53に供給し、処理は、ステップS58及びS59をスキップして、ステップS60に進む。
また、ステップS57において、動作状態が監視状態であると判定された場合、処理は、ステップS58に進む。
ステップS58では、受信装置バッファ監視部52は、監視状態を解除して、動作状態を通常状態に移行する監視状態解除条件を満たすかどうかを判定する。ここで、監視状態解除条件としては、例えば、遅延制御情報が示す遅延モードが、通常遅延モードから低遅延モードに変更されたことを採用することができる。
ステップS58において、監視状態解除条件が満たされないと判定された場合、すなわち、遅延制御情報が示す遅延モードが、通常遅延モードから低遅延モードに変更されていない場合、処理は、ステップS54に進み、以下、上述した処理が行われる。
また、ステップS58において、監視状態解除条件が満たされると判定された場合、処理は、ステップS59に進み、受信装置バッファ監視部52は、監視状態を解除して、動作状態を通常状態に移行する。さらに、受信装置バッファ監視部52は、データ生成部51からの遅延制御情報を、圧縮率制御部53に供給し、処理は、ステップS59からステップS60に進む。
ステップS60では、圧縮率制御部53は、受信装置バッファ監視部52から圧縮率制御部53に供給される遅延制御情報に応じて、その遅延制御情報が示す遅延モードの圧縮率候補を、圧縮率の制御に用いる圧縮率候補である注目圧縮率候補に設定し、処理は、ステップS61に進む。
ステップS61では、圧縮率制御部53は、注目圧縮率候補の中から、バッファ33の蓄積量に応じて、圧縮率を選択し、データ生成部51に供給することで、データ生成部51の圧縮率を制御し、処理は、ステップS62に進む。
ステップS62では、データ生成部51は、図2のステップS11と同様に、供給装置11から供給される音響データとしてのLPCMデータをフレーム単位で符号化し、処理は、ステップS63に進む。但し、ステップS62では、データ生成部51は、直前のステップS61で圧縮率制御部53から供給される圧縮率で符号化を行う。
ステップS63では、データ生成部51は、図2のステップS12と同様に、直前に符号化を行った音響データのフレームである注目フレームの感知特徴量としてのSFやトーナリティを求め、処理は、ステップS64に進む。
ステップS64では、データ生成部51は、図2のステップS13と同様に、注目フレームの感知特徴量と閾値とを比較し、その比較結果に応じて、注目フレームの符号化データに対するデータ制御情報を生成する。そして、データ生成部51は、データ制御情報を、受信装置バッファ監視部52に供給し、処理は、ステップS64から、ステップS65に進む。
ステップS65では、受信装置バッファ監視部52は、直前に行われたステップS64で、データ生成部51から供給されたデータ制御情報(フラグ)を、図示せぬFIFOに記憶させることにより、データ制御情報の履歴(フラグ情報)を更新し、処理は、ステップS66に進む。
なお、FIFOに、そのFIFOの容量分のデータ制御情報が記憶されている場合、受信装置バッファ監視部52は、最古のデータ制御情報をFIFOから削除し、最新のデータ制御情報をFIFOに記憶させる。受信装置バッファ監視部52は、動作状態が監視状態である場合に、FIFOに記憶されたデータ制御情報(の履歴)から、受信バッファ状況を認識する。
ステップS66ないしS68では、図2のステップS14ないしS16の場合とそれぞれ同様の処理が行われる。
なお、ステップS51ないしS68の処理は、必要に応じて、パイプラインで行われる。
以上のように、図5の送信装置12では、図2の場合と同様の処理が行われる他、遅延制御情報(が示す遅延モード)に応じて、注目圧縮率候補が設定され、その注目圧縮率候補を用い、バッファ33の蓄積量に応じて、圧縮率が制御されるので、受信装置21での音響データの遅延時間の切り替えを、無線通信を切断せずに、容易に行うことができる他、遅延モード、及び、伝送路の状態によって、圧縮率を適切に制御し、音切れが生じることを抑制するとともに、伝送路の状態が良好である場合には、出力装置22から出力される音響を高音質にすることができる。
なお、図5の送信装置12では、バッファ33の蓄積量を伝送路の状態とみなして、その伝送路の状態としてのバッファ33の蓄積量に応じて、圧縮率を適応的に制御することとしたが、圧縮率は、その他、ユーザの操作等に応じて制御する等の種々のバリエーションをとることができる。
また、上述の場合には、受信装置バッファ監視部52において、データ制御情報の履歴(系列)から、受信装置21のバッファ44の受信バッファ状況を推定することとしたが、その他、例えば、受信装置21が、パケットを正常受信することができたかどうかを表すメッセージを、送信装置12に無線通信で返す場合には、受信装置21に、メッセージとともに、受信バッファ状況(から得られる再生可能フレーム数)を送信させ、送信装置12では、受信装置21から送信されてくる受信バッファ状況を用いて、上述の場合と同様の処理を行う等の、様々なバリエーションをとることができる。
<送信装置12及び受信装置21の第3の構成例>
図7は、図1の送信装置12及び受信装置21の第3の構成例を示すブロック図である。
なお、図中、図2又は図5の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図7において、送信装置12は、バッファ33、パケット化部34、通信部35、適応遅延制御部61、遅延制御情報生成部62、データ生成部63、受信装置バッファ監視部64、及び、圧縮率制御部65を有する。
したがって、図7の送信装置12は、バッファ33、パケット化部34、及び、通信部35を有する点で、図5の場合と共通する。但し、図7の送信装置12は、適応遅延制御部61が新たに設けられている点、並びに、遅延制御情報生成部31、データ生成部51、受信装置バッファ監視部52、及び、圧縮率制御部53に代えて、遅延制御情報生成部62、データ生成部63、受信装置バッファ監視部64、及び、圧縮率制御部65がそれぞれ設けられている点で、図5の場合と相違する。
また、図7において、受信装置21は、通信部41、パケット分解部42、遅延制御情報解析部43、バッファ44、データ出力部46、LPCMバッファ47、及び、データ制御部71を有する。
したがって、図7の受信装置21は、通信部41、パケット分解部42、遅延制御情報解析部43、バッファ44、データ出力部46、及び、LPCMバッファ47を有する点で、図2及び図5の場合と共通する。但し、図7の受信装置21は、データ制御部45に代えて、データ制御部71が設けられている点で、図2及び図5の場合と相違する。
図7では、送信装置12及び受信装置21が、図5の場合と同様に、遅延時間を制御する(切り替える)とともに、送信装置12が、伝送路の状態(通信状況)に応じて、音響データを符号化するときの圧縮率を適応的に制御するが、低遅延モードの遅延時間として、複数の時間が用意されている。
すなわち、図2及び図5では、低遅延モードの遅延時間が、あらかじめ決められた1個の遅延時間であることを前提としたが、図7では、低遅延モードの遅延時間として、複数の時間、例えば、3個の時間が用意されている。以下、この3個の時間それぞれを遅延時間とする低遅延モードを、低遅延モード1,2,3と記載する。低遅延モード1,2,3の順で、遅延時間が短い時間になることとする。
図7の送信装置12では、遅延モード、ひいては、遅延時間が、伝送路の状態(通信状況)を表すバッファ33の蓄積量に応じて、適応的に変化する。
適応遅延制御部61は、間欠的に、バッファ33の蓄積量を取得し、そのバッファ33の蓄積量(の系列)に応じて、低遅延モード1ないし3の中から、1つの低遅延モードを選択し、遅延制御情報生成部62に供給する。ここで、適応遅延制御部61が低遅延モード1ないし3の中から選択する低遅延モードを、蓄積量ベースの低遅延モードともいう。
遅延制御情報生成部62は、図2の遅延制御情報生成部62と同様に、そこに供給される遅延モードの切り替えの要求に応じて、低遅延モード又は通常遅延モードを示す遅延制御情報を生成する。
さらに、遅延制御情報生成部62は、適応遅延制御部61から供給される蓄積量ベースの低遅延モードに応じて、遅延制御情報が示す遅延モード、ひいては遅延時間を変更する。
すなわち、例えば、遅延制御情報生成部62は、遅延制御情報が示す遅延モードが、通常遅延モードである場合、その通常遅延モードを示す遅延制御情報を、そのまま、データ生成部63に供給する。
また、例えば、遅延制御情報生成部62は、遅延制御情報が示す遅延モードが、低遅延モードである場合、その遅延制御情報が示す低遅延モードを、適応遅延制御部61から供給される蓄積量ベースの低遅延モード(低遅延モード1,2、又は、3)に変更し(変化させ)、その変更後の遅延制御情報を、データ生成部63に供給する。
したがって、図7では、遅延制御情報生成部62からデータ生成部63に供給される遅延制御情報が示す遅延モードには、通常遅延モードと、低遅延モード1ないし3との4種類がある。例えば、通常遅延モード及び低遅延モード1ないし3は、値0,1,2,3で、それぞれ表される。
データ生成部63は、図5のデータ生成部51と同様に、圧縮率制御部65の制御に従った圧縮率(圧縮率制御部65から供給される圧縮率)で、供給装置11からの音響データをフレームごとに符号化する。
また、データ生成部63は、図5のデータ生成部51と同様に、符号化データに対応する音響データのフレームに対して、感知特徴量に基づき、データ制御情報を生成する。
さらに、データ生成部63は、図5のデータ生成部51と同様に、音響データのフレームの符号化により得られる符号化データと、そのフレームのデータ制御情報、及び、そのフレームに対する、遅延制御情報生成部62からの遅延制御情報とをセットにした送信対象データを生成し、バッファ33に供給する。
さらに、データ生成部63は、図5のデータ生成部51と同様に、音響データの各フレームのデータ制御情報及び遅延制御情報を、受信装置バッファ監視部64に供給する。
なお、データ生成部63は、データ生成部63で扱う遅延制御情報が、通常遅延モード及び低遅延モードの2種類の遅延モードを示す遅延制御情報ではなく、通常遅延モード及び3種類の低遅延モード1ないし3を示す遅延制御情報である点が、図5のデータ生成部51と異なる。
受信装置バッファ監視部64は、図5の受信装置バッファ監視部52と同様に、データ生成部63からのデータ制御情報から、受信装置21のバッファ44の受信バッファ状況を推定し、その受信バッファ状況を監視する。
すなわち、受信装置バッファ監視部64は、データ生成部63からのデータ制御情報を順次記憶することで、最新の一定数のデータ制御情報を記憶する。
受信装置バッファ監視部64は、データ生成部63からの最新の遅延制御情報が示す遅延モードと、前回の遅延制御情報が示す遅延モードとを比較し、その比較結果と受信バッファ状況とに応じて、通常遅延モード、低遅延モード1,2、又は、3を示す遅延制御情報を、圧縮率制御部65に供給する。
具体的には、最新の遅延制御情報が示す遅延モードが、前回の遅延制御情報が示す遅延モードから変更されておらず、かつ、受信装置バッファ監視部64の動作状態が通常状態である場合、受信装置バッファ監視部64は、最新の遅延制御情報を、圧縮率制御部65に供給する。
最新の遅延制御情報が示す遅延モードが低遅延モード(低遅延モード1ないし3のいずれか)であり、前回の遅延制御情報が示す遅延モードが通常遅延モードである場合、すなわち、遅延モードが通常遅延モードから低遅延モードに変更された(変化した)場合、受信装置バッファ監視部64は、最新の遅延制御情報を、圧縮率制御部65に供給する。
最新の遅延制御情報が示す遅延モードが通常遅延モードであり、前回の遅延制御情報が示す遅延モードが低遅延モードである場合、すなわち、遅延モードが低遅延モードから通常遅延モードに変更された場合、又は、最新の遅延制御情報が示す遅延モードが低遅延モード#iであり、前回の遅延制御情報が示す遅延モードが、より遅延時間が短い低遅延モード#jである場合(j>i)、すなわち、遅延モードが低遅延モード#jから、より遅延時間が長い低遅延モード#iに変更された場合、受信装置バッファ監視部64は、動作状態を監視状態に移行する。
監視状態では、受信装置バッファ監視部64は、図5の受信装置バッファ監視部52と同様に、記憶しているデータ制御情報の系列(履歴)から、受信装置21のバッファ44の受信バッファ状況を推定し、その受信バッファ状況を監視する。そして、受信装置バッファ監視部64は、受信バッファ状況から、受信装置21のバッファ44に記憶されている符号化データについて、データ制御情報に基づく複製(挿入)を行った場合に、再生可能なフレームの数である再生可能フレーム数を算出する。
さらに、受信装置バッファ監視部64は、再生可能フレーム数を、音切れが生じにくい値としてあらかじめ決められた閾値と比較する。
受信装置バッファ監視部64が再生可能フレーム数と比較する閾値としては、例えば、通常遅延モードの基準値等の固定の値を採用することもできるし、最新の遅延制御情報が示す遅延モードに対応する値を採用することもできる。
最新の遅延制御情報が示す遅延モードに対応する値としては、最新の遅延制御情報が示す遅延モードの(バッファ44の)蓄積量の基準値を採用することができる。遅延モードの蓄積量の基準値とは、その遅延モードの遅延時間として、適切な時間としてあらかじめ決められた時間分のフレーム数である。
受信装置バッファ監視部64は、監視状態において、再生可能フレーム数が閾値を超えた場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっている場合、監視状態を解除して、動作状態を通常状態に移行し、最新の遅延制御情報を、圧縮率制御部65に供給する。
一方、監視状態において、再生可能フレーム数が閾値を超えていない場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっていない場合、受信装置バッファ監視部64は、動作状態を監視状態のままにして、現在の監視状態に移行する直前にデータ生成部51から供給された遅延制御情報の直前に供給された遅延制御情報を、圧縮率制御部65に供給する。
なお、受信装置バッファ監視部64は、動作状態が監視状態である場合に、最新の遅延制御情報が示す遅延モードが低遅延モード(低遅延モード1ないし3のいずれか)であり、前回の遅延制御情報が示す遅延モードが通常遅延モードであったとき、すなわち、遅延モードが通常遅延モードから低遅延モードに変更されたとき、又は、最新の遅延制御情報が示す遅延モードが低遅延モード#j'であり、前回の遅延制御情報が示す遅延モードが、より遅延時間が長い低遅延モード#i'である場合(j'>i')、すなわち、遅延モードが低遅延モード#i'から、より遅延時間が短い低遅延モード#j'に変更されたとき、監視状態を解除して、動作状態を通常状態に移行し、最新の遅延制御情報を、圧縮率制御部65に供給する。
受信装置バッファ監視部64において、以上の処理が行われることにより、図5の受信装置バッファ監視部52の場合と同様に、遅延モードが、低遅延モードから通常遅延モードに変更された直後や、低遅延モード#jからより遅延時間が長い低遅延モード#iに変更された場合に、受信装置21のバッファ44の蓄積量が小になっている(遅延時間が小になっている)ことに起因して、音切れが生じることを抑制することができる。
なお、受信装置バッファ監視部64でも、図5の受信装置バッファ監視部52で説明した場合と同様に、遅延モードが低遅延モードから通常遅延モードに変更された場合、又は、低遅延モード#jからより遅延時間が長い低遅延モード#iに変更された場合に、受信装置21のバッファ44の受信バッファ状況を監視する監視状態になる他、遅延モードが通常遅延モードから低遅延モードに変更された場合、又は、低遅延モード#iからより遅延時間が短い低遅延モード#jに変更された場合にも、監視状態になることができる。
圧縮率制御部65は、図5の圧縮率制御部53と同様に、バッファ33の蓄積量を間欠的に取得し、そのバッファ33の蓄積量と、受信装置バッファ監視部64から供給される遅延制御情報が示す遅延モードとに応じて、圧縮率を求め、データ生成部63に供給する。
但し、受信装置バッファ監視部64から圧縮率制御部65に供給される遅延制御情報が示す遅延モードには、低遅延モードについて、低遅延モード1ないし3があり、圧縮率制御部65は、低遅延モードについては、低遅延モード1ないし3を扱う。圧縮率制御部65は、このように、低遅延モードについては、低遅延モード1ないし3を扱う点が、低遅延モード1ないし3を扱わない図5の圧縮率制御部53と異なる。
そのため、圧縮率制御部65においては、例えば、圧縮率候補が、通常遅延モード、及び、低遅延モード1ないし3のそれぞれについて用意されている。
圧縮率制御部65は、受信装置バッファ監視部64から供給される遅延制御情報が示す遅延モードの圧縮率候補の中から、バッファ33の蓄積量(の系列)に応じて、圧縮率を選択することで求め、データ生成部63に供給する。
バッファ33の蓄積量に応じた圧縮率の選択は、図5の圧縮率制御部53の場合と同様に、特開2016-208215号公報に記載されている技術と同様に行うことができる。すなわち、例えば、バッファ33の蓄積量が閾値より大である場合や、増加傾向にある場合には、現在の圧縮率よりも高い圧縮率が選択される。また、例えば、バッファ33の蓄積量が減少傾向にあり、閾値以下の小さい値が継続した場合には、現在の圧縮率よりも低い圧縮率が選択される。
ここで、受信装置バッファ監視部64から圧縮率制御部65に供給される遅延制御情報が示す遅延モードが変更された直後においては、圧縮率制御部65は、図5の圧縮率制御部53の場合と同様に、変更後の遅延モードの圧縮率候補の中から圧縮率を選択することができる。すなわち、圧縮率制御部65は、例えば、変更後の遅延モードの圧縮率候補の中から、遅延モードの変更直前の圧縮率に近い圧縮率候補を、圧縮率に選択することができる。また、圧縮率制御部65は、例えば、変更後の遅延モードの圧縮率候補の中から、遅延モードの変更直前の圧縮率の場合と上述の成功確率が近い圧縮率候補を、圧縮率に選択することができる。
なお、受信装置バッファ監視部64から圧縮率制御部65に供給される遅延制御情報が示す遅延モードの変更が、現在の遅延モードの遅延時間に対して短い遅延時間の遅延モードへの変更である場合には、音切れが生じることを抑制するため、圧縮率制御部65において、変更後の遅延モードの遅延時間が短いほど、データ生成部63に供給される圧縮率が、早急に、高圧縮率になるように、圧縮率の制御を切り替えることが望ましい。
受信装置21のデータ制御部71は、図2及び図5のデータ制御部45と同様に、遅延制御情報解析部43から供給される遅延制御情報及びデータ制御情報、並びに、バッファ44の蓄積量に応じて、バッファ44に記憶された符号化データの挿入や破棄、通常読み出しを、その符号化データの使用方法の制御として行う。
なお、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードには、低遅延モードについて、低遅延モード1ないし3があり、データ制御部71は、低遅延モードについては、低遅延モード1ないし3を扱う。データ制御部71は、このように、低遅延モードについては、低遅延モード1ないし3を扱う点が、低遅延モード1ないし3を扱わない図2及び図5のデータ制御部45と異なる。
<適応遅延制御部61の処理>
図8は、図7の適応遅延制御部61の処理の例を説明する図である。
適応遅延制御部61は、バッファ33の蓄積量(の系列)に応じて、低遅延モード1ないし3の中から、蓄積量ベースの低遅延モード(とする低遅延モード)を選択する。
図8は、適応遅延制御部61が、バッファ33の蓄積量に応じて、低遅延モード1ないし3の中から、蓄積量ベースの低遅延モードを選択する選択方法の例を示している。
すなわち、図8は、現在の蓄積量ベースの低遅延モード(以下、現在低遅延モードともいう)と、現在低遅延モードにおいて、次の蓄積量ベースの低遅延モードを選択するときに、バッファ33の蓄積量(バッファ状態)の統計情報としての、例えば、0.5秒間の蓄積量の移動平均値と比較する閾値A及びBとを示している。
図8では、低遅延モード1の閾値A及びBは、それぞれ0及び1.5になっている。また、低遅延モード2の閾値A及びBは、それぞれ0及び1.0になっており、低遅延モード3の閾値A及びBは、それぞれ0及び0.5になっている。
適応遅延制御部61は、バッファ33の蓄積量の統計情報として、バッファ33の蓄積量の0.5秒間の移動平均値を算出する。なお、移動平均値をとる時間は、0.5秒に限定されるものではない。
適応遅延制御部61は、バッファ33の蓄積量の移動平均値と、現在低遅延モードの閾値A及びBとを比較し、バッファ33の蓄積量の移動平均値が閾値A以下である場合には、現在低遅延モードよりも遅延時間が一段短い低遅延モード#xを、次の蓄積量ベースの低遅延モードに選択する。すなわち、蓄積量ベースの低遅延モードは、現在低遅延モードよりも遅延時間が一段短い低遅延モード#xに切り替えられる。
したがって、例えば、現在低遅延モードが低遅延モード2であり、バッファ33の蓄積量の移動平均値が、閾値A=0以下である場合、すなわち、バッファ33が空であることを示す0であった場合、低遅延モード2よりも遅延時間が一段短い低遅延モード3が、次の蓄積量ベースの低遅延モードに選択される。
また、バッファ33の蓄積量の移動平均値が閾値B以上である場合には、現在低遅延モードよりも遅延時間が一段長い低遅延モード#yが、次の蓄積量ベースの低遅延モードに選択される。すなわち、蓄積量ベースの低遅延モードは、現在低遅延モードよりも遅延時間が一段長い低遅延モード#yに切り替えられる。
したがって、例えば、現在低遅延モードが低遅延モード2であり、バッファ33の蓄積量の移動平均値が、閾値B=1.0以上である場合、低遅延モード2よりも遅延時間が一段長い低遅延モード1が、次の蓄積量ベースの低遅延モードに選択される。
一方、バッファ33の蓄積量の移動平均値が閾値Aより大で、閾値Bより小である場合には、現在低遅延モードが、次の蓄積量ベースの低遅延モードに選択される。すなわち、現在低遅延モードが、そのまま維持される。
なお、図8では、低遅延モード3の閾値Aが0になっているが、ここでは、低遅延モード3より遅延時間が短い低遅延モードは存在しないため、現在低遅延モードが低遅延モード3である場合に、バッファ33の蓄積量の移動平均値が、低遅延モード3の閾値A=0以下であっても、現在低遅延モードである低遅延モード3が、蓄積量ベースの低遅延モードとして、そのまま維持される。
また、図8では、低遅延モード1の閾値Bが1.5になっているが、ここでは、低遅延モード1より遅延時間が長い低遅延モードは存在しないため、現在低遅延モードが低遅延モード1である場合に、バッファ33の蓄積量の移動平均値が、低遅延モード1の閾値B=1.5以上であっても、現在低遅延モードである低遅延モード1が、蓄積量ベースの低遅延モードとして、そのまま維持される。
但し、現在低遅延モードが低遅延モード1である場合に、バッファ33の蓄積量の移動平均値が、低遅延モード1の閾値B=1.5以上であるときには、適応遅延制御部61は、蓄積量ベースの低遅延モードとして、現在低遅延モードである低遅延モード1より遅延時間が長い通常遅延モードを選択し、遅延制御情報生成部62に供給することができる。
この場合、遅延制御情報生成部62は、そこに供給される遅延モードの切り替えの要求に関係なく、適応遅延制御部61からの通常遅延モードを示す遅延制御情報を、データ生成部63に供給する。
<圧縮率制御部65の処理>
図9は、図7の圧縮率制御部65の処理の例を説明する図である。
圧縮率制御部65は、受信装置バッファ監視部64から供給される遅延制御情報が示す遅延モードの圧縮率候補の中から、バッファ33の蓄積量(の系列)に応じて、圧縮率を選択する。
図9は、圧縮率制御部65が、通常遅延モード、及び、低遅延モード1ないし3のそれぞれにおいて、圧縮率を選択する選択基準A及びBと、通常遅延モード、及び、低遅延モード1ないし3それぞれの圧縮率候補との例を示している。
選択基準A及びBとしては、バッファ33の蓄積量を観測する観測時間と、その観測時間のバッファ33の蓄積量の移動平均値と比較する閾値とがある。
選択基準Aが満たされる場合、すなわち、選択基準Aの観測時間のバッファ33の蓄積量の移動平均値が、選択基準Aの閾値以下である場合、現在の遅延モードの圧縮率候補の中から、現在の圧縮率よりも一段低い(小さい)圧縮率候補が、新たな圧縮率として選択される。
選択基準Bが満たされる場合、すなわち、選択基準Bの観測時間のバッファ33の蓄積量の移動平均値が、選択基準Bの閾値以上である場合、現在の遅延モードの圧縮率候補の中から、現在の圧縮率よりも一段高い圧縮率候補が、新たな圧縮率として選択される。
選択基準A及びBのいずれも満たされない場合、現在の圧縮率が維持される。
図9において、例えば、通常遅延モードについては、選択基準Aとしての観測時間及び閾値が、それぞれ、1秒及び0になっており、選択基準Bとしての観測時間及び閾値が、それぞれ、1秒及び0に等しくない値になっている。また、通常遅延モードの圧縮率候補は、1/4を最小圧縮率とする複数の圧縮率{1/4,1/5,1/6,・・・}になっている。
したがって、受信装置バッファ監視部64から圧縮率制御部65に供給される遅延制御情報が示す遅延モードが、通常遅延モードである場合、バッファ33の蓄積量の1秒間の観測時間の移動平均値が、通常遅延モードの選択基準Aの閾値0以下であるとき、すなわち、伝送路の状態が良好であるときには、通常遅延モードの圧縮率候補{1/4,1/5,1/6,・・・}の中から、現在の圧縮率よりも一段低い圧縮率候補が、新たな圧縮率として選択される。例えば、現在の圧縮率が、通常遅延モードの圧縮率候補{1/4,1/5,1/6,・・・}のうちの1/5である場合、現在の圧縮率1/5よりも一段低い圧縮率候補1/4が、新たな圧縮率として選択される。
また、バッファ33の蓄積量の1秒間の観測時間の移動平均値が、通常遅延モードの選択基準Bの閾値0以外(0より大)であるとき、すなわち、伝送路の状態が良好でないときには、通常遅延モードの圧縮率候補{1/4,1/5,1/6,・・・}の中から、現在の圧縮率よりも一段高い圧縮率候補が、新たな圧縮率として選択される。例えば、現在の圧縮率が、通常遅延モードの圧縮率候補{1/4,1/5,1/6,・・・}のうちの1/5である場合、現在の圧縮率1/5よりも一段高い圧縮率候補1/6が、新たな圧縮率として選択される。
図9によれば、遅延モードごとに、移動平均値を求めるのに用いるバッファ33の蓄積量の観測時間が設定されており、したがって、圧縮率制御部65は、遅延制御情報(が示す遅延モード)に応じて、移動平均値を求めるのに用いるバッファ33の蓄積量の観測時間を変更している、ということができる。
なお、図9の最小圧縮率は、データ生成部63で符号化する対象の音響データとして、CD(Compact Disc)に記録される音響データ(サンプリング周波数44.1kHz、音響データのビット数16bit)を採用する場合の例である。データ生成部63で符号化する対象の音響データとして、よりデータ量が大の音響データ、例えば、いわゆるハイレゾリューションの音響データを採用する場合には、CDに記録される音響データを伝送する場合と同程度のサイズの符号化データが得られるように、最小圧縮率としては(ひいては、圧縮率候補も)、図9の場合よりも高い圧縮率が採用される。
<データ制御部71の処理>
図10は、図7のデータ制御部71の処理の例を説明する図である。
データ制御部71は、遅延制御情報解析部43から供給される遅延制御情報及びデータ制御情報、並びに、バッファ44の蓄積量に応じて、バッファ44に記憶された符号化データの挿入や破棄、通常読み出しを制御する。
遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードには、通常遅延モード、及び、低遅延モード1ないし3があり、図10は、通常遅延モード、及び、低遅延モード1ないし3の(バッファ44の)蓄積量の下限閾値A及び上限閾値B、並びに、基準値(各遅延モードの遅延時間として、適切な時間としてあらかじめ決められた時間分のフレーム数)としてのフレーム数の例を示している。
ここで、データ制御部71において、下限閾値A及び上限閾値Bは、バッファ44の蓄積量の、例えば、1秒間等の所定の時間の移動平均値と比較されることとする。
例えば、いま、ある一定期間、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、通常遅延モードであることとする。
この場合、データ制御部71は、バッファ44の蓄積量の1秒間の移動平均値が、通常遅延モードの蓄積量の下限閾値A=40以上で上限閾値B=69以下である場合には、バッファ44に記憶された最古の1フレーム分の符号化データの通常読み出しを行う。
また、バッファ44の蓄積量の1秒間の移動平均値が、通常遅延モードの蓄積量の上限閾値B=69より大である場合、バッファ44の蓄積量を減少させるために、データ制御部71は、図2及び図5のデータ制御部45と同様に、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で破棄する。
さらに、バッファ44の蓄積量の1秒間の移動平均値が、通常遅延モードの蓄積量の下限閾値A=40より小である場合、バッファ44の蓄積量を増加させるために、データ制御部71は、図2及び図5のデータ制御部45と同様に、バッファ44に記憶された符号化データを、その符号化データのデータ制御情報に応じて、フレーム単位で複製(挿入)する。
以上により、通常遅延モードでは、バッファ44の蓄積量は、通常遅延モードの蓄積量の基準値である64(フレーム)付近の値となる。
その後、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、例えば、通常遅延モードから低遅延モード2に変化すると、データ制御部71は、バッファ44の蓄積量の1秒間の移動平均値と比較する下限閾値A及び上限閾値Bを、低遅延モード2の蓄積量の下限閾値A=16及び上限閾値B=20に切り替える。
遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、通常遅延モードから低遅延モード2に変化した直後においては、バッファ44の蓄積量は、通常遅延モードの蓄積量の基準値である64付近の値となっている。
したがって、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、通常遅延モードから低遅延モード2に変化した直後においては、バッファ44の蓄積量の1秒間の移動平均値(64付近)は、低遅延モード2の蓄積量の上限閾値B=20より大になっている。そのため、データ制御部71では、バッファ44の蓄積量を減少させるべく、バッファ44に記憶された符号化データが、その符号化データのデータ制御情報に応じて、フレーム単位で破棄される。符号化データの破棄は、バッファ44の蓄積量が低遅延モード2の蓄積量の基準値である18になるまで続行される。
その後、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、例えば、低遅延モード2から通常遅延モードに変化すると、データ制御部71は、バッファ44の蓄積量の1秒間の移動平均値と比較する下限閾値A及び上限閾値Bを、通常遅延モードの蓄積量の下限閾値A=40及び上限閾値B=69に切り替える。
遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、低遅延モード2から通常遅延モードに変化した直後においては、バッファ44の蓄積量は、低遅延モード2の蓄積量の基準値である18付近の値となっている。
したがって、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードが、低遅延モード2から通常遅延モードに変化した直後においては、バッファ44の蓄積量の1秒間の移動平均値(18付近)は、通常遅延モードの蓄積量の下限閾値A=40より小になっている。そのため、データ制御部71では、バッファ44の蓄積量を増加させるべく、バッファ44に記憶された符号化データが、その符号化データのデータ制御情報に応じて、フレーム単位で複製(挿入)される。符号化データの複製は、バッファ44の蓄積量が通常遅延モードの蓄積量の基準値である64になるまで続行される。
<送信処理>
図11は、図7の送信装置12が行う、音響データを送信する送信処理の例を説明するフローチャートである。
ステップS81において、適応遅延制御部61は、バッファ33の蓄積量に応じて、低遅延モード1ないし3の中から、蓄積量ベースの低遅延モードを選択し、遅延制御情報生成部62に供給して、処理は、ステップS82に進む。
ここで、遅延制御情報生成部62は、そこに供給される遅延モードの切り替えの要求に応じて、低遅延モード又は通常遅延モードを示す遅延制御情報を生成する。
そして、遅延制御情報生成部62は、遅延制御情報が示す遅延モードが、通常遅延モードである場合、その通常遅延モードを示す遅延制御情報を、そのまま、データ生成部63に供給する。また、遅延制御情報生成部62は、遅延制御情報が示す遅延モードが、低遅延モードである場合、その遅延制御情報が示す低遅延モードを、適応遅延制御部61から供給される蓄積量ベースの低遅延モード(低遅延モード1,2、又は、3)に変更し、その変更後の遅延制御情報を、データ生成部63に供給する。データ生成部63は、遅延制御情報生成部62からの遅延制御情報を、受信装置バッファ監視部64に供給する。
ステップS82において、受信装置バッファ監視部64は、図6のステップS51と同様に、データ生成部63から供給される最新の遅延制御情報が示す遅延モードが、前回の遅延制御情報が示す遅延モードから変更されたかどうか、すなわち、遅延モードの変更があったかどうかを確認し、処理は、ステップS83に進む。
ステップS83では、受信装置バッファ監視部64は、遅延モードの変更が、動作状態を監視状態に移行する監視状態移行条件を満たすかどうかを判定する。ここで、ステップS83の監視状態移行条件としては、遅延制御情報が示す遅延モードが、低遅延モードから通常遅延モードに変更されたこと、及び、低遅延モード#jから、より遅延時間が長い低遅延モード#iに変更されたこと(j>i)を採用することができる。
ステップS83において、監視状態移行条件が満たされると判定された場合、処理は、ステップS84に進む。
ステップS84では、受信装置バッファ監視部64は、図6のステップS53と同様に、動作状態が通常状態である場合には、動作状態を通常状態から監視状態に移行し、受信バッファ状況の監視を開始して、処理は、ステップS85に進む。
ステップS85では、受信装置バッファ監視部64は、図6のステップS54と同様に、受信バッファ状況から、再生可能フレーム数を算出し、処理は、ステップS86に進む。
ステップS86では、受信装置バッファ監視部64は、再生可能フレーム数が、音切れが生じにくい値としてあらかじめ決められた閾値未満であるかどうかを判定する。ここで、ステップS86の判定の閾値としては、データ生成部63から受信装置バッファ監視部64に供給される遅延制御情報が示す遅延モードごとに異なる値、すなわち、例えば、その遅延モードの蓄積量の基準値(図10)を採用することとする。
ステップS86において、再生可能フレーム数が、閾値未満でないと判定された場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっている場合、処理は、ステップS90に進む。
また、ステップS86において、再生可能フレーム数が、閾値未満であると判定された場合、すなわち、受信バッファ状況が音切れが生じにくい状況になっていない場合、処理は、ステップS87に進む。
ステップS87では、受信装置バッファ監視部64は、データ生成部63からの最新の遅延制御情報を、監視状態になる直前に、データ生成部63から供給された遅延制御情報の直前に供給された遅延制御情報に設定(変更)し、圧縮率制御部65に供給して、処理は、ステップS91に進む。
一方、ステップS83において、監視状態移行条件が満たされないと判定された場合、処理は、ステップS88に進む。
ステップS88では、受信装置バッファ監視部64は、図6のステップS57と同様に、動作状態が監視状態であるかどうかを判定する。
ステップS88において、動作状態が監視状態でないと判定された場合、すなわち、動作状態が通常状態である場合、受信装置バッファ監視部64は、データ生成部63からの遅延制御情報を、圧縮率制御部65に供給し、処理は、ステップS89及びS90をスキップして、ステップS91に進む。
また、ステップS88において、動作状態が監視状態であると判定された場合、処理は、ステップS89に進む。
ステップS89では、受信装置バッファ監視部64は、監視状態を解除して、動作状態を通常状態に移行する監視状態解除条件を満たすかどうかを判定する。ここで、ステップS89の監視状態解除条件としては、遅延制御情報が示す遅延モードが、通常遅延モードから低遅延モード(1ないし3のいずれか)に変更されたこと、及び、低遅延モード#i'から、より遅延時間が短い低遅延モード#j'に変更されたこと(j'>i')を採用することができる。
ステップS89において、監視状態解除条件が満たされないと判定された場合、処理は、ステップS85に進み、以下、上述した処理が行われる。
また、ステップS89において、監視状態解除条件が満たされると判定された場合、処理は、ステップS90に進み、受信装置バッファ監視部64は、監視状態を解除して、動作状態を通常状態に移行する。さらに、受信装置バッファ監視部64は、データ生成部63からの最新の遅延制御情報を、圧縮率制御部65に供給し、処理は、ステップS90からステップS91に進む。
ステップS91では、圧縮率制御部65は、受信装置バッファ監視部64から圧縮率制御部65に供給される遅延制御情報に応じて、その遅延制御情報が示す遅延モードの圧縮率候補を、圧縮率の制御に用いる圧縮率候補である注目圧縮率候補に設定し、すなわち、通常遅延モード、及び、低遅延モード1ないし3のうちのいずれかの圧縮率候補を注目圧縮率候補に設定し、処理は、ステップS92に進む。
ステップS92では、圧縮率制御部65は、通常遅延モード、及び、低遅延モード1ないし3の圧縮率候補のうちの、注目圧縮率候補の中から、バッファ33の蓄積量に応じて、図9で説明したように、圧縮率を選択し、データ生成部63に供給することで、データ生成部63の圧縮率を制御し、処理は、ステップS93に進む。
ステップS93では、データ生成部63は、供給装置11から供給される音響データのフレームを、圧縮率制御部65から供給される圧縮率で符号化し、処理は、ステップS94に進む。
ステップS94では、データ生成部63は、図2のステップS12と同様に、直前に符号化を行った音響データのフレームである注目フレームの感知特徴量としてのSFやトーナリティを求め、処理は、ステップS95に進む。
ステップS95では、データ生成部63は、図2のステップS13と同様に、注目フレームの感知特徴量に応じて、注目フレームの符号化データに対するデータ制御情報を生成する。そして、データ生成部63は、データ制御情報を、受信装置バッファ監視部64に供給し、処理は、ステップS95から、ステップS96に進む。
ステップS96では、受信装置バッファ監視部64は、図6のステップS65と同様に、直前に行われたステップS95で、データ生成部63から供給されたデータ制御情報を、図示せぬFIFOに記憶させ、処理は、ステップS97に進む。
ステップS97ないしS99では、図2のステップS14ないしS16の場合とそれぞれ同様の処理が行われる。
なお、ステップS81ないしS99の処理は、必要に応じて、パイプラインで行われる。
ここで、図7の受信装置21が行う受信処理では、遅延制御情報解析部43からデータ制御部71に供給される遅延制御情報が示す遅延モードに、通常遅延モード、及び、低遅延モード1ないし3があり、データ制御部71が、遅延制御情報解析部43から供給される遅延制御情報が示す通常遅延モード、及び、低遅延モード1ないし3のうちのいずれかに応じて、その遅延モードの蓄積量の下限閾値A及び上限閾値B(図10)を設定し、バッファ44の蓄積量及びデータ制御情報に応じて、バッファ44に記憶された符号化データの挿入や破棄、通常読み出しの制御を行う他は、図4の場合と同様の処理が行われるので、その説明は省略する。
図7の送信装置12及び受信装置21でも、図5の場合と同様に、受信装置21での音響データの遅延時間の切り替えを、無線通信を切断せずに、容易に行うことができる他、遅延モード、及び、伝送路の状態によって、圧縮率を適切に制御し、音切れが生じることを抑制するとともに、伝送路の状態が良好である場合には、出力装置22から出力される音響を高音質にすることができる。
したがって、例えば、スマートフォンに記憶したオーディオコンテンツをBluetooth(登録商標)による無線通信で送信して再生している場合に、再生を、画像及び音響を伴うビデオコンテンツに切り替えるときには、オーディオコンテンツの再生中は、遅延モードを、再生が安定する通常遅延モードとし、ビデオコンテンツの再生中は、画像と付随する音響とのズレが少なくなるように、遅延モードを低遅延モードに切り替えることが、送信側と受信側との接続を再接続せずに、かつ、ユーザの操作を介さずに実現することができる。
さらに、伝送路の状態に応じて、圧縮率を最適に自動で調整することができ、ユーザは、その場の伝送路の状態を意識することなく、適切な遅延時間とより良い音質で安心してビデオコンテンツやオーディオコンテンツを楽しむことができる。
<本技術を適用したコンピュータの説明>
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
図12は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
なお、本技術は、以下の構成をとることができる。
<1>
無線通信で送信されてくる
データと、
前記データの使用方法を制御するためのデータ制御情報と、
前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報と
を受信する受信部と、
前記データ制御情報及び前記遅延制御情報とに応じて、前記データの使用方法を制御するデータ制御部と、
前記使用方法が制御されたデータを出力するデータ出力部と
を備える受信装置。
<2>
前記データ制御情報は、データの挿入、データの破棄、又は、データの挿入と破棄の両方の許可又は禁止に関する情報である
<1>に記載の受信装置。
<3>
前記データをバッファリングするバッファをさらに備え、
前記データ制御部は、前記遅延制御情報、前記データ制御情報、及び、前記バッファの蓄積量に応じて、前記バッファにバッファリングされた前記データの挿入及び破棄を制御する
<2>に記載の受信装置。
<4>
前記データ制御部は、
前記遅延制御情報に応じて、前記バッファの蓄積量と比較する閾値を設定し、
前記バッファの蓄積量と前記閾値との比較結果に応じて、前記バッファにバッファリングされた前記データの挿入及び破棄を制御する
<3>に記載の受信装置。
<5>
無線通信で送信されてくる
データと、
前記データの使用方法を制御するためのデータ制御情報と、
前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報と
を受信することと、
前記データ制御情報及び前記遅延制御情報とに応じて、前記データの使用方法を制御することと、
前記使用方法が制御されたデータを出力することと
を含む受信方法。
<6>
無線通信で送信されてくる
データと、
前記データの使用方法を制御するためのデータ制御情報と、
前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報と
を受信する受信部と、
前記データ制御情報及び前記遅延制御情報とに応じて、前記データの使用方法を制御するデータ制御部と、
前記使用方法が制御されたデータを出力するデータ出力部と
して、コンピュータを機能させるためのプログラム。
<7>
無線通信で送信されてくるデータを受信する受信装置で前記データの使用方法を制御するためのデータ制御情報を生成するデータ制御情報生成部と、
前記受信装置で前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報を生成する遅延制御情報生成部と、
前記データ、前記データ制御情報、及び、前記遅延制御情報を、無線通信で送信する送信部と
を備える送信装置。
<8>
前記データ制御情報は、前記受信装置でのデータの挿入、データの破棄、又は、データの挿入と破棄の両方の許可又は禁止に関する情報である
<7>に記載の送信装置。
<9>
前記データ制御情報生成部は、前記受信装置においてデータの挿入又は破棄を行った場合に、前記データの挿入又は破棄が感知される程度を表す感知特徴量に基づいて、前記データ制御情報を生成する
<8>に記載の送信装置。
<10>
前記データを所定の圧縮率で符号化する符号化部と、
前記遅延制御情報に応じて、前記データの符号化の前記圧縮率を制御する圧縮率制御部と
をさらに備える<8>又は<9>に記載の送信装置。
<11>
前記データの符号化により得られる符号化データをバッファリングする送信バッファをさらに備え、
前記圧縮率制御部は、前記遅延制御情報、及び、前記送信バッファの蓄積量に応じて、前記圧縮率を制御する
<10>に記載の送信装置。
<12>
前記受信装置は、前記データを受信バッファにバッファリングし、前記遅延制御情報、前記データ制御情報、及び、前記受信バッファの蓄積量に応じて、前記受信バッファにバッファリングされた前記データの挿入及び破棄を制御し、
前記遅延制御情報が示す遅延モードは、第1の遅延モードと、前記第1の遅延モードより遅延時間が短い第2の遅延モードとを含み、
前記受信バッファの状況である受信バッファ状況を取得し、前記遅延制御情報が示す遅延モードが第2の遅延モードから、前記第1の遅延モードに変更された場合に、前記受信バッファ状況に応じて、前記圧縮率制御部による前記圧縮率の制御のタイミングを制御するタイミング制御部をさらに備える
<10>又は<11>に記載の送信装置。
<13>
前記遅延制御情報生成部は、前記送信バッファの蓄積量に応じて、前記遅延制御情報が示す遅延モードの遅延時間を変更する
<11>又は<12>に記載の送信装置。
<14>
前記遅延制御情報が示す遅延モードは、第1の遅延モードと、前記第1の遅延モードより遅延時間が短い第2の遅延モードとを含み、
前記遅延制御情報生成部は、前記送信バッファの蓄積量に応じて、第2の遅延モードの遅延時間を変更する
<12>に記載の送信装置。
<15>
前記圧縮率制御部は、
前記遅延制御情報、及び、所定の観測時間内の前記送信バッファの蓄積量に応じて、前記圧縮率を制御し、
前記遅延制御情報に応じて、前記観測時間を変更する
<11>ないし<14>のいずれかに記載の送信装置。
<16>
無線通信で送信されてくるデータを受信する受信装置で前記データの使用方法を制御するためのデータ制御情報を生成することと、
前記受信装置で前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報を生成することと、
前記データ、前記データ制御情報、及び、前記遅延制御情報を、無線通信で送信することと
を含む送信方法。
<17>
無線通信で送信されてくるデータを受信する受信装置で前記データの使用方法を制御するためのデータ制御情報を生成するデータ制御情報生成部と、
前記受信装置で前記データを処理するときの遅延時間に関する遅延モードを示す遅延制御情報を生成する遅延制御情報生成部と、
前記データ、前記データ制御情報、及び、前記遅延制御情報を、無線通信で送信する送信部と
して、コンピュータを機能させるためのプログラム。