(57)【要約】【課題】レート制御精度を向上させて、送信されるデータの欠落を防止することが可能な送信装置、データ送信方法及びプログラムを提供すること。【解決手段】データをエンコードしエンコードデータを出力するエンコーダ１０４と、エンコードデータを外部に送信する送信部１０８と、送信部から送信されるエンコードデータの送信データ量を検出する送信データ量検出部１０８と、送信データ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御するレート制御部１１０とを備えることを特徴とする。【選択図】図２
2009194454.tif 000002
【特許請求の範囲】
【請求項１】
データをエンコードしエンコードデータを出力するエンコーダと、
前記エンコードデータを外部に送信する送信部と、
前記送信部から送信される前記エンコードデータの送信データ量を検出する送信データ量検出部と、
前記送信データ量に基づいて前記エンコーダが出力する前記エンコードデータの出力レートを制御するレート制御部と
を備えることを特徴とする、送信装置。
【請求項２】
前記エンコードデータを一時的に記憶し、前記エンコードデータを前記送信部に出力するバッファと、
前記バッファに記憶された前記エンコードデータのバッファ量を検出するバッファ量検出部と
を更に備え、
前記レート制御部は、前記バッファ量に基づいて前記エンコーダが出力する前記エンコードデータの前記出力レートを制御することを特徴とする、請求項１に記載の送信装置。
【請求項３】
前記レート制御部は、前記バッファに記憶された前記エンコードデータの一部を削除することにより、前記バッファから出力される前記エンコードデータのデータ量を制御することを特徴とする、請求項２に記載の送信装置。
【請求項４】
前記レート制御部は、前記エンコードデータに付された優先度に応じて、前記バッファに記憶された前記エンコードデータの一部を削除すること特徴とする、請求項３に記載の送信装置。
【請求項５】
前記レート制御部は、前記送信データ量の単位時間当たりの送信データ量、又は所定時間における前記単位時間当たりの送信データ量の平均値に基づいて、前記出力レートを制御することを特徴とする、請求項１に記載の送信装置。
【請求項６】
前記レート制御部は、前記バッファ量の単位時間当たりの増加量に基づいて、前記エンコーダが出力する前記エンコードデータの前記出力レートを制御することを特徴とする、請求項２に記載の送信装置。
【請求項７】
前記レート制御部は、
前記所定の出力レートで前記エンコードデータが出力されるように前記エンコーダを制御する第１のモードと、
前記送信データ量に応じて前記第１のモードから遷移され、前記バッファに記憶された前記エンコードデータの一部を削除することにより、前記バッファから出力される前記エンコードデータのデータ量を制御する第２のモードと、
前記バッファに記憶された前記エンコードデータのバッファ量若しくは前記バッファ量の単位時間当たりの増加量に応じて前記第１のモードから遷移され、又は前記送信データ量の単位時間当たりの送信データ量若しくは前記バッファに記憶された前記エンコードデータのバッファ量に応じて前記第２のモードから遷移され、前記エンコーダから出力される前記エンコードデータの前記出力レートを制御する第３のモードと
を有することを特徴とする、請求項２に記載の送信装置。
【請求項８】
データをエンコードしエンコードデータを出力するステップと、
前記エンコードデータを外部に送信するステップと、
前記外部に送信される前記エンコードデータの送信データ量を検出するステップと、
前記送信データ量に基づいて前記エンコーダが出力する前記エンコードデータの出力レートを制御するステップと
を備えることを特徴とする、データ送信方法。
【請求項９】
データをエンコードしエンコードデータを出力する手段、
前記エンコードデータを外部に送信する手段、
前記外部に送信される前記エンコードデータの送信データ量を検出する手段、
前記送信データ量に基づいて前記エンコーダが出力する前記エンコードデータの出力レートを制御する手段
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置、データ送信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネットや、インターネットに接続された携帯電話網を介して、映像や音声等のコンテンツデータの送受信がされている。そして、データの送受信を円滑に行うため、種々の技術が開発されてきた。例えば、特許文献１では、ＴＣＰプロトコルを用いて画像データを配信する場合の技術が開示されている。具体的には、ネットワークで輻輳が発生した場合、送信装置のバッファに記憶されるデータが増加するため、データがバッファからオーバフローし、送信されるべきデータが欠落するという問題があった。この問題に対して、特許文献１の送信装置は、バッファに記憶されるデータの時間的な増加率を検出し、検出結果をもとに送信するデータのビットレートを制御する。
【０００３】
【特許文献１】特開２００５−５８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１では、バッファに記憶されているデータの時間的な増加率を検出していることから、データの伝送路の傾向をある程度把握することができる。しかしながら、バッファに一度記憶されたデータを対象としていることから、データ送信時のリアルタイムの情報ではない。そのため、実際に送信されるデータのレート制御は、リアルタイムの情報が反映されないため、急な帯域の変動に対処できなかった。また、制御精度が粗く、データの欠落が発生するため、映像が崩れる原因となるロスが生ずるという問題があった。
【０００５】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、レート制御精度を向上させて、送信されるデータの欠落を防止することが可能な、新規かつ改良された送信装置、データ送信方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある観点によれば、データをエンコードしエンコードデータを出力するエンコーダと、エンコードデータを外部に送信する送信部と、送信部から送信されるエンコードデータの送信データ量を検出する送信データ量検出部と、送信データ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御するレート制御部とを備えることを特徴とする送信装置が提供される。
【０００７】
かかる構成により、エンコーダは、データをエンコードしエンコードデータを出力し、送信部は、エンコードデータを外部に送信し、送信データ量検出部は、送信部から送信されるエンコードデータの送信データ量を検出し、レート制御部は、送信データ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御する。その結果、送信データ量に基づいた出力レートによってエンコードデータが外部に出力されるため、精度の高いレート制御をすることができる。
【０００８】
上記エンコードデータを一時的に記憶し、エンコードデータを送信部に出力するバッファと、バッファに記憶されたエンコードデータのバッファ量を検出するバッファ量検出部とを更に備え、レート制御部は、バッファ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御してもよい。かかる構成により、バッファは、エンコードデータを送信部に出力し、バッファ量検出部は、バッファに記憶されたエンコードデータのバッファ量を検出するため、バッファ量に基づいた出力レートによってエンコードデータが外部に出力される。
【０００９】
上記レート制御部は、バッファに記憶されたエンコードデータの一部を削除することにより、バッファから出力されるエンコードデータのデータ量を制御してもよい。また、上記レート制御部は、エンコードデータに付された優先度に応じて、バッファに記憶されたエンコードデータの一部を削除してもよい。かかる構成により、優先度が高いエンコードデータのみを出力する制御を行うことができる。
【００１０】
上記レート制御部は、送信データ量の単位時間当たりの送信データ量、又は所定時間における単位時間当たりの送信データ量の平均値に基づいて、出力レートを制御してもよい。また、上記レート制御部は、バッファ量の単位時間当たりの増加量に基づいて、エンコーダが出力するエンコードデータの出力レートを制御してもよい。
【００１１】
上記レート制御部は、所定の出力レートでエンコードデータが出力されるようにエンコーダを制御する第１のモードと、送信データ量に応じて第１のモードから遷移され、バッファに記憶されたエンコードデータの一部を削除することにより、バッファから出力されるエンコードデータのデータ量を制御する第２のモードと、バッファに記憶されたエンコードデータのバッファ量若しくはバッファ量の単位時間当たりの増加量に応じて第１のモードから遷移され、又は送信データ量の単位時間当たりの送信データ量若しくはバッファに記憶されたエンコードデータのバッファ量に応じて第２のモードから遷移され、エンコーダから出力されるエンコードデータの出力レートを制御する第３のモードとを有してもよい。
【００１２】
また、上記課題を解決するために、本発明の別の観点によれば、データをエンコードしエンコードデータを出力するステップと、エンコードデータを外部に送信するステップと、外部に送信されるエンコードデータの送信データ量を検出するステップと、送信データ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御するステップとを備えることを特徴とするデータ送信方法が提供される。
【００１３】
また、上記課題を解決するために、本発明の別の観点によれば、データをエンコードしエンコードデータを出力する手段、エンコードデータを外部に送信する手段、外部に送信されるエンコードデータの送信データ量を検出する手段、送信データ量に基づいてエンコーダが出力するエンコードデータの出力レートを制御する手段をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１４】
本発明によれば、レート制御精度を向上させて、送信されるデータの欠落を防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１６】
（一実施形態の構成）
まず、図１、図２を参照して、本発明の一実施形態に係る送信装置１００の構成について説明する。図１は、本実施形態の送信装置が接続されるネットワークシステムを示す説明図である。図２は、本実施形態の送信装置１００を示すブロック図である。
【００１７】
送信装置１００は、図１（Ａ）に示すように、ネットワークに１０に接続され、データをネットワーク１０に接続された受信装置２００に送信する。送信されるデータは、例えば映像データや音声データなどである。ネットワーク１０は、図１（Ｂ）に示すように、例えば、携帯電話網１２とインターネット１４などからなってもよい。本実施形態のネットワークシステムは、送信装置１００においてリアルタイムで入力された映像データや音声データが送信され、受信装置２００で受信したデータをそのままリアルタイムで再生してもよい。受信装置２００は、図１では１つで構成されるように図示したが、複数の受信装置２００がネットワーク１０に接続されてもよい。
【００１８】
送信装置１００は、図２に示すように、例えば、入力部１０２と、エンコーダ１０４と、バッファ１０６と、送信部１０８と、レート制御部１１０などからなる。
【００１９】
入力部１０２は、例えば、映像データや音声データなどのデータが入力され、当該データをエンコーダ１０４に出力する。入力部１０２は、例えば、ビデオカメラ等であってもよく、リアルタイムで撮像したデータを出力し、送信装置１００はリアルタイムのデータをネットワーク１０に送信する。
【００２０】
エンコーダ１０４は、入力部１０２が出力したデータをエンコードする。エンコードは、例えば、ＭＰＥＧ−２方式などの圧縮符号化処理である。エンコーダ１０４は、レート制御部１１０から受けるレート情報に基づいた出力レートで、エンコードされたエンコードデータをバッファ１０６に出力する。また、エンコーダ１０４は、レート制御部１１０の制御情報として、現在出力している出力レートをレート制御部１１０に送る。
レート情報には、エンコーダ１０４がデータをエンコードする際に必要なビットレート、フレームレート、画質パラメータなどの情報が含まれる。
【００２１】
バッファ１０６は、エンコーダ１０４から受けたエンコードデータを一時的に記憶し、送信部１０８にエンコードデータを送信する。また、バッファ１０６は、バッファ１０６に記憶されたデータ量であるバッファ量の情報をレート制御部１１０に送る。
【００２２】
送信部１０８は、バッファ１０６から受けたエンコードデータをパケット化し、ネットワーク１０を介してパケット化したデータを受信装置２００に送信する。また、送信部１０８は、送信データ量検出部の一例であり、送信部１０８から送信されるエンコードデータの送信データ量を計測し、送信データ量などの送信情報をレート制御部１１０に送る。送信部１０８は、検出した送信データ量に基づいて、送信データ量の単位時間当たりの送信データ量、又は単位時間当たりの送信データ量の所定時間における平均値を算出する。送信情報には、送信データ量の単位時間当たりの送信データ量、その平均値が含まれる。
【００２３】
レート制御部１１０は、送信部１０８から受けた送信情報に基づいて、エンコーダ１０４が出力するエンコードデータの出力レートを制御する。また、レート制御部１１０は、バッファ量検出部の一例であり、バッファ１０６に記憶されたエンコードデータのバッファ量を検出する。レート制御部１１０は、バッファ量の情報に基づいて、バッファ量の単位時間当たりの増加量（増加率）を算出し、バッファ１０６におけるバッファ量の増加率を保持管理するように、エンコーダ１０４が出力するエンコードデータの出力レートを制御する。
【００２４】
レート制御部１１０は、出力レートを制御するためのレート情報をエンコーダ１０４に送る。レート情報は、ビットレートと、フレームレートと、画質パラメータなどの組合せからなる。レート制御部１１０は、まず、送信可能なビットレートを決定し、その値から適切な最大フレームレートを選択し、その後、ＣＰＵ負荷の許容範囲内の画質パラメータを選択する。
【００２５】
レート制御部１１０は、Normal状態（第１のモード）、Warning状態（第２のモード）、Changing状態（第３のモード）の３状態を有する。
【００２６】
レート制御部１１０は、Normal状態では、所定の出力レートでエンコードデータが出力されるようにエンコーダ１０４を制御する。
【００２７】
Warning状態は、送信データ量などの送信情報に応じてNormal状態から遷移される。そして、レート制御部１１０は、Warning状態において、エンコードデータに付された優先度に応じて、バッファ１０６に記憶されたエンコードデータの一部を削除することにより、バッファ１０６から出力されるエンコードデータのデータ量を制御する。
【００２８】
Changing状態は、バッファ１０６に記憶されたエンコードデータのバッファ量又はバッファ量の単位時間当たりの増加量に応じて、Normal状態から遷移される。また、Changing状態は、送信データ量の単位時間当たりの送信データ量又はバッファ１０６に記憶されたエンコードデータのバッファ量に応じて、Warning状態から遷移される。レート制御部１１０は、Changing状態において、エンコーダ１０４から出力されるエンコードデータの出力レートを制御する。
【００２９】
本実施形態の送信装置１００によれば、レート制御部１１０は、バッファ１０６のバッファ量のみならず、送信部１０８における送信データ量などの送信情報に基づいて、エンコードデータの出力レートを制御するので、バッファ量のみから判断する場合に比べて、ネットワーク１０の伝送路の帯域の変動傾向の情報に適合しており、リアルタイムの映像データ、音声データの送信においてより精度の高いレート制御を行うことができる。その結果、受信装置２００側で映像表示を崩れにくくさせることができる。なお、送信装置１００における一連の処理は、ハードウェアで処理してもよいし、コンピュータ上のプログラムによるソフトウェア処理で実現してもよい。
【００３０】
（一実施形態の動作）
次に、図３を参照して、本実施形態に係る送信装置１００のレート制御部１１０の動作について説明する。図３は、本実施形態に係る送信装置１００のレート制御部１１０の動作を示すフローチャートである。
【００３１】
まず、レート制御部１１０は、エンコーダ１０４から現在のレートを取得する（ステップＳ１０１）。また、レート制御部１１０は、送信部１０８から送信情報を取得する（ステップＳ１０２）。更に、レート制御部１１０は、バッファ１０６から現在のバッファ量を取得する（ステップＳ１０３）。そして、レート制御部１１０は、現在のバッファ量に基づいて単位時間当たりの増加量である増加率を計算する（ステップＳ１０４）。
【００３２】
レート制御部１１０は、これらの現在のレート、送信情報、現在のバッファ量、バッファ量の増加率といったパラメータに基づいて、エンコードデータの出力レートの制御を行なうことができる。そして、それぞれのパラメータの値に応じて、レート制御部１１０は、制御状態（Normal状態、Warning状態、Changing状態）を変える。即ち、パラメータ値を判断して（ステップＳ１０５）、レート制御部１１０は、Normal状態の制御を行なったり（ステップＳ１０６）、Changing状態の制御を行なったり（ステップＳ１０７）、Warning状態の制御（ステップＳ１０８）を行なったりする。
【００３３】
そして、それぞれの制御状態において、レート制御部１１０は、バッファ１０６におけるバッファ量の増加率を保持管理して、エンコーダ１０４が出力するエンコードデータの出力レートを制御する（ステップＳ１０９）。レート制御部１１０は、次の制御状態に遷移するかを判断するまで、ある制御状態における制御を一定時間維持して待機する（ステップＳ１１０）。
【００３４】
本実施形態によれば、エンコーダ１０４、バッファ１０６、送信部１０８からそれぞれ出力レートの制御に必要な情報（パラメータ）を取得し、それぞれのパラメータ値に応じて制御状態を変えるため、適切な出力レートの制御を行うことができる。
【００３５】
次に、図４〜図７を参照して、本実施形態の送信装置１００のレート制御部１１０の３つの制御状態について説明する。図４は、本実施形態の送信装置１００のレート制御部１１０の３つの制御状態の遷移を示す状態遷移図である。図５〜図７は、本実施形態の送信装置１００のレート制御部１１０の制御動作を示すフローチャートである。
【００３６】
レート制御部１１０は、Normal状態では、レート制御部１１０が算出したバッファ量の単位時間当たりの増加量（増加率）に基づいて、バッファ１０６におけるバッファ量の増加率を保持管理する（図４のＳ１）。
【００３７】
そして、Normal状態において、送信部１０８からの単位時間当たりの送信データ量Ｄが閾値ｘよりも小さいか、単位時間当たりの送信データ量の平均値Ａが閾値ｙよりも小さい場合、データ送信が困難な状態にあるため、Warning状態に遷移する（図４のＳ２）。
【００３８】
Warning状態において、単位時間当たりの送信データ量Ｄが閾値ｘ’より大きく、かつバッファ量Ｂが閾値ｃ以下である場合（ステップＳ２０１）は、データ送信を通常に行うことができる状態にあるため、Normal状態に遷移する（ステップＳ２０２、図４のＳ３）。
【００３９】
一方、Warning状態において、単位時間当たりの送信データ量Ｄが閾値ｘ’より大きく、かつバッファ量Ｂが閾値ｃよりも大きい場合（ステップＳ２０１）は、依然としてデータ送信が困難であるため、レート制御部１１０は、出力するエンコードデータの出力レートを下げるようエンコーダ１０４に指示して、出力レートを下げる（ステップＳ２０３）。更に、レート制御部１１０は、エンコードデータに付された優先度に応じて、バッファ１０６に記憶されたエンコードデータの一部を削除することにより、バッファ１０６から出力されるエンコードデータのデータ量を減少させる制御をする（ステップＳ２０４）。そして、レート制御部１１０はWarning状態からChanging状態に遷移する（ステップＳ２０５、図４のＳ４）。
【００４０】
Normal状態において、バッファ１０６におけるバッファ量Ｂが閾値ａ以下で、かつバッファ量の増加率Ｒがｂ以下である場合（ステップＳ３０１）、出力レートを上げることができるため、レート制御部１１０は、出力レートを上げるようエンコーダ１０４に指示して、出力レートを上げる（ステップＳ３０２）。そして、レート制御部１１０はNormal状態からChanging状態に遷移する（ステップＳ３０３、図４のＳ５）。
【００４１】
そして、Changing状態において、バッファ１０６におけるバッファ量Ｂが閾値ａ以下で、かつバッファ量の増加率Ｒがｂ以下である場合（ステップＳ４０１）、データ送信を通常に行うことができる状態にあるため、Normal状態に遷移する（ステップＳ４０２、図４のＳ６）。
【００４２】
一方、Changing状態において、バッファ１０６におけるバッファ量Ｂが閾値ａよりも大きく、かつバッファ量の増加率Ｒがｂよりも大きい場合（ステップＳ４０３）、引き続きデータ送信が困難な状態にあるため、レート制御部１１０は、出力されるエンコードデータの出力レートを下げるようにエンコーダ１０４に指示し、出力レートを下げる（ステップＳ４０４）。そして、レート制御部１１０はChanging状態を維持する（図４のＳ７）。
【００４３】
このように、本実施形態によれば、レート制御部１１０が３つの制御状態を有することにより、単位時間当たりの送信データ量Ｄ、単位時間当たりの送信データ量の平均値Ａ、バッファ量Ｂ、バッファ量の増加率Ｒに応じて、エンコーダ１０４が出力するエンコードデータの出力レートを制御するため、送信装置１００は高精度にデータを送信することができる。
【００４４】
（レート制御部１１０のバッファ量制御）
次に、図８を参照して、本実施形態の送信装置１００のレート制御部１１０におけるバッファ量制御を説明する。図８は、本実施形態の送信装置１００のレート制御部１１０におけるバッファ量制御を示す説明図である。
【００４５】
図８の上段は、エンコーダ１０４が出力する複数のパケットからなるデータを示す。各パケットは、エンコーダ１０４がデータをエンコードする際に付される優先度を有する。優先度は、例えば、送信データがＭＰＥＧ方式の映像データである場合、Ｉピクチャ（Intra  Picture）の優先度が最も高く、次にＰピクチャ（Predictive  Picture）が高く、Ｂピクチャ（Bidirectionally  Predictive  Picture）が低くなるように付される。なお、優先度は、この例に限定されず、他のパラメータをもとに付されてもよい。
【００４６】
そして、上述したとおり、レート制御部１１０は、エンコードデータに付された優先度に応じて、バッファ１０６に記憶されたエンコードデータの一部を削除することにより、バッファ１０６から出力されるエンコードデータのデータ量を減少させる制御をする。
【００４７】
例えば、図８に示す例では、優先度は１＞２＞３の順で優先度１が最も高い。そして、レート制御部１１０は、優先度２、３のパケット（データ）を削除する。その結果、バッファ１０６からは優先度１が付されたパケットのみが出力され、バッファ１０６から出力されるデータを減少させることができる。従って、データ送信が困難な状態にある場合でも、送信されるデータ全体のデータ量を減少させつつ、優先度の高いデータが送信されるため、受信装置２００側では映像を崩れにくくさせることができる。
【００４８】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施形態の送信装置が接続されるネットワークシステムを示す説明図である。
【図２】同実施形態の送信装置を示すブロック図である。
【図３】同実施形態に係る送信装置のレート制御部の動作を示すフローチャートである。
【図４】同実施形態の送信装置のレート制御部の３つの制御状態の遷移を示す状態遷移図である。
【図５】同実施形態の送信装置のレート制御部の制御動作を示すフローチャートである。
【図６】同実施形態の送信装置のレート制御部の制御動作を示すフローチャートである。
【図７】同実施形態の送信装置のレート制御部の制御動作を示すフローチャートである。
【図８】同実施形態の送信装置のレート制御部におけるバッファ量制御を示す説明図である。
【符号の説明】
【００５０】
１０      ネットワーク
１００      送信装置
１０２      入力部
１０４      エンコーダ
１０６      バッファ
１０８      送信部
１１０      レート制御部
２００      受信装置
【図１】
2009194454.tif 000003
【図２】
2009194454.tif 000004
【図３】
2009194454.tif 000005
【図４】
2009194454.tif 000006
【図５】
2009194454.tif 000007
【図６】
2009194454.tif 000008
【図７】
2009194454.tif 000009
【図８】
2009194454.tif 000010