(57)【特許請求の範囲】
【請求項１】
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、
複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、
無線伝送される前の前記送信符号化データを一時的に保持する送信待ちバッファ部と、
前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信部と、
前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが前記符号化部によって格納される符号化データバッファ部と、
前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部と
を備える送信装置。
【請求項２】
前記送信待ちデータ数を間歇的に取得して蓄積する蓄積部をさらに備え、
前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数に基づき、前記格納フレーム数を決定する
請求項１に記載の送信装置。
【請求項３】
前記格納フレーム数決定部は、前記蓄積部に蓄積されている最新の前記送信待ちデータ数が所定の閾値を超えた場合、前記格納フレーム数を増加させ、
前記圧縮率決定部は、増加された前記格納フレーム数に基づき、前記符号化処理で採用される前記圧縮率を上げる
請求項２に記載の送信装置。
【請求項４】
前記符号化部は、前記圧縮率が上げられた場合、上げられる前の前記圧縮率が採用されて前記符号化処理が行われた前記符号化データが前記符号化データバッファ部に残っているときには、フレーム単位で前記符号化処理における前記圧縮率が異なる前記符号化データを混載した前記送信符号化データを生成する
請求項２または３に記載の送信装置。
【請求項５】
前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数の所定の観測時間の履歴が所定の条件を満たす場合、前記格納フレーム数を減少させ、
前記圧縮率決定部は、減少された前記格納フレーム数に基づき、前記符号化処理で採用される前記圧縮率を下げる
請求項２乃至４のいずれかに記載の送信装置。
【請求項６】
前記所定の観測時間を延長させるペナルティを設定するペナルティ設定部を
さらに備える請求項５に記載の送信装置。
【請求項７】
前記ペナルティ設定部は、前記圧縮率の変更履歴に基づいて前記ペナルティを設定または解除する
請求項６に記載の送信装置。
【請求項８】
データを無線伝送する送信装置の送信方法において、
前記送信装置による、
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化ステップと、
無線伝送される前の前記送信符号化データを一時的に送信待ちバッファ部に保持する保持ステップと、
前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信ステップと、
前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが符号化データバッファ部に格納される格納ステップと、
前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定ステップと、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定ステップと
を含む送信方法。
【請求項９】
コンピュータを、
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、
無線伝送される前の前記送信符号化データを一時的に保持する送信待ちバッファ部と、
前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信部と、
前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが前記符号化部によって格納される符号化データバッファ部と、
前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、送信装置、送信方法、およびプログラムに関し、特に、オーディオデータなどを遅延なく無線送信できるようにした送信装置、送信方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、デジタル機器間の近距離無線通信規格としてBluetooth（商標）が知られている。Bluetooth“Advanced Audio Distribution Profile”（A2DP）を用いれば、例えば、スマートフォンやウォークマン（ソニー株式会社の登録商標）に代表される携帯音楽プレーヤなどで再生したオーディオデータをスピーカやヘッドホンにリアルタイムに無線伝送することができる。
【０００３】
ただし、使用環境によっては通信品質の劣化などに起因してデータの伝達が滞ってしまい、いわゆる音切れなどの不具合が発生してしまうことが起こり得る。
【０００４】
そこで従来、通信品質の劣化に伴う音切れを抑止するための方法として、送信装置側で通信品質を推定し、通信品質が劣化している場合には、データ伝送単位のサイズが小さくなるように、データの圧縮率を上げる方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０９５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１に記載されている方法では、送信装置側で通信品質を推定する必要があった。また、Bluetoothのようにデータ伝送単位のサイズが予め何種類かに決まっている場合、変更前後のデータ転送単位のサイズが大きく異なると、圧縮率も大きく変更することになってしまい、音質にも明らかな違いが生じてしまっていた。
【０００７】
さらに、いわゆる音切れは、通信品質の劣化だけが原因ではなく、送信装置側の処理負荷が高い場合などにも発生し得るが、そのような場合、特許文献１に記載されている方法で対処することができなかった。
【０００８】
本開示はこのような状況に鑑みてなされたものであり、通信品質を推定することなく、再生が途切れないように再生の対象とするデータを送信できるようにするものである。
【課題を解決するための手段】
【０００９】
本開示の一側面である送信装置は、無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、無線伝送される前の前記送信符号化データを一時的に保持する送信待ちバッファ部と、前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信部と、前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが前記符号化部によって格納される符号化データバッファ部と、前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部とを備える。
【００１０】
本開示の一側面である送信装置は、前記送信待ちデータ数を間歇的に取得して蓄積する蓄積部をさらに備えることができ、前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数に基づき、前記格納フレーム数を決定することができる。
【００１１】
前記格納フレーム数決定部は、前記蓄積部に蓄積されている最新の前記送信待ちデータ数が所定の閾値を超えた場合、前記格納フレーム数を増加させることができ、前記圧縮率決定部は、増加された前記格納フレーム数に基づき、前記符号化処理で採用される圧縮率を上げることができる。
【００１２】
前記符号化部は、前記圧縮率が上げられた場合、上げられる前の前記圧縮率が採用されて前記符号化処理が行われた前記符号化データが前記符号化データバッファ部に残っているときには、フレーム単位で前記符号化処理における前記圧縮率が異なる前記符号化データを混載した前記送信符号化データを生成することができる。
【００１３】
前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数の所定の観測時間の履歴が所定の条件を満たす場合、前記格納フレーム数を減少させることができ、前記圧縮率決定部は、減少された前記格納フレーム数に基づき、前記符号化処理で採用される圧縮率を下げることができる。
【００１４】
前記所定の観測時間を延長させるペナルティを設定するペナルティ設定部をさらに備えることができる。
【００１５】
前記ペナルティ設定部は、前記圧縮率の変更履歴に基づいて前記ペナルティを設定または解除することができる。
【００１６】
本開示の一側面である送信方法は、  データを無線伝送する送信装置の送信方法において、前記送信装置による、無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化ステップと、無線伝送される前の前記送信符号化データを一時的に送信待ちバッファ部に保持する保持ステップと、前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信ステップと、前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが符号化データバッファ部に格納される格納ステップと、前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定ステップと、決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定ステップとを含む。
【００１７】
本開示の一側面のプログラムは、無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、無線伝送される前の前記送信符号化データを一時的に保持する送信待ちバッファ部と、前記送信待ちバッファ部に保持されている前記送信符号化データを無線伝送する送信部と、前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが前記符号化部によって格納される符号化データバッファ部と、前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部として機能させる。
【００１８】
本開示の一側面においては、無線伝送される前の前記送信符号化データが一時的に送信待ちバッファ部に保持される。前記送信待ちバッファ部に出力できる複数フレーム分の前記符号化データが符号化データバッファ部に格納される。そして、前記送信待ちバッファ部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数が決定され、決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率が決定される。
【発明の効果】
【００１９】
本開示の一側面によれば、通信品質を推定することなく、再生が途切れないように再生の対象とするデータを送信できる。
【図面の簡単な説明】
【００２０】
【図１】本開示の概要を説明するための図である。
【図２】各種パラメータの一例を示す図である。
【図３】本開示を適用した送信装置の構成例を示すブロック図である。
【図４】データ送信処理を説明するフローチャートである。
【図５】符号化制御処理を詳述するフローチャートである。
【図６】第１増加フレーム数算出処理を詳述するフローチャートである。
【図７】第２増加フレーム数算出処理を詳述するフローチャートである。
【図８】符号化制御終端処理を詳述するフローチャートである。
【図９】符号化処理を詳述するフローチャートである。
【図１０】遅延制御を行わない場合の圧縮率の遷移を示す図である。
【図１１】遅延制御を行った場合の圧縮率の遷移を示す図である。
【図１２】汎用のコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本開示を実施するための最良の形態（以下、実施の形態と称する）について、図面を参照しながら詳細に説明する。
【００２２】
＜本開示の概要＞
始めに、本開示の概要について説明するが、その前に、本明細書で用いる用語について説明する。
【００２３】
「符号化データのフレーム」とは、例えば、AAC（Advanced Audio Coding）やATRAC（Adaptive TRansform Acoustic Coding）等のオーディオ符号化方式によって規格化されている符号化処理を施す処理単位を指す。
【００２４】
「送信符号化データ」とは、１以上のフレームから成り、無線伝送される際のデータ単位を指す。この送信符号化データは、送信待ちバッファに入れられた段階で送信待ちデータと称される。
【００２５】
「伝送単位」とは、１回の無線通信で伝送されるデータの塊を指す。例えばBluetoothの場合、１つのパケットを指す。伝送単位には１つの送信符号化データが格納されている。以下、伝送単位をパケットとも称する。
【００２６】
本開示では、送信装置側で通信品質を推定することなく、送信待ちバッファに蓄積された送信符号化データの個数（以下、送信待ちデータ数とも称する）を間歇的に確認する。そして、確認した送信待ちデータ数や送信待ちデータ数の履歴（送信待ちデータ数の変化）に基づき、送信単位のサイズを変更することなく、送信符号化データを構成するフレームの数を変更するようになされている。
【００２７】
通常、データをリアルタイムで無線伝送するシステムでは、送信待ちデータは規定時間内に送信が正常に完了した場合、送信待ちバッファから破棄される。ここで、規定時間内とは、例えば、次の送信符号化データが送信待ちバッファに入れられるまでの時間等である。
【００２８】
反対に、送信待ちデータの送信が正常に完了しないと、送信待ちデータの再送が行われて、規定時間内に送信が完了しないことがあり、その送信待ちデータは、送信待ちバッファから破棄されず、送信待ちバッファに蓄積されることにとなる。
【００２９】
なお、送信待ちデータの送信が正常に完了しない要因としては、通信品質が悪いことだけでなく、通信品質が良好な場合でも送信装置の処理負荷が高いことなどより通信処理が滞ることが考えられる。したがって、送信待ちバッファに蓄積されている送信待ちデータ数を確認する方法は、従来では対処できなかった送信装置側の処理負荷が高いことに起因してデータの送信が滞り、音切れが発生している場合にも対処することができる。
【００３０】
より具体的に説明する。データの送信を滞らせずに音切れを防ぐためには、伝送の成功確率を上げることが重要となる。本開示を適用した送信装置では、送信符号化データのサイズを変えずに、送信符号化データを構成するフレーム数を増やすことによって圧縮率を上げて、送信が失敗した場合に再送のための時間を増加させ、伝送の成功確率を向上させる。すなわち、送信符号化データを構成するフレーム数に合わせて圧縮率を段階的に制御する。
【００３１】
さらに、圧縮率制御のタイミングと送信符号化データの切れ目のタイミングの関係で、１個の送信符号化データを圧縮率が異なる符号化データによって構成する場合がある。このような場合、圧縮率の変更内容により、圧縮率制御のタイミングを調整する。
【００３２】
例えば、音切れを回避するために圧縮率を上げる場合（送信符号化データを構成するフレームの数を増やす場合）には、即時性が必要となるので、その判断直後の送信符号化データはフレーム単位で圧縮率が異なる符号化データの混在を許容する。そして、次の送信符号化データからは、圧縮率が統一された符号化データで構成されるように圧縮率を再度制御する。なお、送信符号化データを構成するフレーム数は、圧縮率に応じて変化させてもよい。例えば、圧縮率が所定の閾値よりも低い場合には、一度に２フレーム増加させる等してもよい。反対に、送信待ちデータの減少に応じて圧縮率を下げる場合、即応性は必要ないので、送信符号化データを構成するフレーム数を減らせばよい。
【００３３】
図１は、本開示の概要の具体例として、送信符号化データを無線伝送する際の伝送単位としてBluetoothの2-DH5パケットを採用している場合を示す。なお、同図においては、2-DH5パケットに付加されているヘッダの図示が省略されている。
【００３４】
2-DH5パケットは、そのペイロードに約６６０バイトの送信符号化データを格納できる。図１の例では、初めに同図Ａに示すように、2-DH5パケットに、１フレーム当たり３３０（＝６６０／２）バイトの２フレーム分の符号化データから成る送信符号化データが格納されている。その後、送信待ちバッファの送信待ちデータ数の増加に応じて、2-DH5パケットに格納する送信符号化データを構成する符号化データのパケット数を３に増加させる判断が行われると、その判断が行われたタイミングで、１フレーム当たり３３０バイトの符号化データが既に１フレーム分だけ準備できていれば、同図Ｂに示されるように、送信符号化データは、1フレーム当たり３３０バイトの１フレーム分の符号化データと、１フレーム当たり１６５（＝３３０／２）バイトの２フレーム分の符号化データから構成されることになる。
【００３５】
伝送単位の切れ目となる次の2-DH5パケットには、同図Ｃに示されるように、同じ圧縮率の３フレーム分の符号化データから成る送信符号化データが格納される。この送信符号化データを構成する３フレーム分の符号化データは、１フレーム当たり２２０（＝６６０／３）バイトとなるように圧縮率を調整して符号化されたものとなる。
【００３６】
この後、送信待ちバッファの送信待ちデータ数の減少に応じて、2-DH5パケットに格納する送信符号化データのフレーム数を２に戻す判断が行われると、伝送単位の切れ目となる次の2-DH5パケットには、同図Ａに示された状態、すなわち、１フレーム当たり３３０バイトの２フレーム分の符号化データから成る送信符号化データが格納される。
【００３７】
ここで、図１に示されたように圧縮率を遷移させた場合における伝送の成功確率を、再送可能な時間を指標として評価する。
【００３８】
ただし、2-DH5パケットの１回の伝送には3.75ミリ秒を要し、Bluetoothで2-DH5パケットの１段階下に設定されている2-DH3パケット（ペイロードのサイズは約３５０バイト）では、１回の伝送に2.5ミリ秒を要するものとする。オーディオデータが符号化されている１フレーム分の符号化データの再生時間を2.9ミリ秒と仮定する。
【００３９】
この場合、2-DH5パケットに２フレーム分の符号化データから成る送信符号化データを格納して送信することは、再生時間が5.8ミリ秒の符号化データを、3.75ミリ秒を使って送信することになる。したがって、この2-DH5パケットの送信が失敗した場合の再送可能な時間的余裕は、2.05（＝5.8-3.75）ミリ秒となり、再送可能回数は0.55(≒2.05/3.75)回となる。
【００４０】
同様に計算すると、2-DH3パケットの場合には再生可能回数は1.32回となり、本開示のように2-DH5パケットに３フレーム分の符号化データから成る送信符号化データを格納して送信する場合には1.32回となる。
【００４１】
したがって、Bluetoothでパケット種別を１段階下げる場合（2-DH5パケットから2-DH3パケットに変更する場合）と、パケットのサイズを変えることなく、格納する送信符号化データを構成するフレーム数を１フレーム増やす場合とで同様の効果を得ることができる。ただし、パケットのサイズを変えずに、送信符号化データを構成するフレームの数をより増やすようにすれば、再送可能な時間（再送可能回数）を増やすことができる。
【００４２】
また、符号化データの圧縮率に着目すると、2-DH3パケットに２フレーム分の符号化データから成る送信符号化データを格納する場合には、１フレーム当たり１７５バイトであるが、本開示で通常時に採用する、2-DH5パケットに３フレーム分の符号化データから成る送信符号化データを格納する場合は１フレーム当たり２２０バイトとなる。したがって、音質面でも2-DH3パケットよりも2-DH5パケットを採用した方が有利（高音質）である。
【００４３】
＜圧縮率制御の詳細説明＞
圧縮率制御の判断方法について詳述する。
【００４４】
圧縮率制御の判断は、送信待ちデータ数（送信待ちバッファに蓄積されている送信待ちデータの数）を解析して行われる。送信待ちデータ数の確認は、送信待ちデータが正常に送信されれば、送信待ちバッファに送信待ちデータが蓄積されないようなタイミングで間歇的に行われる。
【００４５】
なお、送信待ちデータ数を解析する代わりに、送信符号化データを構成するフレーム数を解析し、その解析結果を圧縮率制御の判断に用いるようにしてもよい。
【００４６】
送信待ちデータ数は、FIFO（Fast In Fast Out）から成る蓄積履歴メモリに記録される。蓄積履歴メモリに記録できる数、すなわち、蓄積履歴メモリの容量は、例えば設計時などに決定されていればよい。
【００４７】
圧縮率を上げる判断と下げる判断は、間歇的に行われる送信待ちデータ数の確認と同時に行ってもよい。ただし、圧縮率を下げる判断については、現在の圧縮率に応じて観測時間を長くすれば、より圧縮率を安定させることができる。
【００４８】
例えば、圧縮率を上げる判断は、間歇的に行われる確認動作と同時に、以下に説明する２種類の閾値（音切れ危険閾値と伝送安定閾値）を用いて２段階で行われる。
【００４９】
音切れ危険閾値は、送信待ちデータ数に対する閾値であり、送信待ちデータ数が音切れ危険閾値を超えた場合、音切れが発生する可能性があると判断される。音切れ危険閾値は、圧縮率毎に設定されていてもよいし、同じ圧縮率でも、例えば、緊急用と安全用等、多段階の設定が用意されていてもよい。例えば、圧縮率が低い場合には、再送可能な時間が少ないため、即座に大きく反応するような値と、即座に小さく反応するような値を用意し、反対に圧縮率が高い場合には、再送可能な時間が多いため、多少様子を見るような値に設定してもよい。なお、音切れ危険閾値は、設計時などに予め決定されているが、ユーザが調整できるようにしてもよい。
【００５０】
伝送安定閾値も、送信待ちデータ数に対する閾値であり、送信待ちデータ数が伝送安定閾値以下である場合、圧縮率を下げても安定した伝送が可能であると判断される。伝送安定閾値は、圧縮率に応じて値を設定してもよい。なお、伝送安定閾値は、設計時などに予め決定されているが、ユーザが調整できるようにしてもよい。
【００５１】
圧縮率を上げる判断の１段階目は、確認された送信待ちデータ数と音切れ危険閾値と比較し、送信待ちデータ数が音切れ危険閾値を超えた場合、音切れが発生し得るので、圧縮率を上げるように判断される。圧縮率を上げる判断の２段目は、送信待ちデータ数の履歴（変移）を解析し、予め設定されている条件（所定の観測時間において送信待ちデータ数が徐々に増えている、所定の観測時間における送信待ちデータ数の平均値が所定の閾値以上である等）に該当する場合、圧縮率を上げるように判断される。なお、これらの条件についても、音切れ危険閾値と同様、圧縮率に応じて変更するようにしてもよい。
【００５２】
圧縮率を下げる判断は、蓄積履歴メモリに記録された送信待ちデータ数の履歴が、所定の観測時間分だけ蓄積されるまで行われず、所定の観測時間分だけ蓄積された後、その解析結果に基づいて行われる。例えば、送信待ちデータ数の平均値が伝送安定閾値以下の場合、圧縮率を下げる判断が行われる。なお、所定の観測時間は、現在の圧縮率に応じて変更するようにしてもよい。
【００５３】
ただし、上述したように圧縮率を制御した場合、圧縮率が連続して上げ下げされる可能性がある。圧縮率の上げ下げが連続すると、音質が連続して変化することになるので、ユーザにとっては耳障りと感じる可能性があるので好ましく無い。そこで、本開示では、音切れを抑止し、できだけ高品質なデータ（圧縮率が低いデータ）を送信しつつ、圧縮率が安定するように制御できる送信装置を提案する。
【００５４】
具体的には、圧縮率の変更履歴の変化パターンを観測し、観測結果が所定の条件にあった場合、圧縮率を下げる制御のタイミングを段階的に遅れさせるようにする。これにより、不安定な環境においては圧縮率を下げる制御が実行され難くなるため、圧縮率を安定させることができる。ただし、音切れを防ぐための圧縮率を上げる制御に関しては、遅れさせることなく速やかに制御される。
【００５５】
圧縮率を下げる制御のタイミングを段階的に遅らせる方法は、例えば、圧縮率制御判断の観測時間を段階的に伸ばす、具体的には、基準となる観測時間を２倍、４倍などを倍増させたり、５秒ずつ加算したりするようにすればよい。また、遅延のための観測時間の最大値も適宜設定されていればよい。例えば、基準となる観測時間を倍増させる場合、最大で１６倍まで倍増させた後はそれ以上倍率を上げないなどとすればよい。
【００５６】
圧縮率を下げる制御のタイミングを遅延させる圧縮率の変化履歴の変化パターンは、圧縮率の安定を目的としていることから、例えば、以下に示す２種類の変化パターン（第１および第２の変化パターン）を採用する。ただし、例示しない変化パターンであってもよい。
【００５７】
第１の変化パターンは、圧縮率が下げられた直後に圧縮率が上げられた場合を指す。第１の変化パターンが発生した場合、音質が連続して変化し、ユーザにとっては耳障りと感じる可能性がある。
【００５８】
第２の変化パターンは圧縮率が連続して上げられた場合を指す。第２の変化パターンが発生した場合、伝送状況が厳しくなっていることが推測されるため、無理に圧縮率を下げるよりも安定させる方が望ましい。
【００５９】
なお、制御タイミングの遅延を解除するタイミングは、例えば、圧縮率が、遅延が設定されたときの圧縮率に対して１段階以上下がった後、圧縮率が一定期間上がることなく安定した場合に一段階だけ遅延時間を短くする方法、遅延が設定された圧縮率に対して圧縮率が２段階下がって、圧縮率が一定期間上がることなく安定した場合に遅延を解除する方法等を採用すればよい。
【００６０】
＜各種パラメータの一例＞
次に、図２は、本開示を適用した送信装置に採用される各種パラメータの一例を示している。同図に示されるように、圧縮率は圧縮率ＩＤ＝０からＩＤ＝５までの６段階が設けられており、圧縮率ＩＤ＝０は最も低い圧縮率を表し、圧縮率ＩＤ＝５は最も高い圧縮率を表す。
【００６１】
格納フレーム数は、１パケットに格納する符号化データのフレーム数、厳密には、１パケットに格納する送信符号化データを構成する符号化データのフレーム数を示している。例えば、圧縮率ＩＤ＝１における格納フレーム数は３とされ、圧縮率ＩＤ＝５における格納フレーム数は７とされている。
【００６２】
音切れ危険閾値は、圧縮率ＩＤ＝０およびＩＤ＝１に対して緊急用と安全用の２種類が設定されており、圧縮率ＩＤ＝２からＩＤ＝５に対しては１種類のみが設定されている。例えば、圧縮率ＩＤ＝０に対する緊急用の音切れ危険閾値は６、安全用の音切れ危険閾値は３とされている。また例えば、圧縮率ＩＤ＝２からＩＤ＝５に対する音切れ危険閾値は６とされている。
【００６３】
増加フレーム数は、送信符号化データ数が音切れ危険閾値を超えたことに対応して、１パケットに格納するフレーム数（１パケットに格納する送信符号化データを構成する符号化データのフレーム数）を増加させる際のパケットの増加数を表している。例えば、現在の圧縮率ＩＤ＝０において、送信待ちデータ数が緊急用の音切れ危険閾値＝６を超えた場合、増加フレーム数は２とされているので、格納フレーム数は現在の２に対して２が加算されて４となる。この場合、圧縮率は格納フレーム数＝４に対応して圧縮率ＩＤ＝２に変更されることになる。また例えば、現在の圧縮率ＩＤ＝２において、送信待ちデータ数が音切れ危険閾値＝６を超えた場合、増加フレーム数は１とされているので、格納フレーム数は現在の４に対して１が加算されて５となる。この場合、圧縮率は格納フレーム数＝５に対応して圧縮率ＩＤ＝３に変更されることになる。
【００６４】
圧縮率下げ観測時間は、圧縮率を下げる判断をするために必要とする観測時間である。例えば、圧縮率ＩＤ＝１における観測時間は５秒とされている。この場合、圧縮率を下げるか否かの判断は、蓄積履歴メモリに送信待ちデータ数の履歴が５秒間分溜まってから実行されることになる。
【００６５】
なお、圧縮率下げ観測時間は、ペナルティとしての値が係数として乗算されることによって延長される。通常、ペナルティの値は１倍とされているが、圧縮率の変化履歴が上述した第１または第２の変化パターンに当てはまる毎に、ペナルティの値は２倍、２２倍、２３倍、２４倍まで順次増加される。例えば、現在の圧縮率ＩＤ＝１であってペナルティが２倍である場合の圧縮下げ観測時間は１０（＝５×２）秒となる。
【００６６】
ペナルティの解除については、例えば、ペナルティが課された時点における圧縮率ＩＤ（以下、ペナルティ圧縮率ＩＤと称する）よりも圧縮率が２段階下がる方向に変化し、そのまま所定の時間、圧縮率が上がることが無ければ、ペナルティを解除するようにする。なお、ペナルティ圧縮率ＩＤよりも２段階下の圧縮率ＩＤが存在しない場合には、伝送安定状態勘定変数（後述）が既定値以上であるときにペナルティを解除するようにする。
【００６７】
なお、圧縮率下げ観測時間に対する係数としてのペナルティの値は、２のべき乗に限るものではなく任意である。また、ペナルティの値を係数として圧縮率下げ観測時間に乗算するのではなく、加算値として圧縮率下げ観測時間に加算するようにしてもよい。その場合、ペナルティの値は、５，１０，１５，２０などの値を算用すればよい。もちろん、ペナルティとしての加算値は５の倍数に限るものではなく任意である。
【００６８】
＜本開示を適用した送信装置の構成例＞
次に、図３は、本開示を適用した送信装置の構成例を示している。この送信装置１０は、無線伝送の対象とするデータに符号化処理を行い、その結果得られるフレーム単位の符号化データから送信符号化データを生成し、送信符号化データをパケット化して無線伝送するものであり、符号化処理における圧縮率を上述したように制御する。ここで、無線伝送の対象とするデータは、本実施の形態ではオーディオデータを想定しているが、ビデオデータなどの他の種類のデータを無線伝送する場合にも該送信装置１０を用いることができる。
【００６９】
この送信装置１０は、制御部１１、蓄積履歴メモリ更新部１２、増加フレーム数算出部１３、タイミング制御部１４、圧縮率制御部１５、および圧縮率変更履歴メモリ１６を備える。さらに、送信装置１０は、符号化部１７、データバッファ１８、符号化データバッファ１９、送信待ちバッファ２０、通信処理部２１、無線通信部２２、スイッチ２３、および蓄積履歴メモリ２４を備える。
【００７０】
制御部１１は、上に挙げた送信装置１０の構成要素の動作を制御する。具体的には、例えば20ミリ秒間隔などの一定周期毎に、後述するデータ送信処理を実行させる。
【００７１】
蓄積履歴メモリ更新部１２は、制御部１１からの制御に従い、スイッチ２３をオン、オフさせることにより、送信待ちデータ数（送信待ちバッファ２０に蓄積されている送信待ちデータの数）を蓄積履歴メモリ２４に記録させる。
【００７２】
増加フレーム数算出部１３は、蓄積履歴メモリ２４に記録されている値（送信待ちデータ数）を取得して解析し、解析結果に応じて増加フレーム数を設定してタイミング制御部１４に通知する。
【００７３】
増加フレーム数の設定は、例えば、初めに送信待ちデータ数と音切れ危険閾値との比較に基づいて行われる。すなわち、蓄積履歴メモリ２４に記録されている最新の値が、現在の圧縮率に対応する音切れ危険閾値を超えているか否かが判定され、この判定結果が真である場合、図２に示した、現在の圧縮率に対応する増加フレーム数がタイミング制御部１４に通知される。例えば、現在の圧縮率ＩＤ＝０で、蓄積履歴メモリ２４に記録されている最新の値が７であった場合、音切れ危険閾値＝６を超えているので、増加フレーム数は２とされる。
【００７４】
蓄積履歴メモリ２４に記録されている最新の値が、現在の圧縮率に対応する音切れ危険閾値を超えていなかった場合、送信待ちデータ数の変動傾向が判定される。すなわち、蓄積履歴メモリ２４に記録されている値が解析され、送信待ちデータ数が徐々に増加傾向にあるか否かが判定される。例えば、送信待ちデータ数の最新の値が、前回の値よりも大きく、且つ、所定の閾値（例えば４）を超える場合には判定結果は真とされる。この条件が満たされない場合、判定結果は偽とされる。
【００７５】
判定結果が真の場合、増加フレーム数算出部１３は、増加フレーム数を算出してタイミング制御部１４に通知する。判定の結果が偽の場合、増加フレーム数算出部１３は、蓄積履歴メモリ２４に所定の観測時間分（例えば、500ミリ秒）の記録が蓄積されているか否かを確認し、蓄積されていなかった場合には増加フレーム数を０に設定してタイミング制御部１４に通知する。蓄積されていた場合、蓄積されていた値に応じて増加フレーム数を算出、設定してタイミング制御部１４に通知する。
【００７６】
例えば、蓄積履歴メモリ２４に蓄積されていた送信待ちデータ数の平均値が、圧縮率を上げる判断に用いる所定の閾値（例えば１．５）以上である場合、圧縮率を上げる方向で増加フレーム数が算出されてタイミング制御部１４に通知される。また、蓄積履歴メモリ２４に蓄積されていた送信待ちデータ数の平均値が０であるか、または伝送安定閾値よりも小さい場合、圧縮率を下げる方向で増加フレーム数が算出されてタイミング制御部１４に通知される。なお、蓄積履歴メモリ２４に蓄積されていた送信待ちデータ数の平均値が所定の閾値（例えば１．５）以上ではなく、０でもなく、伝送安定閾値よりも小さくない場合、圧縮率を変更しないことを意味する増加フレーム数（例えば、−９９）がタイミング制御部１４に通知される。
【００７７】
タイミング制御部１４は、増加フレーム数算出部１３から通知された増加フレーム数が圧縮率を下げることを意味する値であった場合、そのような値が、ペナルティも加味した圧縮率下げ観測時間だけ継続したか否かを判定する。例えば、現在の圧縮率ＩＤ＝１の場合、ペナルティが１倍であれば観測時間は５秒間であり、圧縮率を下げる判定は500ミリ秒毎に行われるので、増加フレーム数算出部１３から圧縮率を下げることを意味する増加フレーム数が１０回連続して通知された場合に判定結果を真とする。この判定結果が偽である場合、蓄積履歴メモリ２４はクリアされ、タイミング制御部１４は、増加フレーム数を０に変更して圧縮率制御部１５に通知する。
【００７８】
また、タイミング制御部１４は、増加フレーム数算出部１３から通知された増加フレーム数が、圧縮率を変更しないことを意味する値（例えば、−９９）であった場合、増加フレーム数算出部１３から圧縮率を下げることを意味する増加フレーム数が連続して通知された回数を０に初期化し、タイミング制御部１４は、増加フレーム数を０に変更して圧縮率制御部１５に通知する。
【００７９】
さらに、タイミング制御部１４は、増加フレーム数算出部１３から通知された増加フレーム数が０であるか、または圧縮率を上げることを意味する値であった場合、通知された増加フレーム数をそのまま圧縮率制御部１５に通知する。
【００８０】
圧縮率制御部１５は、タイミング制御部１４から通知された増加フレーム数に基づき、新たな圧縮率を決定し、それに対応する圧縮率ＩＤを符号化部１７に通知するとともに、圧縮率変更履歴メモリ１６に新たな圧縮率ＩＤを記録する。また、圧縮率制御部１５は、圧縮率変更履歴メモリ１６を参照することによってペナルティを更新し、更新後のペナルティをタイミング制御部１４に通知する。ペナルティの更新は、以下のように行われる。
【００８１】
新たな圧縮率ＩＤがペナルティ圧縮率ＩＤより大きい場合、圧縮率ＩＤの変更履歴が解析され、今回の圧縮率の変更がペナルティを課す条件に当てはまる場合、ペナルティを更新し、ペナルティ圧縮率ＩＤに今回決定された新たな圧縮率ＩＤが設定される。
【００８２】
新たな圧縮率ＩＤがペナルティ圧縮率ＩＤよりも小さい場合、圧縮率ＩＤの変更履歴が解析され、今回の圧縮率の変更がペナルティを解除する条件に当てはまる場合、ペナルティを１倍とし、ペナルティ圧縮率ＩＤに０を設定する。
【００８３】
符号化部１７は、圧縮率制御部１５から通知された圧縮率ＩＤに基づき、新しい圧縮率を算出する。さらに符号化部１７は、データバッファ１８に記録されている、無線伝送の対象とするデータ（本実施の形態ではオーディオデータ）を読み出し、タイミングを調整しながら新たな圧縮率を反映させて符号化処理を行い、その結果得られる符号化データを符号化データバッファ１９に格納する。さらに、符号化部１７は、符号化データバッファ１９に送信符号化データとして送信待ちバッファ２０に出力できる規定フレーム分の符号化データを格納した場合、格納されている規定フレーム分の符号化データによって送信符号化データを生成し、生成した送信符号化データを送信待ちバッファ２０に出力する。
【００８４】
符号化部１７における圧縮率の算出は、以下のように行われる。
【００８５】
圧縮率制御部１５から通知された圧縮率ＩＤが、圧縮率を上げる方向に変更するものであり、かつ、符号化データバッファ１９に既に符号化データが格納されている場合（例えば、図１Ａから図１Ｂに遷移する場合）、圧縮率の計算は、符号化データバッファ１９に格納されている符号データのデータサイズとフレーム数、送信符号化データの伝送容量、および格納フレーム数から算出される。例えば、符号化データバッファ１９に１フレーム分の符号化データが格納されており、圧縮率ＩＤが０から２に変更される場合、格納フレーム数は２から４に変更されることになるので、送信符号化データの伝送容量が、既に存在する１フレーム分の符号化データと、新たに符号化する３フレーム分の符号化データによって埋まるように暫定的な圧縮率を設定し、次に符号化データバッファ１９が空になったタイミングで、圧縮率ＩＤ＝２の規定の圧縮率（１つの送信符号化データを格納フレーム数（圧縮率ＩＤ＝２の場合は４）の符号化データで構成できる圧縮率）を採用する。
【００８６】
圧縮率制御部１５から通知された圧縮率ＩＤが、圧縮率を上げる方向に変更するものであり、かつ、符号化データバッファ１９が空である場合（例えば、図１Ｂから図１Ｃに遷移する場合）、圧縮率の計算は、圧縮率ＩＤに対して既定の圧縮率が設定される。
【００８７】
圧縮率制御部１５から通知された圧縮率ＩＤが、圧縮率を下げる方向に変更するものである場合（例えば、図１Ｃから図１Ａに遷移する場合）、符号化データバッファ１９が空になったタイミングで、新たな圧縮率ＩＤに対して既定の圧縮率が設定される。
【００８８】
なお、符号化データバッファ１９に格納された符号化データのサイズやフレーム数は、適宜、符号化部１７が管理しているものとする。
【００８９】
送信待ちバッファ２０は、FIFO型メモリであり、符号化部１７から入力された送信符号化データを保持し、通信処理部２１が送信待ちデータを受け付け可能である場合、保持する送信待ちデータのうちの最も先に入力されたものから順に１つずつ通信処理部２１に出力する。通信処理部２１に出力した送信符号化データの無線伝送が成功した場合、送信待ちバッファ２０は、該送信符号化データを削除する等の更新を行う。
【００９０】
通信処理部２１は、送信待ちバッファ２０から入力される送信符号化データに対して、例えば、リンク・マネージャ、ベースバンド、およびＲＦの各層に対応する処理を行い、無線により送信できるベースバンド・パケットとして無線通信部２２に出力する。無線通信部２２は、例えばBluetoothモジュールから成り、通信処理部２１から入力されるベースバンド・パケットを無線により受信側に送信する。
【００９１】
＜送信装置１０によるデータ送信処理について＞
次に、図４は、送信装置１０によるデータ送信処理を説明するフローチャートである。
【００９２】
このデータ送信処理は、制御部１１によって20ミリ秒間隔で繰り返し実行される。なお、データ送信処理の開始に先行し、各メモリや各バッファ、各パラメータなどは初期化されているものとする。
【００９３】
データ送信処理は、ステップＳ１における符号化制御処理、ステップＳ２における符号化処理、およびステップＳ３における送信処理から成る。
【００９４】
ステップＳ１の符号化制御処理では、圧縮率の変更の有無が判断されて、その判断結果に基づいて符号化処理における圧縮率が決定される。ステップＳ２の符号化処理では、ステップＳ１の符号化制御処理で決定された圧縮率に従ってデータに符号化処理が行われて符号化データが生成され、さらに、圧縮率ＩＤに応じた格納フレーム数の符号化データから成る送信符号化データが生成される。ステップＳ３の送信処理では、送信符号化データがパケット化されて受信側に無線伝送される。なお、符号化制御処理、および符号化処理の詳細については後述する。
【００９５】
図５は、図４のステップＳ１における符号化制御処理を詳述するフローチャートである。
【００９６】
ステップＳ１１においては、蓄積履歴メモリ更新部１２による、蓄積履歴メモリ更新処理が行われる。具体的には、増加フレーム数算出部１３によって増加フレーム数が０に初期化された後、蓄積履歴メモリ更新部１２により、スイッチ２３がオンとされることにより、送信待ちデータ数が蓄積履歴メモリ２４に格納される。このとき、蓄積履歴メモリ２４の容量が全て埋まっている場合、最も古い記録が破棄されてから、最新の送信待ちデータ数が格納される。同時に、蓄積履歴メモリ２４に格納された送信待ちデータ数の総和が更新される。
【００９７】
次に、ステップＳ１２においては、増加フレーム数算出部１３により、第１増加フレーム数算出処理が行われる。第１増加フレーム数算出処理では、送信待ちデータ数と、現在の圧縮率ＩＤに対応する音切れ危険閾値とが比較される。この比較結果に応じて圧縮率を上げると判断された場合には、増加フレーム数の値が変更される。なお、第１増加フレーム数算出処理の詳細は、図６を参照して後述する。
【００９８】
ステップＳ１３においては、制御部１１により、ステップＳ１２における第１増加フレーム数算出処理によって増加フレーム数が０に設定されたか否かが判定される。この判定結果が真である場合、処理はステップＳ１４に進められる。反対に、この判定結果が偽である場合、ステップＳ１４はスキップされる。
【００９９】
ステップＳ１４においては、増加フレーム数算出部１３により、第２増加フレーム数算出処理が行われる。具体的には、蓄積履歴メモリ２４に規定数の履歴が蓄積された際の判定処理が行われる。例えば、蓄積履歴メモリ２４に圧縮率下げ観測時間分の履歴が蓄積されると、圧縮率を下げるか否かの判定処理等が行われ、その判定結果に応じて、増加フレーム数が設定される。なお、第２増加フレーム数算出処理の詳細は、図７を参照して後述する。
【０１００】
ステップＳ１５においては、圧縮率制御部１５により、設定された増加フレーム数に応じて圧縮率ＩＤやペナルティなどを更新する符号化制御終端処理が行われる。なお、符号化制御終端処理の詳細は、図８を参照して後述する。
【０１０１】
図６は、図５のステップＳ１２における第１増加フレーム数算出処理を詳述するフローチャートである。
【０１０２】
ステップＳ２１においては、蓄積履歴メモリ２４の最新の値（送信待ちデータ数）が、現在の圧縮率ＩＤに対応する音切れ危険閾値を超えているか否かを判定する音切れ危険閾値判定処理が行われる。送信待ちデータ数が現在の圧縮率ＩＤに対応する音切れ危険閾値を超えていた場合、増加フレーム数が算出、設定される。ステップＳ２２においては、ステップＳ２１の音切れ危険閾値判定処理による判定結果の真偽が判断される。ステップＳ２２の判断結果が真である場合（送信待ちデータ数が音切れ危険閾値を超えている場合）には、第１増加フレーム数算出処理を抜けて、処理は図５のステップＳ１３に進められる。反対に、ステップＳ２２の判断結果が偽である場合（送信待ちデータ数が音切れ危険閾値を超えていない場合）、処理はステップＳ２３に進められる。
【０１０３】
ステップＳ２３においては、送信待ちデータ数変更傾向判定処理が行われる。具体的には、蓄積履歴メモリ２４に蓄積されている値が解析され、送信待ちデータ数が徐々に増加傾向にあるか否かが判定される。例えば、今回の値が前回の値よりも大きく、且つ、所定の閾値（例えば４）を超える場合には判定を真とし、そうでない場合には判定を偽とする。判定が真である場合のみ、増加フレーム数が算出される。この後、第１増加フレーム数算出処理を抜けて、処理は図５のステップＳ１３に進められる。
【０１０４】
次に、図７は、図６のステップＳ１４における第２増加フレーム数算出処理を詳述するフローチャートである。
【０１０５】
ステップＳ３１においては、蓄積履歴メモリ２４に規定数（送信待ちデータ数の確認は20ミリ秒間隔で行われるので、500ミリ秒の間の記録であれば２５（＝500/20））の履歴が蓄積されているか否かを判定する蓄積履歴メモリ記録数判定処理が行われる。ステップＳ３２では、ステップＳ３１の蓄積履歴メモリ記録数判定処理による判定結果の真偽が判断される。ステップＳ３２で偽と判断された場合（蓄積履歴メモリ２４に規定数の履歴が蓄積されていない場合）、第２増加フレーム数算出処理を抜けて、処理は図５のステップＳ１５に進められる。反対に、ステップＳ３２で真と判断された場合（蓄積履歴メモリ２４に規定数の履歴が蓄積されている場合）、処理はステップＳ３３に進められる。
【０１０６】
ステップＳ３３においては、規定数に達した蓄積履歴メモリ２４の記録（送信待ちデータ数）の平均値を算出し、その平均値が所定の閾値（例えば１．５）を超えているか否かを判定する観測時間記録データ平均判定処理が行われる。
【０１０７】
ステップＳ３４では、ステップＳ３３の観測時間記録データ平均判定処理による判定結果の真偽が判断される。ステップＳ３４で真と判断された場合（蓄積されている送信符号化データ数の平均値が閾値を超えている場合）、圧縮率を上げる制御のために増加フレーム数に例えば１が設定された後、第２増加フレーム数算出処理を抜けて、処理は図５のステップＳ１５に進められる。反対に、ステップＳ３４で偽と判断された場合（蓄積されている送信符号化データ数の平均値が閾値を超えていない場合）、処理はステップＳ３５に進められる。
【０１０８】
ステップＳ３５においては、圧縮率を上げる必要が無い状態が連続した回数を表す伝送安定状態勘定変数の更新を行う伝送安定状態勘定変数更新処理が行われる。具体的には、例えば、伝送安定状態勘定変数が１だけ増加される。なお、伝送安定状態勘定変数は、圧縮率が変更されてから経過した時間を表すものであり、ペナルティを更新する際に参照される。
【０１０９】
ステップＳ３６においては、蓄積履歴メモリ２４の履歴を解析し、その解析結果が圧縮率を下げるための条件（例えば、蓄積履歴メモリ２４に記録されている値（送信待ちデータ数）が全て０）を満たすか否かを判定する圧縮率下げ判定処理が行われる。ステップＳ３７では、ステップＳ３６の圧縮率下げ判定処理による判定結果の真偽が判断される。ステップＳ３７で真と判断された場合（圧縮率を下げるための条件を満たす場合）、圧縮率を下げることが可能と判断されて、処理はステップＳ３８に進められる。
【０１１０】
ステップＳ３８においては、蓄積履歴メモリ２４の履歴の解析結果が圧縮率を下げるための条件を満たしている時間が、ペナルティが課せられた圧縮率下げ観測時間だけ継続しているか否かを判定する圧縮率下げ観測時間判定処理が行われる。
【０１１１】
具体的には、必要となる圧縮率下げ観測時間は、該圧縮率下げ観測時間判定処理が連続して実行されなければならない回数が、事前に変数「圧縮率下げ適用フラグ」に設定され、この圧縮率下げ適用フラグを１減算し、０以下になったら真と判定し、真と判定された場合、実際に圧縮率を下げるために、増加フレーム数に−１を設定し、偽と判定された場合、増加フレーム数を更新しない。
【０１１２】
例えば、ステップＳ３１の蓄積履歴メモリ記録数判定処理で、規定数の基準が500ミリ秒とされている場合、現在の圧縮率ＩＤが１であれば圧縮率下げ観測時間は５秒であり（図２参照）、ペナルティを１倍と仮定すれば、連続して該圧縮率下げ観測時間判定処理が実行されなければならない回数は１０回となる。すなわち、圧縮率下げ適用フラグには１０が初期化時等の規定のタイミングで設定され、該圧縮率下げ観測時間判定処理が実行される毎に、圧縮率下げ適用フラグが１ずつ減算され、圧縮率下げ適用フラグが０以下になると増加フレーム数に−１が設定される。
【０１１３】
次にステップＳ３９では、ステップＳ３８の圧縮率下げ観測時間判定処理による判定結果の真偽が判断される。ステップＳ３９で真と判断された場合、第２増加フレーム数算出処理を抜けて、処理は図５のステップＳ１５に進められる。
【０１１４】
ステップＳ３９で偽と判断された場合、処理はステップＳ４０に進められる。ステップＳ４０においては、蓄積履歴メモリ２４に蓄積されている全ての記録を消去する蓄積履歴メモリリセット処理が行われる。この後、第２増加フレーム数算出処理を抜けて、処理は図５のステップＳ１５に進められる。
【０１１５】
なお、ステップＳ３７で偽と判断された場合、圧縮率を下げることが不可能と判断され、処理はステップＳ４１に進められる。ステップＳ４１においては、ステップＳ３８の圧縮率下げ観測時間判定処理に用いられる圧縮率下げ適用フラグに、現在の圧縮率ＩＤに対応する圧縮率下げ観測時間とペナルティに基づいて算出される回数を設定する圧縮率下げ観測時間設定処理が行われる。この後、第２増加フレーム数算出処理を抜けて、処理は図５のステップＳ１５に進められる。
【０１１６】
次に、図８は、図５のステップＳ１５における符号化制御終端処理を詳述するフローチャートである。
【０１１７】
ステップＳ５１においては、設定された増加フレーム数が０以外であるか否かが判断され、増加フレーム数が０であると判断された場合、符号化制御終端処理を抜けて、処理は図４のステップＳ２に進められる。増加フレーム数が０以外であると判断された場合、処理はステップＳ５２に進められる。
【０１１８】
ステップＳ５２においては、圧縮率制御部１５により、現在の圧縮率ＩＤに対応する格納フレーム数と、増加フレーム数とに基づいて新たな圧縮率ＩＤを算出する圧縮率ＩＤ決定処理が行われる。例えば、現在の圧縮率ＩＤ＝１（対応する格納フレーム数は３）であり、増加フレーム数が２であった場合、以降の格納フレーム数は５となるので、新たな圧縮率ＩＤは格納フレーム数＝５に対応する３（図２参照）に決定される。
【０１１９】
ステップＳ５３においては、圧縮率制御部１５により、ステップＳ５２で決定された圧縮率ＩＤに基づいてペナルティを算出するペナルティ更新処理が行われる。
【０１２０】
ステップＳ５４においては、伝送安定状態勘定変数を例えば０に初期化する伝送安定状態勘定変数初期化処理が行われる。
【０１２１】
ステップＳ５５においては、ステップＳ５２で決定された圧縮率ＩＤに対応する圧縮率下げ観測時間に、ステップＳ５３で更新されたペナルティを乗算し、その乗算結果の時間に基づいて算出される回数を圧縮率下げ適用フラグに設定する圧縮率下げ観測時間設定処理が行われる。
【０１２２】
ステップＳ５６においては、上述した図７のステップＳ４０と同様の蓄積履歴メモリリセット処理が行われる。ステップＳ５７においては、圧縮率制御部１５により、ステップＳ５２で決定された圧縮率ＩＤを符号化部１７に通知する圧縮率設定処理が行われる。この後、符号化制御終端処理を抜けて、処理は図４のステップＳ２に進められる。
【０１２３】
次に、図９は、図４のステップＳ２における符号化処理を詳述するフローチャートである。
【０１２４】
なお、符号化処理が開始されるに際し、先に実行されているステップＳ１の符号化制御処理で決定された圧縮率ＩＤは、圧縮率変更要求として、これから開始される符号化処理に引き継がれるものとする。
【０１２５】
また、符号化処理では、２種類の圧縮率（第１および第２の圧縮率）が算出されるものとする。第１の圧縮率は、圧縮率変更要求に即応するときに採用する圧縮率である。第２の圧縮率は、圧縮率変更要求後の伝送単位の切れ目（次のパケット）、すなわち符号化データバッファ１９が空になったタイミングで採用する圧縮率である。なお、第１および第２の圧縮率は、−１に設定されると無効値として扱われる。符号化処理が開始されるとき、第１および第２の圧縮率には無効値（−１）が設定されているものとする。
【０１２６】
ステップＳ６１においては、符号化部１７により、前段の符号化制御処理から圧縮率変更要求があったか否かが判定される。圧縮率変更要求があった場合、処理はステップＳ６２に進められる。反対に、圧縮率変更要求がなかった場合、ステップＳ６２はスキップされて、処理はステップＳ６３に進められる。
【０１２７】
ステップＳ６２においては、符号化部１７により、圧縮率変更要求に即した圧縮率を算出する圧縮率算出処理が行われる。例えば、要求された圧縮率ＩＤが、現在の圧縮率ＩＤよりも小さい場合、すなわち、圧縮率を下げる場合、第１の圧縮率に無効値を設定し、第２の圧縮率に要求された圧縮率ＩＤに対応する既定の圧縮率を設定する。反対に、要求された圧縮率ＩＤが現在の圧縮率ＩＤよりも大きい場合、すなわち、圧縮率を上げる場合、第１の圧縮率として、要求された圧縮率ＩＤに対応する格納フレーム数と、既に符号化データバッファ１９に保持されている符号化データのデータサイズ、フレーム数と、パケットの伝送容量に格納できる残りのデータ容量から、第１の圧縮率が算出されて設定される。ただし、算出された第１の圧縮率が、採用している符号化方式の適用範囲外であった場合には、第１の圧縮率に無効値が設定される。第２の圧縮率には、要求された圧縮率ＩＤに対応する既定の圧縮率が設定される。
【０１２８】
ステップＳ６３においては、符号化部１７により、データバッファ１８から符号化処理の対象とするデータを取得するデータ取得処理が行われる。取得するデータ量については、例えば、符号化処理の対象とするデータがオーディオデータである場合、データ送信処理が20ミリ秒毎に実行されることから、再生時間20ミリ秒分のオーディオデータを取得すればよい。
【０１２９】
ステップＳ６４においては、符号化部１７により、取得されたデータを符号化する際に採用する圧縮率を設定する圧縮率更新処理が行われる。具体的には、まず、第１の圧縮率が無効値であるか否かが確認され、無効値ではないと確認された場合、即座に第１の圧縮率を符号化方式に適用してから、第１の圧縮率に無効値を設定する。反対に、第１の圧縮率が無効値であると確認された場合には、さらに、第２の圧縮率が無効値ではなく、且つ、既に符号化データバッファ１９に符号化データが無い場合、すなわち符号化データバッファ１９が空になったタイミングとなっていれば、第２の圧縮率を符号化方式に適用してから、第２の圧縮率に無効値を設定する。上述した場合に該当しない場合には、圧縮率は変更されない。
【０１３０】
ステップＳ６５においては、符号化部１７により、ステップＳ６３で取得されたデータに対して、ステップＳ６４で適用された第１または第２の圧縮率、あるいは、変更されていない以前の圧縮率で符号化処理が行われ、その結果得られた符号化データを符号化データバッファ１９に記録するデータ符号化処理が行われる。
【０１３１】
ステップＳ６６においては、符号化部１７により、符号化データバッファ１９に記録された規定フレーム数の符号化データからなる送信符号化データを生成して送信待ちバッファ２０に出力する符号化データ伝送処理が行われる。
【０１３２】
ステップＳ６７においては、符号化部１７により、データバッファ１８から取得したデータのうち、符号化処理の行われていないデータが残っているか否かが判断される。符号化処理の行われていないデータが残っていると判断された場合、処理はステップＳ６４に戻されて、それ以降が繰り返される。符号化処理の行われていないデータが残っていないと判断された場合、符号化処理を抜けて、処理は図４のステップＳ３に進められる。
【０１３３】
ステップＳ３では、通信処理部２１および無線通信部２２により、上述した送信処理が行われる。以上で、データ送信処理の説明を終了する。
【０１３４】
＜送信装置１０による圧縮率の遷移＞
次に、送信装置１０による圧縮率の遷移について、図１０および図１１を参照して説明する。
【０１３５】
図１０は、間歇的に確認される最新の送信待ちデータ数のみに基づき、圧縮率を更新した場合（圧縮率を下げる際の遅延制御を行わない場合）の遷移を示している。図１１は、間歇的に確認される最新の送信待ちデータ数だけでなく、圧縮率変更の履歴の解析結果も利用して圧縮率を更新した場合（圧縮率を下げる際の遅延制御を行う場合）の遷移を示している。
【０１３６】
なお、図１０および図１１の縦軸は圧縮率を示し、ｂ０側ほど圧縮率が低く、ｂ５側ほど圧縮率が高い。横軸は時間を示す。実線は圧縮率の遷移を示す。丸印○は、圧縮率を下げる制御判断のタイミングを示し、一定期間分の送信待ちデータ数が蓄積履歴メモリ２４に格納されたタイミングを示す。
【０１３７】
すなわち、間歇的に行われる送信待ちデータ数の確認は、丸印○と丸印○の間に複数回行われ、圧縮率を上げる制御はこの確認のタイミングに行われる。なお、図１０および図１１では、図示を簡略化するために、丸印○の間隔は等間隔とされているが、この間隔は圧縮率に応じて調整される。
【０１３８】
また、図１１に示す遅延制御では、圧縮率を下げる判断のタイミングを、段階的に２回、４回とまとめることにより、圧縮率を下げる判断に要する観測時間を長くし、判断のタイミングを遅延させるようにされている。図１１の点線は、判断のタイミングをまとめた範囲を示している。圧縮率を下げる判断のタイミングを段階的にまとめる方法としては、上述したように、判断タイミングの回数を２倍、４倍と指数的に増加させる他、例えば、５秒、１０秒等と段階的にその時間を増加させても良い。また、まとめられた判断のタイミングの解除は、段階的に解除するようにされている。
【０１３９】
まず、図１０に示された圧縮率を下げる際の遅延制御を行わない場合について説明する。時点ｔ０の圧縮率はｂ１であるが、時点ｔ１では、時点ｔ０以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ２であった。時点ｔ２では、時点ｔ１以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ３であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。
【０１４０】
時点ｔ３では、時点ｔ２，ｔ３間の状態を解析した結果、圧縮率を下げる条件を満たしていたため、圧縮率がｂ２に変更された。時点ｔ４では、時点ｔ３以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ３であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。
【０１４１】
時点ｔ５では、時点ｔ４，ｔ５間の状態を解析した結果、圧縮率を下げる条件を満たしていたため、圧縮率がｂ２に変更された。時点ｔ６では、時点ｔ５以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ３であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。
【０１４２】
時点ｔ７では、時点ｔ６以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ４であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。時点ｔ８では、時点ｔ７，ｔ８間の状態を解析した結果、圧縮率を下げる条件を満たしていたため、圧縮率がｂ３に変更された。
【０１４３】
以降の時点ｔ９，ｔ１１，ｔ１３は、時点ｔ７と同様であり、時点ｔ１０，ｔ１２，ｔ１４は、時点ｔ８と同様に推移したため、圧縮率が不安定な状況が継続した。時点ｔ１４以降は、伝送状況が改善し、不安定ながらも、徐々に圧縮率が下げられ、時点ｔ２３で圧縮率はｂ０となった。
【０１４４】
図１０に示されたように、圧縮率を下げる場合の遅延制御を行わない場合、圧縮率が不安定に遷移する（頻繁に変動する）可能性があることがわかる。
【０１４５】
次に、図１１に示された圧縮率を下げる際の遅延制御を行う場合について説明する。時点ｔ０で圧縮率はｂ１であるが、時点ｔ１では、時点ｔ０以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ２であった。
【０１４６】
時点ｔ２では、時点ｔ１以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ３であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。また、２回連続して圧縮率を上げる変更パターンは、遅延制御を対象とする変更パターンに該当するため、この時点で遅延制御が有効となり、以降の圧縮率を下げるための判断は、２回連続して条件を満たした場合のみと制限された。また、ペナルティ圧縮率がｂ３と設定された。
【０１４７】
時点ｔ３では、時点ｔ２，ｔ３間の状態を解析した結果、圧縮率を下げる条件を満たしていたが、遅延制御により、時点ｔ２の判断結果も影響し、圧縮率は変更されなかった。時点ｔ４では、時点ｔ３，ｔ４間の状態を解析した結果、圧縮率を下げる条件を満たされず、圧縮率は変更されなかった。
【０１４８】
時点ｔ５では、圧縮率を上げる条件を満たしていたが、時点ｔ４では条件を満たしていなかったため、圧縮率は変更されなかった。時点ｔ６では、時点ｔ５以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ３であった。また、圧縮率を変更する条件が満たされず、この時点で圧縮率は変更されなかった。
【０１４９】
時点ｔ７では、時点ｔ６，ｔ７間の状態を解析した結果、圧縮率を下げる条件を満たしていたが、遅延制御により、時点ｔ６の判断結果も影響し、圧縮率は変更されなかった。時点ｔ８では、時点ｔ７，ｔ８間の状態を解析した結果、圧縮率を下げる条件を満たし、さらに遅延制御による時点ｔ７の判断結果も圧縮率を下げる判断がされていたので、圧縮率が下げられてｂ３となった。
【０１５０】
時点ｔ９では、時点ｔ８以降に圧縮率を１段階上げる判断が行われて圧縮率はｂ４であった。また、圧縮率を変更する条件が満たされず、この時点では、圧縮率は変更されなかった。また、圧縮率が下げられた直後に上げられ、遅延制御の対象パターンに該当するために、遅延が１段階増加し、４回分の判断が条件を満たした場合のみ圧縮率が下げられるように制限された。また、この時点の圧縮率ｂ４は、現在のペナルティ圧縮率であるｂ３よりも高いので、ペナルティ圧縮率はｂ４に更新された。
【０１５１】
時点ｔ９からｔ１１までは、遅延制御によって圧縮率の変更は制限された。時点ｔ１２では、時点ｔ１１，ｔ１２間の状態を解析した結果、圧縮率を下げる条件を満たしていたが、遅延制御により、区間ｔ９からｔ１１の判断結果により圧縮率は変更されなかった。時点ｔ１３，ｔ１４も時点ｔ１２と同様であった。
【０１５２】
時点ｔ１５では、区間ｔ１２からｔ１５まで４回連続して条件が満たされていたので、圧縮率を下げる判断が行われて圧縮率はｂ３となった。時点ｔ１６では、時点ｔ１５，ｔ１６間の状態を解析した結果、圧縮率を下げる条件を満たしていたが、遅延制御により圧縮率は変更されなかった。時点ｔ１７では、区間ｔ１６，ｔ１７で共に圧縮率を下げる条件を満たしていた。時点ｔ１７まで圧縮率が安定していたことから、ペナルティ圧縮率よりも低い圧縮率で安定したと判断され、遅延制御が１段階緩められ、２回分の判断が条件を満たした場合に圧縮率が下げられるように変更された。そのため、時点ｔ１６，ｔ１７の２回分の判断結果から、圧縮率が１段階下げられてｂ２に変更された。また、ペナルティ圧縮率がｂ４からｂ３に更新された。
【０１５３】
時点ｔ１８では、時点ｔ１７，ｔ１８間の状態を解析した結果、圧縮率を下げる条件は満たさなかったため、圧縮率は変更されなかった。
【０１５４】
時点ｔ１９では、時点ｔ１８，ｔ１９と圧縮率が安定しており圧縮率を下げる条件を満たしていた。また、時点ｔ１９まで圧縮率が安定していたことから、ペナルティ圧縮率よりも低い圧縮率で安定したと判断され、遅延制御が１段階緩められ、すべての遅延制御が解除された。制限が解除されたことにより、時点ｔ１９での圧縮率下げ条件が有効となり、圧縮率は下げられてｂ１となった。また、ペナルティ圧縮率が例えばｂ０に初期化された。
【０１５５】
これ以降、送信待ちバッファ２０に送信待ちデータが蓄積されなくなり、徐々に圧縮率が下げられて、時点ｔ２３で圧縮率はｂ０となった。
【０１５６】
図１０と図１１を比較して明らかなように、図１１の場合、時点ｔ２からｔ１７にかけて遅延制御が行われ、これにより圧縮率を下げる制御が制限される。したがって、遅延制御により、圧縮率を安定させる効果を得られていることがわかる。
【０１５７】
以上に説明したように、本開示を適用した送信装置１０によれば、受信側での再生が途切れることなく、データを無線伝送することができる。特に、無線伝送するデータがオーディオデータである場合には、受信側における音切れや、圧縮率の変化に起因する音質の頻繁な変化も抑止することができる。
【０１５８】
なお、送信装置１０が無線伝送の対象とするデータはオーディオデータに限られるものではなく、その種類は任意である、例えばビデオデータを無線伝送する場合にも送信装置１０は適用できる。
【０１５９】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１６０】
図１２は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１６１】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０１６２】
バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、記憶部２０８、通信部２０９、およびドライブ２１０が接続されている。
【０１６３】
入力部２０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記憶部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインタフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１１を駆動する。
【０１６４】
以上のように構成されるコンピュータ２００では、CPU２０１が、例えば、記憶部２０８に記憶されているプログラムを、入出力インタフェース２０５およびバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０１６５】
なお、コンピュータ２００が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【０１６６】
本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【０１６７】
本開示は以下のような構成も取ることができる。
（１）
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、
無線伝送される前の前記送信符号化データを一時的に保持する保持部と、
前記保持部に保持されている前記送信符号化データを無線伝送する送信部と、
前記保持部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部と
を備える送信装置。
（２）
前記送信待ちデータ数を間歇的に取得して蓄積する蓄積部をさらに備え、
前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数に基づき、前記格納フレーム数を決定する
前記（１）に記載の送信装置。
（３）
前記格納フレーム数決定部は、前記蓄積部に蓄積されている最新の前記送信待ちデータ数が所定の閾値を超えた場合、前記格納フレーム数を増加させ、
前記圧縮率決定部は、増加された前記格納フレーム数に基づき、前記符号化処理で採用される圧縮率を上げる
前記（２）に記載の送信装置。
（４）
前記符号化部は、前記圧縮率が上げられた場合、上げられる前の圧縮率が採用されて符号化処理が行われた前記符号化データが未送信のままで残っているときには、フレーム単位で符号化処理における圧縮率が異なる前記符号化データを混載した前記送信符号化データを生成する
前記（２）または（３）に記載の送信装置。
（５）
前記格納フレーム数決定部は、前記蓄積部に蓄積されている前記送信待ちデータ数の所定の観測時間の履歴が所定の条件を満たす場合、前記格納フレーム数を減少させ、
前記圧縮率決定部は、減少された前記格納フレーム数に基づき、前記符号化処理で採用される圧縮率を下げる
前記（２）から（４）のいずれかに記載の送信装置。
（６）
前記所定の観測時間を延長させるために課すペナルティを設定するペナルティ設定部を
さらに備える前記（５）に記載の送信装置。
（７）
前記ペナルティ設定部は、前記圧縮率の変更履歴に基づいて前記ペナルティを設定または解除する
前記（６）に記載の送信装置。
（８）
データを無線伝送する送信装置の送信方法において、
前記送信装置による、
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化ステップと、
無線伝送される前の前記送信符号化データを一時的に保持する保持ステップと、
保持されている前記送信符号化データを無線伝送する送信ステップと、
保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定ステップと、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定ステップと
を含む送信方法。
（９）
コンピュータを、
無線伝送の対象となるデータに符号化処理を行うことによって符号化データを生成し、複数フレーム分の前記符号化データから成る、固定サイズの伝送単位に収まる送信符号化データを生成する符号化部と、
無線伝送される前の前記送信符号化データを一時的に保持する保持部と、
前記保持部に保持されている前記送信符号化データを無線伝送する送信部と、
前記保持部に保持されている無線伝送前の前記送信符号化データの数を表す送信待ちデータ数に基づき、前記符号化部により前記送信符号化データを生成する際の前記符号化データのフレームの数を表す格納フレーム数を決定する格納フレーム数決定部と、
決定された格納フレーム数に基づき、前記符号化処理で採用される圧縮率を決定する圧縮率決定部と
して機能させるプログラム。
【符号の説明】
【０１６８】
１０  送信装置，  １１  制御部，  １２  蓄積履歴メモリ更新部，  １３  増加フレーム数算出部，  １４  タイミング制御部，  １５  圧縮率制御部，  １６  圧縮率変更履歴メモリ，  １７  符号化部，  １８  データバッファ，  １９  符号化データバッファ，  ２０  送信待ちバッファ，  ２１  通信処理部，  ２２  無線通信部，  ２３  スイッチ，  ２４  蓄積履歴メモリ，  ２００  コンピュータ，  ２０１  CPU
【図１】
0006540189.tif 000002
【図２】
0006540189.tif 000003
【図３】
0006540189.tif 000004
【図４】
0006540189.tif 000005
【図５】
0006540189.tif 000006
【図６】
0006540189.tif 000007
【図７】
0006540189.tif 000008
【図８】
0006540189.tif 000009
【図９】
0006540189.tif 000010
【図１０】
0006540189.tif 000011
【図１１】
0006540189.tif 000012
【図１２】
0006540189.tif 000013